1// Copyright 2020 Google LLC.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Code generated file. DO NOT EDIT.
6
7// Package compute provides access to the Compute Engine API.
8//
9// For product documentation, see: https://developers.google.com/compute/docs/reference/latest/
10//
11// Creating a client
12//
13// Usage example:
14//
15//   import "google.golang.org/api/compute/v0.alpha"
16//   ...
17//   ctx := context.Background()
18//   computeService, err := compute.NewService(ctx)
19//
20// In this example, Google Application Default Credentials are used for authentication.
21//
22// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
23//
24// Other authentication options
25//
26// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
27//
28//   computeService, err := compute.NewService(ctx, option.WithScopes(compute.DevstorageReadWriteScope))
29//
30// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
31//
32//   computeService, err := compute.NewService(ctx, option.WithAPIKey("AIza..."))
33//
34// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
35//
36//   config := &oauth2.Config{...}
37//   // ...
38//   token, err := config.Exchange(ctx, ...)
39//   computeService, err := compute.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
40//
41// See https://godoc.org/google.golang.org/api/option/ for details on options.
42package compute // import "google.golang.org/api/compute/v0.alpha"
43
44import (
45	"bytes"
46	"context"
47	"encoding/json"
48	"errors"
49	"fmt"
50	"io"
51	"net/http"
52	"net/url"
53	"strconv"
54	"strings"
55
56	googleapi "google.golang.org/api/googleapi"
57	gensupport "google.golang.org/api/internal/gensupport"
58	option "google.golang.org/api/option"
59	internaloption "google.golang.org/api/option/internaloption"
60	htransport "google.golang.org/api/transport/http"
61)
62
63// Always reference these packages, just in case the auto-generated code
64// below doesn't.
65var _ = bytes.NewBuffer
66var _ = strconv.Itoa
67var _ = fmt.Sprintf
68var _ = json.NewDecoder
69var _ = io.Copy
70var _ = url.Parse
71var _ = gensupport.MarshalJSON
72var _ = googleapi.Version
73var _ = errors.New
74var _ = strings.Replace
75var _ = context.Canceled
76var _ = internaloption.WithDefaultEndpoint
77
78const apiId = "compute:alpha"
79const apiName = "compute"
80const apiVersion = "alpha"
81const basePath = "https://compute.googleapis.com/compute/alpha/projects/"
82
83// OAuth2 scopes used by this API.
84const (
85	// View and manage your data across Google Cloud Platform services
86	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
87
88	// View and manage your Google Compute Engine resources
89	ComputeScope = "https://www.googleapis.com/auth/compute"
90
91	// View your Google Compute Engine resources
92	ComputeReadonlyScope = "https://www.googleapis.com/auth/compute.readonly"
93
94	// Manage your data and permissions in Google Cloud Storage
95	DevstorageFullControlScope = "https://www.googleapis.com/auth/devstorage.full_control"
96
97	// View your data in Google Cloud Storage
98	DevstorageReadOnlyScope = "https://www.googleapis.com/auth/devstorage.read_only"
99
100	// Manage your data in Google Cloud Storage
101	DevstorageReadWriteScope = "https://www.googleapis.com/auth/devstorage.read_write"
102)
103
104// NewService creates a new Service.
105func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
106	scopesOption := option.WithScopes(
107		"https://www.googleapis.com/auth/cloud-platform",
108		"https://www.googleapis.com/auth/compute",
109		"https://www.googleapis.com/auth/compute.readonly",
110		"https://www.googleapis.com/auth/devstorage.full_control",
111		"https://www.googleapis.com/auth/devstorage.read_only",
112		"https://www.googleapis.com/auth/devstorage.read_write",
113	)
114	// NOTE: prepend, so we don't override user-specified scopes.
115	opts = append([]option.ClientOption{scopesOption}, opts...)
116	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
117	client, endpoint, err := htransport.NewClient(ctx, opts...)
118	if err != nil {
119		return nil, err
120	}
121	s, err := New(client)
122	if err != nil {
123		return nil, err
124	}
125	if endpoint != "" {
126		s.BasePath = endpoint
127	}
128	return s, nil
129}
130
131// New creates a new Service. It uses the provided http.Client for requests.
132//
133// Deprecated: please use NewService instead.
134// To provide a custom HTTP client, use option.WithHTTPClient.
135// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
136func New(client *http.Client) (*Service, error) {
137	if client == nil {
138		return nil, errors.New("client is nil")
139	}
140	s := &Service{client: client, BasePath: basePath}
141	s.AcceleratorTypes = NewAcceleratorTypesService(s)
142	s.Addresses = NewAddressesService(s)
143	s.Autoscalers = NewAutoscalersService(s)
144	s.BackendBuckets = NewBackendBucketsService(s)
145	s.BackendServices = NewBackendServicesService(s)
146	s.DiskTypes = NewDiskTypesService(s)
147	s.Disks = NewDisksService(s)
148	s.ExternalVpnGateways = NewExternalVpnGatewaysService(s)
149	s.Firewalls = NewFirewallsService(s)
150	s.ForwardingRules = NewForwardingRulesService(s)
151	s.GlobalAddresses = NewGlobalAddressesService(s)
152	s.GlobalForwardingRules = NewGlobalForwardingRulesService(s)
153	s.GlobalNetworkEndpointGroups = NewGlobalNetworkEndpointGroupsService(s)
154	s.GlobalOperations = NewGlobalOperationsService(s)
155	s.GlobalOrganizationOperations = NewGlobalOrganizationOperationsService(s)
156	s.GlobalPublicDelegatedPrefixes = NewGlobalPublicDelegatedPrefixesService(s)
157	s.HealthChecks = NewHealthChecksService(s)
158	s.HttpHealthChecks = NewHttpHealthChecksService(s)
159	s.HttpsHealthChecks = NewHttpsHealthChecksService(s)
160	s.Images = NewImagesService(s)
161	s.InstanceGroupManagers = NewInstanceGroupManagersService(s)
162	s.InstanceGroups = NewInstanceGroupsService(s)
163	s.InstanceTemplates = NewInstanceTemplatesService(s)
164	s.Instances = NewInstancesService(s)
165	s.InterconnectAttachments = NewInterconnectAttachmentsService(s)
166	s.InterconnectLocations = NewInterconnectLocationsService(s)
167	s.Interconnects = NewInterconnectsService(s)
168	s.LicenseCodes = NewLicenseCodesService(s)
169	s.Licenses = NewLicensesService(s)
170	s.MachineImages = NewMachineImagesService(s)
171	s.MachineTypes = NewMachineTypesService(s)
172	s.NetworkEndpointGroups = NewNetworkEndpointGroupsService(s)
173	s.Networks = NewNetworksService(s)
174	s.NodeGroups = NewNodeGroupsService(s)
175	s.NodeTemplates = NewNodeTemplatesService(s)
176	s.NodeTypes = NewNodeTypesService(s)
177	s.OrganizationSecurityPolicies = NewOrganizationSecurityPoliciesService(s)
178	s.PacketMirrorings = NewPacketMirroringsService(s)
179	s.Projects = NewProjectsService(s)
180	s.PublicAdvertisedPrefixes = NewPublicAdvertisedPrefixesService(s)
181	s.PublicDelegatedPrefixes = NewPublicDelegatedPrefixesService(s)
182	s.RegionAutoscalers = NewRegionAutoscalersService(s)
183	s.RegionBackendServices = NewRegionBackendServicesService(s)
184	s.RegionCommitments = NewRegionCommitmentsService(s)
185	s.RegionDiskTypes = NewRegionDiskTypesService(s)
186	s.RegionDisks = NewRegionDisksService(s)
187	s.RegionHealthCheckServices = NewRegionHealthCheckServicesService(s)
188	s.RegionHealthChecks = NewRegionHealthChecksService(s)
189	s.RegionInstanceGroupManagers = NewRegionInstanceGroupManagersService(s)
190	s.RegionInstanceGroups = NewRegionInstanceGroupsService(s)
191	s.RegionNetworkEndpointGroups = NewRegionNetworkEndpointGroupsService(s)
192	s.RegionNotificationEndpoints = NewRegionNotificationEndpointsService(s)
193	s.RegionOperations = NewRegionOperationsService(s)
194	s.RegionSslCertificates = NewRegionSslCertificatesService(s)
195	s.RegionTargetHttpProxies = NewRegionTargetHttpProxiesService(s)
196	s.RegionTargetHttpsProxies = NewRegionTargetHttpsProxiesService(s)
197	s.RegionUrlMaps = NewRegionUrlMapsService(s)
198	s.Regions = NewRegionsService(s)
199	s.Reservations = NewReservationsService(s)
200	s.ResourcePolicies = NewResourcePoliciesService(s)
201	s.Routers = NewRoutersService(s)
202	s.Routes = NewRoutesService(s)
203	s.SecurityPolicies = NewSecurityPoliciesService(s)
204	s.Snapshots = NewSnapshotsService(s)
205	s.SslCertificates = NewSslCertificatesService(s)
206	s.SslPolicies = NewSslPoliciesService(s)
207	s.Subnetworks = NewSubnetworksService(s)
208	s.TargetHttpProxies = NewTargetHttpProxiesService(s)
209	s.TargetHttpsProxies = NewTargetHttpsProxiesService(s)
210	s.TargetInstances = NewTargetInstancesService(s)
211	s.TargetPools = NewTargetPoolsService(s)
212	s.TargetSslProxies = NewTargetSslProxiesService(s)
213	s.TargetTcpProxies = NewTargetTcpProxiesService(s)
214	s.TargetVpnGateways = NewTargetVpnGatewaysService(s)
215	s.UrlMaps = NewUrlMapsService(s)
216	s.VpnGateways = NewVpnGatewaysService(s)
217	s.VpnTunnels = NewVpnTunnelsService(s)
218	s.ZoneOperations = NewZoneOperationsService(s)
219	s.Zones = NewZonesService(s)
220	return s, nil
221}
222
223type Service struct {
224	client    *http.Client
225	BasePath  string // API endpoint base URL
226	UserAgent string // optional additional User-Agent fragment
227
228	AcceleratorTypes *AcceleratorTypesService
229
230	Addresses *AddressesService
231
232	Autoscalers *AutoscalersService
233
234	BackendBuckets *BackendBucketsService
235
236	BackendServices *BackendServicesService
237
238	DiskTypes *DiskTypesService
239
240	Disks *DisksService
241
242	ExternalVpnGateways *ExternalVpnGatewaysService
243
244	Firewalls *FirewallsService
245
246	ForwardingRules *ForwardingRulesService
247
248	GlobalAddresses *GlobalAddressesService
249
250	GlobalForwardingRules *GlobalForwardingRulesService
251
252	GlobalNetworkEndpointGroups *GlobalNetworkEndpointGroupsService
253
254	GlobalOperations *GlobalOperationsService
255
256	GlobalOrganizationOperations *GlobalOrganizationOperationsService
257
258	GlobalPublicDelegatedPrefixes *GlobalPublicDelegatedPrefixesService
259
260	HealthChecks *HealthChecksService
261
262	HttpHealthChecks *HttpHealthChecksService
263
264	HttpsHealthChecks *HttpsHealthChecksService
265
266	Images *ImagesService
267
268	InstanceGroupManagers *InstanceGroupManagersService
269
270	InstanceGroups *InstanceGroupsService
271
272	InstanceTemplates *InstanceTemplatesService
273
274	Instances *InstancesService
275
276	InterconnectAttachments *InterconnectAttachmentsService
277
278	InterconnectLocations *InterconnectLocationsService
279
280	Interconnects *InterconnectsService
281
282	LicenseCodes *LicenseCodesService
283
284	Licenses *LicensesService
285
286	MachineImages *MachineImagesService
287
288	MachineTypes *MachineTypesService
289
290	NetworkEndpointGroups *NetworkEndpointGroupsService
291
292	Networks *NetworksService
293
294	NodeGroups *NodeGroupsService
295
296	NodeTemplates *NodeTemplatesService
297
298	NodeTypes *NodeTypesService
299
300	OrganizationSecurityPolicies *OrganizationSecurityPoliciesService
301
302	PacketMirrorings *PacketMirroringsService
303
304	Projects *ProjectsService
305
306	PublicAdvertisedPrefixes *PublicAdvertisedPrefixesService
307
308	PublicDelegatedPrefixes *PublicDelegatedPrefixesService
309
310	RegionAutoscalers *RegionAutoscalersService
311
312	RegionBackendServices *RegionBackendServicesService
313
314	RegionCommitments *RegionCommitmentsService
315
316	RegionDiskTypes *RegionDiskTypesService
317
318	RegionDisks *RegionDisksService
319
320	RegionHealthCheckServices *RegionHealthCheckServicesService
321
322	RegionHealthChecks *RegionHealthChecksService
323
324	RegionInstanceGroupManagers *RegionInstanceGroupManagersService
325
326	RegionInstanceGroups *RegionInstanceGroupsService
327
328	RegionNetworkEndpointGroups *RegionNetworkEndpointGroupsService
329
330	RegionNotificationEndpoints *RegionNotificationEndpointsService
331
332	RegionOperations *RegionOperationsService
333
334	RegionSslCertificates *RegionSslCertificatesService
335
336	RegionTargetHttpProxies *RegionTargetHttpProxiesService
337
338	RegionTargetHttpsProxies *RegionTargetHttpsProxiesService
339
340	RegionUrlMaps *RegionUrlMapsService
341
342	Regions *RegionsService
343
344	Reservations *ReservationsService
345
346	ResourcePolicies *ResourcePoliciesService
347
348	Routers *RoutersService
349
350	Routes *RoutesService
351
352	SecurityPolicies *SecurityPoliciesService
353
354	Snapshots *SnapshotsService
355
356	SslCertificates *SslCertificatesService
357
358	SslPolicies *SslPoliciesService
359
360	Subnetworks *SubnetworksService
361
362	TargetHttpProxies *TargetHttpProxiesService
363
364	TargetHttpsProxies *TargetHttpsProxiesService
365
366	TargetInstances *TargetInstancesService
367
368	TargetPools *TargetPoolsService
369
370	TargetSslProxies *TargetSslProxiesService
371
372	TargetTcpProxies *TargetTcpProxiesService
373
374	TargetVpnGateways *TargetVpnGatewaysService
375
376	UrlMaps *UrlMapsService
377
378	VpnGateways *VpnGatewaysService
379
380	VpnTunnels *VpnTunnelsService
381
382	ZoneOperations *ZoneOperationsService
383
384	Zones *ZonesService
385}
386
387func (s *Service) userAgent() string {
388	if s.UserAgent == "" {
389		return googleapi.UserAgent
390	}
391	return googleapi.UserAgent + " " + s.UserAgent
392}
393
394func NewAcceleratorTypesService(s *Service) *AcceleratorTypesService {
395	rs := &AcceleratorTypesService{s: s}
396	return rs
397}
398
399type AcceleratorTypesService struct {
400	s *Service
401}
402
403func NewAddressesService(s *Service) *AddressesService {
404	rs := &AddressesService{s: s}
405	return rs
406}
407
408type AddressesService struct {
409	s *Service
410}
411
412func NewAutoscalersService(s *Service) *AutoscalersService {
413	rs := &AutoscalersService{s: s}
414	return rs
415}
416
417type AutoscalersService struct {
418	s *Service
419}
420
421func NewBackendBucketsService(s *Service) *BackendBucketsService {
422	rs := &BackendBucketsService{s: s}
423	return rs
424}
425
426type BackendBucketsService struct {
427	s *Service
428}
429
430func NewBackendServicesService(s *Service) *BackendServicesService {
431	rs := &BackendServicesService{s: s}
432	return rs
433}
434
435type BackendServicesService struct {
436	s *Service
437}
438
439func NewDiskTypesService(s *Service) *DiskTypesService {
440	rs := &DiskTypesService{s: s}
441	return rs
442}
443
444type DiskTypesService struct {
445	s *Service
446}
447
448func NewDisksService(s *Service) *DisksService {
449	rs := &DisksService{s: s}
450	return rs
451}
452
453type DisksService struct {
454	s *Service
455}
456
457func NewExternalVpnGatewaysService(s *Service) *ExternalVpnGatewaysService {
458	rs := &ExternalVpnGatewaysService{s: s}
459	return rs
460}
461
462type ExternalVpnGatewaysService struct {
463	s *Service
464}
465
466func NewFirewallsService(s *Service) *FirewallsService {
467	rs := &FirewallsService{s: s}
468	return rs
469}
470
471type FirewallsService struct {
472	s *Service
473}
474
475func NewForwardingRulesService(s *Service) *ForwardingRulesService {
476	rs := &ForwardingRulesService{s: s}
477	return rs
478}
479
480type ForwardingRulesService struct {
481	s *Service
482}
483
484func NewGlobalAddressesService(s *Service) *GlobalAddressesService {
485	rs := &GlobalAddressesService{s: s}
486	return rs
487}
488
489type GlobalAddressesService struct {
490	s *Service
491}
492
493func NewGlobalForwardingRulesService(s *Service) *GlobalForwardingRulesService {
494	rs := &GlobalForwardingRulesService{s: s}
495	return rs
496}
497
498type GlobalForwardingRulesService struct {
499	s *Service
500}
501
502func NewGlobalNetworkEndpointGroupsService(s *Service) *GlobalNetworkEndpointGroupsService {
503	rs := &GlobalNetworkEndpointGroupsService{s: s}
504	return rs
505}
506
507type GlobalNetworkEndpointGroupsService struct {
508	s *Service
509}
510
511func NewGlobalOperationsService(s *Service) *GlobalOperationsService {
512	rs := &GlobalOperationsService{s: s}
513	return rs
514}
515
516type GlobalOperationsService struct {
517	s *Service
518}
519
520func NewGlobalOrganizationOperationsService(s *Service) *GlobalOrganizationOperationsService {
521	rs := &GlobalOrganizationOperationsService{s: s}
522	return rs
523}
524
525type GlobalOrganizationOperationsService struct {
526	s *Service
527}
528
529func NewGlobalPublicDelegatedPrefixesService(s *Service) *GlobalPublicDelegatedPrefixesService {
530	rs := &GlobalPublicDelegatedPrefixesService{s: s}
531	return rs
532}
533
534type GlobalPublicDelegatedPrefixesService struct {
535	s *Service
536}
537
538func NewHealthChecksService(s *Service) *HealthChecksService {
539	rs := &HealthChecksService{s: s}
540	return rs
541}
542
543type HealthChecksService struct {
544	s *Service
545}
546
547func NewHttpHealthChecksService(s *Service) *HttpHealthChecksService {
548	rs := &HttpHealthChecksService{s: s}
549	return rs
550}
551
552type HttpHealthChecksService struct {
553	s *Service
554}
555
556func NewHttpsHealthChecksService(s *Service) *HttpsHealthChecksService {
557	rs := &HttpsHealthChecksService{s: s}
558	return rs
559}
560
561type HttpsHealthChecksService struct {
562	s *Service
563}
564
565func NewImagesService(s *Service) *ImagesService {
566	rs := &ImagesService{s: s}
567	return rs
568}
569
570type ImagesService struct {
571	s *Service
572}
573
574func NewInstanceGroupManagersService(s *Service) *InstanceGroupManagersService {
575	rs := &InstanceGroupManagersService{s: s}
576	return rs
577}
578
579type InstanceGroupManagersService struct {
580	s *Service
581}
582
583func NewInstanceGroupsService(s *Service) *InstanceGroupsService {
584	rs := &InstanceGroupsService{s: s}
585	return rs
586}
587
588type InstanceGroupsService struct {
589	s *Service
590}
591
592func NewInstanceTemplatesService(s *Service) *InstanceTemplatesService {
593	rs := &InstanceTemplatesService{s: s}
594	return rs
595}
596
597type InstanceTemplatesService struct {
598	s *Service
599}
600
601func NewInstancesService(s *Service) *InstancesService {
602	rs := &InstancesService{s: s}
603	return rs
604}
605
606type InstancesService struct {
607	s *Service
608}
609
610func NewInterconnectAttachmentsService(s *Service) *InterconnectAttachmentsService {
611	rs := &InterconnectAttachmentsService{s: s}
612	return rs
613}
614
615type InterconnectAttachmentsService struct {
616	s *Service
617}
618
619func NewInterconnectLocationsService(s *Service) *InterconnectLocationsService {
620	rs := &InterconnectLocationsService{s: s}
621	return rs
622}
623
624type InterconnectLocationsService struct {
625	s *Service
626}
627
628func NewInterconnectsService(s *Service) *InterconnectsService {
629	rs := &InterconnectsService{s: s}
630	return rs
631}
632
633type InterconnectsService struct {
634	s *Service
635}
636
637func NewLicenseCodesService(s *Service) *LicenseCodesService {
638	rs := &LicenseCodesService{s: s}
639	return rs
640}
641
642type LicenseCodesService struct {
643	s *Service
644}
645
646func NewLicensesService(s *Service) *LicensesService {
647	rs := &LicensesService{s: s}
648	return rs
649}
650
651type LicensesService struct {
652	s *Service
653}
654
655func NewMachineImagesService(s *Service) *MachineImagesService {
656	rs := &MachineImagesService{s: s}
657	return rs
658}
659
660type MachineImagesService struct {
661	s *Service
662}
663
664func NewMachineTypesService(s *Service) *MachineTypesService {
665	rs := &MachineTypesService{s: s}
666	return rs
667}
668
669type MachineTypesService struct {
670	s *Service
671}
672
673func NewNetworkEndpointGroupsService(s *Service) *NetworkEndpointGroupsService {
674	rs := &NetworkEndpointGroupsService{s: s}
675	return rs
676}
677
678type NetworkEndpointGroupsService struct {
679	s *Service
680}
681
682func NewNetworksService(s *Service) *NetworksService {
683	rs := &NetworksService{s: s}
684	return rs
685}
686
687type NetworksService struct {
688	s *Service
689}
690
691func NewNodeGroupsService(s *Service) *NodeGroupsService {
692	rs := &NodeGroupsService{s: s}
693	return rs
694}
695
696type NodeGroupsService struct {
697	s *Service
698}
699
700func NewNodeTemplatesService(s *Service) *NodeTemplatesService {
701	rs := &NodeTemplatesService{s: s}
702	return rs
703}
704
705type NodeTemplatesService struct {
706	s *Service
707}
708
709func NewNodeTypesService(s *Service) *NodeTypesService {
710	rs := &NodeTypesService{s: s}
711	return rs
712}
713
714type NodeTypesService struct {
715	s *Service
716}
717
718func NewOrganizationSecurityPoliciesService(s *Service) *OrganizationSecurityPoliciesService {
719	rs := &OrganizationSecurityPoliciesService{s: s}
720	return rs
721}
722
723type OrganizationSecurityPoliciesService struct {
724	s *Service
725}
726
727func NewPacketMirroringsService(s *Service) *PacketMirroringsService {
728	rs := &PacketMirroringsService{s: s}
729	return rs
730}
731
732type PacketMirroringsService struct {
733	s *Service
734}
735
736func NewProjectsService(s *Service) *ProjectsService {
737	rs := &ProjectsService{s: s}
738	return rs
739}
740
741type ProjectsService struct {
742	s *Service
743}
744
745func NewPublicAdvertisedPrefixesService(s *Service) *PublicAdvertisedPrefixesService {
746	rs := &PublicAdvertisedPrefixesService{s: s}
747	return rs
748}
749
750type PublicAdvertisedPrefixesService struct {
751	s *Service
752}
753
754func NewPublicDelegatedPrefixesService(s *Service) *PublicDelegatedPrefixesService {
755	rs := &PublicDelegatedPrefixesService{s: s}
756	return rs
757}
758
759type PublicDelegatedPrefixesService struct {
760	s *Service
761}
762
763func NewRegionAutoscalersService(s *Service) *RegionAutoscalersService {
764	rs := &RegionAutoscalersService{s: s}
765	return rs
766}
767
768type RegionAutoscalersService struct {
769	s *Service
770}
771
772func NewRegionBackendServicesService(s *Service) *RegionBackendServicesService {
773	rs := &RegionBackendServicesService{s: s}
774	return rs
775}
776
777type RegionBackendServicesService struct {
778	s *Service
779}
780
781func NewRegionCommitmentsService(s *Service) *RegionCommitmentsService {
782	rs := &RegionCommitmentsService{s: s}
783	return rs
784}
785
786type RegionCommitmentsService struct {
787	s *Service
788}
789
790func NewRegionDiskTypesService(s *Service) *RegionDiskTypesService {
791	rs := &RegionDiskTypesService{s: s}
792	return rs
793}
794
795type RegionDiskTypesService struct {
796	s *Service
797}
798
799func NewRegionDisksService(s *Service) *RegionDisksService {
800	rs := &RegionDisksService{s: s}
801	return rs
802}
803
804type RegionDisksService struct {
805	s *Service
806}
807
808func NewRegionHealthCheckServicesService(s *Service) *RegionHealthCheckServicesService {
809	rs := &RegionHealthCheckServicesService{s: s}
810	return rs
811}
812
813type RegionHealthCheckServicesService struct {
814	s *Service
815}
816
817func NewRegionHealthChecksService(s *Service) *RegionHealthChecksService {
818	rs := &RegionHealthChecksService{s: s}
819	return rs
820}
821
822type RegionHealthChecksService struct {
823	s *Service
824}
825
826func NewRegionInstanceGroupManagersService(s *Service) *RegionInstanceGroupManagersService {
827	rs := &RegionInstanceGroupManagersService{s: s}
828	return rs
829}
830
831type RegionInstanceGroupManagersService struct {
832	s *Service
833}
834
835func NewRegionInstanceGroupsService(s *Service) *RegionInstanceGroupsService {
836	rs := &RegionInstanceGroupsService{s: s}
837	return rs
838}
839
840type RegionInstanceGroupsService struct {
841	s *Service
842}
843
844func NewRegionNetworkEndpointGroupsService(s *Service) *RegionNetworkEndpointGroupsService {
845	rs := &RegionNetworkEndpointGroupsService{s: s}
846	return rs
847}
848
849type RegionNetworkEndpointGroupsService struct {
850	s *Service
851}
852
853func NewRegionNotificationEndpointsService(s *Service) *RegionNotificationEndpointsService {
854	rs := &RegionNotificationEndpointsService{s: s}
855	return rs
856}
857
858type RegionNotificationEndpointsService struct {
859	s *Service
860}
861
862func NewRegionOperationsService(s *Service) *RegionOperationsService {
863	rs := &RegionOperationsService{s: s}
864	return rs
865}
866
867type RegionOperationsService struct {
868	s *Service
869}
870
871func NewRegionSslCertificatesService(s *Service) *RegionSslCertificatesService {
872	rs := &RegionSslCertificatesService{s: s}
873	return rs
874}
875
876type RegionSslCertificatesService struct {
877	s *Service
878}
879
880func NewRegionTargetHttpProxiesService(s *Service) *RegionTargetHttpProxiesService {
881	rs := &RegionTargetHttpProxiesService{s: s}
882	return rs
883}
884
885type RegionTargetHttpProxiesService struct {
886	s *Service
887}
888
889func NewRegionTargetHttpsProxiesService(s *Service) *RegionTargetHttpsProxiesService {
890	rs := &RegionTargetHttpsProxiesService{s: s}
891	return rs
892}
893
894type RegionTargetHttpsProxiesService struct {
895	s *Service
896}
897
898func NewRegionUrlMapsService(s *Service) *RegionUrlMapsService {
899	rs := &RegionUrlMapsService{s: s}
900	return rs
901}
902
903type RegionUrlMapsService struct {
904	s *Service
905}
906
907func NewRegionsService(s *Service) *RegionsService {
908	rs := &RegionsService{s: s}
909	return rs
910}
911
912type RegionsService struct {
913	s *Service
914}
915
916func NewReservationsService(s *Service) *ReservationsService {
917	rs := &ReservationsService{s: s}
918	return rs
919}
920
921type ReservationsService struct {
922	s *Service
923}
924
925func NewResourcePoliciesService(s *Service) *ResourcePoliciesService {
926	rs := &ResourcePoliciesService{s: s}
927	return rs
928}
929
930type ResourcePoliciesService struct {
931	s *Service
932}
933
934func NewRoutersService(s *Service) *RoutersService {
935	rs := &RoutersService{s: s}
936	return rs
937}
938
939type RoutersService struct {
940	s *Service
941}
942
943func NewRoutesService(s *Service) *RoutesService {
944	rs := &RoutesService{s: s}
945	return rs
946}
947
948type RoutesService struct {
949	s *Service
950}
951
952func NewSecurityPoliciesService(s *Service) *SecurityPoliciesService {
953	rs := &SecurityPoliciesService{s: s}
954	return rs
955}
956
957type SecurityPoliciesService struct {
958	s *Service
959}
960
961func NewSnapshotsService(s *Service) *SnapshotsService {
962	rs := &SnapshotsService{s: s}
963	return rs
964}
965
966type SnapshotsService struct {
967	s *Service
968}
969
970func NewSslCertificatesService(s *Service) *SslCertificatesService {
971	rs := &SslCertificatesService{s: s}
972	return rs
973}
974
975type SslCertificatesService struct {
976	s *Service
977}
978
979func NewSslPoliciesService(s *Service) *SslPoliciesService {
980	rs := &SslPoliciesService{s: s}
981	return rs
982}
983
984type SslPoliciesService struct {
985	s *Service
986}
987
988func NewSubnetworksService(s *Service) *SubnetworksService {
989	rs := &SubnetworksService{s: s}
990	return rs
991}
992
993type SubnetworksService struct {
994	s *Service
995}
996
997func NewTargetHttpProxiesService(s *Service) *TargetHttpProxiesService {
998	rs := &TargetHttpProxiesService{s: s}
999	return rs
1000}
1001
1002type TargetHttpProxiesService struct {
1003	s *Service
1004}
1005
1006func NewTargetHttpsProxiesService(s *Service) *TargetHttpsProxiesService {
1007	rs := &TargetHttpsProxiesService{s: s}
1008	return rs
1009}
1010
1011type TargetHttpsProxiesService struct {
1012	s *Service
1013}
1014
1015func NewTargetInstancesService(s *Service) *TargetInstancesService {
1016	rs := &TargetInstancesService{s: s}
1017	return rs
1018}
1019
1020type TargetInstancesService struct {
1021	s *Service
1022}
1023
1024func NewTargetPoolsService(s *Service) *TargetPoolsService {
1025	rs := &TargetPoolsService{s: s}
1026	return rs
1027}
1028
1029type TargetPoolsService struct {
1030	s *Service
1031}
1032
1033func NewTargetSslProxiesService(s *Service) *TargetSslProxiesService {
1034	rs := &TargetSslProxiesService{s: s}
1035	return rs
1036}
1037
1038type TargetSslProxiesService struct {
1039	s *Service
1040}
1041
1042func NewTargetTcpProxiesService(s *Service) *TargetTcpProxiesService {
1043	rs := &TargetTcpProxiesService{s: s}
1044	return rs
1045}
1046
1047type TargetTcpProxiesService struct {
1048	s *Service
1049}
1050
1051func NewTargetVpnGatewaysService(s *Service) *TargetVpnGatewaysService {
1052	rs := &TargetVpnGatewaysService{s: s}
1053	return rs
1054}
1055
1056type TargetVpnGatewaysService struct {
1057	s *Service
1058}
1059
1060func NewUrlMapsService(s *Service) *UrlMapsService {
1061	rs := &UrlMapsService{s: s}
1062	return rs
1063}
1064
1065type UrlMapsService struct {
1066	s *Service
1067}
1068
1069func NewVpnGatewaysService(s *Service) *VpnGatewaysService {
1070	rs := &VpnGatewaysService{s: s}
1071	return rs
1072}
1073
1074type VpnGatewaysService struct {
1075	s *Service
1076}
1077
1078func NewVpnTunnelsService(s *Service) *VpnTunnelsService {
1079	rs := &VpnTunnelsService{s: s}
1080	return rs
1081}
1082
1083type VpnTunnelsService struct {
1084	s *Service
1085}
1086
1087func NewZoneOperationsService(s *Service) *ZoneOperationsService {
1088	rs := &ZoneOperationsService{s: s}
1089	return rs
1090}
1091
1092type ZoneOperationsService struct {
1093	s *Service
1094}
1095
1096func NewZonesService(s *Service) *ZonesService {
1097	rs := &ZonesService{s: s}
1098	return rs
1099}
1100
1101type ZonesService struct {
1102	s *Service
1103}
1104
1105// AcceleratorConfig: A specification of the type and number of
1106// accelerator cards attached to the instance.
1107type AcceleratorConfig struct {
1108	// AcceleratorCount: The number of the guest accelerator cards exposed
1109	// to this instance.
1110	AcceleratorCount int64 `json:"acceleratorCount,omitempty"`
1111
1112	// AcceleratorType: Full or partial URL of the accelerator type resource
1113	// to attach to this instance. For example:
1114	// projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-
1115	// p100 If you are creating an instance template, specify only the
1116	// accelerator name. See GPUs on Compute Engine for a full list of
1117	// accelerator types.
1118	AcceleratorType string `json:"acceleratorType,omitempty"`
1119
1120	// ForceSendFields is a list of field names (e.g. "AcceleratorCount") to
1121	// unconditionally include in API requests. By default, fields with
1122	// empty values are omitted from API requests. However, any non-pointer,
1123	// non-interface field appearing in ForceSendFields will be sent to the
1124	// server regardless of whether the field is empty or not. This may be
1125	// used to include empty fields in Patch requests.
1126	ForceSendFields []string `json:"-"`
1127
1128	// NullFields is a list of field names (e.g. "AcceleratorCount") to
1129	// include in API requests with the JSON null value. By default, fields
1130	// with empty values are omitted from API requests. However, any field
1131	// with an empty value appearing in NullFields will be sent to the
1132	// server as null. It is an error if a field in this list has a
1133	// non-empty value. This may be used to include null fields in Patch
1134	// requests.
1135	NullFields []string `json:"-"`
1136}
1137
1138func (s *AcceleratorConfig) MarshalJSON() ([]byte, error) {
1139	type NoMethod AcceleratorConfig
1140	raw := NoMethod(*s)
1141	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1142}
1143
1144// AcceleratorType: Represents an Accelerator Type resource.
1145//
1146// Google Cloud Platform provides graphics processing units
1147// (accelerators) that you can add to VM instances to improve or
1148// accelerate performance when working with intensive workloads. For
1149// more information, read GPUs on Compute Engine. (== resource_for
1150// {$api_version}.acceleratorTypes ==)
1151type AcceleratorType struct {
1152	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
1153	// format.
1154	CreationTimestamp string `json:"creationTimestamp,omitempty"`
1155
1156	// Deprecated: [Output Only] The deprecation status associated with this
1157	// accelerator type.
1158	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
1159
1160	// Description: [Output Only] An optional textual description of the
1161	// resource.
1162	Description string `json:"description,omitempty"`
1163
1164	// Id: [Output Only] The unique identifier for the resource. This
1165	// identifier is defined by the server.
1166	Id uint64 `json:"id,omitempty,string"`
1167
1168	// Kind: [Output Only] The type of the resource. Always
1169	// compute#acceleratorType for accelerator types.
1170	Kind string `json:"kind,omitempty"`
1171
1172	// MaximumCardsPerInstance: [Output Only] Maximum accelerator cards
1173	// allowed per instance.
1174	MaximumCardsPerInstance int64 `json:"maximumCardsPerInstance,omitempty"`
1175
1176	// Name: [Output Only] Name of the resource.
1177	Name string `json:"name,omitempty"`
1178
1179	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
1180	// resource.
1181	SelfLink string `json:"selfLink,omitempty"`
1182
1183	// SelfLinkWithId: [Output Only] Server-defined URL for this resource's
1184	// resource id.
1185	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
1186
1187	// Zone: [Output Only] The name of the zone where the accelerator type
1188	// resides, such as us-central1-a. You must specify this field as part
1189	// of the HTTP request URL. It is not settable as a field in the request
1190	// body.
1191	Zone string `json:"zone,omitempty"`
1192
1193	// ServerResponse contains the HTTP response code and headers from the
1194	// server.
1195	googleapi.ServerResponse `json:"-"`
1196
1197	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
1198	// to unconditionally include in API requests. By default, fields with
1199	// empty values are omitted from API requests. However, any non-pointer,
1200	// non-interface field appearing in ForceSendFields will be sent to the
1201	// server regardless of whether the field is empty or not. This may be
1202	// used to include empty fields in Patch requests.
1203	ForceSendFields []string `json:"-"`
1204
1205	// NullFields is a list of field names (e.g. "CreationTimestamp") to
1206	// include in API requests with the JSON null value. By default, fields
1207	// with empty values are omitted from API requests. However, any field
1208	// with an empty value appearing in NullFields will be sent to the
1209	// server as null. It is an error if a field in this list has a
1210	// non-empty value. This may be used to include null fields in Patch
1211	// requests.
1212	NullFields []string `json:"-"`
1213}
1214
1215func (s *AcceleratorType) MarshalJSON() ([]byte, error) {
1216	type NoMethod AcceleratorType
1217	raw := NoMethod(*s)
1218	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1219}
1220
1221type AcceleratorTypeAggregatedList struct {
1222	// Id: [Output Only] Unique identifier for the resource; defined by the
1223	// server.
1224	Id string `json:"id,omitempty"`
1225
1226	// Items: A list of AcceleratorTypesScopedList resources.
1227	Items map[string]AcceleratorTypesScopedList `json:"items,omitempty"`
1228
1229	// Kind: [Output Only] Type of resource. Always
1230	// compute#acceleratorTypeAggregatedList for aggregated lists of
1231	// accelerator types.
1232	Kind string `json:"kind,omitempty"`
1233
1234	// NextPageToken: [Output Only] This token allows you to get the next
1235	// page of results for list requests. If the number of results is larger
1236	// than maxResults, use the nextPageToken as a value for the query
1237	// parameter pageToken in the next list request. Subsequent list
1238	// requests will have their own nextPageToken to continue paging through
1239	// the results.
1240	NextPageToken string `json:"nextPageToken,omitempty"`
1241
1242	// SelfLink: [Output Only] Server-defined URL for this resource.
1243	SelfLink string `json:"selfLink,omitempty"`
1244
1245	// Warning: [Output Only] Informational warning message.
1246	Warning *AcceleratorTypeAggregatedListWarning `json:"warning,omitempty"`
1247
1248	// ServerResponse contains the HTTP response code and headers from the
1249	// server.
1250	googleapi.ServerResponse `json:"-"`
1251
1252	// ForceSendFields is a list of field names (e.g. "Id") to
1253	// unconditionally include in API requests. By default, fields with
1254	// empty values are omitted from API requests. However, any non-pointer,
1255	// non-interface field appearing in ForceSendFields will be sent to the
1256	// server regardless of whether the field is empty or not. This may be
1257	// used to include empty fields in Patch requests.
1258	ForceSendFields []string `json:"-"`
1259
1260	// NullFields is a list of field names (e.g. "Id") to include in API
1261	// requests with the JSON null value. By default, fields with empty
1262	// values are omitted from API requests. However, any field with an
1263	// empty value appearing in NullFields will be sent to the server as
1264	// null. It is an error if a field in this list has a non-empty value.
1265	// This may be used to include null fields in Patch requests.
1266	NullFields []string `json:"-"`
1267}
1268
1269func (s *AcceleratorTypeAggregatedList) MarshalJSON() ([]byte, error) {
1270	type NoMethod AcceleratorTypeAggregatedList
1271	raw := NoMethod(*s)
1272	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1273}
1274
1275// AcceleratorTypeAggregatedListWarning: [Output Only] Informational
1276// warning message.
1277type AcceleratorTypeAggregatedListWarning struct {
1278	// Code: [Output Only] A warning code, if applicable. For example,
1279	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1280	// the response.
1281	//
1282	// Possible values:
1283	//   "CLEANUP_FAILED"
1284	//   "DEPRECATED_RESOURCE_USED"
1285	//   "DEPRECATED_TYPE_USED"
1286	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1287	//   "EXPERIMENTAL_TYPE_USED"
1288	//   "EXTERNAL_API_WARNING"
1289	//   "FIELD_VALUE_OVERRIDEN"
1290	//   "INJECTED_KERNELS_DEPRECATED"
1291	//   "MISSING_TYPE_DEPENDENCY"
1292	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1293	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1294	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1295	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1296	//   "NEXT_HOP_NOT_RUNNING"
1297	//   "NOT_CRITICAL_ERROR"
1298	//   "NO_RESULTS_ON_PAGE"
1299	//   "REQUIRED_TOS_AGREEMENT"
1300	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1301	//   "RESOURCE_NOT_DELETED"
1302	//   "SCHEMA_VALIDATION_IGNORED"
1303	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1304	//   "UNDECLARED_PROPERTIES"
1305	//   "UNREACHABLE"
1306	Code string `json:"code,omitempty"`
1307
1308	// Data: [Output Only] Metadata about this warning in key: value format.
1309	// For example:
1310	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1311	Data []*AcceleratorTypeAggregatedListWarningData `json:"data,omitempty"`
1312
1313	// Message: [Output Only] A human-readable description of the warning
1314	// code.
1315	Message string `json:"message,omitempty"`
1316
1317	// ForceSendFields is a list of field names (e.g. "Code") to
1318	// unconditionally include in API requests. By default, fields with
1319	// empty values are omitted from API requests. However, any non-pointer,
1320	// non-interface field appearing in ForceSendFields will be sent to the
1321	// server regardless of whether the field is empty or not. This may be
1322	// used to include empty fields in Patch requests.
1323	ForceSendFields []string `json:"-"`
1324
1325	// NullFields is a list of field names (e.g. "Code") to include in API
1326	// requests with the JSON null value. By default, fields with empty
1327	// values are omitted from API requests. However, any field with an
1328	// empty value appearing in NullFields will be sent to the server as
1329	// null. It is an error if a field in this list has a non-empty value.
1330	// This may be used to include null fields in Patch requests.
1331	NullFields []string `json:"-"`
1332}
1333
1334func (s *AcceleratorTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
1335	type NoMethod AcceleratorTypeAggregatedListWarning
1336	raw := NoMethod(*s)
1337	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1338}
1339
1340type AcceleratorTypeAggregatedListWarningData struct {
1341	// Key: [Output Only] A key that provides more detail on the warning
1342	// being returned. For example, for warnings where there are no results
1343	// in a list request for a particular zone, this key might be scope and
1344	// the key value might be the zone name. Other examples might be a key
1345	// indicating a deprecated resource and a suggested replacement, or a
1346	// warning about invalid network settings (for example, if an instance
1347	// attempts to perform IP forwarding but is not enabled for IP
1348	// forwarding).
1349	Key string `json:"key,omitempty"`
1350
1351	// Value: [Output Only] A warning data value corresponding to the key.
1352	Value string `json:"value,omitempty"`
1353
1354	// ForceSendFields is a list of field names (e.g. "Key") to
1355	// unconditionally include in API requests. By default, fields with
1356	// empty values are omitted from API requests. However, any non-pointer,
1357	// non-interface field appearing in ForceSendFields will be sent to the
1358	// server regardless of whether the field is empty or not. This may be
1359	// used to include empty fields in Patch requests.
1360	ForceSendFields []string `json:"-"`
1361
1362	// NullFields is a list of field names (e.g. "Key") to include in API
1363	// requests with the JSON null value. By default, fields with empty
1364	// values are omitted from API requests. However, any field with an
1365	// empty value appearing in NullFields will be sent to the server as
1366	// null. It is an error if a field in this list has a non-empty value.
1367	// This may be used to include null fields in Patch requests.
1368	NullFields []string `json:"-"`
1369}
1370
1371func (s *AcceleratorTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
1372	type NoMethod AcceleratorTypeAggregatedListWarningData
1373	raw := NoMethod(*s)
1374	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1375}
1376
1377// AcceleratorTypeList: Contains a list of accelerator types.
1378type AcceleratorTypeList struct {
1379	// Id: [Output Only] Unique identifier for the resource; defined by the
1380	// server.
1381	Id string `json:"id,omitempty"`
1382
1383	// Items: A list of AcceleratorType resources.
1384	Items []*AcceleratorType `json:"items,omitempty"`
1385
1386	// Kind: [Output Only] Type of resource. Always
1387	// compute#acceleratorTypeList for lists of accelerator types.
1388	Kind string `json:"kind,omitempty"`
1389
1390	// NextPageToken: [Output Only] This token allows you to get the next
1391	// page of results for list requests. If the number of results is larger
1392	// than maxResults, use the nextPageToken as a value for the query
1393	// parameter pageToken in the next list request. Subsequent list
1394	// requests will have their own nextPageToken to continue paging through
1395	// the results.
1396	NextPageToken string `json:"nextPageToken,omitempty"`
1397
1398	// SelfLink: [Output Only] Server-defined URL for this resource.
1399	SelfLink string `json:"selfLink,omitempty"`
1400
1401	// Warning: [Output Only] Informational warning message.
1402	Warning *AcceleratorTypeListWarning `json:"warning,omitempty"`
1403
1404	// ServerResponse contains the HTTP response code and headers from the
1405	// server.
1406	googleapi.ServerResponse `json:"-"`
1407
1408	// ForceSendFields is a list of field names (e.g. "Id") to
1409	// unconditionally include in API requests. By default, fields with
1410	// empty values are omitted from API requests. However, any non-pointer,
1411	// non-interface field appearing in ForceSendFields will be sent to the
1412	// server regardless of whether the field is empty or not. This may be
1413	// used to include empty fields in Patch requests.
1414	ForceSendFields []string `json:"-"`
1415
1416	// NullFields is a list of field names (e.g. "Id") to include in API
1417	// requests with the JSON null value. By default, fields with empty
1418	// values are omitted from API requests. However, any field with an
1419	// empty value appearing in NullFields will be sent to the server as
1420	// null. It is an error if a field in this list has a non-empty value.
1421	// This may be used to include null fields in Patch requests.
1422	NullFields []string `json:"-"`
1423}
1424
1425func (s *AcceleratorTypeList) MarshalJSON() ([]byte, error) {
1426	type NoMethod AcceleratorTypeList
1427	raw := NoMethod(*s)
1428	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1429}
1430
1431// AcceleratorTypeListWarning: [Output Only] Informational warning
1432// message.
1433type AcceleratorTypeListWarning struct {
1434	// Code: [Output Only] A warning code, if applicable. For example,
1435	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1436	// the response.
1437	//
1438	// Possible values:
1439	//   "CLEANUP_FAILED"
1440	//   "DEPRECATED_RESOURCE_USED"
1441	//   "DEPRECATED_TYPE_USED"
1442	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1443	//   "EXPERIMENTAL_TYPE_USED"
1444	//   "EXTERNAL_API_WARNING"
1445	//   "FIELD_VALUE_OVERRIDEN"
1446	//   "INJECTED_KERNELS_DEPRECATED"
1447	//   "MISSING_TYPE_DEPENDENCY"
1448	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1449	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1450	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1451	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1452	//   "NEXT_HOP_NOT_RUNNING"
1453	//   "NOT_CRITICAL_ERROR"
1454	//   "NO_RESULTS_ON_PAGE"
1455	//   "REQUIRED_TOS_AGREEMENT"
1456	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1457	//   "RESOURCE_NOT_DELETED"
1458	//   "SCHEMA_VALIDATION_IGNORED"
1459	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1460	//   "UNDECLARED_PROPERTIES"
1461	//   "UNREACHABLE"
1462	Code string `json:"code,omitempty"`
1463
1464	// Data: [Output Only] Metadata about this warning in key: value format.
1465	// For example:
1466	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1467	Data []*AcceleratorTypeListWarningData `json:"data,omitempty"`
1468
1469	// Message: [Output Only] A human-readable description of the warning
1470	// code.
1471	Message string `json:"message,omitempty"`
1472
1473	// ForceSendFields is a list of field names (e.g. "Code") to
1474	// unconditionally include in API requests. By default, fields with
1475	// empty values are omitted from API requests. However, any non-pointer,
1476	// non-interface field appearing in ForceSendFields will be sent to the
1477	// server regardless of whether the field is empty or not. This may be
1478	// used to include empty fields in Patch requests.
1479	ForceSendFields []string `json:"-"`
1480
1481	// NullFields is a list of field names (e.g. "Code") to include in API
1482	// requests with the JSON null value. By default, fields with empty
1483	// values are omitted from API requests. However, any field with an
1484	// empty value appearing in NullFields will be sent to the server as
1485	// null. It is an error if a field in this list has a non-empty value.
1486	// This may be used to include null fields in Patch requests.
1487	NullFields []string `json:"-"`
1488}
1489
1490func (s *AcceleratorTypeListWarning) MarshalJSON() ([]byte, error) {
1491	type NoMethod AcceleratorTypeListWarning
1492	raw := NoMethod(*s)
1493	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1494}
1495
1496type AcceleratorTypeListWarningData struct {
1497	// Key: [Output Only] A key that provides more detail on the warning
1498	// being returned. For example, for warnings where there are no results
1499	// in a list request for a particular zone, this key might be scope and
1500	// the key value might be the zone name. Other examples might be a key
1501	// indicating a deprecated resource and a suggested replacement, or a
1502	// warning about invalid network settings (for example, if an instance
1503	// attempts to perform IP forwarding but is not enabled for IP
1504	// forwarding).
1505	Key string `json:"key,omitempty"`
1506
1507	// Value: [Output Only] A warning data value corresponding to the key.
1508	Value string `json:"value,omitempty"`
1509
1510	// ForceSendFields is a list of field names (e.g. "Key") to
1511	// unconditionally include in API requests. By default, fields with
1512	// empty values are omitted from API requests. However, any non-pointer,
1513	// non-interface field appearing in ForceSendFields will be sent to the
1514	// server regardless of whether the field is empty or not. This may be
1515	// used to include empty fields in Patch requests.
1516	ForceSendFields []string `json:"-"`
1517
1518	// NullFields is a list of field names (e.g. "Key") to include in API
1519	// requests with the JSON null value. By default, fields with empty
1520	// values are omitted from API requests. However, any field with an
1521	// empty value appearing in NullFields will be sent to the server as
1522	// null. It is an error if a field in this list has a non-empty value.
1523	// This may be used to include null fields in Patch requests.
1524	NullFields []string `json:"-"`
1525}
1526
1527func (s *AcceleratorTypeListWarningData) MarshalJSON() ([]byte, error) {
1528	type NoMethod AcceleratorTypeListWarningData
1529	raw := NoMethod(*s)
1530	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1531}
1532
1533type AcceleratorTypesScopedList struct {
1534	// AcceleratorTypes: [Output Only] A list of accelerator types contained
1535	// in this scope.
1536	AcceleratorTypes []*AcceleratorType `json:"acceleratorTypes,omitempty"`
1537
1538	// Warning: [Output Only] An informational warning that appears when the
1539	// accelerator types list is empty.
1540	Warning *AcceleratorTypesScopedListWarning `json:"warning,omitempty"`
1541
1542	// ForceSendFields is a list of field names (e.g. "AcceleratorTypes") to
1543	// unconditionally include in API requests. By default, fields with
1544	// empty values are omitted from API requests. However, any non-pointer,
1545	// non-interface field appearing in ForceSendFields will be sent to the
1546	// server regardless of whether the field is empty or not. This may be
1547	// used to include empty fields in Patch requests.
1548	ForceSendFields []string `json:"-"`
1549
1550	// NullFields is a list of field names (e.g. "AcceleratorTypes") to
1551	// include in API requests with the JSON null value. By default, fields
1552	// with empty values are omitted from API requests. However, any field
1553	// with an empty value appearing in NullFields will be sent to the
1554	// server as null. It is an error if a field in this list has a
1555	// non-empty value. This may be used to include null fields in Patch
1556	// requests.
1557	NullFields []string `json:"-"`
1558}
1559
1560func (s *AcceleratorTypesScopedList) MarshalJSON() ([]byte, error) {
1561	type NoMethod AcceleratorTypesScopedList
1562	raw := NoMethod(*s)
1563	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1564}
1565
1566// AcceleratorTypesScopedListWarning: [Output Only] An informational
1567// warning that appears when the accelerator types list is empty.
1568type AcceleratorTypesScopedListWarning struct {
1569	// Code: [Output Only] A warning code, if applicable. For example,
1570	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1571	// the response.
1572	//
1573	// Possible values:
1574	//   "CLEANUP_FAILED"
1575	//   "DEPRECATED_RESOURCE_USED"
1576	//   "DEPRECATED_TYPE_USED"
1577	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1578	//   "EXPERIMENTAL_TYPE_USED"
1579	//   "EXTERNAL_API_WARNING"
1580	//   "FIELD_VALUE_OVERRIDEN"
1581	//   "INJECTED_KERNELS_DEPRECATED"
1582	//   "MISSING_TYPE_DEPENDENCY"
1583	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1584	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1585	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1586	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1587	//   "NEXT_HOP_NOT_RUNNING"
1588	//   "NOT_CRITICAL_ERROR"
1589	//   "NO_RESULTS_ON_PAGE"
1590	//   "REQUIRED_TOS_AGREEMENT"
1591	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1592	//   "RESOURCE_NOT_DELETED"
1593	//   "SCHEMA_VALIDATION_IGNORED"
1594	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1595	//   "UNDECLARED_PROPERTIES"
1596	//   "UNREACHABLE"
1597	Code string `json:"code,omitempty"`
1598
1599	// Data: [Output Only] Metadata about this warning in key: value format.
1600	// For example:
1601	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1602	Data []*AcceleratorTypesScopedListWarningData `json:"data,omitempty"`
1603
1604	// Message: [Output Only] A human-readable description of the warning
1605	// code.
1606	Message string `json:"message,omitempty"`
1607
1608	// ForceSendFields is a list of field names (e.g. "Code") to
1609	// unconditionally include in API requests. By default, fields with
1610	// empty values are omitted from API requests. However, any non-pointer,
1611	// non-interface field appearing in ForceSendFields will be sent to the
1612	// server regardless of whether the field is empty or not. This may be
1613	// used to include empty fields in Patch requests.
1614	ForceSendFields []string `json:"-"`
1615
1616	// NullFields is a list of field names (e.g. "Code") to include in API
1617	// requests with the JSON null value. By default, fields with empty
1618	// values are omitted from API requests. However, any field with an
1619	// empty value appearing in NullFields will be sent to the server as
1620	// null. It is an error if a field in this list has a non-empty value.
1621	// This may be used to include null fields in Patch requests.
1622	NullFields []string `json:"-"`
1623}
1624
1625func (s *AcceleratorTypesScopedListWarning) MarshalJSON() ([]byte, error) {
1626	type NoMethod AcceleratorTypesScopedListWarning
1627	raw := NoMethod(*s)
1628	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1629}
1630
1631type AcceleratorTypesScopedListWarningData struct {
1632	// Key: [Output Only] A key that provides more detail on the warning
1633	// being returned. For example, for warnings where there are no results
1634	// in a list request for a particular zone, this key might be scope and
1635	// the key value might be the zone name. Other examples might be a key
1636	// indicating a deprecated resource and a suggested replacement, or a
1637	// warning about invalid network settings (for example, if an instance
1638	// attempts to perform IP forwarding but is not enabled for IP
1639	// forwarding).
1640	Key string `json:"key,omitempty"`
1641
1642	// Value: [Output Only] A warning data value corresponding to the key.
1643	Value string `json:"value,omitempty"`
1644
1645	// ForceSendFields is a list of field names (e.g. "Key") to
1646	// unconditionally include in API requests. By default, fields with
1647	// empty values are omitted from API requests. However, any non-pointer,
1648	// non-interface field appearing in ForceSendFields will be sent to the
1649	// server regardless of whether the field is empty or not. This may be
1650	// used to include empty fields in Patch requests.
1651	ForceSendFields []string `json:"-"`
1652
1653	// NullFields is a list of field names (e.g. "Key") to include in API
1654	// requests with the JSON null value. By default, fields with empty
1655	// values are omitted from API requests. However, any field with an
1656	// empty value appearing in NullFields will be sent to the server as
1657	// null. It is an error if a field in this list has a non-empty value.
1658	// This may be used to include null fields in Patch requests.
1659	NullFields []string `json:"-"`
1660}
1661
1662func (s *AcceleratorTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
1663	type NoMethod AcceleratorTypesScopedListWarningData
1664	raw := NoMethod(*s)
1665	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1666}
1667
1668// AccessConfig: An access configuration attached to an instance's
1669// network interface. Only one access config per instance is supported.
1670type AccessConfig struct {
1671	// Kind: [Output Only] Type of the resource. Always compute#accessConfig
1672	// for access configs.
1673	Kind string `json:"kind,omitempty"`
1674
1675	// Name: The name of this access configuration. The default and
1676	// recommended name is External NAT, but you can use any arbitrary
1677	// string, such as My external IP or Network Access.
1678	Name string `json:"name,omitempty"`
1679
1680	// NatIP: An external IP address associated with this instance. Specify
1681	// an unused static external IP address available to the project or
1682	// leave this field undefined to use an IP from a shared ephemeral IP
1683	// address pool. If you specify a static external IP address, it must
1684	// live in the same region as the zone of the instance.
1685	NatIP string `json:"natIP,omitempty"`
1686
1687	// NetworkTier: This signifies the networking tier used for configuring
1688	// this access configuration and can only take the following values:
1689	// PREMIUM, STANDARD.
1690	//
1691	// If an AccessConfig is specified without a valid external IP address,
1692	// an ephemeral IP will be created with this networkTier.
1693	//
1694	// If an AccessConfig with a valid external IP address is specified, it
1695	// must match that of the networkTier associated with the Address
1696	// resource owning that IP.
1697	//
1698	// Possible values:
1699	//   "PREMIUM"
1700	//   "SELECT"
1701	//   "STANDARD"
1702	NetworkTier string `json:"networkTier,omitempty"`
1703
1704	// PublicDnsName: [Output Only] The public DNS domain name for the
1705	// instance.
1706	PublicDnsName string `json:"publicDnsName,omitempty"`
1707
1708	// PublicPtrDomainName: The DNS domain name for the public PTR record.
1709	// You can set this field only if the `setPublicPtr` field is enabled.
1710	PublicPtrDomainName string `json:"publicPtrDomainName,omitempty"`
1711
1712	// SetPublicDns: Specifies whether a public DNS 'A' record should be
1713	// created for the external IP address of this access configuration.
1714	SetPublicDns bool `json:"setPublicDns,omitempty"`
1715
1716	// SetPublicPtr: Specifies whether a public DNS 'PTR' record should be
1717	// created to map the external IP address of the instance to a DNS
1718	// domain name.
1719	SetPublicPtr bool `json:"setPublicPtr,omitempty"`
1720
1721	// Type: The type of configuration. The default and only option is
1722	// ONE_TO_ONE_NAT.
1723	//
1724	// Possible values:
1725	//   "ONE_TO_ONE_NAT" (default)
1726	Type string `json:"type,omitempty"`
1727
1728	// ForceSendFields is a list of field names (e.g. "Kind") to
1729	// unconditionally include in API requests. By default, fields with
1730	// empty values are omitted from API requests. However, any non-pointer,
1731	// non-interface field appearing in ForceSendFields will be sent to the
1732	// server regardless of whether the field is empty or not. This may be
1733	// used to include empty fields in Patch requests.
1734	ForceSendFields []string `json:"-"`
1735
1736	// NullFields is a list of field names (e.g. "Kind") to include in API
1737	// requests with the JSON null value. By default, fields with empty
1738	// values are omitted from API requests. However, any field with an
1739	// empty value appearing in NullFields will be sent to the server as
1740	// null. It is an error if a field in this list has a non-empty value.
1741	// This may be used to include null fields in Patch requests.
1742	NullFields []string `json:"-"`
1743}
1744
1745func (s *AccessConfig) MarshalJSON() ([]byte, error) {
1746	type NoMethod AccessConfig
1747	raw := NoMethod(*s)
1748	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1749}
1750
1751// Address: Use global external addresses for GFE-based external HTTP(S)
1752// load balancers in Premium Tier.
1753//
1754// Use global internal addresses for reserved peering network
1755// range.
1756//
1757// Use regional external addresses for the following resources:
1758//
1759// - External IP addresses for VM instances - Regional external
1760// forwarding rules - Cloud NAT external IP addresses - GFE based LBs in
1761// Standard Tier - Network LBs in Premium or Standard Tier - Cloud VPN
1762// gateways (both Classic and HA)
1763//
1764// Use regional internal IP addresses for subnet IP ranges (primary and
1765// secondary). This includes:
1766//
1767// - Internal IP addresses for VM instances - Alias IP ranges of VM
1768// instances (/32 only) - Regional internal forwarding rules - Internal
1769// TCP/UDP load balancer addresses - Internal HTTP(S) load balancer
1770// addresses - Cloud DNS inbound forwarding IP addresses
1771//
1772// For more information, read reserved IP address.
1773//
1774// (== resource_for {$api_version}.addresses ==) (== resource_for
1775// {$api_version}.globalAddresses ==)
1776type Address struct {
1777	// Address: The static IP address represented by this resource.
1778	Address string `json:"address,omitempty"`
1779
1780	// AddressType: The type of address to reserve, either INTERNAL or
1781	// EXTERNAL. If unspecified, defaults to EXTERNAL.
1782	//
1783	// Possible values:
1784	//   "DNS_FORWARDING"
1785	//   "EXTERNAL"
1786	//   "INTERNAL"
1787	//   "UNSPECIFIED_TYPE"
1788	AddressType string `json:"addressType,omitempty"`
1789
1790	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
1791	// format.
1792	CreationTimestamp string `json:"creationTimestamp,omitempty"`
1793
1794	// Description: An optional description of this resource. Provide this
1795	// field when you create the resource.
1796	Description string `json:"description,omitempty"`
1797
1798	// Id: [Output Only] The unique identifier for the resource. This
1799	// identifier is defined by the server.
1800	Id uint64 `json:"id,omitempty,string"`
1801
1802	// IpVersion: The IP version that will be used by this address. Valid
1803	// options are IPV4 or IPV6. This can only be specified for a global
1804	// address.
1805	//
1806	// Possible values:
1807	//   "IPV4"
1808	//   "IPV6"
1809	//   "UNSPECIFIED_VERSION"
1810	IpVersion string `json:"ipVersion,omitempty"`
1811
1812	// Kind: [Output Only] Type of the resource. Always compute#address for
1813	// addresses.
1814	Kind string `json:"kind,omitempty"`
1815
1816	// LabelFingerprint: A fingerprint for the labels being applied to this
1817	// Address, which is essentially a hash of the labels set used for
1818	// optimistic locking. The fingerprint is initially generated by Compute
1819	// Engine and changes after every request to modify or update labels.
1820	// You must always provide an up-to-date fingerprint hash in order to
1821	// update or change labels, otherwise the request will fail with error
1822	// 412 conditionNotMet.
1823	//
1824	// To see the latest fingerprint, make a get() request to retrieve an
1825	// Address.
1826	LabelFingerprint string `json:"labelFingerprint,omitempty"`
1827
1828	// Labels: Labels to apply to this Address resource. These can be later
1829	// modified by the setLabels method. Each label key/value must comply
1830	// with RFC1035. Label values may be empty.
1831	Labels map[string]string `json:"labels,omitempty"`
1832
1833	// Name: Name of the resource. Provided by the client when the resource
1834	// is created. The name must be 1-63 characters long, and comply with
1835	// RFC1035. Specifically, the name must be 1-63 characters long and
1836	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
1837	// character must be a lowercase letter, and all following characters
1838	// (except for the last character) must be a dash, lowercase letter, or
1839	// digit. The last character must be a lowercase letter or digit.
1840	Name string `json:"name,omitempty"`
1841
1842	// Network: The URL of the network in which to reserve the address. This
1843	// field can only be used with INTERNAL type with the VPC_PEERING
1844	// purpose.
1845	Network string `json:"network,omitempty"`
1846
1847	// NetworkTier: This signifies the networking tier used for configuring
1848	// this address and can only take the following values: PREMIUM or
1849	// STANDARD. Global forwarding rules can only be Premium Tier. Regional
1850	// forwarding rules can be either Premium or Standard Tier. Standard
1851	// Tier addresses applied to regional forwarding rules can be used with
1852	// any external load balancer. Regional forwarding rules in Premium Tier
1853	// can only be used with a network load balancer.
1854	//
1855	// If this field is not specified, it is assumed to be PREMIUM.
1856	//
1857	// Possible values:
1858	//   "PREMIUM"
1859	//   "SELECT"
1860	//   "STANDARD"
1861	NetworkTier string `json:"networkTier,omitempty"`
1862
1863	// PrefixLength: The prefix length if the resource reprensents an IP
1864	// range.
1865	PrefixLength int64 `json:"prefixLength,omitempty"`
1866
1867	// Purpose: The purpose of this resource, which can be one of the
1868	// following values:
1869	// - `GCE_ENDPOINT` for addresses that are used by VM instances, alias
1870	// IP ranges, internal load balancers, and similar resources.
1871	// - `DNS_RESOLVER` for a DNS resolver address in a subnetwork
1872	// - `VPC_PEERING` for addresses that are reserved for VPC peer
1873	// networks.
1874	// - `NAT_AUTO` for addresses that are external IP addresses
1875	// automatically reserved for Cloud NAT.
1876	//
1877	// Possible values:
1878	//   "DNS_RESOLVER"
1879	//   "GCE_ENDPOINT"
1880	//   "NAT_AUTO"
1881	//   "SHARED_LOADBALANCER_VIP"
1882	//   "VPC_PEERING"
1883	Purpose string `json:"purpose,omitempty"`
1884
1885	// Region: [Output Only] The URL of the region where the regional
1886	// address resides. This field is not applicable to global addresses.
1887	// You must specify this field as part of the HTTP request URL.
1888	Region string `json:"region,omitempty"`
1889
1890	// SelfLink: [Output Only] Server-defined URL for the resource.
1891	SelfLink string `json:"selfLink,omitempty"`
1892
1893	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
1894	// with the resource id.
1895	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
1896
1897	// Status: [Output Only] The status of the address, which can be one of
1898	// RESERVING, RESERVED, or IN_USE. An address that is RESERVING is
1899	// currently in the process of being reserved. A RESERVED address is
1900	// currently reserved and available to use. An IN_USE address is
1901	// currently being used by another resource and is not available.
1902	//
1903	// Possible values:
1904	//   "IN_USE"
1905	//   "RESERVED"
1906	//   "RESERVING"
1907	Status string `json:"status,omitempty"`
1908
1909	// Subnetwork: The URL of the subnetwork in which to reserve the
1910	// address. If an IP address is specified, it must be within the
1911	// subnetwork's IP range. This field can only be used with INTERNAL type
1912	// with a GCE_ENDPOINT or DNS_RESOLVER purpose.
1913	Subnetwork string `json:"subnetwork,omitempty"`
1914
1915	// Users: [Output Only] The URLs of the resources that are using this
1916	// address.
1917	Users []string `json:"users,omitempty"`
1918
1919	// ServerResponse contains the HTTP response code and headers from the
1920	// server.
1921	googleapi.ServerResponse `json:"-"`
1922
1923	// ForceSendFields is a list of field names (e.g. "Address") to
1924	// unconditionally include in API requests. By default, fields with
1925	// empty values are omitted from API requests. However, any non-pointer,
1926	// non-interface field appearing in ForceSendFields will be sent to the
1927	// server regardless of whether the field is empty or not. This may be
1928	// used to include empty fields in Patch requests.
1929	ForceSendFields []string `json:"-"`
1930
1931	// NullFields is a list of field names (e.g. "Address") to include in
1932	// API requests with the JSON null value. By default, fields with empty
1933	// values are omitted from API requests. However, any field with an
1934	// empty value appearing in NullFields will be sent to the server as
1935	// null. It is an error if a field in this list has a non-empty value.
1936	// This may be used to include null fields in Patch requests.
1937	NullFields []string `json:"-"`
1938}
1939
1940func (s *Address) MarshalJSON() ([]byte, error) {
1941	type NoMethod Address
1942	raw := NoMethod(*s)
1943	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1944}
1945
1946type AddressAggregatedList struct {
1947	// Id: [Output Only] Unique identifier for the resource; defined by the
1948	// server.
1949	Id string `json:"id,omitempty"`
1950
1951	// Items: A list of AddressesScopedList resources.
1952	Items map[string]AddressesScopedList `json:"items,omitempty"`
1953
1954	// Kind: [Output Only] Type of resource. Always
1955	// compute#addressAggregatedList for aggregated lists of addresses.
1956	Kind string `json:"kind,omitempty"`
1957
1958	// NextPageToken: [Output Only] This token allows you to get the next
1959	// page of results for list requests. If the number of results is larger
1960	// than maxResults, use the nextPageToken as a value for the query
1961	// parameter pageToken in the next list request. Subsequent list
1962	// requests will have their own nextPageToken to continue paging through
1963	// the results.
1964	NextPageToken string `json:"nextPageToken,omitempty"`
1965
1966	// SelfLink: [Output Only] Server-defined URL for this resource.
1967	SelfLink string `json:"selfLink,omitempty"`
1968
1969	// Warning: [Output Only] Informational warning message.
1970	Warning *AddressAggregatedListWarning `json:"warning,omitempty"`
1971
1972	// ServerResponse contains the HTTP response code and headers from the
1973	// server.
1974	googleapi.ServerResponse `json:"-"`
1975
1976	// ForceSendFields is a list of field names (e.g. "Id") to
1977	// unconditionally include in API requests. By default, fields with
1978	// empty values are omitted from API requests. However, any non-pointer,
1979	// non-interface field appearing in ForceSendFields will be sent to the
1980	// server regardless of whether the field is empty or not. This may be
1981	// used to include empty fields in Patch requests.
1982	ForceSendFields []string `json:"-"`
1983
1984	// NullFields is a list of field names (e.g. "Id") to include in API
1985	// requests with the JSON null value. By default, fields with empty
1986	// values are omitted from API requests. However, any field with an
1987	// empty value appearing in NullFields will be sent to the server as
1988	// null. It is an error if a field in this list has a non-empty value.
1989	// This may be used to include null fields in Patch requests.
1990	NullFields []string `json:"-"`
1991}
1992
1993func (s *AddressAggregatedList) MarshalJSON() ([]byte, error) {
1994	type NoMethod AddressAggregatedList
1995	raw := NoMethod(*s)
1996	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1997}
1998
1999// AddressAggregatedListWarning: [Output Only] Informational warning
2000// message.
2001type AddressAggregatedListWarning struct {
2002	// Code: [Output Only] A warning code, if applicable. For example,
2003	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2004	// the response.
2005	//
2006	// Possible values:
2007	//   "CLEANUP_FAILED"
2008	//   "DEPRECATED_RESOURCE_USED"
2009	//   "DEPRECATED_TYPE_USED"
2010	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2011	//   "EXPERIMENTAL_TYPE_USED"
2012	//   "EXTERNAL_API_WARNING"
2013	//   "FIELD_VALUE_OVERRIDEN"
2014	//   "INJECTED_KERNELS_DEPRECATED"
2015	//   "MISSING_TYPE_DEPENDENCY"
2016	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2017	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2018	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2019	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2020	//   "NEXT_HOP_NOT_RUNNING"
2021	//   "NOT_CRITICAL_ERROR"
2022	//   "NO_RESULTS_ON_PAGE"
2023	//   "REQUIRED_TOS_AGREEMENT"
2024	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2025	//   "RESOURCE_NOT_DELETED"
2026	//   "SCHEMA_VALIDATION_IGNORED"
2027	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2028	//   "UNDECLARED_PROPERTIES"
2029	//   "UNREACHABLE"
2030	Code string `json:"code,omitempty"`
2031
2032	// Data: [Output Only] Metadata about this warning in key: value format.
2033	// For example:
2034	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2035	Data []*AddressAggregatedListWarningData `json:"data,omitempty"`
2036
2037	// Message: [Output Only] A human-readable description of the warning
2038	// code.
2039	Message string `json:"message,omitempty"`
2040
2041	// ForceSendFields is a list of field names (e.g. "Code") 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. "Code") 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 *AddressAggregatedListWarning) MarshalJSON() ([]byte, error) {
2059	type NoMethod AddressAggregatedListWarning
2060	raw := NoMethod(*s)
2061	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2062}
2063
2064type AddressAggregatedListWarningData struct {
2065	// Key: [Output Only] A key that provides more detail on the warning
2066	// being returned. For example, for warnings where there are no results
2067	// in a list request for a particular zone, this key might be scope and
2068	// the key value might be the zone name. Other examples might be a key
2069	// indicating a deprecated resource and a suggested replacement, or a
2070	// warning about invalid network settings (for example, if an instance
2071	// attempts to perform IP forwarding but is not enabled for IP
2072	// forwarding).
2073	Key string `json:"key,omitempty"`
2074
2075	// Value: [Output Only] A warning data value corresponding to the key.
2076	Value string `json:"value,omitempty"`
2077
2078	// ForceSendFields is a list of field names (e.g. "Key") to
2079	// unconditionally include in API requests. By default, fields with
2080	// empty values are omitted from API requests. However, any non-pointer,
2081	// non-interface field appearing in ForceSendFields will be sent to the
2082	// server regardless of whether the field is empty or not. This may be
2083	// used to include empty fields in Patch requests.
2084	ForceSendFields []string `json:"-"`
2085
2086	// NullFields is a list of field names (e.g. "Key") to include in API
2087	// requests with the JSON null value. By default, fields with empty
2088	// values are omitted from API requests. However, any field with an
2089	// empty value appearing in NullFields will be sent to the server as
2090	// null. It is an error if a field in this list has a non-empty value.
2091	// This may be used to include null fields in Patch requests.
2092	NullFields []string `json:"-"`
2093}
2094
2095func (s *AddressAggregatedListWarningData) MarshalJSON() ([]byte, error) {
2096	type NoMethod AddressAggregatedListWarningData
2097	raw := NoMethod(*s)
2098	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2099}
2100
2101// AddressList: Contains a list of addresses.
2102type AddressList struct {
2103	// Id: [Output Only] Unique identifier for the resource; defined by the
2104	// server.
2105	Id string `json:"id,omitempty"`
2106
2107	// Items: A list of Address resources.
2108	Items []*Address `json:"items,omitempty"`
2109
2110	// Kind: [Output Only] Type of resource. Always compute#addressList for
2111	// lists of addresses.
2112	Kind string `json:"kind,omitempty"`
2113
2114	// NextPageToken: [Output Only] This token allows you to get the next
2115	// page of results for list requests. If the number of results is larger
2116	// than maxResults, use the nextPageToken as a value for the query
2117	// parameter pageToken in the next list request. Subsequent list
2118	// requests will have their own nextPageToken to continue paging through
2119	// the results.
2120	NextPageToken string `json:"nextPageToken,omitempty"`
2121
2122	// SelfLink: [Output Only] Server-defined URL for this resource.
2123	SelfLink string `json:"selfLink,omitempty"`
2124
2125	// Warning: [Output Only] Informational warning message.
2126	Warning *AddressListWarning `json:"warning,omitempty"`
2127
2128	// ServerResponse contains the HTTP response code and headers from the
2129	// server.
2130	googleapi.ServerResponse `json:"-"`
2131
2132	// ForceSendFields is a list of field names (e.g. "Id") to
2133	// unconditionally include in API requests. By default, fields with
2134	// empty values are omitted from API requests. However, any non-pointer,
2135	// non-interface field appearing in ForceSendFields will be sent to the
2136	// server regardless of whether the field is empty or not. This may be
2137	// used to include empty fields in Patch requests.
2138	ForceSendFields []string `json:"-"`
2139
2140	// NullFields is a list of field names (e.g. "Id") to include in API
2141	// requests with the JSON null value. By default, fields with empty
2142	// values are omitted from API requests. However, any field with an
2143	// empty value appearing in NullFields will be sent to the server as
2144	// null. It is an error if a field in this list has a non-empty value.
2145	// This may be used to include null fields in Patch requests.
2146	NullFields []string `json:"-"`
2147}
2148
2149func (s *AddressList) MarshalJSON() ([]byte, error) {
2150	type NoMethod AddressList
2151	raw := NoMethod(*s)
2152	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2153}
2154
2155// AddressListWarning: [Output Only] Informational warning message.
2156type AddressListWarning struct {
2157	// Code: [Output Only] A warning code, if applicable. For example,
2158	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2159	// the response.
2160	//
2161	// Possible values:
2162	//   "CLEANUP_FAILED"
2163	//   "DEPRECATED_RESOURCE_USED"
2164	//   "DEPRECATED_TYPE_USED"
2165	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2166	//   "EXPERIMENTAL_TYPE_USED"
2167	//   "EXTERNAL_API_WARNING"
2168	//   "FIELD_VALUE_OVERRIDEN"
2169	//   "INJECTED_KERNELS_DEPRECATED"
2170	//   "MISSING_TYPE_DEPENDENCY"
2171	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2172	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2173	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2174	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2175	//   "NEXT_HOP_NOT_RUNNING"
2176	//   "NOT_CRITICAL_ERROR"
2177	//   "NO_RESULTS_ON_PAGE"
2178	//   "REQUIRED_TOS_AGREEMENT"
2179	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2180	//   "RESOURCE_NOT_DELETED"
2181	//   "SCHEMA_VALIDATION_IGNORED"
2182	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2183	//   "UNDECLARED_PROPERTIES"
2184	//   "UNREACHABLE"
2185	Code string `json:"code,omitempty"`
2186
2187	// Data: [Output Only] Metadata about this warning in key: value format.
2188	// For example:
2189	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2190	Data []*AddressListWarningData `json:"data,omitempty"`
2191
2192	// Message: [Output Only] A human-readable description of the warning
2193	// code.
2194	Message string `json:"message,omitempty"`
2195
2196	// ForceSendFields is a list of field names (e.g. "Code") to
2197	// unconditionally include in API requests. By default, fields with
2198	// empty values are omitted from API requests. However, any non-pointer,
2199	// non-interface field appearing in ForceSendFields will be sent to the
2200	// server regardless of whether the field is empty or not. This may be
2201	// used to include empty fields in Patch requests.
2202	ForceSendFields []string `json:"-"`
2203
2204	// NullFields is a list of field names (e.g. "Code") to include in API
2205	// requests with the JSON null value. By default, fields with empty
2206	// values are omitted from API requests. However, any field with an
2207	// empty value appearing in NullFields will be sent to the server as
2208	// null. It is an error if a field in this list has a non-empty value.
2209	// This may be used to include null fields in Patch requests.
2210	NullFields []string `json:"-"`
2211}
2212
2213func (s *AddressListWarning) MarshalJSON() ([]byte, error) {
2214	type NoMethod AddressListWarning
2215	raw := NoMethod(*s)
2216	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2217}
2218
2219type AddressListWarningData struct {
2220	// Key: [Output Only] A key that provides more detail on the warning
2221	// being returned. For example, for warnings where there are no results
2222	// in a list request for a particular zone, this key might be scope and
2223	// the key value might be the zone name. Other examples might be a key
2224	// indicating a deprecated resource and a suggested replacement, or a
2225	// warning about invalid network settings (for example, if an instance
2226	// attempts to perform IP forwarding but is not enabled for IP
2227	// forwarding).
2228	Key string `json:"key,omitempty"`
2229
2230	// Value: [Output Only] A warning data value corresponding to the key.
2231	Value string `json:"value,omitempty"`
2232
2233	// ForceSendFields is a list of field names (e.g. "Key") to
2234	// unconditionally include in API requests. By default, fields with
2235	// empty values are omitted from API requests. However, any non-pointer,
2236	// non-interface field appearing in ForceSendFields will be sent to the
2237	// server regardless of whether the field is empty or not. This may be
2238	// used to include empty fields in Patch requests.
2239	ForceSendFields []string `json:"-"`
2240
2241	// NullFields is a list of field names (e.g. "Key") to include in API
2242	// requests with the JSON null value. By default, fields with empty
2243	// values are omitted from API requests. However, any field with an
2244	// empty value appearing in NullFields will be sent to the server as
2245	// null. It is an error if a field in this list has a non-empty value.
2246	// This may be used to include null fields in Patch requests.
2247	NullFields []string `json:"-"`
2248}
2249
2250func (s *AddressListWarningData) MarshalJSON() ([]byte, error) {
2251	type NoMethod AddressListWarningData
2252	raw := NoMethod(*s)
2253	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2254}
2255
2256type AddressesScopedList struct {
2257	// Addresses: [Output Only] A list of addresses contained in this scope.
2258	Addresses []*Address `json:"addresses,omitempty"`
2259
2260	// Warning: [Output Only] Informational warning which replaces the list
2261	// of addresses when the list is empty.
2262	Warning *AddressesScopedListWarning `json:"warning,omitempty"`
2263
2264	// ForceSendFields is a list of field names (e.g. "Addresses") to
2265	// unconditionally include in API requests. By default, fields with
2266	// empty values are omitted from API requests. However, any non-pointer,
2267	// non-interface field appearing in ForceSendFields will be sent to the
2268	// server regardless of whether the field is empty or not. This may be
2269	// used to include empty fields in Patch requests.
2270	ForceSendFields []string `json:"-"`
2271
2272	// NullFields is a list of field names (e.g. "Addresses") to include in
2273	// API requests with the JSON null value. By default, fields with empty
2274	// values are omitted from API requests. However, any field with an
2275	// empty value appearing in NullFields will be sent to the server as
2276	// null. It is an error if a field in this list has a non-empty value.
2277	// This may be used to include null fields in Patch requests.
2278	NullFields []string `json:"-"`
2279}
2280
2281func (s *AddressesScopedList) MarshalJSON() ([]byte, error) {
2282	type NoMethod AddressesScopedList
2283	raw := NoMethod(*s)
2284	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2285}
2286
2287// AddressesScopedListWarning: [Output Only] Informational warning which
2288// replaces the list of addresses when the list is empty.
2289type AddressesScopedListWarning struct {
2290	// Code: [Output Only] A warning code, if applicable. For example,
2291	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2292	// the response.
2293	//
2294	// Possible values:
2295	//   "CLEANUP_FAILED"
2296	//   "DEPRECATED_RESOURCE_USED"
2297	//   "DEPRECATED_TYPE_USED"
2298	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2299	//   "EXPERIMENTAL_TYPE_USED"
2300	//   "EXTERNAL_API_WARNING"
2301	//   "FIELD_VALUE_OVERRIDEN"
2302	//   "INJECTED_KERNELS_DEPRECATED"
2303	//   "MISSING_TYPE_DEPENDENCY"
2304	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2305	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2306	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2307	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2308	//   "NEXT_HOP_NOT_RUNNING"
2309	//   "NOT_CRITICAL_ERROR"
2310	//   "NO_RESULTS_ON_PAGE"
2311	//   "REQUIRED_TOS_AGREEMENT"
2312	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2313	//   "RESOURCE_NOT_DELETED"
2314	//   "SCHEMA_VALIDATION_IGNORED"
2315	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2316	//   "UNDECLARED_PROPERTIES"
2317	//   "UNREACHABLE"
2318	Code string `json:"code,omitempty"`
2319
2320	// Data: [Output Only] Metadata about this warning in key: value format.
2321	// For example:
2322	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2323	Data []*AddressesScopedListWarningData `json:"data,omitempty"`
2324
2325	// Message: [Output Only] A human-readable description of the warning
2326	// code.
2327	Message string `json:"message,omitempty"`
2328
2329	// ForceSendFields is a list of field names (e.g. "Code") to
2330	// unconditionally include in API requests. By default, fields with
2331	// empty values are omitted from API requests. However, any non-pointer,
2332	// non-interface field appearing in ForceSendFields will be sent to the
2333	// server regardless of whether the field is empty or not. This may be
2334	// used to include empty fields in Patch requests.
2335	ForceSendFields []string `json:"-"`
2336
2337	// NullFields is a list of field names (e.g. "Code") to include in API
2338	// requests with the JSON null value. By default, fields with empty
2339	// values are omitted from API requests. However, any field with an
2340	// empty value appearing in NullFields will be sent to the server as
2341	// null. It is an error if a field in this list has a non-empty value.
2342	// This may be used to include null fields in Patch requests.
2343	NullFields []string `json:"-"`
2344}
2345
2346func (s *AddressesScopedListWarning) MarshalJSON() ([]byte, error) {
2347	type NoMethod AddressesScopedListWarning
2348	raw := NoMethod(*s)
2349	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2350}
2351
2352type AddressesScopedListWarningData struct {
2353	// Key: [Output Only] A key that provides more detail on the warning
2354	// being returned. For example, for warnings where there are no results
2355	// in a list request for a particular zone, this key might be scope and
2356	// the key value might be the zone name. Other examples might be a key
2357	// indicating a deprecated resource and a suggested replacement, or a
2358	// warning about invalid network settings (for example, if an instance
2359	// attempts to perform IP forwarding but is not enabled for IP
2360	// forwarding).
2361	Key string `json:"key,omitempty"`
2362
2363	// Value: [Output Only] A warning data value corresponding to the key.
2364	Value string `json:"value,omitempty"`
2365
2366	// ForceSendFields is a list of field names (e.g. "Key") to
2367	// unconditionally include in API requests. By default, fields with
2368	// empty values are omitted from API requests. However, any non-pointer,
2369	// non-interface field appearing in ForceSendFields will be sent to the
2370	// server regardless of whether the field is empty or not. This may be
2371	// used to include empty fields in Patch requests.
2372	ForceSendFields []string `json:"-"`
2373
2374	// NullFields is a list of field names (e.g. "Key") to include in API
2375	// requests with the JSON null value. By default, fields with empty
2376	// values are omitted from API requests. However, any field with an
2377	// empty value appearing in NullFields will be sent to the server as
2378	// null. It is an error if a field in this list has a non-empty value.
2379	// This may be used to include null fields in Patch requests.
2380	NullFields []string `json:"-"`
2381}
2382
2383func (s *AddressesScopedListWarningData) MarshalJSON() ([]byte, error) {
2384	type NoMethod AddressesScopedListWarningData
2385	raw := NoMethod(*s)
2386	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2387}
2388
2389// AliasIpRange: An alias IP range attached to an instance's network
2390// interface.
2391type AliasIpRange struct {
2392	// IpCidrRange: The IP alias ranges to allocate for this interface. This
2393	// IP CIDR range must belong to the specified subnetwork and cannot
2394	// contain IP addresses reserved by system or used by other network
2395	// interfaces. This range may be a single IP address (such as 10.2.3.4),
2396	// a netmask (such as /24) or a CIDR-formatted string (such as
2397	// 10.1.2.0/24).
2398	IpCidrRange string `json:"ipCidrRange,omitempty"`
2399
2400	// SubnetworkRangeName: The name of a subnetwork secondary IP range from
2401	// which to allocate an IP alias range. If not specified, the primary
2402	// range of the subnetwork is used.
2403	SubnetworkRangeName string `json:"subnetworkRangeName,omitempty"`
2404
2405	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
2406	// unconditionally include in API requests. By default, fields with
2407	// empty values are omitted from API requests. However, any non-pointer,
2408	// non-interface field appearing in ForceSendFields will be sent to the
2409	// server regardless of whether the field is empty or not. This may be
2410	// used to include empty fields in Patch requests.
2411	ForceSendFields []string `json:"-"`
2412
2413	// NullFields is a list of field names (e.g. "IpCidrRange") to include
2414	// in API requests with the JSON null value. By default, fields with
2415	// empty values are omitted from API requests. However, any field with
2416	// an empty value appearing in NullFields will be sent to the server as
2417	// null. It is an error if a field in this list has a non-empty value.
2418	// This may be used to include null fields in Patch requests.
2419	NullFields []string `json:"-"`
2420}
2421
2422func (s *AliasIpRange) MarshalJSON() ([]byte, error) {
2423	type NoMethod AliasIpRange
2424	raw := NoMethod(*s)
2425	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2426}
2427
2428type AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk struct {
2429	// DiskSizeGb: Specifies the size of the disk in base-2 GB.
2430	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2431
2432	// Interface: Specifies the disk interface to use for attaching this
2433	// disk, which is either SCSI or NVME. The default is SCSI. For
2434	// performance characteristics of SCSI over NVMe, see Local SSD
2435	// performance.
2436	//
2437	// Possible values:
2438	//   "NVDIMM"
2439	//   "NVME"
2440	//   "SCSI"
2441	Interface string `json:"interface,omitempty"`
2442
2443	// ForceSendFields is a list of field names (e.g. "DiskSizeGb") to
2444	// unconditionally include in API requests. By default, fields with
2445	// empty values are omitted from API requests. However, any non-pointer,
2446	// non-interface field appearing in ForceSendFields will be sent to the
2447	// server regardless of whether the field is empty or not. This may be
2448	// used to include empty fields in Patch requests.
2449	ForceSendFields []string `json:"-"`
2450
2451	// NullFields is a list of field names (e.g. "DiskSizeGb") to include in
2452	// API requests with the JSON null value. By default, fields with empty
2453	// values are omitted from API requests. However, any field with an
2454	// empty value appearing in NullFields will be sent to the server as
2455	// null. It is an error if a field in this list has a non-empty value.
2456	// This may be used to include null fields in Patch requests.
2457	NullFields []string `json:"-"`
2458}
2459
2460func (s *AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk) MarshalJSON() ([]byte, error) {
2461	type NoMethod AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk
2462	raw := NoMethod(*s)
2463	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2464}
2465
2466// AllocationSpecificSKUAllocationReservedInstanceProperties: Properties
2467// of the SKU instances being reserved.
2468type AllocationSpecificSKUAllocationReservedInstanceProperties struct {
2469	// GuestAccelerators: Specifies accelerator type and count.
2470	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
2471
2472	// LocalSsds: Specifies amount of local ssd to reserve with each
2473	// instance. The type of disk is local-ssd.
2474	LocalSsds []*AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk `json:"localSsds,omitempty"`
2475
2476	// MachineType: Specifies type of machine (name only) which has fixed
2477	// number of vCPUs and fixed amount of memory. This also includes
2478	// specifying custom machine type following
2479	// custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern.
2480	MachineType string `json:"machineType,omitempty"`
2481
2482	// MinCpuPlatform: Minimum cpu platform the reservation.
2483	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
2484
2485	// ForceSendFields is a list of field names (e.g. "GuestAccelerators")
2486	// to unconditionally include in API requests. By default, fields with
2487	// empty values are omitted from API requests. However, any non-pointer,
2488	// non-interface field appearing in ForceSendFields will be sent to the
2489	// server regardless of whether the field is empty or not. This may be
2490	// used to include empty fields in Patch requests.
2491	ForceSendFields []string `json:"-"`
2492
2493	// NullFields is a list of field names (e.g. "GuestAccelerators") to
2494	// include in API requests with the JSON null value. By default, fields
2495	// with empty values are omitted from API requests. However, any field
2496	// with an empty value appearing in NullFields will be sent to the
2497	// server as null. It is an error if a field in this list has a
2498	// non-empty value. This may be used to include null fields in Patch
2499	// requests.
2500	NullFields []string `json:"-"`
2501}
2502
2503func (s *AllocationSpecificSKUAllocationReservedInstanceProperties) MarshalJSON() ([]byte, error) {
2504	type NoMethod AllocationSpecificSKUAllocationReservedInstanceProperties
2505	raw := NoMethod(*s)
2506	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2507}
2508
2509// AllocationSpecificSKUReservation: This reservation type allows to pre
2510// allocate specific instance configuration.
2511type AllocationSpecificSKUReservation struct {
2512	// Count: Specifies the number of resources that are allocated.
2513	Count int64 `json:"count,omitempty,string"`
2514
2515	// InUseCount: [Output Only] Indicates how many instances are in use.
2516	InUseCount int64 `json:"inUseCount,omitempty,string"`
2517
2518	// InstanceProperties: The instance properties for the reservation.
2519	InstanceProperties *AllocationSpecificSKUAllocationReservedInstanceProperties `json:"instanceProperties,omitempty"`
2520
2521	// ForceSendFields is a list of field names (e.g. "Count") to
2522	// unconditionally include in API requests. By default, fields with
2523	// empty values are omitted from API requests. However, any non-pointer,
2524	// non-interface field appearing in ForceSendFields will be sent to the
2525	// server regardless of whether the field is empty or not. This may be
2526	// used to include empty fields in Patch requests.
2527	ForceSendFields []string `json:"-"`
2528
2529	// NullFields is a list of field names (e.g. "Count") to include in API
2530	// requests with the JSON null value. By default, fields with empty
2531	// values are omitted from API requests. However, any field with an
2532	// empty value appearing in NullFields will be sent to the server as
2533	// null. It is an error if a field in this list has a non-empty value.
2534	// This may be used to include null fields in Patch requests.
2535	NullFields []string `json:"-"`
2536}
2537
2538func (s *AllocationSpecificSKUReservation) MarshalJSON() ([]byte, error) {
2539	type NoMethod AllocationSpecificSKUReservation
2540	raw := NoMethod(*s)
2541	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2542}
2543
2544// AttachedDisk: An instance-attached disk resource.
2545type AttachedDisk struct {
2546	// AutoDelete: Specifies whether the disk will be auto-deleted when the
2547	// instance is deleted (but not when the disk is detached from the
2548	// instance).
2549	AutoDelete bool `json:"autoDelete,omitempty"`
2550
2551	// Boot: Indicates that this is a boot disk. The virtual machine will
2552	// use the first partition of the disk for its root filesystem.
2553	Boot bool `json:"boot,omitempty"`
2554
2555	// DeviceName: Specifies a unique device name of your choice that is
2556	// reflected into the /dev/disk/by-id/google-* tree of a Linux operating
2557	// system running within the instance. This name can be used to
2558	// reference the device for mounting, resizing, and so on, from within
2559	// the instance.
2560	//
2561	// If not specified, the server chooses a default device name to apply
2562	// to this disk, in the form persistent-disk-x, where x is a number
2563	// assigned by Google Compute Engine. This field is only applicable for
2564	// persistent disks.
2565	DeviceName string `json:"deviceName,omitempty"`
2566
2567	// DiskEncryptionKey: Encrypts or decrypts a disk using a
2568	// customer-supplied encryption key.
2569	//
2570	// If you are creating a new disk, this field encrypts the new disk
2571	// using an encryption key that you provide. If you are attaching an
2572	// existing disk that is already encrypted, this field decrypts the disk
2573	// using the customer-supplied encryption key.
2574	//
2575	// If you encrypt a disk using a customer-supplied key, you must provide
2576	// the same key again when you attempt to use this resource at a later
2577	// time. For example, you must provide the key when you create a
2578	// snapshot or an image from the disk or when you attach the disk to a
2579	// virtual machine instance.
2580	//
2581	// If you do not provide an encryption key, then the disk will be
2582	// encrypted using an automatically generated key and you do not need to
2583	// provide a key to use the disk later.
2584	//
2585	// Instance templates do not store customer-supplied encryption keys, so
2586	// you cannot use your own keys to encrypt disks in a managed instance
2587	// group.
2588	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
2589
2590	// DiskSizeGb: The size of the disk in GB.
2591	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2592
2593	// GuestOsFeatures: A list of features to enable on the guest operating
2594	// system. Applicable only for bootable images. Read  Enabling guest
2595	// operating system features to see a list of available options.
2596	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
2597
2598	// Index: [Output Only] A zero-based index to this disk, where 0 is
2599	// reserved for the boot disk. If you have many disks attached to an
2600	// instance, each disk would have a unique index number.
2601	Index int64 `json:"index,omitempty"`
2602
2603	// InitializeParams: [Input Only] Specifies the parameters for a new
2604	// disk that will be created alongside the new instance. Use
2605	// initialization parameters to create boot disks or local SSDs attached
2606	// to the new instance.
2607	//
2608	// This property is mutually exclusive with the source property; you can
2609	// only define one or the other, but not both.
2610	InitializeParams *AttachedDiskInitializeParams `json:"initializeParams,omitempty"`
2611
2612	// Interface: Specifies the disk interface to use for attaching this
2613	// disk, which is either SCSI or NVME. The default is SCSI. Persistent
2614	// disks must always use SCSI and the request will fail if you attempt
2615	// to attach a persistent disk in any other format than SCSI. Local SSDs
2616	// can use either NVME or SCSI. For performance characteristics of SCSI
2617	// over NVMe, see Local SSD performance. TODO(b/131765817): Update
2618	// documentation when NVME is supported.
2619	//
2620	// Possible values:
2621	//   "NVDIMM"
2622	//   "NVME"
2623	//   "SCSI"
2624	Interface string `json:"interface,omitempty"`
2625
2626	// Kind: [Output Only] Type of the resource. Always compute#attachedDisk
2627	// for attached disks.
2628	Kind string `json:"kind,omitempty"`
2629
2630	// Licenses: [Output Only] Any valid publicly visible licenses.
2631	Licenses []string `json:"licenses,omitempty"`
2632
2633	// Mode: The mode in which to attach this disk, either READ_WRITE or
2634	// READ_ONLY. If not specified, the default is to attach the disk in
2635	// READ_WRITE mode.
2636	//
2637	// Possible values:
2638	//   "READ_ONLY"
2639	//   "READ_WRITE"
2640	Mode string `json:"mode,omitempty"`
2641
2642	// SavedState: For LocalSSD disks on VM Instances in STOPPED or
2643	// SUSPENDED state, this field is set to PRESERVED if the LocalSSD data
2644	// has been saved to a persistent location by customer request. (see the
2645	// discard_local_ssd option on Stop/Suspend). Read-only in the api.
2646	//
2647	// Possible values:
2648	//   "DISK_SAVED_STATE_UNSPECIFIED"
2649	//   "PRESERVED"
2650	SavedState string `json:"savedState,omitempty"`
2651
2652	// ShieldedInstanceInitialState: [Output Only] shielded vm initial state
2653	// stored on disk
2654	ShieldedInstanceInitialState *InitialStateConfig `json:"shieldedInstanceInitialState,omitempty"`
2655
2656	// Source: Specifies a valid partial or full URL to an existing
2657	// Persistent Disk resource. When creating a new instance, one of
2658	// initializeParams.sourceImage or initializeParams.sourceSnapshot or
2659	// disks.source is required except for local SSD.
2660	//
2661	// If desired, you can also attach existing non-root persistent disks
2662	// using this property. This field is only applicable for persistent
2663	// disks.
2664	//
2665	// Note that for InstanceTemplate, specify the disk name, not the URL
2666	// for the disk.
2667	Source string `json:"source,omitempty"`
2668
2669	// Type: Specifies the type of the disk, either SCRATCH or PERSISTENT.
2670	// If not specified, the default is PERSISTENT.
2671	//
2672	// Possible values:
2673	//   "PERSISTENT"
2674	//   "SCRATCH"
2675	Type string `json:"type,omitempty"`
2676
2677	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
2678	// unconditionally include in API requests. By default, fields with
2679	// empty values are omitted from API requests. However, any non-pointer,
2680	// non-interface field appearing in ForceSendFields will be sent to the
2681	// server regardless of whether the field is empty or not. This may be
2682	// used to include empty fields in Patch requests.
2683	ForceSendFields []string `json:"-"`
2684
2685	// NullFields is a list of field names (e.g. "AutoDelete") to include in
2686	// API requests with the JSON null value. By default, fields with empty
2687	// values are omitted from API requests. However, any field with an
2688	// empty value appearing in NullFields will be sent to the server as
2689	// null. It is an error if a field in this list has a non-empty value.
2690	// This may be used to include null fields in Patch requests.
2691	NullFields []string `json:"-"`
2692}
2693
2694func (s *AttachedDisk) MarshalJSON() ([]byte, error) {
2695	type NoMethod AttachedDisk
2696	raw := NoMethod(*s)
2697	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2698}
2699
2700// AttachedDiskInitializeParams: [Input Only] Specifies the parameters
2701// for a new disk that will be created alongside the new instance. Use
2702// initialization parameters to create boot disks or local SSDs attached
2703// to the new instance.
2704//
2705// This property is mutually exclusive with the source property; you can
2706// only define one or the other, but not both.
2707type AttachedDiskInitializeParams struct {
2708	// Description: An optional description. Provide this property when
2709	// creating the disk.
2710	Description string `json:"description,omitempty"`
2711
2712	// DiskName: Specifies the disk name. If not specified, the default is
2713	// to use the name of the instance. If the disk with the instance name
2714	// exists already in the given zone/region, a new name will be
2715	// automatically generated.
2716	DiskName string `json:"diskName,omitempty"`
2717
2718	// DiskSizeGb: Specifies the size of the disk in base-2 GB. The size
2719	// must be at least 10 GB. If you specify a sourceImage, which is
2720	// required for boot disks, the default size is the size of the
2721	// sourceImage. If you do not specify a sourceImage, the default disk
2722	// size is 500 GB.
2723	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2724
2725	// DiskType: Specifies the disk type to use to create the instance. If
2726	// not specified, the default is pd-standard, specified using the full
2727	// URL. For
2728	// example:
2729	// https://www.googleapis.com/compute/v1/projects/project/zones/
2730	// zone/diskTypes/pd-standard
2731	//
2732	//
2733	// Other values include pd-ssd and local-ssd. If you define this field,
2734	// you can provide either the full or partial URL. For example, the
2735	// following are valid values:
2736	// -
2737	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/diskType
2738	// - projects/project/zones/zone/diskTypes/diskType
2739	// - zones/zone/diskTypes/diskType  Note that for InstanceTemplate, this
2740	// is the name of the disk type, not URL.
2741	DiskType string `json:"diskType,omitempty"`
2742
2743	// GuestOsFeatures: A list of features to enable on the guest operating
2744	// system. Applicable only for bootable images. Read  Enabling guest
2745	// operating system features to see a list of available options.
2746	//
2747	// Guest OS features are applied by merging
2748	// initializeParams.guestOsFeatures and disks.guestOsFeatures
2749	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
2750
2751	// Labels: Labels to apply to this disk. These can be later modified by
2752	// the disks.setLabels method. This field is only applicable for
2753	// persistent disks.
2754	Labels map[string]string `json:"labels,omitempty"`
2755
2756	// OnUpdateAction: Specifies which action to take on instance update
2757	// with this disk. Default is to use the existing disk.
2758	//
2759	// Possible values:
2760	//   "RECREATE_DISK"
2761	//   "RECREATE_DISK_IF_SOURCE_CHANGED"
2762	//   "USE_EXISTING_DISK"
2763	OnUpdateAction string `json:"onUpdateAction,omitempty"`
2764
2765	// ReplicaZones: URLs of the zones where the disk should be replicated
2766	// to. Only applicable for regional resources.
2767	ReplicaZones []string `json:"replicaZones,omitempty"`
2768
2769	// ResourcePolicies: Resource policies applied to this disk for
2770	// automatic snapshot creations. Specified using the full or partial
2771	// URL. For instance template, specify only the resource policy name.
2772	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
2773
2774	// SourceImage: The source image to create this disk. When creating a
2775	// new instance, one of initializeParams.sourceImage or
2776	// initializeParams.sourceSnapshot or disks.source is required except
2777	// for local SSD.
2778	//
2779	// To create a disk with one of the public operating system images,
2780	// specify the image by its family name. For example, specify
2781	// family/debian-9 to use the latest Debian 9
2782	// image:
2783	// projects/debian-cloud/global/images/family/debian-9
2784	//
2785	//
2786	// Alternati
2787	// vely, use a specific version of a public operating system
2788	// image:
2789	// projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD
2790	//
2791	//
2792	//
2793	// To create a disk with a custom image that you created, specify the
2794	// image name in the following
2795	// format:
2796	// global/images/my-custom-image
2797	//
2798	//
2799	// You can also specify a custom image by its image family, which
2800	// returns the latest version of the image in that family. Replace the
2801	// image name with
2802	// family/family-name:
2803	// global/images/family/my-image-family
2804	//
2805	//
2806	// If the source image is deleted later, this field will not be set.
2807	SourceImage string `json:"sourceImage,omitempty"`
2808
2809	// SourceImageEncryptionKey: The customer-supplied encryption key of the
2810	// source image. Required if the source image is protected by a
2811	// customer-supplied encryption key.
2812	//
2813	// Instance templates do not store customer-supplied encryption keys, so
2814	// you cannot create disks for instances in a managed instance group if
2815	// the source images are encrypted with your own keys.
2816	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
2817
2818	// SourceSnapshot: The source snapshot to create this disk. When
2819	// creating a new instance, one of initializeParams.sourceSnapshot or
2820	// initializeParams.sourceImage or disks.source is required except for
2821	// local SSD.
2822	//
2823	// To create a disk with a snapshot that you created, specify the
2824	// snapshot name in the following
2825	// format:
2826	// global/snapshots/my-backup
2827	//
2828	//
2829	// If the source snapshot is deleted later, this field will not be set.
2830	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
2831
2832	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
2833	// the source snapshot.
2834	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
2835
2836	// ForceSendFields is a list of field names (e.g. "Description") to
2837	// unconditionally include in API requests. By default, fields with
2838	// empty values are omitted from API requests. However, any non-pointer,
2839	// non-interface field appearing in ForceSendFields will be sent to the
2840	// server regardless of whether the field is empty or not. This may be
2841	// used to include empty fields in Patch requests.
2842	ForceSendFields []string `json:"-"`
2843
2844	// NullFields is a list of field names (e.g. "Description") to include
2845	// in API requests with the JSON null value. By default, fields with
2846	// empty values are omitted from API requests. However, any field with
2847	// an empty value appearing in NullFields will be sent to the server as
2848	// null. It is an error if a field in this list has a non-empty value.
2849	// This may be used to include null fields in Patch requests.
2850	NullFields []string `json:"-"`
2851}
2852
2853func (s *AttachedDiskInitializeParams) MarshalJSON() ([]byte, error) {
2854	type NoMethod AttachedDiskInitializeParams
2855	raw := NoMethod(*s)
2856	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2857}
2858
2859// AuditConfig: Specifies the audit configuration for a service. The
2860// configuration determines which permission types are logged, and what
2861// identities, if any, are exempted from logging. An AuditConfig must
2862// have one or more AuditLogConfigs.
2863//
2864// If there are AuditConfigs for both `allServices` and a specific
2865// service, the union of the two AuditConfigs is used for that service:
2866// the log_types specified in each AuditConfig are enabled, and the
2867// exempted_members in each AuditLogConfig are exempted.
2868//
2869// Example Policy with multiple AuditConfigs:
2870//
2871// { "audit_configs": [ { "service": "allServices" "audit_log_configs":
2872// [ { "log_type": "DATA_READ", "exempted_members": [
2873// "user:jose@example.com" ] }, { "log_type": "DATA_WRITE", }, {
2874// "log_type": "ADMIN_READ", } ] }, { "service":
2875// "sampleservice.googleapis.com" "audit_log_configs": [ { "log_type":
2876// "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [
2877// "user:aliya@example.com" ] } ] } ] }
2878//
2879// For sampleservice, this policy enables DATA_READ, DATA_WRITE and
2880// ADMIN_READ logging. It also exempts jose@example.com from DATA_READ
2881// logging, and aliya@example.com from DATA_WRITE logging.
2882type AuditConfig struct {
2883	// AuditLogConfigs: The configuration for logging of each type of
2884	// permission.
2885	AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"`
2886
2887	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
2888
2889	// Service: Specifies a service that will be enabled for audit logging.
2890	// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
2891	// `allServices` is a special value that covers all services.
2892	Service string `json:"service,omitempty"`
2893
2894	// ForceSendFields is a list of field names (e.g. "AuditLogConfigs") to
2895	// unconditionally include in API requests. By default, fields with
2896	// empty values are omitted from API requests. However, any non-pointer,
2897	// non-interface field appearing in ForceSendFields will be sent to the
2898	// server regardless of whether the field is empty or not. This may be
2899	// used to include empty fields in Patch requests.
2900	ForceSendFields []string `json:"-"`
2901
2902	// NullFields is a list of field names (e.g. "AuditLogConfigs") to
2903	// include in API requests with the JSON null value. By default, fields
2904	// with empty values are omitted from API requests. However, any field
2905	// with an empty value appearing in NullFields will be sent to the
2906	// server as null. It is an error if a field in this list has a
2907	// non-empty value. This may be used to include null fields in Patch
2908	// requests.
2909	NullFields []string `json:"-"`
2910}
2911
2912func (s *AuditConfig) MarshalJSON() ([]byte, error) {
2913	type NoMethod AuditConfig
2914	raw := NoMethod(*s)
2915	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2916}
2917
2918// AuditLogConfig: Provides the configuration for logging a type of
2919// permissions. Example:
2920//
2921// { "audit_log_configs": [ { "log_type": "DATA_READ",
2922// "exempted_members": [ "user:jose@example.com" ] }, { "log_type":
2923// "DATA_WRITE", } ] }
2924//
2925// This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
2926// jose@example.com from DATA_READ logging.
2927type AuditLogConfig struct {
2928	// ExemptedMembers: Specifies the identities that do not cause logging
2929	// for this type of permission. Follows the same format of
2930	// [Binding.members][].
2931	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
2932
2933	IgnoreChildExemptions bool `json:"ignoreChildExemptions,omitempty"`
2934
2935	// LogType: The log type that this config enables.
2936	//
2937	// Possible values:
2938	//   "ADMIN_READ"
2939	//   "DATA_READ"
2940	//   "DATA_WRITE"
2941	//   "LOG_TYPE_UNSPECIFIED"
2942	LogType string `json:"logType,omitempty"`
2943
2944	// ForceSendFields is a list of field names (e.g. "ExemptedMembers") to
2945	// unconditionally include in API requests. By default, fields with
2946	// empty values are omitted from API requests. However, any non-pointer,
2947	// non-interface field appearing in ForceSendFields will be sent to the
2948	// server regardless of whether the field is empty or not. This may be
2949	// used to include empty fields in Patch requests.
2950	ForceSendFields []string `json:"-"`
2951
2952	// NullFields is a list of field names (e.g. "ExemptedMembers") to
2953	// include in API requests with the JSON null value. By default, fields
2954	// with empty values are omitted from API requests. However, any field
2955	// with an empty value appearing in NullFields will be sent to the
2956	// server as null. It is an error if a field in this list has a
2957	// non-empty value. This may be used to include null fields in Patch
2958	// requests.
2959	NullFields []string `json:"-"`
2960}
2961
2962func (s *AuditLogConfig) MarshalJSON() ([]byte, error) {
2963	type NoMethod AuditLogConfig
2964	raw := NoMethod(*s)
2965	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2966}
2967
2968// AuthenticationPolicy: The authentication settings for the backend
2969// service.
2970type AuthenticationPolicy struct {
2971	// Origins: List of authentication methods that can be used for origin
2972	// authentication. Similar to peers, these will be evaluated in order
2973	// the first valid one will be used to set origin identity. If none of
2974	// these methods pass, the request will be rejected with authentication
2975	// failed error (401). Leave the list empty if origin authentication is
2976	// not required.
2977	Origins []*OriginAuthenticationMethod `json:"origins,omitempty"`
2978
2979	// Peers: List of authentication methods that can be used for peer
2980	// authentication. They will be evaluated in order the first valid one
2981	// will be used to set peer identity. If none of these methods pass, the
2982	// request will be rejected with authentication failed error (401).
2983	// Leave the list empty if peer authentication is not required.
2984	Peers []*PeerAuthenticationMethod `json:"peers,omitempty"`
2985
2986	// PrincipalBinding: Define whether peer or origin identity should be
2987	// used for principal. Default value is USE_PEER. If peer (or origin)
2988	// identity is not available, either because peer/origin authentication
2989	// is not defined, or failed, principal will be left unset. In other
2990	// words, binding rule does not affect the decision to accept or reject
2991	// request. This field can be set to one of the following: USE_PEER:
2992	// Principal will be set to the identity from peer authentication.
2993	// USE_ORIGIN: Principal will be set to the identity from origin
2994	// authentication.
2995	//
2996	// Possible values:
2997	//   "INVALID"
2998	//   "USE_ORIGIN"
2999	//   "USE_PEER"
3000	PrincipalBinding string `json:"principalBinding,omitempty"`
3001
3002	// ServerTlsContext: Configures the mechanism to obtain server-side
3003	// security certificates and identity information.
3004	ServerTlsContext *TlsContext `json:"serverTlsContext,omitempty"`
3005
3006	// ForceSendFields is a list of field names (e.g. "Origins") to
3007	// unconditionally include in API requests. By default, fields with
3008	// empty values are omitted from API requests. However, any non-pointer,
3009	// non-interface field appearing in ForceSendFields will be sent to the
3010	// server regardless of whether the field is empty or not. This may be
3011	// used to include empty fields in Patch requests.
3012	ForceSendFields []string `json:"-"`
3013
3014	// NullFields is a list of field names (e.g. "Origins") to include in
3015	// API requests with the JSON null value. By default, fields with empty
3016	// values are omitted from API requests. However, any field with an
3017	// empty value appearing in NullFields will be sent to the server as
3018	// null. It is an error if a field in this list has a non-empty value.
3019	// This may be used to include null fields in Patch requests.
3020	NullFields []string `json:"-"`
3021}
3022
3023func (s *AuthenticationPolicy) MarshalJSON() ([]byte, error) {
3024	type NoMethod AuthenticationPolicy
3025	raw := NoMethod(*s)
3026	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3027}
3028
3029// AuthorizationConfig: Authorization configuration provides
3030// service-level and method-level access control for a service.
3031type AuthorizationConfig struct {
3032	// Policies: List of RbacPolicies.
3033	Policies []*RbacPolicy `json:"policies,omitempty"`
3034
3035	// ForceSendFields is a list of field names (e.g. "Policies") to
3036	// unconditionally include in API requests. By default, fields with
3037	// empty values are omitted from API requests. However, any non-pointer,
3038	// non-interface field appearing in ForceSendFields will be sent to the
3039	// server regardless of whether the field is empty or not. This may be
3040	// used to include empty fields in Patch requests.
3041	ForceSendFields []string `json:"-"`
3042
3043	// NullFields is a list of field names (e.g. "Policies") to include in
3044	// API requests with the JSON null value. By default, fields with empty
3045	// values are omitted from API requests. However, any field with an
3046	// empty value appearing in NullFields will be sent to the server as
3047	// null. It is an error if a field in this list has a non-empty value.
3048	// This may be used to include null fields in Patch requests.
3049	NullFields []string `json:"-"`
3050}
3051
3052func (s *AuthorizationConfig) MarshalJSON() ([]byte, error) {
3053	type NoMethod AuthorizationConfig
3054	raw := NoMethod(*s)
3055	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3056}
3057
3058// AuthorizationLoggingOptions: Authorization-related information used
3059// by Cloud Audit Logging.
3060type AuthorizationLoggingOptions struct {
3061	// PermissionType: The type of the permission that was checked.
3062	//
3063	// Possible values:
3064	//   "ADMIN_READ"
3065	//   "ADMIN_WRITE"
3066	//   "DATA_READ"
3067	//   "DATA_WRITE"
3068	//   "PERMISSION_TYPE_UNSPECIFIED"
3069	PermissionType string `json:"permissionType,omitempty"`
3070
3071	// ForceSendFields is a list of field names (e.g. "PermissionType") to
3072	// unconditionally include in API requests. By default, fields with
3073	// empty values are omitted from API requests. However, any non-pointer,
3074	// non-interface field appearing in ForceSendFields will be sent to the
3075	// server regardless of whether the field is empty or not. This may be
3076	// used to include empty fields in Patch requests.
3077	ForceSendFields []string `json:"-"`
3078
3079	// NullFields is a list of field names (e.g. "PermissionType") to
3080	// include in API requests with the JSON null value. By default, fields
3081	// with empty values are omitted from API requests. However, any field
3082	// with an empty value appearing in NullFields will be sent to the
3083	// server as null. It is an error if a field in this list has a
3084	// non-empty value. This may be used to include null fields in Patch
3085	// requests.
3086	NullFields []string `json:"-"`
3087}
3088
3089func (s *AuthorizationLoggingOptions) MarshalJSON() ([]byte, error) {
3090	type NoMethod AuthorizationLoggingOptions
3091	raw := NoMethod(*s)
3092	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3093}
3094
3095// Autoscaler: Represents an Autoscaler resource.
3096//
3097// Google Compute Engine has two Autoscaler resources:
3098//
3099// * [Global](/compute/docs/reference/rest/latest/autoscalers) *
3100// [Regional](/compute/docs/reference/rest/latest/regionAutoscalers)
3101//
3102// Use
3103//  autoscalers to automatically add or delete instances from a managed
3104// instance group according to your defined autoscaling policy. For more
3105// information, read Autoscaling Groups of Instances.
3106//
3107// For zonal managed instance groups resource, use the autoscaler
3108// resource.
3109//
3110// For regional managed instance groups, use the regionAutoscalers
3111// resource. (== resource_for {$api_version}.autoscalers ==) (==
3112// resource_for {$api_version}.regionAutoscalers ==)
3113type Autoscaler struct {
3114	// AutoscalingPolicy: The configuration parameters for the autoscaling
3115	// algorithm. You can define one or more of the policies for an
3116	// autoscaler: cpuUtilization, customMetricUtilizations, and
3117	// loadBalancingUtilization.
3118	//
3119	// If none of these are specified, the default will be to autoscale
3120	// based on cpuUtilization to 0.6 or 60%.
3121	AutoscalingPolicy *AutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
3122
3123	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
3124	// format.
3125	CreationTimestamp string `json:"creationTimestamp,omitempty"`
3126
3127	// Description: An optional description of this resource. Provide this
3128	// property when you create the resource.
3129	Description string `json:"description,omitempty"`
3130
3131	// Id: [Output Only] The unique identifier for the resource. This
3132	// identifier is defined by the server.
3133	Id uint64 `json:"id,omitempty,string"`
3134
3135	// Kind: [Output Only] Type of the resource. Always compute#autoscaler
3136	// for autoscalers.
3137	Kind string `json:"kind,omitempty"`
3138
3139	// Name: Name of the resource. Provided by the client when the resource
3140	// is created. The name must be 1-63 characters long, and comply with
3141	// RFC1035. Specifically, the name must be 1-63 characters long and
3142	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
3143	// the first character must be a lowercase letter, and all following
3144	// characters must be a dash, lowercase letter, or digit, except the
3145	// last character, which cannot be a dash.
3146	Name string `json:"name,omitempty"`
3147
3148	// RecommendedSize: [Output Only] Target recommended MIG size (number of
3149	// instances) computed by autoscaler. Autoscaler calculates recommended
3150	// MIG size even when autoscaling policy mode is different from ON. This
3151	// field is empty when autoscaler is not connected to the existing
3152	// managed instance group or autoscaler did not generate its prediction.
3153	RecommendedSize int64 `json:"recommendedSize,omitempty"`
3154
3155	// Region: [Output Only] URL of the region where the instance group
3156	// resides (for autoscalers living in regional scope).
3157	Region string `json:"region,omitempty"`
3158
3159	// SelfLink: [Output Only] Server-defined URL for the resource.
3160	SelfLink string `json:"selfLink,omitempty"`
3161
3162	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
3163	// with the resource id.
3164	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
3165
3166	// Status: [Output Only] The status of the autoscaler configuration.
3167	// Current set of possible values:
3168	// - PENDING: Autoscaler backend hasn't read new/updated configuration.
3169	//
3170	// - DELETING: Configuration is being deleted.
3171	// - ACTIVE: Configuration is acknowledged to be effective. Some
3172	// warnings might be present in the statusDetails field.
3173	// - ERROR: Configuration has errors. Actionable for users. Details are
3174	// present in the statusDetails field.  New values might be added in the
3175	// future.
3176	//
3177	// Possible values:
3178	//   "ACTIVE"
3179	//   "DELETING"
3180	//   "ERROR"
3181	//   "PENDING"
3182	Status string `json:"status,omitempty"`
3183
3184	// StatusDetails: [Output Only] Human-readable details about the current
3185	// state of the autoscaler. Read the documentation for Commonly returned
3186	// status messages for examples of status messages you might encounter.
3187	StatusDetails []*AutoscalerStatusDetails `json:"statusDetails,omitempty"`
3188
3189	// Target: URL of the managed instance group that this autoscaler will
3190	// scale.
3191	Target string `json:"target,omitempty"`
3192
3193	// Zone: [Output Only] URL of the zone where the instance group resides
3194	// (for autoscalers living in zonal scope).
3195	Zone string `json:"zone,omitempty"`
3196
3197	// ServerResponse contains the HTTP response code and headers from the
3198	// server.
3199	googleapi.ServerResponse `json:"-"`
3200
3201	// ForceSendFields is a list of field names (e.g. "AutoscalingPolicy")
3202	// to unconditionally include in API requests. By default, fields with
3203	// empty values are omitted from API requests. However, any non-pointer,
3204	// non-interface field appearing in ForceSendFields will be sent to the
3205	// server regardless of whether the field is empty or not. This may be
3206	// used to include empty fields in Patch requests.
3207	ForceSendFields []string `json:"-"`
3208
3209	// NullFields is a list of field names (e.g. "AutoscalingPolicy") to
3210	// include in API requests with the JSON null value. By default, fields
3211	// with empty values are omitted from API requests. However, any field
3212	// with an empty value appearing in NullFields will be sent to the
3213	// server as null. It is an error if a field in this list has a
3214	// non-empty value. This may be used to include null fields in Patch
3215	// requests.
3216	NullFields []string `json:"-"`
3217}
3218
3219func (s *Autoscaler) MarshalJSON() ([]byte, error) {
3220	type NoMethod Autoscaler
3221	raw := NoMethod(*s)
3222	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3223}
3224
3225type AutoscalerAggregatedList struct {
3226	// Id: [Output Only] Unique identifier for the resource; defined by the
3227	// server.
3228	Id string `json:"id,omitempty"`
3229
3230	// Items: A list of AutoscalersScopedList resources.
3231	Items map[string]AutoscalersScopedList `json:"items,omitempty"`
3232
3233	// Kind: [Output Only] Type of resource. Always
3234	// compute#autoscalerAggregatedList for aggregated lists of autoscalers.
3235	Kind string `json:"kind,omitempty"`
3236
3237	// NextPageToken: [Output Only] This token allows you to get the next
3238	// page of results for list requests. If the number of results is larger
3239	// than maxResults, use the nextPageToken as a value for the query
3240	// parameter pageToken in the next list request. Subsequent list
3241	// requests will have their own nextPageToken to continue paging through
3242	// the results.
3243	NextPageToken string `json:"nextPageToken,omitempty"`
3244
3245	// SelfLink: [Output Only] Server-defined URL for this resource.
3246	SelfLink string `json:"selfLink,omitempty"`
3247
3248	// Warning: [Output Only] Informational warning message.
3249	Warning *AutoscalerAggregatedListWarning `json:"warning,omitempty"`
3250
3251	// ServerResponse contains the HTTP response code and headers from the
3252	// server.
3253	googleapi.ServerResponse `json:"-"`
3254
3255	// ForceSendFields is a list of field names (e.g. "Id") to
3256	// unconditionally include in API requests. By default, fields with
3257	// empty values are omitted from API requests. However, any non-pointer,
3258	// non-interface field appearing in ForceSendFields will be sent to the
3259	// server regardless of whether the field is empty or not. This may be
3260	// used to include empty fields in Patch requests.
3261	ForceSendFields []string `json:"-"`
3262
3263	// NullFields is a list of field names (e.g. "Id") to include in API
3264	// requests with the JSON null value. By default, fields with empty
3265	// values are omitted from API requests. However, any field with an
3266	// empty value appearing in NullFields will be sent to the server as
3267	// null. It is an error if a field in this list has a non-empty value.
3268	// This may be used to include null fields in Patch requests.
3269	NullFields []string `json:"-"`
3270}
3271
3272func (s *AutoscalerAggregatedList) MarshalJSON() ([]byte, error) {
3273	type NoMethod AutoscalerAggregatedList
3274	raw := NoMethod(*s)
3275	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3276}
3277
3278// AutoscalerAggregatedListWarning: [Output Only] Informational warning
3279// message.
3280type AutoscalerAggregatedListWarning struct {
3281	// Code: [Output Only] A warning code, if applicable. For example,
3282	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3283	// the response.
3284	//
3285	// Possible values:
3286	//   "CLEANUP_FAILED"
3287	//   "DEPRECATED_RESOURCE_USED"
3288	//   "DEPRECATED_TYPE_USED"
3289	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3290	//   "EXPERIMENTAL_TYPE_USED"
3291	//   "EXTERNAL_API_WARNING"
3292	//   "FIELD_VALUE_OVERRIDEN"
3293	//   "INJECTED_KERNELS_DEPRECATED"
3294	//   "MISSING_TYPE_DEPENDENCY"
3295	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3296	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3297	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3298	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3299	//   "NEXT_HOP_NOT_RUNNING"
3300	//   "NOT_CRITICAL_ERROR"
3301	//   "NO_RESULTS_ON_PAGE"
3302	//   "REQUIRED_TOS_AGREEMENT"
3303	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3304	//   "RESOURCE_NOT_DELETED"
3305	//   "SCHEMA_VALIDATION_IGNORED"
3306	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3307	//   "UNDECLARED_PROPERTIES"
3308	//   "UNREACHABLE"
3309	Code string `json:"code,omitempty"`
3310
3311	// Data: [Output Only] Metadata about this warning in key: value format.
3312	// For example:
3313	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3314	Data []*AutoscalerAggregatedListWarningData `json:"data,omitempty"`
3315
3316	// Message: [Output Only] A human-readable description of the warning
3317	// code.
3318	Message string `json:"message,omitempty"`
3319
3320	// ForceSendFields is a list of field names (e.g. "Code") to
3321	// unconditionally include in API requests. By default, fields with
3322	// empty values are omitted from API requests. However, any non-pointer,
3323	// non-interface field appearing in ForceSendFields will be sent to the
3324	// server regardless of whether the field is empty or not. This may be
3325	// used to include empty fields in Patch requests.
3326	ForceSendFields []string `json:"-"`
3327
3328	// NullFields is a list of field names (e.g. "Code") to include in API
3329	// requests with the JSON null value. By default, fields with empty
3330	// values are omitted from API requests. However, any field with an
3331	// empty value appearing in NullFields will be sent to the server as
3332	// null. It is an error if a field in this list has a non-empty value.
3333	// This may be used to include null fields in Patch requests.
3334	NullFields []string `json:"-"`
3335}
3336
3337func (s *AutoscalerAggregatedListWarning) MarshalJSON() ([]byte, error) {
3338	type NoMethod AutoscalerAggregatedListWarning
3339	raw := NoMethod(*s)
3340	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3341}
3342
3343type AutoscalerAggregatedListWarningData struct {
3344	// Key: [Output Only] A key that provides more detail on the warning
3345	// being returned. For example, for warnings where there are no results
3346	// in a list request for a particular zone, this key might be scope and
3347	// the key value might be the zone name. Other examples might be a key
3348	// indicating a deprecated resource and a suggested replacement, or a
3349	// warning about invalid network settings (for example, if an instance
3350	// attempts to perform IP forwarding but is not enabled for IP
3351	// forwarding).
3352	Key string `json:"key,omitempty"`
3353
3354	// Value: [Output Only] A warning data value corresponding to the key.
3355	Value string `json:"value,omitempty"`
3356
3357	// ForceSendFields is a list of field names (e.g. "Key") to
3358	// unconditionally include in API requests. By default, fields with
3359	// empty values are omitted from API requests. However, any non-pointer,
3360	// non-interface field appearing in ForceSendFields will be sent to the
3361	// server regardless of whether the field is empty or not. This may be
3362	// used to include empty fields in Patch requests.
3363	ForceSendFields []string `json:"-"`
3364
3365	// NullFields is a list of field names (e.g. "Key") to include in API
3366	// requests with the JSON null value. By default, fields with empty
3367	// values are omitted from API requests. However, any field with an
3368	// empty value appearing in NullFields will be sent to the server as
3369	// null. It is an error if a field in this list has a non-empty value.
3370	// This may be used to include null fields in Patch requests.
3371	NullFields []string `json:"-"`
3372}
3373
3374func (s *AutoscalerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
3375	type NoMethod AutoscalerAggregatedListWarningData
3376	raw := NoMethod(*s)
3377	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3378}
3379
3380// AutoscalerList: Contains a list of Autoscaler resources.
3381type AutoscalerList struct {
3382	// Id: [Output Only] Unique identifier for the resource; defined by the
3383	// server.
3384	Id string `json:"id,omitempty"`
3385
3386	// Items: A list of Autoscaler resources.
3387	Items []*Autoscaler `json:"items,omitempty"`
3388
3389	// Kind: [Output Only] Type of resource. Always compute#autoscalerList
3390	// for lists of autoscalers.
3391	Kind string `json:"kind,omitempty"`
3392
3393	// NextPageToken: [Output Only] This token allows you to get the next
3394	// page of results for list requests. If the number of results is larger
3395	// than maxResults, use the nextPageToken as a value for the query
3396	// parameter pageToken in the next list request. Subsequent list
3397	// requests will have their own nextPageToken to continue paging through
3398	// the results.
3399	NextPageToken string `json:"nextPageToken,omitempty"`
3400
3401	// SelfLink: [Output Only] Server-defined URL for this resource.
3402	SelfLink string `json:"selfLink,omitempty"`
3403
3404	// Warning: [Output Only] Informational warning message.
3405	Warning *AutoscalerListWarning `json:"warning,omitempty"`
3406
3407	// ServerResponse contains the HTTP response code and headers from the
3408	// server.
3409	googleapi.ServerResponse `json:"-"`
3410
3411	// ForceSendFields is a list of field names (e.g. "Id") to
3412	// unconditionally include in API requests. By default, fields with
3413	// empty values are omitted from API requests. However, any non-pointer,
3414	// non-interface field appearing in ForceSendFields will be sent to the
3415	// server regardless of whether the field is empty or not. This may be
3416	// used to include empty fields in Patch requests.
3417	ForceSendFields []string `json:"-"`
3418
3419	// NullFields is a list of field names (e.g. "Id") to include in API
3420	// requests with the JSON null value. By default, fields with empty
3421	// values are omitted from API requests. However, any field with an
3422	// empty value appearing in NullFields will be sent to the server as
3423	// null. It is an error if a field in this list has a non-empty value.
3424	// This may be used to include null fields in Patch requests.
3425	NullFields []string `json:"-"`
3426}
3427
3428func (s *AutoscalerList) MarshalJSON() ([]byte, error) {
3429	type NoMethod AutoscalerList
3430	raw := NoMethod(*s)
3431	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3432}
3433
3434// AutoscalerListWarning: [Output Only] Informational warning message.
3435type AutoscalerListWarning struct {
3436	// Code: [Output Only] A warning code, if applicable. For example,
3437	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3438	// the response.
3439	//
3440	// Possible values:
3441	//   "CLEANUP_FAILED"
3442	//   "DEPRECATED_RESOURCE_USED"
3443	//   "DEPRECATED_TYPE_USED"
3444	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3445	//   "EXPERIMENTAL_TYPE_USED"
3446	//   "EXTERNAL_API_WARNING"
3447	//   "FIELD_VALUE_OVERRIDEN"
3448	//   "INJECTED_KERNELS_DEPRECATED"
3449	//   "MISSING_TYPE_DEPENDENCY"
3450	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3451	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3452	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3453	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3454	//   "NEXT_HOP_NOT_RUNNING"
3455	//   "NOT_CRITICAL_ERROR"
3456	//   "NO_RESULTS_ON_PAGE"
3457	//   "REQUIRED_TOS_AGREEMENT"
3458	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3459	//   "RESOURCE_NOT_DELETED"
3460	//   "SCHEMA_VALIDATION_IGNORED"
3461	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3462	//   "UNDECLARED_PROPERTIES"
3463	//   "UNREACHABLE"
3464	Code string `json:"code,omitempty"`
3465
3466	// Data: [Output Only] Metadata about this warning in key: value format.
3467	// For example:
3468	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3469	Data []*AutoscalerListWarningData `json:"data,omitempty"`
3470
3471	// Message: [Output Only] A human-readable description of the warning
3472	// code.
3473	Message string `json:"message,omitempty"`
3474
3475	// ForceSendFields is a list of field names (e.g. "Code") to
3476	// unconditionally include in API requests. By default, fields with
3477	// empty values are omitted from API requests. However, any non-pointer,
3478	// non-interface field appearing in ForceSendFields will be sent to the
3479	// server regardless of whether the field is empty or not. This may be
3480	// used to include empty fields in Patch requests.
3481	ForceSendFields []string `json:"-"`
3482
3483	// NullFields is a list of field names (e.g. "Code") to include in API
3484	// requests with the JSON null value. By default, fields with empty
3485	// values are omitted from API requests. However, any field with an
3486	// empty value appearing in NullFields will be sent to the server as
3487	// null. It is an error if a field in this list has a non-empty value.
3488	// This may be used to include null fields in Patch requests.
3489	NullFields []string `json:"-"`
3490}
3491
3492func (s *AutoscalerListWarning) MarshalJSON() ([]byte, error) {
3493	type NoMethod AutoscalerListWarning
3494	raw := NoMethod(*s)
3495	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3496}
3497
3498type AutoscalerListWarningData struct {
3499	// Key: [Output Only] A key that provides more detail on the warning
3500	// being returned. For example, for warnings where there are no results
3501	// in a list request for a particular zone, this key might be scope and
3502	// the key value might be the zone name. Other examples might be a key
3503	// indicating a deprecated resource and a suggested replacement, or a
3504	// warning about invalid network settings (for example, if an instance
3505	// attempts to perform IP forwarding but is not enabled for IP
3506	// forwarding).
3507	Key string `json:"key,omitempty"`
3508
3509	// Value: [Output Only] A warning data value corresponding to the key.
3510	Value string `json:"value,omitempty"`
3511
3512	// ForceSendFields is a list of field names (e.g. "Key") to
3513	// unconditionally include in API requests. By default, fields with
3514	// empty values are omitted from API requests. However, any non-pointer,
3515	// non-interface field appearing in ForceSendFields will be sent to the
3516	// server regardless of whether the field is empty or not. This may be
3517	// used to include empty fields in Patch requests.
3518	ForceSendFields []string `json:"-"`
3519
3520	// NullFields is a list of field names (e.g. "Key") to include in API
3521	// requests with the JSON null value. By default, fields with empty
3522	// values are omitted from API requests. However, any field with an
3523	// empty value appearing in NullFields will be sent to the server as
3524	// null. It is an error if a field in this list has a non-empty value.
3525	// This may be used to include null fields in Patch requests.
3526	NullFields []string `json:"-"`
3527}
3528
3529func (s *AutoscalerListWarningData) MarshalJSON() ([]byte, error) {
3530	type NoMethod AutoscalerListWarningData
3531	raw := NoMethod(*s)
3532	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3533}
3534
3535type AutoscalerStatusDetails struct {
3536	// Message: The status message.
3537	Message string `json:"message,omitempty"`
3538
3539	// Type: The type of error, warning, or notice returned. Current set of
3540	// possible values:
3541	// - ALL_INSTANCES_UNHEALTHY (WARNING): All instances in the instance
3542	// group are unhealthy (not in RUNNING state).
3543	// - BACKEND_SERVICE_DOES_NOT_EXIST (ERROR): There is no backend service
3544	// attached to the instance group.
3545	// - CAPPED_AT_MAX_NUM_REPLICAS (WARNING): Autoscaler recommends a size
3546	// greater than maxNumReplicas.
3547	// - CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE (WARNING): The custom metric
3548	// samples are not exported often enough to be a credible base for
3549	// autoscaling.
3550	// - CUSTOM_METRIC_INVALID (ERROR): The custom metric that was specified
3551	// does not exist or does not have the necessary labels.
3552	// - MIN_EQUALS_MAX (WARNING): The minNumReplicas is equal to
3553	// maxNumReplicas. This means the autoscaler cannot add or remove
3554	// instances from the instance group.
3555	// - MISSING_CUSTOM_METRIC_DATA_POINTS (WARNING): The autoscaler did not
3556	// receive any data from the custom metric configured for autoscaling.
3557	//
3558	// - MISSING_LOAD_BALANCING_DATA_POINTS (WARNING): The autoscaler is
3559	// configured to scale based on a load balancing signal but the instance
3560	// group has not received any requests from the load balancer.
3561	// - MODE_OFF (WARNING): Autoscaling is turned off. The number of
3562	// instances in the group won't change automatically. The autoscaling
3563	// configuration is preserved.
3564	// - MODE_ONLY_UP (WARNING): Autoscaling is in the "Autoscale only up"
3565	// mode. The autoscaler can add instances but not remove any.
3566	// - MORE_THAN_ONE_BACKEND_SERVICE (ERROR): The instance group cannot be
3567	// autoscaled because it has more than one backend service attached to
3568	// it.
3569	// - NOT_ENOUGH_QUOTA_AVAILABLE (ERROR): There is insufficient quota for
3570	// the necessary resources, such as CPU or number of instances.
3571	// - REGION_RESOURCE_STOCKOUT (ERROR): Shown only for regional
3572	// autoscalers: there is a resource stockout in the chosen region.
3573	// - SCALING_TARGET_DOES_NOT_EXIST (ERROR): The target to be scaled does
3574	// not exist.
3575	// - UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION (ERROR):
3576	// Autoscaling does not work with an HTTP/S load balancer that has been
3577	// configured for maxRate.
3578	// - ZONE_RESOURCE_STOCKOUT (ERROR): For zonal autoscalers: there is a
3579	// resource stockout in the chosen zone. For regional autoscalers: in at
3580	// least one of the zones you're using there is a resource stockout.
3581	// New values might be added in the future. Some of the values might not
3582	// be available in all API versions.
3583	//
3584	// Possible values:
3585	//   "ALL_INSTANCES_UNHEALTHY"
3586	//   "BACKEND_SERVICE_DOES_NOT_EXIST"
3587	//   "CAPPED_AT_MAX_NUM_REPLICAS"
3588	//   "CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE"
3589	//   "CUSTOM_METRIC_INVALID"
3590	//   "MIN_EQUALS_MAX"
3591	//   "MISSING_CUSTOM_METRIC_DATA_POINTS"
3592	//   "MISSING_LOAD_BALANCING_DATA_POINTS"
3593	//   "MODE_OFF"
3594	//   "MODE_ONLY_UP"
3595	//   "MORE_THAN_ONE_BACKEND_SERVICE"
3596	//   "NOT_ENOUGH_QUOTA_AVAILABLE"
3597	//   "REGION_RESOURCE_STOCKOUT"
3598	//   "SCALING_TARGET_DOES_NOT_EXIST"
3599	//   "UNKNOWN"
3600	//   "UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION"
3601	//   "ZONE_RESOURCE_STOCKOUT"
3602	Type string `json:"type,omitempty"`
3603
3604	// ForceSendFields is a list of field names (e.g. "Message") to
3605	// unconditionally include in API requests. By default, fields with
3606	// empty values are omitted from API requests. However, any non-pointer,
3607	// non-interface field appearing in ForceSendFields will be sent to the
3608	// server regardless of whether the field is empty or not. This may be
3609	// used to include empty fields in Patch requests.
3610	ForceSendFields []string `json:"-"`
3611
3612	// NullFields is a list of field names (e.g. "Message") to include in
3613	// API requests with the JSON null value. By default, fields with empty
3614	// values are omitted from API requests. However, any field with an
3615	// empty value appearing in NullFields will be sent to the server as
3616	// null. It is an error if a field in this list has a non-empty value.
3617	// This may be used to include null fields in Patch requests.
3618	NullFields []string `json:"-"`
3619}
3620
3621func (s *AutoscalerStatusDetails) MarshalJSON() ([]byte, error) {
3622	type NoMethod AutoscalerStatusDetails
3623	raw := NoMethod(*s)
3624	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3625}
3626
3627type AutoscalersScopedList struct {
3628	// Autoscalers: [Output Only] A list of autoscalers contained in this
3629	// scope.
3630	Autoscalers []*Autoscaler `json:"autoscalers,omitempty"`
3631
3632	// Warning: [Output Only] Informational warning which replaces the list
3633	// of autoscalers when the list is empty.
3634	Warning *AutoscalersScopedListWarning `json:"warning,omitempty"`
3635
3636	// ForceSendFields is a list of field names (e.g. "Autoscalers") to
3637	// unconditionally include in API requests. By default, fields with
3638	// empty values are omitted from API requests. However, any non-pointer,
3639	// non-interface field appearing in ForceSendFields will be sent to the
3640	// server regardless of whether the field is empty or not. This may be
3641	// used to include empty fields in Patch requests.
3642	ForceSendFields []string `json:"-"`
3643
3644	// NullFields is a list of field names (e.g. "Autoscalers") to include
3645	// in API requests with the JSON null value. By default, fields with
3646	// empty values are omitted from API requests. However, any field with
3647	// an empty value appearing in NullFields will be sent to the server as
3648	// null. It is an error if a field in this list has a non-empty value.
3649	// This may be used to include null fields in Patch requests.
3650	NullFields []string `json:"-"`
3651}
3652
3653func (s *AutoscalersScopedList) MarshalJSON() ([]byte, error) {
3654	type NoMethod AutoscalersScopedList
3655	raw := NoMethod(*s)
3656	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3657}
3658
3659// AutoscalersScopedListWarning: [Output Only] Informational warning
3660// which replaces the list of autoscalers when the list is empty.
3661type AutoscalersScopedListWarning struct {
3662	// Code: [Output Only] A warning code, if applicable. For example,
3663	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3664	// the response.
3665	//
3666	// Possible values:
3667	//   "CLEANUP_FAILED"
3668	//   "DEPRECATED_RESOURCE_USED"
3669	//   "DEPRECATED_TYPE_USED"
3670	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3671	//   "EXPERIMENTAL_TYPE_USED"
3672	//   "EXTERNAL_API_WARNING"
3673	//   "FIELD_VALUE_OVERRIDEN"
3674	//   "INJECTED_KERNELS_DEPRECATED"
3675	//   "MISSING_TYPE_DEPENDENCY"
3676	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3677	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3678	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3679	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3680	//   "NEXT_HOP_NOT_RUNNING"
3681	//   "NOT_CRITICAL_ERROR"
3682	//   "NO_RESULTS_ON_PAGE"
3683	//   "REQUIRED_TOS_AGREEMENT"
3684	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3685	//   "RESOURCE_NOT_DELETED"
3686	//   "SCHEMA_VALIDATION_IGNORED"
3687	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3688	//   "UNDECLARED_PROPERTIES"
3689	//   "UNREACHABLE"
3690	Code string `json:"code,omitempty"`
3691
3692	// Data: [Output Only] Metadata about this warning in key: value format.
3693	// For example:
3694	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3695	Data []*AutoscalersScopedListWarningData `json:"data,omitempty"`
3696
3697	// Message: [Output Only] A human-readable description of the warning
3698	// code.
3699	Message string `json:"message,omitempty"`
3700
3701	// ForceSendFields is a list of field names (e.g. "Code") to
3702	// unconditionally include in API requests. By default, fields with
3703	// empty values are omitted from API requests. However, any non-pointer,
3704	// non-interface field appearing in ForceSendFields will be sent to the
3705	// server regardless of whether the field is empty or not. This may be
3706	// used to include empty fields in Patch requests.
3707	ForceSendFields []string `json:"-"`
3708
3709	// NullFields is a list of field names (e.g. "Code") to include in API
3710	// requests with the JSON null value. By default, fields with empty
3711	// values are omitted from API requests. However, any field with an
3712	// empty value appearing in NullFields will be sent to the server as
3713	// null. It is an error if a field in this list has a non-empty value.
3714	// This may be used to include null fields in Patch requests.
3715	NullFields []string `json:"-"`
3716}
3717
3718func (s *AutoscalersScopedListWarning) MarshalJSON() ([]byte, error) {
3719	type NoMethod AutoscalersScopedListWarning
3720	raw := NoMethod(*s)
3721	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3722}
3723
3724type AutoscalersScopedListWarningData struct {
3725	// Key: [Output Only] A key that provides more detail on the warning
3726	// being returned. For example, for warnings where there are no results
3727	// in a list request for a particular zone, this key might be scope and
3728	// the key value might be the zone name. Other examples might be a key
3729	// indicating a deprecated resource and a suggested replacement, or a
3730	// warning about invalid network settings (for example, if an instance
3731	// attempts to perform IP forwarding but is not enabled for IP
3732	// forwarding).
3733	Key string `json:"key,omitempty"`
3734
3735	// Value: [Output Only] A warning data value corresponding to the key.
3736	Value string `json:"value,omitempty"`
3737
3738	// ForceSendFields is a list of field names (e.g. "Key") to
3739	// unconditionally include in API requests. By default, fields with
3740	// empty values are omitted from API requests. However, any non-pointer,
3741	// non-interface field appearing in ForceSendFields will be sent to the
3742	// server regardless of whether the field is empty or not. This may be
3743	// used to include empty fields in Patch requests.
3744	ForceSendFields []string `json:"-"`
3745
3746	// NullFields is a list of field names (e.g. "Key") to include in API
3747	// requests with the JSON null value. By default, fields with empty
3748	// values are omitted from API requests. However, any field with an
3749	// empty value appearing in NullFields will be sent to the server as
3750	// null. It is an error if a field in this list has a non-empty value.
3751	// This may be used to include null fields in Patch requests.
3752	NullFields []string `json:"-"`
3753}
3754
3755func (s *AutoscalersScopedListWarningData) MarshalJSON() ([]byte, error) {
3756	type NoMethod AutoscalersScopedListWarningData
3757	raw := NoMethod(*s)
3758	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3759}
3760
3761// AutoscalingPolicy: Cloud Autoscaler policy.
3762type AutoscalingPolicy struct {
3763	// CoolDownPeriodSec: The number of seconds that the autoscaler should
3764	// wait before it starts collecting information from a new instance.
3765	// This prevents the autoscaler from collecting information when the
3766	// instance is initializing, during which the collected usage would not
3767	// be reliable. The default time autoscaler waits is 60
3768	// seconds.
3769	//
3770	// Virtual machine initialization times might vary because of numerous
3771	// factors. We recommend that you test how long an instance may take to
3772	// initialize. To do this, create an instance and time the startup
3773	// process.
3774	CoolDownPeriodSec int64 `json:"coolDownPeriodSec,omitempty"`
3775
3776	// CpuUtilization: Defines the CPU utilization policy that allows the
3777	// autoscaler to scale based on the average CPU utilization of a managed
3778	// instance group.
3779	CpuUtilization *AutoscalingPolicyCpuUtilization `json:"cpuUtilization,omitempty"`
3780
3781	// CustomMetricUtilizations: Configuration parameters of autoscaling
3782	// based on a custom metric.
3783	CustomMetricUtilizations []*AutoscalingPolicyCustomMetricUtilization `json:"customMetricUtilizations,omitempty"`
3784
3785	// LoadBalancingUtilization: Configuration parameters of autoscaling
3786	// based on load balancer.
3787	LoadBalancingUtilization *AutoscalingPolicyLoadBalancingUtilization `json:"loadBalancingUtilization,omitempty"`
3788
3789	// MaxNumReplicas: The maximum number of instances that the autoscaler
3790	// can scale up to. This is required when creating or updating an
3791	// autoscaler. The maximum number of replicas should not be lower than
3792	// minimal number of replicas.
3793	MaxNumReplicas int64 `json:"maxNumReplicas,omitempty"`
3794
3795	// MinNumReplicas: The minimum number of replicas that the autoscaler
3796	// can scale down to. This cannot be less than 0. If not provided,
3797	// autoscaler will choose a default value depending on maximum number of
3798	// instances allowed.
3799	MinNumReplicas int64 `json:"minNumReplicas,omitempty"`
3800
3801	// Mode: Defines operating mode for this policy.
3802	//
3803	// Possible values:
3804	//   "OFF"
3805	//   "ON"
3806	//   "ONLY_UP"
3807	Mode string `json:"mode,omitempty"`
3808
3809	// QueueBasedScaling: Configuration parameters of autoscaling based on
3810	// queuing system.
3811	QueueBasedScaling *AutoscalingPolicyQueueBasedScaling `json:"queueBasedScaling,omitempty"`
3812
3813	ScaleDownControl *AutoscalingPolicyScaleDownControl `json:"scaleDownControl,omitempty"`
3814
3815	// ForceSendFields is a list of field names (e.g. "CoolDownPeriodSec")
3816	// to unconditionally include in API requests. By default, fields with
3817	// empty values are omitted from API requests. However, any non-pointer,
3818	// non-interface field appearing in ForceSendFields will be sent to the
3819	// server regardless of whether the field is empty or not. This may be
3820	// used to include empty fields in Patch requests.
3821	ForceSendFields []string `json:"-"`
3822
3823	// NullFields is a list of field names (e.g. "CoolDownPeriodSec") to
3824	// include in API requests with the JSON null value. By default, fields
3825	// with empty values are omitted from API requests. However, any field
3826	// with an empty value appearing in NullFields will be sent to the
3827	// server as null. It is an error if a field in this list has a
3828	// non-empty value. This may be used to include null fields in Patch
3829	// requests.
3830	NullFields []string `json:"-"`
3831}
3832
3833func (s *AutoscalingPolicy) MarshalJSON() ([]byte, error) {
3834	type NoMethod AutoscalingPolicy
3835	raw := NoMethod(*s)
3836	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3837}
3838
3839// AutoscalingPolicyCpuUtilization: CPU utilization policy.
3840type AutoscalingPolicyCpuUtilization struct {
3841	// PredictiveMethod: Indicates which method of prediction is used for
3842	// CPU utilization metric, if any. Current set of possible values: *
3843	// NONE: No predictions are made based on the scaling metric when
3844	// calculating the number of VM instances. * STANDARD: Standard
3845	// predictive autoscaling predicts the future values of the scaling
3846	// metric and then scales a MIG to ensure that new VM instances are
3847	// ready in time to cover the predicted peak. New values might be added
3848	// in the future. Some of the values might not be available in all API
3849	// versions.
3850	//
3851	// Possible values:
3852	//   "NONE"
3853	//   "PREDICTIVE_METHOD_UNSPECIFIED"
3854	//   "STANDARD"
3855	PredictiveMethod string `json:"predictiveMethod,omitempty"`
3856
3857	// UtilizationTarget: The target CPU utilization that the autoscaler
3858	// should maintain. Must be a float value in the range (0, 1]. If not
3859	// specified, the default is 0.6.
3860	//
3861	// If the CPU level is below the target utilization, the autoscaler
3862	// scales down the number of instances until it reaches the minimum
3863	// number of instances you specified or until the average CPU of your
3864	// instances reaches the target utilization.
3865	//
3866	// If the average CPU is above the target utilization, the autoscaler
3867	// scales up until it reaches the maximum number of instances you
3868	// specified or until the average utilization reaches the target
3869	// utilization.
3870	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
3871
3872	// ForceSendFields is a list of field names (e.g. "PredictiveMethod") to
3873	// unconditionally include in API requests. By default, fields with
3874	// empty values are omitted from API requests. However, any non-pointer,
3875	// non-interface field appearing in ForceSendFields will be sent to the
3876	// server regardless of whether the field is empty or not. This may be
3877	// used to include empty fields in Patch requests.
3878	ForceSendFields []string `json:"-"`
3879
3880	// NullFields is a list of field names (e.g. "PredictiveMethod") to
3881	// include in API requests with the JSON null value. By default, fields
3882	// with empty values are omitted from API requests. However, any field
3883	// with an empty value appearing in NullFields will be sent to the
3884	// server as null. It is an error if a field in this list has a
3885	// non-empty value. This may be used to include null fields in Patch
3886	// requests.
3887	NullFields []string `json:"-"`
3888}
3889
3890func (s *AutoscalingPolicyCpuUtilization) MarshalJSON() ([]byte, error) {
3891	type NoMethod AutoscalingPolicyCpuUtilization
3892	raw := NoMethod(*s)
3893	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3894}
3895
3896func (s *AutoscalingPolicyCpuUtilization) UnmarshalJSON(data []byte) error {
3897	type NoMethod AutoscalingPolicyCpuUtilization
3898	var s1 struct {
3899		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
3900		*NoMethod
3901	}
3902	s1.NoMethod = (*NoMethod)(s)
3903	if err := json.Unmarshal(data, &s1); err != nil {
3904		return err
3905	}
3906	s.UtilizationTarget = float64(s1.UtilizationTarget)
3907	return nil
3908}
3909
3910// AutoscalingPolicyCustomMetricUtilization: Custom utilization metric
3911// policy.
3912type AutoscalingPolicyCustomMetricUtilization struct {
3913	// Filter: A filter string, compatible with a Stackdriver Monitoring
3914	// filter string for TimeSeries.list API call. This filter is used to
3915	// select a specific TimeSeries for the purpose of autoscaling and to
3916	// determine whether the metric is exporting per-instance or per-group
3917	// data.
3918	//
3919	// For the filter to be valid for autoscaling purposes, the following
3920	// rules apply:
3921	// - You can only use the AND operator for joining selectors.
3922	// - You can only use direct equality comparison operator (=) without
3923	// any functions for each selector.
3924	// - You can specify the metric in both the filter string and in the
3925	// metric field. However, if specified in both places, the metric must
3926	// be identical.
3927	// - The monitored resource type determines what kind of values are
3928	// expected for the metric. If it is a gce_instance, the autoscaler
3929	// expects the metric to include a separate TimeSeries for each instance
3930	// in a group. In such a case, you cannot filter on resource labels.
3931	// If the resource type is any other value, the autoscaler expects this
3932	// metric to contain values that apply to the entire autoscaled instance
3933	// group and resource label filtering can be performed to point
3934	// autoscaler at the correct TimeSeries to scale upon. This is called a
3935	// per-group metric for the purpose of autoscaling.
3936	//
3937	// If not specified, the type defaults to gce_instance.
3938	//
3939	// You should provide a filter that is selective enough to pick just one
3940	// TimeSeries for the autoscaled group or for each of the instances (if
3941	// you are using gce_instance resource type). If multiple TimeSeries are
3942	// returned upon the query execution, the autoscaler will sum their
3943	// respective values to obtain its scaling value.
3944	Filter string `json:"filter,omitempty"`
3945
3946	// Metric: The identifier (type) of the Stackdriver Monitoring metric.
3947	// The metric cannot have negative values.
3948	//
3949	// The metric must have a value type of INT64 or DOUBLE.
3950	Metric string `json:"metric,omitempty"`
3951
3952	// SingleInstanceAssignment: If scaling is based on a per-group metric
3953	// value that represents the total amount of work to be done or resource
3954	// usage, set this value to an amount assigned for a single instance of
3955	// the scaled group. Autoscaler will keep the number of instances
3956	// proportional to the value of this metric, the metric itself should
3957	// not change value due to group resizing.
3958	//
3959	// A good metric to use with the target is for example
3960	// pubsub.googleapis.com/subscription/num_undelivered_messages or a
3961	// custom metric exporting the total number of requests coming to your
3962	// instances.
3963	//
3964	// A bad example would be a metric exporting an average or median
3965	// latency, since this value can't include a chunk assignable to a
3966	// single instance, it could be better used with utilization_target
3967	// instead.
3968	SingleInstanceAssignment float64 `json:"singleInstanceAssignment,omitempty"`
3969
3970	// UtilizationTarget: The target value of the metric that autoscaler
3971	// should maintain. This must be a positive value. A utilization metric
3972	// scales number of virtual machines handling requests to increase or
3973	// decrease proportionally to the metric.
3974	//
3975	// For example, a good metric to use as a utilization_target is
3976	// compute.googleapis.com/instance/network/received_bytes_count. The
3977	// autoscaler will work to keep this value constant for each of the
3978	// instances.
3979	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
3980
3981	// UtilizationTargetType: Defines how target utilization value is
3982	// expressed for a Stackdriver Monitoring metric. Either GAUGE,
3983	// DELTA_PER_SECOND, or DELTA_PER_MINUTE.
3984	//
3985	// Possible values:
3986	//   "DELTA_PER_MINUTE"
3987	//   "DELTA_PER_SECOND"
3988	//   "GAUGE"
3989	UtilizationTargetType string `json:"utilizationTargetType,omitempty"`
3990
3991	// ForceSendFields is a list of field names (e.g. "Filter") to
3992	// unconditionally include in API requests. By default, fields with
3993	// empty values are omitted from API requests. However, any non-pointer,
3994	// non-interface field appearing in ForceSendFields will be sent to the
3995	// server regardless of whether the field is empty or not. This may be
3996	// used to include empty fields in Patch requests.
3997	ForceSendFields []string `json:"-"`
3998
3999	// NullFields is a list of field names (e.g. "Filter") to include in API
4000	// requests with the JSON null value. By default, fields with empty
4001	// values are omitted from API requests. However, any field with an
4002	// empty value appearing in NullFields will be sent to the server as
4003	// null. It is an error if a field in this list has a non-empty value.
4004	// This may be used to include null fields in Patch requests.
4005	NullFields []string `json:"-"`
4006}
4007
4008func (s *AutoscalingPolicyCustomMetricUtilization) MarshalJSON() ([]byte, error) {
4009	type NoMethod AutoscalingPolicyCustomMetricUtilization
4010	raw := NoMethod(*s)
4011	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4012}
4013
4014func (s *AutoscalingPolicyCustomMetricUtilization) UnmarshalJSON(data []byte) error {
4015	type NoMethod AutoscalingPolicyCustomMetricUtilization
4016	var s1 struct {
4017		SingleInstanceAssignment gensupport.JSONFloat64 `json:"singleInstanceAssignment"`
4018		UtilizationTarget        gensupport.JSONFloat64 `json:"utilizationTarget"`
4019		*NoMethod
4020	}
4021	s1.NoMethod = (*NoMethod)(s)
4022	if err := json.Unmarshal(data, &s1); err != nil {
4023		return err
4024	}
4025	s.SingleInstanceAssignment = float64(s1.SingleInstanceAssignment)
4026	s.UtilizationTarget = float64(s1.UtilizationTarget)
4027	return nil
4028}
4029
4030// AutoscalingPolicyLoadBalancingUtilization: Configuration parameters
4031// of autoscaling based on load balancing.
4032type AutoscalingPolicyLoadBalancingUtilization struct {
4033	// UtilizationTarget: Fraction of backend capacity utilization (set in
4034	// HTTP(S) load balancing configuration) that autoscaler should
4035	// maintain. Must be a positive float value. If not defined, the default
4036	// is 0.8.
4037	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
4038
4039	// ForceSendFields is a list of field names (e.g. "UtilizationTarget")
4040	// to unconditionally include in API requests. By default, fields with
4041	// empty values are omitted from API requests. However, any non-pointer,
4042	// non-interface field appearing in ForceSendFields will be sent to the
4043	// server regardless of whether the field is empty or not. This may be
4044	// used to include empty fields in Patch requests.
4045	ForceSendFields []string `json:"-"`
4046
4047	// NullFields is a list of field names (e.g. "UtilizationTarget") to
4048	// include in API requests with the JSON null value. By default, fields
4049	// with empty values are omitted from API requests. However, any field
4050	// with an empty value appearing in NullFields will be sent to the
4051	// server as null. It is an error if a field in this list has a
4052	// non-empty value. This may be used to include null fields in Patch
4053	// requests.
4054	NullFields []string `json:"-"`
4055}
4056
4057func (s *AutoscalingPolicyLoadBalancingUtilization) MarshalJSON() ([]byte, error) {
4058	type NoMethod AutoscalingPolicyLoadBalancingUtilization
4059	raw := NoMethod(*s)
4060	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4061}
4062
4063func (s *AutoscalingPolicyLoadBalancingUtilization) UnmarshalJSON(data []byte) error {
4064	type NoMethod AutoscalingPolicyLoadBalancingUtilization
4065	var s1 struct {
4066		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
4067		*NoMethod
4068	}
4069	s1.NoMethod = (*NoMethod)(s)
4070	if err := json.Unmarshal(data, &s1); err != nil {
4071		return err
4072	}
4073	s.UtilizationTarget = float64(s1.UtilizationTarget)
4074	return nil
4075}
4076
4077// AutoscalingPolicyQueueBasedScaling: Configuration parameters of
4078// autoscaling based on queuing system.
4079type AutoscalingPolicyQueueBasedScaling struct {
4080	// AcceptableBacklogPerInstance: Scaling based on the average number of
4081	// tasks in the queue per each active instance. The autoscaler keeps the
4082	// average number of tasks per instance below this number, based on data
4083	// collected in the last couple of minutes. The autoscaler will also
4084	// take into account incoming tasks when calculating when to scale.
4085	AcceptableBacklogPerInstance float64 `json:"acceptableBacklogPerInstance,omitempty"`
4086
4087	// CloudPubSub: Configuration for Cloud Pub/Sub subscription queue.
4088	CloudPubSub *AutoscalingPolicyQueueBasedScalingCloudPubSub `json:"cloudPubSub,omitempty"`
4089
4090	// SingleWorkerThroughputPerSec: The scaling algorithm will also
4091	// calculate throughput estimates on its own; if you explicitly provide
4092	// this value, the autoscaler will take into account your value as well
4093	// as automatic estimates when deciding how to scale.
4094	SingleWorkerThroughputPerSec float64 `json:"singleWorkerThroughputPerSec,omitempty"`
4095
4096	// ForceSendFields is a list of field names (e.g.
4097	// "AcceptableBacklogPerInstance") to unconditionally include in API
4098	// requests. By default, fields with empty values are omitted from API
4099	// requests. However, any non-pointer, non-interface field appearing in
4100	// ForceSendFields will be sent to the server regardless of whether the
4101	// field is empty or not. This may be used to include empty fields in
4102	// Patch requests.
4103	ForceSendFields []string `json:"-"`
4104
4105	// NullFields is a list of field names (e.g.
4106	// "AcceptableBacklogPerInstance") to include in API requests with the
4107	// JSON null value. By default, fields with empty values are omitted
4108	// from API requests. However, any field with an empty value appearing
4109	// in NullFields will be sent to the server as null. It is an error if a
4110	// field in this list has a non-empty value. This may be used to include
4111	// null fields in Patch requests.
4112	NullFields []string `json:"-"`
4113}
4114
4115func (s *AutoscalingPolicyQueueBasedScaling) MarshalJSON() ([]byte, error) {
4116	type NoMethod AutoscalingPolicyQueueBasedScaling
4117	raw := NoMethod(*s)
4118	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4119}
4120
4121func (s *AutoscalingPolicyQueueBasedScaling) UnmarshalJSON(data []byte) error {
4122	type NoMethod AutoscalingPolicyQueueBasedScaling
4123	var s1 struct {
4124		AcceptableBacklogPerInstance gensupport.JSONFloat64 `json:"acceptableBacklogPerInstance"`
4125		SingleWorkerThroughputPerSec gensupport.JSONFloat64 `json:"singleWorkerThroughputPerSec"`
4126		*NoMethod
4127	}
4128	s1.NoMethod = (*NoMethod)(s)
4129	if err := json.Unmarshal(data, &s1); err != nil {
4130		return err
4131	}
4132	s.AcceptableBacklogPerInstance = float64(s1.AcceptableBacklogPerInstance)
4133	s.SingleWorkerThroughputPerSec = float64(s1.SingleWorkerThroughputPerSec)
4134	return nil
4135}
4136
4137// AutoscalingPolicyQueueBasedScalingCloudPubSub: Configuration
4138// parameters for scaling based on Cloud Pub/Sub subscription queue.
4139type AutoscalingPolicyQueueBasedScalingCloudPubSub struct {
4140	// Subscription: Cloud Pub/Sub subscription used for scaling. Provide
4141	// the partial URL (starting with projects/) or just the subscription
4142	// name. The subscription must be assigned to the topic specified in
4143	// topicName and must be in a pull configuration. The subscription must
4144	// belong to the same project as the Autoscaler.
4145	Subscription string `json:"subscription,omitempty"`
4146
4147	// Topic: Cloud Pub/Sub topic used for scaling. Provide the partial URL
4148	// or partial URL (starting with projects/) or just the topic name. The
4149	// topic must belong to the same project as the Autoscaler resource.
4150	Topic string `json:"topic,omitempty"`
4151
4152	// ForceSendFields is a list of field names (e.g. "Subscription") to
4153	// unconditionally include in API requests. By default, fields with
4154	// empty values are omitted from API requests. However, any non-pointer,
4155	// non-interface field appearing in ForceSendFields will be sent to the
4156	// server regardless of whether the field is empty or not. This may be
4157	// used to include empty fields in Patch requests.
4158	ForceSendFields []string `json:"-"`
4159
4160	// NullFields is a list of field names (e.g. "Subscription") to include
4161	// in API requests with the JSON null value. By default, fields with
4162	// empty values are omitted from API requests. However, any field with
4163	// an empty value appearing in NullFields will be sent to the server as
4164	// null. It is an error if a field in this list has a non-empty value.
4165	// This may be used to include null fields in Patch requests.
4166	NullFields []string `json:"-"`
4167}
4168
4169func (s *AutoscalingPolicyQueueBasedScalingCloudPubSub) MarshalJSON() ([]byte, error) {
4170	type NoMethod AutoscalingPolicyQueueBasedScalingCloudPubSub
4171	raw := NoMethod(*s)
4172	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4173}
4174
4175// AutoscalingPolicyScaleDownControl: Configuration that allows for
4176// slower scale down so that even if Autoscaler recommends an abrupt
4177// scale down of a MIG, it will be throttled as specified by the
4178// parameters below.
4179type AutoscalingPolicyScaleDownControl struct {
4180	// MaxScaledDownReplicas: Maximum allowed number (or %) of VMs that can
4181	// be deducted from the peak recommendation during the window autoscaler
4182	// looks at when computing recommendations. Possibly all these VMs can
4183	// be deleted at once so user service needs to be prepared to lose that
4184	// many VMs in one step.
4185	MaxScaledDownReplicas *FixedOrPercent `json:"maxScaledDownReplicas,omitempty"`
4186
4187	// TimeWindow: How long back autoscaling should look when computing
4188	// recommendations to include directives regarding slower scale down, as
4189	// described above.
4190	TimeWindow *GoogleDuration `json:"timeWindow,omitempty"`
4191
4192	// TimeWindowSec: How long back autoscaling should look when computing
4193	// recommendations to include directives regarding slower scale down, as
4194	// described above.
4195	TimeWindowSec int64 `json:"timeWindowSec,omitempty"`
4196
4197	// ForceSendFields is a list of field names (e.g.
4198	// "MaxScaledDownReplicas") to unconditionally include in API requests.
4199	// By default, fields with empty values are omitted from API requests.
4200	// However, any non-pointer, non-interface field appearing in
4201	// ForceSendFields will be sent to the server regardless of whether the
4202	// field is empty or not. This may be used to include empty fields in
4203	// Patch requests.
4204	ForceSendFields []string `json:"-"`
4205
4206	// NullFields is a list of field names (e.g. "MaxScaledDownReplicas") to
4207	// include in API requests with the JSON null value. By default, fields
4208	// with empty values are omitted from API requests. However, any field
4209	// with an empty value appearing in NullFields will be sent to the
4210	// server as null. It is an error if a field in this list has a
4211	// non-empty value. This may be used to include null fields in Patch
4212	// requests.
4213	NullFields []string `json:"-"`
4214}
4215
4216func (s *AutoscalingPolicyScaleDownControl) MarshalJSON() ([]byte, error) {
4217	type NoMethod AutoscalingPolicyScaleDownControl
4218	raw := NoMethod(*s)
4219	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4220}
4221
4222// Backend: Message containing information of one individual backend.
4223type Backend struct {
4224	// BalancingMode: Specifies the balancing mode for the backend.
4225	//
4226	// When choosing a balancing mode, you need to consider the
4227	// loadBalancingScheme, and protocol for the backend service, as well as
4228	// the type of backend (instance group or NEG).
4229	//
4230	//
4231	// - If the load balancing mode is CONNECTION, then the load is spread
4232	// based on how many concurrent connections the backend can handle.
4233	// You can use the CONNECTION balancing mode if the protocol for the
4234	// backend service is SSL, TCP, or UDP.
4235	//
4236	// If the loadBalancingScheme for the backend service is EXTERNAL (SSL
4237	// Proxy and TCP Proxy load balancers), you must also specify exactly
4238	// one of the following parameters: maxConnections,
4239	// maxConnectionsPerInstance, or maxConnectionsPerEndpoint.
4240	//
4241	// If the loadBalancingScheme for the backend service is INTERNAL
4242	// (internal TCP/UDP load balancers), you cannot specify any additional
4243	// parameters.
4244	//
4245	// - If the load balancing mode is RATE, the load is spread based on the
4246	// rate of HTTP requests per second (RPS).
4247	// You can use the RATE balancing mode if the protocol for the backend
4248	// service is HTTP or HTTPS. You must specify exactly one of the
4249	// following parameters: maxRate, maxRatePerInstance, or
4250	// maxRatePerEndpoint.
4251	//
4252	// - If the load balancing mode is UTILIZATION, the load is spread based
4253	// on the CPU utilization of instances in an instance group.
4254	// You can use the UTILIZATION balancing mode if the loadBalancingScheme
4255	// of the backend service is EXTERNAL, INTERNAL_SELF_MANAGED, or
4256	// INTERNAL_MANAGED and the backends are instance groups. There are no
4257	// restrictions on the backend service protocol.
4258	//
4259	// Possible values:
4260	//   "CONNECTION"
4261	//   "RATE"
4262	//   "UTILIZATION"
4263	BalancingMode string `json:"balancingMode,omitempty"`
4264
4265	// CapacityScaler: A multiplier applied to the group's maximum servicing
4266	// capacity (based on UTILIZATION, RATE or CONNECTION). Default value is
4267	// 1, which means the group will serve up to 100% of its configured
4268	// capacity (depending on balancingMode). A setting of 0 means the group
4269	// is completely drained, offering 0% of its available Capacity. Valid
4270	// range is [0.0,1.0].
4271	//
4272	// This cannot be used for internal load balancing.
4273	CapacityScaler float64 `json:"capacityScaler,omitempty"`
4274
4275	// Description: An optional description of this resource. Provide this
4276	// property when you create the resource.
4277	Description string `json:"description,omitempty"`
4278
4279	// Failover: This field designates whether this is a failover backend.
4280	// More than one failover backend can be configured for a given
4281	// BackendService.
4282	Failover bool `json:"failover,omitempty"`
4283
4284	// Group: The fully-qualified URL of an instance group or network
4285	// endpoint group (NEG) resource. The type of backend that a backend
4286	// service supports depends on the backend service's
4287	// loadBalancingScheme.
4288	//
4289	//
4290	// - When the loadBalancingScheme for the backend service is EXTERNAL,
4291	// INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED, the backend can be either
4292	// an instance group or a NEG. The backends on the backend service must
4293	// be either all instance groups or all NEGs. You cannot mix instance
4294	// group and NEG backends on the same backend service.
4295	//
4296	//
4297	// - When the loadBalancingScheme for the backend service is INTERNAL,
4298	// the backend must be an instance group in the same region as the
4299	// backend service. NEGs are not supported.
4300	//
4301	// You must use the fully-qualified URL (starting with
4302	// https://www.googleapis.com/) to specify the instance group or NEG.
4303	// Partial URLs are not supported.
4304	Group string `json:"group,omitempty"`
4305
4306	// MaxConnections: Defines a maximum target for simultaneous connections
4307	// for the entire backend (instance group or NEG). If the backend's
4308	// balancingMode is UTILIZATION, this is an optional parameter. If the
4309	// backend's balancingMode is CONNECTION, and backend is attached to a
4310	// backend service whose loadBalancingScheme is EXTERNAL, you must
4311	// specify either this parameter, maxConnectionsPerInstance, or
4312	// maxConnectionsPerEndpoint.
4313	//
4314	// Not available if the backend's balancingMode is RATE. If the
4315	// loadBalancingScheme is INTERNAL, then maxConnections is not
4316	// supported, even though the backend requires a balancing mode of
4317	// CONNECTION.
4318	MaxConnections int64 `json:"maxConnections,omitempty"`
4319
4320	// MaxConnectionsPerEndpoint: Defines a maximum target for simultaneous
4321	// connections for an endpoint of a NEG. This is multiplied by the
4322	// number of endpoints in the NEG to implicitly calculate a maximum
4323	// number of target maximum simultaneous connections for the NEG. If the
4324	// backend's balancingMode is CONNECTION, and the backend is attached to
4325	// a backend service whose loadBalancingScheme is EXTERNAL, you must
4326	// specify either this parameter, maxConnections, or
4327	// maxConnectionsPerInstance.
4328	//
4329	// Not available if the backend's balancingMode is RATE. Internal
4330	// TCP/UDP load balancing does not support setting
4331	// maxConnectionsPerEndpoint even though its backends require a
4332	// balancing mode of CONNECTION.
4333	MaxConnectionsPerEndpoint int64 `json:"maxConnectionsPerEndpoint,omitempty"`
4334
4335	// MaxConnectionsPerInstance: Defines a maximum target for simultaneous
4336	// connections for a single VM in a backend instance group. This is
4337	// multiplied by the number of instances in the instance group to
4338	// implicitly calculate a target maximum number of simultaneous
4339	// connections for the whole instance group. If the backend's
4340	// balancingMode is UTILIZATION, this is an optional parameter. If the
4341	// backend's balancingMode is CONNECTION, and backend is attached to a
4342	// backend service whose loadBalancingScheme is EXTERNAL, you must
4343	// specify either this parameter, maxConnections, or
4344	// maxConnectionsPerEndpoint.
4345	//
4346	// Not available if the backend's balancingMode is RATE. Internal
4347	// TCP/UDP load balancing does not support setting
4348	// maxConnectionsPerInstance even though its backends require a
4349	// balancing mode of CONNECTION.
4350	MaxConnectionsPerInstance int64 `json:"maxConnectionsPerInstance,omitempty"`
4351
4352	// MaxRate: The max requests per second (RPS) of the group. Can be used
4353	// with either RATE or UTILIZATION balancing modes, but required if RATE
4354	// mode. For RATE mode, either maxRate or maxRatePerInstance must be
4355	// set.
4356	//
4357	// This cannot be used for internal load balancing.
4358	MaxRate int64 `json:"maxRate,omitempty"`
4359
4360	// MaxRatePerEndpoint: Defines a maximum target for requests per second
4361	// (RPS) for an endpoint of a NEG. This is multiplied by the number of
4362	// endpoints in the NEG to implicitly calculate a target maximum rate
4363	// for the NEG.
4364	//
4365	// If the backend's balancingMode is RATE, you must specify either this
4366	// parameter, maxRate, or maxRatePerInstance.
4367	//
4368	// Not available if the backend's balancingMode is CONNECTION.
4369	MaxRatePerEndpoint float64 `json:"maxRatePerEndpoint,omitempty"`
4370
4371	// MaxRatePerInstance: Defines a maximum target for requests per second
4372	// (RPS) for a single VM in a backend instance group. This is multiplied
4373	// by the number of instances in the instance group to implicitly
4374	// calculate a target maximum rate for the whole instance group.
4375	//
4376	// If the backend's balancingMode is UTILIZATION, this is an optional
4377	// parameter. If the backend's balancingMode is RATE, you must specify
4378	// either this parameter, maxRate, or maxRatePerEndpoint.
4379	//
4380	// Not available if the backend's balancingMode is CONNECTION.
4381	MaxRatePerInstance float64 `json:"maxRatePerInstance,omitempty"`
4382
4383	// MaxUtilization: Defines the maximum average CPU utilization of a
4384	// backend VM in an instance group. The valid range is [0.0, 1.0]. This
4385	// is an optional parameter if the backend's balancingMode is
4386	// UTILIZATION.
4387	//
4388	// This parameter can be used in conjunction with maxRate,
4389	// maxRatePerInstance, maxConnections, or maxConnectionsPerInstance.
4390	MaxUtilization float64 `json:"maxUtilization,omitempty"`
4391
4392	// ForceSendFields is a list of field names (e.g. "BalancingMode") to
4393	// unconditionally include in API requests. By default, fields with
4394	// empty values are omitted from API requests. However, any non-pointer,
4395	// non-interface field appearing in ForceSendFields will be sent to the
4396	// server regardless of whether the field is empty or not. This may be
4397	// used to include empty fields in Patch requests.
4398	ForceSendFields []string `json:"-"`
4399
4400	// NullFields is a list of field names (e.g. "BalancingMode") to include
4401	// in API requests with the JSON null value. By default, fields with
4402	// empty values are omitted from API requests. However, any field with
4403	// an empty value appearing in NullFields will be sent to the server as
4404	// null. It is an error if a field in this list has a non-empty value.
4405	// This may be used to include null fields in Patch requests.
4406	NullFields []string `json:"-"`
4407}
4408
4409func (s *Backend) MarshalJSON() ([]byte, error) {
4410	type NoMethod Backend
4411	raw := NoMethod(*s)
4412	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4413}
4414
4415func (s *Backend) UnmarshalJSON(data []byte) error {
4416	type NoMethod Backend
4417	var s1 struct {
4418		CapacityScaler     gensupport.JSONFloat64 `json:"capacityScaler"`
4419		MaxRatePerEndpoint gensupport.JSONFloat64 `json:"maxRatePerEndpoint"`
4420		MaxRatePerInstance gensupport.JSONFloat64 `json:"maxRatePerInstance"`
4421		MaxUtilization     gensupport.JSONFloat64 `json:"maxUtilization"`
4422		*NoMethod
4423	}
4424	s1.NoMethod = (*NoMethod)(s)
4425	if err := json.Unmarshal(data, &s1); err != nil {
4426		return err
4427	}
4428	s.CapacityScaler = float64(s1.CapacityScaler)
4429	s.MaxRatePerEndpoint = float64(s1.MaxRatePerEndpoint)
4430	s.MaxRatePerInstance = float64(s1.MaxRatePerInstance)
4431	s.MaxUtilization = float64(s1.MaxUtilization)
4432	return nil
4433}
4434
4435// BackendBucket: Represents a Cloud Storage Bucket resource.
4436//
4437// This Cloud Storage bucket resource is referenced by a URL map of a
4438// load balancer. For more information, read Backend Buckets.
4439type BackendBucket struct {
4440	// BucketName: Cloud Storage bucket name.
4441	BucketName string `json:"bucketName,omitempty"`
4442
4443	// CdnPolicy: Cloud CDN configuration for this BackendBucket.
4444	CdnPolicy *BackendBucketCdnPolicy `json:"cdnPolicy,omitempty"`
4445
4446	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
4447	// format.
4448	CreationTimestamp string `json:"creationTimestamp,omitempty"`
4449
4450	// Description: An optional textual description of the resource;
4451	// provided by the client when the resource is created.
4452	Description string `json:"description,omitempty"`
4453
4454	// EnableCdn: If true, enable Cloud CDN for this BackendBucket.
4455	EnableCdn bool `json:"enableCdn,omitempty"`
4456
4457	// Id: [Output Only] Unique identifier for the resource; defined by the
4458	// server.
4459	Id uint64 `json:"id,omitempty,string"`
4460
4461	// Kind: Type of the resource.
4462	Kind string `json:"kind,omitempty"`
4463
4464	// Name: Name of the resource. Provided by the client when the resource
4465	// is created. The name must be 1-63 characters long, and comply with
4466	// RFC1035. Specifically, the name must be 1-63 characters long and
4467	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
4468	// the first character must be a lowercase letter, and all following
4469	// characters must be a dash, lowercase letter, or digit, except the
4470	// last character, which cannot be a dash.
4471	Name string `json:"name,omitempty"`
4472
4473	// SelfLink: [Output Only] Server-defined URL for the resource.
4474	SelfLink string `json:"selfLink,omitempty"`
4475
4476	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
4477	// with the resource id.
4478	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
4479
4480	// ServerResponse contains the HTTP response code and headers from the
4481	// server.
4482	googleapi.ServerResponse `json:"-"`
4483
4484	// ForceSendFields is a list of field names (e.g. "BucketName") to
4485	// unconditionally include in API requests. By default, fields with
4486	// empty values are omitted from API requests. However, any non-pointer,
4487	// non-interface field appearing in ForceSendFields will be sent to the
4488	// server regardless of whether the field is empty or not. This may be
4489	// used to include empty fields in Patch requests.
4490	ForceSendFields []string `json:"-"`
4491
4492	// NullFields is a list of field names (e.g. "BucketName") to include in
4493	// API requests with the JSON null value. By default, fields with empty
4494	// values are omitted from API requests. However, any field with an
4495	// empty value appearing in NullFields will be sent to the server as
4496	// null. It is an error if a field in this list has a non-empty value.
4497	// This may be used to include null fields in Patch requests.
4498	NullFields []string `json:"-"`
4499}
4500
4501func (s *BackendBucket) MarshalJSON() ([]byte, error) {
4502	type NoMethod BackendBucket
4503	raw := NoMethod(*s)
4504	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4505}
4506
4507// BackendBucketCdnPolicy: Message containing Cloud CDN configuration
4508// for a backend bucket.
4509type BackendBucketCdnPolicy struct {
4510	// SignedUrlCacheMaxAgeSec: Maximum number of seconds the response to a
4511	// signed URL request will be considered fresh. After this time period,
4512	// the response will be revalidated before being served. Defaults to 1hr
4513	// (3600s). When serving responses to signed URL requests, Cloud CDN
4514	// will internally behave as though all responses from this backend had
4515	// a "Cache-Control: public, max-age=[TTL]" header, regardless of any
4516	// existing Cache-Control header. The actual headers served in responses
4517	// will not be altered.
4518	SignedUrlCacheMaxAgeSec int64 `json:"signedUrlCacheMaxAgeSec,omitempty,string"`
4519
4520	// SignedUrlKeyNames: [Output Only] Names of the keys for signing
4521	// request URLs.
4522	SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"`
4523
4524	// ForceSendFields is a list of field names (e.g.
4525	// "SignedUrlCacheMaxAgeSec") to unconditionally include in API
4526	// requests. By default, fields with empty values are omitted from API
4527	// requests. However, any non-pointer, non-interface field appearing in
4528	// ForceSendFields will be sent to the server regardless of whether the
4529	// field is empty or not. This may be used to include empty fields in
4530	// Patch requests.
4531	ForceSendFields []string `json:"-"`
4532
4533	// NullFields is a list of field names (e.g. "SignedUrlCacheMaxAgeSec")
4534	// to include in API requests with the JSON null value. By default,
4535	// fields with empty values are omitted from API requests. However, any
4536	// field with an empty value appearing in NullFields will be sent to the
4537	// server as null. It is an error if a field in this list has a
4538	// non-empty value. This may be used to include null fields in Patch
4539	// requests.
4540	NullFields []string `json:"-"`
4541}
4542
4543func (s *BackendBucketCdnPolicy) MarshalJSON() ([]byte, error) {
4544	type NoMethod BackendBucketCdnPolicy
4545	raw := NoMethod(*s)
4546	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4547}
4548
4549// BackendBucketList: Contains a list of BackendBucket resources.
4550type BackendBucketList struct {
4551	// Id: [Output Only] Unique identifier for the resource; defined by the
4552	// server.
4553	Id string `json:"id,omitempty"`
4554
4555	// Items: A list of BackendBucket resources.
4556	Items []*BackendBucket `json:"items,omitempty"`
4557
4558	// Kind: Type of resource.
4559	Kind string `json:"kind,omitempty"`
4560
4561	// NextPageToken: [Output Only] This token allows you to get the next
4562	// page of results for list requests. If the number of results is larger
4563	// than maxResults, use the nextPageToken as a value for the query
4564	// parameter pageToken in the next list request. Subsequent list
4565	// requests will have their own nextPageToken to continue paging through
4566	// the results.
4567	NextPageToken string `json:"nextPageToken,omitempty"`
4568
4569	// SelfLink: [Output Only] Server-defined URL for this resource.
4570	SelfLink string `json:"selfLink,omitempty"`
4571
4572	// Warning: [Output Only] Informational warning message.
4573	Warning *BackendBucketListWarning `json:"warning,omitempty"`
4574
4575	// ServerResponse contains the HTTP response code and headers from the
4576	// server.
4577	googleapi.ServerResponse `json:"-"`
4578
4579	// ForceSendFields is a list of field names (e.g. "Id") to
4580	// unconditionally include in API requests. By default, fields with
4581	// empty values are omitted from API requests. However, any non-pointer,
4582	// non-interface field appearing in ForceSendFields will be sent to the
4583	// server regardless of whether the field is empty or not. This may be
4584	// used to include empty fields in Patch requests.
4585	ForceSendFields []string `json:"-"`
4586
4587	// NullFields is a list of field names (e.g. "Id") to include in API
4588	// requests with the JSON null value. By default, fields with empty
4589	// values are omitted from API requests. However, any field with an
4590	// empty value appearing in NullFields will be sent to the server as
4591	// null. It is an error if a field in this list has a non-empty value.
4592	// This may be used to include null fields in Patch requests.
4593	NullFields []string `json:"-"`
4594}
4595
4596func (s *BackendBucketList) MarshalJSON() ([]byte, error) {
4597	type NoMethod BackendBucketList
4598	raw := NoMethod(*s)
4599	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4600}
4601
4602// BackendBucketListWarning: [Output Only] Informational warning
4603// message.
4604type BackendBucketListWarning struct {
4605	// Code: [Output Only] A warning code, if applicable. For example,
4606	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
4607	// the response.
4608	//
4609	// Possible values:
4610	//   "CLEANUP_FAILED"
4611	//   "DEPRECATED_RESOURCE_USED"
4612	//   "DEPRECATED_TYPE_USED"
4613	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
4614	//   "EXPERIMENTAL_TYPE_USED"
4615	//   "EXTERNAL_API_WARNING"
4616	//   "FIELD_VALUE_OVERRIDEN"
4617	//   "INJECTED_KERNELS_DEPRECATED"
4618	//   "MISSING_TYPE_DEPENDENCY"
4619	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
4620	//   "NEXT_HOP_CANNOT_IP_FORWARD"
4621	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
4622	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
4623	//   "NEXT_HOP_NOT_RUNNING"
4624	//   "NOT_CRITICAL_ERROR"
4625	//   "NO_RESULTS_ON_PAGE"
4626	//   "REQUIRED_TOS_AGREEMENT"
4627	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
4628	//   "RESOURCE_NOT_DELETED"
4629	//   "SCHEMA_VALIDATION_IGNORED"
4630	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
4631	//   "UNDECLARED_PROPERTIES"
4632	//   "UNREACHABLE"
4633	Code string `json:"code,omitempty"`
4634
4635	// Data: [Output Only] Metadata about this warning in key: value format.
4636	// For example:
4637	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
4638	Data []*BackendBucketListWarningData `json:"data,omitempty"`
4639
4640	// Message: [Output Only] A human-readable description of the warning
4641	// code.
4642	Message string `json:"message,omitempty"`
4643
4644	// ForceSendFields is a list of field names (e.g. "Code") to
4645	// unconditionally include in API requests. By default, fields with
4646	// empty values are omitted from API requests. However, any non-pointer,
4647	// non-interface field appearing in ForceSendFields will be sent to the
4648	// server regardless of whether the field is empty or not. This may be
4649	// used to include empty fields in Patch requests.
4650	ForceSendFields []string `json:"-"`
4651
4652	// NullFields is a list of field names (e.g. "Code") to include in API
4653	// requests with the JSON null value. By default, fields with empty
4654	// values are omitted from API requests. However, any field with an
4655	// empty value appearing in NullFields will be sent to the server as
4656	// null. It is an error if a field in this list has a non-empty value.
4657	// This may be used to include null fields in Patch requests.
4658	NullFields []string `json:"-"`
4659}
4660
4661func (s *BackendBucketListWarning) MarshalJSON() ([]byte, error) {
4662	type NoMethod BackendBucketListWarning
4663	raw := NoMethod(*s)
4664	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4665}
4666
4667type BackendBucketListWarningData struct {
4668	// Key: [Output Only] A key that provides more detail on the warning
4669	// being returned. For example, for warnings where there are no results
4670	// in a list request for a particular zone, this key might be scope and
4671	// the key value might be the zone name. Other examples might be a key
4672	// indicating a deprecated resource and a suggested replacement, or a
4673	// warning about invalid network settings (for example, if an instance
4674	// attempts to perform IP forwarding but is not enabled for IP
4675	// forwarding).
4676	Key string `json:"key,omitempty"`
4677
4678	// Value: [Output Only] A warning data value corresponding to the key.
4679	Value string `json:"value,omitempty"`
4680
4681	// ForceSendFields is a list of field names (e.g. "Key") to
4682	// unconditionally include in API requests. By default, fields with
4683	// empty values are omitted from API requests. However, any non-pointer,
4684	// non-interface field appearing in ForceSendFields will be sent to the
4685	// server regardless of whether the field is empty or not. This may be
4686	// used to include empty fields in Patch requests.
4687	ForceSendFields []string `json:"-"`
4688
4689	// NullFields is a list of field names (e.g. "Key") to include in API
4690	// requests with the JSON null value. By default, fields with empty
4691	// values are omitted from API requests. However, any field with an
4692	// empty value appearing in NullFields will be sent to the server as
4693	// null. It is an error if a field in this list has a non-empty value.
4694	// This may be used to include null fields in Patch requests.
4695	NullFields []string `json:"-"`
4696}
4697
4698func (s *BackendBucketListWarningData) MarshalJSON() ([]byte, error) {
4699	type NoMethod BackendBucketListWarningData
4700	raw := NoMethod(*s)
4701	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4702}
4703
4704// BackendService: Represents a Backend Service resource.
4705//
4706// A backend service contains configuration values for Google Cloud
4707// Platform load balancing services.
4708//
4709// Backend services in Google Compute Engine can be either regionally or
4710// globally scoped.
4711//
4712// * [Global](/compute/docs/reference/rest/latest/backendServices) *
4713// [Regional](/compute/docs/reference/rest/latest/regionBackendServices)
4714//
4715//
4716// For more information, read Backend Services.
4717//
4718// (== resource_for {$api_version}.backendService ==)
4719type BackendService struct {
4720	// AffinityCookieTtlSec: If set to 0, the cookie is non-persistent and
4721	// lasts only until the end of the browser session (or equivalent). The
4722	// maximum allowed value is one day (86,400).
4723	AffinityCookieTtlSec int64 `json:"affinityCookieTtlSec,omitempty"`
4724
4725	// Backends: The list of backends that serve this BackendService.
4726	Backends []*Backend `json:"backends,omitempty"`
4727
4728	// CdnPolicy: Cloud CDN configuration for this BackendService.
4729	CdnPolicy *BackendServiceCdnPolicy `json:"cdnPolicy,omitempty"`
4730
4731	// CircuitBreakers: Settings controlling the volume of connections to a
4732	// backend service. If not set, this feature is considered
4733	// disabled.
4734	//
4735	// This field is applicable to either:
4736	// - A regional backend service with the service_protocol set to HTTP,
4737	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4738	//
4739	// - A global backend service with the load_balancing_scheme set to
4740	// INTERNAL_SELF_MANAGED.
4741	CircuitBreakers *CircuitBreakers `json:"circuitBreakers,omitempty"`
4742
4743	ConnectionDraining *ConnectionDraining `json:"connectionDraining,omitempty"`
4744
4745	// ConsistentHash: Consistent Hash-based load balancing can be used to
4746	// provide soft session affinity based on HTTP headers, cookies or other
4747	// properties. This load balancing policy is applicable only for HTTP
4748	// connections. The affinity to a particular destination host will be
4749	// lost when one or more hosts are added/removed from the destination
4750	// service. This field specifies parameters that control consistent
4751	// hashing. This field is only applicable when localityLbPolicy is set
4752	// to MAGLEV or RING_HASH.
4753	//
4754	// This field is applicable to either:
4755	// - A regional backend service with the service_protocol set to HTTP,
4756	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4757	//
4758	// - A global backend service with the load_balancing_scheme set to
4759	// INTERNAL_SELF_MANAGED.
4760	ConsistentHash *ConsistentHashLoadBalancerSettings `json:"consistentHash,omitempty"`
4761
4762	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
4763	// format.
4764	CreationTimestamp string `json:"creationTimestamp,omitempty"`
4765
4766	// CustomRequestHeaders: Headers that the HTTP/S load balancer should
4767	// add to proxied requests.
4768	CustomRequestHeaders []string `json:"customRequestHeaders,omitempty"`
4769
4770	// Description: An optional description of this resource. Provide this
4771	// property when you create the resource.
4772	Description string `json:"description,omitempty"`
4773
4774	// EnableCDN: If true, enables Cloud CDN for the backend service. Only
4775	// applicable if the loadBalancingScheme is EXTERNAL and the protocol is
4776	// HTTP or HTTPS.
4777	EnableCDN bool `json:"enableCDN,omitempty"`
4778
4779	// FailoverPolicy: Applicable only to Failover for Internal TCP/UDP Load
4780	// Balancing. Requires at least one backend instance group to be defined
4781	// as a backup (failover) backend.
4782	FailoverPolicy *BackendServiceFailoverPolicy `json:"failoverPolicy,omitempty"`
4783
4784	// Fingerprint: Fingerprint of this resource. A hash of the contents
4785	// stored in this object. This field is used in optimistic locking. This
4786	// field will be ignored when inserting a BackendService. An up-to-date
4787	// fingerprint must be provided in order to update the BackendService,
4788	// otherwise the request will fail with error 412 conditionNotMet.
4789	//
4790	// To see the latest fingerprint, make a get() request to retrieve a
4791	// BackendService.
4792	Fingerprint string `json:"fingerprint,omitempty"`
4793
4794	// HealthChecks: The list of URLs to the HttpHealthCheck or
4795	// HttpsHealthCheck resource for health checking this BackendService.
4796	// Currently at most one health check can be specified. Health check is
4797	// optional for Compute Engine backend services if there is no backend.
4798	// A health check must not be specified when adding Internet Network
4799	// Endpoint Group or Serverless Network Endpoint Group as backends. In
4800	// all other cases, a health check is required for Compute Engine
4801	// backend services.
4802	//
4803	// For internal load balancing, a URL to a HealthCheck resource must be
4804	// specified instead.
4805	HealthChecks []string `json:"healthChecks,omitempty"`
4806
4807	Iap *BackendServiceIAP `json:"iap,omitempty"`
4808
4809	// Id: [Output Only] The unique identifier for the resource. This
4810	// identifier is defined by the server.
4811	Id uint64 `json:"id,omitempty,string"`
4812
4813	// Kind: [Output Only] Type of resource. Always compute#backendService
4814	// for backend services.
4815	Kind string `json:"kind,omitempty"`
4816
4817	// LoadBalancingScheme: Specifies the load balancer type. Choose
4818	// EXTERNAL for load balancers that receive traffic from external
4819	// clients. Choose INTERNAL for Internal TCP/UDP Load Balancing. Choose
4820	// INTERNAL_MANAGED for Internal HTTP(S) Load Balancing. Choose
4821	// INTERNAL_SELF_MANAGED for Traffic Director. A backend service created
4822	// for one type of load balancing cannot be used with another. For more
4823	// information, refer to Choosing a load balancer.
4824	//
4825	// Possible values:
4826	//   "EXTERNAL"
4827	//   "INTERNAL"
4828	//   "INTERNAL_MANAGED"
4829	//   "INTERNAL_SELF_MANAGED"
4830	//   "INVALID_LOAD_BALANCING_SCHEME"
4831	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
4832
4833	// LocalityLbPolicy: The load balancing algorithm used within the scope
4834	// of the locality. The possible values are:
4835	// - ROUND_ROBIN: This is a simple policy in which each healthy backend
4836	// is selected in round robin order. This is the default.
4837	// - LEAST_REQUEST: An O(1) algorithm which selects two random healthy
4838	// hosts and picks the host which has fewer active requests.
4839	// - RING_HASH: The ring/modulo hash load balancer implements consistent
4840	// hashing to backends. The algorithm has the property that the
4841	// addition/removal of a host from a set of N hosts only affects 1/N of
4842	// the requests.
4843	// - RANDOM: The load balancer selects a random healthy host.
4844	// - ORIGINAL_DESTINATION: Backend host is selected based on the client
4845	// connection metadata, i.e., connections are opened to the same address
4846	// as the destination address of the incoming connection before the
4847	// connection was redirected to the load balancer.
4848	// - MAGLEV: used as a drop in replacement for the ring hash load
4849	// balancer. Maglev is not as stable as ring hash but has faster table
4850	// lookup build times and host selection times. For more information
4851	// about Maglev, refer to https://ai.google/research/pubs/pub44824
4852	//
4853	//
4854	// This field is applicable to either:
4855	// - A regional backend service with the service_protocol set to HTTP,
4856	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4857	//
4858	// - A global backend service with the load_balancing_scheme set to
4859	// INTERNAL_SELF_MANAGED.
4860	//
4861	// If sessionAffinity is not NONE, and this field is not set to >MAGLEV
4862	// or RING_HASH, session affinity settings will not take effect.
4863	//
4864	// Possible values:
4865	//   "INVALID_LB_POLICY"
4866	//   "LEAST_REQUEST"
4867	//   "MAGLEV"
4868	//   "ORIGINAL_DESTINATION"
4869	//   "RANDOM"
4870	//   "RING_HASH"
4871	//   "ROUND_ROBIN"
4872	LocalityLbPolicy string `json:"localityLbPolicy,omitempty"`
4873
4874	// LogConfig: This field denotes the logging options for the load
4875	// balancer traffic served by this backend service. If logging is
4876	// enabled, logs will be exported to Stackdriver.
4877	LogConfig *BackendServiceLogConfig `json:"logConfig,omitempty"`
4878
4879	// Name: Name of the resource. Provided by the client when the resource
4880	// is created. The name must be 1-63 characters long, and comply with
4881	// RFC1035. Specifically, the name must be 1-63 characters long and
4882	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
4883	// the first character must be a lowercase letter, and all following
4884	// characters must be a dash, lowercase letter, or digit, except the
4885	// last character, which cannot be a dash.
4886	Name string `json:"name,omitempty"`
4887
4888	// Network: The URL of the network to which this backend service
4889	// belongs. This field can only be spcified when the load balancing
4890	// scheme is set to INTERNAL.
4891	Network string `json:"network,omitempty"`
4892
4893	// OutlierDetection: Settings controlling the eviction of unhealthy
4894	// hosts from the load balancing pool for the backend service. If not
4895	// set, this feature is considered disabled.
4896	//
4897	// This field is applicable to either:
4898	// - A regional backend service with the service_protocol set to HTTP,
4899	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4900	//
4901	// - A global backend service with the load_balancing_scheme set to
4902	// INTERNAL_SELF_MANAGED.
4903	OutlierDetection *OutlierDetection `json:"outlierDetection,omitempty"`
4904
4905	// Port: Deprecated in favor of portName. The TCP port to connect on the
4906	// backend. The default value is 80.
4907	//
4908	// This cannot be used if the loadBalancingScheme is INTERNAL (Internal
4909	// TCP/UDP Load Balancing).
4910	Port int64 `json:"port,omitempty"`
4911
4912	// PortName: A named port on a backend instance group representing the
4913	// port for communication to the backend VMs in that group. Required
4914	// when the loadBalancingScheme is EXTERNAL and the backends are
4915	// instance groups. The named port must be defined on each backend
4916	// instance group. This parameter has no meaning if the backends are
4917	// NEGs.
4918	//
4919	//
4920	//
4921	// Must be omitted when the loadBalancingScheme is INTERNAL (Internal
4922	// TCP/UDP Load Blaancing).
4923	PortName string `json:"portName,omitempty"`
4924
4925	// Protocol: The protocol this BackendService uses to communicate with
4926	// backends.
4927	//
4928	// Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, or UDP, depending
4929	// on the chosen load balancer or Traffic Director configuration. Refer
4930	// to the documentation for the load balancer or for Traffic Director
4931	// for more information.
4932	//
4933	// Possible values:
4934	//   "HTTP"
4935	//   "HTTP2"
4936	//   "HTTPS"
4937	//   "SSL"
4938	//   "TCP"
4939	//   "UDP"
4940	Protocol string `json:"protocol,omitempty"`
4941
4942	// Region: [Output Only] URL of the region where the regional backend
4943	// service resides. This field is not applicable to global backend
4944	// services. You must specify this field as part of the HTTP request
4945	// URL. It is not settable as a field in the request body.
4946	Region string `json:"region,omitempty"`
4947
4948	// SecurityPolicy: [Output Only] The resource URL for the security
4949	// policy associated with this backend service.
4950	SecurityPolicy string `json:"securityPolicy,omitempty"`
4951
4952	// SecuritySettings: This field specifies the security policy that
4953	// applies to this backend service. This field is applicable to either:
4954	//
4955	// - A regional backend service with the service_protocol set to HTTP,
4956	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4957	//
4958	// - A global backend service with the load_balancing_scheme set to
4959	// INTERNAL_SELF_MANAGED.
4960	SecuritySettings *SecuritySettings `json:"securitySettings,omitempty"`
4961
4962	// SelfLink: [Output Only] Server-defined URL for the resource.
4963	SelfLink string `json:"selfLink,omitempty"`
4964
4965	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
4966	// with the resource id.
4967	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
4968
4969	// SessionAffinity: Type of session affinity to use. The default is
4970	// NONE. Session affinity is not applicable if the --protocol is
4971	// UDP.
4972	//
4973	// When the loadBalancingScheme is EXTERNAL, possible values are NONE,
4974	// CLIENT_IP, or GENERATED_COOKIE. You can use GENERATED_COOKIE if the
4975	// protocol is HTTP or HTTPS.
4976	//
4977	// When the loadBalancingScheme is INTERNAL, possible values are NONE,
4978	// CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
4979	//
4980	// When the loadBalancingScheme is INTERNAL_SELF_MANAGED, or
4981	// INTERNAL_MANAGED, possible values are NONE, CLIENT_IP,
4982	// GENERATED_COOKIE, HEADER_FIELD, or HTTP_COOKIE.
4983	//
4984	// Possible values:
4985	//   "CLIENT_IP"
4986	//   "CLIENT_IP_NO_DESTINATION"
4987	//   "CLIENT_IP_PORT_PROTO"
4988	//   "CLIENT_IP_PROTO"
4989	//   "GENERATED_COOKIE"
4990	//   "HEADER_FIELD"
4991	//   "HTTP_COOKIE"
4992	//   "NONE"
4993	SessionAffinity string `json:"sessionAffinity,omitempty"`
4994
4995	// TimeoutSec: The backend service timeout has a different meaning
4996	// depending on the type of load balancer. For more information read,
4997	// Backend service settings The default is 30 seconds.
4998	TimeoutSec int64 `json:"timeoutSec,omitempty"`
4999
5000	// ServerResponse contains the HTTP response code and headers from the
5001	// server.
5002	googleapi.ServerResponse `json:"-"`
5003
5004	// ForceSendFields is a list of field names (e.g.
5005	// "AffinityCookieTtlSec") to unconditionally include in API requests.
5006	// By default, fields with empty values are omitted from API requests.
5007	// However, any non-pointer, non-interface field appearing in
5008	// ForceSendFields will be sent to the server regardless of whether the
5009	// field is empty or not. This may be used to include empty fields in
5010	// Patch requests.
5011	ForceSendFields []string `json:"-"`
5012
5013	// NullFields is a list of field names (e.g. "AffinityCookieTtlSec") to
5014	// include in API requests with the JSON null value. By default, fields
5015	// with empty values are omitted from API requests. However, any field
5016	// with an empty value appearing in NullFields will be sent to the
5017	// server as null. It is an error if a field in this list has a
5018	// non-empty value. This may be used to include null fields in Patch
5019	// requests.
5020	NullFields []string `json:"-"`
5021}
5022
5023func (s *BackendService) MarshalJSON() ([]byte, error) {
5024	type NoMethod BackendService
5025	raw := NoMethod(*s)
5026	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5027}
5028
5029// BackendServiceAggregatedList: Contains a list of
5030// BackendServicesScopedList.
5031type BackendServiceAggregatedList struct {
5032	// Id: [Output Only] Unique identifier for the resource; defined by the
5033	// server.
5034	Id string `json:"id,omitempty"`
5035
5036	// Items: A list of BackendServicesScopedList resources.
5037	Items map[string]BackendServicesScopedList `json:"items,omitempty"`
5038
5039	// Kind: Type of resource.
5040	Kind string `json:"kind,omitempty"`
5041
5042	// NextPageToken: [Output Only] This token allows you to get the next
5043	// page of results for list requests. If the number of results is larger
5044	// than maxResults, use the nextPageToken as a value for the query
5045	// parameter pageToken in the next list request. Subsequent list
5046	// requests will have their own nextPageToken to continue paging through
5047	// the results.
5048	NextPageToken string `json:"nextPageToken,omitempty"`
5049
5050	// SelfLink: [Output Only] Server-defined URL for this resource.
5051	SelfLink string `json:"selfLink,omitempty"`
5052
5053	// Warning: [Output Only] Informational warning message.
5054	Warning *BackendServiceAggregatedListWarning `json:"warning,omitempty"`
5055
5056	// ServerResponse contains the HTTP response code and headers from the
5057	// server.
5058	googleapi.ServerResponse `json:"-"`
5059
5060	// ForceSendFields is a list of field names (e.g. "Id") to
5061	// unconditionally include in API requests. By default, fields with
5062	// empty values are omitted from API requests. However, any non-pointer,
5063	// non-interface field appearing in ForceSendFields will be sent to the
5064	// server regardless of whether the field is empty or not. This may be
5065	// used to include empty fields in Patch requests.
5066	ForceSendFields []string `json:"-"`
5067
5068	// NullFields is a list of field names (e.g. "Id") to include in API
5069	// requests with the JSON null value. By default, fields with empty
5070	// values are omitted from API requests. However, any field with an
5071	// empty value appearing in NullFields will be sent to the server as
5072	// null. It is an error if a field in this list has a non-empty value.
5073	// This may be used to include null fields in Patch requests.
5074	NullFields []string `json:"-"`
5075}
5076
5077func (s *BackendServiceAggregatedList) MarshalJSON() ([]byte, error) {
5078	type NoMethod BackendServiceAggregatedList
5079	raw := NoMethod(*s)
5080	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5081}
5082
5083// BackendServiceAggregatedListWarning: [Output Only] Informational
5084// warning message.
5085type BackendServiceAggregatedListWarning struct {
5086	// Code: [Output Only] A warning code, if applicable. For example,
5087	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5088	// the response.
5089	//
5090	// Possible values:
5091	//   "CLEANUP_FAILED"
5092	//   "DEPRECATED_RESOURCE_USED"
5093	//   "DEPRECATED_TYPE_USED"
5094	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5095	//   "EXPERIMENTAL_TYPE_USED"
5096	//   "EXTERNAL_API_WARNING"
5097	//   "FIELD_VALUE_OVERRIDEN"
5098	//   "INJECTED_KERNELS_DEPRECATED"
5099	//   "MISSING_TYPE_DEPENDENCY"
5100	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5101	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5102	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5103	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5104	//   "NEXT_HOP_NOT_RUNNING"
5105	//   "NOT_CRITICAL_ERROR"
5106	//   "NO_RESULTS_ON_PAGE"
5107	//   "REQUIRED_TOS_AGREEMENT"
5108	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5109	//   "RESOURCE_NOT_DELETED"
5110	//   "SCHEMA_VALIDATION_IGNORED"
5111	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5112	//   "UNDECLARED_PROPERTIES"
5113	//   "UNREACHABLE"
5114	Code string `json:"code,omitempty"`
5115
5116	// Data: [Output Only] Metadata about this warning in key: value format.
5117	// For example:
5118	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5119	Data []*BackendServiceAggregatedListWarningData `json:"data,omitempty"`
5120
5121	// Message: [Output Only] A human-readable description of the warning
5122	// code.
5123	Message string `json:"message,omitempty"`
5124
5125	// ForceSendFields is a list of field names (e.g. "Code") to
5126	// unconditionally include in API requests. By default, fields with
5127	// empty values are omitted from API requests. However, any non-pointer,
5128	// non-interface field appearing in ForceSendFields will be sent to the
5129	// server regardless of whether the field is empty or not. This may be
5130	// used to include empty fields in Patch requests.
5131	ForceSendFields []string `json:"-"`
5132
5133	// NullFields is a list of field names (e.g. "Code") to include in API
5134	// requests with the JSON null value. By default, fields with empty
5135	// values are omitted from API requests. However, any field with an
5136	// empty value appearing in NullFields will be sent to the server as
5137	// null. It is an error if a field in this list has a non-empty value.
5138	// This may be used to include null fields in Patch requests.
5139	NullFields []string `json:"-"`
5140}
5141
5142func (s *BackendServiceAggregatedListWarning) MarshalJSON() ([]byte, error) {
5143	type NoMethod BackendServiceAggregatedListWarning
5144	raw := NoMethod(*s)
5145	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5146}
5147
5148type BackendServiceAggregatedListWarningData struct {
5149	// Key: [Output Only] A key that provides more detail on the warning
5150	// being returned. For example, for warnings where there are no results
5151	// in a list request for a particular zone, this key might be scope and
5152	// the key value might be the zone name. Other examples might be a key
5153	// indicating a deprecated resource and a suggested replacement, or a
5154	// warning about invalid network settings (for example, if an instance
5155	// attempts to perform IP forwarding but is not enabled for IP
5156	// forwarding).
5157	Key string `json:"key,omitempty"`
5158
5159	// Value: [Output Only] A warning data value corresponding to the key.
5160	Value string `json:"value,omitempty"`
5161
5162	// ForceSendFields is a list of field names (e.g. "Key") to
5163	// unconditionally include in API requests. By default, fields with
5164	// empty values are omitted from API requests. However, any non-pointer,
5165	// non-interface field appearing in ForceSendFields will be sent to the
5166	// server regardless of whether the field is empty or not. This may be
5167	// used to include empty fields in Patch requests.
5168	ForceSendFields []string `json:"-"`
5169
5170	// NullFields is a list of field names (e.g. "Key") to include in API
5171	// requests with the JSON null value. By default, fields with empty
5172	// values are omitted from API requests. However, any field with an
5173	// empty value appearing in NullFields will be sent to the server as
5174	// null. It is an error if a field in this list has a non-empty value.
5175	// This may be used to include null fields in Patch requests.
5176	NullFields []string `json:"-"`
5177}
5178
5179func (s *BackendServiceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
5180	type NoMethod BackendServiceAggregatedListWarningData
5181	raw := NoMethod(*s)
5182	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5183}
5184
5185// BackendServiceCdnPolicy: Message containing Cloud CDN configuration
5186// for a backend service.
5187type BackendServiceCdnPolicy struct {
5188	// CacheKeyPolicy: The CacheKeyPolicy for this CdnPolicy.
5189	CacheKeyPolicy *CacheKeyPolicy `json:"cacheKeyPolicy,omitempty"`
5190
5191	// SignedUrlCacheMaxAgeSec: Maximum number of seconds the response to a
5192	// signed URL request will be considered fresh. After this time period,
5193	// the response will be revalidated before being served. Defaults to 1hr
5194	// (3600s). When serving responses to signed URL requests, Cloud CDN
5195	// will internally behave as though all responses from this backend had
5196	// a "Cache-Control: public, max-age=[TTL]" header, regardless of any
5197	// existing Cache-Control header. The actual headers served in responses
5198	// will not be altered.
5199	SignedUrlCacheMaxAgeSec int64 `json:"signedUrlCacheMaxAgeSec,omitempty,string"`
5200
5201	// SignedUrlKeyNames: [Output Only] Names of the keys for signing
5202	// request URLs.
5203	SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"`
5204
5205	// ForceSendFields is a list of field names (e.g. "CacheKeyPolicy") to
5206	// unconditionally include in API requests. By default, fields with
5207	// empty values are omitted from API requests. However, any non-pointer,
5208	// non-interface field appearing in ForceSendFields will be sent to the
5209	// server regardless of whether the field is empty or not. This may be
5210	// used to include empty fields in Patch requests.
5211	ForceSendFields []string `json:"-"`
5212
5213	// NullFields is a list of field names (e.g. "CacheKeyPolicy") to
5214	// include in API requests with the JSON null value. By default, fields
5215	// with empty values are omitted from API requests. However, any field
5216	// with an empty value appearing in NullFields will be sent to the
5217	// server as null. It is an error if a field in this list has a
5218	// non-empty value. This may be used to include null fields in Patch
5219	// requests.
5220	NullFields []string `json:"-"`
5221}
5222
5223func (s *BackendServiceCdnPolicy) MarshalJSON() ([]byte, error) {
5224	type NoMethod BackendServiceCdnPolicy
5225	raw := NoMethod(*s)
5226	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5227}
5228
5229type BackendServiceFailoverPolicy struct {
5230	// DisableConnectionDrainOnFailover: This can be set to true only if the
5231	// protocol is TCP.
5232	//
5233	// The default is false.
5234	DisableConnectionDrainOnFailover bool `json:"disableConnectionDrainOnFailover,omitempty"`
5235
5236	// DropTrafficIfUnhealthy: Applicable only to Failover for Internal
5237	// TCP/UDP Load Balancing. If set to true, connections to the load
5238	// balancer are dropped when all primary and all backup backend VMs are
5239	// unhealthy. If set to false, connections are distributed among all
5240	// primary VMs when all primary and all backup backend VMs are
5241	// unhealthy.
5242	//
5243	// The default is false.
5244	DropTrafficIfUnhealthy bool `json:"dropTrafficIfUnhealthy,omitempty"`
5245
5246	// FailoverRatio: Applicable only to Failover for Internal TCP/UDP Load
5247	// Balancing. The value of the field must be in the range [0, 1]. If the
5248	// value is 0, the load balancer performs a failover when the number of
5249	// healthy primary VMs equals zero. For all other values, the load
5250	// balancer performs a failover when the total number of healthy primary
5251	// VMs is less than this ratio.
5252	FailoverRatio float64 `json:"failoverRatio,omitempty"`
5253
5254	// ForceSendFields is a list of field names (e.g.
5255	// "DisableConnectionDrainOnFailover") to unconditionally include in API
5256	// requests. By default, fields with empty values are omitted from API
5257	// requests. However, any non-pointer, non-interface field appearing in
5258	// ForceSendFields will be sent to the server regardless of whether the
5259	// field is empty or not. This may be used to include empty fields in
5260	// Patch requests.
5261	ForceSendFields []string `json:"-"`
5262
5263	// NullFields is a list of field names (e.g.
5264	// "DisableConnectionDrainOnFailover") to include in API requests with
5265	// the JSON null value. By default, fields with empty values are omitted
5266	// from API requests. However, any field with an empty value appearing
5267	// in NullFields will be sent to the server as null. It is an error if a
5268	// field in this list has a non-empty value. This may be used to include
5269	// null fields in Patch requests.
5270	NullFields []string `json:"-"`
5271}
5272
5273func (s *BackendServiceFailoverPolicy) MarshalJSON() ([]byte, error) {
5274	type NoMethod BackendServiceFailoverPolicy
5275	raw := NoMethod(*s)
5276	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5277}
5278
5279func (s *BackendServiceFailoverPolicy) UnmarshalJSON(data []byte) error {
5280	type NoMethod BackendServiceFailoverPolicy
5281	var s1 struct {
5282		FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"`
5283		*NoMethod
5284	}
5285	s1.NoMethod = (*NoMethod)(s)
5286	if err := json.Unmarshal(data, &s1); err != nil {
5287		return err
5288	}
5289	s.FailoverRatio = float64(s1.FailoverRatio)
5290	return nil
5291}
5292
5293type BackendServiceGroupHealth struct {
5294	// Annotations: Metadata defined as annotations on the network endpoint
5295	// group.
5296	Annotations map[string]string `json:"annotations,omitempty"`
5297
5298	// HealthStatus: Health state of the backend instances or endpoints in
5299	// requested instance or network endpoint group, determined based on
5300	// configured health checks.
5301	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
5302
5303	// Kind: [Output Only] Type of resource. Always
5304	// compute#backendServiceGroupHealth for the health of backend services.
5305	Kind string `json:"kind,omitempty"`
5306
5307	// ServerResponse contains the HTTP response code and headers from the
5308	// server.
5309	googleapi.ServerResponse `json:"-"`
5310
5311	// ForceSendFields is a list of field names (e.g. "Annotations") to
5312	// unconditionally include in API requests. By default, fields with
5313	// empty values are omitted from API requests. However, any non-pointer,
5314	// non-interface field appearing in ForceSendFields will be sent to the
5315	// server regardless of whether the field is empty or not. This may be
5316	// used to include empty fields in Patch requests.
5317	ForceSendFields []string `json:"-"`
5318
5319	// NullFields is a list of field names (e.g. "Annotations") to include
5320	// in API requests with the JSON null value. By default, fields with
5321	// empty values are omitted from API requests. However, any field with
5322	// an empty value appearing in NullFields will be sent to the server as
5323	// null. It is an error if a field in this list has a non-empty value.
5324	// This may be used to include null fields in Patch requests.
5325	NullFields []string `json:"-"`
5326}
5327
5328func (s *BackendServiceGroupHealth) MarshalJSON() ([]byte, error) {
5329	type NoMethod BackendServiceGroupHealth
5330	raw := NoMethod(*s)
5331	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5332}
5333
5334// BackendServiceIAP: Identity-Aware Proxy
5335type BackendServiceIAP struct {
5336	Enabled bool `json:"enabled,omitempty"`
5337
5338	Oauth2ClientId string `json:"oauth2ClientId,omitempty"`
5339
5340	// Oauth2ClientInfo: [Input Only] OAuth client info required to generate
5341	// client id to be used for IAP.
5342	Oauth2ClientInfo *BackendServiceIAPOAuth2ClientInfo `json:"oauth2ClientInfo,omitempty"`
5343
5344	Oauth2ClientSecret string `json:"oauth2ClientSecret,omitempty"`
5345
5346	// Oauth2ClientSecretSha256: [Output Only] SHA256 hash value for the
5347	// field oauth2_client_secret above.
5348	Oauth2ClientSecretSha256 string `json:"oauth2ClientSecretSha256,omitempty"`
5349
5350	// ForceSendFields is a list of field names (e.g. "Enabled") to
5351	// unconditionally include in API requests. By default, fields with
5352	// empty values are omitted from API requests. However, any non-pointer,
5353	// non-interface field appearing in ForceSendFields will be sent to the
5354	// server regardless of whether the field is empty or not. This may be
5355	// used to include empty fields in Patch requests.
5356	ForceSendFields []string `json:"-"`
5357
5358	// NullFields is a list of field names (e.g. "Enabled") to include in
5359	// API requests with the JSON null value. By default, fields with empty
5360	// values are omitted from API requests. However, any field with an
5361	// empty value appearing in NullFields will be sent to the server as
5362	// null. It is an error if a field in this list has a non-empty value.
5363	// This may be used to include null fields in Patch requests.
5364	NullFields []string `json:"-"`
5365}
5366
5367func (s *BackendServiceIAP) MarshalJSON() ([]byte, error) {
5368	type NoMethod BackendServiceIAP
5369	raw := NoMethod(*s)
5370	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5371}
5372
5373type BackendServiceIAPOAuth2ClientInfo struct {
5374	// ApplicationName: Application name to be used in OAuth consent screen.
5375	ApplicationName string `json:"applicationName,omitempty"`
5376
5377	// ClientName: Name of the client to be generated. Optional - If not
5378	// provided, the name will be autogenerated by the backend.
5379	ClientName string `json:"clientName,omitempty"`
5380
5381	// DeveloperEmailAddress: Developer's information to be used in OAuth
5382	// consent screen.
5383	DeveloperEmailAddress string `json:"developerEmailAddress,omitempty"`
5384
5385	// ForceSendFields is a list of field names (e.g. "ApplicationName") to
5386	// unconditionally include in API requests. By default, fields with
5387	// empty values are omitted from API requests. However, any non-pointer,
5388	// non-interface field appearing in ForceSendFields will be sent to the
5389	// server regardless of whether the field is empty or not. This may be
5390	// used to include empty fields in Patch requests.
5391	ForceSendFields []string `json:"-"`
5392
5393	// NullFields is a list of field names (e.g. "ApplicationName") to
5394	// include in API requests with the JSON null value. By default, fields
5395	// with empty values are omitted from API requests. However, any field
5396	// with an empty value appearing in NullFields will be sent to the
5397	// server as null. It is an error if a field in this list has a
5398	// non-empty value. This may be used to include null fields in Patch
5399	// requests.
5400	NullFields []string `json:"-"`
5401}
5402
5403func (s *BackendServiceIAPOAuth2ClientInfo) MarshalJSON() ([]byte, error) {
5404	type NoMethod BackendServiceIAPOAuth2ClientInfo
5405	raw := NoMethod(*s)
5406	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5407}
5408
5409// BackendServiceList: Contains a list of BackendService resources.
5410type BackendServiceList struct {
5411	// Id: [Output Only] Unique identifier for the resource; defined by the
5412	// server.
5413	Id string `json:"id,omitempty"`
5414
5415	// Items: A list of BackendService resources.
5416	Items []*BackendService `json:"items,omitempty"`
5417
5418	// Kind: [Output Only] Type of resource. Always
5419	// compute#backendServiceList for lists of backend services.
5420	Kind string `json:"kind,omitempty"`
5421
5422	// NextPageToken: [Output Only] This token allows you to get the next
5423	// page of results for list requests. If the number of results is larger
5424	// than maxResults, use the nextPageToken as a value for the query
5425	// parameter pageToken in the next list request. Subsequent list
5426	// requests will have their own nextPageToken to continue paging through
5427	// the results.
5428	NextPageToken string `json:"nextPageToken,omitempty"`
5429
5430	// SelfLink: [Output Only] Server-defined URL for this resource.
5431	SelfLink string `json:"selfLink,omitempty"`
5432
5433	// Warning: [Output Only] Informational warning message.
5434	Warning *BackendServiceListWarning `json:"warning,omitempty"`
5435
5436	// ServerResponse contains the HTTP response code and headers from the
5437	// server.
5438	googleapi.ServerResponse `json:"-"`
5439
5440	// ForceSendFields is a list of field names (e.g. "Id") to
5441	// unconditionally include in API requests. By default, fields with
5442	// empty values are omitted from API requests. However, any non-pointer,
5443	// non-interface field appearing in ForceSendFields will be sent to the
5444	// server regardless of whether the field is empty or not. This may be
5445	// used to include empty fields in Patch requests.
5446	ForceSendFields []string `json:"-"`
5447
5448	// NullFields is a list of field names (e.g. "Id") to include in API
5449	// requests with the JSON null value. By default, fields with empty
5450	// values are omitted from API requests. However, any field with an
5451	// empty value appearing in NullFields will be sent to the server as
5452	// null. It is an error if a field in this list has a non-empty value.
5453	// This may be used to include null fields in Patch requests.
5454	NullFields []string `json:"-"`
5455}
5456
5457func (s *BackendServiceList) MarshalJSON() ([]byte, error) {
5458	type NoMethod BackendServiceList
5459	raw := NoMethod(*s)
5460	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5461}
5462
5463// BackendServiceListWarning: [Output Only] Informational warning
5464// message.
5465type BackendServiceListWarning struct {
5466	// Code: [Output Only] A warning code, if applicable. For example,
5467	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5468	// the response.
5469	//
5470	// Possible values:
5471	//   "CLEANUP_FAILED"
5472	//   "DEPRECATED_RESOURCE_USED"
5473	//   "DEPRECATED_TYPE_USED"
5474	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5475	//   "EXPERIMENTAL_TYPE_USED"
5476	//   "EXTERNAL_API_WARNING"
5477	//   "FIELD_VALUE_OVERRIDEN"
5478	//   "INJECTED_KERNELS_DEPRECATED"
5479	//   "MISSING_TYPE_DEPENDENCY"
5480	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5481	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5482	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5483	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5484	//   "NEXT_HOP_NOT_RUNNING"
5485	//   "NOT_CRITICAL_ERROR"
5486	//   "NO_RESULTS_ON_PAGE"
5487	//   "REQUIRED_TOS_AGREEMENT"
5488	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5489	//   "RESOURCE_NOT_DELETED"
5490	//   "SCHEMA_VALIDATION_IGNORED"
5491	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5492	//   "UNDECLARED_PROPERTIES"
5493	//   "UNREACHABLE"
5494	Code string `json:"code,omitempty"`
5495
5496	// Data: [Output Only] Metadata about this warning in key: value format.
5497	// For example:
5498	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5499	Data []*BackendServiceListWarningData `json:"data,omitempty"`
5500
5501	// Message: [Output Only] A human-readable description of the warning
5502	// code.
5503	Message string `json:"message,omitempty"`
5504
5505	// ForceSendFields is a list of field names (e.g. "Code") to
5506	// unconditionally include in API requests. By default, fields with
5507	// empty values are omitted from API requests. However, any non-pointer,
5508	// non-interface field appearing in ForceSendFields will be sent to the
5509	// server regardless of whether the field is empty or not. This may be
5510	// used to include empty fields in Patch requests.
5511	ForceSendFields []string `json:"-"`
5512
5513	// NullFields is a list of field names (e.g. "Code") to include in API
5514	// requests with the JSON null value. By default, fields with empty
5515	// values are omitted from API requests. However, any field with an
5516	// empty value appearing in NullFields will be sent to the server as
5517	// null. It is an error if a field in this list has a non-empty value.
5518	// This may be used to include null fields in Patch requests.
5519	NullFields []string `json:"-"`
5520}
5521
5522func (s *BackendServiceListWarning) MarshalJSON() ([]byte, error) {
5523	type NoMethod BackendServiceListWarning
5524	raw := NoMethod(*s)
5525	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5526}
5527
5528type BackendServiceListWarningData struct {
5529	// Key: [Output Only] A key that provides more detail on the warning
5530	// being returned. For example, for warnings where there are no results
5531	// in a list request for a particular zone, this key might be scope and
5532	// the key value might be the zone name. Other examples might be a key
5533	// indicating a deprecated resource and a suggested replacement, or a
5534	// warning about invalid network settings (for example, if an instance
5535	// attempts to perform IP forwarding but is not enabled for IP
5536	// forwarding).
5537	Key string `json:"key,omitempty"`
5538
5539	// Value: [Output Only] A warning data value corresponding to the key.
5540	Value string `json:"value,omitempty"`
5541
5542	// ForceSendFields is a list of field names (e.g. "Key") to
5543	// unconditionally include in API requests. By default, fields with
5544	// empty values are omitted from API requests. However, any non-pointer,
5545	// non-interface field appearing in ForceSendFields will be sent to the
5546	// server regardless of whether the field is empty or not. This may be
5547	// used to include empty fields in Patch requests.
5548	ForceSendFields []string `json:"-"`
5549
5550	// NullFields is a list of field names (e.g. "Key") to include in API
5551	// requests with the JSON null value. By default, fields with empty
5552	// values are omitted from API requests. However, any field with an
5553	// empty value appearing in NullFields will be sent to the server as
5554	// null. It is an error if a field in this list has a non-empty value.
5555	// This may be used to include null fields in Patch requests.
5556	NullFields []string `json:"-"`
5557}
5558
5559func (s *BackendServiceListWarningData) MarshalJSON() ([]byte, error) {
5560	type NoMethod BackendServiceListWarningData
5561	raw := NoMethod(*s)
5562	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5563}
5564
5565// BackendServiceLogConfig: The available logging options for the load
5566// balancer traffic served by this backend service.
5567type BackendServiceLogConfig struct {
5568	// Enable: This field denotes whether to enable logging for the load
5569	// balancer traffic served by this backend service.
5570	Enable bool `json:"enable,omitempty"`
5571
5572	// SampleRate: This field can only be specified if logging is enabled
5573	// for this backend service. The value of the field must be in [0, 1].
5574	// This configures the sampling rate of requests to the load balancer
5575	// where 1.0 means all logged requests are reported and 0.0 means no
5576	// logged requests are reported. The default value is 1.0.
5577	SampleRate float64 `json:"sampleRate,omitempty"`
5578
5579	// ForceSendFields is a list of field names (e.g. "Enable") to
5580	// unconditionally include in API requests. By default, fields with
5581	// empty values are omitted from API requests. However, any non-pointer,
5582	// non-interface field appearing in ForceSendFields will be sent to the
5583	// server regardless of whether the field is empty or not. This may be
5584	// used to include empty fields in Patch requests.
5585	ForceSendFields []string `json:"-"`
5586
5587	// NullFields is a list of field names (e.g. "Enable") to include in API
5588	// requests with the JSON null value. By default, fields with empty
5589	// values are omitted from API requests. However, any field with an
5590	// empty value appearing in NullFields will be sent to the server as
5591	// null. It is an error if a field in this list has a non-empty value.
5592	// This may be used to include null fields in Patch requests.
5593	NullFields []string `json:"-"`
5594}
5595
5596func (s *BackendServiceLogConfig) MarshalJSON() ([]byte, error) {
5597	type NoMethod BackendServiceLogConfig
5598	raw := NoMethod(*s)
5599	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5600}
5601
5602func (s *BackendServiceLogConfig) UnmarshalJSON(data []byte) error {
5603	type NoMethod BackendServiceLogConfig
5604	var s1 struct {
5605		SampleRate gensupport.JSONFloat64 `json:"sampleRate"`
5606		*NoMethod
5607	}
5608	s1.NoMethod = (*NoMethod)(s)
5609	if err := json.Unmarshal(data, &s1); err != nil {
5610		return err
5611	}
5612	s.SampleRate = float64(s1.SampleRate)
5613	return nil
5614}
5615
5616type BackendServiceReference struct {
5617	BackendService string `json:"backendService,omitempty"`
5618
5619	// ForceSendFields is a list of field names (e.g. "BackendService") to
5620	// unconditionally include in API requests. By default, fields with
5621	// empty values are omitted from API requests. However, any non-pointer,
5622	// non-interface field appearing in ForceSendFields will be sent to the
5623	// server regardless of whether the field is empty or not. This may be
5624	// used to include empty fields in Patch requests.
5625	ForceSendFields []string `json:"-"`
5626
5627	// NullFields is a list of field names (e.g. "BackendService") to
5628	// include in API requests with the JSON null value. By default, fields
5629	// with empty values are omitted from API requests. However, any field
5630	// with an empty value appearing in NullFields will be sent to the
5631	// server as null. It is an error if a field in this list has a
5632	// non-empty value. This may be used to include null fields in Patch
5633	// requests.
5634	NullFields []string `json:"-"`
5635}
5636
5637func (s *BackendServiceReference) MarshalJSON() ([]byte, error) {
5638	type NoMethod BackendServiceReference
5639	raw := NoMethod(*s)
5640	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5641}
5642
5643type BackendServicesScopedList struct {
5644	// BackendServices: A list of BackendServices contained in this scope.
5645	BackendServices []*BackendService `json:"backendServices,omitempty"`
5646
5647	// Warning: Informational warning which replaces the list of backend
5648	// services when the list is empty.
5649	Warning *BackendServicesScopedListWarning `json:"warning,omitempty"`
5650
5651	// ForceSendFields is a list of field names (e.g. "BackendServices") to
5652	// unconditionally include in API requests. By default, fields with
5653	// empty values are omitted from API requests. However, any non-pointer,
5654	// non-interface field appearing in ForceSendFields will be sent to the
5655	// server regardless of whether the field is empty or not. This may be
5656	// used to include empty fields in Patch requests.
5657	ForceSendFields []string `json:"-"`
5658
5659	// NullFields is a list of field names (e.g. "BackendServices") to
5660	// include in API requests with the JSON null value. By default, fields
5661	// with empty values are omitted from API requests. However, any field
5662	// with an empty value appearing in NullFields will be sent to the
5663	// server as null. It is an error if a field in this list has a
5664	// non-empty value. This may be used to include null fields in Patch
5665	// requests.
5666	NullFields []string `json:"-"`
5667}
5668
5669func (s *BackendServicesScopedList) MarshalJSON() ([]byte, error) {
5670	type NoMethod BackendServicesScopedList
5671	raw := NoMethod(*s)
5672	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5673}
5674
5675// BackendServicesScopedListWarning: Informational warning which
5676// replaces the list of backend services when the list is empty.
5677type BackendServicesScopedListWarning struct {
5678	// Code: [Output Only] A warning code, if applicable. For example,
5679	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5680	// the response.
5681	//
5682	// Possible values:
5683	//   "CLEANUP_FAILED"
5684	//   "DEPRECATED_RESOURCE_USED"
5685	//   "DEPRECATED_TYPE_USED"
5686	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5687	//   "EXPERIMENTAL_TYPE_USED"
5688	//   "EXTERNAL_API_WARNING"
5689	//   "FIELD_VALUE_OVERRIDEN"
5690	//   "INJECTED_KERNELS_DEPRECATED"
5691	//   "MISSING_TYPE_DEPENDENCY"
5692	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5693	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5694	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5695	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5696	//   "NEXT_HOP_NOT_RUNNING"
5697	//   "NOT_CRITICAL_ERROR"
5698	//   "NO_RESULTS_ON_PAGE"
5699	//   "REQUIRED_TOS_AGREEMENT"
5700	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5701	//   "RESOURCE_NOT_DELETED"
5702	//   "SCHEMA_VALIDATION_IGNORED"
5703	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5704	//   "UNDECLARED_PROPERTIES"
5705	//   "UNREACHABLE"
5706	Code string `json:"code,omitempty"`
5707
5708	// Data: [Output Only] Metadata about this warning in key: value format.
5709	// For example:
5710	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5711	Data []*BackendServicesScopedListWarningData `json:"data,omitempty"`
5712
5713	// Message: [Output Only] A human-readable description of the warning
5714	// code.
5715	Message string `json:"message,omitempty"`
5716
5717	// ForceSendFields is a list of field names (e.g. "Code") 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. "Code") 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 *BackendServicesScopedListWarning) MarshalJSON() ([]byte, error) {
5735	type NoMethod BackendServicesScopedListWarning
5736	raw := NoMethod(*s)
5737	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5738}
5739
5740type BackendServicesScopedListWarningData struct {
5741	// Key: [Output Only] A key that provides more detail on the warning
5742	// being returned. For example, for warnings where there are no results
5743	// in a list request for a particular zone, this key might be scope and
5744	// the key value might be the zone name. Other examples might be a key
5745	// indicating a deprecated resource and a suggested replacement, or a
5746	// warning about invalid network settings (for example, if an instance
5747	// attempts to perform IP forwarding but is not enabled for IP
5748	// forwarding).
5749	Key string `json:"key,omitempty"`
5750
5751	// Value: [Output Only] A warning data value corresponding to the key.
5752	Value string `json:"value,omitempty"`
5753
5754	// ForceSendFields is a list of field names (e.g. "Key") to
5755	// unconditionally include in API requests. By default, fields with
5756	// empty values are omitted from API requests. However, any non-pointer,
5757	// non-interface field appearing in ForceSendFields will be sent to the
5758	// server regardless of whether the field is empty or not. This may be
5759	// used to include empty fields in Patch requests.
5760	ForceSendFields []string `json:"-"`
5761
5762	// NullFields is a list of field names (e.g. "Key") to include in API
5763	// requests with the JSON null value. By default, fields with empty
5764	// values are omitted from API requests. However, any field with an
5765	// empty value appearing in NullFields will be sent to the server as
5766	// null. It is an error if a field in this list has a non-empty value.
5767	// This may be used to include null fields in Patch requests.
5768	NullFields []string `json:"-"`
5769}
5770
5771func (s *BackendServicesScopedListWarningData) MarshalJSON() ([]byte, error) {
5772	type NoMethod BackendServicesScopedListWarningData
5773	raw := NoMethod(*s)
5774	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5775}
5776
5777type BfdPacket struct {
5778	// AuthenticationPresent: The Authentication Present bit of the BFD
5779	// packet. This is specified in section 4.1 of RFC5880
5780	AuthenticationPresent bool `json:"authenticationPresent,omitempty"`
5781
5782	// ControlPlaneIndependent: The Control Plane Independent bit of the BFD
5783	// packet. This is specified in section 4.1 of RFC5880
5784	ControlPlaneIndependent bool `json:"controlPlaneIndependent,omitempty"`
5785
5786	// Demand: The demand bit of the BFD packet. This is specified in
5787	// section 4.1 of RFC5880
5788	Demand bool `json:"demand,omitempty"`
5789
5790	// Diagnostic: The diagnostic code specifies the local system's reason
5791	// for the last change in session state. This allows remote systems to
5792	// determine the reason that the previous session failed, for example.
5793	// These diagnostic codes are specified in section 4.1 of RFC5880
5794	//
5795	// Possible values:
5796	//   "ADMINISTRATIVELY_DOWN"
5797	//   "CONCATENATED_PATH_DOWN"
5798	//   "CONTROL_DETECTION_TIME_EXPIRED"
5799	//   "DIAGNOSTIC_UNSPECIFIED"
5800	//   "ECHO_FUNCTION_FAILED"
5801	//   "FORWARDING_PLANE_RESET"
5802	//   "NEIGHBOR_SIGNALED_SESSION_DOWN"
5803	//   "NO_DIAGNOSTIC"
5804	//   "PATH_DOWN"
5805	//   "REVERSE_CONCATENATED_PATH_DOWN"
5806	Diagnostic string `json:"diagnostic,omitempty"`
5807
5808	// Final: The Final bit of the BFD packet. This is specified in section
5809	// 4.1 of RFC5880
5810	Final bool `json:"final,omitempty"`
5811
5812	// Length: The length of the BFD Control packet in bytes. This is
5813	// specified in section 4.1 of RFC5880
5814	Length int64 `json:"length,omitempty"`
5815
5816	// MinEchoRxIntervalMs: The Required Min Echo RX Interval value in the
5817	// BFD packet. This is specified in section 4.1 of RFC5880
5818	MinEchoRxIntervalMs int64 `json:"minEchoRxIntervalMs,omitempty"`
5819
5820	// MinRxIntervalMs: The Required Min RX Interval value in the BFD
5821	// packet. This is specified in section 4.1 of RFC5880
5822	MinRxIntervalMs int64 `json:"minRxIntervalMs,omitempty"`
5823
5824	// MinTxIntervalMs: The Desired Min TX Interval value in the BFD packet.
5825	// This is specified in section 4.1 of RFC5880
5826	MinTxIntervalMs int64 `json:"minTxIntervalMs,omitempty"`
5827
5828	// Multiplier: The detection time multiplier of the BFD packet. This is
5829	// specified in section 4.1 of RFC5880
5830	Multiplier int64 `json:"multiplier,omitempty"`
5831
5832	// Multipoint: The multipoint bit of the BFD packet. This is specified
5833	// in section 4.1 of RFC5880
5834	Multipoint bool `json:"multipoint,omitempty"`
5835
5836	// MyDiscriminator: The My Discriminator value in the BFD packet. This
5837	// is specified in section 4.1 of RFC5880
5838	MyDiscriminator int64 `json:"myDiscriminator,omitempty"`
5839
5840	// Poll: The Poll bit of the BFD packet. This is specified in section
5841	// 4.1 of RFC5880
5842	Poll bool `json:"poll,omitempty"`
5843
5844	// State: The current BFD session state as seen by the transmitting
5845	// system. These states are specified in section 4.1 of RFC5880
5846	//
5847	// Possible values:
5848	//   "ADMIN_DOWN"
5849	//   "DOWN"
5850	//   "INIT"
5851	//   "STATE_UNSPECIFIED"
5852	//   "UP"
5853	State string `json:"state,omitempty"`
5854
5855	// Version: The version number of the BFD protocol, as specified in
5856	// section 4.1 of RFC5880.
5857	Version int64 `json:"version,omitempty"`
5858
5859	// YourDiscriminator: The Your Discriminator value in the BFD packet.
5860	// This is specified in section 4.1 of RFC5880
5861	YourDiscriminator int64 `json:"yourDiscriminator,omitempty"`
5862
5863	// ForceSendFields is a list of field names (e.g.
5864	// "AuthenticationPresent") to unconditionally include in API requests.
5865	// By default, fields with empty values are omitted from API requests.
5866	// However, any non-pointer, non-interface field appearing in
5867	// ForceSendFields will be sent to the server regardless of whether the
5868	// field is empty or not. This may be used to include empty fields in
5869	// Patch requests.
5870	ForceSendFields []string `json:"-"`
5871
5872	// NullFields is a list of field names (e.g. "AuthenticationPresent") to
5873	// include in API requests with the JSON null value. By default, fields
5874	// with empty values are omitted from API requests. However, any field
5875	// with an empty value appearing in NullFields will be sent to the
5876	// server as null. It is an error if a field in this list has a
5877	// non-empty value. This may be used to include null fields in Patch
5878	// requests.
5879	NullFields []string `json:"-"`
5880}
5881
5882func (s *BfdPacket) MarshalJSON() ([]byte, error) {
5883	type NoMethod BfdPacket
5884	raw := NoMethod(*s)
5885	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5886}
5887
5888// BfdStatus: Next free: 15
5889type BfdStatus struct {
5890	// BfdSessionInitializationMode: The BFD session initialization mode for
5891	// this BGP peer. If set to ACTIVE, the Cloud Router will initiate the
5892	// BFD session for this BGP peer. If set to PASSIVE, the Cloud Router
5893	// will wait for the peer router to initiate the BFD session for this
5894	// BGP peer. If set to DISABLED, BFD is disabled for this BGP peer.
5895	//
5896	// Possible values:
5897	//   "ACTIVE"
5898	//   "DISABLED"
5899	//   "PASSIVE"
5900	BfdSessionInitializationMode string `json:"bfdSessionInitializationMode,omitempty"`
5901
5902	// ConfigUpdateTimestampMicros: Unix timestamp of the most recent config
5903	// update.
5904	ConfigUpdateTimestampMicros int64 `json:"configUpdateTimestampMicros,omitempty,string"`
5905
5906	// ControlPacketCounts: Control packet counts for the current BFD
5907	// session.
5908	ControlPacketCounts *BfdStatusPacketCounts `json:"controlPacketCounts,omitempty"`
5909
5910	// ControlPacketIntervals: Inter-packet time interval statistics for
5911	// control packets.
5912	ControlPacketIntervals []*PacketIntervals `json:"controlPacketIntervals,omitempty"`
5913
5914	// EchoPacketCounts: Echo packet counts for the current BFD session.
5915	EchoPacketCounts *BfdStatusPacketCounts `json:"echoPacketCounts,omitempty"`
5916
5917	// EchoPacketIntervals: Inter-packet time interval statistics for echo
5918	// packets.
5919	EchoPacketIntervals []*PacketIntervals `json:"echoPacketIntervals,omitempty"`
5920
5921	// LocalDiagnostic: The diagnostic code specifies the local system's
5922	// reason for the last change in session state. This allows remote
5923	// systems to determine the reason that the previous session failed, for
5924	// example. These diagnostic codes are specified in section 4.1 of
5925	// RFC5880
5926	//
5927	// Possible values:
5928	//   "ADMINISTRATIVELY_DOWN"
5929	//   "CONCATENATED_PATH_DOWN"
5930	//   "CONTROL_DETECTION_TIME_EXPIRED"
5931	//   "DIAGNOSTIC_UNSPECIFIED"
5932	//   "ECHO_FUNCTION_FAILED"
5933	//   "FORWARDING_PLANE_RESET"
5934	//   "NEIGHBOR_SIGNALED_SESSION_DOWN"
5935	//   "NO_DIAGNOSTIC"
5936	//   "PATH_DOWN"
5937	//   "REVERSE_CONCATENATED_PATH_DOWN"
5938	LocalDiagnostic string `json:"localDiagnostic,omitempty"`
5939
5940	// LocalState: The current BFD session state as seen by the transmitting
5941	// system. These states are specified in section 4.1 of RFC5880
5942	//
5943	// Possible values:
5944	//   "ADMIN_DOWN"
5945	//   "DOWN"
5946	//   "INIT"
5947	//   "STATE_UNSPECIFIED"
5948	//   "UP"
5949	LocalState string `json:"localState,omitempty"`
5950
5951	// NegotiatedLocalControlTxIntervalMs: Negotiated transmit interval for
5952	// control packets.
5953	NegotiatedLocalControlTxIntervalMs int64 `json:"negotiatedLocalControlTxIntervalMs,omitempty"`
5954
5955	// NegotiatedLocalEchoTxIntervalMs: Negotiated transmit interval for
5956	// echo packets.
5957	NegotiatedLocalEchoTxIntervalMs int64 `json:"negotiatedLocalEchoTxIntervalMs,omitempty"`
5958
5959	// RxPacket: The most recent Rx control packet for this BFD session.
5960	RxPacket *BfdPacket `json:"rxPacket,omitempty"`
5961
5962	// TxPacket: The most recent Tx control packet for this BFD session.
5963	TxPacket *BfdPacket `json:"txPacket,omitempty"`
5964
5965	// UptimeMs: Session uptime in milliseconds. Value will be 0 if session
5966	// is not up.
5967	UptimeMs int64 `json:"uptimeMs,omitempty,string"`
5968
5969	// UsingEchoMode: Indicates if echo mode is currently being used.
5970	UsingEchoMode bool `json:"usingEchoMode,omitempty"`
5971
5972	// ForceSendFields is a list of field names (e.g.
5973	// "BfdSessionInitializationMode") to unconditionally include in API
5974	// requests. By default, fields with empty values are omitted from API
5975	// requests. However, any non-pointer, non-interface field appearing in
5976	// ForceSendFields will be sent to the server regardless of whether the
5977	// field is empty or not. This may be used to include empty fields in
5978	// Patch requests.
5979	ForceSendFields []string `json:"-"`
5980
5981	// NullFields is a list of field names (e.g.
5982	// "BfdSessionInitializationMode") to include in API requests with the
5983	// JSON null value. By default, fields with empty values are omitted
5984	// from API requests. However, any field with an empty value appearing
5985	// in NullFields will be sent to the server as null. It is an error if a
5986	// field in this list has a non-empty value. This may be used to include
5987	// null fields in Patch requests.
5988	NullFields []string `json:"-"`
5989}
5990
5991func (s *BfdStatus) MarshalJSON() ([]byte, error) {
5992	type NoMethod BfdStatus
5993	raw := NoMethod(*s)
5994	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5995}
5996
5997type BfdStatusPacketCounts struct {
5998	// NumRx: Number of packets received since the beginning of the current
5999	// BFD session.
6000	NumRx int64 `json:"numRx,omitempty"`
6001
6002	// NumRxRejected: Number of packets received that were rejected because
6003	// of errors since the beginning of the current BFD session.
6004	NumRxRejected int64 `json:"numRxRejected,omitempty"`
6005
6006	// NumRxSuccessful: Number of packets received that were successfully
6007	// processed since the beginning of the current BFD session.
6008	NumRxSuccessful int64 `json:"numRxSuccessful,omitempty"`
6009
6010	// NumTx: Number of packets transmitted since the beginning of the
6011	// current BFD session.
6012	NumTx int64 `json:"numTx,omitempty"`
6013
6014	// ForceSendFields is a list of field names (e.g. "NumRx") to
6015	// unconditionally include in API requests. By default, fields with
6016	// empty values are omitted from API requests. However, any non-pointer,
6017	// non-interface field appearing in ForceSendFields will be sent to the
6018	// server regardless of whether the field is empty or not. This may be
6019	// used to include empty fields in Patch requests.
6020	ForceSendFields []string `json:"-"`
6021
6022	// NullFields is a list of field names (e.g. "NumRx") to include in API
6023	// requests with the JSON null value. By default, fields with empty
6024	// values are omitted from API requests. However, any field with an
6025	// empty value appearing in NullFields will be sent to the server as
6026	// null. It is an error if a field in this list has a non-empty value.
6027	// This may be used to include null fields in Patch requests.
6028	NullFields []string `json:"-"`
6029}
6030
6031func (s *BfdStatusPacketCounts) MarshalJSON() ([]byte, error) {
6032	type NoMethod BfdStatusPacketCounts
6033	raw := NoMethod(*s)
6034	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6035}
6036
6037// Binding: Associates `members` with a `role`.
6038type Binding struct {
6039	// Condition: The condition that is associated with this binding. NOTE:
6040	// An unsatisfied condition will not allow user access via current
6041	// binding. Different bindings, including their conditions, are examined
6042	// independently.
6043	Condition *Expr `json:"condition,omitempty"`
6044
6045	// Members: Specifies the identities requesting access for a Cloud
6046	// Platform resource. `members` can have the following values:
6047	//
6048	// * `allUsers`: A special identifier that represents anyone who is on
6049	// the internet; with or without a Google account.
6050	//
6051	// * `allAuthenticatedUsers`: A special identifier that represents
6052	// anyone who is authenticated with a Google account or a service
6053	// account.
6054	//
6055	// * `user:{emailid}`: An email address that represents a specific
6056	// Google account. For example, `alice@example.com` .
6057	//
6058	//
6059	//
6060	// * `serviceAccount:{emailid}`: An email address that represents a
6061	// service account. For example,
6062	// `my-other-app@appspot.gserviceaccount.com`.
6063	//
6064	// * `group:{emailid}`: An email address that represents a Google group.
6065	// For example, `admins@example.com`.
6066	//
6067	// * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus
6068	// unique identifier) representing a user that has been recently
6069	// deleted. For example, `alice@example.com?uid=123456789012345678901`.
6070	// If the user is recovered, this value reverts to `user:{emailid}` and
6071	// the recovered user retains the role in the binding.
6072	//
6073	// * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address
6074	// (plus unique identifier) representing a service account that has been
6075	// recently deleted. For example,
6076	// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
6077	// If the service account is undeleted, this value reverts to
6078	// `serviceAccount:{emailid}` and the undeleted service account retains
6079	// the role in the binding.
6080	//
6081	// * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus
6082	// unique identifier) representing a Google group that has been recently
6083	// deleted. For example, `admins@example.com?uid=123456789012345678901`.
6084	// If the group is recovered, this value reverts to `group:{emailid}`
6085	// and the recovered group retains the role in the binding.
6086	//
6087	//
6088	//
6089	// * `domain:{domain}`: The G Suite domain (primary) that represents all
6090	// the users of that domain. For example, `google.com` or `example.com`.
6091	Members []string `json:"members,omitempty"`
6092
6093	// Role: Role that is assigned to `members`. For example,
6094	// `roles/viewer`, `roles/editor`, or `roles/owner`.
6095	Role string `json:"role,omitempty"`
6096
6097	// ForceSendFields is a list of field names (e.g. "Condition") to
6098	// unconditionally include in API requests. By default, fields with
6099	// empty values are omitted from API requests. However, any non-pointer,
6100	// non-interface field appearing in ForceSendFields will be sent to the
6101	// server regardless of whether the field is empty or not. This may be
6102	// used to include empty fields in Patch requests.
6103	ForceSendFields []string `json:"-"`
6104
6105	// NullFields is a list of field names (e.g. "Condition") to include in
6106	// API requests with the JSON null value. By default, fields with empty
6107	// values are omitted from API requests. However, any field with an
6108	// empty value appearing in NullFields will be sent to the server as
6109	// null. It is an error if a field in this list has a non-empty value.
6110	// This may be used to include null fields in Patch requests.
6111	NullFields []string `json:"-"`
6112}
6113
6114func (s *Binding) MarshalJSON() ([]byte, error) {
6115	type NoMethod Binding
6116	raw := NoMethod(*s)
6117	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6118}
6119
6120type CacheInvalidationRule struct {
6121	// Host: If set, this invalidation rule will only apply to requests with
6122	// a Host header matching host.
6123	Host string `json:"host,omitempty"`
6124
6125	Path string `json:"path,omitempty"`
6126
6127	// ForceSendFields is a list of field names (e.g. "Host") to
6128	// unconditionally include in API requests. By default, fields with
6129	// empty values are omitted from API requests. However, any non-pointer,
6130	// non-interface field appearing in ForceSendFields will be sent to the
6131	// server regardless of whether the field is empty or not. This may be
6132	// used to include empty fields in Patch requests.
6133	ForceSendFields []string `json:"-"`
6134
6135	// NullFields is a list of field names (e.g. "Host") to include in API
6136	// requests with the JSON null value. By default, fields with empty
6137	// values are omitted from API requests. However, any field with an
6138	// empty value appearing in NullFields will be sent to the server as
6139	// null. It is an error if a field in this list has a non-empty value.
6140	// This may be used to include null fields in Patch requests.
6141	NullFields []string `json:"-"`
6142}
6143
6144func (s *CacheInvalidationRule) MarshalJSON() ([]byte, error) {
6145	type NoMethod CacheInvalidationRule
6146	raw := NoMethod(*s)
6147	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6148}
6149
6150// CacheKeyPolicy: Message containing what to include in the cache key
6151// for a request for Cloud CDN.
6152type CacheKeyPolicy struct {
6153	// IncludeHost: If true, requests to different hosts will be cached
6154	// separately.
6155	IncludeHost bool `json:"includeHost,omitempty"`
6156
6157	// IncludeProtocol: If true, http and https requests will be cached
6158	// separately.
6159	IncludeProtocol bool `json:"includeProtocol,omitempty"`
6160
6161	// IncludeQueryString: If true, include query string parameters in the
6162	// cache key according to query_string_whitelist and
6163	// query_string_blacklist. If neither is set, the entire query string
6164	// will be included. If false, the query string will be excluded from
6165	// the cache key entirely.
6166	IncludeQueryString bool `json:"includeQueryString,omitempty"`
6167
6168	// QueryStringBlacklist: Names of query string parameters to exclude in
6169	// cache keys. All other parameters will be included. Either specify
6170	// query_string_whitelist or query_string_blacklist, not both. '&' and
6171	// '=' will be percent encoded and not treated as delimiters.
6172	QueryStringBlacklist []string `json:"queryStringBlacklist,omitempty"`
6173
6174	// QueryStringWhitelist: Names of query string parameters to include in
6175	// cache keys. All other parameters will be excluded. Either specify
6176	// query_string_whitelist or query_string_blacklist, not both. '&' and
6177	// '=' will be percent encoded and not treated as delimiters.
6178	QueryStringWhitelist []string `json:"queryStringWhitelist,omitempty"`
6179
6180	// ForceSendFields is a list of field names (e.g. "IncludeHost") to
6181	// unconditionally include in API requests. By default, fields with
6182	// empty values are omitted from API requests. However, any non-pointer,
6183	// non-interface field appearing in ForceSendFields will be sent to the
6184	// server regardless of whether the field is empty or not. This may be
6185	// used to include empty fields in Patch requests.
6186	ForceSendFields []string `json:"-"`
6187
6188	// NullFields is a list of field names (e.g. "IncludeHost") to include
6189	// in API requests with the JSON null value. By default, fields with
6190	// empty values are omitted from API requests. However, any field with
6191	// an empty value appearing in NullFields will be sent to the server as
6192	// null. It is an error if a field in this list has a non-empty value.
6193	// This may be used to include null fields in Patch requests.
6194	NullFields []string `json:"-"`
6195}
6196
6197func (s *CacheKeyPolicy) MarshalJSON() ([]byte, error) {
6198	type NoMethod CacheKeyPolicy
6199	raw := NoMethod(*s)
6200	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6201}
6202
6203// CallCredentials: gRPC call credentials to access the SDS server.
6204type CallCredentials struct {
6205	// CallCredentialType: The type of call credentials to use for GRPC
6206	// requests to the SDS server. This field can be set to one of the
6207	// following:
6208	// - GCE_VM: The local GCE VM service account credentials are used to
6209	// access the SDS server.
6210	// - FROM_PLUGIN: Custom authenticator credentials are used to access
6211	// the SDS server.
6212	//
6213	// Possible values:
6214	//   "FROM_PLUGIN"
6215	//   "GCE_VM"
6216	//   "INVALID"
6217	CallCredentialType string `json:"callCredentialType,omitempty"`
6218
6219	// FromPlugin: Custom authenticator credentials. Valid if
6220	// callCredentialType is FROM_PLUGIN.
6221	FromPlugin *MetadataCredentialsFromPlugin `json:"fromPlugin,omitempty"`
6222
6223	// ForceSendFields is a list of field names (e.g. "CallCredentialType")
6224	// to unconditionally include in API requests. By default, fields with
6225	// empty values are omitted from API requests. However, any non-pointer,
6226	// non-interface field appearing in ForceSendFields will be sent to the
6227	// server regardless of whether the field is empty or not. This may be
6228	// used to include empty fields in Patch requests.
6229	ForceSendFields []string `json:"-"`
6230
6231	// NullFields is a list of field names (e.g. "CallCredentialType") to
6232	// include in API requests with the JSON null value. By default, fields
6233	// with empty values are omitted from API requests. However, any field
6234	// with an empty value appearing in NullFields will be sent to the
6235	// server as null. It is an error if a field in this list has a
6236	// non-empty value. This may be used to include null fields in Patch
6237	// requests.
6238	NullFields []string `json:"-"`
6239}
6240
6241func (s *CallCredentials) MarshalJSON() ([]byte, error) {
6242	type NoMethod CallCredentials
6243	raw := NoMethod(*s)
6244	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6245}
6246
6247// ChannelCredentials: gRPC channel credentials to access the SDS
6248// server.
6249type ChannelCredentials struct {
6250	// Certificates: The call credentials to access the SDS server.
6251	Certificates *TlsCertificatePaths `json:"certificates,omitempty"`
6252
6253	// ChannelCredentialType: The channel credentials to access the SDS
6254	// server. This field can be set to one of the following: CERTIFICATES:
6255	// Use TLS certificates to access the SDS server. GCE_VM: Use local GCE
6256	// VM credentials to access the SDS server.
6257	//
6258	// Possible values:
6259	//   "CERTIFICATES"
6260	//   "GCE_VM"
6261	//   "INVALID"
6262	ChannelCredentialType string `json:"channelCredentialType,omitempty"`
6263
6264	// ForceSendFields is a list of field names (e.g. "Certificates") to
6265	// unconditionally include in API requests. By default, fields with
6266	// empty values are omitted from API requests. However, any non-pointer,
6267	// non-interface field appearing in ForceSendFields will be sent to the
6268	// server regardless of whether the field is empty or not. This may be
6269	// used to include empty fields in Patch requests.
6270	ForceSendFields []string `json:"-"`
6271
6272	// NullFields is a list of field names (e.g. "Certificates") to include
6273	// in API requests with the JSON null value. By default, fields with
6274	// empty values are omitted from API requests. However, any field with
6275	// an empty value appearing in NullFields will be sent to the server as
6276	// null. It is an error if a field in this list has a non-empty value.
6277	// This may be used to include null fields in Patch requests.
6278	NullFields []string `json:"-"`
6279}
6280
6281func (s *ChannelCredentials) MarshalJSON() ([]byte, error) {
6282	type NoMethod ChannelCredentials
6283	raw := NoMethod(*s)
6284	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6285}
6286
6287// CircuitBreakers: Settings controlling the volume of connections to a
6288// backend service.
6289type CircuitBreakers struct {
6290	// ConnectTimeout: The timeout for new network connections to hosts.
6291	ConnectTimeout *Duration `json:"connectTimeout,omitempty"`
6292
6293	// MaxConnections: The maximum number of connections to the backend
6294	// service. If not specified, there is no limit.
6295	MaxConnections int64 `json:"maxConnections,omitempty"`
6296
6297	// MaxPendingRequests: The maximum number of pending requests allowed to
6298	// the backend service. If not specified, there is no limit.
6299	MaxPendingRequests int64 `json:"maxPendingRequests,omitempty"`
6300
6301	// MaxRequests: The maximum number of parallel requests that allowed to
6302	// the backend service. If not specified, there is no limit.
6303	MaxRequests int64 `json:"maxRequests,omitempty"`
6304
6305	// MaxRequestsPerConnection: Maximum requests for a single connection to
6306	// the backend service. This parameter is respected by both the HTTP/1.1
6307	// and HTTP/2 implementations. If not specified, there is no limit.
6308	// Setting this parameter to 1 will effectively disable keep alive.
6309	MaxRequestsPerConnection int64 `json:"maxRequestsPerConnection,omitempty"`
6310
6311	// MaxRetries: The maximum number of parallel retries allowed to the
6312	// backend cluster. If not specified, the default is 1.
6313	MaxRetries int64 `json:"maxRetries,omitempty"`
6314
6315	// ForceSendFields is a list of field names (e.g. "ConnectTimeout") to
6316	// unconditionally include in API requests. By default, fields with
6317	// empty values are omitted from API requests. However, any non-pointer,
6318	// non-interface field appearing in ForceSendFields will be sent to the
6319	// server regardless of whether the field is empty or not. This may be
6320	// used to include empty fields in Patch requests.
6321	ForceSendFields []string `json:"-"`
6322
6323	// NullFields is a list of field names (e.g. "ConnectTimeout") to
6324	// include in API requests with the JSON null value. By default, fields
6325	// with empty values are omitted from API requests. However, any field
6326	// with an empty value appearing in NullFields will be sent to the
6327	// server as null. It is an error if a field in this list has a
6328	// non-empty value. This may be used to include null fields in Patch
6329	// requests.
6330	NullFields []string `json:"-"`
6331}
6332
6333func (s *CircuitBreakers) MarshalJSON() ([]byte, error) {
6334	type NoMethod CircuitBreakers
6335	raw := NoMethod(*s)
6336	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6337}
6338
6339// ClientTlsSettings: The client side authentication settings for
6340// connection originating from the backend service.
6341type ClientTlsSettings struct {
6342	// ClientTlsContext: Configures the mechanism to obtain client-side
6343	// security certificates and identity information. This field is only
6344	// applicable when mode is set to MUTUAL.
6345	ClientTlsContext *TlsContext `json:"clientTlsContext,omitempty"`
6346
6347	// Mode: Indicates whether connections to this port should be secured
6348	// using TLS. The value of this field determines how TLS is enforced.
6349	// This can be set to one of the following values: DISABLE: Do not setup
6350	// a TLS connection to the backends. SIMPLE: Originate a TLS connection
6351	// to the backends. MUTUAL: Secure connections to the backends using
6352	// mutual TLS by presenting client certificates for authentication.
6353	//
6354	// Possible values:
6355	//   "DISABLE"
6356	//   "INVALID"
6357	//   "MUTUAL"
6358	//   "SIMPLE"
6359	Mode string `json:"mode,omitempty"`
6360
6361	// Sni: SNI string to present to the server during TLS handshake. This
6362	// field is applicable only when mode is SIMPLE or MUTUAL.
6363	Sni string `json:"sni,omitempty"`
6364
6365	// SubjectAltNames: A list of alternate names to verify the subject
6366	// identity in the certificate.If specified, the proxy will verify that
6367	// the server certificate's subject alt name matches one of the
6368	// specified values. This field is applicable only when mode is SIMPLE
6369	// or MUTUAL.
6370	SubjectAltNames []string `json:"subjectAltNames,omitempty"`
6371
6372	// ForceSendFields is a list of field names (e.g. "ClientTlsContext") to
6373	// unconditionally include in API requests. By default, fields with
6374	// empty values are omitted from API requests. However, any non-pointer,
6375	// non-interface field appearing in ForceSendFields will be sent to the
6376	// server regardless of whether the field is empty or not. This may be
6377	// used to include empty fields in Patch requests.
6378	ForceSendFields []string `json:"-"`
6379
6380	// NullFields is a list of field names (e.g. "ClientTlsContext") to
6381	// include in API requests with the JSON null value. By default, fields
6382	// with empty values are omitted from API requests. However, any field
6383	// with an empty value appearing in NullFields will be sent to the
6384	// server as null. It is an error if a field in this list has a
6385	// non-empty value. This may be used to include null fields in Patch
6386	// requests.
6387	NullFields []string `json:"-"`
6388}
6389
6390func (s *ClientTlsSettings) MarshalJSON() ([]byte, error) {
6391	type NoMethod ClientTlsSettings
6392	raw := NoMethod(*s)
6393	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6394}
6395
6396// Commitment: Represents a regional Commitment resource.
6397//
6398// Creating a commitment resource means that you are purchasing a
6399// committed use contract with an explicit start and end time. You can
6400// create commitments based on vCPUs and memory usage and receive
6401// discounted rates. For full details, read Signing Up for Committed Use
6402// Discounts. (== resource_for {$api_version}.regionCommitments ==)
6403type Commitment struct {
6404	// Category: The category of the commitment. Category MACHINE specifies
6405	// commitments composed of machine resources such as VCPU or MEMORY,
6406	// listed in resources. Category LICENSE specifies commitments composed
6407	// of software licenses, listed in licenseResources. Note that only
6408	// MACHINE commitments should have a Type specified.
6409	//
6410	// Possible values:
6411	//   "CATEGORY_UNSPECIFIED"
6412	//   "LICENSE"
6413	//   "MACHINE"
6414	Category string `json:"category,omitempty"`
6415
6416	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
6417	// format.
6418	CreationTimestamp string `json:"creationTimestamp,omitempty"`
6419
6420	// Description: An optional description of this resource. Provide this
6421	// property when you create the resource.
6422	Description string `json:"description,omitempty"`
6423
6424	// EndTimestamp: [Output Only] Commitment end time in RFC3339 text
6425	// format.
6426	EndTimestamp string `json:"endTimestamp,omitempty"`
6427
6428	// Id: [Output Only] The unique identifier for the resource. This
6429	// identifier is defined by the server.
6430	Id uint64 `json:"id,omitempty,string"`
6431
6432	// Kind: [Output Only] Type of the resource. Always compute#commitment
6433	// for commitments.
6434	Kind string `json:"kind,omitempty"`
6435
6436	// LicenseResource: The license specification required as part of a
6437	// license commitment.
6438	LicenseResource *LicenseResourceCommitment `json:"licenseResource,omitempty"`
6439
6440	// Name: Name of the resource. Provided by the client when the resource
6441	// is created. The name must be 1-63 characters long, and comply with
6442	// RFC1035. Specifically, the name must be 1-63 characters long and
6443	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
6444	// the first character must be a lowercase letter, and all following
6445	// characters must be a dash, lowercase letter, or digit, except the
6446	// last character, which cannot be a dash.
6447	Name string `json:"name,omitempty"`
6448
6449	// Plan: The plan for this commitment, which determines duration and
6450	// discount rate. The currently supported plans are TWELVE_MONTH (1
6451	// year), and THIRTY_SIX_MONTH (3 years).
6452	//
6453	// Possible values:
6454	//   "INVALID"
6455	//   "THIRTY_SIX_MONTH"
6456	//   "TWELVE_MONTH"
6457	Plan string `json:"plan,omitempty"`
6458
6459	// Region: [Output Only] URL of the region where this commitment may be
6460	// used.
6461	Region string `json:"region,omitempty"`
6462
6463	// Reservations: List of reservations in this commitment.
6464	Reservations []*Reservation `json:"reservations,omitempty"`
6465
6466	// Resources: A list of commitment amounts for particular resources.
6467	// Note that VCPU and MEMORY resource commitments must occur together.
6468	Resources []*ResourceCommitment `json:"resources,omitempty"`
6469
6470	// SelfLink: [Output Only] Server-defined URL for the resource.
6471	SelfLink string `json:"selfLink,omitempty"`
6472
6473	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
6474	// with the resource id.
6475	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
6476
6477	// StartTimestamp: [Output Only] Commitment start time in RFC3339 text
6478	// format.
6479	StartTimestamp string `json:"startTimestamp,omitempty"`
6480
6481	// Status: [Output Only] Status of the commitment with regards to
6482	// eventual expiration (each commitment has an end date defined). One of
6483	// the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
6484	//
6485	// Possible values:
6486	//   "ACTIVE"
6487	//   "CREATING"
6488	//   "EXPIRED"
6489	//   "NOT_YET_ACTIVE"
6490	Status string `json:"status,omitempty"`
6491
6492	// StatusMessage: [Output Only] An optional, human-readable explanation
6493	// of the status.
6494	StatusMessage string `json:"statusMessage,omitempty"`
6495
6496	// Type: The type of commitment, which affects the discount rate and the
6497	// eligible resources. Type MEMORY_OPTIMIZED specifies a commitment that
6498	// will only apply to memory optimized machines.
6499	//
6500	// Possible values:
6501	//   "COMPUTE_OPTIMIZED"
6502	//   "GENERAL_PURPOSE"
6503	//   "GENERAL_PURPOSE_E2"
6504	//   "GENERAL_PURPOSE_N2"
6505	//   "GENERAL_PURPOSE_N2D"
6506	//   "MEMORY_OPTIMIZED"
6507	//   "TYPE_UNSPECIFIED"
6508	Type string `json:"type,omitempty"`
6509
6510	// ServerResponse contains the HTTP response code and headers from the
6511	// server.
6512	googleapi.ServerResponse `json:"-"`
6513
6514	// ForceSendFields is a list of field names (e.g. "Category") to
6515	// unconditionally include in API requests. By default, fields with
6516	// empty values are omitted from API requests. However, any non-pointer,
6517	// non-interface field appearing in ForceSendFields will be sent to the
6518	// server regardless of whether the field is empty or not. This may be
6519	// used to include empty fields in Patch requests.
6520	ForceSendFields []string `json:"-"`
6521
6522	// NullFields is a list of field names (e.g. "Category") to include in
6523	// API requests with the JSON null value. By default, fields with empty
6524	// values are omitted from API requests. However, any field with an
6525	// empty value appearing in NullFields will be sent to the server as
6526	// null. It is an error if a field in this list has a non-empty value.
6527	// This may be used to include null fields in Patch requests.
6528	NullFields []string `json:"-"`
6529}
6530
6531func (s *Commitment) MarshalJSON() ([]byte, error) {
6532	type NoMethod Commitment
6533	raw := NoMethod(*s)
6534	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6535}
6536
6537type CommitmentAggregatedList struct {
6538	// Id: [Output Only] Unique identifier for the resource; defined by the
6539	// server.
6540	Id string `json:"id,omitempty"`
6541
6542	// Items: A list of CommitmentsScopedList resources.
6543	Items map[string]CommitmentsScopedList `json:"items,omitempty"`
6544
6545	// Kind: [Output Only] Type of resource. Always
6546	// compute#commitmentAggregatedList for aggregated lists of commitments.
6547	Kind string `json:"kind,omitempty"`
6548
6549	// NextPageToken: [Output Only] This token allows you to get the next
6550	// page of results for list requests. If the number of results is larger
6551	// than maxResults, use the nextPageToken as a value for the query
6552	// parameter pageToken in the next list request. Subsequent list
6553	// requests will have their own nextPageToken to continue paging through
6554	// the results.
6555	NextPageToken string `json:"nextPageToken,omitempty"`
6556
6557	// SelfLink: [Output Only] Server-defined URL for this resource.
6558	SelfLink string `json:"selfLink,omitempty"`
6559
6560	// Warning: [Output Only] Informational warning message.
6561	Warning *CommitmentAggregatedListWarning `json:"warning,omitempty"`
6562
6563	// ServerResponse contains the HTTP response code and headers from the
6564	// server.
6565	googleapi.ServerResponse `json:"-"`
6566
6567	// ForceSendFields is a list of field names (e.g. "Id") to
6568	// unconditionally include in API requests. By default, fields with
6569	// empty values are omitted from API requests. However, any non-pointer,
6570	// non-interface field appearing in ForceSendFields will be sent to the
6571	// server regardless of whether the field is empty or not. This may be
6572	// used to include empty fields in Patch requests.
6573	ForceSendFields []string `json:"-"`
6574
6575	// NullFields is a list of field names (e.g. "Id") to include in API
6576	// requests with the JSON null value. By default, fields with empty
6577	// values are omitted from API requests. However, any field with an
6578	// empty value appearing in NullFields will be sent to the server as
6579	// null. It is an error if a field in this list has a non-empty value.
6580	// This may be used to include null fields in Patch requests.
6581	NullFields []string `json:"-"`
6582}
6583
6584func (s *CommitmentAggregatedList) MarshalJSON() ([]byte, error) {
6585	type NoMethod CommitmentAggregatedList
6586	raw := NoMethod(*s)
6587	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6588}
6589
6590// CommitmentAggregatedListWarning: [Output Only] Informational warning
6591// message.
6592type CommitmentAggregatedListWarning struct {
6593	// Code: [Output Only] A warning code, if applicable. For example,
6594	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6595	// the response.
6596	//
6597	// Possible values:
6598	//   "CLEANUP_FAILED"
6599	//   "DEPRECATED_RESOURCE_USED"
6600	//   "DEPRECATED_TYPE_USED"
6601	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6602	//   "EXPERIMENTAL_TYPE_USED"
6603	//   "EXTERNAL_API_WARNING"
6604	//   "FIELD_VALUE_OVERRIDEN"
6605	//   "INJECTED_KERNELS_DEPRECATED"
6606	//   "MISSING_TYPE_DEPENDENCY"
6607	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6608	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6609	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6610	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6611	//   "NEXT_HOP_NOT_RUNNING"
6612	//   "NOT_CRITICAL_ERROR"
6613	//   "NO_RESULTS_ON_PAGE"
6614	//   "REQUIRED_TOS_AGREEMENT"
6615	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6616	//   "RESOURCE_NOT_DELETED"
6617	//   "SCHEMA_VALIDATION_IGNORED"
6618	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6619	//   "UNDECLARED_PROPERTIES"
6620	//   "UNREACHABLE"
6621	Code string `json:"code,omitempty"`
6622
6623	// Data: [Output Only] Metadata about this warning in key: value format.
6624	// For example:
6625	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6626	Data []*CommitmentAggregatedListWarningData `json:"data,omitempty"`
6627
6628	// Message: [Output Only] A human-readable description of the warning
6629	// code.
6630	Message string `json:"message,omitempty"`
6631
6632	// ForceSendFields is a list of field names (e.g. "Code") to
6633	// unconditionally include in API requests. By default, fields with
6634	// empty values are omitted from API requests. However, any non-pointer,
6635	// non-interface field appearing in ForceSendFields will be sent to the
6636	// server regardless of whether the field is empty or not. This may be
6637	// used to include empty fields in Patch requests.
6638	ForceSendFields []string `json:"-"`
6639
6640	// NullFields is a list of field names (e.g. "Code") to include in API
6641	// requests with the JSON null value. By default, fields with empty
6642	// values are omitted from API requests. However, any field with an
6643	// empty value appearing in NullFields will be sent to the server as
6644	// null. It is an error if a field in this list has a non-empty value.
6645	// This may be used to include null fields in Patch requests.
6646	NullFields []string `json:"-"`
6647}
6648
6649func (s *CommitmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
6650	type NoMethod CommitmentAggregatedListWarning
6651	raw := NoMethod(*s)
6652	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6653}
6654
6655type CommitmentAggregatedListWarningData struct {
6656	// Key: [Output Only] A key that provides more detail on the warning
6657	// being returned. For example, for warnings where there are no results
6658	// in a list request for a particular zone, this key might be scope and
6659	// the key value might be the zone name. Other examples might be a key
6660	// indicating a deprecated resource and a suggested replacement, or a
6661	// warning about invalid network settings (for example, if an instance
6662	// attempts to perform IP forwarding but is not enabled for IP
6663	// forwarding).
6664	Key string `json:"key,omitempty"`
6665
6666	// Value: [Output Only] A warning data value corresponding to the key.
6667	Value string `json:"value,omitempty"`
6668
6669	// ForceSendFields is a list of field names (e.g. "Key") to
6670	// unconditionally include in API requests. By default, fields with
6671	// empty values are omitted from API requests. However, any non-pointer,
6672	// non-interface field appearing in ForceSendFields will be sent to the
6673	// server regardless of whether the field is empty or not. This may be
6674	// used to include empty fields in Patch requests.
6675	ForceSendFields []string `json:"-"`
6676
6677	// NullFields is a list of field names (e.g. "Key") to include in API
6678	// requests with the JSON null value. By default, fields with empty
6679	// values are omitted from API requests. However, any field with an
6680	// empty value appearing in NullFields will be sent to the server as
6681	// null. It is an error if a field in this list has a non-empty value.
6682	// This may be used to include null fields in Patch requests.
6683	NullFields []string `json:"-"`
6684}
6685
6686func (s *CommitmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
6687	type NoMethod CommitmentAggregatedListWarningData
6688	raw := NoMethod(*s)
6689	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6690}
6691
6692// CommitmentList: Contains a list of Commitment resources.
6693type CommitmentList struct {
6694	// Id: [Output Only] Unique identifier for the resource; defined by the
6695	// server.
6696	Id string `json:"id,omitempty"`
6697
6698	// Items: A list of Commitment resources.
6699	Items []*Commitment `json:"items,omitempty"`
6700
6701	// Kind: [Output Only] Type of resource. Always compute#commitmentList
6702	// for lists of commitments.
6703	Kind string `json:"kind,omitempty"`
6704
6705	// NextPageToken: [Output Only] This token allows you to get the next
6706	// page of results for list requests. If the number of results is larger
6707	// than maxResults, use the nextPageToken as a value for the query
6708	// parameter pageToken in the next list request. Subsequent list
6709	// requests will have their own nextPageToken to continue paging through
6710	// the results.
6711	NextPageToken string `json:"nextPageToken,omitempty"`
6712
6713	// SelfLink: [Output Only] Server-defined URL for this resource.
6714	SelfLink string `json:"selfLink,omitempty"`
6715
6716	// Warning: [Output Only] Informational warning message.
6717	Warning *CommitmentListWarning `json:"warning,omitempty"`
6718
6719	// ServerResponse contains the HTTP response code and headers from the
6720	// server.
6721	googleapi.ServerResponse `json:"-"`
6722
6723	// ForceSendFields is a list of field names (e.g. "Id") to
6724	// unconditionally include in API requests. By default, fields with
6725	// empty values are omitted from API requests. However, any non-pointer,
6726	// non-interface field appearing in ForceSendFields will be sent to the
6727	// server regardless of whether the field is empty or not. This may be
6728	// used to include empty fields in Patch requests.
6729	ForceSendFields []string `json:"-"`
6730
6731	// NullFields is a list of field names (e.g. "Id") to include in API
6732	// requests with the JSON null value. By default, fields with empty
6733	// values are omitted from API requests. However, any field with an
6734	// empty value appearing in NullFields will be sent to the server as
6735	// null. It is an error if a field in this list has a non-empty value.
6736	// This may be used to include null fields in Patch requests.
6737	NullFields []string `json:"-"`
6738}
6739
6740func (s *CommitmentList) MarshalJSON() ([]byte, error) {
6741	type NoMethod CommitmentList
6742	raw := NoMethod(*s)
6743	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6744}
6745
6746// CommitmentListWarning: [Output Only] Informational warning message.
6747type CommitmentListWarning struct {
6748	// Code: [Output Only] A warning code, if applicable. For example,
6749	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6750	// the response.
6751	//
6752	// Possible values:
6753	//   "CLEANUP_FAILED"
6754	//   "DEPRECATED_RESOURCE_USED"
6755	//   "DEPRECATED_TYPE_USED"
6756	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6757	//   "EXPERIMENTAL_TYPE_USED"
6758	//   "EXTERNAL_API_WARNING"
6759	//   "FIELD_VALUE_OVERRIDEN"
6760	//   "INJECTED_KERNELS_DEPRECATED"
6761	//   "MISSING_TYPE_DEPENDENCY"
6762	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6763	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6764	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6765	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6766	//   "NEXT_HOP_NOT_RUNNING"
6767	//   "NOT_CRITICAL_ERROR"
6768	//   "NO_RESULTS_ON_PAGE"
6769	//   "REQUIRED_TOS_AGREEMENT"
6770	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6771	//   "RESOURCE_NOT_DELETED"
6772	//   "SCHEMA_VALIDATION_IGNORED"
6773	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6774	//   "UNDECLARED_PROPERTIES"
6775	//   "UNREACHABLE"
6776	Code string `json:"code,omitempty"`
6777
6778	// Data: [Output Only] Metadata about this warning in key: value format.
6779	// For example:
6780	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6781	Data []*CommitmentListWarningData `json:"data,omitempty"`
6782
6783	// Message: [Output Only] A human-readable description of the warning
6784	// code.
6785	Message string `json:"message,omitempty"`
6786
6787	// ForceSendFields is a list of field names (e.g. "Code") to
6788	// unconditionally include in API requests. By default, fields with
6789	// empty values are omitted from API requests. However, any non-pointer,
6790	// non-interface field appearing in ForceSendFields will be sent to the
6791	// server regardless of whether the field is empty or not. This may be
6792	// used to include empty fields in Patch requests.
6793	ForceSendFields []string `json:"-"`
6794
6795	// NullFields is a list of field names (e.g. "Code") to include in API
6796	// requests with the JSON null value. By default, fields with empty
6797	// values are omitted from API requests. However, any field with an
6798	// empty value appearing in NullFields will be sent to the server as
6799	// null. It is an error if a field in this list has a non-empty value.
6800	// This may be used to include null fields in Patch requests.
6801	NullFields []string `json:"-"`
6802}
6803
6804func (s *CommitmentListWarning) MarshalJSON() ([]byte, error) {
6805	type NoMethod CommitmentListWarning
6806	raw := NoMethod(*s)
6807	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6808}
6809
6810type CommitmentListWarningData struct {
6811	// Key: [Output Only] A key that provides more detail on the warning
6812	// being returned. For example, for warnings where there are no results
6813	// in a list request for a particular zone, this key might be scope and
6814	// the key value might be the zone name. Other examples might be a key
6815	// indicating a deprecated resource and a suggested replacement, or a
6816	// warning about invalid network settings (for example, if an instance
6817	// attempts to perform IP forwarding but is not enabled for IP
6818	// forwarding).
6819	Key string `json:"key,omitempty"`
6820
6821	// Value: [Output Only] A warning data value corresponding to the key.
6822	Value string `json:"value,omitempty"`
6823
6824	// ForceSendFields is a list of field names (e.g. "Key") to
6825	// unconditionally include in API requests. By default, fields with
6826	// empty values are omitted from API requests. However, any non-pointer,
6827	// non-interface field appearing in ForceSendFields will be sent to the
6828	// server regardless of whether the field is empty or not. This may be
6829	// used to include empty fields in Patch requests.
6830	ForceSendFields []string `json:"-"`
6831
6832	// NullFields is a list of field names (e.g. "Key") to include in API
6833	// requests with the JSON null value. By default, fields with empty
6834	// values are omitted from API requests. However, any field with an
6835	// empty value appearing in NullFields will be sent to the server as
6836	// null. It is an error if a field in this list has a non-empty value.
6837	// This may be used to include null fields in Patch requests.
6838	NullFields []string `json:"-"`
6839}
6840
6841func (s *CommitmentListWarningData) MarshalJSON() ([]byte, error) {
6842	type NoMethod CommitmentListWarningData
6843	raw := NoMethod(*s)
6844	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6845}
6846
6847type CommitmentsScopedList struct {
6848	// Commitments: [Output Only] A list of commitments contained in this
6849	// scope.
6850	Commitments []*Commitment `json:"commitments,omitempty"`
6851
6852	// Warning: [Output Only] Informational warning which replaces the list
6853	// of commitments when the list is empty.
6854	Warning *CommitmentsScopedListWarning `json:"warning,omitempty"`
6855
6856	// ForceSendFields is a list of field names (e.g. "Commitments") to
6857	// unconditionally include in API requests. By default, fields with
6858	// empty values are omitted from API requests. However, any non-pointer,
6859	// non-interface field appearing in ForceSendFields will be sent to the
6860	// server regardless of whether the field is empty or not. This may be
6861	// used to include empty fields in Patch requests.
6862	ForceSendFields []string `json:"-"`
6863
6864	// NullFields is a list of field names (e.g. "Commitments") to include
6865	// in API requests with the JSON null value. By default, fields with
6866	// empty values are omitted from API requests. However, any field with
6867	// an empty value appearing in NullFields will be sent to the server as
6868	// null. It is an error if a field in this list has a non-empty value.
6869	// This may be used to include null fields in Patch requests.
6870	NullFields []string `json:"-"`
6871}
6872
6873func (s *CommitmentsScopedList) MarshalJSON() ([]byte, error) {
6874	type NoMethod CommitmentsScopedList
6875	raw := NoMethod(*s)
6876	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6877}
6878
6879// CommitmentsScopedListWarning: [Output Only] Informational warning
6880// which replaces the list of commitments when the list is empty.
6881type CommitmentsScopedListWarning struct {
6882	// Code: [Output Only] A warning code, if applicable. For example,
6883	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6884	// the response.
6885	//
6886	// Possible values:
6887	//   "CLEANUP_FAILED"
6888	//   "DEPRECATED_RESOURCE_USED"
6889	//   "DEPRECATED_TYPE_USED"
6890	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6891	//   "EXPERIMENTAL_TYPE_USED"
6892	//   "EXTERNAL_API_WARNING"
6893	//   "FIELD_VALUE_OVERRIDEN"
6894	//   "INJECTED_KERNELS_DEPRECATED"
6895	//   "MISSING_TYPE_DEPENDENCY"
6896	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6897	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6898	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6899	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6900	//   "NEXT_HOP_NOT_RUNNING"
6901	//   "NOT_CRITICAL_ERROR"
6902	//   "NO_RESULTS_ON_PAGE"
6903	//   "REQUIRED_TOS_AGREEMENT"
6904	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6905	//   "RESOURCE_NOT_DELETED"
6906	//   "SCHEMA_VALIDATION_IGNORED"
6907	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6908	//   "UNDECLARED_PROPERTIES"
6909	//   "UNREACHABLE"
6910	Code string `json:"code,omitempty"`
6911
6912	// Data: [Output Only] Metadata about this warning in key: value format.
6913	// For example:
6914	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6915	Data []*CommitmentsScopedListWarningData `json:"data,omitempty"`
6916
6917	// Message: [Output Only] A human-readable description of the warning
6918	// code.
6919	Message string `json:"message,omitempty"`
6920
6921	// ForceSendFields is a list of field names (e.g. "Code") to
6922	// unconditionally include in API requests. By default, fields with
6923	// empty values are omitted from API requests. However, any non-pointer,
6924	// non-interface field appearing in ForceSendFields will be sent to the
6925	// server regardless of whether the field is empty or not. This may be
6926	// used to include empty fields in Patch requests.
6927	ForceSendFields []string `json:"-"`
6928
6929	// NullFields is a list of field names (e.g. "Code") to include in API
6930	// requests with the JSON null value. By default, fields with empty
6931	// values are omitted from API requests. However, any field with an
6932	// empty value appearing in NullFields will be sent to the server as
6933	// null. It is an error if a field in this list has a non-empty value.
6934	// This may be used to include null fields in Patch requests.
6935	NullFields []string `json:"-"`
6936}
6937
6938func (s *CommitmentsScopedListWarning) MarshalJSON() ([]byte, error) {
6939	type NoMethod CommitmentsScopedListWarning
6940	raw := NoMethod(*s)
6941	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6942}
6943
6944type CommitmentsScopedListWarningData struct {
6945	// Key: [Output Only] A key that provides more detail on the warning
6946	// being returned. For example, for warnings where there are no results
6947	// in a list request for a particular zone, this key might be scope and
6948	// the key value might be the zone name. Other examples might be a key
6949	// indicating a deprecated resource and a suggested replacement, or a
6950	// warning about invalid network settings (for example, if an instance
6951	// attempts to perform IP forwarding but is not enabled for IP
6952	// forwarding).
6953	Key string `json:"key,omitempty"`
6954
6955	// Value: [Output Only] A warning data value corresponding to the key.
6956	Value string `json:"value,omitempty"`
6957
6958	// ForceSendFields is a list of field names (e.g. "Key") to
6959	// unconditionally include in API requests. By default, fields with
6960	// empty values are omitted from API requests. However, any non-pointer,
6961	// non-interface field appearing in ForceSendFields will be sent to the
6962	// server regardless of whether the field is empty or not. This may be
6963	// used to include empty fields in Patch requests.
6964	ForceSendFields []string `json:"-"`
6965
6966	// NullFields is a list of field names (e.g. "Key") to include in API
6967	// requests with the JSON null value. By default, fields with empty
6968	// values are omitted from API requests. However, any field with an
6969	// empty value appearing in NullFields will be sent to the server as
6970	// null. It is an error if a field in this list has a non-empty value.
6971	// This may be used to include null fields in Patch requests.
6972	NullFields []string `json:"-"`
6973}
6974
6975func (s *CommitmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
6976	type NoMethod CommitmentsScopedListWarningData
6977	raw := NoMethod(*s)
6978	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6979}
6980
6981// Condition: A condition to be met.
6982type Condition struct {
6983	// Iam: Trusted attributes supplied by the IAM system.
6984	//
6985	// Possible values:
6986	//   "APPROVER"
6987	//   "ATTRIBUTION"
6988	//   "AUTHORITY"
6989	//   "CREDENTIALS_TYPE"
6990	//   "JUSTIFICATION_TYPE"
6991	//   "NO_ATTR"
6992	//   "SECURITY_REALM"
6993	Iam string `json:"iam,omitempty"`
6994
6995	// Op: An operator to apply the subject with.
6996	//
6997	// Possible values:
6998	//   "DISCHARGED"
6999	//   "EQUALS"
7000	//   "IN"
7001	//   "NOT_EQUALS"
7002	//   "NOT_IN"
7003	//   "NO_OP"
7004	Op string `json:"op,omitempty"`
7005
7006	// Svc: Trusted attributes discharged by the service.
7007	Svc string `json:"svc,omitempty"`
7008
7009	// Sys: Trusted attributes supplied by any service that owns resources
7010	// and uses the IAM system for access control.
7011	//
7012	// Possible values:
7013	//   "IP"
7014	//   "NAME"
7015	//   "NO_ATTR"
7016	//   "REGION"
7017	//   "SERVICE"
7018	Sys string `json:"sys,omitempty"`
7019
7020	// Values: The objects of the condition.
7021	Values []string `json:"values,omitempty"`
7022
7023	// ForceSendFields is a list of field names (e.g. "Iam") to
7024	// unconditionally include in API requests. By default, fields with
7025	// empty values are omitted from API requests. However, any non-pointer,
7026	// non-interface field appearing in ForceSendFields will be sent to the
7027	// server regardless of whether the field is empty or not. This may be
7028	// used to include empty fields in Patch requests.
7029	ForceSendFields []string `json:"-"`
7030
7031	// NullFields is a list of field names (e.g. "Iam") to include in API
7032	// requests with the JSON null value. By default, fields with empty
7033	// values are omitted from API requests. However, any field with an
7034	// empty value appearing in NullFields will be sent to the server as
7035	// null. It is an error if a field in this list has a non-empty value.
7036	// This may be used to include null fields in Patch requests.
7037	NullFields []string `json:"-"`
7038}
7039
7040func (s *Condition) MarshalJSON() ([]byte, error) {
7041	type NoMethod Condition
7042	raw := NoMethod(*s)
7043	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7044}
7045
7046// ConfidentialInstanceConfig: A set of Confidential Instance options.
7047type ConfidentialInstanceConfig struct {
7048	// EnableConfidentialCompute: Defines whether the instance should have
7049	// confidential compute enabled.
7050	EnableConfidentialCompute bool `json:"enableConfidentialCompute,omitempty"`
7051
7052	// ForceSendFields is a list of field names (e.g.
7053	// "EnableConfidentialCompute") to unconditionally include in API
7054	// requests. By default, fields with empty values are omitted from API
7055	// requests. However, any non-pointer, non-interface field appearing in
7056	// ForceSendFields will be sent to the server regardless of whether the
7057	// field is empty or not. This may be used to include empty fields in
7058	// Patch requests.
7059	ForceSendFields []string `json:"-"`
7060
7061	// NullFields is a list of field names (e.g.
7062	// "EnableConfidentialCompute") to include in API requests with the JSON
7063	// null value. By default, fields with empty values are omitted from API
7064	// requests. However, any field with an empty value appearing in
7065	// NullFields will be sent to the server as null. It is an error if a
7066	// field in this list has a non-empty value. This may be used to include
7067	// null fields in Patch requests.
7068	NullFields []string `json:"-"`
7069}
7070
7071func (s *ConfidentialInstanceConfig) MarshalJSON() ([]byte, error) {
7072	type NoMethod ConfidentialInstanceConfig
7073	raw := NoMethod(*s)
7074	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7075}
7076
7077// ConnectionDraining: Message containing connection draining
7078// configuration.
7079type ConnectionDraining struct {
7080	// DrainingTimeoutSec: The amount of time in seconds to allow existing
7081	// connections to persist while on unhealthy backend VMs. Only
7082	// applicable if the protocol is not UDP. The valid range is [0, 3600].
7083	DrainingTimeoutSec int64 `json:"drainingTimeoutSec,omitempty"`
7084
7085	// ForceSendFields is a list of field names (e.g. "DrainingTimeoutSec")
7086	// to unconditionally include in API requests. By default, fields with
7087	// empty values are omitted from API requests. However, any non-pointer,
7088	// non-interface field appearing in ForceSendFields will be sent to the
7089	// server regardless of whether the field is empty or not. This may be
7090	// used to include empty fields in Patch requests.
7091	ForceSendFields []string `json:"-"`
7092
7093	// NullFields is a list of field names (e.g. "DrainingTimeoutSec") to
7094	// include in API requests with the JSON null value. By default, fields
7095	// with empty values are omitted from API requests. However, any field
7096	// with an empty value appearing in NullFields will be sent to the
7097	// server as null. It is an error if a field in this list has a
7098	// non-empty value. This may be used to include null fields in Patch
7099	// requests.
7100	NullFields []string `json:"-"`
7101}
7102
7103func (s *ConnectionDraining) MarshalJSON() ([]byte, error) {
7104	type NoMethod ConnectionDraining
7105	raw := NoMethod(*s)
7106	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7107}
7108
7109// ConsistentHashLoadBalancerSettings: This message defines settings for
7110// a consistent hash style load balancer.
7111type ConsistentHashLoadBalancerSettings struct {
7112	// HttpCookie: Hash is based on HTTP Cookie. This field describes a HTTP
7113	// cookie that will be used as the hash key for the consistent hash load
7114	// balancer. If the cookie is not present, it will be generated. This
7115	// field is applicable if the sessionAffinity is set to HTTP_COOKIE.
7116	HttpCookie *ConsistentHashLoadBalancerSettingsHttpCookie `json:"httpCookie,omitempty"`
7117
7118	// HttpHeaderName: The hash based on the value of the specified header
7119	// field. This field is applicable if the sessionAffinity is set to
7120	// HEADER_FIELD.
7121	HttpHeaderName string `json:"httpHeaderName,omitempty"`
7122
7123	// MinimumRingSize: The minimum number of virtual nodes to use for the
7124	// hash ring. Defaults to 1024. Larger ring sizes result in more
7125	// granular load distributions. If the number of hosts in the load
7126	// balancing pool is larger than the ring size, each host will be
7127	// assigned a single virtual node.
7128	MinimumRingSize int64 `json:"minimumRingSize,omitempty,string"`
7129
7130	// ForceSendFields is a list of field names (e.g. "HttpCookie") to
7131	// unconditionally include in API requests. By default, fields with
7132	// empty values are omitted from API requests. However, any non-pointer,
7133	// non-interface field appearing in ForceSendFields will be sent to the
7134	// server regardless of whether the field is empty or not. This may be
7135	// used to include empty fields in Patch requests.
7136	ForceSendFields []string `json:"-"`
7137
7138	// NullFields is a list of field names (e.g. "HttpCookie") to include in
7139	// API requests with the JSON null value. By default, fields with empty
7140	// values are omitted from API requests. However, any field with an
7141	// empty value appearing in NullFields will be sent to the server as
7142	// null. It is an error if a field in this list has a non-empty value.
7143	// This may be used to include null fields in Patch requests.
7144	NullFields []string `json:"-"`
7145}
7146
7147func (s *ConsistentHashLoadBalancerSettings) MarshalJSON() ([]byte, error) {
7148	type NoMethod ConsistentHashLoadBalancerSettings
7149	raw := NoMethod(*s)
7150	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7151}
7152
7153// ConsistentHashLoadBalancerSettingsHttpCookie: The information about
7154// the HTTP Cookie on which the hash function is based for load
7155// balancing policies that use a consistent hash.
7156type ConsistentHashLoadBalancerSettingsHttpCookie struct {
7157	// Name: Name of the cookie.
7158	Name string `json:"name,omitempty"`
7159
7160	// Path: Path to set for the cookie.
7161	Path string `json:"path,omitempty"`
7162
7163	// Ttl: Lifetime of the cookie.
7164	Ttl *Duration `json:"ttl,omitempty"`
7165
7166	// ForceSendFields is a list of field names (e.g. "Name") to
7167	// unconditionally include in API requests. By default, fields with
7168	// empty values are omitted from API requests. However, any non-pointer,
7169	// non-interface field appearing in ForceSendFields will be sent to the
7170	// server regardless of whether the field is empty or not. This may be
7171	// used to include empty fields in Patch requests.
7172	ForceSendFields []string `json:"-"`
7173
7174	// NullFields is a list of field names (e.g. "Name") to include in API
7175	// requests with the JSON null value. By default, fields with empty
7176	// values are omitted from API requests. However, any field with an
7177	// empty value appearing in NullFields will be sent to the server as
7178	// null. It is an error if a field in this list has a non-empty value.
7179	// This may be used to include null fields in Patch requests.
7180	NullFields []string `json:"-"`
7181}
7182
7183func (s *ConsistentHashLoadBalancerSettingsHttpCookie) MarshalJSON() ([]byte, error) {
7184	type NoMethod ConsistentHashLoadBalancerSettingsHttpCookie
7185	raw := NoMethod(*s)
7186	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7187}
7188
7189// CorsPolicy: The specification for allowing client side cross-origin
7190// requests. Please see W3C Recommendation for Cross Origin Resource
7191// Sharing
7192type CorsPolicy struct {
7193	// AllowCredentials: In response to a preflight request, setting this to
7194	// true indicates that the actual request can include user credentials.
7195	// This translates to the Access-Control-Allow-Credentials
7196	// header.
7197	// Default is false.
7198	AllowCredentials bool `json:"allowCredentials,omitempty"`
7199
7200	// AllowHeaders: Specifies the content for the
7201	// Access-Control-Allow-Headers header.
7202	AllowHeaders []string `json:"allowHeaders,omitempty"`
7203
7204	// AllowMethods: Specifies the content for the
7205	// Access-Control-Allow-Methods header.
7206	AllowMethods []string `json:"allowMethods,omitempty"`
7207
7208	// AllowOriginRegexes: Specifies the regualar expression patterns that
7209	// match allowed origins. For regular expression grammar please see
7210	// en.cppreference.com/w/cpp/regex/ecmascript
7211	// An origin is allowed if it matches either allow_origins or
7212	// allow_origin_regex.
7213	AllowOriginRegexes []string `json:"allowOriginRegexes,omitempty"`
7214
7215	// AllowOrigins: Specifies the list of origins that will be allowed to
7216	// do CORS requests.
7217	// An origin is allowed if it matches either allow_origins or
7218	// allow_origin_regex.
7219	AllowOrigins []string `json:"allowOrigins,omitempty"`
7220
7221	// Disabled: If true, specifies the CORS policy is disabled. The default
7222	// value of false, which indicates that the CORS policy is in effect.
7223	Disabled bool `json:"disabled,omitempty"`
7224
7225	// ExposeHeaders: Specifies the content for the
7226	// Access-Control-Expose-Headers header.
7227	ExposeHeaders []string `json:"exposeHeaders,omitempty"`
7228
7229	// MaxAge: Specifies how long results of a preflight request can be
7230	// cached in seconds. This translates to the Access-Control-Max-Age
7231	// header.
7232	MaxAge int64 `json:"maxAge,omitempty"`
7233
7234	// ForceSendFields is a list of field names (e.g. "AllowCredentials") to
7235	// unconditionally include in API requests. By default, fields with
7236	// empty values are omitted from API requests. However, any non-pointer,
7237	// non-interface field appearing in ForceSendFields will be sent to the
7238	// server regardless of whether the field is empty or not. This may be
7239	// used to include empty fields in Patch requests.
7240	ForceSendFields []string `json:"-"`
7241
7242	// NullFields is a list of field names (e.g. "AllowCredentials") to
7243	// include in API requests with the JSON null value. By default, fields
7244	// with empty values are omitted from API requests. However, any field
7245	// with an empty value appearing in NullFields will be sent to the
7246	// server as null. It is an error if a field in this list has a
7247	// non-empty value. This may be used to include null fields in Patch
7248	// requests.
7249	NullFields []string `json:"-"`
7250}
7251
7252func (s *CorsPolicy) MarshalJSON() ([]byte, error) {
7253	type NoMethod CorsPolicy
7254	raw := NoMethod(*s)
7255	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7256}
7257
7258// CustomerEncryptionKey: Represents a customer-supplied encryption key
7259type CustomerEncryptionKey struct {
7260	// KmsKeyName: The name of the encryption key that is stored in Google
7261	// Cloud KMS.
7262	KmsKeyName string `json:"kmsKeyName,omitempty"`
7263
7264	// KmsKeyServiceAccount: The service account being used for the
7265	// encryption request for the given KMS key. If absent, the Compute
7266	// Engine default service account is used.
7267	KmsKeyServiceAccount string `json:"kmsKeyServiceAccount,omitempty"`
7268
7269	// RawKey: Specifies a 256-bit customer-supplied encryption key, encoded
7270	// in RFC 4648 base64 to either encrypt or decrypt this resource.
7271	RawKey string `json:"rawKey,omitempty"`
7272
7273	// RsaEncryptedKey: Specifies an RFC 4648 base64 encoded, RSA-wrapped
7274	// 2048-bit customer-supplied encryption key to either encrypt or
7275	// decrypt this resource.
7276	//
7277	// The key must meet the following requirements before you can provide
7278	// it to Compute Engine:
7279	// - The key is wrapped using a RSA public key certificate provided by
7280	// Google.
7281	// - After being wrapped, the key must be encoded in RFC 4648 base64
7282	// encoding.  Gets the RSA public key certificate provided by Google
7283	// at:
7284	// https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingre
7285	// ss.pem
7286	RsaEncryptedKey string `json:"rsaEncryptedKey,omitempty"`
7287
7288	// Sha256: [Output only] The RFC 4648 base64 encoded SHA-256 hash of the
7289	// customer-supplied encryption key that protects this resource.
7290	Sha256 string `json:"sha256,omitempty"`
7291
7292	// ForceSendFields is a list of field names (e.g. "KmsKeyName") to
7293	// unconditionally include in API requests. By default, fields with
7294	// empty values are omitted from API requests. However, any non-pointer,
7295	// non-interface field appearing in ForceSendFields will be sent to the
7296	// server regardless of whether the field is empty or not. This may be
7297	// used to include empty fields in Patch requests.
7298	ForceSendFields []string `json:"-"`
7299
7300	// NullFields is a list of field names (e.g. "KmsKeyName") to include in
7301	// API requests with the JSON null value. By default, fields with empty
7302	// values are omitted from API requests. However, any field with an
7303	// empty value appearing in NullFields will be sent to the server as
7304	// null. It is an error if a field in this list has a non-empty value.
7305	// This may be used to include null fields in Patch requests.
7306	NullFields []string `json:"-"`
7307}
7308
7309func (s *CustomerEncryptionKey) MarshalJSON() ([]byte, error) {
7310	type NoMethod CustomerEncryptionKey
7311	raw := NoMethod(*s)
7312	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7313}
7314
7315type CustomerEncryptionKeyProtectedDisk struct {
7316	// DiskEncryptionKey: Decrypts data associated with the disk with a
7317	// customer-supplied encryption key.
7318	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
7319
7320	// Source: Specifies a valid partial or full URL to an existing
7321	// Persistent Disk resource. This field is only applicable for
7322	// persistent disks.
7323	Source string `json:"source,omitempty"`
7324
7325	// ForceSendFields is a list of field names (e.g. "DiskEncryptionKey")
7326	// to unconditionally include in API requests. By default, fields with
7327	// empty values are omitted from API requests. However, any non-pointer,
7328	// non-interface field appearing in ForceSendFields will be sent to the
7329	// server regardless of whether the field is empty or not. This may be
7330	// used to include empty fields in Patch requests.
7331	ForceSendFields []string `json:"-"`
7332
7333	// NullFields is a list of field names (e.g. "DiskEncryptionKey") to
7334	// include in API requests with the JSON null value. By default, fields
7335	// with empty values are omitted from API requests. However, any field
7336	// with an empty value appearing in NullFields will be sent to the
7337	// server as null. It is an error if a field in this list has a
7338	// non-empty value. This may be used to include null fields in Patch
7339	// requests.
7340	NullFields []string `json:"-"`
7341}
7342
7343func (s *CustomerEncryptionKeyProtectedDisk) MarshalJSON() ([]byte, error) {
7344	type NoMethod CustomerEncryptionKeyProtectedDisk
7345	raw := NoMethod(*s)
7346	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7347}
7348
7349// DeprecationStatus: Deprecation status for a public resource.
7350type DeprecationStatus struct {
7351	// Deleted: An optional RFC3339 timestamp on or after which the state of
7352	// this resource is intended to change to DELETED. This is only
7353	// informational and the status will not change unless the client
7354	// explicitly changes it.
7355	Deleted string `json:"deleted,omitempty"`
7356
7357	// Deprecated: An optional RFC3339 timestamp on or after which the state
7358	// of this resource is intended to change to DEPRECATED. This is only
7359	// informational and the status will not change unless the client
7360	// explicitly changes it.
7361	Deprecated string `json:"deprecated,omitempty"`
7362
7363	// Obsolete: An optional RFC3339 timestamp on or after which the state
7364	// of this resource is intended to change to OBSOLETE. This is only
7365	// informational and the status will not change unless the client
7366	// explicitly changes it.
7367	Obsolete string `json:"obsolete,omitempty"`
7368
7369	// Replacement: The URL of the suggested replacement for a deprecated
7370	// resource. The suggested replacement resource must be the same kind of
7371	// resource as the deprecated resource.
7372	Replacement string `json:"replacement,omitempty"`
7373
7374	// State: The deprecation state of this resource. This can be ACTIVE,
7375	// DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the
7376	// end of life date for an image, can use ACTIVE. Operations which
7377	// create a new resource using a DEPRECATED resource will return
7378	// successfully, but with a warning indicating the deprecated resource
7379	// and recommending its replacement. Operations which use OBSOLETE or
7380	// DELETED resources will be rejected and result in an error.
7381	//
7382	// Possible values:
7383	//   "ACTIVE"
7384	//   "DELETED"
7385	//   "DEPRECATED"
7386	//   "OBSOLETE"
7387	State string `json:"state,omitempty"`
7388
7389	// ForceSendFields is a list of field names (e.g. "Deleted") to
7390	// unconditionally include in API requests. By default, fields with
7391	// empty values are omitted from API requests. However, any non-pointer,
7392	// non-interface field appearing in ForceSendFields will be sent to the
7393	// server regardless of whether the field is empty or not. This may be
7394	// used to include empty fields in Patch requests.
7395	ForceSendFields []string `json:"-"`
7396
7397	// NullFields is a list of field names (e.g. "Deleted") to include in
7398	// API requests with the JSON null value. By default, fields with empty
7399	// values are omitted from API requests. However, any field with an
7400	// empty value appearing in NullFields will be sent to the server as
7401	// null. It is an error if a field in this list has a non-empty value.
7402	// This may be used to include null fields in Patch requests.
7403	NullFields []string `json:"-"`
7404}
7405
7406func (s *DeprecationStatus) MarshalJSON() ([]byte, error) {
7407	type NoMethod DeprecationStatus
7408	raw := NoMethod(*s)
7409	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7410}
7411
7412// Disk: Represents a Persistent Disk resource.
7413//
7414// Google Compute Engine has two Disk resources:
7415//
7416// * [Global](/compute/docs/reference/rest/latest/disks) *
7417// [Regional](/compute/docs/reference/rest/latest/regionDisks)
7418//
7419// Persisten
7420// t disks are required for running your VM instances. Create both boot
7421// and non-boot (data) persistent disks. For more information, read
7422// Persistent Disks. For more storage options, read Storage
7423// options.
7424//
7425// The disks resource represents a zonal persistent disk. For more
7426// information, read Zonal persistent disks.
7427//
7428// The regionDisks resource represents a regional persistent disk. For
7429// more information, read  Regional resources. (== resource_for
7430// {$api_version}.disks ==) (== resource_for {$api_version}.regionDisks
7431// ==)
7432type Disk struct {
7433	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
7434	// format.
7435	CreationTimestamp string `json:"creationTimestamp,omitempty"`
7436
7437	// Description: An optional description of this resource. Provide this
7438	// property when you create the resource.
7439	Description string `json:"description,omitempty"`
7440
7441	// DiskEncryptionKey: Encrypts the disk using a customer-supplied
7442	// encryption key.
7443	//
7444	// After you encrypt a disk with a customer-supplied key, you must
7445	// provide the same key if you use the disk later (e.g. to create a disk
7446	// snapshot, to create a disk image, to create a machine image, or to
7447	// attach the disk to a virtual machine).
7448	//
7449	// Customer-supplied encryption keys do not protect access to metadata
7450	// of the disk.
7451	//
7452	// If you do not provide an encryption key when creating the disk, then
7453	// the disk will be encrypted using an automatically generated key and
7454	// you do not need to provide a key to use the disk later.
7455	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
7456
7457	// EraseWindowsVssSignature: Specifies whether the disk restored from a
7458	// source snapshot should erase Windows specific VSS signature.
7459	EraseWindowsVssSignature bool `json:"eraseWindowsVssSignature,omitempty"`
7460
7461	// GuestOsFeatures: A list of features to enable on the guest operating
7462	// system. Applicable only for bootable images. Read  Enabling guest
7463	// operating system features to see a list of available options.
7464	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
7465
7466	// Id: [Output Only] The unique identifier for the resource. This
7467	// identifier is defined by the server.
7468	Id uint64 `json:"id,omitempty,string"`
7469
7470	// Kind: [Output Only] Type of the resource. Always compute#disk for
7471	// disks.
7472	Kind string `json:"kind,omitempty"`
7473
7474	// LabelFingerprint: A fingerprint for the labels being applied to this
7475	// disk, which is essentially a hash of the labels set used for
7476	// optimistic locking. The fingerprint is initially generated by Compute
7477	// Engine and changes after every request to modify or update labels.
7478	// You must always provide an up-to-date fingerprint hash in order to
7479	// update or change labels, otherwise the request will fail with error
7480	// 412 conditionNotMet.
7481	//
7482	// To see the latest fingerprint, make a get() request to retrieve a
7483	// disk.
7484	LabelFingerprint string `json:"labelFingerprint,omitempty"`
7485
7486	// Labels: Labels to apply to this disk. These can be later modified by
7487	// the setLabels method.
7488	Labels map[string]string `json:"labels,omitempty"`
7489
7490	// LastAttachTimestamp: [Output Only] Last attach timestamp in RFC3339
7491	// text format.
7492	LastAttachTimestamp string `json:"lastAttachTimestamp,omitempty"`
7493
7494	// LastDetachTimestamp: [Output Only] Last detach timestamp in RFC3339
7495	// text format.
7496	LastDetachTimestamp string `json:"lastDetachTimestamp,omitempty"`
7497
7498	// LicenseCodes: Integer license codes indicating which licenses are
7499	// attached to this disk.
7500	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
7501
7502	// Licenses: A list of publicly visible licenses. Reserved for Google's
7503	// use.
7504	Licenses []string `json:"licenses,omitempty"`
7505
7506	// MultiWriter: Indicates whether or not the disk can be read/write
7507	// attached to more than one instance.
7508	MultiWriter bool `json:"multiWriter,omitempty"`
7509
7510	// Name: Name of the resource. Provided by the client when the resource
7511	// is created. The name must be 1-63 characters long, and comply with
7512	// RFC1035. Specifically, the name must be 1-63 characters long and
7513	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
7514	// the first character must be a lowercase letter, and all following
7515	// characters must be a dash, lowercase letter, or digit, except the
7516	// last character, which cannot be a dash.
7517	Name string `json:"name,omitempty"`
7518
7519	// Options: Internal use only.
7520	Options string `json:"options,omitempty"`
7521
7522	// PhysicalBlockSizeBytes: Physical block size of the persistent disk,
7523	// in bytes. If not present in a request, a default value is used.
7524	// Currently supported sizes are 4096 and 16384, other sizes may be
7525	// added in the future. If an unsupported value is requested, the error
7526	// message will list the supported values for the caller's project.
7527	PhysicalBlockSizeBytes int64 `json:"physicalBlockSizeBytes,omitempty,string"`
7528
7529	// Region: [Output Only] URL of the region where the disk resides. Only
7530	// applicable for regional resources. You must specify this field as
7531	// part of the HTTP request URL. It is not settable as a field in the
7532	// request body.
7533	Region string `json:"region,omitempty"`
7534
7535	// ReplicaZones: URLs of the zones where the disk should be replicated
7536	// to. Only applicable for regional resources.
7537	ReplicaZones []string `json:"replicaZones,omitempty"`
7538
7539	// ResourcePolicies: Resource policies applied to this disk for
7540	// automatic snapshot creations.
7541	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
7542
7543	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
7544	// resource.
7545	SelfLink string `json:"selfLink,omitempty"`
7546
7547	// SelfLinkWithId: [Output Only] Server-defined URL for this resource's
7548	// resource id.
7549	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
7550
7551	// SizeGb: Size of the persistent disk, specified in GB. You can specify
7552	// this field when creating a persistent disk using the sourceImage or
7553	// sourceSnapshot parameter, or specify it alone to create an empty
7554	// persistent disk.
7555	//
7556	// If you specify this field along with sourceImage or sourceSnapshot,
7557	// the value of sizeGb must not be less than the size of the sourceImage
7558	// or the size of the snapshot. Acceptable values are 1 to 65536,
7559	// inclusive.
7560	SizeGb int64 `json:"sizeGb,omitempty,string"`
7561
7562	// SourceDisk: The source disk used to create this disk. You can provide
7563	// this as a partial or full URL to the resource. For example, the
7564	// following are valid values:
7565	// -
7566	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
7567	// - projects/project/zones/zone/disks/disk
7568	// - zones/zone/disks/disk
7569	SourceDisk string `json:"sourceDisk,omitempty"`
7570
7571	// SourceDiskId: [Output Only] The unique ID of the disk used to create
7572	// this disk. This value identifies the exact disk that was used to
7573	// create this persistent disk. For example, if you created the
7574	// persistent disk from a disk that was later deleted and recreated
7575	// under the same name, the source disk ID would identify the exact
7576	// version of the disk that was used.
7577	SourceDiskId string `json:"sourceDiskId,omitempty"`
7578
7579	// SourceImage: The source image used to create this disk. If the source
7580	// image is deleted, this field will not be set.
7581	//
7582	// To create a disk with one of the public operating system images,
7583	// specify the image by its family name. For example, specify
7584	// family/debian-9 to use the latest Debian 9
7585	// image:
7586	// projects/debian-cloud/global/images/family/debian-9
7587	//
7588	//
7589	// Alternati
7590	// vely, use a specific version of a public operating system
7591	// image:
7592	// projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD
7593	//
7594	//
7595	//
7596	// To create a disk with a custom image that you created, specify the
7597	// image name in the following
7598	// format:
7599	// global/images/my-custom-image
7600	//
7601	//
7602	// You can also specify a custom image by its image family, which
7603	// returns the latest version of the image in that family. Replace the
7604	// image name with
7605	// family/family-name:
7606	// global/images/family/my-image-family
7607	SourceImage string `json:"sourceImage,omitempty"`
7608
7609	// SourceImageEncryptionKey: The customer-supplied encryption key of the
7610	// source image. Required if the source image is protected by a
7611	// customer-supplied encryption key.
7612	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
7613
7614	// SourceImageId: [Output Only] The ID value of the image used to create
7615	// this disk. This value identifies the exact image that was used to
7616	// create this persistent disk. For example, if you created the
7617	// persistent disk from an image that was later deleted and recreated
7618	// under the same name, the source image ID would identify the exact
7619	// version of the image that was used.
7620	SourceImageId string `json:"sourceImageId,omitempty"`
7621
7622	// SourceSnapshot: The source snapshot used to create this disk. You can
7623	// provide this as a partial or full URL to the resource. For example,
7624	// the following are valid values:
7625	// -
7626	// https://www.googleapis.com/compute/v1/projects/project/global/snapshots/snapshot
7627	// - projects/project/global/snapshots/snapshot
7628	// - global/snapshots/snapshot
7629	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
7630
7631	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
7632	// the source snapshot. Required if the source snapshot is protected by
7633	// a customer-supplied encryption key.
7634	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
7635
7636	// SourceSnapshotId: [Output Only] The unique ID of the snapshot used to
7637	// create this disk. This value identifies the exact snapshot that was
7638	// used to create this persistent disk. For example, if you created the
7639	// persistent disk from a snapshot that was later deleted and recreated
7640	// under the same name, the source snapshot ID would identify the exact
7641	// version of the snapshot that was used.
7642	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
7643
7644	// SourceStorageObject: The full Google Cloud Storage URI where the disk
7645	// image is stored. This file must be a gzip-compressed tarball whose
7646	// name ends in .tar.gz or virtual machine disk whose name ends in vmdk.
7647	// Valid URIs may start with gs:// or https://storage.googleapis.com/.
7648	SourceStorageObject string `json:"sourceStorageObject,omitempty"`
7649
7650	// Status: [Output Only] The status of disk creation. CREATING: Disk is
7651	// provisioning. RESTORING: Source data is being copied into the disk.
7652	// FAILED: Disk creation failed. READY: Disk is ready for use. DELETING:
7653	// Disk is deleting.
7654	//
7655	// Possible values:
7656	//   "CREATING"
7657	//   "DELETING"
7658	//   "FAILED"
7659	//   "READY"
7660	//   "RESTORING"
7661	Status string `json:"status,omitempty"`
7662
7663	// StorageType: [Deprecated] Storage type of the persistent disk.
7664	//
7665	// Possible values:
7666	//   "HDD"
7667	//   "SSD"
7668	StorageType string `json:"storageType,omitempty"`
7669
7670	// Type: URL of the disk type resource describing which disk type to use
7671	// to create the disk. Provide this when creating the disk. For example:
7672	// projects/project/zones/zone/diskTypes/pd-standard or pd-ssd
7673	Type string `json:"type,omitempty"`
7674
7675	// Users: [Output Only] Links to the users of the disk (attached
7676	// instances) in form: projects/project/zones/zone/instances/instance
7677	Users []string `json:"users,omitempty"`
7678
7679	// Zone: [Output Only] URL of the zone where the disk resides. You must
7680	// specify this field as part of the HTTP request URL. It is not
7681	// settable as a field in the request body.
7682	Zone string `json:"zone,omitempty"`
7683
7684	// ServerResponse contains the HTTP response code and headers from the
7685	// server.
7686	googleapi.ServerResponse `json:"-"`
7687
7688	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
7689	// to unconditionally include in API requests. By default, fields with
7690	// empty values are omitted from API requests. However, any non-pointer,
7691	// non-interface field appearing in ForceSendFields will be sent to the
7692	// server regardless of whether the field is empty or not. This may be
7693	// used to include empty fields in Patch requests.
7694	ForceSendFields []string `json:"-"`
7695
7696	// NullFields is a list of field names (e.g. "CreationTimestamp") to
7697	// include in API requests with the JSON null value. By default, fields
7698	// with empty values are omitted from API requests. However, any field
7699	// with an empty value appearing in NullFields will be sent to the
7700	// server as null. It is an error if a field in this list has a
7701	// non-empty value. This may be used to include null fields in Patch
7702	// requests.
7703	NullFields []string `json:"-"`
7704}
7705
7706func (s *Disk) MarshalJSON() ([]byte, error) {
7707	type NoMethod Disk
7708	raw := NoMethod(*s)
7709	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7710}
7711
7712type DiskAggregatedList struct {
7713	// Id: [Output Only] Unique identifier for the resource; defined by the
7714	// server.
7715	Id string `json:"id,omitempty"`
7716
7717	// Items: A list of DisksScopedList resources.
7718	Items map[string]DisksScopedList `json:"items,omitempty"`
7719
7720	// Kind: [Output Only] Type of resource. Always
7721	// compute#diskAggregatedList for aggregated lists of persistent disks.
7722	Kind string `json:"kind,omitempty"`
7723
7724	// NextPageToken: [Output Only] This token allows you to get the next
7725	// page of results for list requests. If the number of results is larger
7726	// than maxResults, use the nextPageToken as a value for the query
7727	// parameter pageToken in the next list request. Subsequent list
7728	// requests will have their own nextPageToken to continue paging through
7729	// the results.
7730	NextPageToken string `json:"nextPageToken,omitempty"`
7731
7732	// SelfLink: [Output Only] Server-defined URL for this resource.
7733	SelfLink string `json:"selfLink,omitempty"`
7734
7735	// Warning: [Output Only] Informational warning message.
7736	Warning *DiskAggregatedListWarning `json:"warning,omitempty"`
7737
7738	// ServerResponse contains the HTTP response code and headers from the
7739	// server.
7740	googleapi.ServerResponse `json:"-"`
7741
7742	// ForceSendFields is a list of field names (e.g. "Id") to
7743	// unconditionally include in API requests. By default, fields with
7744	// empty values are omitted from API requests. However, any non-pointer,
7745	// non-interface field appearing in ForceSendFields will be sent to the
7746	// server regardless of whether the field is empty or not. This may be
7747	// used to include empty fields in Patch requests.
7748	ForceSendFields []string `json:"-"`
7749
7750	// NullFields is a list of field names (e.g. "Id") to include in API
7751	// requests with the JSON null value. By default, fields with empty
7752	// values are omitted from API requests. However, any field with an
7753	// empty value appearing in NullFields will be sent to the server as
7754	// null. It is an error if a field in this list has a non-empty value.
7755	// This may be used to include null fields in Patch requests.
7756	NullFields []string `json:"-"`
7757}
7758
7759func (s *DiskAggregatedList) MarshalJSON() ([]byte, error) {
7760	type NoMethod DiskAggregatedList
7761	raw := NoMethod(*s)
7762	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7763}
7764
7765// DiskAggregatedListWarning: [Output Only] Informational warning
7766// message.
7767type DiskAggregatedListWarning struct {
7768	// Code: [Output Only] A warning code, if applicable. For example,
7769	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7770	// the response.
7771	//
7772	// Possible values:
7773	//   "CLEANUP_FAILED"
7774	//   "DEPRECATED_RESOURCE_USED"
7775	//   "DEPRECATED_TYPE_USED"
7776	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7777	//   "EXPERIMENTAL_TYPE_USED"
7778	//   "EXTERNAL_API_WARNING"
7779	//   "FIELD_VALUE_OVERRIDEN"
7780	//   "INJECTED_KERNELS_DEPRECATED"
7781	//   "MISSING_TYPE_DEPENDENCY"
7782	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7783	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7784	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7785	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7786	//   "NEXT_HOP_NOT_RUNNING"
7787	//   "NOT_CRITICAL_ERROR"
7788	//   "NO_RESULTS_ON_PAGE"
7789	//   "REQUIRED_TOS_AGREEMENT"
7790	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7791	//   "RESOURCE_NOT_DELETED"
7792	//   "SCHEMA_VALIDATION_IGNORED"
7793	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7794	//   "UNDECLARED_PROPERTIES"
7795	//   "UNREACHABLE"
7796	Code string `json:"code,omitempty"`
7797
7798	// Data: [Output Only] Metadata about this warning in key: value format.
7799	// For example:
7800	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7801	Data []*DiskAggregatedListWarningData `json:"data,omitempty"`
7802
7803	// Message: [Output Only] A human-readable description of the warning
7804	// code.
7805	Message string `json:"message,omitempty"`
7806
7807	// ForceSendFields is a list of field names (e.g. "Code") to
7808	// unconditionally include in API requests. By default, fields with
7809	// empty values are omitted from API requests. However, any non-pointer,
7810	// non-interface field appearing in ForceSendFields will be sent to the
7811	// server regardless of whether the field is empty or not. This may be
7812	// used to include empty fields in Patch requests.
7813	ForceSendFields []string `json:"-"`
7814
7815	// NullFields is a list of field names (e.g. "Code") to include in API
7816	// requests with the JSON null value. By default, fields with empty
7817	// values are omitted from API requests. However, any field with an
7818	// empty value appearing in NullFields will be sent to the server as
7819	// null. It is an error if a field in this list has a non-empty value.
7820	// This may be used to include null fields in Patch requests.
7821	NullFields []string `json:"-"`
7822}
7823
7824func (s *DiskAggregatedListWarning) MarshalJSON() ([]byte, error) {
7825	type NoMethod DiskAggregatedListWarning
7826	raw := NoMethod(*s)
7827	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7828}
7829
7830type DiskAggregatedListWarningData struct {
7831	// Key: [Output Only] A key that provides more detail on the warning
7832	// being returned. For example, for warnings where there are no results
7833	// in a list request for a particular zone, this key might be scope and
7834	// the key value might be the zone name. Other examples might be a key
7835	// indicating a deprecated resource and a suggested replacement, or a
7836	// warning about invalid network settings (for example, if an instance
7837	// attempts to perform IP forwarding but is not enabled for IP
7838	// forwarding).
7839	Key string `json:"key,omitempty"`
7840
7841	// Value: [Output Only] A warning data value corresponding to the key.
7842	Value string `json:"value,omitempty"`
7843
7844	// ForceSendFields is a list of field names (e.g. "Key") to
7845	// unconditionally include in API requests. By default, fields with
7846	// empty values are omitted from API requests. However, any non-pointer,
7847	// non-interface field appearing in ForceSendFields will be sent to the
7848	// server regardless of whether the field is empty or not. This may be
7849	// used to include empty fields in Patch requests.
7850	ForceSendFields []string `json:"-"`
7851
7852	// NullFields is a list of field names (e.g. "Key") to include in API
7853	// requests with the JSON null value. By default, fields with empty
7854	// values are omitted from API requests. However, any field with an
7855	// empty value appearing in NullFields will be sent to the server as
7856	// null. It is an error if a field in this list has a non-empty value.
7857	// This may be used to include null fields in Patch requests.
7858	NullFields []string `json:"-"`
7859}
7860
7861func (s *DiskAggregatedListWarningData) MarshalJSON() ([]byte, error) {
7862	type NoMethod DiskAggregatedListWarningData
7863	raw := NoMethod(*s)
7864	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7865}
7866
7867// DiskInstantiationConfig: A specification of the desired way to
7868// instantiate a disk in the instance template when its created from a
7869// source instance.
7870type DiskInstantiationConfig struct {
7871	// AutoDelete: Specifies whether the disk will be auto-deleted when the
7872	// instance is deleted (but not when the disk is detached from the
7873	// instance).
7874	AutoDelete bool `json:"autoDelete,omitempty"`
7875
7876	// CustomImage: The custom source image to be used to restore this disk
7877	// when instantiating this instance template.
7878	CustomImage string `json:"customImage,omitempty"`
7879
7880	// DeviceName: Specifies the device name of the disk to which the
7881	// configurations apply to.
7882	DeviceName string `json:"deviceName,omitempty"`
7883
7884	// InstantiateFrom: Specifies whether to include the disk and what image
7885	// to use. Possible values are:
7886	// - source-image: to use the same image that was used to create the
7887	// source instance's corresponding disk. Applicable to the boot disk and
7888	// additional read-write disks.
7889	// - source-image-family: to use the same image family that was used to
7890	// create the source instance's corresponding disk. Applicable to the
7891	// boot disk and additional read-write disks.
7892	// - custom-image: to use a user-provided image url for disk creation.
7893	// Applicable to the boot disk and additional read-write disks.
7894	// - attach-read-only: to attach a read-only disk. Applicable to
7895	// read-only disks.
7896	// - do-not-include: to exclude a disk from the template. Applicable to
7897	// additional read-write disks, local SSDs, and read-only disks.
7898	//
7899	// Possible values:
7900	//   "ATTACH_READ_ONLY"
7901	//   "BLANK"
7902	//   "CUSTOM_IMAGE"
7903	//   "DEFAULT"
7904	//   "DO_NOT_INCLUDE"
7905	//   "SOURCE_IMAGE"
7906	//   "SOURCE_IMAGE_FAMILY"
7907	InstantiateFrom string `json:"instantiateFrom,omitempty"`
7908
7909	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
7910	// unconditionally include in API requests. By default, fields with
7911	// empty values are omitted from API requests. However, any non-pointer,
7912	// non-interface field appearing in ForceSendFields will be sent to the
7913	// server regardless of whether the field is empty or not. This may be
7914	// used to include empty fields in Patch requests.
7915	ForceSendFields []string `json:"-"`
7916
7917	// NullFields is a list of field names (e.g. "AutoDelete") to include in
7918	// API requests with the JSON null value. By default, fields with empty
7919	// values are omitted from API requests. However, any field with an
7920	// empty value appearing in NullFields will be sent to the server as
7921	// null. It is an error if a field in this list has a non-empty value.
7922	// This may be used to include null fields in Patch requests.
7923	NullFields []string `json:"-"`
7924}
7925
7926func (s *DiskInstantiationConfig) MarshalJSON() ([]byte, error) {
7927	type NoMethod DiskInstantiationConfig
7928	raw := NoMethod(*s)
7929	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7930}
7931
7932// DiskList: A list of Disk resources.
7933type DiskList struct {
7934	// Id: [Output Only] Unique identifier for the resource; defined by the
7935	// server.
7936	Id string `json:"id,omitempty"`
7937
7938	// Items: A list of Disk resources.
7939	Items []*Disk `json:"items,omitempty"`
7940
7941	// Kind: [Output Only] Type of resource. Always compute#diskList for
7942	// lists of disks.
7943	Kind string `json:"kind,omitempty"`
7944
7945	// NextPageToken: [Output Only] This token allows you to get the next
7946	// page of results for list requests. If the number of results is larger
7947	// than maxResults, use the nextPageToken as a value for the query
7948	// parameter pageToken in the next list request. Subsequent list
7949	// requests will have their own nextPageToken to continue paging through
7950	// the results.
7951	NextPageToken string `json:"nextPageToken,omitempty"`
7952
7953	// SelfLink: [Output Only] Server-defined URL for this resource.
7954	SelfLink string `json:"selfLink,omitempty"`
7955
7956	// Warning: [Output Only] Informational warning message.
7957	Warning *DiskListWarning `json:"warning,omitempty"`
7958
7959	// ServerResponse contains the HTTP response code and headers from the
7960	// server.
7961	googleapi.ServerResponse `json:"-"`
7962
7963	// ForceSendFields is a list of field names (e.g. "Id") to
7964	// unconditionally include in API requests. By default, fields with
7965	// empty values are omitted from API requests. However, any non-pointer,
7966	// non-interface field appearing in ForceSendFields will be sent to the
7967	// server regardless of whether the field is empty or not. This may be
7968	// used to include empty fields in Patch requests.
7969	ForceSendFields []string `json:"-"`
7970
7971	// NullFields is a list of field names (e.g. "Id") to include in API
7972	// requests with the JSON null value. By default, fields with empty
7973	// values are omitted from API requests. However, any field with an
7974	// empty value appearing in NullFields will be sent to the server as
7975	// null. It is an error if a field in this list has a non-empty value.
7976	// This may be used to include null fields in Patch requests.
7977	NullFields []string `json:"-"`
7978}
7979
7980func (s *DiskList) MarshalJSON() ([]byte, error) {
7981	type NoMethod DiskList
7982	raw := NoMethod(*s)
7983	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7984}
7985
7986// DiskListWarning: [Output Only] Informational warning message.
7987type DiskListWarning struct {
7988	// Code: [Output Only] A warning code, if applicable. For example,
7989	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7990	// the response.
7991	//
7992	// Possible values:
7993	//   "CLEANUP_FAILED"
7994	//   "DEPRECATED_RESOURCE_USED"
7995	//   "DEPRECATED_TYPE_USED"
7996	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7997	//   "EXPERIMENTAL_TYPE_USED"
7998	//   "EXTERNAL_API_WARNING"
7999	//   "FIELD_VALUE_OVERRIDEN"
8000	//   "INJECTED_KERNELS_DEPRECATED"
8001	//   "MISSING_TYPE_DEPENDENCY"
8002	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8003	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8004	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8005	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8006	//   "NEXT_HOP_NOT_RUNNING"
8007	//   "NOT_CRITICAL_ERROR"
8008	//   "NO_RESULTS_ON_PAGE"
8009	//   "REQUIRED_TOS_AGREEMENT"
8010	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8011	//   "RESOURCE_NOT_DELETED"
8012	//   "SCHEMA_VALIDATION_IGNORED"
8013	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8014	//   "UNDECLARED_PROPERTIES"
8015	//   "UNREACHABLE"
8016	Code string `json:"code,omitempty"`
8017
8018	// Data: [Output Only] Metadata about this warning in key: value format.
8019	// For example:
8020	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8021	Data []*DiskListWarningData `json:"data,omitempty"`
8022
8023	// Message: [Output Only] A human-readable description of the warning
8024	// code.
8025	Message string `json:"message,omitempty"`
8026
8027	// ForceSendFields is a list of field names (e.g. "Code") to
8028	// unconditionally include in API requests. By default, fields with
8029	// empty values are omitted from API requests. However, any non-pointer,
8030	// non-interface field appearing in ForceSendFields will be sent to the
8031	// server regardless of whether the field is empty or not. This may be
8032	// used to include empty fields in Patch requests.
8033	ForceSendFields []string `json:"-"`
8034
8035	// NullFields is a list of field names (e.g. "Code") to include in API
8036	// requests with the JSON null value. By default, fields with empty
8037	// values are omitted from API requests. However, any field with an
8038	// empty value appearing in NullFields will be sent to the server as
8039	// null. It is an error if a field in this list has a non-empty value.
8040	// This may be used to include null fields in Patch requests.
8041	NullFields []string `json:"-"`
8042}
8043
8044func (s *DiskListWarning) MarshalJSON() ([]byte, error) {
8045	type NoMethod DiskListWarning
8046	raw := NoMethod(*s)
8047	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8048}
8049
8050type DiskListWarningData struct {
8051	// Key: [Output Only] A key that provides more detail on the warning
8052	// being returned. For example, for warnings where there are no results
8053	// in a list request for a particular zone, this key might be scope and
8054	// the key value might be the zone name. Other examples might be a key
8055	// indicating a deprecated resource and a suggested replacement, or a
8056	// warning about invalid network settings (for example, if an instance
8057	// attempts to perform IP forwarding but is not enabled for IP
8058	// forwarding).
8059	Key string `json:"key,omitempty"`
8060
8061	// Value: [Output Only] A warning data value corresponding to the key.
8062	Value string `json:"value,omitempty"`
8063
8064	// ForceSendFields is a list of field names (e.g. "Key") to
8065	// unconditionally include in API requests. By default, fields with
8066	// empty values are omitted from API requests. However, any non-pointer,
8067	// non-interface field appearing in ForceSendFields will be sent to the
8068	// server regardless of whether the field is empty or not. This may be
8069	// used to include empty fields in Patch requests.
8070	ForceSendFields []string `json:"-"`
8071
8072	// NullFields is a list of field names (e.g. "Key") to include in API
8073	// requests with the JSON null value. By default, fields with empty
8074	// values are omitted from API requests. However, any field with an
8075	// empty value appearing in NullFields will be sent to the server as
8076	// null. It is an error if a field in this list has a non-empty value.
8077	// This may be used to include null fields in Patch requests.
8078	NullFields []string `json:"-"`
8079}
8080
8081func (s *DiskListWarningData) MarshalJSON() ([]byte, error) {
8082	type NoMethod DiskListWarningData
8083	raw := NoMethod(*s)
8084	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8085}
8086
8087type DiskMoveRequest struct {
8088	// DestinationZone: The URL of the destination zone to move the disk.
8089	// This can be a full or partial URL. For example, the following are all
8090	// valid URLs to a zone:
8091	// - https://www.googleapis.com/compute/v1/projects/project/zones/zone
8092	//
8093	// - projects/project/zones/zone
8094	// - zones/zone
8095	DestinationZone string `json:"destinationZone,omitempty"`
8096
8097	// TargetDisk: The URL of the target disk to move. This can be a full or
8098	// partial URL. For example, the following are all valid URLs to a disk:
8099	//
8100	// -
8101	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
8102	// - projects/project/zones/zone/disks/disk
8103	// - zones/zone/disks/disk
8104	TargetDisk string `json:"targetDisk,omitempty"`
8105
8106	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
8107	// unconditionally include in API requests. By default, fields with
8108	// empty values are omitted from API requests. However, any non-pointer,
8109	// non-interface field appearing in ForceSendFields will be sent to the
8110	// server regardless of whether the field is empty or not. This may be
8111	// used to include empty fields in Patch requests.
8112	ForceSendFields []string `json:"-"`
8113
8114	// NullFields is a list of field names (e.g. "DestinationZone") to
8115	// include in API requests with the JSON null value. By default, fields
8116	// with empty values are omitted from API requests. However, any field
8117	// with an empty value appearing in NullFields will be sent to the
8118	// server as null. It is an error if a field in this list has a
8119	// non-empty value. This may be used to include null fields in Patch
8120	// requests.
8121	NullFields []string `json:"-"`
8122}
8123
8124func (s *DiskMoveRequest) MarshalJSON() ([]byte, error) {
8125	type NoMethod DiskMoveRequest
8126	raw := NoMethod(*s)
8127	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8128}
8129
8130// DiskType: Represents a Disk Type resource.
8131//
8132// Google Compute Engine has two Disk Type resources:
8133//
8134// * [Global](/compute/docs/reference/rest/latest/diskTypes) *
8135// [Regional](/compute/docs/reference/rest/latest/regionDiskTypes)
8136//
8137// You can choose from a variety of disk types based on your needs. For
8138// more information, read Storage options.
8139//
8140// The diskTypes resource represents disk types for a zonal persistent
8141// disk. For more information, read Zonal persistent disks.
8142//
8143// The regionDiskTypes resource represents disk types for a regional
8144// persistent disk. For more information, read Regional persistent
8145// disks. (== resource_for {$api_version}.diskTypes ==) (== resource_for
8146// {$api_version}.regionDiskTypes ==)
8147type DiskType struct {
8148	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
8149	// format.
8150	CreationTimestamp string `json:"creationTimestamp,omitempty"`
8151
8152	// DefaultDiskSizeGb: [Output Only] Server-defined default disk size in
8153	// GB.
8154	DefaultDiskSizeGb int64 `json:"defaultDiskSizeGb,omitempty,string"`
8155
8156	// Deprecated: [Output Only] The deprecation status associated with this
8157	// disk type.
8158	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
8159
8160	// Description: [Output Only] An optional description of this resource.
8161	Description string `json:"description,omitempty"`
8162
8163	// Id: [Output Only] The unique identifier for the resource. This
8164	// identifier is defined by the server.
8165	Id uint64 `json:"id,omitempty,string"`
8166
8167	// Kind: [Output Only] Type of the resource. Always compute#diskType for
8168	// disk types.
8169	Kind string `json:"kind,omitempty"`
8170
8171	// Name: [Output Only] Name of the resource.
8172	Name string `json:"name,omitempty"`
8173
8174	// Region: [Output Only] URL of the region where the disk type resides.
8175	// Only applicable for regional resources. You must specify this field
8176	// as part of the HTTP request URL. It is not settable as a field in the
8177	// request body.
8178	Region string `json:"region,omitempty"`
8179
8180	// SelfLink: [Output Only] Server-defined URL for the resource.
8181	SelfLink string `json:"selfLink,omitempty"`
8182
8183	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
8184	// with the resource id.
8185	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
8186
8187	// ValidDiskSize: [Output Only] An optional textual description of the
8188	// valid disk size, such as "10GB-10TB".
8189	ValidDiskSize string `json:"validDiskSize,omitempty"`
8190
8191	// Zone: [Output Only] URL of the zone where the disk type resides. You
8192	// must specify this field as part of the HTTP request URL. It is not
8193	// settable as a field in the request body.
8194	Zone string `json:"zone,omitempty"`
8195
8196	// ServerResponse contains the HTTP response code and headers from the
8197	// server.
8198	googleapi.ServerResponse `json:"-"`
8199
8200	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
8201	// to unconditionally include in API requests. By default, fields with
8202	// empty values are omitted from API requests. However, any non-pointer,
8203	// non-interface field appearing in ForceSendFields will be sent to the
8204	// server regardless of whether the field is empty or not. This may be
8205	// used to include empty fields in Patch requests.
8206	ForceSendFields []string `json:"-"`
8207
8208	// NullFields is a list of field names (e.g. "CreationTimestamp") to
8209	// include in API requests with the JSON null value. By default, fields
8210	// with empty values are omitted from API requests. However, any field
8211	// with an empty value appearing in NullFields will be sent to the
8212	// server as null. It is an error if a field in this list has a
8213	// non-empty value. This may be used to include null fields in Patch
8214	// requests.
8215	NullFields []string `json:"-"`
8216}
8217
8218func (s *DiskType) MarshalJSON() ([]byte, error) {
8219	type NoMethod DiskType
8220	raw := NoMethod(*s)
8221	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8222}
8223
8224type DiskTypeAggregatedList struct {
8225	// Id: [Output Only] Unique identifier for the resource; defined by the
8226	// server.
8227	Id string `json:"id,omitempty"`
8228
8229	// Items: A list of DiskTypesScopedList resources.
8230	Items map[string]DiskTypesScopedList `json:"items,omitempty"`
8231
8232	// Kind: [Output Only] Type of resource. Always
8233	// compute#diskTypeAggregatedList.
8234	Kind string `json:"kind,omitempty"`
8235
8236	// NextPageToken: [Output Only] This token allows you to get the next
8237	// page of results for list requests. If the number of results is larger
8238	// than maxResults, use the nextPageToken as a value for the query
8239	// parameter pageToken in the next list request. Subsequent list
8240	// requests will have their own nextPageToken to continue paging through
8241	// the results.
8242	NextPageToken string `json:"nextPageToken,omitempty"`
8243
8244	// SelfLink: [Output Only] Server-defined URL for this resource.
8245	SelfLink string `json:"selfLink,omitempty"`
8246
8247	// Warning: [Output Only] Informational warning message.
8248	Warning *DiskTypeAggregatedListWarning `json:"warning,omitempty"`
8249
8250	// ServerResponse contains the HTTP response code and headers from the
8251	// server.
8252	googleapi.ServerResponse `json:"-"`
8253
8254	// ForceSendFields is a list of field names (e.g. "Id") to
8255	// unconditionally include in API requests. By default, fields with
8256	// empty values are omitted from API requests. However, any non-pointer,
8257	// non-interface field appearing in ForceSendFields will be sent to the
8258	// server regardless of whether the field is empty or not. This may be
8259	// used to include empty fields in Patch requests.
8260	ForceSendFields []string `json:"-"`
8261
8262	// NullFields is a list of field names (e.g. "Id") to include in API
8263	// requests with the JSON null value. By default, fields with empty
8264	// values are omitted from API requests. However, any field with an
8265	// empty value appearing in NullFields will be sent to the server as
8266	// null. It is an error if a field in this list has a non-empty value.
8267	// This may be used to include null fields in Patch requests.
8268	NullFields []string `json:"-"`
8269}
8270
8271func (s *DiskTypeAggregatedList) MarshalJSON() ([]byte, error) {
8272	type NoMethod DiskTypeAggregatedList
8273	raw := NoMethod(*s)
8274	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8275}
8276
8277// DiskTypeAggregatedListWarning: [Output Only] Informational warning
8278// message.
8279type DiskTypeAggregatedListWarning struct {
8280	// Code: [Output Only] A warning code, if applicable. For example,
8281	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8282	// the response.
8283	//
8284	// Possible values:
8285	//   "CLEANUP_FAILED"
8286	//   "DEPRECATED_RESOURCE_USED"
8287	//   "DEPRECATED_TYPE_USED"
8288	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8289	//   "EXPERIMENTAL_TYPE_USED"
8290	//   "EXTERNAL_API_WARNING"
8291	//   "FIELD_VALUE_OVERRIDEN"
8292	//   "INJECTED_KERNELS_DEPRECATED"
8293	//   "MISSING_TYPE_DEPENDENCY"
8294	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8295	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8296	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8297	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8298	//   "NEXT_HOP_NOT_RUNNING"
8299	//   "NOT_CRITICAL_ERROR"
8300	//   "NO_RESULTS_ON_PAGE"
8301	//   "REQUIRED_TOS_AGREEMENT"
8302	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8303	//   "RESOURCE_NOT_DELETED"
8304	//   "SCHEMA_VALIDATION_IGNORED"
8305	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8306	//   "UNDECLARED_PROPERTIES"
8307	//   "UNREACHABLE"
8308	Code string `json:"code,omitempty"`
8309
8310	// Data: [Output Only] Metadata about this warning in key: value format.
8311	// For example:
8312	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8313	Data []*DiskTypeAggregatedListWarningData `json:"data,omitempty"`
8314
8315	// Message: [Output Only] A human-readable description of the warning
8316	// code.
8317	Message string `json:"message,omitempty"`
8318
8319	// ForceSendFields is a list of field names (e.g. "Code") to
8320	// unconditionally include in API requests. By default, fields with
8321	// empty values are omitted from API requests. However, any non-pointer,
8322	// non-interface field appearing in ForceSendFields will be sent to the
8323	// server regardless of whether the field is empty or not. This may be
8324	// used to include empty fields in Patch requests.
8325	ForceSendFields []string `json:"-"`
8326
8327	// NullFields is a list of field names (e.g. "Code") to include in API
8328	// requests with the JSON null value. By default, fields with empty
8329	// values are omitted from API requests. However, any field with an
8330	// empty value appearing in NullFields will be sent to the server as
8331	// null. It is an error if a field in this list has a non-empty value.
8332	// This may be used to include null fields in Patch requests.
8333	NullFields []string `json:"-"`
8334}
8335
8336func (s *DiskTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
8337	type NoMethod DiskTypeAggregatedListWarning
8338	raw := NoMethod(*s)
8339	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8340}
8341
8342type DiskTypeAggregatedListWarningData struct {
8343	// Key: [Output Only] A key that provides more detail on the warning
8344	// being returned. For example, for warnings where there are no results
8345	// in a list request for a particular zone, this key might be scope and
8346	// the key value might be the zone name. Other examples might be a key
8347	// indicating a deprecated resource and a suggested replacement, or a
8348	// warning about invalid network settings (for example, if an instance
8349	// attempts to perform IP forwarding but is not enabled for IP
8350	// forwarding).
8351	Key string `json:"key,omitempty"`
8352
8353	// Value: [Output Only] A warning data value corresponding to the key.
8354	Value string `json:"value,omitempty"`
8355
8356	// ForceSendFields is a list of field names (e.g. "Key") to
8357	// unconditionally include in API requests. By default, fields with
8358	// empty values are omitted from API requests. However, any non-pointer,
8359	// non-interface field appearing in ForceSendFields will be sent to the
8360	// server regardless of whether the field is empty or not. This may be
8361	// used to include empty fields in Patch requests.
8362	ForceSendFields []string `json:"-"`
8363
8364	// NullFields is a list of field names (e.g. "Key") to include in API
8365	// requests with the JSON null value. By default, fields with empty
8366	// values are omitted from API requests. However, any field with an
8367	// empty value appearing in NullFields will be sent to the server as
8368	// null. It is an error if a field in this list has a non-empty value.
8369	// This may be used to include null fields in Patch requests.
8370	NullFields []string `json:"-"`
8371}
8372
8373func (s *DiskTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
8374	type NoMethod DiskTypeAggregatedListWarningData
8375	raw := NoMethod(*s)
8376	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8377}
8378
8379// DiskTypeList: Contains a list of disk types.
8380type DiskTypeList struct {
8381	// Id: [Output Only] Unique identifier for the resource; defined by the
8382	// server.
8383	Id string `json:"id,omitempty"`
8384
8385	// Items: A list of DiskType resources.
8386	Items []*DiskType `json:"items,omitempty"`
8387
8388	// Kind: [Output Only] Type of resource. Always compute#diskTypeList for
8389	// disk types.
8390	Kind string `json:"kind,omitempty"`
8391
8392	// NextPageToken: [Output Only] This token allows you to get the next
8393	// page of results for list requests. If the number of results is larger
8394	// than maxResults, use the nextPageToken as a value for the query
8395	// parameter pageToken in the next list request. Subsequent list
8396	// requests will have their own nextPageToken to continue paging through
8397	// the results.
8398	NextPageToken string `json:"nextPageToken,omitempty"`
8399
8400	// SelfLink: [Output Only] Server-defined URL for this resource.
8401	SelfLink string `json:"selfLink,omitempty"`
8402
8403	// Warning: [Output Only] Informational warning message.
8404	Warning *DiskTypeListWarning `json:"warning,omitempty"`
8405
8406	// ServerResponse contains the HTTP response code and headers from the
8407	// server.
8408	googleapi.ServerResponse `json:"-"`
8409
8410	// ForceSendFields is a list of field names (e.g. "Id") to
8411	// unconditionally include in API requests. By default, fields with
8412	// empty values are omitted from API requests. However, any non-pointer,
8413	// non-interface field appearing in ForceSendFields will be sent to the
8414	// server regardless of whether the field is empty or not. This may be
8415	// used to include empty fields in Patch requests.
8416	ForceSendFields []string `json:"-"`
8417
8418	// NullFields is a list of field names (e.g. "Id") to include in API
8419	// requests with the JSON null value. By default, fields with empty
8420	// values are omitted from API requests. However, any field with an
8421	// empty value appearing in NullFields will be sent to the server as
8422	// null. It is an error if a field in this list has a non-empty value.
8423	// This may be used to include null fields in Patch requests.
8424	NullFields []string `json:"-"`
8425}
8426
8427func (s *DiskTypeList) MarshalJSON() ([]byte, error) {
8428	type NoMethod DiskTypeList
8429	raw := NoMethod(*s)
8430	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8431}
8432
8433// DiskTypeListWarning: [Output Only] Informational warning message.
8434type DiskTypeListWarning struct {
8435	// Code: [Output Only] A warning code, if applicable. For example,
8436	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8437	// the response.
8438	//
8439	// Possible values:
8440	//   "CLEANUP_FAILED"
8441	//   "DEPRECATED_RESOURCE_USED"
8442	//   "DEPRECATED_TYPE_USED"
8443	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8444	//   "EXPERIMENTAL_TYPE_USED"
8445	//   "EXTERNAL_API_WARNING"
8446	//   "FIELD_VALUE_OVERRIDEN"
8447	//   "INJECTED_KERNELS_DEPRECATED"
8448	//   "MISSING_TYPE_DEPENDENCY"
8449	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8450	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8451	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8452	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8453	//   "NEXT_HOP_NOT_RUNNING"
8454	//   "NOT_CRITICAL_ERROR"
8455	//   "NO_RESULTS_ON_PAGE"
8456	//   "REQUIRED_TOS_AGREEMENT"
8457	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8458	//   "RESOURCE_NOT_DELETED"
8459	//   "SCHEMA_VALIDATION_IGNORED"
8460	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8461	//   "UNDECLARED_PROPERTIES"
8462	//   "UNREACHABLE"
8463	Code string `json:"code,omitempty"`
8464
8465	// Data: [Output Only] Metadata about this warning in key: value format.
8466	// For example:
8467	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8468	Data []*DiskTypeListWarningData `json:"data,omitempty"`
8469
8470	// Message: [Output Only] A human-readable description of the warning
8471	// code.
8472	Message string `json:"message,omitempty"`
8473
8474	// ForceSendFields is a list of field names (e.g. "Code") to
8475	// unconditionally include in API requests. By default, fields with
8476	// empty values are omitted from API requests. However, any non-pointer,
8477	// non-interface field appearing in ForceSendFields will be sent to the
8478	// server regardless of whether the field is empty or not. This may be
8479	// used to include empty fields in Patch requests.
8480	ForceSendFields []string `json:"-"`
8481
8482	// NullFields is a list of field names (e.g. "Code") to include in API
8483	// requests with the JSON null value. By default, fields with empty
8484	// values are omitted from API requests. However, any field with an
8485	// empty value appearing in NullFields will be sent to the server as
8486	// null. It is an error if a field in this list has a non-empty value.
8487	// This may be used to include null fields in Patch requests.
8488	NullFields []string `json:"-"`
8489}
8490
8491func (s *DiskTypeListWarning) MarshalJSON() ([]byte, error) {
8492	type NoMethod DiskTypeListWarning
8493	raw := NoMethod(*s)
8494	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8495}
8496
8497type DiskTypeListWarningData struct {
8498	// Key: [Output Only] A key that provides more detail on the warning
8499	// being returned. For example, for warnings where there are no results
8500	// in a list request for a particular zone, this key might be scope and
8501	// the key value might be the zone name. Other examples might be a key
8502	// indicating a deprecated resource and a suggested replacement, or a
8503	// warning about invalid network settings (for example, if an instance
8504	// attempts to perform IP forwarding but is not enabled for IP
8505	// forwarding).
8506	Key string `json:"key,omitempty"`
8507
8508	// Value: [Output Only] A warning data value corresponding to the key.
8509	Value string `json:"value,omitempty"`
8510
8511	// ForceSendFields is a list of field names (e.g. "Key") to
8512	// unconditionally include in API requests. By default, fields with
8513	// empty values are omitted from API requests. However, any non-pointer,
8514	// non-interface field appearing in ForceSendFields will be sent to the
8515	// server regardless of whether the field is empty or not. This may be
8516	// used to include empty fields in Patch requests.
8517	ForceSendFields []string `json:"-"`
8518
8519	// NullFields is a list of field names (e.g. "Key") to include in API
8520	// requests with the JSON null value. By default, fields with empty
8521	// values are omitted from API requests. However, any field with an
8522	// empty value appearing in NullFields will be sent to the server as
8523	// null. It is an error if a field in this list has a non-empty value.
8524	// This may be used to include null fields in Patch requests.
8525	NullFields []string `json:"-"`
8526}
8527
8528func (s *DiskTypeListWarningData) MarshalJSON() ([]byte, error) {
8529	type NoMethod DiskTypeListWarningData
8530	raw := NoMethod(*s)
8531	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8532}
8533
8534type DiskTypesScopedList struct {
8535	// DiskTypes: [Output Only] A list of disk types contained in this
8536	// scope.
8537	DiskTypes []*DiskType `json:"diskTypes,omitempty"`
8538
8539	// Warning: [Output Only] Informational warning which replaces the list
8540	// of disk types when the list is empty.
8541	Warning *DiskTypesScopedListWarning `json:"warning,omitempty"`
8542
8543	// ForceSendFields is a list of field names (e.g. "DiskTypes") to
8544	// unconditionally include in API requests. By default, fields with
8545	// empty values are omitted from API requests. However, any non-pointer,
8546	// non-interface field appearing in ForceSendFields will be sent to the
8547	// server regardless of whether the field is empty or not. This may be
8548	// used to include empty fields in Patch requests.
8549	ForceSendFields []string `json:"-"`
8550
8551	// NullFields is a list of field names (e.g. "DiskTypes") to include in
8552	// API requests with the JSON null value. By default, fields with empty
8553	// values are omitted from API requests. However, any field with an
8554	// empty value appearing in NullFields will be sent to the server as
8555	// null. It is an error if a field in this list has a non-empty value.
8556	// This may be used to include null fields in Patch requests.
8557	NullFields []string `json:"-"`
8558}
8559
8560func (s *DiskTypesScopedList) MarshalJSON() ([]byte, error) {
8561	type NoMethod DiskTypesScopedList
8562	raw := NoMethod(*s)
8563	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8564}
8565
8566// DiskTypesScopedListWarning: [Output Only] Informational warning which
8567// replaces the list of disk types when the list is empty.
8568type DiskTypesScopedListWarning struct {
8569	// Code: [Output Only] A warning code, if applicable. For example,
8570	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8571	// the response.
8572	//
8573	// Possible values:
8574	//   "CLEANUP_FAILED"
8575	//   "DEPRECATED_RESOURCE_USED"
8576	//   "DEPRECATED_TYPE_USED"
8577	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8578	//   "EXPERIMENTAL_TYPE_USED"
8579	//   "EXTERNAL_API_WARNING"
8580	//   "FIELD_VALUE_OVERRIDEN"
8581	//   "INJECTED_KERNELS_DEPRECATED"
8582	//   "MISSING_TYPE_DEPENDENCY"
8583	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8584	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8585	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8586	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8587	//   "NEXT_HOP_NOT_RUNNING"
8588	//   "NOT_CRITICAL_ERROR"
8589	//   "NO_RESULTS_ON_PAGE"
8590	//   "REQUIRED_TOS_AGREEMENT"
8591	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8592	//   "RESOURCE_NOT_DELETED"
8593	//   "SCHEMA_VALIDATION_IGNORED"
8594	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8595	//   "UNDECLARED_PROPERTIES"
8596	//   "UNREACHABLE"
8597	Code string `json:"code,omitempty"`
8598
8599	// Data: [Output Only] Metadata about this warning in key: value format.
8600	// For example:
8601	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8602	Data []*DiskTypesScopedListWarningData `json:"data,omitempty"`
8603
8604	// Message: [Output Only] A human-readable description of the warning
8605	// code.
8606	Message string `json:"message,omitempty"`
8607
8608	// ForceSendFields is a list of field names (e.g. "Code") to
8609	// unconditionally include in API requests. By default, fields with
8610	// empty values are omitted from API requests. However, any non-pointer,
8611	// non-interface field appearing in ForceSendFields will be sent to the
8612	// server regardless of whether the field is empty or not. This may be
8613	// used to include empty fields in Patch requests.
8614	ForceSendFields []string `json:"-"`
8615
8616	// NullFields is a list of field names (e.g. "Code") to include in API
8617	// requests with the JSON null value. By default, fields with empty
8618	// values are omitted from API requests. However, any field with an
8619	// empty value appearing in NullFields will be sent to the server as
8620	// null. It is an error if a field in this list has a non-empty value.
8621	// This may be used to include null fields in Patch requests.
8622	NullFields []string `json:"-"`
8623}
8624
8625func (s *DiskTypesScopedListWarning) MarshalJSON() ([]byte, error) {
8626	type NoMethod DiskTypesScopedListWarning
8627	raw := NoMethod(*s)
8628	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8629}
8630
8631type DiskTypesScopedListWarningData struct {
8632	// Key: [Output Only] A key that provides more detail on the warning
8633	// being returned. For example, for warnings where there are no results
8634	// in a list request for a particular zone, this key might be scope and
8635	// the key value might be the zone name. Other examples might be a key
8636	// indicating a deprecated resource and a suggested replacement, or a
8637	// warning about invalid network settings (for example, if an instance
8638	// attempts to perform IP forwarding but is not enabled for IP
8639	// forwarding).
8640	Key string `json:"key,omitempty"`
8641
8642	// Value: [Output Only] A warning data value corresponding to the key.
8643	Value string `json:"value,omitempty"`
8644
8645	// ForceSendFields is a list of field names (e.g. "Key") to
8646	// unconditionally include in API requests. By default, fields with
8647	// empty values are omitted from API requests. However, any non-pointer,
8648	// non-interface field appearing in ForceSendFields will be sent to the
8649	// server regardless of whether the field is empty or not. This may be
8650	// used to include empty fields in Patch requests.
8651	ForceSendFields []string `json:"-"`
8652
8653	// NullFields is a list of field names (e.g. "Key") to include in API
8654	// requests with the JSON null value. By default, fields with empty
8655	// values are omitted from API requests. However, any field with an
8656	// empty value appearing in NullFields will be sent to the server as
8657	// null. It is an error if a field in this list has a non-empty value.
8658	// This may be used to include null fields in Patch requests.
8659	NullFields []string `json:"-"`
8660}
8661
8662func (s *DiskTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
8663	type NoMethod DiskTypesScopedListWarningData
8664	raw := NoMethod(*s)
8665	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8666}
8667
8668type DisksAddResourcePoliciesRequest struct {
8669	// ResourcePolicies: Resource policies to be added to this disk.
8670	// Currently you can only specify one policy here.
8671	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
8672
8673	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
8674	// unconditionally include in API requests. By default, fields with
8675	// empty values are omitted from API requests. However, any non-pointer,
8676	// non-interface field appearing in ForceSendFields will be sent to the
8677	// server regardless of whether the field is empty or not. This may be
8678	// used to include empty fields in Patch requests.
8679	ForceSendFields []string `json:"-"`
8680
8681	// NullFields is a list of field names (e.g. "ResourcePolicies") to
8682	// include in API requests with the JSON null value. By default, fields
8683	// with empty values are omitted from API requests. However, any field
8684	// with an empty value appearing in NullFields will be sent to the
8685	// server as null. It is an error if a field in this list has a
8686	// non-empty value. This may be used to include null fields in Patch
8687	// requests.
8688	NullFields []string `json:"-"`
8689}
8690
8691func (s *DisksAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
8692	type NoMethod DisksAddResourcePoliciesRequest
8693	raw := NoMethod(*s)
8694	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8695}
8696
8697type DisksRemoveResourcePoliciesRequest struct {
8698	// ResourcePolicies: Resource policies to be removed from this disk.
8699	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
8700
8701	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
8702	// unconditionally include in API requests. By default, fields with
8703	// empty values are omitted from API requests. However, any non-pointer,
8704	// non-interface field appearing in ForceSendFields will be sent to the
8705	// server regardless of whether the field is empty or not. This may be
8706	// used to include empty fields in Patch requests.
8707	ForceSendFields []string `json:"-"`
8708
8709	// NullFields is a list of field names (e.g. "ResourcePolicies") to
8710	// include in API requests with the JSON null value. By default, fields
8711	// with empty values are omitted from API requests. However, any field
8712	// with an empty value appearing in NullFields will be sent to the
8713	// server as null. It is an error if a field in this list has a
8714	// non-empty value. This may be used to include null fields in Patch
8715	// requests.
8716	NullFields []string `json:"-"`
8717}
8718
8719func (s *DisksRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
8720	type NoMethod DisksRemoveResourcePoliciesRequest
8721	raw := NoMethod(*s)
8722	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8723}
8724
8725type DisksResizeRequest struct {
8726	// SizeGb: The new size of the persistent disk, which is specified in
8727	// GB.
8728	SizeGb int64 `json:"sizeGb,omitempty,string"`
8729
8730	// ForceSendFields is a list of field names (e.g. "SizeGb") to
8731	// unconditionally include in API requests. By default, fields with
8732	// empty values are omitted from API requests. However, any non-pointer,
8733	// non-interface field appearing in ForceSendFields will be sent to the
8734	// server regardless of whether the field is empty or not. This may be
8735	// used to include empty fields in Patch requests.
8736	ForceSendFields []string `json:"-"`
8737
8738	// NullFields is a list of field names (e.g. "SizeGb") to include in API
8739	// requests with the JSON null value. By default, fields with empty
8740	// values are omitted from API requests. However, any field with an
8741	// empty value appearing in NullFields will be sent to the server as
8742	// null. It is an error if a field in this list has a non-empty value.
8743	// This may be used to include null fields in Patch requests.
8744	NullFields []string `json:"-"`
8745}
8746
8747func (s *DisksResizeRequest) MarshalJSON() ([]byte, error) {
8748	type NoMethod DisksResizeRequest
8749	raw := NoMethod(*s)
8750	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8751}
8752
8753type DisksScopedList struct {
8754	// Disks: [Output Only] A list of disks contained in this scope.
8755	Disks []*Disk `json:"disks,omitempty"`
8756
8757	// Warning: [Output Only] Informational warning which replaces the list
8758	// of disks when the list is empty.
8759	Warning *DisksScopedListWarning `json:"warning,omitempty"`
8760
8761	// ForceSendFields is a list of field names (e.g. "Disks") to
8762	// unconditionally include in API requests. By default, fields with
8763	// empty values are omitted from API requests. However, any non-pointer,
8764	// non-interface field appearing in ForceSendFields will be sent to the
8765	// server regardless of whether the field is empty or not. This may be
8766	// used to include empty fields in Patch requests.
8767	ForceSendFields []string `json:"-"`
8768
8769	// NullFields is a list of field names (e.g. "Disks") to include in API
8770	// requests with the JSON null value. By default, fields with empty
8771	// values are omitted from API requests. However, any field with an
8772	// empty value appearing in NullFields will be sent to the server as
8773	// null. It is an error if a field in this list has a non-empty value.
8774	// This may be used to include null fields in Patch requests.
8775	NullFields []string `json:"-"`
8776}
8777
8778func (s *DisksScopedList) MarshalJSON() ([]byte, error) {
8779	type NoMethod DisksScopedList
8780	raw := NoMethod(*s)
8781	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8782}
8783
8784// DisksScopedListWarning: [Output Only] Informational warning which
8785// replaces the list of disks when the list is empty.
8786type DisksScopedListWarning struct {
8787	// Code: [Output Only] A warning code, if applicable. For example,
8788	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8789	// the response.
8790	//
8791	// Possible values:
8792	//   "CLEANUP_FAILED"
8793	//   "DEPRECATED_RESOURCE_USED"
8794	//   "DEPRECATED_TYPE_USED"
8795	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8796	//   "EXPERIMENTAL_TYPE_USED"
8797	//   "EXTERNAL_API_WARNING"
8798	//   "FIELD_VALUE_OVERRIDEN"
8799	//   "INJECTED_KERNELS_DEPRECATED"
8800	//   "MISSING_TYPE_DEPENDENCY"
8801	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8802	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8803	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8804	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8805	//   "NEXT_HOP_NOT_RUNNING"
8806	//   "NOT_CRITICAL_ERROR"
8807	//   "NO_RESULTS_ON_PAGE"
8808	//   "REQUIRED_TOS_AGREEMENT"
8809	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8810	//   "RESOURCE_NOT_DELETED"
8811	//   "SCHEMA_VALIDATION_IGNORED"
8812	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8813	//   "UNDECLARED_PROPERTIES"
8814	//   "UNREACHABLE"
8815	Code string `json:"code,omitempty"`
8816
8817	// Data: [Output Only] Metadata about this warning in key: value format.
8818	// For example:
8819	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8820	Data []*DisksScopedListWarningData `json:"data,omitempty"`
8821
8822	// Message: [Output Only] A human-readable description of the warning
8823	// code.
8824	Message string `json:"message,omitempty"`
8825
8826	// ForceSendFields is a list of field names (e.g. "Code") to
8827	// unconditionally include in API requests. By default, fields with
8828	// empty values are omitted from API requests. However, any non-pointer,
8829	// non-interface field appearing in ForceSendFields will be sent to the
8830	// server regardless of whether the field is empty or not. This may be
8831	// used to include empty fields in Patch requests.
8832	ForceSendFields []string `json:"-"`
8833
8834	// NullFields is a list of field names (e.g. "Code") to include in API
8835	// requests with the JSON null value. By default, fields with empty
8836	// values are omitted from API requests. However, any field with an
8837	// empty value appearing in NullFields will be sent to the server as
8838	// null. It is an error if a field in this list has a non-empty value.
8839	// This may be used to include null fields in Patch requests.
8840	NullFields []string `json:"-"`
8841}
8842
8843func (s *DisksScopedListWarning) MarshalJSON() ([]byte, error) {
8844	type NoMethod DisksScopedListWarning
8845	raw := NoMethod(*s)
8846	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8847}
8848
8849type DisksScopedListWarningData struct {
8850	// Key: [Output Only] A key that provides more detail on the warning
8851	// being returned. For example, for warnings where there are no results
8852	// in a list request for a particular zone, this key might be scope and
8853	// the key value might be the zone name. Other examples might be a key
8854	// indicating a deprecated resource and a suggested replacement, or a
8855	// warning about invalid network settings (for example, if an instance
8856	// attempts to perform IP forwarding but is not enabled for IP
8857	// forwarding).
8858	Key string `json:"key,omitempty"`
8859
8860	// Value: [Output Only] A warning data value corresponding to the key.
8861	Value string `json:"value,omitempty"`
8862
8863	// ForceSendFields is a list of field names (e.g. "Key") to
8864	// unconditionally include in API requests. By default, fields with
8865	// empty values are omitted from API requests. However, any non-pointer,
8866	// non-interface field appearing in ForceSendFields will be sent to the
8867	// server regardless of whether the field is empty or not. This may be
8868	// used to include empty fields in Patch requests.
8869	ForceSendFields []string `json:"-"`
8870
8871	// NullFields is a list of field names (e.g. "Key") to include in API
8872	// requests with the JSON null value. By default, fields with empty
8873	// values are omitted from API requests. However, any field with an
8874	// empty value appearing in NullFields will be sent to the server as
8875	// null. It is an error if a field in this list has a non-empty value.
8876	// This may be used to include null fields in Patch requests.
8877	NullFields []string `json:"-"`
8878}
8879
8880func (s *DisksScopedListWarningData) MarshalJSON() ([]byte, error) {
8881	type NoMethod DisksScopedListWarningData
8882	raw := NoMethod(*s)
8883	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8884}
8885
8886// DisplayDevice: A set of Display Device options
8887type DisplayDevice struct {
8888	// EnableDisplay: Defines whether the instance has Display enabled.
8889	EnableDisplay bool `json:"enableDisplay,omitempty"`
8890
8891	// ForceSendFields is a list of field names (e.g. "EnableDisplay") to
8892	// unconditionally include in API requests. By default, fields with
8893	// empty values are omitted from API requests. However, any non-pointer,
8894	// non-interface field appearing in ForceSendFields will be sent to the
8895	// server regardless of whether the field is empty or not. This may be
8896	// used to include empty fields in Patch requests.
8897	ForceSendFields []string `json:"-"`
8898
8899	// NullFields is a list of field names (e.g. "EnableDisplay") to include
8900	// in API requests with the JSON null value. By default, fields with
8901	// empty values are omitted from API requests. However, any field with
8902	// an empty value appearing in NullFields will be sent to the server as
8903	// null. It is an error if a field in this list has a non-empty value.
8904	// This may be used to include null fields in Patch requests.
8905	NullFields []string `json:"-"`
8906}
8907
8908func (s *DisplayDevice) MarshalJSON() ([]byte, error) {
8909	type NoMethod DisplayDevice
8910	raw := NoMethod(*s)
8911	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8912}
8913
8914type DistributionPolicy struct {
8915	// TargetShape: The shape to which the group converges either
8916	// proactively or on resize events (depending on the value set in
8917	// updatePolicy.instanceRedistributionType). The possible values are
8918	// EVEN and ANY. For EVEN the group attempts to preserve a balanced
8919	// number of instances across zones. For ANY the group creates new
8920	// instances where resources are available to fulfill the request; as a
8921	// result, instances may be distributed unevenly across zones in this
8922	// mode. The default value is EVEN.
8923	//
8924	// Possible values:
8925	//   "ANY"
8926	//   "EVEN"
8927	TargetShape string `json:"targetShape,omitempty"`
8928
8929	// Zones: Zones where the regional managed instance group will create
8930	// and manage instances.
8931	Zones []*DistributionPolicyZoneConfiguration `json:"zones,omitempty"`
8932
8933	// ForceSendFields is a list of field names (e.g. "TargetShape") to
8934	// unconditionally include in API requests. By default, fields with
8935	// empty values are omitted from API requests. However, any non-pointer,
8936	// non-interface field appearing in ForceSendFields will be sent to the
8937	// server regardless of whether the field is empty or not. This may be
8938	// used to include empty fields in Patch requests.
8939	ForceSendFields []string `json:"-"`
8940
8941	// NullFields is a list of field names (e.g. "TargetShape") to include
8942	// in API requests with the JSON null value. By default, fields with
8943	// empty values are omitted from API requests. However, any field with
8944	// an empty value appearing in NullFields will be sent to the server as
8945	// null. It is an error if a field in this list has a non-empty value.
8946	// This may be used to include null fields in Patch requests.
8947	NullFields []string `json:"-"`
8948}
8949
8950func (s *DistributionPolicy) MarshalJSON() ([]byte, error) {
8951	type NoMethod DistributionPolicy
8952	raw := NoMethod(*s)
8953	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8954}
8955
8956type DistributionPolicyZoneConfiguration struct {
8957	// Zone: The URL of the zone. The zone must exist in the region where
8958	// the managed instance group is located.
8959	Zone string `json:"zone,omitempty"`
8960
8961	// ForceSendFields is a list of field names (e.g. "Zone") to
8962	// unconditionally include in API requests. By default, fields with
8963	// empty values are omitted from API requests. However, any non-pointer,
8964	// non-interface field appearing in ForceSendFields will be sent to the
8965	// server regardless of whether the field is empty or not. This may be
8966	// used to include empty fields in Patch requests.
8967	ForceSendFields []string `json:"-"`
8968
8969	// NullFields is a list of field names (e.g. "Zone") to include in API
8970	// requests with the JSON null value. By default, fields with empty
8971	// values are omitted from API requests. However, any field with an
8972	// empty value appearing in NullFields will be sent to the server as
8973	// null. It is an error if a field in this list has a non-empty value.
8974	// This may be used to include null fields in Patch requests.
8975	NullFields []string `json:"-"`
8976}
8977
8978func (s *DistributionPolicyZoneConfiguration) MarshalJSON() ([]byte, error) {
8979	type NoMethod DistributionPolicyZoneConfiguration
8980	raw := NoMethod(*s)
8981	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8982}
8983
8984// Duration: A Duration represents a fixed-length span of time
8985// represented as a count of seconds and fractions of seconds at
8986// nanosecond resolution. It is independent of any calendar and concepts
8987// like "day" or "month". Range is approximately 10,000 years.
8988type Duration struct {
8989	// Nanos: Span of time that's a fraction of a second at nanosecond
8990	// resolution. Durations less than one second are represented with a 0
8991	// `seconds` field and a positive `nanos` field. Must be from 0 to
8992	// 999,999,999 inclusive.
8993	Nanos int64 `json:"nanos,omitempty"`
8994
8995	// Seconds: Span of time at a resolution of a second. Must be from 0 to
8996	// 315,576,000,000 inclusive. Note: these bounds are computed from: 60
8997	// sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
8998	Seconds int64 `json:"seconds,omitempty,string"`
8999
9000	// ForceSendFields is a list of field names (e.g. "Nanos") to
9001	// unconditionally include in API requests. By default, fields with
9002	// empty values are omitted from API requests. However, any non-pointer,
9003	// non-interface field appearing in ForceSendFields will be sent to the
9004	// server regardless of whether the field is empty or not. This may be
9005	// used to include empty fields in Patch requests.
9006	ForceSendFields []string `json:"-"`
9007
9008	// NullFields is a list of field names (e.g. "Nanos") to include in API
9009	// requests with the JSON null value. By default, fields with empty
9010	// values are omitted from API requests. However, any field with an
9011	// empty value appearing in NullFields will be sent to the server as
9012	// null. It is an error if a field in this list has a non-empty value.
9013	// This may be used to include null fields in Patch requests.
9014	NullFields []string `json:"-"`
9015}
9016
9017func (s *Duration) MarshalJSON() ([]byte, error) {
9018	type NoMethod Duration
9019	raw := NoMethod(*s)
9020	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9021}
9022
9023type ExchangedPeeringRoute struct {
9024	// DestRange: The destination range of the route.
9025	DestRange string `json:"destRange,omitempty"`
9026
9027	// Imported: True if the peering route has been imported from a peer.
9028	// The actual import happens if the field
9029	// networkPeering.importCustomRoutes is true for this network, and
9030	// networkPeering.exportCustomRoutes is true for the peer network, and
9031	// the import does not result in a route conflict.
9032	Imported bool `json:"imported,omitempty"`
9033
9034	// NextHopRegion: The region of peering route next hop, only applies to
9035	// dynamic routes.
9036	NextHopRegion string `json:"nextHopRegion,omitempty"`
9037
9038	// Priority: The priority of the peering route.
9039	Priority int64 `json:"priority,omitempty"`
9040
9041	// Type: The type of the peering route.
9042	//
9043	// Possible values:
9044	//   "DYNAMIC_PEERING_ROUTE"
9045	//   "STATIC_PEERING_ROUTE"
9046	//   "SUBNET_PEERING_ROUTE"
9047	Type string `json:"type,omitempty"`
9048
9049	// ForceSendFields is a list of field names (e.g. "DestRange") to
9050	// unconditionally include in API requests. By default, fields with
9051	// empty values are omitted from API requests. However, any non-pointer,
9052	// non-interface field appearing in ForceSendFields will be sent to the
9053	// server regardless of whether the field is empty or not. This may be
9054	// used to include empty fields in Patch requests.
9055	ForceSendFields []string `json:"-"`
9056
9057	// NullFields is a list of field names (e.g. "DestRange") to include in
9058	// API requests with the JSON null value. By default, fields with empty
9059	// values are omitted from API requests. However, any field with an
9060	// empty value appearing in NullFields will be sent to the server as
9061	// null. It is an error if a field in this list has a non-empty value.
9062	// This may be used to include null fields in Patch requests.
9063	NullFields []string `json:"-"`
9064}
9065
9066func (s *ExchangedPeeringRoute) MarshalJSON() ([]byte, error) {
9067	type NoMethod ExchangedPeeringRoute
9068	raw := NoMethod(*s)
9069	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9070}
9071
9072type ExchangedPeeringRoutesList struct {
9073	// Id: [Output Only] Unique identifier for the resource; defined by the
9074	// server.
9075	Id string `json:"id,omitempty"`
9076
9077	// Items: A list of ExchangedPeeringRoute resources.
9078	Items []*ExchangedPeeringRoute `json:"items,omitempty"`
9079
9080	// Kind: [Output Only] Type of resource. Always
9081	// compute#exchangedPeeringRoutesList for exchanged peering routes
9082	// lists.
9083	Kind string `json:"kind,omitempty"`
9084
9085	// NextPageToken: [Output Only] This token allows you to get the next
9086	// page of results for list requests. If the number of results is larger
9087	// than maxResults, use the nextPageToken as a value for the query
9088	// parameter pageToken in the next list request. Subsequent list
9089	// requests will have their own nextPageToken to continue paging through
9090	// the results.
9091	NextPageToken string `json:"nextPageToken,omitempty"`
9092
9093	// SelfLink: [Output Only] Server-defined URL for this resource.
9094	SelfLink string `json:"selfLink,omitempty"`
9095
9096	// Warning: [Output Only] Informational warning message.
9097	Warning *ExchangedPeeringRoutesListWarning `json:"warning,omitempty"`
9098
9099	// ServerResponse contains the HTTP response code and headers from the
9100	// server.
9101	googleapi.ServerResponse `json:"-"`
9102
9103	// ForceSendFields is a list of field names (e.g. "Id") to
9104	// unconditionally include in API requests. By default, fields with
9105	// empty values are omitted from API requests. However, any non-pointer,
9106	// non-interface field appearing in ForceSendFields will be sent to the
9107	// server regardless of whether the field is empty or not. This may be
9108	// used to include empty fields in Patch requests.
9109	ForceSendFields []string `json:"-"`
9110
9111	// NullFields is a list of field names (e.g. "Id") to include in API
9112	// requests with the JSON null value. By default, fields with empty
9113	// values are omitted from API requests. However, any field with an
9114	// empty value appearing in NullFields will be sent to the server as
9115	// null. It is an error if a field in this list has a non-empty value.
9116	// This may be used to include null fields in Patch requests.
9117	NullFields []string `json:"-"`
9118}
9119
9120func (s *ExchangedPeeringRoutesList) MarshalJSON() ([]byte, error) {
9121	type NoMethod ExchangedPeeringRoutesList
9122	raw := NoMethod(*s)
9123	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9124}
9125
9126// ExchangedPeeringRoutesListWarning: [Output Only] Informational
9127// warning message.
9128type ExchangedPeeringRoutesListWarning struct {
9129	// Code: [Output Only] A warning code, if applicable. For example,
9130	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9131	// the response.
9132	//
9133	// Possible values:
9134	//   "CLEANUP_FAILED"
9135	//   "DEPRECATED_RESOURCE_USED"
9136	//   "DEPRECATED_TYPE_USED"
9137	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9138	//   "EXPERIMENTAL_TYPE_USED"
9139	//   "EXTERNAL_API_WARNING"
9140	//   "FIELD_VALUE_OVERRIDEN"
9141	//   "INJECTED_KERNELS_DEPRECATED"
9142	//   "MISSING_TYPE_DEPENDENCY"
9143	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9144	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9145	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9146	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9147	//   "NEXT_HOP_NOT_RUNNING"
9148	//   "NOT_CRITICAL_ERROR"
9149	//   "NO_RESULTS_ON_PAGE"
9150	//   "REQUIRED_TOS_AGREEMENT"
9151	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9152	//   "RESOURCE_NOT_DELETED"
9153	//   "SCHEMA_VALIDATION_IGNORED"
9154	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9155	//   "UNDECLARED_PROPERTIES"
9156	//   "UNREACHABLE"
9157	Code string `json:"code,omitempty"`
9158
9159	// Data: [Output Only] Metadata about this warning in key: value format.
9160	// For example:
9161	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9162	Data []*ExchangedPeeringRoutesListWarningData `json:"data,omitempty"`
9163
9164	// Message: [Output Only] A human-readable description of the warning
9165	// code.
9166	Message string `json:"message,omitempty"`
9167
9168	// ForceSendFields is a list of field names (e.g. "Code") to
9169	// unconditionally include in API requests. By default, fields with
9170	// empty values are omitted from API requests. However, any non-pointer,
9171	// non-interface field appearing in ForceSendFields will be sent to the
9172	// server regardless of whether the field is empty or not. This may be
9173	// used to include empty fields in Patch requests.
9174	ForceSendFields []string `json:"-"`
9175
9176	// NullFields is a list of field names (e.g. "Code") to include in API
9177	// requests with the JSON null value. By default, fields with empty
9178	// values are omitted from API requests. However, any field with an
9179	// empty value appearing in NullFields will be sent to the server as
9180	// null. It is an error if a field in this list has a non-empty value.
9181	// This may be used to include null fields in Patch requests.
9182	NullFields []string `json:"-"`
9183}
9184
9185func (s *ExchangedPeeringRoutesListWarning) MarshalJSON() ([]byte, error) {
9186	type NoMethod ExchangedPeeringRoutesListWarning
9187	raw := NoMethod(*s)
9188	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9189}
9190
9191type ExchangedPeeringRoutesListWarningData struct {
9192	// Key: [Output Only] A key that provides more detail on the warning
9193	// being returned. For example, for warnings where there are no results
9194	// in a list request for a particular zone, this key might be scope and
9195	// the key value might be the zone name. Other examples might be a key
9196	// indicating a deprecated resource and a suggested replacement, or a
9197	// warning about invalid network settings (for example, if an instance
9198	// attempts to perform IP forwarding but is not enabled for IP
9199	// forwarding).
9200	Key string `json:"key,omitempty"`
9201
9202	// Value: [Output Only] A warning data value corresponding to the key.
9203	Value string `json:"value,omitempty"`
9204
9205	// ForceSendFields is a list of field names (e.g. "Key") to
9206	// unconditionally include in API requests. By default, fields with
9207	// empty values are omitted from API requests. However, any non-pointer,
9208	// non-interface field appearing in ForceSendFields will be sent to the
9209	// server regardless of whether the field is empty or not. This may be
9210	// used to include empty fields in Patch requests.
9211	ForceSendFields []string `json:"-"`
9212
9213	// NullFields is a list of field names (e.g. "Key") to include in API
9214	// requests with the JSON null value. By default, fields with empty
9215	// values are omitted from API requests. However, any field with an
9216	// empty value appearing in NullFields will be sent to the server as
9217	// null. It is an error if a field in this list has a non-empty value.
9218	// This may be used to include null fields in Patch requests.
9219	NullFields []string `json:"-"`
9220}
9221
9222func (s *ExchangedPeeringRoutesListWarningData) MarshalJSON() ([]byte, error) {
9223	type NoMethod ExchangedPeeringRoutesListWarningData
9224	raw := NoMethod(*s)
9225	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9226}
9227
9228// Expr: Represents a textual expression in the Common Expression
9229// Language (CEL) syntax. CEL is a C-like expression language. The
9230// syntax and semantics of CEL are documented at
9231// https://github.com/google/cel-spec.
9232//
9233// Example (Comparison):
9234//
9235// title: "Summary size limit" description: "Determines if a summary is
9236// less than 100 chars" expression: "document.summary.size() <
9237// 100"
9238//
9239// Example (Equality):
9240//
9241// title: "Requestor is owner" description: "Determines if requestor is
9242// the document owner" expression: "document.owner ==
9243// request.auth.claims.email"
9244//
9245// Example (Logic):
9246//
9247// title: "Public documents" description: "Determine whether the
9248// document should be publicly visible" expression: "document.type !=
9249// 'private' && document.type != 'internal'"
9250//
9251// Example (Data Manipulation):
9252//
9253// title: "Notification string" description: "Create a notification
9254// string with a timestamp." expression: "'New message received at ' +
9255// string(document.create_time)"
9256//
9257// The exact variables and functions that may be referenced within an
9258// expression are determined by the service that evaluates it. See the
9259// service documentation for additional information.
9260type Expr struct {
9261	// Description: Optional. Description of the expression. This is a
9262	// longer text which describes the expression, e.g. when hovered over it
9263	// in a UI.
9264	Description string `json:"description,omitempty"`
9265
9266	// Expression: Textual representation of an expression in Common
9267	// Expression Language syntax.
9268	Expression string `json:"expression,omitempty"`
9269
9270	// Location: Optional. String indicating the location of the expression
9271	// for error reporting, e.g. a file name and a position in the file.
9272	Location string `json:"location,omitempty"`
9273
9274	// Title: Optional. Title for the expression, i.e. a short string
9275	// describing its purpose. This can be used e.g. in UIs which allow to
9276	// enter the expression.
9277	Title string `json:"title,omitempty"`
9278
9279	// ForceSendFields is a list of field names (e.g. "Description") to
9280	// unconditionally include in API requests. By default, fields with
9281	// empty values are omitted from API requests. However, any non-pointer,
9282	// non-interface field appearing in ForceSendFields will be sent to the
9283	// server regardless of whether the field is empty or not. This may be
9284	// used to include empty fields in Patch requests.
9285	ForceSendFields []string `json:"-"`
9286
9287	// NullFields is a list of field names (e.g. "Description") to include
9288	// in API requests with the JSON null value. By default, fields with
9289	// empty values are omitted from API requests. However, any field with
9290	// an empty value appearing in NullFields will be sent to the server as
9291	// null. It is an error if a field in this list has a non-empty value.
9292	// This may be used to include null fields in Patch requests.
9293	NullFields []string `json:"-"`
9294}
9295
9296func (s *Expr) MarshalJSON() ([]byte, error) {
9297	type NoMethod Expr
9298	raw := NoMethod(*s)
9299	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9300}
9301
9302// ExternalVpnGateway: External VPN gateway is the on-premises VPN
9303// gateway(s) or another cloud provider's VPN gateway that connects to
9304// your Google Cloud VPN gateway. To create a highly available VPN from
9305// Google Cloud to your on-premises side or another Cloud provider's VPN
9306// gateway, you must create a external VPN gateway resource in GCP,
9307// which provides the information to GCP about your external VPN
9308// gateway.
9309type ExternalVpnGateway struct {
9310	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
9311	// format.
9312	CreationTimestamp string `json:"creationTimestamp,omitempty"`
9313
9314	// Description: An optional description of this resource. Provide this
9315	// property when you create the resource.
9316	Description string `json:"description,omitempty"`
9317
9318	// Id: [Output Only] The unique identifier for the resource. This
9319	// identifier is defined by the server.
9320	Id uint64 `json:"id,omitempty,string"`
9321
9322	// Interfaces: List of interfaces for this external VPN gateway.
9323	Interfaces []*ExternalVpnGatewayInterface `json:"interfaces,omitempty"`
9324
9325	// Kind: [Output Only] Type of the resource. Always
9326	// compute#externalVpnGateway for externalVpnGateways.
9327	Kind string `json:"kind,omitempty"`
9328
9329	// LabelFingerprint: A fingerprint for the labels being applied to this
9330	// ExternalVpnGateway, which is essentially a hash of the labels set
9331	// used for optimistic locking. The fingerprint is initially generated
9332	// by Compute Engine and changes after every request to modify or update
9333	// labels. You must always provide an up-to-date fingerprint hash in
9334	// order to update or change labels, otherwise the request will fail
9335	// with error 412 conditionNotMet.
9336	//
9337	// To see the latest fingerprint, make a get() request to retrieve an
9338	// ExternalVpnGateway.
9339	LabelFingerprint string `json:"labelFingerprint,omitempty"`
9340
9341	// Labels: Labels to apply to this ExternalVpnGateway resource. These
9342	// can be later modified by the setLabels method. Each label key/value
9343	// must comply with RFC1035. Label values may be empty.
9344	Labels map[string]string `json:"labels,omitempty"`
9345
9346	// Name: Name of the resource. Provided by the client when the resource
9347	// is created. The name must be 1-63 characters long, and comply with
9348	// RFC1035. Specifically, the name must be 1-63 characters long and
9349	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
9350	// the first character must be a lowercase letter, and all following
9351	// characters must be a dash, lowercase letter, or digit, except the
9352	// last character, which cannot be a dash.
9353	Name string `json:"name,omitempty"`
9354
9355	// RedundancyType: Indicates the user-supplied redundancy type of this
9356	// external VPN gateway.
9357	//
9358	// Possible values:
9359	//   "FOUR_IPS_REDUNDANCY"
9360	//   "SINGLE_IP_INTERNALLY_REDUNDANT"
9361	//   "TWO_IPS_REDUNDANCY"
9362	RedundancyType string `json:"redundancyType,omitempty"`
9363
9364	// SelfLink: [Output Only] Server-defined URL for the resource.
9365	SelfLink string `json:"selfLink,omitempty"`
9366
9367	// ServerResponse contains the HTTP response code and headers from the
9368	// server.
9369	googleapi.ServerResponse `json:"-"`
9370
9371	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
9372	// to unconditionally include in API requests. By default, fields with
9373	// empty values are omitted from API requests. However, any non-pointer,
9374	// non-interface field appearing in ForceSendFields will be sent to the
9375	// server regardless of whether the field is empty or not. This may be
9376	// used to include empty fields in Patch requests.
9377	ForceSendFields []string `json:"-"`
9378
9379	// NullFields is a list of field names (e.g. "CreationTimestamp") to
9380	// include in API requests with the JSON null value. By default, fields
9381	// with empty values are omitted from API requests. However, any field
9382	// with an empty value appearing in NullFields will be sent to the
9383	// server as null. It is an error if a field in this list has a
9384	// non-empty value. This may be used to include null fields in Patch
9385	// requests.
9386	NullFields []string `json:"-"`
9387}
9388
9389func (s *ExternalVpnGateway) MarshalJSON() ([]byte, error) {
9390	type NoMethod ExternalVpnGateway
9391	raw := NoMethod(*s)
9392	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9393}
9394
9395// ExternalVpnGatewayInterface: The interface for the external VPN
9396// gateway.
9397type ExternalVpnGatewayInterface struct {
9398	// Id: The numeric ID of this interface. The allowed input values for
9399	// this id for different redundancy types of external VPN gateway:
9400	// SINGLE_IP_INTERNALLY_REDUNDANT - 0 TWO_IPS_REDUNDANCY - 0, 1
9401	// FOUR_IPS_REDUNDANCY - 0, 1, 2, 3
9402	Id int64 `json:"id,omitempty"`
9403
9404	// IpAddress: IP address of the interface in the external VPN gateway.
9405	// Only IPv4 is supported. This IP address can be either from your
9406	// on-premise gateway or another Cloud provider's VPN gateway, it cannot
9407	// be an IP address from Google Compute Engine.
9408	IpAddress string `json:"ipAddress,omitempty"`
9409
9410	// ForceSendFields is a list of field names (e.g. "Id") to
9411	// unconditionally include in API requests. By default, fields with
9412	// empty values are omitted from API requests. However, any non-pointer,
9413	// non-interface field appearing in ForceSendFields will be sent to the
9414	// server regardless of whether the field is empty or not. This may be
9415	// used to include empty fields in Patch requests.
9416	ForceSendFields []string `json:"-"`
9417
9418	// NullFields is a list of field names (e.g. "Id") to include in API
9419	// requests with the JSON null value. By default, fields with empty
9420	// values are omitted from API requests. However, any field with an
9421	// empty value appearing in NullFields will be sent to the server as
9422	// null. It is an error if a field in this list has a non-empty value.
9423	// This may be used to include null fields in Patch requests.
9424	NullFields []string `json:"-"`
9425}
9426
9427func (s *ExternalVpnGatewayInterface) MarshalJSON() ([]byte, error) {
9428	type NoMethod ExternalVpnGatewayInterface
9429	raw := NoMethod(*s)
9430	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9431}
9432
9433// ExternalVpnGatewayList: Response to the list request, and contains a
9434// list of externalVpnGateways.
9435type ExternalVpnGatewayList struct {
9436	Etag string `json:"etag,omitempty"`
9437
9438	// Id: [Output Only] Unique identifier for the resource; defined by the
9439	// server.
9440	Id string `json:"id,omitempty"`
9441
9442	// Items: A list of ExternalVpnGateway resources.
9443	Items []*ExternalVpnGateway `json:"items,omitempty"`
9444
9445	// Kind: [Output Only] Type of resource. Always
9446	// compute#externalVpnGatewayList  for lists of externalVpnGateways.
9447	Kind string `json:"kind,omitempty"`
9448
9449	// NextPageToken: [Output Only] This token allows you to get the next
9450	// page of results for list requests. If the number of results is larger
9451	// than maxResults, use the nextPageToken as a value for the query
9452	// parameter pageToken in the next list request. Subsequent list
9453	// requests will have their own nextPageToken to continue paging through
9454	// the results.
9455	NextPageToken string `json:"nextPageToken,omitempty"`
9456
9457	// SelfLink: [Output Only] Server-defined URL for this resource.
9458	SelfLink string `json:"selfLink,omitempty"`
9459
9460	// Warning: [Output Only] Informational warning message.
9461	Warning *ExternalVpnGatewayListWarning `json:"warning,omitempty"`
9462
9463	// ServerResponse contains the HTTP response code and headers from the
9464	// server.
9465	googleapi.ServerResponse `json:"-"`
9466
9467	// ForceSendFields is a list of field names (e.g. "Etag") to
9468	// unconditionally include in API requests. By default, fields with
9469	// empty values are omitted from API requests. However, any non-pointer,
9470	// non-interface field appearing in ForceSendFields will be sent to the
9471	// server regardless of whether the field is empty or not. This may be
9472	// used to include empty fields in Patch requests.
9473	ForceSendFields []string `json:"-"`
9474
9475	// NullFields is a list of field names (e.g. "Etag") to include in API
9476	// requests with the JSON null value. By default, fields with empty
9477	// values are omitted from API requests. However, any field with an
9478	// empty value appearing in NullFields will be sent to the server as
9479	// null. It is an error if a field in this list has a non-empty value.
9480	// This may be used to include null fields in Patch requests.
9481	NullFields []string `json:"-"`
9482}
9483
9484func (s *ExternalVpnGatewayList) MarshalJSON() ([]byte, error) {
9485	type NoMethod ExternalVpnGatewayList
9486	raw := NoMethod(*s)
9487	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9488}
9489
9490// ExternalVpnGatewayListWarning: [Output Only] Informational warning
9491// message.
9492type ExternalVpnGatewayListWarning struct {
9493	// Code: [Output Only] A warning code, if applicable. For example,
9494	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9495	// the response.
9496	//
9497	// Possible values:
9498	//   "CLEANUP_FAILED"
9499	//   "DEPRECATED_RESOURCE_USED"
9500	//   "DEPRECATED_TYPE_USED"
9501	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9502	//   "EXPERIMENTAL_TYPE_USED"
9503	//   "EXTERNAL_API_WARNING"
9504	//   "FIELD_VALUE_OVERRIDEN"
9505	//   "INJECTED_KERNELS_DEPRECATED"
9506	//   "MISSING_TYPE_DEPENDENCY"
9507	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9508	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9509	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9510	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9511	//   "NEXT_HOP_NOT_RUNNING"
9512	//   "NOT_CRITICAL_ERROR"
9513	//   "NO_RESULTS_ON_PAGE"
9514	//   "REQUIRED_TOS_AGREEMENT"
9515	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9516	//   "RESOURCE_NOT_DELETED"
9517	//   "SCHEMA_VALIDATION_IGNORED"
9518	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9519	//   "UNDECLARED_PROPERTIES"
9520	//   "UNREACHABLE"
9521	Code string `json:"code,omitempty"`
9522
9523	// Data: [Output Only] Metadata about this warning in key: value format.
9524	// For example:
9525	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9526	Data []*ExternalVpnGatewayListWarningData `json:"data,omitempty"`
9527
9528	// Message: [Output Only] A human-readable description of the warning
9529	// code.
9530	Message string `json:"message,omitempty"`
9531
9532	// ForceSendFields is a list of field names (e.g. "Code") to
9533	// unconditionally include in API requests. By default, fields with
9534	// empty values are omitted from API requests. However, any non-pointer,
9535	// non-interface field appearing in ForceSendFields will be sent to the
9536	// server regardless of whether the field is empty or not. This may be
9537	// used to include empty fields in Patch requests.
9538	ForceSendFields []string `json:"-"`
9539
9540	// NullFields is a list of field names (e.g. "Code") to include in API
9541	// requests with the JSON null value. By default, fields with empty
9542	// values are omitted from API requests. However, any field with an
9543	// empty value appearing in NullFields will be sent to the server as
9544	// null. It is an error if a field in this list has a non-empty value.
9545	// This may be used to include null fields in Patch requests.
9546	NullFields []string `json:"-"`
9547}
9548
9549func (s *ExternalVpnGatewayListWarning) MarshalJSON() ([]byte, error) {
9550	type NoMethod ExternalVpnGatewayListWarning
9551	raw := NoMethod(*s)
9552	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9553}
9554
9555type ExternalVpnGatewayListWarningData struct {
9556	// Key: [Output Only] A key that provides more detail on the warning
9557	// being returned. For example, for warnings where there are no results
9558	// in a list request for a particular zone, this key might be scope and
9559	// the key value might be the zone name. Other examples might be a key
9560	// indicating a deprecated resource and a suggested replacement, or a
9561	// warning about invalid network settings (for example, if an instance
9562	// attempts to perform IP forwarding but is not enabled for IP
9563	// forwarding).
9564	Key string `json:"key,omitempty"`
9565
9566	// Value: [Output Only] A warning data value corresponding to the key.
9567	Value string `json:"value,omitempty"`
9568
9569	// ForceSendFields is a list of field names (e.g. "Key") to
9570	// unconditionally include in API requests. By default, fields with
9571	// empty values are omitted from API requests. However, any non-pointer,
9572	// non-interface field appearing in ForceSendFields will be sent to the
9573	// server regardless of whether the field is empty or not. This may be
9574	// used to include empty fields in Patch requests.
9575	ForceSendFields []string `json:"-"`
9576
9577	// NullFields is a list of field names (e.g. "Key") to include in API
9578	// requests with the JSON null value. By default, fields with empty
9579	// values are omitted from API requests. However, any field with an
9580	// empty value appearing in NullFields will be sent to the server as
9581	// null. It is an error if a field in this list has a non-empty value.
9582	// This may be used to include null fields in Patch requests.
9583	NullFields []string `json:"-"`
9584}
9585
9586func (s *ExternalVpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
9587	type NoMethod ExternalVpnGatewayListWarningData
9588	raw := NoMethod(*s)
9589	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9590}
9591
9592type FileContentBuffer struct {
9593	// Content: The raw content in the secure keys file.
9594	Content string `json:"content,omitempty"`
9595
9596	// Possible values:
9597	//   "BIN"
9598	//   "UNDEFINED"
9599	//   "X509"
9600	FileType string `json:"fileType,omitempty"`
9601
9602	// ForceSendFields is a list of field names (e.g. "Content") to
9603	// unconditionally include in API requests. By default, fields with
9604	// empty values are omitted from API requests. However, any non-pointer,
9605	// non-interface field appearing in ForceSendFields will be sent to the
9606	// server regardless of whether the field is empty or not. This may be
9607	// used to include empty fields in Patch requests.
9608	ForceSendFields []string `json:"-"`
9609
9610	// NullFields is a list of field names (e.g. "Content") to include in
9611	// API requests with the JSON null value. By default, fields with empty
9612	// values are omitted from API requests. However, any field with an
9613	// empty value appearing in NullFields will be sent to the server as
9614	// null. It is an error if a field in this list has a non-empty value.
9615	// This may be used to include null fields in Patch requests.
9616	NullFields []string `json:"-"`
9617}
9618
9619func (s *FileContentBuffer) MarshalJSON() ([]byte, error) {
9620	type NoMethod FileContentBuffer
9621	raw := NoMethod(*s)
9622	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9623}
9624
9625// Firewall: Represents a Firewall Rule resource.
9626//
9627// Firewall rules allow or deny ingress traffic to, and egress traffic
9628// from your instances. For more information, read Firewall rules.
9629type Firewall struct {
9630	// Allowed: The list of ALLOW rules specified by this firewall. Each
9631	// rule specifies a protocol and port-range tuple that describes a
9632	// permitted connection.
9633	Allowed []*FirewallAllowed `json:"allowed,omitempty"`
9634
9635	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
9636	// format.
9637	CreationTimestamp string `json:"creationTimestamp,omitempty"`
9638
9639	// Denied: The list of DENY rules specified by this firewall. Each rule
9640	// specifies a protocol and port-range tuple that describes a denied
9641	// connection.
9642	Denied []*FirewallDenied `json:"denied,omitempty"`
9643
9644	// Description: An optional description of this resource. Provide this
9645	// field when you create the resource.
9646	Description string `json:"description,omitempty"`
9647
9648	// DestinationRanges: If destination ranges are specified, the firewall
9649	// rule applies only to traffic that has destination IP address in these
9650	// ranges. These ranges must be expressed in CIDR format. Only IPv4 is
9651	// supported.
9652	DestinationRanges []string `json:"destinationRanges,omitempty"`
9653
9654	// Direction: Direction of traffic to which this firewall applies,
9655	// either `INGRESS` or `EGRESS`. The default is `INGRESS`. For `INGRESS`
9656	// traffic, you cannot specify the destinationRanges field, and for
9657	// `EGRESS` traffic, you cannot specify the sourceRanges or sourceTags
9658	// fields.
9659	//
9660	// Possible values:
9661	//   "EGRESS"
9662	//   "INGRESS"
9663	Direction string `json:"direction,omitempty"`
9664
9665	// Disabled: Denotes whether the firewall rule is disabled. When set to
9666	// true, the firewall rule is not enforced and the network behaves as if
9667	// it did not exist. If this is unspecified, the firewall rule will be
9668	// enabled.
9669	Disabled bool `json:"disabled,omitempty"`
9670
9671	// EnableLogging: Deprecated in favor of enable in LogConfig. This field
9672	// denotes whether to enable logging for a particular firewall rule. If
9673	// logging is enabled, logs will be exported to Stackdriver.
9674	EnableLogging bool `json:"enableLogging,omitempty"`
9675
9676	// Id: [Output Only] The unique identifier for the resource. This
9677	// identifier is defined by the server.
9678	Id uint64 `json:"id,omitempty,string"`
9679
9680	// Kind: [Output Only] Type of the resource. Always compute#firewall for
9681	// firewall rules.
9682	Kind string `json:"kind,omitempty"`
9683
9684	// LogConfig: This field denotes the logging options for a particular
9685	// firewall rule. If logging is enabled, logs will be exported to
9686	// Stackdriver.
9687	LogConfig *FirewallLogConfig `json:"logConfig,omitempty"`
9688
9689	// Name: Name of the resource; provided by the client when the resource
9690	// is created. The name must be 1-63 characters long, and comply with
9691	// RFC1035. Specifically, the name must be 1-63 characters long and
9692	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?. The first
9693	// character must be a lowercase letter, and all following characters
9694	// (except for the last character) must be a dash, lowercase letter, or
9695	// digit. The last character must be a lowercase letter or digit.
9696	Name string `json:"name,omitempty"`
9697
9698	// Network: URL of the network resource for this firewall rule. If not
9699	// specified when creating a firewall rule, the default network is
9700	// used:
9701	// global/networks/default
9702	// If you choose to specify this field, you can specify the network as a
9703	// full or partial URL. For example, the following are all valid URLs:
9704	//
9705	// -
9706	// https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network
9707	// - projects/myproject/global/networks/my-network
9708	// - global/networks/default
9709	Network string `json:"network,omitempty"`
9710
9711	// Priority: Priority for this rule. This is an integer between `0` and
9712	// `65535`, both inclusive. The default value is `1000`. Relative
9713	// priorities determine which rule takes effect if multiple rules apply.
9714	// Lower values indicate higher priority. For example, a rule with
9715	// priority `0` has higher precedence than a rule with priority `1`.
9716	// DENY rules take precedence over ALLOW rules if they have equal
9717	// priority. Note that VPC networks have implied rules with a priority
9718	// of `65535`. To avoid conflicts with the implied rules, use a priority
9719	// number less than `65535`.
9720	Priority int64 `json:"priority,omitempty"`
9721
9722	// SelfLink: [Output Only] Server-defined URL for the resource.
9723	SelfLink string `json:"selfLink,omitempty"`
9724
9725	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
9726	// with the resource id.
9727	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
9728
9729	// SourceRanges: If source ranges are specified, the firewall rule
9730	// applies only to traffic that has a source IP address in these ranges.
9731	// These ranges must be expressed in CIDR format. One or both of
9732	// sourceRanges and sourceTags may be set. If both fields are set, the
9733	// rule applies to traffic that has a source IP address within
9734	// sourceRanges OR a source IP from a resource with a matching tag
9735	// listed in the sourceTags field. The connection does not need to match
9736	// both fields for the rule to apply. Only IPv4 is supported.
9737	SourceRanges []string `json:"sourceRanges,omitempty"`
9738
9739	// SourceServiceAccounts: If source service accounts are specified, the
9740	// firewall rules apply only to traffic originating from an instance
9741	// with a service account in this list. Source service accounts cannot
9742	// be used to control traffic to an instance's external IP address
9743	// because service accounts are associated with an instance, not an IP
9744	// address. sourceRanges can be set at the same time as
9745	// sourceServiceAccounts. If both are set, the firewall applies to
9746	// traffic that has a source IP address within the sourceRanges OR a
9747	// source IP that belongs to an instance with service account listed in
9748	// sourceServiceAccount. The connection does not need to match both
9749	// fields for the firewall to apply. sourceServiceAccounts cannot be
9750	// used at the same time as sourceTags or targetTags.
9751	SourceServiceAccounts []string `json:"sourceServiceAccounts,omitempty"`
9752
9753	// SourceTags: If source tags are specified, the firewall rule applies
9754	// only to traffic with source IPs that match the primary network
9755	// interfaces of VM instances that have the tag and are in the same VPC
9756	// network. Source tags cannot be used to control traffic to an
9757	// instance's external IP address, it only applies to traffic between
9758	// instances in the same virtual network. Because tags are associated
9759	// with instances, not IP addresses. One or both of sourceRanges and
9760	// sourceTags may be set. If both fields are set, the firewall applies
9761	// to traffic that has a source IP address within sourceRanges OR a
9762	// source IP from a resource with a matching tag listed in the
9763	// sourceTags field. The connection does not need to match both fields
9764	// for the firewall to apply.
9765	SourceTags []string `json:"sourceTags,omitempty"`
9766
9767	// TargetServiceAccounts: A list of service accounts indicating sets of
9768	// instances located in the network that may make network connections as
9769	// specified in allowed[]. targetServiceAccounts cannot be used at the
9770	// same time as targetTags or sourceTags. If neither
9771	// targetServiceAccounts nor targetTags are specified, the firewall rule
9772	// applies to all instances on the specified network.
9773	TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"`
9774
9775	// TargetTags: A list of tags that controls which instances the firewall
9776	// rule applies to. If targetTags are specified, then the firewall rule
9777	// applies only to instances in the VPC network that have one of those
9778	// tags. If no targetTags are specified, the firewall rule applies to
9779	// all instances on the specified network.
9780	TargetTags []string `json:"targetTags,omitempty"`
9781
9782	// ServerResponse contains the HTTP response code and headers from the
9783	// server.
9784	googleapi.ServerResponse `json:"-"`
9785
9786	// ForceSendFields is a list of field names (e.g. "Allowed") to
9787	// unconditionally include in API requests. By default, fields with
9788	// empty values are omitted from API requests. However, any non-pointer,
9789	// non-interface field appearing in ForceSendFields will be sent to the
9790	// server regardless of whether the field is empty or not. This may be
9791	// used to include empty fields in Patch requests.
9792	ForceSendFields []string `json:"-"`
9793
9794	// NullFields is a list of field names (e.g. "Allowed") to include in
9795	// API requests with the JSON null value. By default, fields with empty
9796	// values are omitted from API requests. However, any field with an
9797	// empty value appearing in NullFields will be sent to the server as
9798	// null. It is an error if a field in this list has a non-empty value.
9799	// This may be used to include null fields in Patch requests.
9800	NullFields []string `json:"-"`
9801}
9802
9803func (s *Firewall) MarshalJSON() ([]byte, error) {
9804	type NoMethod Firewall
9805	raw := NoMethod(*s)
9806	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9807}
9808
9809type FirewallAllowed struct {
9810	// IPProtocol: The IP protocol to which this rule applies. The protocol
9811	// type is required when creating a firewall rule. This value can either
9812	// be one of the following well known protocol strings (tcp, udp, icmp,
9813	// esp, ah, ipip, sctp) or the IP protocol number.
9814	IPProtocol string `json:"IPProtocol,omitempty"`
9815
9816	// Ports: An optional list of ports to which this rule applies. This
9817	// field is only applicable for the UDP or TCP protocol. Each entry must
9818	// be either an integer or a range. If not specified, this rule applies
9819	// to connections through any port.
9820	//
9821	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
9822	Ports []string `json:"ports,omitempty"`
9823
9824	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
9825	// unconditionally include in API requests. By default, fields with
9826	// empty values are omitted from API requests. However, any non-pointer,
9827	// non-interface field appearing in ForceSendFields will be sent to the
9828	// server regardless of whether the field is empty or not. This may be
9829	// used to include empty fields in Patch requests.
9830	ForceSendFields []string `json:"-"`
9831
9832	// NullFields is a list of field names (e.g. "IPProtocol") to include in
9833	// API requests with the JSON null value. By default, fields with empty
9834	// values are omitted from API requests. However, any field with an
9835	// empty value appearing in NullFields will be sent to the server as
9836	// null. It is an error if a field in this list has a non-empty value.
9837	// This may be used to include null fields in Patch requests.
9838	NullFields []string `json:"-"`
9839}
9840
9841func (s *FirewallAllowed) MarshalJSON() ([]byte, error) {
9842	type NoMethod FirewallAllowed
9843	raw := NoMethod(*s)
9844	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9845}
9846
9847type FirewallDenied struct {
9848	// IPProtocol: The IP protocol to which this rule applies. The protocol
9849	// type is required when creating a firewall rule. This value can either
9850	// be one of the following well known protocol strings (tcp, udp, icmp,
9851	// esp, ah, ipip, sctp) or the IP protocol number.
9852	IPProtocol string `json:"IPProtocol,omitempty"`
9853
9854	// Ports: An optional list of ports to which this rule applies. This
9855	// field is only applicable for the UDP or TCP protocol. Each entry must
9856	// be either an integer or a range. If not specified, this rule applies
9857	// to connections through any port.
9858	//
9859	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
9860	Ports []string `json:"ports,omitempty"`
9861
9862	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
9863	// unconditionally include in API requests. By default, fields with
9864	// empty values are omitted from API requests. However, any non-pointer,
9865	// non-interface field appearing in ForceSendFields will be sent to the
9866	// server regardless of whether the field is empty or not. This may be
9867	// used to include empty fields in Patch requests.
9868	ForceSendFields []string `json:"-"`
9869
9870	// NullFields is a list of field names (e.g. "IPProtocol") to include in
9871	// API requests with the JSON null value. By default, fields with empty
9872	// values are omitted from API requests. However, any field with an
9873	// empty value appearing in NullFields will be sent to the server as
9874	// null. It is an error if a field in this list has a non-empty value.
9875	// This may be used to include null fields in Patch requests.
9876	NullFields []string `json:"-"`
9877}
9878
9879func (s *FirewallDenied) MarshalJSON() ([]byte, error) {
9880	type NoMethod FirewallDenied
9881	raw := NoMethod(*s)
9882	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9883}
9884
9885// FirewallList: Contains a list of firewalls.
9886type FirewallList struct {
9887	// Id: [Output Only] Unique identifier for the resource; defined by the
9888	// server.
9889	Id string `json:"id,omitempty"`
9890
9891	// Items: A list of Firewall resources.
9892	Items []*Firewall `json:"items,omitempty"`
9893
9894	// Kind: [Output Only] Type of resource. Always compute#firewallList for
9895	// lists of firewalls.
9896	Kind string `json:"kind,omitempty"`
9897
9898	// NextPageToken: [Output Only] This token allows you to get the next
9899	// page of results for list requests. If the number of results is larger
9900	// than maxResults, use the nextPageToken as a value for the query
9901	// parameter pageToken in the next list request. Subsequent list
9902	// requests will have their own nextPageToken to continue paging through
9903	// the results.
9904	NextPageToken string `json:"nextPageToken,omitempty"`
9905
9906	// SelfLink: [Output Only] Server-defined URL for this resource.
9907	SelfLink string `json:"selfLink,omitempty"`
9908
9909	// Warning: [Output Only] Informational warning message.
9910	Warning *FirewallListWarning `json:"warning,omitempty"`
9911
9912	// ServerResponse contains the HTTP response code and headers from the
9913	// server.
9914	googleapi.ServerResponse `json:"-"`
9915
9916	// ForceSendFields is a list of field names (e.g. "Id") to
9917	// unconditionally include in API requests. By default, fields with
9918	// empty values are omitted from API requests. However, any non-pointer,
9919	// non-interface field appearing in ForceSendFields will be sent to the
9920	// server regardless of whether the field is empty or not. This may be
9921	// used to include empty fields in Patch requests.
9922	ForceSendFields []string `json:"-"`
9923
9924	// NullFields is a list of field names (e.g. "Id") to include in API
9925	// requests with the JSON null value. By default, fields with empty
9926	// values are omitted from API requests. However, any field with an
9927	// empty value appearing in NullFields will be sent to the server as
9928	// null. It is an error if a field in this list has a non-empty value.
9929	// This may be used to include null fields in Patch requests.
9930	NullFields []string `json:"-"`
9931}
9932
9933func (s *FirewallList) MarshalJSON() ([]byte, error) {
9934	type NoMethod FirewallList
9935	raw := NoMethod(*s)
9936	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9937}
9938
9939// FirewallListWarning: [Output Only] Informational warning message.
9940type FirewallListWarning struct {
9941	// Code: [Output Only] A warning code, if applicable. For example,
9942	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9943	// the response.
9944	//
9945	// Possible values:
9946	//   "CLEANUP_FAILED"
9947	//   "DEPRECATED_RESOURCE_USED"
9948	//   "DEPRECATED_TYPE_USED"
9949	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9950	//   "EXPERIMENTAL_TYPE_USED"
9951	//   "EXTERNAL_API_WARNING"
9952	//   "FIELD_VALUE_OVERRIDEN"
9953	//   "INJECTED_KERNELS_DEPRECATED"
9954	//   "MISSING_TYPE_DEPENDENCY"
9955	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9956	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9957	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9958	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9959	//   "NEXT_HOP_NOT_RUNNING"
9960	//   "NOT_CRITICAL_ERROR"
9961	//   "NO_RESULTS_ON_PAGE"
9962	//   "REQUIRED_TOS_AGREEMENT"
9963	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9964	//   "RESOURCE_NOT_DELETED"
9965	//   "SCHEMA_VALIDATION_IGNORED"
9966	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9967	//   "UNDECLARED_PROPERTIES"
9968	//   "UNREACHABLE"
9969	Code string `json:"code,omitempty"`
9970
9971	// Data: [Output Only] Metadata about this warning in key: value format.
9972	// For example:
9973	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9974	Data []*FirewallListWarningData `json:"data,omitempty"`
9975
9976	// Message: [Output Only] A human-readable description of the warning
9977	// code.
9978	Message string `json:"message,omitempty"`
9979
9980	// ForceSendFields is a list of field names (e.g. "Code") to
9981	// unconditionally include in API requests. By default, fields with
9982	// empty values are omitted from API requests. However, any non-pointer,
9983	// non-interface field appearing in ForceSendFields will be sent to the
9984	// server regardless of whether the field is empty or not. This may be
9985	// used to include empty fields in Patch requests.
9986	ForceSendFields []string `json:"-"`
9987
9988	// NullFields is a list of field names (e.g. "Code") to include in API
9989	// requests with the JSON null value. By default, fields with empty
9990	// values are omitted from API requests. However, any field with an
9991	// empty value appearing in NullFields will be sent to the server as
9992	// null. It is an error if a field in this list has a non-empty value.
9993	// This may be used to include null fields in Patch requests.
9994	NullFields []string `json:"-"`
9995}
9996
9997func (s *FirewallListWarning) MarshalJSON() ([]byte, error) {
9998	type NoMethod FirewallListWarning
9999	raw := NoMethod(*s)
10000	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10001}
10002
10003type FirewallListWarningData struct {
10004	// Key: [Output Only] A key that provides more detail on the warning
10005	// being returned. For example, for warnings where there are no results
10006	// in a list request for a particular zone, this key might be scope and
10007	// the key value might be the zone name. Other examples might be a key
10008	// indicating a deprecated resource and a suggested replacement, or a
10009	// warning about invalid network settings (for example, if an instance
10010	// attempts to perform IP forwarding but is not enabled for IP
10011	// forwarding).
10012	Key string `json:"key,omitempty"`
10013
10014	// Value: [Output Only] A warning data value corresponding to the key.
10015	Value string `json:"value,omitempty"`
10016
10017	// ForceSendFields is a list of field names (e.g. "Key") to
10018	// unconditionally include in API requests. By default, fields with
10019	// empty values are omitted from API requests. However, any non-pointer,
10020	// non-interface field appearing in ForceSendFields will be sent to the
10021	// server regardless of whether the field is empty or not. This may be
10022	// used to include empty fields in Patch requests.
10023	ForceSendFields []string `json:"-"`
10024
10025	// NullFields is a list of field names (e.g. "Key") to include in API
10026	// requests with the JSON null value. By default, fields with empty
10027	// values are omitted from API requests. However, any field with an
10028	// empty value appearing in NullFields will be sent to the server as
10029	// null. It is an error if a field in this list has a non-empty value.
10030	// This may be used to include null fields in Patch requests.
10031	NullFields []string `json:"-"`
10032}
10033
10034func (s *FirewallListWarningData) MarshalJSON() ([]byte, error) {
10035	type NoMethod FirewallListWarningData
10036	raw := NoMethod(*s)
10037	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10038}
10039
10040// FirewallLogConfig: The available logging options for a firewall rule.
10041type FirewallLogConfig struct {
10042	// Enable: This field denotes whether to enable logging for a particular
10043	// firewall rule.
10044	Enable bool `json:"enable,omitempty"`
10045
10046	// Metadata: This field can only be specified for a particular firewall
10047	// rule if logging is enabled for that rule. This field denotes whether
10048	// to include or exclude metadata for firewall logs.
10049	//
10050	// Possible values:
10051	//   "EXCLUDE_ALL_METADATA"
10052	//   "INCLUDE_ALL_METADATA"
10053	Metadata string `json:"metadata,omitempty"`
10054
10055	// ForceSendFields is a list of field names (e.g. "Enable") to
10056	// unconditionally include in API requests. By default, fields with
10057	// empty values are omitted from API requests. However, any non-pointer,
10058	// non-interface field appearing in ForceSendFields will be sent to the
10059	// server regardless of whether the field is empty or not. This may be
10060	// used to include empty fields in Patch requests.
10061	ForceSendFields []string `json:"-"`
10062
10063	// NullFields is a list of field names (e.g. "Enable") to include in API
10064	// requests with the JSON null value. By default, fields with empty
10065	// values are omitted from API requests. However, any field with an
10066	// empty value appearing in NullFields will be sent to the server as
10067	// null. It is an error if a field in this list has a non-empty value.
10068	// This may be used to include null fields in Patch requests.
10069	NullFields []string `json:"-"`
10070}
10071
10072func (s *FirewallLogConfig) MarshalJSON() ([]byte, error) {
10073	type NoMethod FirewallLogConfig
10074	raw := NoMethod(*s)
10075	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10076}
10077
10078// FixedOrPercent: Encapsulates numeric value that can be either
10079// absolute or relative.
10080type FixedOrPercent struct {
10081	// Calculated: [Output Only] Absolute value of VM instances calculated
10082	// based on the specific mode.
10083	//
10084	//
10085	// - If the value is fixed, then the calculated value is equal to the
10086	// fixed value.
10087	// - If the value is a percent, then the calculated value is percent/100
10088	// * targetSize. For example, the calculated value of a 80% of a managed
10089	// instance group with 150 instances would be (80/100 * 150) = 120 VM
10090	// instances. If there is a remainder, the number is rounded up.
10091	Calculated int64 `json:"calculated,omitempty"`
10092
10093	// Fixed: Specifies a fixed number of VM instances. This must be a
10094	// positive integer.
10095	Fixed int64 `json:"fixed,omitempty"`
10096
10097	// Percent: Specifies a percentage of instances between 0 to 100%,
10098	// inclusive. For example, specify 80 for 80%.
10099	Percent int64 `json:"percent,omitempty"`
10100
10101	// ForceSendFields is a list of field names (e.g. "Calculated") to
10102	// unconditionally include in API requests. By default, fields with
10103	// empty values are omitted from API requests. However, any non-pointer,
10104	// non-interface field appearing in ForceSendFields will be sent to the
10105	// server regardless of whether the field is empty or not. This may be
10106	// used to include empty fields in Patch requests.
10107	ForceSendFields []string `json:"-"`
10108
10109	// NullFields is a list of field names (e.g. "Calculated") to include in
10110	// API requests with the JSON null value. By default, fields with empty
10111	// values are omitted from API requests. However, any field with an
10112	// empty value appearing in NullFields will be sent to the server as
10113	// null. It is an error if a field in this list has a non-empty value.
10114	// This may be used to include null fields in Patch requests.
10115	NullFields []string `json:"-"`
10116}
10117
10118func (s *FixedOrPercent) MarshalJSON() ([]byte, error) {
10119	type NoMethod FixedOrPercent
10120	raw := NoMethod(*s)
10121	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10122}
10123
10124// ForwardingRule: Represents a Forwarding Rule resource.
10125//
10126// Forwarding rule resources in GCP can be either regional or global in
10127// scope:
10128//
10129// * [Global](/compute/docs/reference/rest/latest/globalForwardingRules)
10130// * [Regional](/compute/docs/reference/rest/latest/forwardingRules)
10131//
10132// A forwarding rule and its corresponding IP address represent the
10133// frontend configuration of a Google Cloud Platform load balancer.
10134// Forwarding rules can also reference target instances and Cloud VPN
10135// Classic gateways (targetVpnGateway).
10136//
10137// For more information, read Forwarding rule concepts and Using
10138// protocol forwarding.
10139//
10140// (== resource_for {$api_version}.forwardingRules ==) (== resource_for
10141// {$api_version}.globalForwardingRules ==) (== resource_for
10142// {$api_version}.regionForwardingRules ==)
10143type ForwardingRule struct {
10144	// IPAddress: IP address that this forwarding rule serves. When a client
10145	// sends traffic to this IP address, the forwarding rule directs the
10146	// traffic to the target that you specify in the forwarding rule.
10147	//
10148	// If you don't specify a reserved IP address, an ephemeral IP address
10149	// is assigned. Methods for specifying an IP address:
10150	//
10151	// * IPv4 dotted decimal, as in `100.1.2.3` * Full URL, as in
10152	// 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
10153	//
10154	// The loadBalancingScheme and the forwarding rule's target determine
10155	// the type of IP address that you can use. For detailed information,
10156	// refer to [IP address
10157	// specifications](/load-balancing/docs/forwarding-rule-concepts#ip_addre
10158	// ss_specifications).
10159	IPAddress string `json:"IPAddress,omitempty"`
10160
10161	// IPProtocol: The IP protocol to which this rule applies. For protocol
10162	// forwarding, valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
10163	//
10164	// For Internal TCP/UDP Load Balancing, the load balancing scheme is
10165	// INTERNAL, and one of TCP or UDP are valid. For Traffic Director, the
10166	// load balancing scheme is INTERNAL_SELF_MANAGED, and only TCPis valid.
10167	// For Internal HTTP(S) Load Balancing, the load balancing scheme is
10168	// INTERNAL_MANAGED, and only TCP is valid. For HTTP(S), SSL Proxy, and
10169	// TCP Proxy Load Balancing, the load balancing scheme is EXTERNAL and
10170	// only TCP is valid. For Network TCP/UDP Load Balancing, the load
10171	// balancing scheme is EXTERNAL, and one of TCP or UDP is valid.
10172	//
10173	// Possible values:
10174	//   "AH"
10175	//   "ESP"
10176	//   "ICMP"
10177	//   "SCTP"
10178	//   "TCP"
10179	//   "UDP"
10180	IPProtocol string `json:"IPProtocol,omitempty"`
10181
10182	// AllPorts: This field is used along with the backend_service field for
10183	// internal load balancing or with the target field for internal
10184	// TargetInstance. This field cannot be used with port or portRange
10185	// fields.
10186	//
10187	// When the load balancing scheme is INTERNAL and protocol is TCP/UDP,
10188	// specify this field to allow packets addressed to any ports will be
10189	// forwarded to the backends configured with this forwarding rule.
10190	AllPorts bool `json:"allPorts,omitempty"`
10191
10192	// AllowGlobalAccess: This field is used along with the backend_service
10193	// field for internal load balancing or with the target field for
10194	// internal TargetInstance. If the field is set to TRUE, clients can
10195	// access ILB from all regions. Otherwise only allows access from
10196	// clients in the same region as the internal load balancer.
10197	AllowGlobalAccess bool `json:"allowGlobalAccess,omitempty"`
10198
10199	// BackendService: This field is only used for INTERNAL load
10200	// balancing.
10201	//
10202	// For internal load balancing, this field identifies the BackendService
10203	// resource to receive the matched traffic.
10204	BackendService string `json:"backendService,omitempty"`
10205
10206	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
10207	// format.
10208	CreationTimestamp string `json:"creationTimestamp,omitempty"`
10209
10210	// Description: An optional description of this resource. Provide this
10211	// property when you create the resource.
10212	Description string `json:"description,omitempty"`
10213
10214	// Fingerprint: Fingerprint of this resource. A hash of the contents
10215	// stored in this object. This field is used in optimistic locking. This
10216	// field will be ignored when inserting a ForwardingRule. Include the
10217	// fingerprint in patch request to ensure that you do not overwrite
10218	// changes that were applied from another concurrent request.
10219	//
10220	// To see the latest fingerprint, make a get() request to retrieve a
10221	// ForwardingRule.
10222	Fingerprint string `json:"fingerprint,omitempty"`
10223
10224	// Id: [Output Only] The unique identifier for the resource. This
10225	// identifier is defined by the server.
10226	Id uint64 `json:"id,omitempty,string"`
10227
10228	// IpVersion: The IP Version that will be used by this forwarding rule.
10229	// Valid options are IPV4 or IPV6. This can only be specified for an
10230	// external global forwarding rule.
10231	//
10232	// Possible values:
10233	//   "IPV4"
10234	//   "IPV6"
10235	//   "UNSPECIFIED_VERSION"
10236	IpVersion string `json:"ipVersion,omitempty"`
10237
10238	// IsMirroringCollector: Indicates whether or not this load balancer can
10239	// be used as a collector for packet mirroring. To prevent mirroring
10240	// loops, instances behind this load balancer will not have their
10241	// traffic mirrored even if a PacketMirroring rule applies to them. This
10242	// can only be set to true for load balancers that have their
10243	// loadBalancingScheme set to INTERNAL.
10244	IsMirroringCollector bool `json:"isMirroringCollector,omitempty"`
10245
10246	// Kind: [Output Only] Type of the resource. Always
10247	// compute#forwardingRule for Forwarding Rule resources.
10248	Kind string `json:"kind,omitempty"`
10249
10250	// LabelFingerprint: A fingerprint for the labels being applied to this
10251	// resource, which is essentially a hash of the labels set used for
10252	// optimistic locking. The fingerprint is initially generated by Compute
10253	// Engine and changes after every request to modify or update labels.
10254	// You must always provide an up-to-date fingerprint hash in order to
10255	// update or change labels, otherwise the request will fail with error
10256	// 412 conditionNotMet.
10257	//
10258	// To see the latest fingerprint, make a get() request to retrieve a
10259	// ForwardingRule.
10260	LabelFingerprint string `json:"labelFingerprint,omitempty"`
10261
10262	// Labels: Labels to apply to this resource. These can be later modified
10263	// by the setLabels method. Each label key/value pair must comply with
10264	// RFC1035. Label values may be empty.
10265	Labels map[string]string `json:"labels,omitempty"`
10266
10267	// LoadBalancingScheme: Specifies the forwarding rule type.
10268	//
10269	//
10270	// - EXTERNAL is used for:
10271	// - Classic Cloud VPN gateways
10272	// - Protocol forwarding to VMs from an external IP address
10273	// - The following load balancers: HTTP(S), SSL Proxy, TCP Proxy, and
10274	// Network TCP/UDP
10275	// - INTERNAL is used for:
10276	// - Protocol forwarding to VMs from an internal IP address
10277	// - Internal TCP/UDP load balancers
10278	// - INTERNAL_MANAGED is used for:
10279	// - Internal HTTP(S) load balancers
10280	// - >INTERNAL_SELF_MANAGED is used for:
10281	// - Traffic Director
10282	//
10283	// For more information about forwarding rules, refer to Forwarding rule
10284	// concepts.
10285	//
10286	// Possible values:
10287	//   "EXTERNAL"
10288	//   "INTERNAL"
10289	//   "INTERNAL_MANAGED"
10290	//   "INTERNAL_SELF_MANAGED"
10291	//   "INVALID"
10292	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
10293
10294	// MetadataFilters: Opaque filter criteria used by Loadbalancer to
10295	// restrict routing configuration to a limited set of xDS compliant
10296	// clients. In their xDS requests to Loadbalancer, xDS clients present
10297	// node metadata. If a match takes place, the relevant configuration is
10298	// made available to those proxies. Otherwise, all the resources (e.g.
10299	// TargetHttpProxy, UrlMap) referenced by the ForwardingRule will not be
10300	// visible to those proxies.
10301	// For each metadataFilter in this list, if its filterMatchCriteria is
10302	// set to MATCH_ANY, at least one of the filterLabels must match the
10303	// corresponding label provided in the metadata. If its
10304	// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
10305	// must match with corresponding labels provided in the
10306	// metadata.
10307	// metadataFilters specified here will be applifed before those
10308	// specified in the UrlMap that this ForwardingRule
10309	// references.
10310	// metadataFilters only applies to Loadbalancers that have their
10311	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
10312	MetadataFilters []*MetadataFilter `json:"metadataFilters,omitempty"`
10313
10314	// Name: Name of the resource; provided by the client when the resource
10315	// is created. The name must be 1-63 characters long, and comply with
10316	// RFC1035. Specifically, the name must be 1-63 characters long and
10317	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
10318	// the first character must be a lowercase letter, and all following
10319	// characters must be a dash, lowercase letter, or digit, except the
10320	// last character, which cannot be a dash.
10321	Name string `json:"name,omitempty"`
10322
10323	// Network: This field is not used for external load balancing.
10324	//
10325	// For INTERNAL and INTERNAL_SELF_MANAGED load balancing, this field
10326	// identifies the network that the load balanced IP should belong to for
10327	// this Forwarding Rule. If this field is not specified, the default
10328	// network will be used.
10329	Network string `json:"network,omitempty"`
10330
10331	// NetworkTier: This signifies the networking tier used for configuring
10332	// this load balancer and can only take the following values: PREMIUM ,
10333	// STANDARD.
10334	//
10335	// For regional ForwardingRule, the valid values are PREMIUM and
10336	// STANDARD. For GlobalForwardingRule, the valid value is PREMIUM.
10337	//
10338	// If this field is not specified, it is assumed to be PREMIUM. If
10339	// IPAddress is specified, this value must be equal to the networkTier
10340	// of the Address.
10341	//
10342	// Possible values:
10343	//   "PREMIUM"
10344	//   "SELECT"
10345	//   "STANDARD"
10346	NetworkTier string `json:"networkTier,omitempty"`
10347
10348	// PortRange: When the load balancing scheme is EXTERNAL,
10349	// INTERNAL_SELF_MANAGED and INTERNAL_MANAGED, you can specify a
10350	// port_range. Use with a forwarding rule that points to a target proxy
10351	// or a target pool. Do not use with a forwarding rule that points to a
10352	// backend service. This field is used along with the target field for
10353	// TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy,
10354	// TargetVpnGateway, TargetPool, TargetInstance.
10355	//
10356	// Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets
10357	// addressed to ports in the specified range will be forwarded to
10358	// target. Forwarding rules with the same [IPAddress, IPProtocol] pair
10359	// must have disjoint port ranges.
10360	//
10361	// Some types of forwarding target have constraints on the acceptable
10362	// ports:
10363	// - TargetHttpProxy: 80, 8080
10364	// - TargetHttpsProxy: 443
10365	// - TargetTcpProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993,
10366	// 995, 1688, 1883, 5222
10367	// - TargetSslProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993,
10368	// 995, 1688, 1883, 5222
10369	// - TargetVpnGateway: 500, 4500
10370	PortRange string `json:"portRange,omitempty"`
10371
10372	// Ports: This field is used along with the backend_service field for
10373	// internal load balancing.
10374	//
10375	// When the load balancing scheme is INTERNAL, a list of ports can be
10376	// configured, for example, ['80'], ['8000','9000']. Only packets
10377	// addressed to these ports are forwarded to the backends configured
10378	// with the forwarding rule.
10379	//
10380	// If the forwarding rule's loadBalancingScheme is INTERNAL, you can
10381	// specify ports in one of the following ways:
10382	//
10383	// * A list of up to five ports, which can be non-contiguous * Keyword
10384	// ALL, which causes the forwarding rule to forward traffic on any port
10385	// of the forwarding rule's protocol.
10386	Ports []string `json:"ports,omitempty"`
10387
10388	// Region: [Output Only] URL of the region where the regional forwarding
10389	// rule resides. This field is not applicable to global forwarding
10390	// rules. You must specify this field as part of the HTTP request URL.
10391	// It is not settable as a field in the request body.
10392	Region string `json:"region,omitempty"`
10393
10394	// SelfLink: [Output Only] Server-defined URL for the resource.
10395	SelfLink string `json:"selfLink,omitempty"`
10396
10397	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
10398	// with the resource id.
10399	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
10400
10401	// ServiceLabel: An optional prefix to the service name for this
10402	// Forwarding Rule. If specified, the prefix is the first label of the
10403	// fully qualified service name.
10404	//
10405	// The label must be 1-63 characters long, and comply with RFC1035.
10406	// Specifically, the label must be 1-63 characters long and match the
10407	// regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
10408	// character must be a lowercase letter, and all following characters
10409	// must be a dash, lowercase letter, or digit, except the last
10410	// character, which cannot be a dash.
10411	//
10412	// This field is only used for internal load balancing.
10413	ServiceLabel string `json:"serviceLabel,omitempty"`
10414
10415	// ServiceName: [Output Only] The internal fully qualified service name
10416	// for this Forwarding Rule.
10417	//
10418	// This field is only used for internal load balancing.
10419	ServiceName string `json:"serviceName,omitempty"`
10420
10421	// Subnetwork: This field is only used for INTERNAL load balancing.
10422	//
10423	// For internal load balancing, this field identifies the subnetwork
10424	// that the load balanced IP should belong to for this Forwarding
10425	// Rule.
10426	//
10427	// If the network specified is in auto subnet mode, this field is
10428	// optional. However, if the network is in custom subnet mode, a
10429	// subnetwork must be specified.
10430	Subnetwork string `json:"subnetwork,omitempty"`
10431
10432	// Target: The URL of the target resource to receive the matched
10433	// traffic. For regional forwarding rules, this target must live in the
10434	// same region as the forwarding rule. For global forwarding rules, this
10435	// target must be a global load balancing resource. The forwarded
10436	// traffic must be of a type appropriate to the target object. For
10437	// INTERNAL_SELF_MANAGED load balancing, only targetHttpProxy is valid,
10438	// not targetHttpsProxy.
10439	Target string `json:"target,omitempty"`
10440
10441	// ServerResponse contains the HTTP response code and headers from the
10442	// server.
10443	googleapi.ServerResponse `json:"-"`
10444
10445	// ForceSendFields is a list of field names (e.g. "IPAddress") to
10446	// unconditionally include in API requests. By default, fields with
10447	// empty values are omitted from API requests. However, any non-pointer,
10448	// non-interface field appearing in ForceSendFields will be sent to the
10449	// server regardless of whether the field is empty or not. This may be
10450	// used to include empty fields in Patch requests.
10451	ForceSendFields []string `json:"-"`
10452
10453	// NullFields is a list of field names (e.g. "IPAddress") to include in
10454	// API requests with the JSON null value. By default, fields with empty
10455	// values are omitted from API requests. However, any field with an
10456	// empty value appearing in NullFields will be sent to the server as
10457	// null. It is an error if a field in this list has a non-empty value.
10458	// This may be used to include null fields in Patch requests.
10459	NullFields []string `json:"-"`
10460}
10461
10462func (s *ForwardingRule) MarshalJSON() ([]byte, error) {
10463	type NoMethod ForwardingRule
10464	raw := NoMethod(*s)
10465	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10466}
10467
10468type ForwardingRuleAggregatedList struct {
10469	// Id: [Output Only] Unique identifier for the resource; defined by the
10470	// server.
10471	Id string `json:"id,omitempty"`
10472
10473	// Items: A list of ForwardingRulesScopedList resources.
10474	Items map[string]ForwardingRulesScopedList `json:"items,omitempty"`
10475
10476	// Kind: [Output Only] Type of resource. Always
10477	// compute#forwardingRuleAggregatedList for lists of forwarding rules.
10478	Kind string `json:"kind,omitempty"`
10479
10480	// NextPageToken: [Output Only] This token allows you to get the next
10481	// page of results for list requests. If the number of results is larger
10482	// than maxResults, use the nextPageToken as a value for the query
10483	// parameter pageToken in the next list request. Subsequent list
10484	// requests will have their own nextPageToken to continue paging through
10485	// the results.
10486	NextPageToken string `json:"nextPageToken,omitempty"`
10487
10488	// SelfLink: [Output Only] Server-defined URL for this resource.
10489	SelfLink string `json:"selfLink,omitempty"`
10490
10491	// Warning: [Output Only] Informational warning message.
10492	Warning *ForwardingRuleAggregatedListWarning `json:"warning,omitempty"`
10493
10494	// ServerResponse contains the HTTP response code and headers from the
10495	// server.
10496	googleapi.ServerResponse `json:"-"`
10497
10498	// ForceSendFields is a list of field names (e.g. "Id") to
10499	// unconditionally include in API requests. By default, fields with
10500	// empty values are omitted from API requests. However, any non-pointer,
10501	// non-interface field appearing in ForceSendFields will be sent to the
10502	// server regardless of whether the field is empty or not. This may be
10503	// used to include empty fields in Patch requests.
10504	ForceSendFields []string `json:"-"`
10505
10506	// NullFields is a list of field names (e.g. "Id") to include in API
10507	// requests with the JSON null value. By default, fields with empty
10508	// values are omitted from API requests. However, any field with an
10509	// empty value appearing in NullFields will be sent to the server as
10510	// null. It is an error if a field in this list has a non-empty value.
10511	// This may be used to include null fields in Patch requests.
10512	NullFields []string `json:"-"`
10513}
10514
10515func (s *ForwardingRuleAggregatedList) MarshalJSON() ([]byte, error) {
10516	type NoMethod ForwardingRuleAggregatedList
10517	raw := NoMethod(*s)
10518	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10519}
10520
10521// ForwardingRuleAggregatedListWarning: [Output Only] Informational
10522// warning message.
10523type ForwardingRuleAggregatedListWarning struct {
10524	// Code: [Output Only] A warning code, if applicable. For example,
10525	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10526	// the response.
10527	//
10528	// Possible values:
10529	//   "CLEANUP_FAILED"
10530	//   "DEPRECATED_RESOURCE_USED"
10531	//   "DEPRECATED_TYPE_USED"
10532	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10533	//   "EXPERIMENTAL_TYPE_USED"
10534	//   "EXTERNAL_API_WARNING"
10535	//   "FIELD_VALUE_OVERRIDEN"
10536	//   "INJECTED_KERNELS_DEPRECATED"
10537	//   "MISSING_TYPE_DEPENDENCY"
10538	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10539	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10540	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10541	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10542	//   "NEXT_HOP_NOT_RUNNING"
10543	//   "NOT_CRITICAL_ERROR"
10544	//   "NO_RESULTS_ON_PAGE"
10545	//   "REQUIRED_TOS_AGREEMENT"
10546	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10547	//   "RESOURCE_NOT_DELETED"
10548	//   "SCHEMA_VALIDATION_IGNORED"
10549	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10550	//   "UNDECLARED_PROPERTIES"
10551	//   "UNREACHABLE"
10552	Code string `json:"code,omitempty"`
10553
10554	// Data: [Output Only] Metadata about this warning in key: value format.
10555	// For example:
10556	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10557	Data []*ForwardingRuleAggregatedListWarningData `json:"data,omitempty"`
10558
10559	// Message: [Output Only] A human-readable description of the warning
10560	// code.
10561	Message string `json:"message,omitempty"`
10562
10563	// ForceSendFields is a list of field names (e.g. "Code") to
10564	// unconditionally include in API requests. By default, fields with
10565	// empty values are omitted from API requests. However, any non-pointer,
10566	// non-interface field appearing in ForceSendFields will be sent to the
10567	// server regardless of whether the field is empty or not. This may be
10568	// used to include empty fields in Patch requests.
10569	ForceSendFields []string `json:"-"`
10570
10571	// NullFields is a list of field names (e.g. "Code") to include in API
10572	// requests with the JSON null value. By default, fields with empty
10573	// values are omitted from API requests. However, any field with an
10574	// empty value appearing in NullFields will be sent to the server as
10575	// null. It is an error if a field in this list has a non-empty value.
10576	// This may be used to include null fields in Patch requests.
10577	NullFields []string `json:"-"`
10578}
10579
10580func (s *ForwardingRuleAggregatedListWarning) MarshalJSON() ([]byte, error) {
10581	type NoMethod ForwardingRuleAggregatedListWarning
10582	raw := NoMethod(*s)
10583	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10584}
10585
10586type ForwardingRuleAggregatedListWarningData struct {
10587	// Key: [Output Only] A key that provides more detail on the warning
10588	// being returned. For example, for warnings where there are no results
10589	// in a list request for a particular zone, this key might be scope and
10590	// the key value might be the zone name. Other examples might be a key
10591	// indicating a deprecated resource and a suggested replacement, or a
10592	// warning about invalid network settings (for example, if an instance
10593	// attempts to perform IP forwarding but is not enabled for IP
10594	// forwarding).
10595	Key string `json:"key,omitempty"`
10596
10597	// Value: [Output Only] A warning data value corresponding to the key.
10598	Value string `json:"value,omitempty"`
10599
10600	// ForceSendFields is a list of field names (e.g. "Key") to
10601	// unconditionally include in API requests. By default, fields with
10602	// empty values are omitted from API requests. However, any non-pointer,
10603	// non-interface field appearing in ForceSendFields will be sent to the
10604	// server regardless of whether the field is empty or not. This may be
10605	// used to include empty fields in Patch requests.
10606	ForceSendFields []string `json:"-"`
10607
10608	// NullFields is a list of field names (e.g. "Key") to include in API
10609	// requests with the JSON null value. By default, fields with empty
10610	// values are omitted from API requests. However, any field with an
10611	// empty value appearing in NullFields will be sent to the server as
10612	// null. It is an error if a field in this list has a non-empty value.
10613	// This may be used to include null fields in Patch requests.
10614	NullFields []string `json:"-"`
10615}
10616
10617func (s *ForwardingRuleAggregatedListWarningData) MarshalJSON() ([]byte, error) {
10618	type NoMethod ForwardingRuleAggregatedListWarningData
10619	raw := NoMethod(*s)
10620	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10621}
10622
10623// ForwardingRuleList: Contains a list of ForwardingRule resources.
10624type ForwardingRuleList struct {
10625	// Id: [Output Only] Unique identifier for the resource; defined by the
10626	// server.
10627	Id string `json:"id,omitempty"`
10628
10629	// Items: A list of ForwardingRule resources.
10630	Items []*ForwardingRule `json:"items,omitempty"`
10631
10632	// Kind: Type of resource.
10633	Kind string `json:"kind,omitempty"`
10634
10635	// NextPageToken: [Output Only] This token allows you to get the next
10636	// page of results for list requests. If the number of results is larger
10637	// than maxResults, use the nextPageToken as a value for the query
10638	// parameter pageToken in the next list request. Subsequent list
10639	// requests will have their own nextPageToken to continue paging through
10640	// the results.
10641	NextPageToken string `json:"nextPageToken,omitempty"`
10642
10643	// SelfLink: [Output Only] Server-defined URL for this resource.
10644	SelfLink string `json:"selfLink,omitempty"`
10645
10646	// Warning: [Output Only] Informational warning message.
10647	Warning *ForwardingRuleListWarning `json:"warning,omitempty"`
10648
10649	// ServerResponse contains the HTTP response code and headers from the
10650	// server.
10651	googleapi.ServerResponse `json:"-"`
10652
10653	// ForceSendFields is a list of field names (e.g. "Id") to
10654	// unconditionally include in API requests. By default, fields with
10655	// empty values are omitted from API requests. However, any non-pointer,
10656	// non-interface field appearing in ForceSendFields will be sent to the
10657	// server regardless of whether the field is empty or not. This may be
10658	// used to include empty fields in Patch requests.
10659	ForceSendFields []string `json:"-"`
10660
10661	// NullFields is a list of field names (e.g. "Id") to include in API
10662	// requests with the JSON null value. By default, fields with empty
10663	// values are omitted from API requests. However, any field with an
10664	// empty value appearing in NullFields will be sent to the server as
10665	// null. It is an error if a field in this list has a non-empty value.
10666	// This may be used to include null fields in Patch requests.
10667	NullFields []string `json:"-"`
10668}
10669
10670func (s *ForwardingRuleList) MarshalJSON() ([]byte, error) {
10671	type NoMethod ForwardingRuleList
10672	raw := NoMethod(*s)
10673	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10674}
10675
10676// ForwardingRuleListWarning: [Output Only] Informational warning
10677// message.
10678type ForwardingRuleListWarning struct {
10679	// Code: [Output Only] A warning code, if applicable. For example,
10680	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10681	// the response.
10682	//
10683	// Possible values:
10684	//   "CLEANUP_FAILED"
10685	//   "DEPRECATED_RESOURCE_USED"
10686	//   "DEPRECATED_TYPE_USED"
10687	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10688	//   "EXPERIMENTAL_TYPE_USED"
10689	//   "EXTERNAL_API_WARNING"
10690	//   "FIELD_VALUE_OVERRIDEN"
10691	//   "INJECTED_KERNELS_DEPRECATED"
10692	//   "MISSING_TYPE_DEPENDENCY"
10693	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10694	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10695	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10696	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10697	//   "NEXT_HOP_NOT_RUNNING"
10698	//   "NOT_CRITICAL_ERROR"
10699	//   "NO_RESULTS_ON_PAGE"
10700	//   "REQUIRED_TOS_AGREEMENT"
10701	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10702	//   "RESOURCE_NOT_DELETED"
10703	//   "SCHEMA_VALIDATION_IGNORED"
10704	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10705	//   "UNDECLARED_PROPERTIES"
10706	//   "UNREACHABLE"
10707	Code string `json:"code,omitempty"`
10708
10709	// Data: [Output Only] Metadata about this warning in key: value format.
10710	// For example:
10711	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10712	Data []*ForwardingRuleListWarningData `json:"data,omitempty"`
10713
10714	// Message: [Output Only] A human-readable description of the warning
10715	// code.
10716	Message string `json:"message,omitempty"`
10717
10718	// ForceSendFields is a list of field names (e.g. "Code") to
10719	// unconditionally include in API requests. By default, fields with
10720	// empty values are omitted from API requests. However, any non-pointer,
10721	// non-interface field appearing in ForceSendFields will be sent to the
10722	// server regardless of whether the field is empty or not. This may be
10723	// used to include empty fields in Patch requests.
10724	ForceSendFields []string `json:"-"`
10725
10726	// NullFields is a list of field names (e.g. "Code") to include in API
10727	// requests with the JSON null value. By default, fields with empty
10728	// values are omitted from API requests. However, any field with an
10729	// empty value appearing in NullFields will be sent to the server as
10730	// null. It is an error if a field in this list has a non-empty value.
10731	// This may be used to include null fields in Patch requests.
10732	NullFields []string `json:"-"`
10733}
10734
10735func (s *ForwardingRuleListWarning) MarshalJSON() ([]byte, error) {
10736	type NoMethod ForwardingRuleListWarning
10737	raw := NoMethod(*s)
10738	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10739}
10740
10741type ForwardingRuleListWarningData struct {
10742	// Key: [Output Only] A key that provides more detail on the warning
10743	// being returned. For example, for warnings where there are no results
10744	// in a list request for a particular zone, this key might be scope and
10745	// the key value might be the zone name. Other examples might be a key
10746	// indicating a deprecated resource and a suggested replacement, or a
10747	// warning about invalid network settings (for example, if an instance
10748	// attempts to perform IP forwarding but is not enabled for IP
10749	// forwarding).
10750	Key string `json:"key,omitempty"`
10751
10752	// Value: [Output Only] A warning data value corresponding to the key.
10753	Value string `json:"value,omitempty"`
10754
10755	// ForceSendFields is a list of field names (e.g. "Key") to
10756	// unconditionally include in API requests. By default, fields with
10757	// empty values are omitted from API requests. However, any non-pointer,
10758	// non-interface field appearing in ForceSendFields will be sent to the
10759	// server regardless of whether the field is empty or not. This may be
10760	// used to include empty fields in Patch requests.
10761	ForceSendFields []string `json:"-"`
10762
10763	// NullFields is a list of field names (e.g. "Key") to include in API
10764	// requests with the JSON null value. By default, fields with empty
10765	// values are omitted from API requests. However, any field with an
10766	// empty value appearing in NullFields will be sent to the server as
10767	// null. It is an error if a field in this list has a non-empty value.
10768	// This may be used to include null fields in Patch requests.
10769	NullFields []string `json:"-"`
10770}
10771
10772func (s *ForwardingRuleListWarningData) MarshalJSON() ([]byte, error) {
10773	type NoMethod ForwardingRuleListWarningData
10774	raw := NoMethod(*s)
10775	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10776}
10777
10778type ForwardingRuleReference struct {
10779	ForwardingRule string `json:"forwardingRule,omitempty"`
10780
10781	// ForceSendFields is a list of field names (e.g. "ForwardingRule") to
10782	// unconditionally include in API requests. By default, fields with
10783	// empty values are omitted from API requests. However, any non-pointer,
10784	// non-interface field appearing in ForceSendFields will be sent to the
10785	// server regardless of whether the field is empty or not. This may be
10786	// used to include empty fields in Patch requests.
10787	ForceSendFields []string `json:"-"`
10788
10789	// NullFields is a list of field names (e.g. "ForwardingRule") to
10790	// include in API requests with the JSON null value. By default, fields
10791	// with empty values are omitted from API requests. However, any field
10792	// with an empty value appearing in NullFields will be sent to the
10793	// server as null. It is an error if a field in this list has a
10794	// non-empty value. This may be used to include null fields in Patch
10795	// requests.
10796	NullFields []string `json:"-"`
10797}
10798
10799func (s *ForwardingRuleReference) MarshalJSON() ([]byte, error) {
10800	type NoMethod ForwardingRuleReference
10801	raw := NoMethod(*s)
10802	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10803}
10804
10805type ForwardingRulesScopedList struct {
10806	// ForwardingRules: A list of forwarding rules contained in this scope.
10807	ForwardingRules []*ForwardingRule `json:"forwardingRules,omitempty"`
10808
10809	// Warning: Informational warning which replaces the list of forwarding
10810	// rules when the list is empty.
10811	Warning *ForwardingRulesScopedListWarning `json:"warning,omitempty"`
10812
10813	// ForceSendFields is a list of field names (e.g. "ForwardingRules") to
10814	// unconditionally include in API requests. By default, fields with
10815	// empty values are omitted from API requests. However, any non-pointer,
10816	// non-interface field appearing in ForceSendFields will be sent to the
10817	// server regardless of whether the field is empty or not. This may be
10818	// used to include empty fields in Patch requests.
10819	ForceSendFields []string `json:"-"`
10820
10821	// NullFields is a list of field names (e.g. "ForwardingRules") to
10822	// include in API requests with the JSON null value. By default, fields
10823	// with empty values are omitted from API requests. However, any field
10824	// with an empty value appearing in NullFields will be sent to the
10825	// server as null. It is an error if a field in this list has a
10826	// non-empty value. This may be used to include null fields in Patch
10827	// requests.
10828	NullFields []string `json:"-"`
10829}
10830
10831func (s *ForwardingRulesScopedList) MarshalJSON() ([]byte, error) {
10832	type NoMethod ForwardingRulesScopedList
10833	raw := NoMethod(*s)
10834	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10835}
10836
10837// ForwardingRulesScopedListWarning: Informational warning which
10838// replaces the list of forwarding rules when the list is empty.
10839type ForwardingRulesScopedListWarning struct {
10840	// Code: [Output Only] A warning code, if applicable. For example,
10841	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10842	// the response.
10843	//
10844	// Possible values:
10845	//   "CLEANUP_FAILED"
10846	//   "DEPRECATED_RESOURCE_USED"
10847	//   "DEPRECATED_TYPE_USED"
10848	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10849	//   "EXPERIMENTAL_TYPE_USED"
10850	//   "EXTERNAL_API_WARNING"
10851	//   "FIELD_VALUE_OVERRIDEN"
10852	//   "INJECTED_KERNELS_DEPRECATED"
10853	//   "MISSING_TYPE_DEPENDENCY"
10854	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10855	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10856	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10857	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10858	//   "NEXT_HOP_NOT_RUNNING"
10859	//   "NOT_CRITICAL_ERROR"
10860	//   "NO_RESULTS_ON_PAGE"
10861	//   "REQUIRED_TOS_AGREEMENT"
10862	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10863	//   "RESOURCE_NOT_DELETED"
10864	//   "SCHEMA_VALIDATION_IGNORED"
10865	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10866	//   "UNDECLARED_PROPERTIES"
10867	//   "UNREACHABLE"
10868	Code string `json:"code,omitempty"`
10869
10870	// Data: [Output Only] Metadata about this warning in key: value format.
10871	// For example:
10872	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10873	Data []*ForwardingRulesScopedListWarningData `json:"data,omitempty"`
10874
10875	// Message: [Output Only] A human-readable description of the warning
10876	// code.
10877	Message string `json:"message,omitempty"`
10878
10879	// ForceSendFields is a list of field names (e.g. "Code") to
10880	// unconditionally include in API requests. By default, fields with
10881	// empty values are omitted from API requests. However, any non-pointer,
10882	// non-interface field appearing in ForceSendFields will be sent to the
10883	// server regardless of whether the field is empty or not. This may be
10884	// used to include empty fields in Patch requests.
10885	ForceSendFields []string `json:"-"`
10886
10887	// NullFields is a list of field names (e.g. "Code") to include in API
10888	// requests with the JSON null value. By default, fields with empty
10889	// values are omitted from API requests. However, any field with an
10890	// empty value appearing in NullFields will be sent to the server as
10891	// null. It is an error if a field in this list has a non-empty value.
10892	// This may be used to include null fields in Patch requests.
10893	NullFields []string `json:"-"`
10894}
10895
10896func (s *ForwardingRulesScopedListWarning) MarshalJSON() ([]byte, error) {
10897	type NoMethod ForwardingRulesScopedListWarning
10898	raw := NoMethod(*s)
10899	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10900}
10901
10902type ForwardingRulesScopedListWarningData struct {
10903	// Key: [Output Only] A key that provides more detail on the warning
10904	// being returned. For example, for warnings where there are no results
10905	// in a list request for a particular zone, this key might be scope and
10906	// the key value might be the zone name. Other examples might be a key
10907	// indicating a deprecated resource and a suggested replacement, or a
10908	// warning about invalid network settings (for example, if an instance
10909	// attempts to perform IP forwarding but is not enabled for IP
10910	// forwarding).
10911	Key string `json:"key,omitempty"`
10912
10913	// Value: [Output Only] A warning data value corresponding to the key.
10914	Value string `json:"value,omitempty"`
10915
10916	// ForceSendFields is a list of field names (e.g. "Key") to
10917	// unconditionally include in API requests. By default, fields with
10918	// empty values are omitted from API requests. However, any non-pointer,
10919	// non-interface field appearing in ForceSendFields will be sent to the
10920	// server regardless of whether the field is empty or not. This may be
10921	// used to include empty fields in Patch requests.
10922	ForceSendFields []string `json:"-"`
10923
10924	// NullFields is a list of field names (e.g. "Key") to include in API
10925	// requests with the JSON null value. By default, fields with empty
10926	// values are omitted from API requests. However, any field with an
10927	// empty value appearing in NullFields will be sent to the server as
10928	// null. It is an error if a field in this list has a non-empty value.
10929	// This may be used to include null fields in Patch requests.
10930	NullFields []string `json:"-"`
10931}
10932
10933func (s *ForwardingRulesScopedListWarningData) MarshalJSON() ([]byte, error) {
10934	type NoMethod ForwardingRulesScopedListWarningData
10935	raw := NoMethod(*s)
10936	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10937}
10938
10939type GlobalNetworkEndpointGroupsAttachEndpointsRequest struct {
10940	// NetworkEndpoints: The list of network endpoints to be attached.
10941	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
10942
10943	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
10944	// unconditionally include in API requests. By default, fields with
10945	// empty values are omitted from API requests. However, any non-pointer,
10946	// non-interface field appearing in ForceSendFields will be sent to the
10947	// server regardless of whether the field is empty or not. This may be
10948	// used to include empty fields in Patch requests.
10949	ForceSendFields []string `json:"-"`
10950
10951	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
10952	// include in API requests with the JSON null value. By default, fields
10953	// with empty values are omitted from API requests. However, any field
10954	// with an empty value appearing in NullFields will be sent to the
10955	// server as null. It is an error if a field in this list has a
10956	// non-empty value. This may be used to include null fields in Patch
10957	// requests.
10958	NullFields []string `json:"-"`
10959}
10960
10961func (s *GlobalNetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) {
10962	type NoMethod GlobalNetworkEndpointGroupsAttachEndpointsRequest
10963	raw := NoMethod(*s)
10964	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10965}
10966
10967type GlobalNetworkEndpointGroupsDetachEndpointsRequest struct {
10968	// NetworkEndpoints: The list of network endpoints to be detached.
10969	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
10970
10971	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
10972	// unconditionally include in API requests. By default, fields with
10973	// empty values are omitted from API requests. However, any non-pointer,
10974	// non-interface field appearing in ForceSendFields will be sent to the
10975	// server regardless of whether the field is empty or not. This may be
10976	// used to include empty fields in Patch requests.
10977	ForceSendFields []string `json:"-"`
10978
10979	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
10980	// include in API requests with the JSON null value. By default, fields
10981	// with empty values are omitted from API requests. However, any field
10982	// with an empty value appearing in NullFields will be sent to the
10983	// server as null. It is an error if a field in this list has a
10984	// non-empty value. This may be used to include null fields in Patch
10985	// requests.
10986	NullFields []string `json:"-"`
10987}
10988
10989func (s *GlobalNetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) {
10990	type NoMethod GlobalNetworkEndpointGroupsDetachEndpointsRequest
10991	raw := NoMethod(*s)
10992	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10993}
10994
10995type GlobalSetLabelsRequest struct {
10996	// LabelFingerprint: The fingerprint of the previous set of labels for
10997	// this resource, used to detect conflicts. The fingerprint is initially
10998	// generated by Compute Engine and changes after every request to modify
10999	// or update labels. You must always provide an up-to-date fingerprint
11000	// hash when updating or changing labels, otherwise the request will
11001	// fail with error 412 conditionNotMet. Make a get() request to the
11002	// resource to get the latest fingerprint.
11003	LabelFingerprint string `json:"labelFingerprint,omitempty"`
11004
11005	// Labels: A list of labels to apply for this resource. Each label key &
11006	// value must comply with RFC1035. Specifically, the name must be 1-63
11007	// characters long and match the regular expression
11008	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
11009	// a lowercase letter, and all following characters must be a dash,
11010	// lowercase letter, or digit, except the last character, which cannot
11011	// be a dash. For example, "webserver-frontend": "images". A label value
11012	// can also be empty (e.g. "my-label": "").
11013	Labels map[string]string `json:"labels,omitempty"`
11014
11015	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
11016	// unconditionally include in API requests. By default, fields with
11017	// empty values are omitted from API requests. However, any non-pointer,
11018	// non-interface field appearing in ForceSendFields will be sent to the
11019	// server regardless of whether the field is empty or not. This may be
11020	// used to include empty fields in Patch requests.
11021	ForceSendFields []string `json:"-"`
11022
11023	// NullFields is a list of field names (e.g. "LabelFingerprint") to
11024	// include in API requests with the JSON null value. By default, fields
11025	// with empty values are omitted from API requests. However, any field
11026	// with an empty value appearing in NullFields will be sent to the
11027	// server as null. It is an error if a field in this list has a
11028	// non-empty value. This may be used to include null fields in Patch
11029	// requests.
11030	NullFields []string `json:"-"`
11031}
11032
11033func (s *GlobalSetLabelsRequest) MarshalJSON() ([]byte, error) {
11034	type NoMethod GlobalSetLabelsRequest
11035	raw := NoMethod(*s)
11036	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11037}
11038
11039type GlobalSetPolicyRequest struct {
11040	// Bindings: Flatten Policy to create a backward compatible wire-format.
11041	// Deprecated. Use 'policy' to specify bindings.
11042	Bindings []*Binding `json:"bindings,omitempty"`
11043
11044	// Etag: Flatten Policy to create a backward compatible wire-format.
11045	// Deprecated. Use 'policy' to specify the etag.
11046	Etag string `json:"etag,omitempty"`
11047
11048	// Policy: REQUIRED: The complete policy to be applied to the
11049	// 'resource'. The size of the policy is limited to a few 10s of KB. An
11050	// empty policy is in general a valid policy but certain services (like
11051	// Projects) might reject them.
11052	Policy *Policy `json:"policy,omitempty"`
11053
11054	// ForceSendFields is a list of field names (e.g. "Bindings") to
11055	// unconditionally include in API requests. By default, fields with
11056	// empty values are omitted from API requests. However, any non-pointer,
11057	// non-interface field appearing in ForceSendFields will be sent to the
11058	// server regardless of whether the field is empty or not. This may be
11059	// used to include empty fields in Patch requests.
11060	ForceSendFields []string `json:"-"`
11061
11062	// NullFields is a list of field names (e.g. "Bindings") to include in
11063	// API requests with the JSON null value. By default, fields with empty
11064	// values are omitted from API requests. However, any field with an
11065	// empty value appearing in NullFields will be sent to the server as
11066	// null. It is an error if a field in this list has a non-empty value.
11067	// This may be used to include null fields in Patch requests.
11068	NullFields []string `json:"-"`
11069}
11070
11071func (s *GlobalSetPolicyRequest) MarshalJSON() ([]byte, error) {
11072	type NoMethod GlobalSetPolicyRequest
11073	raw := NoMethod(*s)
11074	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11075}
11076
11077// GoogleDuration: A Duration represents a signed, fixed-length span of
11078// time represented as a count of seconds and fractions of seconds at
11079// nanosecond resolution. It is independent of any calendar and concepts
11080// like "day" or "month". It is related to Timestamp in that the
11081// difference between two Timestamp values is a Duration and it can be
11082// added or subtracted from a Timestamp. Range is approximately +-10,000
11083// years.
11084//
11085// # Examples
11086//
11087// Example 1: Compute Duration from two Timestamps in pseudo
11088// code.
11089//
11090// Timestamp start = ...; Timestamp end = ...; Duration duration =
11091// ...;
11092//
11093// duration.seconds = end.seconds - start.seconds; duration.nanos =
11094// end.nanos - start.nanos;
11095//
11096// if (duration.seconds  0) { duration.seconds += 1; duration.nanos -=
11097// 1000000000; } else if (duration.seconds > 0 && duration.nanos < 0) {
11098// duration.seconds -= 1; duration.nanos += 1000000000; }
11099//
11100// Example 2: Compute Timestamp from Timestamp + Duration in pseudo
11101// code.
11102//
11103// Timestamp start = ...; Duration duration = ...; Timestamp end =
11104// ...;
11105//
11106// end.seconds = start.seconds + duration.seconds; end.nanos =
11107// start.nanos + duration.nanos;
11108//
11109// if (end.nanos = 1000000000) { end.seconds += 1; end.nanos -=
11110// 1000000000; }
11111//
11112// Example 3: Compute Duration from datetime.timedelta in Python.
11113//
11114// td = datetime.timedelta(days=3, minutes=10) duration = Duration()
11115// duration.FromTimedelta(td)
11116//
11117// # JSON Mapping
11118//
11119// In JSON format, the Duration type is encoded as a string rather than
11120// an object, where the string ends in the suffix "s" (indicating
11121// seconds) and is preceded by the number of seconds, with nanoseconds
11122// expressed as fractional seconds. For example, 3 seconds with 0
11123// nanoseconds should be encoded in JSON format as "3s", while 3 seconds
11124// and 1 nanosecond should be expressed in JSON format as
11125// "3.000000001s", and 3 seconds and 1 microsecond should be expressed
11126// in JSON format as "3.000001s".
11127type GoogleDuration struct {
11128	// Nanos: Signed fractions of a second at nanosecond resolution of the
11129	// span of time. Durations less than one second are represented with a 0
11130	// `seconds` field and a positive or negative `nanos` field. For
11131	// durations of one second or more, a non-zero value for the `nanos`
11132	// field must be of the same sign as the `seconds` field. Must be from
11133	// -999,999,999 to +999,999,999 inclusive.
11134	Nanos int64 `json:"nanos,omitempty"`
11135
11136	// Seconds: Signed seconds of the span of time. Must be from
11137	// -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds
11138	// are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25
11139	// days/year * 10000 years
11140	Seconds int64 `json:"seconds,omitempty,string"`
11141
11142	// ForceSendFields is a list of field names (e.g. "Nanos") to
11143	// unconditionally include in API requests. By default, fields with
11144	// empty values are omitted from API requests. However, any non-pointer,
11145	// non-interface field appearing in ForceSendFields will be sent to the
11146	// server regardless of whether the field is empty or not. This may be
11147	// used to include empty fields in Patch requests.
11148	ForceSendFields []string `json:"-"`
11149
11150	// NullFields is a list of field names (e.g. "Nanos") to include in API
11151	// requests with the JSON null value. By default, fields with empty
11152	// values are omitted from API requests. However, any field with an
11153	// empty value appearing in NullFields will be sent to the server as
11154	// null. It is an error if a field in this list has a non-empty value.
11155	// This may be used to include null fields in Patch requests.
11156	NullFields []string `json:"-"`
11157}
11158
11159func (s *GoogleDuration) MarshalJSON() ([]byte, error) {
11160	type NoMethod GoogleDuration
11161	raw := NoMethod(*s)
11162	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11163}
11164
11165// GrpcServiceConfig: gRPC config to access the SDS server.
11166type GrpcServiceConfig struct {
11167	// CallCredentials: The call credentials to access the SDS server.
11168	CallCredentials *CallCredentials `json:"callCredentials,omitempty"`
11169
11170	// ChannelCredentials: The channel credentials to access the SDS server.
11171	ChannelCredentials *ChannelCredentials `json:"channelCredentials,omitempty"`
11172
11173	// TargetUri: The target URI of the SDS server.
11174	TargetUri string `json:"targetUri,omitempty"`
11175
11176	// ForceSendFields is a list of field names (e.g. "CallCredentials") to
11177	// unconditionally include in API requests. By default, fields with
11178	// empty values are omitted from API requests. However, any non-pointer,
11179	// non-interface field appearing in ForceSendFields will be sent to the
11180	// server regardless of whether the field is empty or not. This may be
11181	// used to include empty fields in Patch requests.
11182	ForceSendFields []string `json:"-"`
11183
11184	// NullFields is a list of field names (e.g. "CallCredentials") to
11185	// include in API requests with the JSON null value. By default, fields
11186	// with empty values are omitted from API requests. However, any field
11187	// with an empty value appearing in NullFields will be sent to the
11188	// server as null. It is an error if a field in this list has a
11189	// non-empty value. This may be used to include null fields in Patch
11190	// requests.
11191	NullFields []string `json:"-"`
11192}
11193
11194func (s *GrpcServiceConfig) MarshalJSON() ([]byte, error) {
11195	type NoMethod GrpcServiceConfig
11196	raw := NoMethod(*s)
11197	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11198}
11199
11200// GuestAttributes: A guest attributes entry.
11201type GuestAttributes struct {
11202	// Kind: [Output Only] Type of the resource. Always
11203	// compute#guestAttributes for guest attributes entry.
11204	Kind string `json:"kind,omitempty"`
11205
11206	// QueryPath: The path to be queried. This can be the default namespace
11207	// ('/') or a nested namespace ('/\/') or a specified key ('/\/\')
11208	QueryPath string `json:"queryPath,omitempty"`
11209
11210	// QueryValue: [Output Only] The value of the requested queried path.
11211	QueryValue *GuestAttributesValue `json:"queryValue,omitempty"`
11212
11213	// SelfLink: [Output Only] Server-defined URL for this resource.
11214	SelfLink string `json:"selfLink,omitempty"`
11215
11216	// VariableKey: The key to search for.
11217	VariableKey string `json:"variableKey,omitempty"`
11218
11219	// VariableValue: [Output Only] The value found for the requested key.
11220	VariableValue string `json:"variableValue,omitempty"`
11221
11222	// ServerResponse contains the HTTP response code and headers from the
11223	// server.
11224	googleapi.ServerResponse `json:"-"`
11225
11226	// ForceSendFields is a list of field names (e.g. "Kind") to
11227	// unconditionally include in API requests. By default, fields with
11228	// empty values are omitted from API requests. However, any non-pointer,
11229	// non-interface field appearing in ForceSendFields will be sent to the
11230	// server regardless of whether the field is empty or not. This may be
11231	// used to include empty fields in Patch requests.
11232	ForceSendFields []string `json:"-"`
11233
11234	// NullFields is a list of field names (e.g. "Kind") to include in API
11235	// requests with the JSON null value. By default, fields with empty
11236	// values are omitted from API requests. However, any field with an
11237	// empty value appearing in NullFields will be sent to the server as
11238	// null. It is an error if a field in this list has a non-empty value.
11239	// This may be used to include null fields in Patch requests.
11240	NullFields []string `json:"-"`
11241}
11242
11243func (s *GuestAttributes) MarshalJSON() ([]byte, error) {
11244	type NoMethod GuestAttributes
11245	raw := NoMethod(*s)
11246	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11247}
11248
11249// GuestAttributesEntry: A guest attributes namespace/key/value entry.
11250type GuestAttributesEntry struct {
11251	// Key: Key for the guest attribute entry.
11252	Key string `json:"key,omitempty"`
11253
11254	// Namespace: Namespace for the guest attribute entry.
11255	Namespace string `json:"namespace,omitempty"`
11256
11257	// Value: Value for the guest attribute entry.
11258	Value string `json:"value,omitempty"`
11259
11260	// ForceSendFields is a list of field names (e.g. "Key") to
11261	// unconditionally include in API requests. By default, fields with
11262	// empty values are omitted from API requests. However, any non-pointer,
11263	// non-interface field appearing in ForceSendFields will be sent to the
11264	// server regardless of whether the field is empty or not. This may be
11265	// used to include empty fields in Patch requests.
11266	ForceSendFields []string `json:"-"`
11267
11268	// NullFields is a list of field names (e.g. "Key") to include in API
11269	// requests with the JSON null value. By default, fields with empty
11270	// values are omitted from API requests. However, any field with an
11271	// empty value appearing in NullFields will be sent to the server as
11272	// null. It is an error if a field in this list has a non-empty value.
11273	// This may be used to include null fields in Patch requests.
11274	NullFields []string `json:"-"`
11275}
11276
11277func (s *GuestAttributesEntry) MarshalJSON() ([]byte, error) {
11278	type NoMethod GuestAttributesEntry
11279	raw := NoMethod(*s)
11280	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11281}
11282
11283// GuestAttributesValue: Array of guest attribute namespace/key/value
11284// tuples.
11285type GuestAttributesValue struct {
11286	Items []*GuestAttributesEntry `json:"items,omitempty"`
11287
11288	// ForceSendFields is a list of field names (e.g. "Items") to
11289	// unconditionally include in API requests. By default, fields with
11290	// empty values are omitted from API requests. However, any non-pointer,
11291	// non-interface field appearing in ForceSendFields will be sent to the
11292	// server regardless of whether the field is empty or not. This may be
11293	// used to include empty fields in Patch requests.
11294	ForceSendFields []string `json:"-"`
11295
11296	// NullFields is a list of field names (e.g. "Items") to include in API
11297	// requests with the JSON null value. By default, fields with empty
11298	// values are omitted from API requests. However, any field with an
11299	// empty value appearing in NullFields will be sent to the server as
11300	// null. It is an error if a field in this list has a non-empty value.
11301	// This may be used to include null fields in Patch requests.
11302	NullFields []string `json:"-"`
11303}
11304
11305func (s *GuestAttributesValue) MarshalJSON() ([]byte, error) {
11306	type NoMethod GuestAttributesValue
11307	raw := NoMethod(*s)
11308	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11309}
11310
11311// GuestOsFeature: Guest OS features.
11312type GuestOsFeature struct {
11313	// Type: The ID of a supported feature. Read  Enabling guest operating
11314	// system features to see a list of available options.
11315	//
11316	// Possible values:
11317	//   "FEATURE_TYPE_UNSPECIFIED"
11318	//   "GVNIC"
11319	//   "MULTI_IP_SUBNET"
11320	//   "SECURE_BOOT"
11321	//   "UEFI_COMPATIBLE"
11322	//   "VIRTIO_SCSI_MULTIQUEUE"
11323	//   "WINDOWS"
11324	Type string `json:"type,omitempty"`
11325
11326	// ForceSendFields is a list of field names (e.g. "Type") to
11327	// unconditionally include in API requests. By default, fields with
11328	// empty values are omitted from API requests. However, any non-pointer,
11329	// non-interface field appearing in ForceSendFields will be sent to the
11330	// server regardless of whether the field is empty or not. This may be
11331	// used to include empty fields in Patch requests.
11332	ForceSendFields []string `json:"-"`
11333
11334	// NullFields is a list of field names (e.g. "Type") to include in API
11335	// requests with the JSON null value. By default, fields with empty
11336	// values are omitted from API requests. However, any field with an
11337	// empty value appearing in NullFields will be sent to the server as
11338	// null. It is an error if a field in this list has a non-empty value.
11339	// This may be used to include null fields in Patch requests.
11340	NullFields []string `json:"-"`
11341}
11342
11343func (s *GuestOsFeature) MarshalJSON() ([]byte, error) {
11344	type NoMethod GuestOsFeature
11345	raw := NoMethod(*s)
11346	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11347}
11348
11349type HTTP2HealthCheck struct {
11350	// Host: The value of the host header in the HTTP/2 health check
11351	// request. If left empty (default value), the IP on behalf of which
11352	// this health check is performed will be used.
11353	Host string `json:"host,omitempty"`
11354
11355	// Port: The TCP port number for the health check request. The default
11356	// value is 443. Valid values are 1 through 65535.
11357	Port int64 `json:"port,omitempty"`
11358
11359	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
11360	// both port and port_name are defined, port takes precedence.
11361	PortName string `json:"portName,omitempty"`
11362
11363	// PortSpecification: Specifies how port is selected for health
11364	// checking, can be one of following values:
11365	// USE_FIXED_PORT: The port number in port is used for health
11366	// checking.
11367	// USE_NAMED_PORT: The portName is used for health
11368	// checking.
11369	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
11370	// each network endpoint is used for health checking. For other
11371	// backends, the port or named port specified in the Backend Service is
11372	// used for health checking.
11373	//
11374	//
11375	// If not specified, HTTP2 health check follows behavior specified in
11376	// port and portName fields.
11377	//
11378	// Possible values:
11379	//   "USE_FIXED_PORT"
11380	//   "USE_NAMED_PORT"
11381	//   "USE_SERVING_PORT"
11382	PortSpecification string `json:"portSpecification,omitempty"`
11383
11384	// ProxyHeader: Specifies the type of proxy header to append before
11385	// sending data to the backend, either NONE or PROXY_V1. The default is
11386	// NONE.
11387	//
11388	// Possible values:
11389	//   "NONE"
11390	//   "PROXY_V1"
11391	ProxyHeader string `json:"proxyHeader,omitempty"`
11392
11393	// RequestPath: The request path of the HTTP/2 health check request. The
11394	// default value is /.
11395	RequestPath string `json:"requestPath,omitempty"`
11396
11397	// Response: The string to match anywhere in the first 1024 bytes of the
11398	// response body. If left empty (the default value), the status code
11399	// determines health. The response data can only be ASCII.
11400	Response string `json:"response,omitempty"`
11401
11402	// ForceSendFields is a list of field names (e.g. "Host") to
11403	// unconditionally include in API requests. By default, fields with
11404	// empty values are omitted from API requests. However, any non-pointer,
11405	// non-interface field appearing in ForceSendFields will be sent to the
11406	// server regardless of whether the field is empty or not. This may be
11407	// used to include empty fields in Patch requests.
11408	ForceSendFields []string `json:"-"`
11409
11410	// NullFields is a list of field names (e.g. "Host") to include in API
11411	// requests with the JSON null value. By default, fields with empty
11412	// values are omitted from API requests. However, any field with an
11413	// empty value appearing in NullFields will be sent to the server as
11414	// null. It is an error if a field in this list has a non-empty value.
11415	// This may be used to include null fields in Patch requests.
11416	NullFields []string `json:"-"`
11417}
11418
11419func (s *HTTP2HealthCheck) MarshalJSON() ([]byte, error) {
11420	type NoMethod HTTP2HealthCheck
11421	raw := NoMethod(*s)
11422	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11423}
11424
11425type HTTPHealthCheck struct {
11426	// Host: The value of the host header in the HTTP health check request.
11427	// If left empty (default value), the IP on behalf of which this health
11428	// check is performed will be used.
11429	Host string `json:"host,omitempty"`
11430
11431	// Port: The TCP port number for the health check request. The default
11432	// value is 80. Valid values are 1 through 65535.
11433	Port int64 `json:"port,omitempty"`
11434
11435	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
11436	// both port and port_name are defined, port takes precedence.
11437	PortName string `json:"portName,omitempty"`
11438
11439	// PortSpecification: Specifies how port is selected for health
11440	// checking, can be one of following values:
11441	// USE_FIXED_PORT: The port number in port is used for health
11442	// checking.
11443	// USE_NAMED_PORT: The portName is used for health
11444	// checking.
11445	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
11446	// each network endpoint is used for health checking. For other
11447	// backends, the port or named port specified in the Backend Service is
11448	// used for health checking.
11449	//
11450	//
11451	// If not specified, HTTP health check follows behavior specified in
11452	// port and portName fields.
11453	//
11454	// Possible values:
11455	//   "USE_FIXED_PORT"
11456	//   "USE_NAMED_PORT"
11457	//   "USE_SERVING_PORT"
11458	PortSpecification string `json:"portSpecification,omitempty"`
11459
11460	// ProxyHeader: Specifies the type of proxy header to append before
11461	// sending data to the backend, either NONE or PROXY_V1. The default is
11462	// NONE.
11463	//
11464	// Possible values:
11465	//   "NONE"
11466	//   "PROXY_V1"
11467	ProxyHeader string `json:"proxyHeader,omitempty"`
11468
11469	// RequestPath: The request path of the HTTP health check request. The
11470	// default value is /.
11471	RequestPath string `json:"requestPath,omitempty"`
11472
11473	// Response: The string to match anywhere in the first 1024 bytes of the
11474	// response body. If left empty (the default value), the status code
11475	// determines health. The response data can only be ASCII.
11476	Response string `json:"response,omitempty"`
11477
11478	// ForceSendFields is a list of field names (e.g. "Host") to
11479	// unconditionally include in API requests. By default, fields with
11480	// empty values are omitted from API requests. However, any non-pointer,
11481	// non-interface field appearing in ForceSendFields will be sent to the
11482	// server regardless of whether the field is empty or not. This may be
11483	// used to include empty fields in Patch requests.
11484	ForceSendFields []string `json:"-"`
11485
11486	// NullFields is a list of field names (e.g. "Host") to include in API
11487	// requests with the JSON null value. By default, fields with empty
11488	// values are omitted from API requests. However, any field with an
11489	// empty value appearing in NullFields will be sent to the server as
11490	// null. It is an error if a field in this list has a non-empty value.
11491	// This may be used to include null fields in Patch requests.
11492	NullFields []string `json:"-"`
11493}
11494
11495func (s *HTTPHealthCheck) MarshalJSON() ([]byte, error) {
11496	type NoMethod HTTPHealthCheck
11497	raw := NoMethod(*s)
11498	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11499}
11500
11501type HTTPSHealthCheck struct {
11502	// Host: The value of the host header in the HTTPS health check request.
11503	// If left empty (default value), the IP on behalf of which this health
11504	// check is performed will be used.
11505	Host string `json:"host,omitempty"`
11506
11507	// Port: The TCP port number for the health check request. The default
11508	// value is 443. Valid values are 1 through 65535.
11509	Port int64 `json:"port,omitempty"`
11510
11511	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
11512	// both port and port_name are defined, port takes precedence.
11513	PortName string `json:"portName,omitempty"`
11514
11515	// PortSpecification: Specifies how port is selected for health
11516	// checking, can be one of following values:
11517	// USE_FIXED_PORT: The port number in port is used for health
11518	// checking.
11519	// USE_NAMED_PORT: The portName is used for health
11520	// checking.
11521	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
11522	// each network endpoint is used for health checking. For other
11523	// backends, the port or named port specified in the Backend Service is
11524	// used for health checking.
11525	//
11526	//
11527	// If not specified, HTTPS health check follows behavior specified in
11528	// port and portName fields.
11529	//
11530	// Possible values:
11531	//   "USE_FIXED_PORT"
11532	//   "USE_NAMED_PORT"
11533	//   "USE_SERVING_PORT"
11534	PortSpecification string `json:"portSpecification,omitempty"`
11535
11536	// ProxyHeader: Specifies the type of proxy header to append before
11537	// sending data to the backend, either NONE or PROXY_V1. The default is
11538	// NONE.
11539	//
11540	// Possible values:
11541	//   "NONE"
11542	//   "PROXY_V1"
11543	ProxyHeader string `json:"proxyHeader,omitempty"`
11544
11545	// RequestPath: The request path of the HTTPS health check request. The
11546	// default value is /.
11547	RequestPath string `json:"requestPath,omitempty"`
11548
11549	// Response: The string to match anywhere in the first 1024 bytes of the
11550	// response body. If left empty (the default value), the status code
11551	// determines health. The response data can only be ASCII.
11552	Response string `json:"response,omitempty"`
11553
11554	// ForceSendFields is a list of field names (e.g. "Host") to
11555	// unconditionally include in API requests. By default, fields with
11556	// empty values are omitted from API requests. However, any non-pointer,
11557	// non-interface field appearing in ForceSendFields will be sent to the
11558	// server regardless of whether the field is empty or not. This may be
11559	// used to include empty fields in Patch requests.
11560	ForceSendFields []string `json:"-"`
11561
11562	// NullFields is a list of field names (e.g. "Host") to include in API
11563	// requests with the JSON null value. By default, fields with empty
11564	// values are omitted from API requests. However, any field with an
11565	// empty value appearing in NullFields will be sent to the server as
11566	// null. It is an error if a field in this list has a non-empty value.
11567	// This may be used to include null fields in Patch requests.
11568	NullFields []string `json:"-"`
11569}
11570
11571func (s *HTTPSHealthCheck) MarshalJSON() ([]byte, error) {
11572	type NoMethod HTTPSHealthCheck
11573	raw := NoMethod(*s)
11574	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11575}
11576
11577// HealthCheck: Represents a Health Check resource.
11578//
11579// Google Compute Engine has two Health Check resources:
11580//
11581// * [Global](/compute/docs/reference/rest/latest/healthChecks) *
11582// [Regional](/compute/docs/reference/rest/latest/regionHealthChecks)
11583//
11584// In
11585// ternal HTTP(S) load balancers use regional health checks. All other
11586// types of GCP load balancers and managed instance group auto-healing
11587// use global health checks. For more information, read Health Check
11588// Concepts.
11589//
11590// To perform health checks on network load balancers, you must use
11591// either httpHealthChecks or httpsHealthChecks.
11592type HealthCheck struct {
11593	// CheckIntervalSec: How often (in seconds) to send a health check. The
11594	// default value is 5 seconds.
11595	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
11596
11597	// CreationTimestamp: [Output Only] Creation timestamp in 3339 text
11598	// format.
11599	CreationTimestamp string `json:"creationTimestamp,omitempty"`
11600
11601	// Description: An optional description of this resource. Provide this
11602	// property when you create the resource.
11603	Description string `json:"description,omitempty"`
11604
11605	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
11606	// after this many consecutive successes. The default value is 2.
11607	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
11608
11609	Http2HealthCheck *HTTP2HealthCheck `json:"http2HealthCheck,omitempty"`
11610
11611	HttpHealthCheck *HTTPHealthCheck `json:"httpHealthCheck,omitempty"`
11612
11613	HttpsHealthCheck *HTTPSHealthCheck `json:"httpsHealthCheck,omitempty"`
11614
11615	// Id: [Output Only] The unique identifier for the resource. This
11616	// identifier is defined by the server.
11617	Id uint64 `json:"id,omitempty,string"`
11618
11619	// Kind: Type of the resource.
11620	Kind string `json:"kind,omitempty"`
11621
11622	// LogConfig: Configure logging on this health check.
11623	LogConfig *HealthCheckLogConfig `json:"logConfig,omitempty"`
11624
11625	// Name: Name of the resource. Provided by the client when the resource
11626	// is created. The name must be 1-63 characters long, and comply with
11627	// RFC1035. Specifically, the name must be 1-63 characters long and
11628	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
11629	// the first character must be a lowercase letter, and all following
11630	// characters must be a dash, lowercase letter, or digit, except the
11631	// last character, which cannot be a dash.
11632	Name string `json:"name,omitempty"`
11633
11634	// Region: [Output Only] Region where the health check resides. Not
11635	// applicable to global health checks.
11636	Region string `json:"region,omitempty"`
11637
11638	// SelfLink: [Output Only] Server-defined URL for the resource.
11639	SelfLink string `json:"selfLink,omitempty"`
11640
11641	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
11642	// with the resource id.
11643	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
11644
11645	SslHealthCheck *SSLHealthCheck `json:"sslHealthCheck,omitempty"`
11646
11647	TcpHealthCheck *TCPHealthCheck `json:"tcpHealthCheck,omitempty"`
11648
11649	// TimeoutSec: How long (in seconds) to wait before claiming failure.
11650	// The default value is 5 seconds. It is invalid for timeoutSec to have
11651	// greater value than checkIntervalSec.
11652	TimeoutSec int64 `json:"timeoutSec,omitempty"`
11653
11654	// Type: Specifies the type of the healthCheck, either TCP, SSL, HTTP,
11655	// HTTPS or HTTP2. If not specified, the default is TCP. Exactly one of
11656	// the protocol-specific health check field must be specified, which
11657	// must match type field.
11658	//
11659	// Possible values:
11660	//   "HTTP"
11661	//   "HTTP2"
11662	//   "HTTPS"
11663	//   "INVALID"
11664	//   "SSL"
11665	//   "TCP"
11666	//   "UDP"
11667	Type string `json:"type,omitempty"`
11668
11669	UdpHealthCheck *UDPHealthCheck `json:"udpHealthCheck,omitempty"`
11670
11671	// UnhealthyThreshold: A so-far healthy instance will be marked
11672	// unhealthy after this many consecutive failures. The default value is
11673	// 2.
11674	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
11675
11676	// ServerResponse contains the HTTP response code and headers from the
11677	// server.
11678	googleapi.ServerResponse `json:"-"`
11679
11680	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
11681	// unconditionally include in API requests. By default, fields with
11682	// empty values are omitted from API requests. However, any non-pointer,
11683	// non-interface field appearing in ForceSendFields will be sent to the
11684	// server regardless of whether the field is empty or not. This may be
11685	// used to include empty fields in Patch requests.
11686	ForceSendFields []string `json:"-"`
11687
11688	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
11689	// include in API requests with the JSON null value. By default, fields
11690	// with empty values are omitted from API requests. However, any field
11691	// with an empty value appearing in NullFields will be sent to the
11692	// server as null. It is an error if a field in this list has a
11693	// non-empty value. This may be used to include null fields in Patch
11694	// requests.
11695	NullFields []string `json:"-"`
11696}
11697
11698func (s *HealthCheck) MarshalJSON() ([]byte, error) {
11699	type NoMethod HealthCheck
11700	raw := NoMethod(*s)
11701	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11702}
11703
11704// HealthCheckList: Contains a list of HealthCheck resources.
11705type HealthCheckList struct {
11706	// Id: [Output Only] Unique identifier for the resource; defined by the
11707	// server.
11708	Id string `json:"id,omitempty"`
11709
11710	// Items: A list of HealthCheck resources.
11711	Items []*HealthCheck `json:"items,omitempty"`
11712
11713	// Kind: Type of resource.
11714	Kind string `json:"kind,omitempty"`
11715
11716	// NextPageToken: [Output Only] This token allows you to get the next
11717	// page of results for list requests. If the number of results is larger
11718	// than maxResults, use the nextPageToken as a value for the query
11719	// parameter pageToken in the next list request. Subsequent list
11720	// requests will have their own nextPageToken to continue paging through
11721	// the results.
11722	NextPageToken string `json:"nextPageToken,omitempty"`
11723
11724	// SelfLink: [Output Only] Server-defined URL for this resource.
11725	SelfLink string `json:"selfLink,omitempty"`
11726
11727	// Warning: [Output Only] Informational warning message.
11728	Warning *HealthCheckListWarning `json:"warning,omitempty"`
11729
11730	// ServerResponse contains the HTTP response code and headers from the
11731	// server.
11732	googleapi.ServerResponse `json:"-"`
11733
11734	// ForceSendFields is a list of field names (e.g. "Id") to
11735	// unconditionally include in API requests. By default, fields with
11736	// empty values are omitted from API requests. However, any non-pointer,
11737	// non-interface field appearing in ForceSendFields will be sent to the
11738	// server regardless of whether the field is empty or not. This may be
11739	// used to include empty fields in Patch requests.
11740	ForceSendFields []string `json:"-"`
11741
11742	// NullFields is a list of field names (e.g. "Id") to include in API
11743	// requests with the JSON null value. By default, fields with empty
11744	// values are omitted from API requests. However, any field with an
11745	// empty value appearing in NullFields will be sent to the server as
11746	// null. It is an error if a field in this list has a non-empty value.
11747	// This may be used to include null fields in Patch requests.
11748	NullFields []string `json:"-"`
11749}
11750
11751func (s *HealthCheckList) MarshalJSON() ([]byte, error) {
11752	type NoMethod HealthCheckList
11753	raw := NoMethod(*s)
11754	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11755}
11756
11757// HealthCheckListWarning: [Output Only] Informational warning message.
11758type HealthCheckListWarning struct {
11759	// Code: [Output Only] A warning code, if applicable. For example,
11760	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11761	// the response.
11762	//
11763	// Possible values:
11764	//   "CLEANUP_FAILED"
11765	//   "DEPRECATED_RESOURCE_USED"
11766	//   "DEPRECATED_TYPE_USED"
11767	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11768	//   "EXPERIMENTAL_TYPE_USED"
11769	//   "EXTERNAL_API_WARNING"
11770	//   "FIELD_VALUE_OVERRIDEN"
11771	//   "INJECTED_KERNELS_DEPRECATED"
11772	//   "MISSING_TYPE_DEPENDENCY"
11773	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11774	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11775	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11776	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11777	//   "NEXT_HOP_NOT_RUNNING"
11778	//   "NOT_CRITICAL_ERROR"
11779	//   "NO_RESULTS_ON_PAGE"
11780	//   "REQUIRED_TOS_AGREEMENT"
11781	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11782	//   "RESOURCE_NOT_DELETED"
11783	//   "SCHEMA_VALIDATION_IGNORED"
11784	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11785	//   "UNDECLARED_PROPERTIES"
11786	//   "UNREACHABLE"
11787	Code string `json:"code,omitempty"`
11788
11789	// Data: [Output Only] Metadata about this warning in key: value format.
11790	// For example:
11791	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11792	Data []*HealthCheckListWarningData `json:"data,omitempty"`
11793
11794	// Message: [Output Only] A human-readable description of the warning
11795	// code.
11796	Message string `json:"message,omitempty"`
11797
11798	// ForceSendFields is a list of field names (e.g. "Code") to
11799	// unconditionally include in API requests. By default, fields with
11800	// empty values are omitted from API requests. However, any non-pointer,
11801	// non-interface field appearing in ForceSendFields will be sent to the
11802	// server regardless of whether the field is empty or not. This may be
11803	// used to include empty fields in Patch requests.
11804	ForceSendFields []string `json:"-"`
11805
11806	// NullFields is a list of field names (e.g. "Code") to include in API
11807	// requests with the JSON null value. By default, fields with empty
11808	// values are omitted from API requests. However, any field with an
11809	// empty value appearing in NullFields will be sent to the server as
11810	// null. It is an error if a field in this list has a non-empty value.
11811	// This may be used to include null fields in Patch requests.
11812	NullFields []string `json:"-"`
11813}
11814
11815func (s *HealthCheckListWarning) MarshalJSON() ([]byte, error) {
11816	type NoMethod HealthCheckListWarning
11817	raw := NoMethod(*s)
11818	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11819}
11820
11821type HealthCheckListWarningData struct {
11822	// Key: [Output Only] A key that provides more detail on the warning
11823	// being returned. For example, for warnings where there are no results
11824	// in a list request for a particular zone, this key might be scope and
11825	// the key value might be the zone name. Other examples might be a key
11826	// indicating a deprecated resource and a suggested replacement, or a
11827	// warning about invalid network settings (for example, if an instance
11828	// attempts to perform IP forwarding but is not enabled for IP
11829	// forwarding).
11830	Key string `json:"key,omitempty"`
11831
11832	// Value: [Output Only] A warning data value corresponding to the key.
11833	Value string `json:"value,omitempty"`
11834
11835	// ForceSendFields is a list of field names (e.g. "Key") to
11836	// unconditionally include in API requests. By default, fields with
11837	// empty values are omitted from API requests. However, any non-pointer,
11838	// non-interface field appearing in ForceSendFields will be sent to the
11839	// server regardless of whether the field is empty or not. This may be
11840	// used to include empty fields in Patch requests.
11841	ForceSendFields []string `json:"-"`
11842
11843	// NullFields is a list of field names (e.g. "Key") to include in API
11844	// requests with the JSON null value. By default, fields with empty
11845	// values are omitted from API requests. However, any field with an
11846	// empty value appearing in NullFields will be sent to the server as
11847	// null. It is an error if a field in this list has a non-empty value.
11848	// This may be used to include null fields in Patch requests.
11849	NullFields []string `json:"-"`
11850}
11851
11852func (s *HealthCheckListWarningData) MarshalJSON() ([]byte, error) {
11853	type NoMethod HealthCheckListWarningData
11854	raw := NoMethod(*s)
11855	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11856}
11857
11858// HealthCheckLogConfig: Configuration of logging on a health check. If
11859// logging is enabled, logs will be exported to Stackdriver.
11860type HealthCheckLogConfig struct {
11861	// Enable: Indicates whether or not to export logs. This is false by
11862	// default, which means no health check logging will be done.
11863	Enable bool `json:"enable,omitempty"`
11864
11865	// ForceSendFields is a list of field names (e.g. "Enable") to
11866	// unconditionally include in API requests. By default, fields with
11867	// empty values are omitted from API requests. However, any non-pointer,
11868	// non-interface field appearing in ForceSendFields will be sent to the
11869	// server regardless of whether the field is empty or not. This may be
11870	// used to include empty fields in Patch requests.
11871	ForceSendFields []string `json:"-"`
11872
11873	// NullFields is a list of field names (e.g. "Enable") to include in API
11874	// requests with the JSON null value. By default, fields with empty
11875	// values are omitted from API requests. However, any field with an
11876	// empty value appearing in NullFields will be sent to the server as
11877	// null. It is an error if a field in this list has a non-empty value.
11878	// This may be used to include null fields in Patch requests.
11879	NullFields []string `json:"-"`
11880}
11881
11882func (s *HealthCheckLogConfig) MarshalJSON() ([]byte, error) {
11883	type NoMethod HealthCheckLogConfig
11884	raw := NoMethod(*s)
11885	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11886}
11887
11888// HealthCheckReference: A full or valid partial URL to a health check.
11889// For example, the following are valid URLs:
11890// -
11891// https://www.googleapis.com/compute/beta/projects/project-id/global/httpHealthChecks/health-check
11892// - projects/project-id/global/httpHealthChecks/health-check
11893// - global/httpHealthChecks/health-check
11894type HealthCheckReference struct {
11895	HealthCheck string `json:"healthCheck,omitempty"`
11896
11897	// ForceSendFields is a list of field names (e.g. "HealthCheck") to
11898	// unconditionally include in API requests. By default, fields with
11899	// empty values are omitted from API requests. However, any non-pointer,
11900	// non-interface field appearing in ForceSendFields will be sent to the
11901	// server regardless of whether the field is empty or not. This may be
11902	// used to include empty fields in Patch requests.
11903	ForceSendFields []string `json:"-"`
11904
11905	// NullFields is a list of field names (e.g. "HealthCheck") to include
11906	// in API requests with the JSON null value. By default, fields with
11907	// empty values are omitted from API requests. However, any field with
11908	// an empty value appearing in NullFields will be sent to the server as
11909	// null. It is an error if a field in this list has a non-empty value.
11910	// This may be used to include null fields in Patch requests.
11911	NullFields []string `json:"-"`
11912}
11913
11914func (s *HealthCheckReference) MarshalJSON() ([]byte, error) {
11915	type NoMethod HealthCheckReference
11916	raw := NoMethod(*s)
11917	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11918}
11919
11920// HealthCheckService: A HealthCheckService defines a set of backends on
11921// which to perform periodic health checks and an endpoint to which to
11922// send notification of changes in the health status of the backends.
11923type HealthCheckService struct {
11924	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
11925	// format.
11926	CreationTimestamp string `json:"creationTimestamp,omitempty"`
11927
11928	// Description: An optional description of this resource. Provide this
11929	// property when you create the resource.
11930	Description string `json:"description,omitempty"`
11931
11932	// Fingerprint: Fingerprint of this resource. A hash of the contents
11933	// stored in this object. This field is used in optimistic locking. This
11934	// field will be ignored when inserting a HealthCheckService. An
11935	// up-to-date fingerprint must be provided in order to patch/update the
11936	// HealthCheckService; Otherwise, the request will fail with error 412
11937	// conditionNotMet. To see the latest fingerprint, make a get() request
11938	// to retrieve the HealthCheckService.
11939	Fingerprint string `json:"fingerprint,omitempty"`
11940
11941	// HealthChecks: List of URLs to the HealthCheck resources. Must have at
11942	// least one HealthCheck, and not more than 10. HealthCheck resources
11943	// must have portSpecification=USE_SERVING_PORT. For regional
11944	// HealthCheckService, the HealthCheck must be regional and in the same
11945	// region. For global HealthCheckService, HealthCheck must be global.
11946	// Mix of regional and global HealthChecks is not supported. Multiple
11947	// regional HealthChecks must belong to the same region. Regional
11948	// HealthChecks</code? must belong to the same region as zones of NEGs.
11949	HealthChecks []string `json:"healthChecks,omitempty"`
11950
11951	// HealthStatusAggregationPolicy: Optional. Policy for how the results
11952	// from multiple health checks for the same endpoint are aggregated.
11953	// Defaults to NO_AGGREGATION if unspecified.
11954	// - NO_AGGREGATION. An EndpointHealth message is returned for each
11955	// backend in the health check service.
11956	// - AND. If any backend's health check reports UNHEALTHY, then
11957	// UNHEALTHY is the HealthState of the entire health check service. If
11958	// all backend's are healthy, the HealthState of the health check
11959	// service is HEALTHY. .
11960	//
11961	// Possible values:
11962	//   "AND"
11963	//   "NO_AGGREGATION"
11964	HealthStatusAggregationPolicy string `json:"healthStatusAggregationPolicy,omitempty"`
11965
11966	// HealthStatusAggregationStrategy: Policy for how the results from
11967	// multiple health checks for the same endpoint are aggregated.
11968	// - NO_AGGREGATION. An EndpointHealth message is returned for each
11969	// backend in the health check service.
11970	// - AND. If any backend's health check reports UNHEALTHY, then
11971	// UNHEALTHY is the HealthState of the entire health check service. If
11972	// all backend's are healthy, the HealthState of the health check
11973	// service is HEALTHY. .
11974	//
11975	// Possible values:
11976	//   "AND"
11977	//   "NO_AGGREGATION"
11978	HealthStatusAggregationStrategy string `json:"healthStatusAggregationStrategy,omitempty"`
11979
11980	// Id: [Output Only] The unique identifier for the resource. This
11981	// identifier is defined by the server.
11982	Id uint64 `json:"id,omitempty,string"`
11983
11984	// Kind: [Output only] Type of the resource. Always
11985	// compute#healthCheckServicefor health check services.
11986	Kind string `json:"kind,omitempty"`
11987
11988	// Name: Name of the resource. The name must be 1-63 characters long,
11989	// and comply with RFC1035. Specifically, the name must be 1-63
11990	// characters long and match the regular expression
11991	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
11992	// a lowercase letter, and all following characters must be a dash,
11993	// lowercase letter, or digit, except the last character, which cannot
11994	// be a dash.
11995	Name string `json:"name,omitempty"`
11996
11997	// NetworkEndpointGroups: List of URLs to the NetworkEndpointGroup
11998	// resources. Must not have more than 100. For regional
11999	// HealthCheckService, NEGs must be in zones in the region of the
12000	// HealthCheckService.
12001	NetworkEndpointGroups []string `json:"networkEndpointGroups,omitempty"`
12002
12003	// NotificationEndpoints: List of URLs to the NotificationEndpoint
12004	// resources. Must not have more than 10. A list of endpoints for
12005	// receiving notifications of change in health status. For regional
12006	// HealthCheckService, NotificationEndpoint must be regional and in the
12007	// same region. For global HealthCheckService, NotificationEndpoint must
12008	// be global.
12009	NotificationEndpoints []string `json:"notificationEndpoints,omitempty"`
12010
12011	// Region: [Output Only] URL of the region where the health check
12012	// service resides. This field is not applicable to global health check
12013	// services. You must specify this field as part of the HTTP request
12014	// URL. It is not settable as a field in the request body.
12015	Region string `json:"region,omitempty"`
12016
12017	// SelfLink: [Output Only] Server-defined URL for the resource.
12018	SelfLink string `json:"selfLink,omitempty"`
12019
12020	// SelfLinkWithId: [Output Only] Server-defined URL with id for the
12021	// resource.
12022	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
12023
12024	// ServerResponse contains the HTTP response code and headers from the
12025	// server.
12026	googleapi.ServerResponse `json:"-"`
12027
12028	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
12029	// to unconditionally include in API requests. By default, fields with
12030	// empty values are omitted from API requests. However, any non-pointer,
12031	// non-interface field appearing in ForceSendFields will be sent to the
12032	// server regardless of whether the field is empty or not. This may be
12033	// used to include empty fields in Patch requests.
12034	ForceSendFields []string `json:"-"`
12035
12036	// NullFields is a list of field names (e.g. "CreationTimestamp") to
12037	// include in API requests with the JSON null value. By default, fields
12038	// with empty values are omitted from API requests. However, any field
12039	// with an empty value appearing in NullFields will be sent to the
12040	// server as null. It is an error if a field in this list has a
12041	// non-empty value. This may be used to include null fields in Patch
12042	// requests.
12043	NullFields []string `json:"-"`
12044}
12045
12046func (s *HealthCheckService) MarshalJSON() ([]byte, error) {
12047	type NoMethod HealthCheckService
12048	raw := NoMethod(*s)
12049	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12050}
12051
12052// HealthCheckServiceReference: A full or valid partial URL to a health
12053// check service. For example, the following are valid URLs:
12054// -
12055// https://www.googleapis.com/compute/beta/projects/project-id/regions/us-west1/healthCheckServices/health-check-service
12056// -
12057// projects/project-id/regions/us-west1/healthCheckServices/health-check-
12058// service
12059// - regions/us-west1/healthCheckServices/health-check-service
12060type HealthCheckServiceReference struct {
12061	HealthCheckService string `json:"healthCheckService,omitempty"`
12062
12063	// ForceSendFields is a list of field names (e.g. "HealthCheckService")
12064	// to unconditionally include in API requests. By default, fields with
12065	// empty values are omitted from API requests. However, any non-pointer,
12066	// non-interface field appearing in ForceSendFields will be sent to the
12067	// server regardless of whether the field is empty or not. This may be
12068	// used to include empty fields in Patch requests.
12069	ForceSendFields []string `json:"-"`
12070
12071	// NullFields is a list of field names (e.g. "HealthCheckService") to
12072	// include in API requests with the JSON null value. By default, fields
12073	// with empty values are omitted from API requests. However, any field
12074	// with an empty value appearing in NullFields will be sent to the
12075	// server as null. It is an error if a field in this list has a
12076	// non-empty value. This may be used to include null fields in Patch
12077	// requests.
12078	NullFields []string `json:"-"`
12079}
12080
12081func (s *HealthCheckServiceReference) MarshalJSON() ([]byte, error) {
12082	type NoMethod HealthCheckServiceReference
12083	raw := NoMethod(*s)
12084	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12085}
12086
12087type HealthCheckServicesList struct {
12088	// Id: [Output Only] Unique identifier for the resource; defined by the
12089	// server.
12090	Id string `json:"id,omitempty"`
12091
12092	// Items: A list of HealthCheckService resources.
12093	Items []*HealthCheckService `json:"items,omitempty"`
12094
12095	// Kind: [Output Only] Type of the resource. Always
12096	// compute#healthCheckServicesList for lists of HealthCheckServices.
12097	Kind string `json:"kind,omitempty"`
12098
12099	// NextPageToken: [Output Only] This token allows you to get the next
12100	// page of results for list requests. If the number of results is larger
12101	// than maxResults, use the nextPageToken as a value for the query
12102	// parameter pageToken in the next list request. Subsequent list
12103	// requests will have their own nextPageToken to continue paging through
12104	// the results.
12105	NextPageToken string `json:"nextPageToken,omitempty"`
12106
12107	// SelfLink: [Output Only] Server-defined URL for this resource.
12108	SelfLink string `json:"selfLink,omitempty"`
12109
12110	// Warning: [Output Only] Informational warning message.
12111	Warning *HealthCheckServicesListWarning `json:"warning,omitempty"`
12112
12113	// ServerResponse contains the HTTP response code and headers from the
12114	// server.
12115	googleapi.ServerResponse `json:"-"`
12116
12117	// ForceSendFields is a list of field names (e.g. "Id") to
12118	// unconditionally include in API requests. By default, fields with
12119	// empty values are omitted from API requests. However, any non-pointer,
12120	// non-interface field appearing in ForceSendFields will be sent to the
12121	// server regardless of whether the field is empty or not. This may be
12122	// used to include empty fields in Patch requests.
12123	ForceSendFields []string `json:"-"`
12124
12125	// NullFields is a list of field names (e.g. "Id") to include in API
12126	// requests with the JSON null value. By default, fields with empty
12127	// values are omitted from API requests. However, any field with an
12128	// empty value appearing in NullFields will be sent to the server as
12129	// null. It is an error if a field in this list has a non-empty value.
12130	// This may be used to include null fields in Patch requests.
12131	NullFields []string `json:"-"`
12132}
12133
12134func (s *HealthCheckServicesList) MarshalJSON() ([]byte, error) {
12135	type NoMethod HealthCheckServicesList
12136	raw := NoMethod(*s)
12137	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12138}
12139
12140// HealthCheckServicesListWarning: [Output Only] Informational warning
12141// message.
12142type HealthCheckServicesListWarning struct {
12143	// Code: [Output Only] A warning code, if applicable. For example,
12144	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12145	// the response.
12146	//
12147	// Possible values:
12148	//   "CLEANUP_FAILED"
12149	//   "DEPRECATED_RESOURCE_USED"
12150	//   "DEPRECATED_TYPE_USED"
12151	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12152	//   "EXPERIMENTAL_TYPE_USED"
12153	//   "EXTERNAL_API_WARNING"
12154	//   "FIELD_VALUE_OVERRIDEN"
12155	//   "INJECTED_KERNELS_DEPRECATED"
12156	//   "MISSING_TYPE_DEPENDENCY"
12157	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12158	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12159	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12160	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12161	//   "NEXT_HOP_NOT_RUNNING"
12162	//   "NOT_CRITICAL_ERROR"
12163	//   "NO_RESULTS_ON_PAGE"
12164	//   "REQUIRED_TOS_AGREEMENT"
12165	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12166	//   "RESOURCE_NOT_DELETED"
12167	//   "SCHEMA_VALIDATION_IGNORED"
12168	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12169	//   "UNDECLARED_PROPERTIES"
12170	//   "UNREACHABLE"
12171	Code string `json:"code,omitempty"`
12172
12173	// Data: [Output Only] Metadata about this warning in key: value format.
12174	// For example:
12175	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12176	Data []*HealthCheckServicesListWarningData `json:"data,omitempty"`
12177
12178	// Message: [Output Only] A human-readable description of the warning
12179	// code.
12180	Message string `json:"message,omitempty"`
12181
12182	// ForceSendFields is a list of field names (e.g. "Code") to
12183	// unconditionally include in API requests. By default, fields with
12184	// empty values are omitted from API requests. However, any non-pointer,
12185	// non-interface field appearing in ForceSendFields will be sent to the
12186	// server regardless of whether the field is empty or not. This may be
12187	// used to include empty fields in Patch requests.
12188	ForceSendFields []string `json:"-"`
12189
12190	// NullFields is a list of field names (e.g. "Code") to include in API
12191	// requests with the JSON null value. By default, fields with empty
12192	// values are omitted from API requests. However, any field with an
12193	// empty value appearing in NullFields will be sent to the server as
12194	// null. It is an error if a field in this list has a non-empty value.
12195	// This may be used to include null fields in Patch requests.
12196	NullFields []string `json:"-"`
12197}
12198
12199func (s *HealthCheckServicesListWarning) MarshalJSON() ([]byte, error) {
12200	type NoMethod HealthCheckServicesListWarning
12201	raw := NoMethod(*s)
12202	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12203}
12204
12205type HealthCheckServicesListWarningData struct {
12206	// Key: [Output Only] A key that provides more detail on the warning
12207	// being returned. For example, for warnings where there are no results
12208	// in a list request for a particular zone, this key might be scope and
12209	// the key value might be the zone name. Other examples might be a key
12210	// indicating a deprecated resource and a suggested replacement, or a
12211	// warning about invalid network settings (for example, if an instance
12212	// attempts to perform IP forwarding but is not enabled for IP
12213	// forwarding).
12214	Key string `json:"key,omitempty"`
12215
12216	// Value: [Output Only] A warning data value corresponding to the key.
12217	Value string `json:"value,omitempty"`
12218
12219	// ForceSendFields is a list of field names (e.g. "Key") to
12220	// unconditionally include in API requests. By default, fields with
12221	// empty values are omitted from API requests. However, any non-pointer,
12222	// non-interface field appearing in ForceSendFields will be sent to the
12223	// server regardless of whether the field is empty or not. This may be
12224	// used to include empty fields in Patch requests.
12225	ForceSendFields []string `json:"-"`
12226
12227	// NullFields is a list of field names (e.g. "Key") to include in API
12228	// requests with the JSON null value. By default, fields with empty
12229	// values are omitted from API requests. However, any field with an
12230	// empty value appearing in NullFields will be sent to the server as
12231	// null. It is an error if a field in this list has a non-empty value.
12232	// This may be used to include null fields in Patch requests.
12233	NullFields []string `json:"-"`
12234}
12235
12236func (s *HealthCheckServicesListWarningData) MarshalJSON() ([]byte, error) {
12237	type NoMethod HealthCheckServicesListWarningData
12238	raw := NoMethod(*s)
12239	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12240}
12241
12242type HealthChecksAggregatedList struct {
12243	// Id: [Output Only] Unique identifier for the resource; defined by the
12244	// server.
12245	Id string `json:"id,omitempty"`
12246
12247	// Items: A list of HealthChecksScopedList resources.
12248	Items map[string]HealthChecksScopedList `json:"items,omitempty"`
12249
12250	// Kind: Type of resource.
12251	Kind string `json:"kind,omitempty"`
12252
12253	// NextPageToken: [Output Only] This token allows you to get the next
12254	// page of results for list requests. If the number of results is larger
12255	// than maxResults, use the nextPageToken as a value for the query
12256	// parameter pageToken in the next list request. Subsequent list
12257	// requests will have their own nextPageToken to continue paging through
12258	// the results.
12259	NextPageToken string `json:"nextPageToken,omitempty"`
12260
12261	// SelfLink: [Output Only] Server-defined URL for this resource.
12262	SelfLink string `json:"selfLink,omitempty"`
12263
12264	// Warning: [Output Only] Informational warning message.
12265	Warning *HealthChecksAggregatedListWarning `json:"warning,omitempty"`
12266
12267	// ServerResponse contains the HTTP response code and headers from the
12268	// server.
12269	googleapi.ServerResponse `json:"-"`
12270
12271	// ForceSendFields is a list of field names (e.g. "Id") to
12272	// unconditionally include in API requests. By default, fields with
12273	// empty values are omitted from API requests. However, any non-pointer,
12274	// non-interface field appearing in ForceSendFields will be sent to the
12275	// server regardless of whether the field is empty or not. This may be
12276	// used to include empty fields in Patch requests.
12277	ForceSendFields []string `json:"-"`
12278
12279	// NullFields is a list of field names (e.g. "Id") to include in API
12280	// requests with the JSON null value. By default, fields with empty
12281	// values are omitted from API requests. However, any field with an
12282	// empty value appearing in NullFields will be sent to the server as
12283	// null. It is an error if a field in this list has a non-empty value.
12284	// This may be used to include null fields in Patch requests.
12285	NullFields []string `json:"-"`
12286}
12287
12288func (s *HealthChecksAggregatedList) MarshalJSON() ([]byte, error) {
12289	type NoMethod HealthChecksAggregatedList
12290	raw := NoMethod(*s)
12291	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12292}
12293
12294// HealthChecksAggregatedListWarning: [Output Only] Informational
12295// warning message.
12296type HealthChecksAggregatedListWarning struct {
12297	// Code: [Output Only] A warning code, if applicable. For example,
12298	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12299	// the response.
12300	//
12301	// Possible values:
12302	//   "CLEANUP_FAILED"
12303	//   "DEPRECATED_RESOURCE_USED"
12304	//   "DEPRECATED_TYPE_USED"
12305	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12306	//   "EXPERIMENTAL_TYPE_USED"
12307	//   "EXTERNAL_API_WARNING"
12308	//   "FIELD_VALUE_OVERRIDEN"
12309	//   "INJECTED_KERNELS_DEPRECATED"
12310	//   "MISSING_TYPE_DEPENDENCY"
12311	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12312	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12313	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12314	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12315	//   "NEXT_HOP_NOT_RUNNING"
12316	//   "NOT_CRITICAL_ERROR"
12317	//   "NO_RESULTS_ON_PAGE"
12318	//   "REQUIRED_TOS_AGREEMENT"
12319	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12320	//   "RESOURCE_NOT_DELETED"
12321	//   "SCHEMA_VALIDATION_IGNORED"
12322	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12323	//   "UNDECLARED_PROPERTIES"
12324	//   "UNREACHABLE"
12325	Code string `json:"code,omitempty"`
12326
12327	// Data: [Output Only] Metadata about this warning in key: value format.
12328	// For example:
12329	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12330	Data []*HealthChecksAggregatedListWarningData `json:"data,omitempty"`
12331
12332	// Message: [Output Only] A human-readable description of the warning
12333	// code.
12334	Message string `json:"message,omitempty"`
12335
12336	// ForceSendFields is a list of field names (e.g. "Code") to
12337	// unconditionally include in API requests. By default, fields with
12338	// empty values are omitted from API requests. However, any non-pointer,
12339	// non-interface field appearing in ForceSendFields will be sent to the
12340	// server regardless of whether the field is empty or not. This may be
12341	// used to include empty fields in Patch requests.
12342	ForceSendFields []string `json:"-"`
12343
12344	// NullFields is a list of field names (e.g. "Code") to include in API
12345	// requests with the JSON null value. By default, fields with empty
12346	// values are omitted from API requests. However, any field with an
12347	// empty value appearing in NullFields will be sent to the server as
12348	// null. It is an error if a field in this list has a non-empty value.
12349	// This may be used to include null fields in Patch requests.
12350	NullFields []string `json:"-"`
12351}
12352
12353func (s *HealthChecksAggregatedListWarning) MarshalJSON() ([]byte, error) {
12354	type NoMethod HealthChecksAggregatedListWarning
12355	raw := NoMethod(*s)
12356	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12357}
12358
12359type HealthChecksAggregatedListWarningData struct {
12360	// Key: [Output Only] A key that provides more detail on the warning
12361	// being returned. For example, for warnings where there are no results
12362	// in a list request for a particular zone, this key might be scope and
12363	// the key value might be the zone name. Other examples might be a key
12364	// indicating a deprecated resource and a suggested replacement, or a
12365	// warning about invalid network settings (for example, if an instance
12366	// attempts to perform IP forwarding but is not enabled for IP
12367	// forwarding).
12368	Key string `json:"key,omitempty"`
12369
12370	// Value: [Output Only] A warning data value corresponding to the key.
12371	Value string `json:"value,omitempty"`
12372
12373	// ForceSendFields is a list of field names (e.g. "Key") to
12374	// unconditionally include in API requests. By default, fields with
12375	// empty values are omitted from API requests. However, any non-pointer,
12376	// non-interface field appearing in ForceSendFields will be sent to the
12377	// server regardless of whether the field is empty or not. This may be
12378	// used to include empty fields in Patch requests.
12379	ForceSendFields []string `json:"-"`
12380
12381	// NullFields is a list of field names (e.g. "Key") to include in API
12382	// requests with the JSON null value. By default, fields with empty
12383	// values are omitted from API requests. However, any field with an
12384	// empty value appearing in NullFields will be sent to the server as
12385	// null. It is an error if a field in this list has a non-empty value.
12386	// This may be used to include null fields in Patch requests.
12387	NullFields []string `json:"-"`
12388}
12389
12390func (s *HealthChecksAggregatedListWarningData) MarshalJSON() ([]byte, error) {
12391	type NoMethod HealthChecksAggregatedListWarningData
12392	raw := NoMethod(*s)
12393	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12394}
12395
12396type HealthChecksScopedList struct {
12397	// HealthChecks: A list of HealthChecks contained in this scope.
12398	HealthChecks []*HealthCheck `json:"healthChecks,omitempty"`
12399
12400	// Warning: Informational warning which replaces the list of backend
12401	// services when the list is empty.
12402	Warning *HealthChecksScopedListWarning `json:"warning,omitempty"`
12403
12404	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
12405	// unconditionally include in API requests. By default, fields with
12406	// empty values are omitted from API requests. However, any non-pointer,
12407	// non-interface field appearing in ForceSendFields will be sent to the
12408	// server regardless of whether the field is empty or not. This may be
12409	// used to include empty fields in Patch requests.
12410	ForceSendFields []string `json:"-"`
12411
12412	// NullFields is a list of field names (e.g. "HealthChecks") to include
12413	// in API requests with the JSON null value. By default, fields with
12414	// empty values are omitted from API requests. However, any field with
12415	// an empty value appearing in NullFields will be sent to the server as
12416	// null. It is an error if a field in this list has a non-empty value.
12417	// This may be used to include null fields in Patch requests.
12418	NullFields []string `json:"-"`
12419}
12420
12421func (s *HealthChecksScopedList) MarshalJSON() ([]byte, error) {
12422	type NoMethod HealthChecksScopedList
12423	raw := NoMethod(*s)
12424	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12425}
12426
12427// HealthChecksScopedListWarning: Informational warning which replaces
12428// the list of backend services when the list is empty.
12429type HealthChecksScopedListWarning struct {
12430	// Code: [Output Only] A warning code, if applicable. For example,
12431	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12432	// the response.
12433	//
12434	// Possible values:
12435	//   "CLEANUP_FAILED"
12436	//   "DEPRECATED_RESOURCE_USED"
12437	//   "DEPRECATED_TYPE_USED"
12438	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12439	//   "EXPERIMENTAL_TYPE_USED"
12440	//   "EXTERNAL_API_WARNING"
12441	//   "FIELD_VALUE_OVERRIDEN"
12442	//   "INJECTED_KERNELS_DEPRECATED"
12443	//   "MISSING_TYPE_DEPENDENCY"
12444	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12445	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12446	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12447	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12448	//   "NEXT_HOP_NOT_RUNNING"
12449	//   "NOT_CRITICAL_ERROR"
12450	//   "NO_RESULTS_ON_PAGE"
12451	//   "REQUIRED_TOS_AGREEMENT"
12452	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12453	//   "RESOURCE_NOT_DELETED"
12454	//   "SCHEMA_VALIDATION_IGNORED"
12455	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12456	//   "UNDECLARED_PROPERTIES"
12457	//   "UNREACHABLE"
12458	Code string `json:"code,omitempty"`
12459
12460	// Data: [Output Only] Metadata about this warning in key: value format.
12461	// For example:
12462	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12463	Data []*HealthChecksScopedListWarningData `json:"data,omitempty"`
12464
12465	// Message: [Output Only] A human-readable description of the warning
12466	// code.
12467	Message string `json:"message,omitempty"`
12468
12469	// ForceSendFields is a list of field names (e.g. "Code") to
12470	// unconditionally include in API requests. By default, fields with
12471	// empty values are omitted from API requests. However, any non-pointer,
12472	// non-interface field appearing in ForceSendFields will be sent to the
12473	// server regardless of whether the field is empty or not. This may be
12474	// used to include empty fields in Patch requests.
12475	ForceSendFields []string `json:"-"`
12476
12477	// NullFields is a list of field names (e.g. "Code") to include in API
12478	// requests with the JSON null value. By default, fields with empty
12479	// values are omitted from API requests. However, any field with an
12480	// empty value appearing in NullFields will be sent to the server as
12481	// null. It is an error if a field in this list has a non-empty value.
12482	// This may be used to include null fields in Patch requests.
12483	NullFields []string `json:"-"`
12484}
12485
12486func (s *HealthChecksScopedListWarning) MarshalJSON() ([]byte, error) {
12487	type NoMethod HealthChecksScopedListWarning
12488	raw := NoMethod(*s)
12489	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12490}
12491
12492type HealthChecksScopedListWarningData struct {
12493	// Key: [Output Only] A key that provides more detail on the warning
12494	// being returned. For example, for warnings where there are no results
12495	// in a list request for a particular zone, this key might be scope and
12496	// the key value might be the zone name. Other examples might be a key
12497	// indicating a deprecated resource and a suggested replacement, or a
12498	// warning about invalid network settings (for example, if an instance
12499	// attempts to perform IP forwarding but is not enabled for IP
12500	// forwarding).
12501	Key string `json:"key,omitempty"`
12502
12503	// Value: [Output Only] A warning data value corresponding to the key.
12504	Value string `json:"value,omitempty"`
12505
12506	// ForceSendFields is a list of field names (e.g. "Key") to
12507	// unconditionally include in API requests. By default, fields with
12508	// empty values are omitted from API requests. However, any non-pointer,
12509	// non-interface field appearing in ForceSendFields will be sent to the
12510	// server regardless of whether the field is empty or not. This may be
12511	// used to include empty fields in Patch requests.
12512	ForceSendFields []string `json:"-"`
12513
12514	// NullFields is a list of field names (e.g. "Key") to include in API
12515	// requests with the JSON null value. By default, fields with empty
12516	// values are omitted from API requests. However, any field with an
12517	// empty value appearing in NullFields will be sent to the server as
12518	// null. It is an error if a field in this list has a non-empty value.
12519	// This may be used to include null fields in Patch requests.
12520	NullFields []string `json:"-"`
12521}
12522
12523func (s *HealthChecksScopedListWarningData) MarshalJSON() ([]byte, error) {
12524	type NoMethod HealthChecksScopedListWarningData
12525	raw := NoMethod(*s)
12526	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12527}
12528
12529type HealthStatus struct {
12530	// Annotations: Metadata defined as annotations for network endpoint.
12531	Annotations map[string]string `json:"annotations,omitempty"`
12532
12533	// HealthState: Health state of the instance.
12534	//
12535	// Possible values:
12536	//   "HEALTHY"
12537	//   "UNHEALTHY"
12538	HealthState string `json:"healthState,omitempty"`
12539
12540	// Instance: URL of the instance resource.
12541	Instance string `json:"instance,omitempty"`
12542
12543	// IpAddress: A forwarding rule IP address assigned to this instance.
12544	IpAddress string `json:"ipAddress,omitempty"`
12545
12546	// Port: The named port of the instance group, not necessarily the port
12547	// that is health-checked.
12548	Port int64 `json:"port,omitempty"`
12549
12550	// ForceSendFields is a list of field names (e.g. "Annotations") to
12551	// unconditionally include in API requests. By default, fields with
12552	// empty values are omitted from API requests. However, any non-pointer,
12553	// non-interface field appearing in ForceSendFields will be sent to the
12554	// server regardless of whether the field is empty or not. This may be
12555	// used to include empty fields in Patch requests.
12556	ForceSendFields []string `json:"-"`
12557
12558	// NullFields is a list of field names (e.g. "Annotations") to include
12559	// in API requests with the JSON null value. By default, fields with
12560	// empty values are omitted from API requests. However, any field with
12561	// an empty value appearing in NullFields will be sent to the server as
12562	// null. It is an error if a field in this list has a non-empty value.
12563	// This may be used to include null fields in Patch requests.
12564	NullFields []string `json:"-"`
12565}
12566
12567func (s *HealthStatus) MarshalJSON() ([]byte, error) {
12568	type NoMethod HealthStatus
12569	raw := NoMethod(*s)
12570	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12571}
12572
12573type HealthStatusForNetworkEndpoint struct {
12574	// BackendService: URL of the backend service associated with the health
12575	// state of the network endpoint.
12576	BackendService *BackendServiceReference `json:"backendService,omitempty"`
12577
12578	// ForwardingRule: URL of the forwarding rule associated with the health
12579	// state of the network endpoint.
12580	ForwardingRule *ForwardingRuleReference `json:"forwardingRule,omitempty"`
12581
12582	// HealthCheck: URL of the health check associated with the health state
12583	// of the network endpoint.
12584	HealthCheck *HealthCheckReference `json:"healthCheck,omitempty"`
12585
12586	// HealthCheckService: URL of the health check service associated with
12587	// the health state of the network endpoint.
12588	HealthCheckService *HealthCheckServiceReference `json:"healthCheckService,omitempty"`
12589
12590	// HealthState: Health state of the network endpoint determined based on
12591	// the health checks configured.
12592	//
12593	// Possible values:
12594	//   "DRAINING"
12595	//   "HEALTHY"
12596	//   "UNHEALTHY"
12597	//   "UNKNOWN"
12598	HealthState string `json:"healthState,omitempty"`
12599
12600	// ForceSendFields is a list of field names (e.g. "BackendService") to
12601	// unconditionally include in API requests. By default, fields with
12602	// empty values are omitted from API requests. However, any non-pointer,
12603	// non-interface field appearing in ForceSendFields will be sent to the
12604	// server regardless of whether the field is empty or not. This may be
12605	// used to include empty fields in Patch requests.
12606	ForceSendFields []string `json:"-"`
12607
12608	// NullFields is a list of field names (e.g. "BackendService") to
12609	// include in API requests with the JSON null value. By default, fields
12610	// with empty values are omitted from API requests. However, any field
12611	// with an empty value appearing in NullFields will be sent to the
12612	// server as null. It is an error if a field in this list has a
12613	// non-empty value. This may be used to include null fields in Patch
12614	// requests.
12615	NullFields []string `json:"-"`
12616}
12617
12618func (s *HealthStatusForNetworkEndpoint) MarshalJSON() ([]byte, error) {
12619	type NoMethod HealthStatusForNetworkEndpoint
12620	raw := NoMethod(*s)
12621	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12622}
12623
12624// HostRule: UrlMaps A host-matching rule for a URL. If matched, will
12625// use the named PathMatcher to select the BackendService.
12626type HostRule struct {
12627	// Description: An optional description of this resource. Provide this
12628	// property when you create the resource.
12629	Description string `json:"description,omitempty"`
12630
12631	// Hosts: The list of host patterns to match. They must be valid
12632	// hostnames, except * will match any string of ([a-z0-9-.]*). In that
12633	// case, * must be the first character and must be followed in the
12634	// pattern by either - or ..
12635	Hosts []string `json:"hosts,omitempty"`
12636
12637	// PathMatcher: The name of the PathMatcher to use to match the path
12638	// portion of the URL if the hostRule matches the URL's host portion.
12639	PathMatcher string `json:"pathMatcher,omitempty"`
12640
12641	// ForceSendFields is a list of field names (e.g. "Description") to
12642	// unconditionally include in API requests. By default, fields with
12643	// empty values are omitted from API requests. However, any non-pointer,
12644	// non-interface field appearing in ForceSendFields will be sent to the
12645	// server regardless of whether the field is empty or not. This may be
12646	// used to include empty fields in Patch requests.
12647	ForceSendFields []string `json:"-"`
12648
12649	// NullFields is a list of field names (e.g. "Description") to include
12650	// in API requests with the JSON null value. By default, fields with
12651	// empty values are omitted from API requests. However, any field with
12652	// an empty value appearing in NullFields will be sent to the server as
12653	// null. It is an error if a field in this list has a non-empty value.
12654	// This may be used to include null fields in Patch requests.
12655	NullFields []string `json:"-"`
12656}
12657
12658func (s *HostRule) MarshalJSON() ([]byte, error) {
12659	type NoMethod HostRule
12660	raw := NoMethod(*s)
12661	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12662}
12663
12664// HttpFaultAbort: Specification for how requests are aborted as part of
12665// fault injection.
12666type HttpFaultAbort struct {
12667	// HttpStatus: The HTTP status code used to abort the request.
12668	// The value must be between 200 and 599 inclusive.
12669	HttpStatus int64 `json:"httpStatus,omitempty"`
12670
12671	// Percentage: The percentage of traffic
12672	// (connections/operations/requests) which will be aborted as part of
12673	// fault injection.
12674	// The value must be between 0.0 and 100.0 inclusive.
12675	Percentage float64 `json:"percentage,omitempty"`
12676
12677	// ForceSendFields is a list of field names (e.g. "HttpStatus") to
12678	// unconditionally include in API requests. By default, fields with
12679	// empty values are omitted from API requests. However, any non-pointer,
12680	// non-interface field appearing in ForceSendFields will be sent to the
12681	// server regardless of whether the field is empty or not. This may be
12682	// used to include empty fields in Patch requests.
12683	ForceSendFields []string `json:"-"`
12684
12685	// NullFields is a list of field names (e.g. "HttpStatus") to include in
12686	// API requests with the JSON null value. By default, fields with empty
12687	// values are omitted from API requests. However, any field with an
12688	// empty value appearing in NullFields will be sent to the server as
12689	// null. It is an error if a field in this list has a non-empty value.
12690	// This may be used to include null fields in Patch requests.
12691	NullFields []string `json:"-"`
12692}
12693
12694func (s *HttpFaultAbort) MarshalJSON() ([]byte, error) {
12695	type NoMethod HttpFaultAbort
12696	raw := NoMethod(*s)
12697	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12698}
12699
12700func (s *HttpFaultAbort) UnmarshalJSON(data []byte) error {
12701	type NoMethod HttpFaultAbort
12702	var s1 struct {
12703		Percentage gensupport.JSONFloat64 `json:"percentage"`
12704		*NoMethod
12705	}
12706	s1.NoMethod = (*NoMethod)(s)
12707	if err := json.Unmarshal(data, &s1); err != nil {
12708		return err
12709	}
12710	s.Percentage = float64(s1.Percentage)
12711	return nil
12712}
12713
12714// HttpFaultDelay: Specifies the delay introduced by Loadbalancer before
12715// forwarding the request to the backend service as part of fault
12716// injection.
12717type HttpFaultDelay struct {
12718	// FixedDelay: Specifies the value of the fixed delay interval.
12719	FixedDelay *Duration `json:"fixedDelay,omitempty"`
12720
12721	// Percentage: The percentage of traffic
12722	// (connections/operations/requests) on which delay will be introduced
12723	// as part of fault injection.
12724	// The value must be between 0.0 and 100.0 inclusive.
12725	Percentage float64 `json:"percentage,omitempty"`
12726
12727	// ForceSendFields is a list of field names (e.g. "FixedDelay") to
12728	// unconditionally include in API requests. By default, fields with
12729	// empty values are omitted from API requests. However, any non-pointer,
12730	// non-interface field appearing in ForceSendFields will be sent to the
12731	// server regardless of whether the field is empty or not. This may be
12732	// used to include empty fields in Patch requests.
12733	ForceSendFields []string `json:"-"`
12734
12735	// NullFields is a list of field names (e.g. "FixedDelay") to include in
12736	// API requests with the JSON null value. By default, fields with empty
12737	// values are omitted from API requests. However, any field with an
12738	// empty value appearing in NullFields will be sent to the server as
12739	// null. It is an error if a field in this list has a non-empty value.
12740	// This may be used to include null fields in Patch requests.
12741	NullFields []string `json:"-"`
12742}
12743
12744func (s *HttpFaultDelay) MarshalJSON() ([]byte, error) {
12745	type NoMethod HttpFaultDelay
12746	raw := NoMethod(*s)
12747	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12748}
12749
12750func (s *HttpFaultDelay) UnmarshalJSON(data []byte) error {
12751	type NoMethod HttpFaultDelay
12752	var s1 struct {
12753		Percentage gensupport.JSONFloat64 `json:"percentage"`
12754		*NoMethod
12755	}
12756	s1.NoMethod = (*NoMethod)(s)
12757	if err := json.Unmarshal(data, &s1); err != nil {
12758		return err
12759	}
12760	s.Percentage = float64(s1.Percentage)
12761	return nil
12762}
12763
12764// HttpFaultInjection: The specification for fault injection introduced
12765// into traffic to test the resiliency of clients to backend service
12766// failure. As part of fault injection, when clients send requests to a
12767// backend service, delays can be introduced by Loadbalancer on a
12768// percentage of requests before sending those request to the backend
12769// service. Similarly requests from clients can be aborted by the
12770// Loadbalancer for a percentage of requests.
12771type HttpFaultInjection struct {
12772	// Abort: The specification for how client requests are aborted as part
12773	// of fault injection.
12774	Abort *HttpFaultAbort `json:"abort,omitempty"`
12775
12776	// Delay: The specification for how client requests are delayed as part
12777	// of fault injection, before being sent to a backend service.
12778	Delay *HttpFaultDelay `json:"delay,omitempty"`
12779
12780	// ForceSendFields is a list of field names (e.g. "Abort") to
12781	// unconditionally include in API requests. By default, fields with
12782	// empty values are omitted from API requests. However, any non-pointer,
12783	// non-interface field appearing in ForceSendFields will be sent to the
12784	// server regardless of whether the field is empty or not. This may be
12785	// used to include empty fields in Patch requests.
12786	ForceSendFields []string `json:"-"`
12787
12788	// NullFields is a list of field names (e.g. "Abort") to include in API
12789	// requests with the JSON null value. By default, fields with empty
12790	// values are omitted from API requests. However, any field with an
12791	// empty value appearing in NullFields will be sent to the server as
12792	// null. It is an error if a field in this list has a non-empty value.
12793	// This may be used to include null fields in Patch requests.
12794	NullFields []string `json:"-"`
12795}
12796
12797func (s *HttpFaultInjection) MarshalJSON() ([]byte, error) {
12798	type NoMethod HttpFaultInjection
12799	raw := NoMethod(*s)
12800	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12801}
12802
12803// HttpHeaderAction: The request and response header transformations
12804// that take effect before the request is passed along to the selected
12805// backendService.
12806type HttpHeaderAction struct {
12807	// RequestHeadersToAdd: Headers to add to a matching request prior to
12808	// forwarding the request to the backendService.
12809	RequestHeadersToAdd []*HttpHeaderOption `json:"requestHeadersToAdd,omitempty"`
12810
12811	// RequestHeadersToRemove: A list of header names for headers that need
12812	// to be removed from the request prior to forwarding the request to the
12813	// backendService.
12814	RequestHeadersToRemove []string `json:"requestHeadersToRemove,omitempty"`
12815
12816	// ResponseHeadersToAdd: Headers to add the response prior to sending
12817	// the response back to the client.
12818	ResponseHeadersToAdd []*HttpHeaderOption `json:"responseHeadersToAdd,omitempty"`
12819
12820	// ResponseHeadersToRemove: A list of header names for headers that need
12821	// to be removed from the response prior to sending the response back to
12822	// the client.
12823	ResponseHeadersToRemove []string `json:"responseHeadersToRemove,omitempty"`
12824
12825	// ForceSendFields is a list of field names (e.g. "RequestHeadersToAdd")
12826	// to unconditionally include in API requests. By default, fields with
12827	// empty values are omitted from API requests. However, any non-pointer,
12828	// non-interface field appearing in ForceSendFields will be sent to the
12829	// server regardless of whether the field is empty or not. This may be
12830	// used to include empty fields in Patch requests.
12831	ForceSendFields []string `json:"-"`
12832
12833	// NullFields is a list of field names (e.g. "RequestHeadersToAdd") to
12834	// include in API requests with the JSON null value. By default, fields
12835	// with empty values are omitted from API requests. However, any field
12836	// with an empty value appearing in NullFields will be sent to the
12837	// server as null. It is an error if a field in this list has a
12838	// non-empty value. This may be used to include null fields in Patch
12839	// requests.
12840	NullFields []string `json:"-"`
12841}
12842
12843func (s *HttpHeaderAction) MarshalJSON() ([]byte, error) {
12844	type NoMethod HttpHeaderAction
12845	raw := NoMethod(*s)
12846	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12847}
12848
12849// HttpHeaderMatch: matchRule criteria for request header matches.
12850type HttpHeaderMatch struct {
12851	// ExactMatch: The value should exactly match contents of
12852	// exactMatch.
12853	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
12854	// presentMatch or rangeMatch must be set.
12855	ExactMatch string `json:"exactMatch,omitempty"`
12856
12857	// HeaderName: The name of the HTTP header to match.
12858	// For matching against the HTTP request's authority, use a headerMatch
12859	// with the header name ":authority".
12860	// For matching a request's method, use the headerName ":method".
12861	HeaderName string `json:"headerName,omitempty"`
12862
12863	// InvertMatch: If set to false, the headerMatch is considered a match
12864	// if the match criteria above are met. If set to true, the headerMatch
12865	// is considered a match if the match criteria above are NOT met.
12866	// The default setting is false.
12867	InvertMatch bool `json:"invertMatch,omitempty"`
12868
12869	// PrefixMatch: The value of the header must start with the contents of
12870	// prefixMatch.
12871	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
12872	// presentMatch or rangeMatch must be set.
12873	PrefixMatch string `json:"prefixMatch,omitempty"`
12874
12875	// PresentMatch: A header with the contents of headerName must exist.
12876	// The match takes place whether or not the request's header has a
12877	// value.
12878	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
12879	// presentMatch or rangeMatch must be set.
12880	PresentMatch bool `json:"presentMatch,omitempty"`
12881
12882	// RangeMatch: The header value must be an integer and its value must be
12883	// in the range specified in rangeMatch. If the header does not contain
12884	// an integer, number or is empty, the match fails.
12885	// For example for a range [-5, 0]
12886	// - -3 will match.
12887	// - 0 will not match.
12888	// - 0.25 will not match.
12889	// - -3someString will not match.
12890	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
12891	// presentMatch or rangeMatch must be set.
12892	// Note that rangeMatch is not supported for Loadbalancers that have
12893	// their loadBalancingScheme set to EXTERNAL.
12894	RangeMatch *Int64RangeMatch `json:"rangeMatch,omitempty"`
12895
12896	// RegexMatch: The value of the header must match the regular expression
12897	// specified in regexMatch. For regular expression grammar, please see:
12898	// en.cppreference.com/w/cpp/regex/ecmascript
12899	// For matching against a port specified in the HTTP request, use a
12900	// headerMatch with headerName set to PORT and a regular expression that
12901	// satisfies the RFC2616 Host header's port specifier.
12902	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
12903	// presentMatch or rangeMatch must be set.
12904	// Note that regexMatch only applies to Loadbalancers that have their
12905	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
12906	RegexMatch string `json:"regexMatch,omitempty"`
12907
12908	// SuffixMatch: The value of the header must end with the contents of
12909	// suffixMatch.
12910	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
12911	// presentMatch or rangeMatch must be set.
12912	SuffixMatch string `json:"suffixMatch,omitempty"`
12913
12914	// ForceSendFields is a list of field names (e.g. "ExactMatch") to
12915	// unconditionally include in API requests. By default, fields with
12916	// empty values are omitted from API requests. However, any non-pointer,
12917	// non-interface field appearing in ForceSendFields will be sent to the
12918	// server regardless of whether the field is empty or not. This may be
12919	// used to include empty fields in Patch requests.
12920	ForceSendFields []string `json:"-"`
12921
12922	// NullFields is a list of field names (e.g. "ExactMatch") to include in
12923	// API requests with the JSON null value. By default, fields with empty
12924	// values are omitted from API requests. However, any field with an
12925	// empty value appearing in NullFields will be sent to the server as
12926	// null. It is an error if a field in this list has a non-empty value.
12927	// This may be used to include null fields in Patch requests.
12928	NullFields []string `json:"-"`
12929}
12930
12931func (s *HttpHeaderMatch) MarshalJSON() ([]byte, error) {
12932	type NoMethod HttpHeaderMatch
12933	raw := NoMethod(*s)
12934	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12935}
12936
12937// HttpHeaderOption: Specification determining how headers are added to
12938// requests or responses.
12939type HttpHeaderOption struct {
12940	// HeaderName: The name of the header.
12941	HeaderName string `json:"headerName,omitempty"`
12942
12943	// HeaderValue: The value of the header to add.
12944	HeaderValue string `json:"headerValue,omitempty"`
12945
12946	// Replace: If false, headerValue is appended to any values that already
12947	// exist for the header. If true, headerValue is set for the header,
12948	// discarding any values that were set for that header.
12949	// The default value is false.
12950	Replace bool `json:"replace,omitempty"`
12951
12952	// ForceSendFields is a list of field names (e.g. "HeaderName") to
12953	// unconditionally include in API requests. By default, fields with
12954	// empty values are omitted from API requests. However, any non-pointer,
12955	// non-interface field appearing in ForceSendFields will be sent to the
12956	// server regardless of whether the field is empty or not. This may be
12957	// used to include empty fields in Patch requests.
12958	ForceSendFields []string `json:"-"`
12959
12960	// NullFields is a list of field names (e.g. "HeaderName") to include in
12961	// API requests with the JSON null value. By default, fields with empty
12962	// values are omitted from API requests. However, any field with an
12963	// empty value appearing in NullFields will be sent to the server as
12964	// null. It is an error if a field in this list has a non-empty value.
12965	// This may be used to include null fields in Patch requests.
12966	NullFields []string `json:"-"`
12967}
12968
12969func (s *HttpHeaderOption) MarshalJSON() ([]byte, error) {
12970	type NoMethod HttpHeaderOption
12971	raw := NoMethod(*s)
12972	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12973}
12974
12975// HttpHealthCheck: Represents a legacy HTTP Health Check
12976// resource.
12977//
12978// Legacy health checks are required by network load balancers. For more
12979// information, read Health Check Concepts.
12980type HttpHealthCheck struct {
12981	// CheckIntervalSec: How often (in seconds) to send a health check. The
12982	// default value is 5 seconds.
12983	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
12984
12985	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
12986	// format.
12987	CreationTimestamp string `json:"creationTimestamp,omitempty"`
12988
12989	// Description: An optional description of this resource. Provide this
12990	// property when you create the resource.
12991	Description string `json:"description,omitempty"`
12992
12993	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
12994	// after this many consecutive successes. The default value is 2.
12995	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
12996
12997	// Host: The value of the host header in the HTTP health check request.
12998	// If left empty (default value), the public IP on behalf of which this
12999	// health check is performed will be used.
13000	Host string `json:"host,omitempty"`
13001
13002	// Id: [Output Only] The unique identifier for the resource. This
13003	// identifier is defined by the server.
13004	Id uint64 `json:"id,omitempty,string"`
13005
13006	// Kind: [Output Only] Type of the resource. Always
13007	// compute#httpHealthCheck for HTTP health checks.
13008	Kind string `json:"kind,omitempty"`
13009
13010	// Name: Name of the resource. Provided by the client when the resource
13011	// is created. The name must be 1-63 characters long, and comply with
13012	// RFC1035. Specifically, the name must be 1-63 characters long and
13013	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
13014	// the first character must be a lowercase letter, and all following
13015	// characters must be a dash, lowercase letter, or digit, except the
13016	// last character, which cannot be a dash.
13017	Name string `json:"name,omitempty"`
13018
13019	// Port: The TCP port number for the HTTP health check request. The
13020	// default value is 80.
13021	Port int64 `json:"port,omitempty"`
13022
13023	// RequestPath: The request path of the HTTP health check request. The
13024	// default value is /. This field does not support query parameters.
13025	RequestPath string `json:"requestPath,omitempty"`
13026
13027	// SelfLink: [Output Only] Server-defined URL for the resource.
13028	SelfLink string `json:"selfLink,omitempty"`
13029
13030	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
13031	// with the resource id.
13032	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
13033
13034	// TimeoutSec: How long (in seconds) to wait before claiming failure.
13035	// The default value is 5 seconds. It is invalid for timeoutSec to have
13036	// greater value than checkIntervalSec.
13037	TimeoutSec int64 `json:"timeoutSec,omitempty"`
13038
13039	// UnhealthyThreshold: A so-far healthy instance will be marked
13040	// unhealthy after this many consecutive failures. The default value is
13041	// 2.
13042	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
13043
13044	// ServerResponse contains the HTTP response code and headers from the
13045	// server.
13046	googleapi.ServerResponse `json:"-"`
13047
13048	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
13049	// unconditionally include in API requests. By default, fields with
13050	// empty values are omitted from API requests. However, any non-pointer,
13051	// non-interface field appearing in ForceSendFields will be sent to the
13052	// server regardless of whether the field is empty or not. This may be
13053	// used to include empty fields in Patch requests.
13054	ForceSendFields []string `json:"-"`
13055
13056	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
13057	// include in API requests with the JSON null value. By default, fields
13058	// with empty values are omitted from API requests. However, any field
13059	// with an empty value appearing in NullFields will be sent to the
13060	// server as null. It is an error if a field in this list has a
13061	// non-empty value. This may be used to include null fields in Patch
13062	// requests.
13063	NullFields []string `json:"-"`
13064}
13065
13066func (s *HttpHealthCheck) MarshalJSON() ([]byte, error) {
13067	type NoMethod HttpHealthCheck
13068	raw := NoMethod(*s)
13069	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13070}
13071
13072// HttpHealthCheckList: Contains a list of HttpHealthCheck resources.
13073type HttpHealthCheckList struct {
13074	// Id: [Output Only] Unique identifier for the resource; defined by the
13075	// server.
13076	Id string `json:"id,omitempty"`
13077
13078	// Items: A list of HttpHealthCheck resources.
13079	Items []*HttpHealthCheck `json:"items,omitempty"`
13080
13081	// Kind: Type of resource.
13082	Kind string `json:"kind,omitempty"`
13083
13084	// NextPageToken: [Output Only] This token allows you to get the next
13085	// page of results for list requests. If the number of results is larger
13086	// than maxResults, use the nextPageToken as a value for the query
13087	// parameter pageToken in the next list request. Subsequent list
13088	// requests will have their own nextPageToken to continue paging through
13089	// the results.
13090	NextPageToken string `json:"nextPageToken,omitempty"`
13091
13092	// SelfLink: [Output Only] Server-defined URL for this resource.
13093	SelfLink string `json:"selfLink,omitempty"`
13094
13095	// Warning: [Output Only] Informational warning message.
13096	Warning *HttpHealthCheckListWarning `json:"warning,omitempty"`
13097
13098	// ServerResponse contains the HTTP response code and headers from the
13099	// server.
13100	googleapi.ServerResponse `json:"-"`
13101
13102	// ForceSendFields is a list of field names (e.g. "Id") to
13103	// unconditionally include in API requests. By default, fields with
13104	// empty values are omitted from API requests. However, any non-pointer,
13105	// non-interface field appearing in ForceSendFields will be sent to the
13106	// server regardless of whether the field is empty or not. This may be
13107	// used to include empty fields in Patch requests.
13108	ForceSendFields []string `json:"-"`
13109
13110	// NullFields is a list of field names (e.g. "Id") to include in API
13111	// requests with the JSON null value. By default, fields with empty
13112	// values are omitted from API requests. However, any field with an
13113	// empty value appearing in NullFields will be sent to the server as
13114	// null. It is an error if a field in this list has a non-empty value.
13115	// This may be used to include null fields in Patch requests.
13116	NullFields []string `json:"-"`
13117}
13118
13119func (s *HttpHealthCheckList) MarshalJSON() ([]byte, error) {
13120	type NoMethod HttpHealthCheckList
13121	raw := NoMethod(*s)
13122	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13123}
13124
13125// HttpHealthCheckListWarning: [Output Only] Informational warning
13126// message.
13127type HttpHealthCheckListWarning struct {
13128	// Code: [Output Only] A warning code, if applicable. For example,
13129	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13130	// the response.
13131	//
13132	// Possible values:
13133	//   "CLEANUP_FAILED"
13134	//   "DEPRECATED_RESOURCE_USED"
13135	//   "DEPRECATED_TYPE_USED"
13136	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13137	//   "EXPERIMENTAL_TYPE_USED"
13138	//   "EXTERNAL_API_WARNING"
13139	//   "FIELD_VALUE_OVERRIDEN"
13140	//   "INJECTED_KERNELS_DEPRECATED"
13141	//   "MISSING_TYPE_DEPENDENCY"
13142	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13143	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13144	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13145	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13146	//   "NEXT_HOP_NOT_RUNNING"
13147	//   "NOT_CRITICAL_ERROR"
13148	//   "NO_RESULTS_ON_PAGE"
13149	//   "REQUIRED_TOS_AGREEMENT"
13150	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13151	//   "RESOURCE_NOT_DELETED"
13152	//   "SCHEMA_VALIDATION_IGNORED"
13153	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13154	//   "UNDECLARED_PROPERTIES"
13155	//   "UNREACHABLE"
13156	Code string `json:"code,omitempty"`
13157
13158	// Data: [Output Only] Metadata about this warning in key: value format.
13159	// For example:
13160	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13161	Data []*HttpHealthCheckListWarningData `json:"data,omitempty"`
13162
13163	// Message: [Output Only] A human-readable description of the warning
13164	// code.
13165	Message string `json:"message,omitempty"`
13166
13167	// ForceSendFields is a list of field names (e.g. "Code") to
13168	// unconditionally include in API requests. By default, fields with
13169	// empty values are omitted from API requests. However, any non-pointer,
13170	// non-interface field appearing in ForceSendFields will be sent to the
13171	// server regardless of whether the field is empty or not. This may be
13172	// used to include empty fields in Patch requests.
13173	ForceSendFields []string `json:"-"`
13174
13175	// NullFields is a list of field names (e.g. "Code") to include in API
13176	// requests with the JSON null value. By default, fields with empty
13177	// values are omitted from API requests. However, any field with an
13178	// empty value appearing in NullFields will be sent to the server as
13179	// null. It is an error if a field in this list has a non-empty value.
13180	// This may be used to include null fields in Patch requests.
13181	NullFields []string `json:"-"`
13182}
13183
13184func (s *HttpHealthCheckListWarning) MarshalJSON() ([]byte, error) {
13185	type NoMethod HttpHealthCheckListWarning
13186	raw := NoMethod(*s)
13187	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13188}
13189
13190type HttpHealthCheckListWarningData struct {
13191	// Key: [Output Only] A key that provides more detail on the warning
13192	// being returned. For example, for warnings where there are no results
13193	// in a list request for a particular zone, this key might be scope and
13194	// the key value might be the zone name. Other examples might be a key
13195	// indicating a deprecated resource and a suggested replacement, or a
13196	// warning about invalid network settings (for example, if an instance
13197	// attempts to perform IP forwarding but is not enabled for IP
13198	// forwarding).
13199	Key string `json:"key,omitempty"`
13200
13201	// Value: [Output Only] A warning data value corresponding to the key.
13202	Value string `json:"value,omitempty"`
13203
13204	// ForceSendFields is a list of field names (e.g. "Key") to
13205	// unconditionally include in API requests. By default, fields with
13206	// empty values are omitted from API requests. However, any non-pointer,
13207	// non-interface field appearing in ForceSendFields will be sent to the
13208	// server regardless of whether the field is empty or not. This may be
13209	// used to include empty fields in Patch requests.
13210	ForceSendFields []string `json:"-"`
13211
13212	// NullFields is a list of field names (e.g. "Key") to include in API
13213	// requests with the JSON null value. By default, fields with empty
13214	// values are omitted from API requests. However, any field with an
13215	// empty value appearing in NullFields will be sent to the server as
13216	// null. It is an error if a field in this list has a non-empty value.
13217	// This may be used to include null fields in Patch requests.
13218	NullFields []string `json:"-"`
13219}
13220
13221func (s *HttpHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
13222	type NoMethod HttpHealthCheckListWarningData
13223	raw := NoMethod(*s)
13224	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13225}
13226
13227// HttpQueryParameterMatch: HttpRouteRuleMatch criteria for a request's
13228// query parameter.
13229type HttpQueryParameterMatch struct {
13230	// ExactMatch: The queryParameterMatch matches if the value of the
13231	// parameter exactly matches the contents of exactMatch.
13232	// Only one of presentMatch, exactMatch or regexMatch must be set.
13233	ExactMatch string `json:"exactMatch,omitempty"`
13234
13235	// Name: The name of the query parameter to match. The query parameter
13236	// must exist in the request, in the absence of which the request match
13237	// fails.
13238	Name string `json:"name,omitempty"`
13239
13240	// PresentMatch: Specifies that the queryParameterMatch matches if the
13241	// request contains the query parameter, irrespective of whether the
13242	// parameter has a value or not.
13243	// Only one of presentMatch, exactMatch or regexMatch must be set.
13244	PresentMatch bool `json:"presentMatch,omitempty"`
13245
13246	// RegexMatch: The queryParameterMatch matches if the value of the
13247	// parameter matches the regular expression specified by regexMatch. For
13248	// the regular expression grammar, please see
13249	// en.cppreference.com/w/cpp/regex/ecmascript
13250	// Only one of presentMatch, exactMatch or regexMatch must be set.
13251	// Note that regexMatch only applies when the loadBalancingScheme is set
13252	// to INTERNAL_SELF_MANAGED.
13253	RegexMatch string `json:"regexMatch,omitempty"`
13254
13255	// ForceSendFields is a list of field names (e.g. "ExactMatch") to
13256	// unconditionally include in API requests. By default, fields with
13257	// empty values are omitted from API requests. However, any non-pointer,
13258	// non-interface field appearing in ForceSendFields will be sent to the
13259	// server regardless of whether the field is empty or not. This may be
13260	// used to include empty fields in Patch requests.
13261	ForceSendFields []string `json:"-"`
13262
13263	// NullFields is a list of field names (e.g. "ExactMatch") to include in
13264	// API requests with the JSON null value. By default, fields with empty
13265	// values are omitted from API requests. However, any field with an
13266	// empty value appearing in NullFields will be sent to the server as
13267	// null. It is an error if a field in this list has a non-empty value.
13268	// This may be used to include null fields in Patch requests.
13269	NullFields []string `json:"-"`
13270}
13271
13272func (s *HttpQueryParameterMatch) MarshalJSON() ([]byte, error) {
13273	type NoMethod HttpQueryParameterMatch
13274	raw := NoMethod(*s)
13275	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13276}
13277
13278// HttpRedirectAction: Specifies settings for an HTTP redirect.
13279type HttpRedirectAction struct {
13280	// HostRedirect: The host that will be used in the redirect response
13281	// instead of the one that was supplied in the request.
13282	// The value must be between 1 and 255 characters.
13283	HostRedirect string `json:"hostRedirect,omitempty"`
13284
13285	// HttpsRedirect: If set to true, the URL scheme in the redirected
13286	// request is set to https. If set to false, the URL scheme of the
13287	// redirected request will remain the same as that of the request.
13288	// This must only be set for UrlMaps used in TargetHttpProxys. Setting
13289	// this true for TargetHttpsProxy is not permitted.
13290	// The default is set to false.
13291	HttpsRedirect bool `json:"httpsRedirect,omitempty"`
13292
13293	// PathRedirect: The path that will be used in the redirect response
13294	// instead of the one that was supplied in the request.
13295	// pathRedirect cannot be supplied together with prefixRedirect. Supply
13296	// one alone or neither. If neither is supplied, the path of the
13297	// original request will be used for the redirect.
13298	// The value must be between 1 and 1024 characters.
13299	PathRedirect string `json:"pathRedirect,omitempty"`
13300
13301	// PrefixRedirect: The prefix that replaces the prefixMatch specified in
13302	// the HttpRouteRuleMatch, retaining the remaining portion of the URL
13303	// before redirecting the request.
13304	// prefixRedirect cannot be supplied together with pathRedirect. Supply
13305	// one alone or neither. If neither is supplied, the path of the
13306	// original request will be used for the redirect.
13307	// The value must be between 1 and 1024 characters.
13308	PrefixRedirect string `json:"prefixRedirect,omitempty"`
13309
13310	// RedirectResponseCode: The HTTP Status code to use for this
13311	// RedirectAction.
13312	// Supported values are:
13313	// - MOVED_PERMANENTLY_DEFAULT, which is the default value and
13314	// corresponds to 301.
13315	// - FOUND, which corresponds to 302.
13316	// - SEE_OTHER which corresponds to 303.
13317	// - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the
13318	// request method will be retained.
13319	// - PERMANENT_REDIRECT, which corresponds to 308. In this case, the
13320	// request method will be retained.
13321	//
13322	// Possible values:
13323	//   "FOUND"
13324	//   "MOVED_PERMANENTLY_DEFAULT"
13325	//   "PERMANENT_REDIRECT"
13326	//   "SEE_OTHER"
13327	//   "TEMPORARY_REDIRECT"
13328	RedirectResponseCode string `json:"redirectResponseCode,omitempty"`
13329
13330	// StripQuery: If set to true, any accompanying query portion of the
13331	// original URL is removed prior to redirecting the request. If set to
13332	// false, the query portion of the original URL is retained.
13333	// The default is set to false.
13334	StripQuery bool `json:"stripQuery,omitempty"`
13335
13336	// ForceSendFields is a list of field names (e.g. "HostRedirect") to
13337	// unconditionally include in API requests. By default, fields with
13338	// empty values are omitted from API requests. However, any non-pointer,
13339	// non-interface field appearing in ForceSendFields will be sent to the
13340	// server regardless of whether the field is empty or not. This may be
13341	// used to include empty fields in Patch requests.
13342	ForceSendFields []string `json:"-"`
13343
13344	// NullFields is a list of field names (e.g. "HostRedirect") to include
13345	// in API requests with the JSON null value. By default, fields with
13346	// empty values are omitted from API requests. However, any field with
13347	// an empty value appearing in NullFields will be sent to the server as
13348	// null. It is an error if a field in this list has a non-empty value.
13349	// This may be used to include null fields in Patch requests.
13350	NullFields []string `json:"-"`
13351}
13352
13353func (s *HttpRedirectAction) MarshalJSON() ([]byte, error) {
13354	type NoMethod HttpRedirectAction
13355	raw := NoMethod(*s)
13356	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13357}
13358
13359// HttpRetryPolicy: The retry policy associates with HttpRouteRule
13360type HttpRetryPolicy struct {
13361	// NumRetries: Specifies the allowed number retries. This number must be
13362	// > 0. If not specified, defaults to 1.
13363	NumRetries int64 `json:"numRetries,omitempty"`
13364
13365	// PerTryTimeout: Specifies a non-zero timeout per retry attempt.
13366	// If not specified, will use the timeout set in HttpRouteAction. If
13367	// timeout in HttpRouteAction is not set, will use the largest timeout
13368	// among all backend services associated with the route.
13369	PerTryTimeout *Duration `json:"perTryTimeout,omitempty"`
13370
13371	// RetryConditions: Specfies one or more conditions when this retry rule
13372	// applies. Valid values are:
13373	// - 5xx: Loadbalancer will attempt a retry if the backend service
13374	// responds with any 5xx response code, or if the backend service does
13375	// not respond at all, example: disconnects, reset, read timeout,
13376	// connection failure, and refused streams.
13377	// - gateway-error: Similar to 5xx, but only applies to response codes
13378	// 502, 503 or 504.
13379	// -
13380	// - connect-failure: Loadbalancer will retry on failures connecting to
13381	// backend services, for example due to connection timeouts.
13382	// - retriable-4xx: Loadbalancer will retry for retriable 4xx response
13383	// codes. Currently the only retriable error supported is 409.
13384	// - refused-stream:Loadbalancer will retry if the backend service
13385	// resets the stream with a REFUSED_STREAM error code. This reset type
13386	// indicates that it is safe to retry.
13387	// - cancelledLoadbalancer will retry if the gRPC status code in the
13388	// response header is set to cancelled
13389	// - deadline-exceeded: Loadbalancer will retry if the gRPC status code
13390	// in the response header is set to deadline-exceeded
13391	// - resource-exhausted: Loadbalancer will retry if the gRPC status code
13392	// in the response header is set to resource-exhausted
13393	// - unavailable: Loadbalancer will retry if the gRPC status code in the
13394	// response header is set to unavailable
13395	RetryConditions []string `json:"retryConditions,omitempty"`
13396
13397	// ForceSendFields is a list of field names (e.g. "NumRetries") to
13398	// unconditionally include in API requests. By default, fields with
13399	// empty values are omitted from API requests. However, any non-pointer,
13400	// non-interface field appearing in ForceSendFields will be sent to the
13401	// server regardless of whether the field is empty or not. This may be
13402	// used to include empty fields in Patch requests.
13403	ForceSendFields []string `json:"-"`
13404
13405	// NullFields is a list of field names (e.g. "NumRetries") to include in
13406	// API requests with the JSON null value. By default, fields with empty
13407	// values are omitted from API requests. However, any field with an
13408	// empty value appearing in NullFields will be sent to the server as
13409	// null. It is an error if a field in this list has a non-empty value.
13410	// This may be used to include null fields in Patch requests.
13411	NullFields []string `json:"-"`
13412}
13413
13414func (s *HttpRetryPolicy) MarshalJSON() ([]byte, error) {
13415	type NoMethod HttpRetryPolicy
13416	raw := NoMethod(*s)
13417	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13418}
13419
13420type HttpRouteAction struct {
13421	// CorsPolicy: The specification for allowing client side cross-origin
13422	// requests. Please see W3C Recommendation for Cross Origin Resource
13423	// Sharing
13424	CorsPolicy *CorsPolicy `json:"corsPolicy,omitempty"`
13425
13426	// FaultInjectionPolicy: The specification for fault injection
13427	// introduced into traffic to test the resiliency of clients to backend
13428	// service failure. As part of fault injection, when clients send
13429	// requests to a backend service, delays can be introduced by
13430	// Loadbalancer on a percentage of requests before sending those request
13431	// to the backend service. Similarly requests from clients can be
13432	// aborted by the Loadbalancer for a percentage of requests.
13433	// timeout and retry_policy will be ignored by clients that are
13434	// configured with a fault_injection_policy.
13435	FaultInjectionPolicy *HttpFaultInjection `json:"faultInjectionPolicy,omitempty"`
13436
13437	// RequestMirrorPolicy: Specifies the policy on how requests intended
13438	// for the route's backends are shadowed to a separate mirrored backend
13439	// service. Loadbalancer does not wait for responses from the shadow
13440	// service. Prior to sending traffic to the shadow service, the host /
13441	// authority header is suffixed with -shadow.
13442	RequestMirrorPolicy *RequestMirrorPolicy `json:"requestMirrorPolicy,omitempty"`
13443
13444	// RetryPolicy: Specifies the retry policy associated with this route.
13445	RetryPolicy *HttpRetryPolicy `json:"retryPolicy,omitempty"`
13446
13447	// Timeout: Specifies the timeout for the selected route. Timeout is
13448	// computed from the time the request has been fully processed (i.e.
13449	// end-of-stream) up until the response has been completely processed.
13450	// Timeout includes all retries.
13451	// If not specified, will use the largest timeout among all backend
13452	// services associated with the route.
13453	Timeout *Duration `json:"timeout,omitempty"`
13454
13455	// UrlRewrite: The spec to modify the URL of the request, prior to
13456	// forwarding the request to the matched service.
13457	UrlRewrite *UrlRewrite `json:"urlRewrite,omitempty"`
13458
13459	// WeightedBackendServices: A list of weighted backend services to send
13460	// traffic to when a route match occurs. The weights determine the
13461	// fraction of traffic that flows to their corresponding backend
13462	// service. If all traffic needs to go to a single backend service,
13463	// there must be one  weightedBackendService with weight set to a non 0
13464	// number.
13465	// Once a backendService is identified and before forwarding the request
13466	// to the backend service, advanced routing actions like Url rewrites
13467	// and header transformations are applied depending on additional
13468	// settings specified in this HttpRouteAction.
13469	WeightedBackendServices []*WeightedBackendService `json:"weightedBackendServices,omitempty"`
13470
13471	// ForceSendFields is a list of field names (e.g. "CorsPolicy") to
13472	// unconditionally include in API requests. By default, fields with
13473	// empty values are omitted from API requests. However, any non-pointer,
13474	// non-interface field appearing in ForceSendFields will be sent to the
13475	// server regardless of whether the field is empty or not. This may be
13476	// used to include empty fields in Patch requests.
13477	ForceSendFields []string `json:"-"`
13478
13479	// NullFields is a list of field names (e.g. "CorsPolicy") to include in
13480	// API requests with the JSON null value. By default, fields with empty
13481	// values are omitted from API requests. However, any field with an
13482	// empty value appearing in NullFields will be sent to the server as
13483	// null. It is an error if a field in this list has a non-empty value.
13484	// This may be used to include null fields in Patch requests.
13485	NullFields []string `json:"-"`
13486}
13487
13488func (s *HttpRouteAction) MarshalJSON() ([]byte, error) {
13489	type NoMethod HttpRouteAction
13490	raw := NoMethod(*s)
13491	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13492}
13493
13494// HttpRouteRule: An HttpRouteRule specifies how to match an HTTP
13495// request and the corresponding routing action that load balancing
13496// proxies will perform.
13497type HttpRouteRule struct {
13498	// Description: The short description conveying the intent of this
13499	// routeRule.
13500	// The description can have a maximum length of 1024 characters.
13501	Description string `json:"description,omitempty"`
13502
13503	// HeaderAction: Specifies changes to request and response headers that
13504	// need to take effect for the selected backendService.
13505	// The headerAction specified here are applied before the matching
13506	// pathMatchers[].headerAction and after
13507	// pathMatchers[].routeRules[].routeAction.weightedBackendService.backend
13508	// ServiceWeightAction[].headerAction
13509	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
13510
13511	MatchRules []*HttpRouteRuleMatch `json:"matchRules,omitempty"`
13512
13513	// Priority: For routeRules within a given pathMatcher, priority
13514	// determines the order in which load balancer will interpret
13515	// routeRules. RouteRules are evaluated in order of priority, from the
13516	// lowest to highest number. The priority of a rule decreases as its
13517	// number increases (1, 2, 3, N+1). The first rule that matches the
13518	// request is applied.
13519	// You cannot configure two or more routeRules with the same priority.
13520	// Priority for each rule must be set to a number between 0 and
13521	// 2147483647 inclusive.
13522	// Priority numbers can have gaps, which enable you to add or remove
13523	// rules in the future without affecting the rest of the rules. For
13524	// example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority
13525	// numbers to which you could add rules numbered from 6 to 8, 10 to 11,
13526	// and 13 to 15 in the future without any impact on existing rules.
13527	Priority int64 `json:"priority,omitempty"`
13528
13529	// RouteAction: In response to a matching matchRule, the load balancer
13530	// performs advanced routing actions like URL rewrites, header
13531	// transformations, etc. prior to forwarding the request to the selected
13532	// backend. If  routeAction specifies any  weightedBackendServices,
13533	// service must not be set. Conversely if service is set, routeAction
13534	// cannot contain any  weightedBackendServices.
13535	// Only one of urlRedirect, service or
13536	// routeAction.weightedBackendService must be set.
13537	RouteAction *HttpRouteAction `json:"routeAction,omitempty"`
13538
13539	// Service: The full or partial URL of the backend service resource to
13540	// which traffic is directed if this rule is matched. If routeAction is
13541	// additionally specified, advanced routing actions like URL Rewrites,
13542	// etc. take effect prior to sending the request to the backend.
13543	// However, if service is specified, routeAction cannot contain any
13544	// weightedBackendService s. Conversely, if routeAction specifies any
13545	// weightedBackendServices, service must not be specified.
13546	// Only one of urlRedirect, service or
13547	// routeAction.weightedBackendService must be set.
13548	Service string `json:"service,omitempty"`
13549
13550	// UrlRedirect: When this rule is matched, the request is redirected to
13551	// a URL specified by urlRedirect.
13552	// If urlRedirect is specified, service or routeAction must not be set.
13553	UrlRedirect *HttpRedirectAction `json:"urlRedirect,omitempty"`
13554
13555	// ForceSendFields is a list of field names (e.g. "Description") to
13556	// unconditionally include in API requests. By default, fields with
13557	// empty values are omitted from API requests. However, any non-pointer,
13558	// non-interface field appearing in ForceSendFields will be sent to the
13559	// server regardless of whether the field is empty or not. This may be
13560	// used to include empty fields in Patch requests.
13561	ForceSendFields []string `json:"-"`
13562
13563	// NullFields is a list of field names (e.g. "Description") to include
13564	// in API requests with the JSON null value. By default, fields with
13565	// empty values are omitted from API requests. However, any field with
13566	// an empty value appearing in NullFields will be sent to the server as
13567	// null. It is an error if a field in this list has a non-empty value.
13568	// This may be used to include null fields in Patch requests.
13569	NullFields []string `json:"-"`
13570}
13571
13572func (s *HttpRouteRule) MarshalJSON() ([]byte, error) {
13573	type NoMethod HttpRouteRule
13574	raw := NoMethod(*s)
13575	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13576}
13577
13578// HttpRouteRuleMatch: HttpRouteRuleMatch specifies a set of criteria
13579// for matching requests to an HttpRouteRule. All specified criteria
13580// must be satisfied for a match to occur.
13581type HttpRouteRuleMatch struct {
13582	// FullPathMatch: For satisfying the matchRule condition, the path of
13583	// the request must exactly match the value specified in fullPathMatch
13584	// after removing any query parameters and anchor that may be part of
13585	// the original URL.
13586	// fullPathMatch must be between 1 and 1024 characters.
13587	// Only one of prefixMatch, fullPathMatch or regexMatch must be
13588	// specified.
13589	FullPathMatch string `json:"fullPathMatch,omitempty"`
13590
13591	// HeaderMatches: Specifies a list of header match criteria, all of
13592	// which must match corresponding headers in the request.
13593	HeaderMatches []*HttpHeaderMatch `json:"headerMatches,omitempty"`
13594
13595	// IgnoreCase: Specifies that prefixMatch and fullPathMatch matches are
13596	// case sensitive.
13597	// The default value is false.
13598	// ignoreCase must not be used with regexMatch.
13599	IgnoreCase bool `json:"ignoreCase,omitempty"`
13600
13601	// MetadataFilters: Opaque filter criteria used by Loadbalancer to
13602	// restrict routing configuration to a limited set of xDS compliant
13603	// clients. In their xDS requests to Loadbalancer, xDS clients present
13604	// node metadata. If a match takes place, the relevant routing
13605	// configuration is made available to those proxies.
13606	// For each metadataFilter in this list, if its filterMatchCriteria is
13607	// set to MATCH_ANY, at least one of the filterLabels must match the
13608	// corresponding label provided in the metadata. If its
13609	// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
13610	// must match with corresponding labels provided in the
13611	// metadata.
13612	// metadataFilters specified here will be applied after those specified
13613	// in ForwardingRule that refers to the UrlMap this HttpRouteRuleMatch
13614	// belongs to.
13615	// metadataFilters only applies to Loadbalancers that have their
13616	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
13617	MetadataFilters []*MetadataFilter `json:"metadataFilters,omitempty"`
13618
13619	// PrefixMatch: For satisfying the matchRule condition, the request's
13620	// path must begin with the specified prefixMatch. prefixMatch must
13621	// begin with a /.
13622	// The value must be between 1 and 1024 characters.
13623	// Only one of prefixMatch, fullPathMatch or regexMatch must be
13624	// specified.
13625	PrefixMatch string `json:"prefixMatch,omitempty"`
13626
13627	// QueryParameterMatches: Specifies a list of query parameter match
13628	// criteria, all of which must match corresponding query parameters in
13629	// the request.
13630	QueryParameterMatches []*HttpQueryParameterMatch `json:"queryParameterMatches,omitempty"`
13631
13632	// RegexMatch: For satisfying the matchRule condition, the path of the
13633	// request must satisfy the regular expression specified in regexMatch
13634	// after removing any query parameters and anchor supplied with the
13635	// original URL. For regular expression grammar please see
13636	// en.cppreference.com/w/cpp/regex/ecmascript
13637	// Only one of prefixMatch, fullPathMatch or regexMatch must be
13638	// specified.
13639	// Note that regexMatch only applies to Loadbalancers that have their
13640	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
13641	RegexMatch string `json:"regexMatch,omitempty"`
13642
13643	// ForceSendFields is a list of field names (e.g. "FullPathMatch") to
13644	// unconditionally include in API requests. By default, fields with
13645	// empty values are omitted from API requests. However, any non-pointer,
13646	// non-interface field appearing in ForceSendFields will be sent to the
13647	// server regardless of whether the field is empty or not. This may be
13648	// used to include empty fields in Patch requests.
13649	ForceSendFields []string `json:"-"`
13650
13651	// NullFields is a list of field names (e.g. "FullPathMatch") to include
13652	// in API requests with the JSON null value. By default, fields with
13653	// empty values are omitted from API requests. However, any field with
13654	// an empty value appearing in NullFields will be sent to the server as
13655	// null. It is an error if a field in this list has a non-empty value.
13656	// This may be used to include null fields in Patch requests.
13657	NullFields []string `json:"-"`
13658}
13659
13660func (s *HttpRouteRuleMatch) MarshalJSON() ([]byte, error) {
13661	type NoMethod HttpRouteRuleMatch
13662	raw := NoMethod(*s)
13663	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13664}
13665
13666// HttpsHealthCheck: Represents a legacy HTTPS Health Check
13667// resource.
13668//
13669// Legacy health checks are required by network load balancers. For more
13670// information, read Health Check Concepts.
13671type HttpsHealthCheck struct {
13672	// CheckIntervalSec: How often (in seconds) to send a health check. The
13673	// default value is 5 seconds.
13674	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
13675
13676	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
13677	// format.
13678	CreationTimestamp string `json:"creationTimestamp,omitempty"`
13679
13680	// Description: An optional description of this resource. Provide this
13681	// property when you create the resource.
13682	Description string `json:"description,omitempty"`
13683
13684	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
13685	// after this many consecutive successes. The default value is 2.
13686	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
13687
13688	// Host: The value of the host header in the HTTPS health check request.
13689	// If left empty (default value), the public IP on behalf of which this
13690	// health check is performed will be used.
13691	Host string `json:"host,omitempty"`
13692
13693	// Id: [Output Only] The unique identifier for the resource. This
13694	// identifier is defined by the server.
13695	Id uint64 `json:"id,omitempty,string"`
13696
13697	// Kind: Type of the resource.
13698	Kind string `json:"kind,omitempty"`
13699
13700	// Name: Name of the resource. Provided by the client when the resource
13701	// is created. The name must be 1-63 characters long, and comply with
13702	// RFC1035. Specifically, the name must be 1-63 characters long and
13703	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
13704	// the first character must be a lowercase letter, and all following
13705	// characters must be a dash, lowercase letter, or digit, except the
13706	// last character, which cannot be a dash.
13707	Name string `json:"name,omitempty"`
13708
13709	// Port: The TCP port number for the HTTPS health check request. The
13710	// default value is 443.
13711	Port int64 `json:"port,omitempty"`
13712
13713	// RequestPath: The request path of the HTTPS health check request. The
13714	// default value is "/".
13715	RequestPath string `json:"requestPath,omitempty"`
13716
13717	// SelfLink: [Output Only] Server-defined URL for the resource.
13718	SelfLink string `json:"selfLink,omitempty"`
13719
13720	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
13721	// with the resource id.
13722	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
13723
13724	// TimeoutSec: How long (in seconds) to wait before claiming failure.
13725	// The default value is 5 seconds. It is invalid for timeoutSec to have
13726	// a greater value than checkIntervalSec.
13727	TimeoutSec int64 `json:"timeoutSec,omitempty"`
13728
13729	// UnhealthyThreshold: A so-far healthy instance will be marked
13730	// unhealthy after this many consecutive failures. The default value is
13731	// 2.
13732	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
13733
13734	// ServerResponse contains the HTTP response code and headers from the
13735	// server.
13736	googleapi.ServerResponse `json:"-"`
13737
13738	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
13739	// unconditionally include in API requests. By default, fields with
13740	// empty values are omitted from API requests. However, any non-pointer,
13741	// non-interface field appearing in ForceSendFields will be sent to the
13742	// server regardless of whether the field is empty or not. This may be
13743	// used to include empty fields in Patch requests.
13744	ForceSendFields []string `json:"-"`
13745
13746	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
13747	// include in API requests with the JSON null value. By default, fields
13748	// with empty values are omitted from API requests. However, any field
13749	// with an empty value appearing in NullFields will be sent to the
13750	// server as null. It is an error if a field in this list has a
13751	// non-empty value. This may be used to include null fields in Patch
13752	// requests.
13753	NullFields []string `json:"-"`
13754}
13755
13756func (s *HttpsHealthCheck) MarshalJSON() ([]byte, error) {
13757	type NoMethod HttpsHealthCheck
13758	raw := NoMethod(*s)
13759	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13760}
13761
13762// HttpsHealthCheckList: Contains a list of HttpsHealthCheck resources.
13763type HttpsHealthCheckList struct {
13764	// Id: [Output Only] Unique identifier for the resource; defined by the
13765	// server.
13766	Id string `json:"id,omitempty"`
13767
13768	// Items: A list of HttpsHealthCheck resources.
13769	Items []*HttpsHealthCheck `json:"items,omitempty"`
13770
13771	// Kind: Type of resource.
13772	Kind string `json:"kind,omitempty"`
13773
13774	// NextPageToken: [Output Only] This token allows you to get the next
13775	// page of results for list requests. If the number of results is larger
13776	// than maxResults, use the nextPageToken as a value for the query
13777	// parameter pageToken in the next list request. Subsequent list
13778	// requests will have their own nextPageToken to continue paging through
13779	// the results.
13780	NextPageToken string `json:"nextPageToken,omitempty"`
13781
13782	// SelfLink: [Output Only] Server-defined URL for this resource.
13783	SelfLink string `json:"selfLink,omitempty"`
13784
13785	// Warning: [Output Only] Informational warning message.
13786	Warning *HttpsHealthCheckListWarning `json:"warning,omitempty"`
13787
13788	// ServerResponse contains the HTTP response code and headers from the
13789	// server.
13790	googleapi.ServerResponse `json:"-"`
13791
13792	// ForceSendFields is a list of field names (e.g. "Id") to
13793	// unconditionally include in API requests. By default, fields with
13794	// empty values are omitted from API requests. However, any non-pointer,
13795	// non-interface field appearing in ForceSendFields will be sent to the
13796	// server regardless of whether the field is empty or not. This may be
13797	// used to include empty fields in Patch requests.
13798	ForceSendFields []string `json:"-"`
13799
13800	// NullFields is a list of field names (e.g. "Id") to include in API
13801	// requests with the JSON null value. By default, fields with empty
13802	// values are omitted from API requests. However, any field with an
13803	// empty value appearing in NullFields will be sent to the server as
13804	// null. It is an error if a field in this list has a non-empty value.
13805	// This may be used to include null fields in Patch requests.
13806	NullFields []string `json:"-"`
13807}
13808
13809func (s *HttpsHealthCheckList) MarshalJSON() ([]byte, error) {
13810	type NoMethod HttpsHealthCheckList
13811	raw := NoMethod(*s)
13812	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13813}
13814
13815// HttpsHealthCheckListWarning: [Output Only] Informational warning
13816// message.
13817type HttpsHealthCheckListWarning struct {
13818	// Code: [Output Only] A warning code, if applicable. For example,
13819	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13820	// the response.
13821	//
13822	// Possible values:
13823	//   "CLEANUP_FAILED"
13824	//   "DEPRECATED_RESOURCE_USED"
13825	//   "DEPRECATED_TYPE_USED"
13826	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13827	//   "EXPERIMENTAL_TYPE_USED"
13828	//   "EXTERNAL_API_WARNING"
13829	//   "FIELD_VALUE_OVERRIDEN"
13830	//   "INJECTED_KERNELS_DEPRECATED"
13831	//   "MISSING_TYPE_DEPENDENCY"
13832	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13833	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13834	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13835	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13836	//   "NEXT_HOP_NOT_RUNNING"
13837	//   "NOT_CRITICAL_ERROR"
13838	//   "NO_RESULTS_ON_PAGE"
13839	//   "REQUIRED_TOS_AGREEMENT"
13840	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13841	//   "RESOURCE_NOT_DELETED"
13842	//   "SCHEMA_VALIDATION_IGNORED"
13843	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13844	//   "UNDECLARED_PROPERTIES"
13845	//   "UNREACHABLE"
13846	Code string `json:"code,omitempty"`
13847
13848	// Data: [Output Only] Metadata about this warning in key: value format.
13849	// For example:
13850	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13851	Data []*HttpsHealthCheckListWarningData `json:"data,omitempty"`
13852
13853	// Message: [Output Only] A human-readable description of the warning
13854	// code.
13855	Message string `json:"message,omitempty"`
13856
13857	// ForceSendFields is a list of field names (e.g. "Code") to
13858	// unconditionally include in API requests. By default, fields with
13859	// empty values are omitted from API requests. However, any non-pointer,
13860	// non-interface field appearing in ForceSendFields will be sent to the
13861	// server regardless of whether the field is empty or not. This may be
13862	// used to include empty fields in Patch requests.
13863	ForceSendFields []string `json:"-"`
13864
13865	// NullFields is a list of field names (e.g. "Code") to include in API
13866	// requests with the JSON null value. By default, fields with empty
13867	// values are omitted from API requests. However, any field with an
13868	// empty value appearing in NullFields will be sent to the server as
13869	// null. It is an error if a field in this list has a non-empty value.
13870	// This may be used to include null fields in Patch requests.
13871	NullFields []string `json:"-"`
13872}
13873
13874func (s *HttpsHealthCheckListWarning) MarshalJSON() ([]byte, error) {
13875	type NoMethod HttpsHealthCheckListWarning
13876	raw := NoMethod(*s)
13877	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13878}
13879
13880type HttpsHealthCheckListWarningData struct {
13881	// Key: [Output Only] A key that provides more detail on the warning
13882	// being returned. For example, for warnings where there are no results
13883	// in a list request for a particular zone, this key might be scope and
13884	// the key value might be the zone name. Other examples might be a key
13885	// indicating a deprecated resource and a suggested replacement, or a
13886	// warning about invalid network settings (for example, if an instance
13887	// attempts to perform IP forwarding but is not enabled for IP
13888	// forwarding).
13889	Key string `json:"key,omitempty"`
13890
13891	// Value: [Output Only] A warning data value corresponding to the key.
13892	Value string `json:"value,omitempty"`
13893
13894	// ForceSendFields is a list of field names (e.g. "Key") to
13895	// unconditionally include in API requests. By default, fields with
13896	// empty values are omitted from API requests. However, any non-pointer,
13897	// non-interface field appearing in ForceSendFields will be sent to the
13898	// server regardless of whether the field is empty or not. This may be
13899	// used to include empty fields in Patch requests.
13900	ForceSendFields []string `json:"-"`
13901
13902	// NullFields is a list of field names (e.g. "Key") to include in API
13903	// requests with the JSON null value. By default, fields with empty
13904	// values are omitted from API requests. However, any field with an
13905	// empty value appearing in NullFields will be sent to the server as
13906	// null. It is an error if a field in this list has a non-empty value.
13907	// This may be used to include null fields in Patch requests.
13908	NullFields []string `json:"-"`
13909}
13910
13911func (s *HttpsHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
13912	type NoMethod HttpsHealthCheckListWarningData
13913	raw := NoMethod(*s)
13914	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13915}
13916
13917// Image: Represents an Image resource.
13918//
13919// You can use images to create boot disks for your VM instances. For
13920// more information, read Images. (== resource_for {$api_version}.images
13921// ==)
13922type Image struct {
13923	// ArchiveSizeBytes: Size of the image tar.gz archive stored in Google
13924	// Cloud Storage (in bytes).
13925	ArchiveSizeBytes int64 `json:"archiveSizeBytes,omitempty,string"`
13926
13927	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
13928	// format.
13929	CreationTimestamp string `json:"creationTimestamp,omitempty"`
13930
13931	// Deprecated: The deprecation status associated with this image.
13932	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
13933
13934	// Description: An optional description of this resource. Provide this
13935	// property when you create the resource.
13936	Description string `json:"description,omitempty"`
13937
13938	// DiskSizeGb: Size of the image when restored onto a persistent disk
13939	// (in GB).
13940	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
13941
13942	// Family: The name of the image family to which this image belongs. You
13943	// can create disks by specifying an image family instead of a specific
13944	// image name. The image family always returns its latest image that is
13945	// not deprecated. The name of the image family must comply with
13946	// RFC1035.
13947	Family string `json:"family,omitempty"`
13948
13949	// GuestOsFeatures: A list of features to enable on the guest operating
13950	// system. Applicable only for bootable images. Read  Enabling guest
13951	// operating system features to see a list of available options.
13952	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
13953
13954	// Id: [Output Only] The unique identifier for the resource. This
13955	// identifier is defined by the server.
13956	Id uint64 `json:"id,omitempty,string"`
13957
13958	// ImageEncryptionKey: Encrypts the image using a customer-supplied
13959	// encryption key.
13960	//
13961	// After you encrypt an image with a customer-supplied key, you must
13962	// provide the same key if you use the image later (e.g. to create a
13963	// disk from the image).
13964	//
13965	// Customer-supplied encryption keys do not protect access to metadata
13966	// of the disk.
13967	//
13968	// If you do not provide an encryption key when creating the image, then
13969	// the disk will be encrypted using an automatically generated key and
13970	// you do not need to provide a key to use the image later.
13971	ImageEncryptionKey *CustomerEncryptionKey `json:"imageEncryptionKey,omitempty"`
13972
13973	// Kind: [Output Only] Type of the resource. Always compute#image for
13974	// images.
13975	Kind string `json:"kind,omitempty"`
13976
13977	// LabelFingerprint: A fingerprint for the labels being applied to this
13978	// image, which is essentially a hash of the labels used for optimistic
13979	// locking. The fingerprint is initially generated by Compute Engine and
13980	// changes after every request to modify or update labels. You must
13981	// always provide an up-to-date fingerprint hash in order to update or
13982	// change labels, otherwise the request will fail with error 412
13983	// conditionNotMet.
13984	//
13985	// To see the latest fingerprint, make a get() request to retrieve an
13986	// image.
13987	LabelFingerprint string `json:"labelFingerprint,omitempty"`
13988
13989	// Labels: Labels to apply to this image. These can be later modified by
13990	// the setLabels method.
13991	Labels map[string]string `json:"labels,omitempty"`
13992
13993	// LicenseCodes: Integer license codes indicating which licenses are
13994	// attached to this image.
13995	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
13996
13997	// Licenses: Any applicable license URI.
13998	Licenses []string `json:"licenses,omitempty"`
13999
14000	// Name: Name of the resource; provided by the client when the resource
14001	// is created. The name must be 1-63 characters long, and comply with
14002	// RFC1035. Specifically, the name must be 1-63 characters long and
14003	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
14004	// the first character must be a lowercase letter, and all following
14005	// characters must be a dash, lowercase letter, or digit, except the
14006	// last character, which cannot be a dash.
14007	Name string `json:"name,omitempty"`
14008
14009	// RawDisk: The parameters of the raw disk image.
14010	RawDisk *ImageRawDisk `json:"rawDisk,omitempty"`
14011
14012	// SelfLink: [Output Only] Server-defined URL for the resource.
14013	SelfLink string `json:"selfLink,omitempty"`
14014
14015	// SelfLinkWithId: [Output Only] Server-defined URL for this resource's
14016	// resource id.
14017	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
14018
14019	// ShieldedInstanceInitialState: Set the secure boot keys of shielded
14020	// instance.
14021	ShieldedInstanceInitialState *InitialStateConfig `json:"shieldedInstanceInitialState,omitempty"`
14022
14023	// SourceDisk: URL of the source disk used to create this image. This
14024	// can be a full or valid partial URL. You must provide either this
14025	// property or the rawDisk.source property but not both to create an
14026	// image. For example, the following are valid values:
14027	// -
14028	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
14029	// - projects/project/zones/zone/disks/disk
14030	// - zones/zone/disks/disk
14031	SourceDisk string `json:"sourceDisk,omitempty"`
14032
14033	// SourceDiskEncryptionKey: The customer-supplied encryption key of the
14034	// source disk. Required if the source disk is protected by a
14035	// customer-supplied encryption key.
14036	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
14037
14038	// SourceDiskId: [Output Only] The ID value of the disk used to create
14039	// this image. This value may be used to determine whether the image was
14040	// taken from the current or a previous instance of a given disk name.
14041	SourceDiskId string `json:"sourceDiskId,omitempty"`
14042
14043	// SourceImage: URL of the source image used to create this image. This
14044	// can be a full or valid partial URL. You must provide exactly one of:
14045	//
14046	// - this property, or
14047	// - the rawDisk.source property, or
14048	// - the sourceDisk property   in order to create an image.
14049	SourceImage string `json:"sourceImage,omitempty"`
14050
14051	// SourceImageEncryptionKey: The customer-supplied encryption key of the
14052	// source image. Required if the source image is protected by a
14053	// customer-supplied encryption key.
14054	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
14055
14056	// SourceImageId: [Output Only] The ID value of the image used to create
14057	// this image. This value may be used to determine whether the image was
14058	// taken from the current or a previous instance of a given image name.
14059	SourceImageId string `json:"sourceImageId,omitempty"`
14060
14061	// SourceSnapshot: URL of the source snapshot used to create this image.
14062	// This can be a full or valid partial URL. You must provide exactly one
14063	// of:
14064	// - this property, or
14065	// - the sourceImage property, or
14066	// - the rawDisk.source property, or
14067	// - the sourceDisk property   in order to create an image.
14068	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
14069
14070	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
14071	// the source snapshot. Required if the source snapshot is protected by
14072	// a customer-supplied encryption key.
14073	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
14074
14075	// SourceSnapshotId: [Output Only] The ID value of the snapshot used to
14076	// create this image. This value may be used to determine whether the
14077	// snapshot was taken from the current or a previous instance of a given
14078	// snapshot name.
14079	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
14080
14081	// SourceType: The type of the image used to create this disk. The
14082	// default and only value is RAW
14083	//
14084	// Possible values:
14085	//   "RAW" (default)
14086	SourceType string `json:"sourceType,omitempty"`
14087
14088	// Status: [Output Only] The status of the image. An image can be used
14089	// to create other resources, such as instances, only after the image
14090	// has been successfully created and the status is set to READY.
14091	// Possible values are FAILED, PENDING, or READY.
14092	//
14093	// Possible values:
14094	//   "DELETING"
14095	//   "FAILED"
14096	//   "PENDING"
14097	//   "READY"
14098	Status string `json:"status,omitempty"`
14099
14100	// StorageLocations: Cloud Storage bucket storage location of the image
14101	// (regional or multi-regional).
14102	StorageLocations []string `json:"storageLocations,omitempty"`
14103
14104	// ServerResponse contains the HTTP response code and headers from the
14105	// server.
14106	googleapi.ServerResponse `json:"-"`
14107
14108	// ForceSendFields is a list of field names (e.g. "ArchiveSizeBytes") to
14109	// unconditionally include in API requests. By default, fields with
14110	// empty values are omitted from API requests. However, any non-pointer,
14111	// non-interface field appearing in ForceSendFields will be sent to the
14112	// server regardless of whether the field is empty or not. This may be
14113	// used to include empty fields in Patch requests.
14114	ForceSendFields []string `json:"-"`
14115
14116	// NullFields is a list of field names (e.g. "ArchiveSizeBytes") to
14117	// include in API requests with the JSON null value. By default, fields
14118	// with empty values are omitted from API requests. However, any field
14119	// with an empty value appearing in NullFields will be sent to the
14120	// server as null. It is an error if a field in this list has a
14121	// non-empty value. This may be used to include null fields in Patch
14122	// requests.
14123	NullFields []string `json:"-"`
14124}
14125
14126func (s *Image) MarshalJSON() ([]byte, error) {
14127	type NoMethod Image
14128	raw := NoMethod(*s)
14129	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14130}
14131
14132// ImageRawDisk: The parameters of the raw disk image.
14133type ImageRawDisk struct {
14134	// ContainerType: The format used to encode and transmit the block
14135	// device, which should be TAR. This is just a container and
14136	// transmission format and not a runtime format. Provided by the client
14137	// when the disk image is created.
14138	//
14139	// Possible values:
14140	//   "TAR"
14141	ContainerType string `json:"containerType,omitempty"`
14142
14143	// Sha1Checksum: [Deprecated] This field is deprecated. An optional SHA1
14144	// checksum of the disk image before unpackaging provided by the client
14145	// when the disk image is created.
14146	Sha1Checksum string `json:"sha1Checksum,omitempty"`
14147
14148	// Source: The full Google Cloud Storage URL where the disk image is
14149	// stored. You must provide either this property or the sourceDisk
14150	// property but not both.
14151	Source string `json:"source,omitempty"`
14152
14153	// ForceSendFields is a list of field names (e.g. "ContainerType") to
14154	// unconditionally include in API requests. By default, fields with
14155	// empty values are omitted from API requests. However, any non-pointer,
14156	// non-interface field appearing in ForceSendFields will be sent to the
14157	// server regardless of whether the field is empty or not. This may be
14158	// used to include empty fields in Patch requests.
14159	ForceSendFields []string `json:"-"`
14160
14161	// NullFields is a list of field names (e.g. "ContainerType") to include
14162	// in API requests with the JSON null value. By default, fields with
14163	// empty values are omitted from API requests. However, any field with
14164	// an empty value appearing in NullFields will be sent to the server as
14165	// null. It is an error if a field in this list has a non-empty value.
14166	// This may be used to include null fields in Patch requests.
14167	NullFields []string `json:"-"`
14168}
14169
14170func (s *ImageRawDisk) MarshalJSON() ([]byte, error) {
14171	type NoMethod ImageRawDisk
14172	raw := NoMethod(*s)
14173	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14174}
14175
14176// ImageList: Contains a list of images.
14177type ImageList struct {
14178	// Id: [Output Only] Unique identifier for the resource; defined by the
14179	// server.
14180	Id string `json:"id,omitempty"`
14181
14182	// Items: A list of Image resources.
14183	Items []*Image `json:"items,omitempty"`
14184
14185	// Kind: Type of resource.
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 *ImageListWarning `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 *ImageList) MarshalJSON() ([]byte, error) {
14224	type NoMethod ImageList
14225	raw := NoMethod(*s)
14226	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14227}
14228
14229// ImageListWarning: [Output Only] Informational warning message.
14230type ImageListWarning struct {
14231	// Code: [Output Only] A warning code, if applicable. For example,
14232	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14233	// the response.
14234	//
14235	// Possible values:
14236	//   "CLEANUP_FAILED"
14237	//   "DEPRECATED_RESOURCE_USED"
14238	//   "DEPRECATED_TYPE_USED"
14239	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14240	//   "EXPERIMENTAL_TYPE_USED"
14241	//   "EXTERNAL_API_WARNING"
14242	//   "FIELD_VALUE_OVERRIDEN"
14243	//   "INJECTED_KERNELS_DEPRECATED"
14244	//   "MISSING_TYPE_DEPENDENCY"
14245	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14246	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14247	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14248	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14249	//   "NEXT_HOP_NOT_RUNNING"
14250	//   "NOT_CRITICAL_ERROR"
14251	//   "NO_RESULTS_ON_PAGE"
14252	//   "REQUIRED_TOS_AGREEMENT"
14253	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14254	//   "RESOURCE_NOT_DELETED"
14255	//   "SCHEMA_VALIDATION_IGNORED"
14256	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14257	//   "UNDECLARED_PROPERTIES"
14258	//   "UNREACHABLE"
14259	Code string `json:"code,omitempty"`
14260
14261	// Data: [Output Only] Metadata about this warning in key: value format.
14262	// For example:
14263	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14264	Data []*ImageListWarningData `json:"data,omitempty"`
14265
14266	// Message: [Output Only] A human-readable description of the warning
14267	// code.
14268	Message string `json:"message,omitempty"`
14269
14270	// ForceSendFields is a list of field names (e.g. "Code") to
14271	// unconditionally include in API requests. By default, fields with
14272	// empty values are omitted from API requests. However, any non-pointer,
14273	// non-interface field appearing in ForceSendFields will be sent to the
14274	// server regardless of whether the field is empty or not. This may be
14275	// used to include empty fields in Patch requests.
14276	ForceSendFields []string `json:"-"`
14277
14278	// NullFields is a list of field names (e.g. "Code") to include in API
14279	// requests with the JSON null value. By default, fields with empty
14280	// values are omitted from API requests. However, any field with an
14281	// empty value appearing in NullFields will be sent to the server as
14282	// null. It is an error if a field in this list has a non-empty value.
14283	// This may be used to include null fields in Patch requests.
14284	NullFields []string `json:"-"`
14285}
14286
14287func (s *ImageListWarning) MarshalJSON() ([]byte, error) {
14288	type NoMethod ImageListWarning
14289	raw := NoMethod(*s)
14290	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14291}
14292
14293type ImageListWarningData struct {
14294	// Key: [Output Only] A key that provides more detail on the warning
14295	// being returned. For example, for warnings where there are no results
14296	// in a list request for a particular zone, this key might be scope and
14297	// the key value might be the zone name. Other examples might be a key
14298	// indicating a deprecated resource and a suggested replacement, or a
14299	// warning about invalid network settings (for example, if an instance
14300	// attempts to perform IP forwarding but is not enabled for IP
14301	// forwarding).
14302	Key string `json:"key,omitempty"`
14303
14304	// Value: [Output Only] A warning data value corresponding to the key.
14305	Value string `json:"value,omitempty"`
14306
14307	// ForceSendFields is a list of field names (e.g. "Key") to
14308	// unconditionally include in API requests. By default, fields with
14309	// empty values are omitted from API requests. However, any non-pointer,
14310	// non-interface field appearing in ForceSendFields will be sent to the
14311	// server regardless of whether the field is empty or not. This may be
14312	// used to include empty fields in Patch requests.
14313	ForceSendFields []string `json:"-"`
14314
14315	// NullFields is a list of field names (e.g. "Key") to include in API
14316	// requests with the JSON null value. By default, fields with empty
14317	// values are omitted from API requests. However, any field with an
14318	// empty value appearing in NullFields will be sent to the server as
14319	// null. It is an error if a field in this list has a non-empty value.
14320	// This may be used to include null fields in Patch requests.
14321	NullFields []string `json:"-"`
14322}
14323
14324func (s *ImageListWarningData) MarshalJSON() ([]byte, error) {
14325	type NoMethod ImageListWarningData
14326	raw := NoMethod(*s)
14327	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14328}
14329
14330// InitialStateConfig: Initial State for shielded instance, these are
14331// public keys which are safe to store in public
14332type InitialStateConfig struct {
14333	// Dbs: The Key Database (db).
14334	Dbs []*FileContentBuffer `json:"dbs,omitempty"`
14335
14336	// Dbxs: The forbidden key database (dbx).
14337	Dbxs []*FileContentBuffer `json:"dbxs,omitempty"`
14338
14339	// Keks: The Key Exchange Key (KEK).
14340	Keks []*FileContentBuffer `json:"keks,omitempty"`
14341
14342	// Pk: The Platform Key (PK).
14343	Pk *FileContentBuffer `json:"pk,omitempty"`
14344
14345	// ForceSendFields is a list of field names (e.g. "Dbs") to
14346	// unconditionally include in API requests. By default, fields with
14347	// empty values are omitted from API requests. However, any non-pointer,
14348	// non-interface field appearing in ForceSendFields will be sent to the
14349	// server regardless of whether the field is empty or not. This may be
14350	// used to include empty fields in Patch requests.
14351	ForceSendFields []string `json:"-"`
14352
14353	// NullFields is a list of field names (e.g. "Dbs") to include in API
14354	// requests with the JSON null value. By default, fields with empty
14355	// values are omitted from API requests. However, any field with an
14356	// empty value appearing in NullFields will be sent to the server as
14357	// null. It is an error if a field in this list has a non-empty value.
14358	// This may be used to include null fields in Patch requests.
14359	NullFields []string `json:"-"`
14360}
14361
14362func (s *InitialStateConfig) MarshalJSON() ([]byte, error) {
14363	type NoMethod InitialStateConfig
14364	raw := NoMethod(*s)
14365	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14366}
14367
14368// Instance: Represents an Instance resource.
14369//
14370// An instance is a virtual machine that is hosted on Google Cloud
14371// Platform. For more information, read Virtual Machine Instances. (==
14372// resource_for {$api_version}.instances ==)
14373type Instance struct {
14374	// CanIpForward: Allows this instance to send and receive packets with
14375	// non-matching destination or source IPs. This is required if you plan
14376	// to use this instance to forward routes. For more information, see
14377	// Enabling IP Forwarding.
14378	CanIpForward bool `json:"canIpForward,omitempty"`
14379
14380	ConfidentialInstanceConfig *ConfidentialInstanceConfig `json:"confidentialInstanceConfig,omitempty"`
14381
14382	// CpuPlatform: [Output Only] The CPU platform used by this instance.
14383	CpuPlatform string `json:"cpuPlatform,omitempty"`
14384
14385	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
14386	// format.
14387	CreationTimestamp string `json:"creationTimestamp,omitempty"`
14388
14389	// DeletionProtection: Whether the resource should be protected against
14390	// deletion.
14391	DeletionProtection bool `json:"deletionProtection,omitempty"`
14392
14393	// Description: An optional description of this resource. Provide this
14394	// property when you create the resource.
14395	Description string `json:"description,omitempty"`
14396
14397	// Disks: Array of disks associated with this instance. Persistent disks
14398	// must be created before you can assign them.
14399	Disks []*AttachedDisk `json:"disks,omitempty"`
14400
14401	// DisplayDevice: Enables display device for the instance.
14402	DisplayDevice *DisplayDevice `json:"displayDevice,omitempty"`
14403
14404	// EraseWindowsVssSignature: Specifies whether the disks restored from
14405	// source snapshots or source machine image should erase Windows
14406	// specific VSS signature.
14407	EraseWindowsVssSignature bool `json:"eraseWindowsVssSignature,omitempty"`
14408
14409	// Fingerprint: Specifies a fingerprint for this resource, which is
14410	// essentially a hash of the instance's contents and used for optimistic
14411	// locking. The fingerprint is initially generated by Compute Engine and
14412	// changes after every request to modify or update the instance. You
14413	// must always provide an up-to-date fingerprint hash in order to update
14414	// the instance.
14415	//
14416	// To see the latest fingerprint, make get() request to the instance.
14417	Fingerprint string `json:"fingerprint,omitempty"`
14418
14419	// GuestAccelerators: A list of the type and count of accelerator cards
14420	// attached to the instance.
14421	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
14422
14423	// Hostname: Specifies the hostname of the instance. The specified
14424	// hostname must be RFC1035 compliant. If hostname is not specified, the
14425	// default hostname is [INSTANCE_NAME].c.[PROJECT_ID].internal when
14426	// using the global DNS, and
14427	// [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal DNS.
14428	Hostname string `json:"hostname,omitempty"`
14429
14430	// Id: [Output Only] The unique identifier for the resource. This
14431	// identifier is defined by the server.
14432	Id uint64 `json:"id,omitempty,string"`
14433
14434	// InstanceEncryptionKey: Encrypts or decrypts data for an instance with
14435	// a customer-supplied encryption key.
14436	//
14437	// If you are creating a new instance, this field encrypts the local SSD
14438	// and in-memory contents of the instance using a key that you
14439	// provide.
14440	//
14441	// If you are restarting an instance protected with a customer-supplied
14442	// encryption key, you must provide the correct key in order to
14443	// successfully restart the instance.
14444	//
14445	// If you do not provide an encryption key when creating the instance,
14446	// then the local SSD and in-memory contents will be encrypted using an
14447	// automatically generated key and you do not need to provide a key to
14448	// start the instance later.
14449	//
14450	// Instance templates do not store customer-supplied encryption keys, so
14451	// you cannot use your own keys to encrypt local SSDs and in-memory
14452	// content in a managed instance group.
14453	InstanceEncryptionKey *CustomerEncryptionKey `json:"instanceEncryptionKey,omitempty"`
14454
14455	// Kind: [Output Only] Type of the resource. Always compute#instance for
14456	// instances.
14457	Kind string `json:"kind,omitempty"`
14458
14459	// LabelFingerprint: A fingerprint for this request, which is
14460	// essentially a hash of the label's contents and used for optimistic
14461	// locking. The fingerprint is initially generated by Compute Engine and
14462	// changes after every request to modify or update labels. You must
14463	// always provide an up-to-date fingerprint hash in order to update or
14464	// change labels.
14465	//
14466	// To see the latest fingerprint, make get() request to the instance.
14467	LabelFingerprint string `json:"labelFingerprint,omitempty"`
14468
14469	// Labels: Labels to apply to this instance. These can be later modified
14470	// by the setLabels method.
14471	Labels map[string]string `json:"labels,omitempty"`
14472
14473	// MachineType: Full or partial URL of the machine type resource to use
14474	// for this instance, in the format:
14475	// zones/zone/machineTypes/machine-type. This is provided by the client
14476	// when the instance is created. For example, the following is a valid
14477	// partial url to a predefined machine
14478	// type:
14479	// zones/us-central1-f/machineTypes/n1-standard-1
14480	//
14481	//
14482	// To create a custom machine type, provide a URL to a machine type in
14483	// the following format, where CPUS is 1 or an even number up to 32 (2,
14484	// 4, 6, ... 24, etc), and MEMORY is the total memory for this instance.
14485	// Memory must be a multiple of 256 MB and must be supplied in MB (e.g.
14486	// 5 GB of memory is 5120
14487	// MB):
14488	// zones/zone/machineTypes/custom-CPUS-MEMORY
14489	//
14490	//
14491	// For example: zones/us-central1-f/machineTypes/custom-4-5120
14492	//
14493	// For a full list of restrictions, read the Specifications for custom
14494	// machine types.
14495	MachineType string `json:"machineType,omitempty"`
14496
14497	// Metadata: The metadata key/value pairs assigned to this instance.
14498	// This includes custom metadata and predefined keys.
14499	Metadata *Metadata `json:"metadata,omitempty"`
14500
14501	// MinCpuPlatform: Specifies a minimum CPU platform for the VM instance.
14502	// Applicable values are the friendly names of CPU platforms, such as
14503	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
14504	// Bridge".
14505	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
14506
14507	// Name: The name of the resource, provided by the client when initially
14508	// creating the resource. The resource name must be 1-63 characters
14509	// long, and comply with RFC1035. Specifically, the name must be 1-63
14510	// characters long and match the regular expression
14511	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
14512	// a lowercase letter, and all following characters must be a dash,
14513	// lowercase letter, or digit, except the last character, which cannot
14514	// be a dash.
14515	Name string `json:"name,omitempty"`
14516
14517	// NetworkInterfaces: An array of network configurations for this
14518	// instance. These specify how interfaces are configured to interact
14519	// with other network services, such as connecting to the internet.
14520	// Multiple interfaces are supported per instance.
14521	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
14522
14523	// PostKeyRevocationActionType: Specifies whether this instance will be
14524	// shut down on key revocation.
14525	//
14526	// Possible values:
14527	//   "NOOP"
14528	//   "SHUTDOWN"
14529	//   "UNSPECIFIED"
14530	PostKeyRevocationActionType string `json:"postKeyRevocationActionType,omitempty"`
14531
14532	// PreservedStateSizeGb: Total amount of preserved state for SUSPENDED
14533	// instances. Read-only in the api.
14534	PreservedStateSizeGb int64 `json:"preservedStateSizeGb,omitempty,string"`
14535
14536	// PrivateIpv6GoogleAccess: The private IPv6 google access type for the
14537	// VM. If not specified, use  INHERIT_FROM_SUBNETWORK as default.
14538	//
14539	// Possible values:
14540	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE"
14541	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE"
14542	//   "INHERIT_FROM_SUBNETWORK"
14543	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
14544
14545	// ReservationAffinity: Specifies the reservations that this instance
14546	// can consume from.
14547	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
14548
14549	// ResourcePolicies: Resource policies applied to this instance.
14550	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
14551
14552	// Scheduling: Sets the scheduling options for this instance.
14553	Scheduling *Scheduling `json:"scheduling,omitempty"`
14554
14555	// SelfLink: [Output Only] Server-defined URL for this resource.
14556	SelfLink string `json:"selfLink,omitempty"`
14557
14558	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
14559	// with the resource id.
14560	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
14561
14562	// ServiceAccounts: A list of service accounts, with their specified
14563	// scopes, authorized for this instance. Only one service account per VM
14564	// instance is supported.
14565	//
14566	// Service accounts generate access tokens that can be accessed through
14567	// the metadata server and used to authenticate applications on the
14568	// instance. See Service Accounts for more information.
14569	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
14570
14571	ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
14572
14573	ShieldedInstanceIntegrityPolicy *ShieldedInstanceIntegrityPolicy `json:"shieldedInstanceIntegrityPolicy,omitempty"`
14574
14575	ShieldedVmConfig *ShieldedVmConfig `json:"shieldedVmConfig,omitempty"`
14576
14577	ShieldedVmIntegrityPolicy *ShieldedVmIntegrityPolicy `json:"shieldedVmIntegrityPolicy,omitempty"`
14578
14579	// SourceMachineImage: Source machine image
14580	SourceMachineImage string `json:"sourceMachineImage,omitempty"`
14581
14582	// SourceMachineImageEncryptionKey: Source GMI encryption key when
14583	// creating an instance from GMI.
14584	SourceMachineImageEncryptionKey *CustomerEncryptionKey `json:"sourceMachineImageEncryptionKey,omitempty"`
14585
14586	// StartRestricted: [Output Only] Whether a VM has been restricted for
14587	// start because Compute Engine has detected suspicious activity.
14588	StartRestricted bool `json:"startRestricted,omitempty"`
14589
14590	// Status: [Output Only] The status of the instance. One of the
14591	// following values: PROVISIONING, STAGING, RUNNING, STOPPING, STOPPED,
14592	// SUSPENDING, SUSPENDED, and TERMINATED.
14593	//
14594	// Possible values:
14595	//   "PROVISIONING"
14596	//   "REPAIRING"
14597	//   "RUNNING"
14598	//   "STAGING"
14599	//   "STOPPED"
14600	//   "STOPPING"
14601	//   "SUSPENDED"
14602	//   "SUSPENDING"
14603	//   "TERMINATED"
14604	Status string `json:"status,omitempty"`
14605
14606	// StatusMessage: [Output Only] An optional, human-readable explanation
14607	// of the status.
14608	StatusMessage string `json:"statusMessage,omitempty"`
14609
14610	// Tags: Tags to apply to this instance. Tags are used to identify valid
14611	// sources or targets for network firewalls and are specified by the
14612	// client during instance creation. The tags can be later modified by
14613	// the setTags method. Each tag within the list must comply with
14614	// RFC1035. Multiple tags can be specified via the 'tags.items' field.
14615	Tags *Tags `json:"tags,omitempty"`
14616
14617	// UpcomingMaintenance: [Output Only] Specifies upcoming maintenance for
14618	// the instance.
14619	UpcomingMaintenance *UpcomingMaintenance `json:"upcomingMaintenance,omitempty"`
14620
14621	// Zone: [Output Only] URL of the zone where the instance resides. You
14622	// must specify this field as part of the HTTP request URL. It is not
14623	// settable as a field in the request body.
14624	Zone string `json:"zone,omitempty"`
14625
14626	// ServerResponse contains the HTTP response code and headers from the
14627	// server.
14628	googleapi.ServerResponse `json:"-"`
14629
14630	// ForceSendFields is a list of field names (e.g. "CanIpForward") to
14631	// unconditionally include in API requests. By default, fields with
14632	// empty values are omitted from API requests. However, any non-pointer,
14633	// non-interface field appearing in ForceSendFields will be sent to the
14634	// server regardless of whether the field is empty or not. This may be
14635	// used to include empty fields in Patch requests.
14636	ForceSendFields []string `json:"-"`
14637
14638	// NullFields is a list of field names (e.g. "CanIpForward") to include
14639	// in API requests with the JSON null value. By default, fields with
14640	// empty values are omitted from API requests. However, any field with
14641	// an empty value appearing in NullFields will be sent to the server as
14642	// null. It is an error if a field in this list has a non-empty value.
14643	// This may be used to include null fields in Patch requests.
14644	NullFields []string `json:"-"`
14645}
14646
14647func (s *Instance) MarshalJSON() ([]byte, error) {
14648	type NoMethod Instance
14649	raw := NoMethod(*s)
14650	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14651}
14652
14653type InstanceAggregatedList struct {
14654	// Id: [Output Only] Unique identifier for the resource; defined by the
14655	// server.
14656	Id string `json:"id,omitempty"`
14657
14658	// Items: An object that contains a list of instances scoped by zone.
14659	Items map[string]InstancesScopedList `json:"items,omitempty"`
14660
14661	// Kind: [Output Only] Type of resource. Always
14662	// compute#instanceAggregatedList for aggregated lists of Instance
14663	// resources.
14664	Kind string `json:"kind,omitempty"`
14665
14666	// NextPageToken: [Output Only] This token allows you to get the next
14667	// page of results for list requests. If the number of results is larger
14668	// than maxResults, use the nextPageToken as a value for the query
14669	// parameter pageToken in the next list request. Subsequent list
14670	// requests will have their own nextPageToken to continue paging through
14671	// the results.
14672	NextPageToken string `json:"nextPageToken,omitempty"`
14673
14674	// SelfLink: [Output Only] Server-defined URL for this resource.
14675	SelfLink string `json:"selfLink,omitempty"`
14676
14677	// Warning: [Output Only] Informational warning message.
14678	Warning *InstanceAggregatedListWarning `json:"warning,omitempty"`
14679
14680	// ServerResponse contains the HTTP response code and headers from the
14681	// server.
14682	googleapi.ServerResponse `json:"-"`
14683
14684	// ForceSendFields is a list of field names (e.g. "Id") to
14685	// unconditionally include in API requests. By default, fields with
14686	// empty values are omitted from API requests. However, any non-pointer,
14687	// non-interface field appearing in ForceSendFields will be sent to the
14688	// server regardless of whether the field is empty or not. This may be
14689	// used to include empty fields in Patch requests.
14690	ForceSendFields []string `json:"-"`
14691
14692	// NullFields is a list of field names (e.g. "Id") to include in API
14693	// requests with the JSON null value. By default, fields with empty
14694	// values are omitted from API requests. However, any field with an
14695	// empty value appearing in NullFields will be sent to the server as
14696	// null. It is an error if a field in this list has a non-empty value.
14697	// This may be used to include null fields in Patch requests.
14698	NullFields []string `json:"-"`
14699}
14700
14701func (s *InstanceAggregatedList) MarshalJSON() ([]byte, error) {
14702	type NoMethod InstanceAggregatedList
14703	raw := NoMethod(*s)
14704	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14705}
14706
14707// InstanceAggregatedListWarning: [Output Only] Informational warning
14708// message.
14709type InstanceAggregatedListWarning struct {
14710	// Code: [Output Only] A warning code, if applicable. For example,
14711	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14712	// the response.
14713	//
14714	// Possible values:
14715	//   "CLEANUP_FAILED"
14716	//   "DEPRECATED_RESOURCE_USED"
14717	//   "DEPRECATED_TYPE_USED"
14718	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14719	//   "EXPERIMENTAL_TYPE_USED"
14720	//   "EXTERNAL_API_WARNING"
14721	//   "FIELD_VALUE_OVERRIDEN"
14722	//   "INJECTED_KERNELS_DEPRECATED"
14723	//   "MISSING_TYPE_DEPENDENCY"
14724	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14725	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14726	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14727	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14728	//   "NEXT_HOP_NOT_RUNNING"
14729	//   "NOT_CRITICAL_ERROR"
14730	//   "NO_RESULTS_ON_PAGE"
14731	//   "REQUIRED_TOS_AGREEMENT"
14732	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14733	//   "RESOURCE_NOT_DELETED"
14734	//   "SCHEMA_VALIDATION_IGNORED"
14735	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14736	//   "UNDECLARED_PROPERTIES"
14737	//   "UNREACHABLE"
14738	Code string `json:"code,omitempty"`
14739
14740	// Data: [Output Only] Metadata about this warning in key: value format.
14741	// For example:
14742	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14743	Data []*InstanceAggregatedListWarningData `json:"data,omitempty"`
14744
14745	// Message: [Output Only] A human-readable description of the warning
14746	// code.
14747	Message string `json:"message,omitempty"`
14748
14749	// ForceSendFields is a list of field names (e.g. "Code") to
14750	// unconditionally include in API requests. By default, fields with
14751	// empty values are omitted from API requests. However, any non-pointer,
14752	// non-interface field appearing in ForceSendFields will be sent to the
14753	// server regardless of whether the field is empty or not. This may be
14754	// used to include empty fields in Patch requests.
14755	ForceSendFields []string `json:"-"`
14756
14757	// NullFields is a list of field names (e.g. "Code") to include in API
14758	// requests with the JSON null value. By default, fields with empty
14759	// values are omitted from API requests. However, any field with an
14760	// empty value appearing in NullFields will be sent to the server as
14761	// null. It is an error if a field in this list has a non-empty value.
14762	// This may be used to include null fields in Patch requests.
14763	NullFields []string `json:"-"`
14764}
14765
14766func (s *InstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
14767	type NoMethod InstanceAggregatedListWarning
14768	raw := NoMethod(*s)
14769	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14770}
14771
14772type InstanceAggregatedListWarningData struct {
14773	// Key: [Output Only] A key that provides more detail on the warning
14774	// being returned. For example, for warnings where there are no results
14775	// in a list request for a particular zone, this key might be scope and
14776	// the key value might be the zone name. Other examples might be a key
14777	// indicating a deprecated resource and a suggested replacement, or a
14778	// warning about invalid network settings (for example, if an instance
14779	// attempts to perform IP forwarding but is not enabled for IP
14780	// forwarding).
14781	Key string `json:"key,omitempty"`
14782
14783	// Value: [Output Only] A warning data value corresponding to the key.
14784	Value string `json:"value,omitempty"`
14785
14786	// ForceSendFields is a list of field names (e.g. "Key") to
14787	// unconditionally include in API requests. By default, fields with
14788	// empty values are omitted from API requests. However, any non-pointer,
14789	// non-interface field appearing in ForceSendFields will be sent to the
14790	// server regardless of whether the field is empty or not. This may be
14791	// used to include empty fields in Patch requests.
14792	ForceSendFields []string `json:"-"`
14793
14794	// NullFields is a list of field names (e.g. "Key") to include in API
14795	// requests with the JSON null value. By default, fields with empty
14796	// values are omitted from API requests. However, any field with an
14797	// empty value appearing in NullFields will be sent to the server as
14798	// null. It is an error if a field in this list has a non-empty value.
14799	// This may be used to include null fields in Patch requests.
14800	NullFields []string `json:"-"`
14801}
14802
14803func (s *InstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
14804	type NoMethod InstanceAggregatedListWarningData
14805	raw := NoMethod(*s)
14806	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14807}
14808
14809// InstanceGroup: Represents an Instance Group resource.
14810//
14811// Instance Groups can be used to configure a target for load
14812// balancing.
14813//
14814// Instance groups can either be managed or unmanaged.
14815//
14816// To create  managed instance groups, use the instanceGroupManager or
14817// regionInstanceGroupManager resource instead.
14818//
14819// Use zonal unmanaged instance groups if you need to apply load
14820// balancing to groups of heterogeneous instances or if you need to
14821// manage the instances yourself. You cannot create regional unmanaged
14822// instance groups.
14823//
14824// For more information, read Instance groups.
14825//
14826// (== resource_for {$api_version}.instanceGroups ==) (== resource_for
14827// {$api_version}.regionInstanceGroups ==)
14828type InstanceGroup struct {
14829	// CreationTimestamp: [Output Only] The creation timestamp for this
14830	// instance group in RFC3339 text format.
14831	CreationTimestamp string `json:"creationTimestamp,omitempty"`
14832
14833	// Description: An optional description of this resource. Provide this
14834	// property when you create the resource.
14835	Description string `json:"description,omitempty"`
14836
14837	// Fingerprint: [Output Only] The fingerprint of the named ports. The
14838	// system uses this fingerprint to detect conflicts when multiple users
14839	// change the named ports concurrently.
14840	Fingerprint string `json:"fingerprint,omitempty"`
14841
14842	// Id: [Output Only] A unique identifier for this instance group,
14843	// generated by the server.
14844	Id uint64 `json:"id,omitempty,string"`
14845
14846	// Kind: [Output Only] The resource type, which is always
14847	// compute#instanceGroup for instance groups.
14848	Kind string `json:"kind,omitempty"`
14849
14850	// Name: The name of the instance group. The name must be 1-63
14851	// characters long, and comply with RFC1035.
14852	Name string `json:"name,omitempty"`
14853
14854	// NamedPorts: Assigns a name to a port number. For example: {name:
14855	// "http", port: 80}
14856	//
14857	// This allows the system to reference ports by the assigned name
14858	// instead of a port number. Named ports can also contain multiple
14859	// ports. For example: [{name: "http", port: 80},{name: "http", port:
14860	// 8080}]
14861	//
14862	// Named ports apply to all instances in this instance group.
14863	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
14864
14865	// Network: The URL of the network to which all instances in the
14866	// instance group belong.
14867	Network string `json:"network,omitempty"`
14868
14869	// Region: [Output Only] The URL of the region where the instance group
14870	// is located (for regional resources).
14871	Region string `json:"region,omitempty"`
14872
14873	// SelfLink: [Output Only] The URL for this instance group. The server
14874	// generates this URL.
14875	SelfLink string `json:"selfLink,omitempty"`
14876
14877	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
14878	// with the resource id.
14879	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
14880
14881	// Size: [Output Only] The total number of instances in the instance
14882	// group.
14883	Size int64 `json:"size,omitempty"`
14884
14885	// Subnetwork: [Output Only] The URL of the subnetwork to which all
14886	// instances in the instance group belong.
14887	Subnetwork string `json:"subnetwork,omitempty"`
14888
14889	// Zone: [Output Only] The URL of the zone where the instance group is
14890	// located (for zonal resources).
14891	Zone string `json:"zone,omitempty"`
14892
14893	// ServerResponse contains the HTTP response code and headers from the
14894	// server.
14895	googleapi.ServerResponse `json:"-"`
14896
14897	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
14898	// to unconditionally include in API requests. By default, fields with
14899	// empty values are omitted from API requests. However, any non-pointer,
14900	// non-interface field appearing in ForceSendFields will be sent to the
14901	// server regardless of whether the field is empty or not. This may be
14902	// used to include empty fields in Patch requests.
14903	ForceSendFields []string `json:"-"`
14904
14905	// NullFields is a list of field names (e.g. "CreationTimestamp") to
14906	// include in API requests with the JSON null value. By default, fields
14907	// with empty values are omitted from API requests. However, any field
14908	// with an empty value appearing in NullFields will be sent to the
14909	// server as null. It is an error if a field in this list has a
14910	// non-empty value. This may be used to include null fields in Patch
14911	// requests.
14912	NullFields []string `json:"-"`
14913}
14914
14915func (s *InstanceGroup) MarshalJSON() ([]byte, error) {
14916	type NoMethod InstanceGroup
14917	raw := NoMethod(*s)
14918	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14919}
14920
14921type InstanceGroupAggregatedList struct {
14922	// Id: [Output Only] Unique identifier for the resource; defined by the
14923	// server.
14924	Id string `json:"id,omitempty"`
14925
14926	// Items: A list of InstanceGroupsScopedList resources.
14927	Items map[string]InstanceGroupsScopedList `json:"items,omitempty"`
14928
14929	// Kind: [Output Only] The resource type, which is always
14930	// compute#instanceGroupAggregatedList for aggregated lists of instance
14931	// groups.
14932	Kind string `json:"kind,omitempty"`
14933
14934	// NextPageToken: [Output Only] This token allows you to get the next
14935	// page of results for list requests. If the number of results is larger
14936	// than maxResults, use the nextPageToken as a value for the query
14937	// parameter pageToken in the next list request. Subsequent list
14938	// requests will have their own nextPageToken to continue paging through
14939	// the results.
14940	NextPageToken string `json:"nextPageToken,omitempty"`
14941
14942	// SelfLink: [Output Only] Server-defined URL for this resource.
14943	SelfLink string `json:"selfLink,omitempty"`
14944
14945	// Warning: [Output Only] Informational warning message.
14946	Warning *InstanceGroupAggregatedListWarning `json:"warning,omitempty"`
14947
14948	// ServerResponse contains the HTTP response code and headers from the
14949	// server.
14950	googleapi.ServerResponse `json:"-"`
14951
14952	// ForceSendFields is a list of field names (e.g. "Id") to
14953	// unconditionally include in API requests. By default, fields with
14954	// empty values are omitted from API requests. However, any non-pointer,
14955	// non-interface field appearing in ForceSendFields will be sent to the
14956	// server regardless of whether the field is empty or not. This may be
14957	// used to include empty fields in Patch requests.
14958	ForceSendFields []string `json:"-"`
14959
14960	// NullFields is a list of field names (e.g. "Id") to include in API
14961	// requests with the JSON null value. By default, fields with empty
14962	// values are omitted from API requests. However, any field with an
14963	// empty value appearing in NullFields will be sent to the server as
14964	// null. It is an error if a field in this list has a non-empty value.
14965	// This may be used to include null fields in Patch requests.
14966	NullFields []string `json:"-"`
14967}
14968
14969func (s *InstanceGroupAggregatedList) MarshalJSON() ([]byte, error) {
14970	type NoMethod InstanceGroupAggregatedList
14971	raw := NoMethod(*s)
14972	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14973}
14974
14975// InstanceGroupAggregatedListWarning: [Output Only] Informational
14976// warning message.
14977type InstanceGroupAggregatedListWarning struct {
14978	// Code: [Output Only] A warning code, if applicable. For example,
14979	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14980	// the response.
14981	//
14982	// Possible values:
14983	//   "CLEANUP_FAILED"
14984	//   "DEPRECATED_RESOURCE_USED"
14985	//   "DEPRECATED_TYPE_USED"
14986	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14987	//   "EXPERIMENTAL_TYPE_USED"
14988	//   "EXTERNAL_API_WARNING"
14989	//   "FIELD_VALUE_OVERRIDEN"
14990	//   "INJECTED_KERNELS_DEPRECATED"
14991	//   "MISSING_TYPE_DEPENDENCY"
14992	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14993	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14994	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14995	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14996	//   "NEXT_HOP_NOT_RUNNING"
14997	//   "NOT_CRITICAL_ERROR"
14998	//   "NO_RESULTS_ON_PAGE"
14999	//   "REQUIRED_TOS_AGREEMENT"
15000	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15001	//   "RESOURCE_NOT_DELETED"
15002	//   "SCHEMA_VALIDATION_IGNORED"
15003	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15004	//   "UNDECLARED_PROPERTIES"
15005	//   "UNREACHABLE"
15006	Code string `json:"code,omitempty"`
15007
15008	// Data: [Output Only] Metadata about this warning in key: value format.
15009	// For example:
15010	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15011	Data []*InstanceGroupAggregatedListWarningData `json:"data,omitempty"`
15012
15013	// Message: [Output Only] A human-readable description of the warning
15014	// code.
15015	Message string `json:"message,omitempty"`
15016
15017	// ForceSendFields is a list of field names (e.g. "Code") to
15018	// unconditionally include in API requests. By default, fields with
15019	// empty values are omitted from API requests. However, any non-pointer,
15020	// non-interface field appearing in ForceSendFields will be sent to the
15021	// server regardless of whether the field is empty or not. This may be
15022	// used to include empty fields in Patch requests.
15023	ForceSendFields []string `json:"-"`
15024
15025	// NullFields is a list of field names (e.g. "Code") to include in API
15026	// requests with the JSON null value. By default, fields with empty
15027	// values are omitted from API requests. However, any field with an
15028	// empty value appearing in NullFields will be sent to the server as
15029	// null. It is an error if a field in this list has a non-empty value.
15030	// This may be used to include null fields in Patch requests.
15031	NullFields []string `json:"-"`
15032}
15033
15034func (s *InstanceGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
15035	type NoMethod InstanceGroupAggregatedListWarning
15036	raw := NoMethod(*s)
15037	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15038}
15039
15040type InstanceGroupAggregatedListWarningData struct {
15041	// Key: [Output Only] A key that provides more detail on the warning
15042	// being returned. For example, for warnings where there are no results
15043	// in a list request for a particular zone, this key might be scope and
15044	// the key value might be the zone name. Other examples might be a key
15045	// indicating a deprecated resource and a suggested replacement, or a
15046	// warning about invalid network settings (for example, if an instance
15047	// attempts to perform IP forwarding but is not enabled for IP
15048	// forwarding).
15049	Key string `json:"key,omitempty"`
15050
15051	// Value: [Output Only] A warning data value corresponding to the key.
15052	Value string `json:"value,omitempty"`
15053
15054	// ForceSendFields is a list of field names (e.g. "Key") to
15055	// unconditionally include in API requests. By default, fields with
15056	// empty values are omitted from API requests. However, any non-pointer,
15057	// non-interface field appearing in ForceSendFields will be sent to the
15058	// server regardless of whether the field is empty or not. This may be
15059	// used to include empty fields in Patch requests.
15060	ForceSendFields []string `json:"-"`
15061
15062	// NullFields is a list of field names (e.g. "Key") to include in API
15063	// requests with the JSON null value. By default, fields with empty
15064	// values are omitted from API requests. However, any field with an
15065	// empty value appearing in NullFields will be sent to the server as
15066	// null. It is an error if a field in this list has a non-empty value.
15067	// This may be used to include null fields in Patch requests.
15068	NullFields []string `json:"-"`
15069}
15070
15071func (s *InstanceGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
15072	type NoMethod InstanceGroupAggregatedListWarningData
15073	raw := NoMethod(*s)
15074	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15075}
15076
15077// InstanceGroupList: A list of InstanceGroup resources.
15078type InstanceGroupList struct {
15079	// Id: [Output Only] Unique identifier for the resource; defined by the
15080	// server.
15081	Id string `json:"id,omitempty"`
15082
15083	// Items: A list of InstanceGroup resources.
15084	Items []*InstanceGroup `json:"items,omitempty"`
15085
15086	// Kind: [Output Only] The resource type, which is always
15087	// compute#instanceGroupList for instance group lists.
15088	Kind string `json:"kind,omitempty"`
15089
15090	// NextPageToken: [Output Only] This token allows you to get the next
15091	// page of results for list requests. If the number of results is larger
15092	// than maxResults, use the nextPageToken as a value for the query
15093	// parameter pageToken in the next list request. Subsequent list
15094	// requests will have their own nextPageToken to continue paging through
15095	// the results.
15096	NextPageToken string `json:"nextPageToken,omitempty"`
15097
15098	// SelfLink: [Output Only] Server-defined URL for this resource.
15099	SelfLink string `json:"selfLink,omitempty"`
15100
15101	// Warning: [Output Only] Informational warning message.
15102	Warning *InstanceGroupListWarning `json:"warning,omitempty"`
15103
15104	// ServerResponse contains the HTTP response code and headers from the
15105	// server.
15106	googleapi.ServerResponse `json:"-"`
15107
15108	// ForceSendFields is a list of field names (e.g. "Id") to
15109	// unconditionally include in API requests. By default, fields with
15110	// empty values are omitted from API requests. However, any non-pointer,
15111	// non-interface field appearing in ForceSendFields will be sent to the
15112	// server regardless of whether the field is empty or not. This may be
15113	// used to include empty fields in Patch requests.
15114	ForceSendFields []string `json:"-"`
15115
15116	// NullFields is a list of field names (e.g. "Id") to include in API
15117	// requests with the JSON null value. By default, fields with empty
15118	// values are omitted from API requests. However, any field with an
15119	// empty value appearing in NullFields will be sent to the server as
15120	// null. It is an error if a field in this list has a non-empty value.
15121	// This may be used to include null fields in Patch requests.
15122	NullFields []string `json:"-"`
15123}
15124
15125func (s *InstanceGroupList) MarshalJSON() ([]byte, error) {
15126	type NoMethod InstanceGroupList
15127	raw := NoMethod(*s)
15128	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15129}
15130
15131// InstanceGroupListWarning: [Output Only] Informational warning
15132// message.
15133type InstanceGroupListWarning struct {
15134	// Code: [Output Only] A warning code, if applicable. For example,
15135	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15136	// the response.
15137	//
15138	// Possible values:
15139	//   "CLEANUP_FAILED"
15140	//   "DEPRECATED_RESOURCE_USED"
15141	//   "DEPRECATED_TYPE_USED"
15142	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15143	//   "EXPERIMENTAL_TYPE_USED"
15144	//   "EXTERNAL_API_WARNING"
15145	//   "FIELD_VALUE_OVERRIDEN"
15146	//   "INJECTED_KERNELS_DEPRECATED"
15147	//   "MISSING_TYPE_DEPENDENCY"
15148	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15149	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15150	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15151	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15152	//   "NEXT_HOP_NOT_RUNNING"
15153	//   "NOT_CRITICAL_ERROR"
15154	//   "NO_RESULTS_ON_PAGE"
15155	//   "REQUIRED_TOS_AGREEMENT"
15156	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15157	//   "RESOURCE_NOT_DELETED"
15158	//   "SCHEMA_VALIDATION_IGNORED"
15159	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15160	//   "UNDECLARED_PROPERTIES"
15161	//   "UNREACHABLE"
15162	Code string `json:"code,omitempty"`
15163
15164	// Data: [Output Only] Metadata about this warning in key: value format.
15165	// For example:
15166	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15167	Data []*InstanceGroupListWarningData `json:"data,omitempty"`
15168
15169	// Message: [Output Only] A human-readable description of the warning
15170	// code.
15171	Message string `json:"message,omitempty"`
15172
15173	// ForceSendFields is a list of field names (e.g. "Code") to
15174	// unconditionally include in API requests. By default, fields with
15175	// empty values are omitted from API requests. However, any non-pointer,
15176	// non-interface field appearing in ForceSendFields will be sent to the
15177	// server regardless of whether the field is empty or not. This may be
15178	// used to include empty fields in Patch requests.
15179	ForceSendFields []string `json:"-"`
15180
15181	// NullFields is a list of field names (e.g. "Code") to include in API
15182	// requests with the JSON null value. By default, fields with empty
15183	// values are omitted from API requests. However, any field with an
15184	// empty value appearing in NullFields will be sent to the server as
15185	// null. It is an error if a field in this list has a non-empty value.
15186	// This may be used to include null fields in Patch requests.
15187	NullFields []string `json:"-"`
15188}
15189
15190func (s *InstanceGroupListWarning) MarshalJSON() ([]byte, error) {
15191	type NoMethod InstanceGroupListWarning
15192	raw := NoMethod(*s)
15193	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15194}
15195
15196type InstanceGroupListWarningData struct {
15197	// Key: [Output Only] A key that provides more detail on the warning
15198	// being returned. For example, for warnings where there are no results
15199	// in a list request for a particular zone, this key might be scope and
15200	// the key value might be the zone name. Other examples might be a key
15201	// indicating a deprecated resource and a suggested replacement, or a
15202	// warning about invalid network settings (for example, if an instance
15203	// attempts to perform IP forwarding but is not enabled for IP
15204	// forwarding).
15205	Key string `json:"key,omitempty"`
15206
15207	// Value: [Output Only] A warning data value corresponding to the key.
15208	Value string `json:"value,omitempty"`
15209
15210	// ForceSendFields is a list of field names (e.g. "Key") to
15211	// unconditionally include in API requests. By default, fields with
15212	// empty values are omitted from API requests. However, any non-pointer,
15213	// non-interface field appearing in ForceSendFields will be sent to the
15214	// server regardless of whether the field is empty or not. This may be
15215	// used to include empty fields in Patch requests.
15216	ForceSendFields []string `json:"-"`
15217
15218	// NullFields is a list of field names (e.g. "Key") to include in API
15219	// requests with the JSON null value. By default, fields with empty
15220	// values are omitted from API requests. However, any field with an
15221	// empty value appearing in NullFields will be sent to the server as
15222	// null. It is an error if a field in this list has a non-empty value.
15223	// This may be used to include null fields in Patch requests.
15224	NullFields []string `json:"-"`
15225}
15226
15227func (s *InstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
15228	type NoMethod InstanceGroupListWarningData
15229	raw := NoMethod(*s)
15230	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15231}
15232
15233// InstanceGroupManager: Represents a Managed Instance Group
15234// resource.
15235//
15236// An instance group is a collection of VM instances that you can manage
15237// as a single entity. For more information, read Instance groups.
15238//
15239// For zonal Managed Instance Group, use the instanceGroupManagers
15240// resource.
15241//
15242// For regional Managed Instance Group, use the
15243// regionInstanceGroupManagers resource. (== resource_for
15244// {$api_version}.instanceGroupManagers ==) (== resource_for
15245// {$api_version}.regionInstanceGroupManagers ==)
15246type InstanceGroupManager struct {
15247	// AutoHealingPolicies: The autohealing policy for this managed instance
15248	// group. You can specify only one value.
15249	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
15250
15251	// BaseInstanceName: The base instance name to use for instances in this
15252	// group. The value must be 1-58 characters long. Instances are named by
15253	// appending a hyphen and a random four-character string to the base
15254	// instance name. The base instance name must comply with RFC1035.
15255	BaseInstanceName string `json:"baseInstanceName,omitempty"`
15256
15257	// CreationTimestamp: [Output Only] The creation timestamp for this
15258	// managed instance group in RFC3339 text format.
15259	CreationTimestamp string `json:"creationTimestamp,omitempty"`
15260
15261	// CurrentActions: [Output Only] The list of instance actions and the
15262	// number of instances in this managed instance group that are scheduled
15263	// for each of those actions.
15264	CurrentActions *InstanceGroupManagerActionsSummary `json:"currentActions,omitempty"`
15265
15266	// Description: An optional description of this resource. Provide this
15267	// property when you create the resource.
15268	Description string `json:"description,omitempty"`
15269
15270	// DistributionPolicy: Policy specifying intended distribution of
15271	// instances in regional managed instance group.
15272	DistributionPolicy *DistributionPolicy `json:"distributionPolicy,omitempty"`
15273
15274	// FailoverAction: The action to perform in case of zone failure. Only
15275	// one value is supported, NO_FAILOVER. The default is NO_FAILOVER.
15276	//
15277	// Possible values:
15278	//   "NO_FAILOVER"
15279	//   "UNKNOWN"
15280	FailoverAction string `json:"failoverAction,omitempty"`
15281
15282	// Fingerprint: Fingerprint of this resource. This field may be used in
15283	// optimistic locking. It will be ignored when inserting an
15284	// InstanceGroupManager. An up-to-date fingerprint must be provided in
15285	// order to update the InstanceGroupManager, otherwise the request will
15286	// fail with error 412 conditionNotMet.
15287	//
15288	// To see the latest fingerprint, make a get() request to retrieve an
15289	// InstanceGroupManager.
15290	Fingerprint string `json:"fingerprint,omitempty"`
15291
15292	// Id: [Output Only] A unique identifier for this resource type. The
15293	// server generates this identifier.
15294	Id uint64 `json:"id,omitempty,string"`
15295
15296	// InstanceGroup: [Output Only] The URL of the Instance Group resource.
15297	InstanceGroup string `json:"instanceGroup,omitempty"`
15298
15299	// InstanceTemplate: The URL of the instance template that is specified
15300	// for this managed instance group. The group uses this template to
15301	// create all new instances in the managed instance group.
15302	InstanceTemplate string `json:"instanceTemplate,omitempty"`
15303
15304	// Kind: [Output Only] The resource type, which is always
15305	// compute#instanceGroupManager for managed instance groups.
15306	Kind string `json:"kind,omitempty"`
15307
15308	// Name: The name of the managed instance group. The name must be 1-63
15309	// characters long, and comply with RFC1035.
15310	Name string `json:"name,omitempty"`
15311
15312	// NamedPorts: Named ports configured for the Instance Groups
15313	// complementary to this Instance Group Manager.
15314	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
15315
15316	// PendingActions: [Deprecated] This field is deprecated and will be
15317	// removed. Prefer using the status field instead. Please contact
15318	// cloud-updater-feedback@google.com to leave feedback if your workload
15319	// relies on this field. [Output Only] The list of instance actions and
15320	// the number of instances in this managed instance group that are
15321	// pending for each of those actions.
15322	PendingActions *InstanceGroupManagerPendingActionsSummary `json:"pendingActions,omitempty"`
15323
15324	// Region: [Output Only] The URL of the region where the managed
15325	// instance group resides (for regional resources).
15326	Region string `json:"region,omitempty"`
15327
15328	// SelfLink: [Output Only] The URL for this managed instance group. The
15329	// server defines this URL.
15330	SelfLink string `json:"selfLink,omitempty"`
15331
15332	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
15333	// with the resource id.
15334	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
15335
15336	// ServiceAccount: The service account to be used as credentials for all
15337	// operations performed by the managed instance group on instances. The
15338	// service accounts needs all permissions required to create and delete
15339	// instances. By default, the service account
15340	// {projectNumber}@cloudservices.gserviceaccount.com is used.
15341	ServiceAccount string `json:"serviceAccount,omitempty"`
15342
15343	// StatefulPolicy: Stateful configuration for this Instanced Group
15344	// Manager
15345	StatefulPolicy *StatefulPolicy `json:"statefulPolicy,omitempty"`
15346
15347	// Status: [Output Only] The status of this managed instance group.
15348	Status *InstanceGroupManagerStatus `json:"status,omitempty"`
15349
15350	// TargetPools: The URLs for all TargetPool resources to which instances
15351	// in the instanceGroup field are added. The target pools automatically
15352	// apply to all of the instances in the managed instance group.
15353	TargetPools []string `json:"targetPools,omitempty"`
15354
15355	// TargetSize: The target number of running instances for this managed
15356	// instance group. You can reduce this number by using the
15357	// instanceGroupManager deleteInstances or abandonInstances methods.
15358	// Resizing the group also changes this number.
15359	TargetSize int64 `json:"targetSize,omitempty"`
15360
15361	// UpdatePolicy: The update policy for this managed instance group.
15362	UpdatePolicy *InstanceGroupManagerUpdatePolicy `json:"updatePolicy,omitempty"`
15363
15364	// Versions: Specifies the instance templates used by this managed
15365	// instance group to create instances.
15366	//
15367	// Each version is defined by an instanceTemplate and a name. Every
15368	// version can appear at most once per instance group. This field
15369	// overrides the top-level instanceTemplate field. Read more about the
15370	// relationships between these fields. Exactly one version must leave
15371	// the targetSize field unset. That version will be applied to all
15372	// remaining instances. For more information, read about canary updates.
15373	Versions []*InstanceGroupManagerVersion `json:"versions,omitempty"`
15374
15375	// Zone: [Output Only] The URL of the zone where the managed instance
15376	// group is located (for zonal resources).
15377	Zone string `json:"zone,omitempty"`
15378
15379	// ServerResponse contains the HTTP response code and headers from the
15380	// server.
15381	googleapi.ServerResponse `json:"-"`
15382
15383	// ForceSendFields is a list of field names (e.g. "AutoHealingPolicies")
15384	// to unconditionally include in API requests. By default, fields with
15385	// empty values are omitted from API requests. However, any non-pointer,
15386	// non-interface field appearing in ForceSendFields will be sent to the
15387	// server regardless of whether the field is empty or not. This may be
15388	// used to include empty fields in Patch requests.
15389	ForceSendFields []string `json:"-"`
15390
15391	// NullFields is a list of field names (e.g. "AutoHealingPolicies") to
15392	// include in API requests with the JSON null value. By default, fields
15393	// with empty values are omitted from API requests. However, any field
15394	// with an empty value appearing in NullFields will be sent to the
15395	// server as null. It is an error if a field in this list has a
15396	// non-empty value. This may be used to include null fields in Patch
15397	// requests.
15398	NullFields []string `json:"-"`
15399}
15400
15401func (s *InstanceGroupManager) MarshalJSON() ([]byte, error) {
15402	type NoMethod InstanceGroupManager
15403	raw := NoMethod(*s)
15404	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15405}
15406
15407type InstanceGroupManagerActionsSummary struct {
15408	// Abandoning: [Output Only] The total number of instances in the
15409	// managed instance group that are scheduled to be abandoned. Abandoning
15410	// an instance removes it from the managed instance group without
15411	// deleting it.
15412	Abandoning int64 `json:"abandoning,omitempty"`
15413
15414	// Creating: [Output Only] The number of instances in the managed
15415	// instance group that are scheduled to be created or are currently
15416	// being created. If the group fails to create any of these instances,
15417	// it tries again until it creates the instance successfully.
15418	//
15419	// If you have disabled creation retries, this field will not be
15420	// populated; instead, the creatingWithoutRetries field will be
15421	// populated.
15422	Creating int64 `json:"creating,omitempty"`
15423
15424	// CreatingWithoutRetries: [Output Only] The number of instances that
15425	// the managed instance group will attempt to create. The group attempts
15426	// to create each instance only once. If the group fails to create any
15427	// of these instances, it decreases the group's targetSize value
15428	// accordingly.
15429	CreatingWithoutRetries int64 `json:"creatingWithoutRetries,omitempty"`
15430
15431	// Deleting: [Output Only] The number of instances in the managed
15432	// instance group that are scheduled to be deleted or are currently
15433	// being deleted.
15434	Deleting int64 `json:"deleting,omitempty"`
15435
15436	// None: [Output Only] The number of instances in the managed instance
15437	// group that are running and have no scheduled actions.
15438	None int64 `json:"none,omitempty"`
15439
15440	// Recreating: [Output Only] The number of instances in the managed
15441	// instance group that are scheduled to be recreated or are currently
15442	// being being recreated. Recreating an instance deletes the existing
15443	// root persistent disk and creates a new disk from the image that is
15444	// defined in the instance template.
15445	Recreating int64 `json:"recreating,omitempty"`
15446
15447	// Refreshing: [Output Only] The number of instances in the managed
15448	// instance group that are being reconfigured with properties that do
15449	// not require a restart or a recreate action. For example, setting or
15450	// removing target pools for the instance.
15451	Refreshing int64 `json:"refreshing,omitempty"`
15452
15453	// Restarting: [Output Only] The number of instances in the managed
15454	// instance group that are scheduled to be restarted or are currently
15455	// being restarted.
15456	Restarting int64 `json:"restarting,omitempty"`
15457
15458	// Verifying: [Output Only] The number of instances in the managed
15459	// instance group that are being verified. See the
15460	// managedInstances[].currentAction property in the listManagedInstances
15461	// method documentation.
15462	Verifying int64 `json:"verifying,omitempty"`
15463
15464	// ForceSendFields is a list of field names (e.g. "Abandoning") to
15465	// unconditionally include in API requests. By default, fields with
15466	// empty values are omitted from API requests. However, any non-pointer,
15467	// non-interface field appearing in ForceSendFields will be sent to the
15468	// server regardless of whether the field is empty or not. This may be
15469	// used to include empty fields in Patch requests.
15470	ForceSendFields []string `json:"-"`
15471
15472	// NullFields is a list of field names (e.g. "Abandoning") to include in
15473	// API requests with the JSON null value. By default, fields with empty
15474	// values are omitted from API requests. However, any field with an
15475	// empty value appearing in NullFields will be sent to the server as
15476	// null. It is an error if a field in this list has a non-empty value.
15477	// This may be used to include null fields in Patch requests.
15478	NullFields []string `json:"-"`
15479}
15480
15481func (s *InstanceGroupManagerActionsSummary) MarshalJSON() ([]byte, error) {
15482	type NoMethod InstanceGroupManagerActionsSummary
15483	raw := NoMethod(*s)
15484	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15485}
15486
15487type InstanceGroupManagerAggregatedList struct {
15488	// Id: [Output Only] Unique identifier for the resource; defined by the
15489	// server.
15490	Id string `json:"id,omitempty"`
15491
15492	// Items: A list of InstanceGroupManagersScopedList resources.
15493	Items map[string]InstanceGroupManagersScopedList `json:"items,omitempty"`
15494
15495	// Kind: [Output Only] The resource type, which is always
15496	// compute#instanceGroupManagerAggregatedList for an aggregated list of
15497	// managed instance groups.
15498	Kind string `json:"kind,omitempty"`
15499
15500	// NextPageToken: [Output Only] This token allows you to get the next
15501	// page of results for list requests. If the number of results is larger
15502	// than maxResults, use the nextPageToken as a value for the query
15503	// parameter pageToken in the next list request. Subsequent list
15504	// requests will have their own nextPageToken to continue paging through
15505	// the results.
15506	NextPageToken string `json:"nextPageToken,omitempty"`
15507
15508	// SelfLink: [Output Only] Server-defined URL for this resource.
15509	SelfLink string `json:"selfLink,omitempty"`
15510
15511	// Warning: [Output Only] Informational warning message.
15512	Warning *InstanceGroupManagerAggregatedListWarning `json:"warning,omitempty"`
15513
15514	// ServerResponse contains the HTTP response code and headers from the
15515	// server.
15516	googleapi.ServerResponse `json:"-"`
15517
15518	// ForceSendFields is a list of field names (e.g. "Id") to
15519	// unconditionally include in API requests. By default, fields with
15520	// empty values are omitted from API requests. However, any non-pointer,
15521	// non-interface field appearing in ForceSendFields will be sent to the
15522	// server regardless of whether the field is empty or not. This may be
15523	// used to include empty fields in Patch requests.
15524	ForceSendFields []string `json:"-"`
15525
15526	// NullFields is a list of field names (e.g. "Id") to include in API
15527	// requests with the JSON null value. By default, fields with empty
15528	// values are omitted from API requests. However, any field with an
15529	// empty value appearing in NullFields will be sent to the server as
15530	// null. It is an error if a field in this list has a non-empty value.
15531	// This may be used to include null fields in Patch requests.
15532	NullFields []string `json:"-"`
15533}
15534
15535func (s *InstanceGroupManagerAggregatedList) MarshalJSON() ([]byte, error) {
15536	type NoMethod InstanceGroupManagerAggregatedList
15537	raw := NoMethod(*s)
15538	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15539}
15540
15541// InstanceGroupManagerAggregatedListWarning: [Output Only]
15542// Informational warning message.
15543type InstanceGroupManagerAggregatedListWarning struct {
15544	// Code: [Output Only] A warning code, if applicable. For example,
15545	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15546	// the response.
15547	//
15548	// Possible values:
15549	//   "CLEANUP_FAILED"
15550	//   "DEPRECATED_RESOURCE_USED"
15551	//   "DEPRECATED_TYPE_USED"
15552	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15553	//   "EXPERIMENTAL_TYPE_USED"
15554	//   "EXTERNAL_API_WARNING"
15555	//   "FIELD_VALUE_OVERRIDEN"
15556	//   "INJECTED_KERNELS_DEPRECATED"
15557	//   "MISSING_TYPE_DEPENDENCY"
15558	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15559	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15560	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15561	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15562	//   "NEXT_HOP_NOT_RUNNING"
15563	//   "NOT_CRITICAL_ERROR"
15564	//   "NO_RESULTS_ON_PAGE"
15565	//   "REQUIRED_TOS_AGREEMENT"
15566	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15567	//   "RESOURCE_NOT_DELETED"
15568	//   "SCHEMA_VALIDATION_IGNORED"
15569	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15570	//   "UNDECLARED_PROPERTIES"
15571	//   "UNREACHABLE"
15572	Code string `json:"code,omitempty"`
15573
15574	// Data: [Output Only] Metadata about this warning in key: value format.
15575	// For example:
15576	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15577	Data []*InstanceGroupManagerAggregatedListWarningData `json:"data,omitempty"`
15578
15579	// Message: [Output Only] A human-readable description of the warning
15580	// code.
15581	Message string `json:"message,omitempty"`
15582
15583	// ForceSendFields is a list of field names (e.g. "Code") to
15584	// unconditionally include in API requests. By default, fields with
15585	// empty values are omitted from API requests. However, any non-pointer,
15586	// non-interface field appearing in ForceSendFields will be sent to the
15587	// server regardless of whether the field is empty or not. This may be
15588	// used to include empty fields in Patch requests.
15589	ForceSendFields []string `json:"-"`
15590
15591	// NullFields is a list of field names (e.g. "Code") to include in API
15592	// requests with the JSON null value. By default, fields with empty
15593	// values are omitted from API requests. However, any field with an
15594	// empty value appearing in NullFields will be sent to the server as
15595	// null. It is an error if a field in this list has a non-empty value.
15596	// This may be used to include null fields in Patch requests.
15597	NullFields []string `json:"-"`
15598}
15599
15600func (s *InstanceGroupManagerAggregatedListWarning) MarshalJSON() ([]byte, error) {
15601	type NoMethod InstanceGroupManagerAggregatedListWarning
15602	raw := NoMethod(*s)
15603	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15604}
15605
15606type InstanceGroupManagerAggregatedListWarningData struct {
15607	// Key: [Output Only] A key that provides more detail on the warning
15608	// being returned. For example, for warnings where there are no results
15609	// in a list request for a particular zone, this key might be scope and
15610	// the key value might be the zone name. Other examples might be a key
15611	// indicating a deprecated resource and a suggested replacement, or a
15612	// warning about invalid network settings (for example, if an instance
15613	// attempts to perform IP forwarding but is not enabled for IP
15614	// forwarding).
15615	Key string `json:"key,omitempty"`
15616
15617	// Value: [Output Only] A warning data value corresponding to the key.
15618	Value string `json:"value,omitempty"`
15619
15620	// ForceSendFields is a list of field names (e.g. "Key") to
15621	// unconditionally include in API requests. By default, fields with
15622	// empty values are omitted from API requests. However, any non-pointer,
15623	// non-interface field appearing in ForceSendFields will be sent to the
15624	// server regardless of whether the field is empty or not. This may be
15625	// used to include empty fields in Patch requests.
15626	ForceSendFields []string `json:"-"`
15627
15628	// NullFields is a list of field names (e.g. "Key") to include in API
15629	// requests with the JSON null value. By default, fields with empty
15630	// values are omitted from API requests. However, any field with an
15631	// empty value appearing in NullFields will be sent to the server as
15632	// null. It is an error if a field in this list has a non-empty value.
15633	// This may be used to include null fields in Patch requests.
15634	NullFields []string `json:"-"`
15635}
15636
15637func (s *InstanceGroupManagerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
15638	type NoMethod InstanceGroupManagerAggregatedListWarningData
15639	raw := NoMethod(*s)
15640	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15641}
15642
15643type InstanceGroupManagerAutoHealingPolicy struct {
15644	// HealthCheck: The URL for the health check that signals autohealing.
15645	HealthCheck string `json:"healthCheck,omitempty"`
15646
15647	// InitialDelaySec: The number of seconds that the managed instance
15648	// group waits before it applies autohealing policies to new instances
15649	// or recently recreated instances. This initial delay allows instances
15650	// to initialize and run their startup scripts before the instance group
15651	// determines that they are UNHEALTHY. This prevents the managed
15652	// instance group from recreating its instances prematurely. This value
15653	// must be from range [0, 3600].
15654	InitialDelaySec int64 `json:"initialDelaySec,omitempty"`
15655
15656	// MaxUnavailable: Maximum number of instances that can be unavailable
15657	// when autohealing. When 'percent' is used, the value is rounded UP.
15658	// The instance is considered available if all of the following
15659	// conditions are satisfied: 1. Instance's status is RUNNING. 2.
15660	// Instance's currentAction is NONE (in particular its liveness health
15661	// check result was observed to be HEALTHY at least once as it passed
15662	// VERIFYING). 3. There is no outgoing action on an instance triggered
15663	// by IGM.
15664	//
15665	// By default, number of concurrently autohealed instances is smaller
15666	// than the managed instance group target size. However, if a zonal
15667	// managed instance group has only one instance, or a regional managed
15668	// instance group has only one instance per zone, autohealing will
15669	// recreate these instances when they become unhealthy.
15670	MaxUnavailable *FixedOrPercent `json:"maxUnavailable,omitempty"`
15671
15672	// ForceSendFields is a list of field names (e.g. "HealthCheck") to
15673	// unconditionally include in API requests. By default, fields with
15674	// empty values are omitted from API requests. However, any non-pointer,
15675	// non-interface field appearing in ForceSendFields will be sent to the
15676	// server regardless of whether the field is empty or not. This may be
15677	// used to include empty fields in Patch requests.
15678	ForceSendFields []string `json:"-"`
15679
15680	// NullFields is a list of field names (e.g. "HealthCheck") to include
15681	// in API requests with the JSON null value. By default, fields with
15682	// empty values are omitted from API requests. However, any field with
15683	// an empty value appearing in NullFields will be sent to the server as
15684	// null. It is an error if a field in this list has a non-empty value.
15685	// This may be used to include null fields in Patch requests.
15686	NullFields []string `json:"-"`
15687}
15688
15689func (s *InstanceGroupManagerAutoHealingPolicy) MarshalJSON() ([]byte, error) {
15690	type NoMethod InstanceGroupManagerAutoHealingPolicy
15691	raw := NoMethod(*s)
15692	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15693}
15694
15695// InstanceGroupManagerList: [Output Only] A list of managed instance
15696// groups.
15697type InstanceGroupManagerList struct {
15698	// Id: [Output Only] Unique identifier for the resource; defined by the
15699	// server.
15700	Id string `json:"id,omitempty"`
15701
15702	// Items: A list of InstanceGroupManager resources.
15703	Items []*InstanceGroupManager `json:"items,omitempty"`
15704
15705	// Kind: [Output Only] The resource type, which is always
15706	// compute#instanceGroupManagerList for a list of managed instance
15707	// groups.
15708	Kind string `json:"kind,omitempty"`
15709
15710	// NextPageToken: [Output Only] This token allows you to get the next
15711	// page of results for list requests. If the number of results is larger
15712	// than maxResults, use the nextPageToken as a value for the query
15713	// parameter pageToken in the next list request. Subsequent list
15714	// requests will have their own nextPageToken to continue paging through
15715	// the results.
15716	NextPageToken string `json:"nextPageToken,omitempty"`
15717
15718	// SelfLink: [Output Only] Server-defined URL for this resource.
15719	SelfLink string `json:"selfLink,omitempty"`
15720
15721	// Warning: [Output Only] Informational warning message.
15722	Warning *InstanceGroupManagerListWarning `json:"warning,omitempty"`
15723
15724	// ServerResponse contains the HTTP response code and headers from the
15725	// server.
15726	googleapi.ServerResponse `json:"-"`
15727
15728	// ForceSendFields is a list of field names (e.g. "Id") to
15729	// unconditionally include in API requests. By default, fields with
15730	// empty values are omitted from API requests. However, any non-pointer,
15731	// non-interface field appearing in ForceSendFields will be sent to the
15732	// server regardless of whether the field is empty or not. This may be
15733	// used to include empty fields in Patch requests.
15734	ForceSendFields []string `json:"-"`
15735
15736	// NullFields is a list of field names (e.g. "Id") to include in API
15737	// requests with the JSON null value. By default, fields with empty
15738	// values are omitted from API requests. However, any field with an
15739	// empty value appearing in NullFields will be sent to the server as
15740	// null. It is an error if a field in this list has a non-empty value.
15741	// This may be used to include null fields in Patch requests.
15742	NullFields []string `json:"-"`
15743}
15744
15745func (s *InstanceGroupManagerList) MarshalJSON() ([]byte, error) {
15746	type NoMethod InstanceGroupManagerList
15747	raw := NoMethod(*s)
15748	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15749}
15750
15751// InstanceGroupManagerListWarning: [Output Only] Informational warning
15752// message.
15753type InstanceGroupManagerListWarning struct {
15754	// Code: [Output Only] A warning code, if applicable. For example,
15755	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15756	// the response.
15757	//
15758	// Possible values:
15759	//   "CLEANUP_FAILED"
15760	//   "DEPRECATED_RESOURCE_USED"
15761	//   "DEPRECATED_TYPE_USED"
15762	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15763	//   "EXPERIMENTAL_TYPE_USED"
15764	//   "EXTERNAL_API_WARNING"
15765	//   "FIELD_VALUE_OVERRIDEN"
15766	//   "INJECTED_KERNELS_DEPRECATED"
15767	//   "MISSING_TYPE_DEPENDENCY"
15768	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15769	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15770	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15771	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15772	//   "NEXT_HOP_NOT_RUNNING"
15773	//   "NOT_CRITICAL_ERROR"
15774	//   "NO_RESULTS_ON_PAGE"
15775	//   "REQUIRED_TOS_AGREEMENT"
15776	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15777	//   "RESOURCE_NOT_DELETED"
15778	//   "SCHEMA_VALIDATION_IGNORED"
15779	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15780	//   "UNDECLARED_PROPERTIES"
15781	//   "UNREACHABLE"
15782	Code string `json:"code,omitempty"`
15783
15784	// Data: [Output Only] Metadata about this warning in key: value format.
15785	// For example:
15786	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15787	Data []*InstanceGroupManagerListWarningData `json:"data,omitempty"`
15788
15789	// Message: [Output Only] A human-readable description of the warning
15790	// code.
15791	Message string `json:"message,omitempty"`
15792
15793	// ForceSendFields is a list of field names (e.g. "Code") to
15794	// unconditionally include in API requests. By default, fields with
15795	// empty values are omitted from API requests. However, any non-pointer,
15796	// non-interface field appearing in ForceSendFields will be sent to the
15797	// server regardless of whether the field is empty or not. This may be
15798	// used to include empty fields in Patch requests.
15799	ForceSendFields []string `json:"-"`
15800
15801	// NullFields is a list of field names (e.g. "Code") to include in API
15802	// requests with the JSON null value. By default, fields with empty
15803	// values are omitted from API requests. However, any field with an
15804	// empty value appearing in NullFields will be sent to the server as
15805	// null. It is an error if a field in this list has a non-empty value.
15806	// This may be used to include null fields in Patch requests.
15807	NullFields []string `json:"-"`
15808}
15809
15810func (s *InstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
15811	type NoMethod InstanceGroupManagerListWarning
15812	raw := NoMethod(*s)
15813	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15814}
15815
15816type InstanceGroupManagerListWarningData struct {
15817	// Key: [Output Only] A key that provides more detail on the warning
15818	// being returned. For example, for warnings where there are no results
15819	// in a list request for a particular zone, this key might be scope and
15820	// the key value might be the zone name. Other examples might be a key
15821	// indicating a deprecated resource and a suggested replacement, or a
15822	// warning about invalid network settings (for example, if an instance
15823	// attempts to perform IP forwarding but is not enabled for IP
15824	// forwarding).
15825	Key string `json:"key,omitempty"`
15826
15827	// Value: [Output Only] A warning data value corresponding to the key.
15828	Value string `json:"value,omitempty"`
15829
15830	// ForceSendFields is a list of field names (e.g. "Key") to
15831	// unconditionally include in API requests. By default, fields with
15832	// empty values are omitted from API requests. However, any non-pointer,
15833	// non-interface field appearing in ForceSendFields will be sent to the
15834	// server regardless of whether the field is empty or not. This may be
15835	// used to include empty fields in Patch requests.
15836	ForceSendFields []string `json:"-"`
15837
15838	// NullFields is a list of field names (e.g. "Key") to include in API
15839	// requests with the JSON null value. By default, fields with empty
15840	// values are omitted from API requests. However, any field with an
15841	// empty value appearing in NullFields will be sent to the server as
15842	// null. It is an error if a field in this list has a non-empty value.
15843	// This may be used to include null fields in Patch requests.
15844	NullFields []string `json:"-"`
15845}
15846
15847func (s *InstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
15848	type NoMethod InstanceGroupManagerListWarningData
15849	raw := NoMethod(*s)
15850	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15851}
15852
15853type InstanceGroupManagerPendingActionsSummary struct {
15854	// Creating: [Deprecated] This field is deprecated and will be removed.
15855	// Prefer using the status field instead. Please contact
15856	// cloud-updater-feedback@google.com to leave feedback if your workload
15857	// relies on this field. [Output Only] The number of instances in the
15858	// managed instance group that are pending to be created.
15859	Creating int64 `json:"creating,omitempty"`
15860
15861	// Deleting: [Deprecated] This field is deprecated and will be removed.
15862	// Prefer using the status field instead. Please contact
15863	// cloud-updater-feedback@google.com to leave feedback if your workload
15864	// relies on this field. [Output Only] The number of instances in the
15865	// managed instance group that are pending to be deleted.
15866	Deleting int64 `json:"deleting,omitempty"`
15867
15868	// Recreating: [Deprecated] This field is deprecated and will be
15869	// removed. Prefer using the status field instead. Please contact
15870	// cloud-updater-feedback@google.com to leave feedback if your workload
15871	// relies on this field. [Output Only] The number of instances in the
15872	// managed instance group that are pending to be recreated.
15873	Recreating int64 `json:"recreating,omitempty"`
15874
15875	// Restarting: [Deprecated] This field is deprecated and will be
15876	// removed. Prefer using the status field instead. Please contact
15877	// cloud-updater-feedback@google.com to leave feedback if your workload
15878	// relies on this field. [Output Only] The number of instances in the
15879	// managed instance group that are pending to be restarted.
15880	Restarting int64 `json:"restarting,omitempty"`
15881
15882	// ForceSendFields is a list of field names (e.g. "Creating") to
15883	// unconditionally include in API requests. By default, fields with
15884	// empty values are omitted from API requests. However, any non-pointer,
15885	// non-interface field appearing in ForceSendFields will be sent to the
15886	// server regardless of whether the field is empty or not. This may be
15887	// used to include empty fields in Patch requests.
15888	ForceSendFields []string `json:"-"`
15889
15890	// NullFields is a list of field names (e.g. "Creating") to include in
15891	// API requests with the JSON null value. By default, fields with empty
15892	// values are omitted from API requests. However, any field with an
15893	// empty value appearing in NullFields will be sent to the server as
15894	// null. It is an error if a field in this list has a non-empty value.
15895	// This may be used to include null fields in Patch requests.
15896	NullFields []string `json:"-"`
15897}
15898
15899func (s *InstanceGroupManagerPendingActionsSummary) MarshalJSON() ([]byte, error) {
15900	type NoMethod InstanceGroupManagerPendingActionsSummary
15901	raw := NoMethod(*s)
15902	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15903}
15904
15905type InstanceGroupManagerStatus struct {
15906	// Autoscaler: [Output Only] The URL of the Autoscaler that targets this
15907	// instance group manager.
15908	Autoscaler string `json:"autoscaler,omitempty"`
15909
15910	// IsStable: [Output Only] A bit indicating whether the managed instance
15911	// group is in a stable state. A stable state means that: none of the
15912	// instances in the managed instance group is currently undergoing any
15913	// type of change (for example, creation, restart, or deletion); no
15914	// future changes are scheduled for instances in the managed instance
15915	// group; and the managed instance group itself is not being modified.
15916	IsStable bool `json:"isStable,omitempty"`
15917
15918	// Stateful: [Output Only] Stateful status of the given Instance Group
15919	// Manager.
15920	Stateful *InstanceGroupManagerStatusStateful `json:"stateful,omitempty"`
15921
15922	// VersionTarget: [Output Only] A status of consistency of Instances'
15923	// versions with their target version specified by version field on
15924	// Instance Group Manager.
15925	VersionTarget *InstanceGroupManagerStatusVersionTarget `json:"versionTarget,omitempty"`
15926
15927	// ForceSendFields is a list of field names (e.g. "Autoscaler") to
15928	// unconditionally include in API requests. By default, fields with
15929	// empty values are omitted from API requests. However, any non-pointer,
15930	// non-interface field appearing in ForceSendFields will be sent to the
15931	// server regardless of whether the field is empty or not. This may be
15932	// used to include empty fields in Patch requests.
15933	ForceSendFields []string `json:"-"`
15934
15935	// NullFields is a list of field names (e.g. "Autoscaler") to include in
15936	// API requests with the JSON null value. By default, fields with empty
15937	// values are omitted from API requests. However, any field with an
15938	// empty value appearing in NullFields will be sent to the server as
15939	// null. It is an error if a field in this list has a non-empty value.
15940	// This may be used to include null fields in Patch requests.
15941	NullFields []string `json:"-"`
15942}
15943
15944func (s *InstanceGroupManagerStatus) MarshalJSON() ([]byte, error) {
15945	type NoMethod InstanceGroupManagerStatus
15946	raw := NoMethod(*s)
15947	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15948}
15949
15950type InstanceGroupManagerStatusStateful struct {
15951	// IsStateful: [Output Only] A bit indicating whether the managed
15952	// instance group is stateful, i.e. has any disks in Stateful Policy or
15953	// at least one per-instance config. This is determined based on the
15954	// user intent, the group may be reported as not stateful even when
15955	// there is still some preserved state on managed instances.
15956	IsStateful bool `json:"isStateful,omitempty"`
15957
15958	// ForceSendFields is a list of field names (e.g. "IsStateful") to
15959	// unconditionally include in API requests. By default, fields with
15960	// empty values are omitted from API requests. However, any non-pointer,
15961	// non-interface field appearing in ForceSendFields will be sent to the
15962	// server regardless of whether the field is empty or not. This may be
15963	// used to include empty fields in Patch requests.
15964	ForceSendFields []string `json:"-"`
15965
15966	// NullFields is a list of field names (e.g. "IsStateful") to include in
15967	// API requests with the JSON null value. By default, fields with empty
15968	// values are omitted from API requests. However, any field with an
15969	// empty value appearing in NullFields will be sent to the server as
15970	// null. It is an error if a field in this list has a non-empty value.
15971	// This may be used to include null fields in Patch requests.
15972	NullFields []string `json:"-"`
15973}
15974
15975func (s *InstanceGroupManagerStatusStateful) MarshalJSON() ([]byte, error) {
15976	type NoMethod InstanceGroupManagerStatusStateful
15977	raw := NoMethod(*s)
15978	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15979}
15980
15981type InstanceGroupManagerStatusVersionTarget struct {
15982	// IsReached: [Output Only] A bit indicating whether version target has
15983	// been reached in this managed instance group, i.e. all instances are
15984	// in their target version. Instances' target version are specified by
15985	// version field on Instance Group Manager.
15986	IsReached bool `json:"isReached,omitempty"`
15987
15988	// ForceSendFields is a list of field names (e.g. "IsReached") to
15989	// unconditionally include in API requests. By default, fields with
15990	// empty values are omitted from API requests. However, any non-pointer,
15991	// non-interface field appearing in ForceSendFields will be sent to the
15992	// server regardless of whether the field is empty or not. This may be
15993	// used to include empty fields in Patch requests.
15994	ForceSendFields []string `json:"-"`
15995
15996	// NullFields is a list of field names (e.g. "IsReached") to include in
15997	// API requests with the JSON null value. By default, fields with empty
15998	// values are omitted from API requests. However, any field with an
15999	// empty value appearing in NullFields will be sent to the server as
16000	// null. It is an error if a field in this list has a non-empty value.
16001	// This may be used to include null fields in Patch requests.
16002	NullFields []string `json:"-"`
16003}
16004
16005func (s *InstanceGroupManagerStatusVersionTarget) MarshalJSON() ([]byte, error) {
16006	type NoMethod InstanceGroupManagerStatusVersionTarget
16007	raw := NoMethod(*s)
16008	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16009}
16010
16011type InstanceGroupManagerUpdatePolicy struct {
16012	// InstanceRedistributionType: The  instance redistribution policy for
16013	// regional managed instance groups. Valid values are:
16014	// - PROACTIVE (default): The group attempts to maintain an even
16015	// distribution of VM instances across zones in the region.
16016	// - NONE: For non-autoscaled groups, proactive redistribution is
16017	// disabled.
16018	//
16019	// Possible values:
16020	//   "NONE"
16021	//   "PROACTIVE"
16022	InstanceRedistributionType string `json:"instanceRedistributionType,omitempty"`
16023
16024	// MaxSurge: The maximum number of instances that can be created above
16025	// the specified targetSize during the update process. By default, a
16026	// fixed value of 1 is used. This value can be either a fixed number or
16027	// a percentage if the instance group has 10 or more instances. If you
16028	// set a percentage, the number of instances will be rounded up if
16029	// necessary.
16030	//
16031	// At least one of either maxSurge or maxUnavailable must be greater
16032	// than 0. Learn more about maxSurge.
16033	MaxSurge *FixedOrPercent `json:"maxSurge,omitempty"`
16034
16035	// MaxUnavailable: The maximum number of instances that can be
16036	// unavailable during the update process. An instance is considered
16037	// available if all of the following conditions are satisfied:
16038	//
16039	//
16040	// - The instance's status is RUNNING.
16041	// - If there is a health check on the instance group, the instance's
16042	// liveness health check result must be HEALTHY at least once. If there
16043	// is no health check on the group, then the instance only needs to have
16044	// a status of RUNNING to be considered available.  By default, a fixed
16045	// value of 1 is used. This value can be either a fixed number or a
16046	// percentage if the instance group has 10 or more instances. If you set
16047	// a percentage, the number of instances will be rounded up if
16048	// necessary.
16049	//
16050	// At least one of either maxSurge or maxUnavailable must be greater
16051	// than 0. Learn more about maxUnavailable.
16052	MaxUnavailable *FixedOrPercent `json:"maxUnavailable,omitempty"`
16053
16054	// MinReadySec: Minimum number of seconds to wait for after a newly
16055	// created instance becomes available. This value must be from range [0,
16056	// 3600].
16057	MinReadySec int64 `json:"minReadySec,omitempty"`
16058
16059	// MinimalAction: Minimal action to be taken on an instance. You can
16060	// specify either RESTART to restart existing instances or REPLACE to
16061	// delete and create new instances from the target template. If you
16062	// specify a RESTART, the Updater will attempt to perform that action
16063	// only. However, if the Updater determines that the minimal action you
16064	// specify is not enough to perform the update, it might perform a more
16065	// disruptive action.
16066	//
16067	// Possible values:
16068	//   "NONE"
16069	//   "REFRESH"
16070	//   "REPLACE"
16071	//   "RESTART"
16072	MinimalAction string `json:"minimalAction,omitempty"`
16073
16074	// ReplacementMethod: What action should be used to replace instances.
16075	// See minimal_action.REPLACE
16076	//
16077	// Possible values:
16078	//   "RECREATE"
16079	//   "SUBSTITUTE"
16080	ReplacementMethod string `json:"replacementMethod,omitempty"`
16081
16082	// Type: The type of update process. You can specify either PROACTIVE so
16083	// that the instance group manager proactively executes actions in order
16084	// to bring instances to their target versions or OPPORTUNISTIC so that
16085	// no action is proactively executed but the update will be performed as
16086	// part of other actions (for example, resizes or recreateInstances
16087	// calls).
16088	//
16089	// Possible values:
16090	//   "OPPORTUNISTIC"
16091	//   "PROACTIVE"
16092	Type string `json:"type,omitempty"`
16093
16094	// ForceSendFields is a list of field names (e.g.
16095	// "InstanceRedistributionType") to unconditionally include in API
16096	// requests. By default, fields with empty values are omitted from API
16097	// requests. However, any non-pointer, non-interface field appearing in
16098	// ForceSendFields will be sent to the server regardless of whether the
16099	// field is empty or not. This may be used to include empty fields in
16100	// Patch requests.
16101	ForceSendFields []string `json:"-"`
16102
16103	// NullFields is a list of field names (e.g.
16104	// "InstanceRedistributionType") to include in API requests with the
16105	// JSON null value. By default, fields with empty values are omitted
16106	// from API requests. However, any field with an empty value appearing
16107	// in NullFields will be sent to the server as null. It is an error if a
16108	// field in this list has a non-empty value. This may be used to include
16109	// null fields in Patch requests.
16110	NullFields []string `json:"-"`
16111}
16112
16113func (s *InstanceGroupManagerUpdatePolicy) MarshalJSON() ([]byte, error) {
16114	type NoMethod InstanceGroupManagerUpdatePolicy
16115	raw := NoMethod(*s)
16116	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16117}
16118
16119type InstanceGroupManagerVersion struct {
16120	// InstanceTemplate: The URL of the instance template that is specified
16121	// for this managed instance group. The group uses this template to
16122	// create new instances in the managed instance group until the
16123	// `targetSize` for this version is reached.
16124	InstanceTemplate string `json:"instanceTemplate,omitempty"`
16125
16126	// Name: Name of the version. Unique among all versions in the scope of
16127	// this managed instance group.
16128	Name string `json:"name,omitempty"`
16129
16130	// Tag: Tag describing the version. Used to trigger rollout of a target
16131	// version even if instance_template remains unchanged. Deprecated in
16132	// favor of 'name'.
16133	Tag string `json:"tag,omitempty"`
16134
16135	// TargetSize: Specifies the intended number of instances to be created
16136	// from the instanceTemplate. The final number of instances created from
16137	// the template will be equal to:
16138	// - If expressed as a fixed number, the minimum of either
16139	// targetSize.fixed or instanceGroupManager.targetSize is used.
16140	// - if expressed as a percent, the targetSize would be
16141	// (targetSize.percent/100 * InstanceGroupManager.targetSize) If there
16142	// is a remainder, the number is rounded up.  If unset, this version
16143	// will update any remaining instances not updated by another version.
16144	// Read Starting a canary update for more information.
16145	TargetSize *FixedOrPercent `json:"targetSize,omitempty"`
16146
16147	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
16148	// unconditionally include in API requests. By default, fields with
16149	// empty values are omitted from API requests. However, any non-pointer,
16150	// non-interface field appearing in ForceSendFields will be sent to the
16151	// server regardless of whether the field is empty or not. This may be
16152	// used to include empty fields in Patch requests.
16153	ForceSendFields []string `json:"-"`
16154
16155	// NullFields is a list of field names (e.g. "InstanceTemplate") to
16156	// include in API requests with the JSON null value. By default, fields
16157	// with empty values are omitted from API requests. However, any field
16158	// with an empty value appearing in NullFields will be sent to the
16159	// server as null. It is an error if a field in this list has a
16160	// non-empty value. This may be used to include null fields in Patch
16161	// requests.
16162	NullFields []string `json:"-"`
16163}
16164
16165func (s *InstanceGroupManagerVersion) MarshalJSON() ([]byte, error) {
16166	type NoMethod InstanceGroupManagerVersion
16167	raw := NoMethod(*s)
16168	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16169}
16170
16171type InstanceGroupManagersAbandonInstancesRequest struct {
16172	// Instances: The URLs of one or more instances to abandon. This can be
16173	// a full URL or a partial URL, such as
16174	// zones/[ZONE]/instances/[INSTANCE_NAME].
16175	Instances []string `json:"instances,omitempty"`
16176
16177	// ForceSendFields is a list of field names (e.g. "Instances") to
16178	// unconditionally include in API requests. By default, fields with
16179	// empty values are omitted from API requests. However, any non-pointer,
16180	// non-interface field appearing in ForceSendFields will be sent to the
16181	// server regardless of whether the field is empty or not. This may be
16182	// used to include empty fields in Patch requests.
16183	ForceSendFields []string `json:"-"`
16184
16185	// NullFields is a list of field names (e.g. "Instances") to include in
16186	// API requests with the JSON null value. By default, fields with empty
16187	// values are omitted from API requests. However, any field with an
16188	// empty value appearing in NullFields will be sent to the server as
16189	// null. It is an error if a field in this list has a non-empty value.
16190	// This may be used to include null fields in Patch requests.
16191	NullFields []string `json:"-"`
16192}
16193
16194func (s *InstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
16195	type NoMethod InstanceGroupManagersAbandonInstancesRequest
16196	raw := NoMethod(*s)
16197	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16198}
16199
16200// InstanceGroupManagersApplyUpdatesRequest:
16201// InstanceGroupManagers.applyUpdatesToInstances
16202type InstanceGroupManagersApplyUpdatesRequest struct {
16203	// Instances: The list of URLs of one or more instances for which you
16204	// want to apply updates. Each URL can be a full URL or a partial URL,
16205	// such as zones/[ZONE]/instances/[INSTANCE_NAME].
16206	Instances []string `json:"instances,omitempty"`
16207
16208	// MaximalAction: The maximal action that should be performed on the
16209	// instances. By default REPLACE. This field is deprecated, please use
16210	// most_disruptive_allowed_action.
16211	//
16212	// Possible values:
16213	//   "NONE"
16214	//   "REFRESH"
16215	//   "REPLACE"
16216	//   "RESTART"
16217	MaximalAction string `json:"maximalAction,omitempty"`
16218
16219	// MinimalAction: The minimal action that you want to perform on each
16220	// instance during the update:
16221	// - REPLACE: At minimum, delete the instance and create it again.
16222	// - RESTART: Stop the instance and start it again.
16223	// - REFRESH: Do not stop the instance.
16224	// - NONE: Do not disrupt the instance at all.  By default, the minimum
16225	// action is NONE. If your update requires a more disruptive action than
16226	// you set with this flag, the necessary action is performed to execute
16227	// the update.
16228	//
16229	// Possible values:
16230	//   "NONE"
16231	//   "REFRESH"
16232	//   "REPLACE"
16233	//   "RESTART"
16234	MinimalAction string `json:"minimalAction,omitempty"`
16235
16236	// MostDisruptiveAllowedAction: The most disruptive action that you want
16237	// to perform on each instance during the update:
16238	// - REPLACE: Delete the instance and create it again.
16239	// - RESTART: Stop the instance and start it again.
16240	// - REFRESH: Do not stop the instance.
16241	// - NONE: Do not disrupt the instance at all.  By default, the most
16242	// disruptive allowed action is REPLACE. If your update requires a more
16243	// disruptive action than you set with this flag, the update request
16244	// will fail.
16245	//
16246	// Possible values:
16247	//   "NONE"
16248	//   "REFRESH"
16249	//   "REPLACE"
16250	//   "RESTART"
16251	MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"`
16252
16253	// ForceSendFields is a list of field names (e.g. "Instances") to
16254	// unconditionally include in API requests. By default, fields with
16255	// empty values are omitted from API requests. However, any non-pointer,
16256	// non-interface field appearing in ForceSendFields will be sent to the
16257	// server regardless of whether the field is empty or not. This may be
16258	// used to include empty fields in Patch requests.
16259	ForceSendFields []string `json:"-"`
16260
16261	// NullFields is a list of field names (e.g. "Instances") to include in
16262	// API requests with the JSON null value. By default, fields with empty
16263	// values are omitted from API requests. However, any field with an
16264	// empty value appearing in NullFields will be sent to the server as
16265	// null. It is an error if a field in this list has a non-empty value.
16266	// This may be used to include null fields in Patch requests.
16267	NullFields []string `json:"-"`
16268}
16269
16270func (s *InstanceGroupManagersApplyUpdatesRequest) MarshalJSON() ([]byte, error) {
16271	type NoMethod InstanceGroupManagersApplyUpdatesRequest
16272	raw := NoMethod(*s)
16273	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16274}
16275
16276// InstanceGroupManagersCreateInstancesRequest:
16277// InstanceGroupManagers.createInstances
16278type InstanceGroupManagersCreateInstancesRequest struct {
16279	// Instances: [Required] List of specifications of per-instance configs.
16280	Instances []*PerInstanceConfig `json:"instances,omitempty"`
16281
16282	// ForceSendFields is a list of field names (e.g. "Instances") 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. "Instances") to include in
16291	// API requests with the JSON null value. By default, fields with empty
16292	// values are omitted from API requests. However, any field with an
16293	// empty value appearing in NullFields will be sent to the server as
16294	// null. It is an error if a field in this list has a non-empty value.
16295	// This may be used to include null fields in Patch requests.
16296	NullFields []string `json:"-"`
16297}
16298
16299func (s *InstanceGroupManagersCreateInstancesRequest) MarshalJSON() ([]byte, error) {
16300	type NoMethod InstanceGroupManagersCreateInstancesRequest
16301	raw := NoMethod(*s)
16302	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16303}
16304
16305type InstanceGroupManagersDeleteInstancesRequest struct {
16306	// Instances: The URLs of one or more instances to delete. This can be a
16307	// full URL or a partial URL, such as
16308	// zones/[ZONE]/instances/[INSTANCE_NAME].
16309	Instances []string `json:"instances,omitempty"`
16310
16311	// ForceSendFields is a list of field names (e.g. "Instances") to
16312	// unconditionally include in API requests. By default, fields with
16313	// empty values are omitted from API requests. However, any non-pointer,
16314	// non-interface field appearing in ForceSendFields will be sent to the
16315	// server regardless of whether the field is empty or not. This may be
16316	// used to include empty fields in Patch requests.
16317	ForceSendFields []string `json:"-"`
16318
16319	// NullFields is a list of field names (e.g. "Instances") to include in
16320	// API requests with the JSON null value. By default, fields with empty
16321	// values are omitted from API requests. However, any field with an
16322	// empty value appearing in NullFields will be sent to the server as
16323	// null. It is an error if a field in this list has a non-empty value.
16324	// This may be used to include null fields in Patch requests.
16325	NullFields []string `json:"-"`
16326}
16327
16328func (s *InstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
16329	type NoMethod InstanceGroupManagersDeleteInstancesRequest
16330	raw := NoMethod(*s)
16331	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16332}
16333
16334// InstanceGroupManagersDeletePerInstanceConfigsReq:
16335// InstanceGroupManagers.deletePerInstanceConfigs
16336type InstanceGroupManagersDeletePerInstanceConfigsReq struct {
16337	// Names: The list of instance names for which we want to delete
16338	// per-instance configs on this managed instance group.
16339	Names []string `json:"names,omitempty"`
16340
16341	// ForceSendFields is a list of field names (e.g. "Names") to
16342	// unconditionally include in API requests. By default, fields with
16343	// empty values are omitted from API requests. However, any non-pointer,
16344	// non-interface field appearing in ForceSendFields will be sent to the
16345	// server regardless of whether the field is empty or not. This may be
16346	// used to include empty fields in Patch requests.
16347	ForceSendFields []string `json:"-"`
16348
16349	// NullFields is a list of field names (e.g. "Names") to include in API
16350	// requests with the JSON null value. By default, fields with empty
16351	// values are omitted from API requests. However, any field with an
16352	// empty value appearing in NullFields will be sent to the server as
16353	// null. It is an error if a field in this list has a non-empty value.
16354	// This may be used to include null fields in Patch requests.
16355	NullFields []string `json:"-"`
16356}
16357
16358func (s *InstanceGroupManagersDeletePerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
16359	type NoMethod InstanceGroupManagersDeletePerInstanceConfigsReq
16360	raw := NoMethod(*s)
16361	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16362}
16363
16364type InstanceGroupManagersListErrorsResponse struct {
16365	// Items: [Output Only] The list of errors of the managed instance
16366	// group.
16367	Items []*InstanceManagedByIgmError `json:"items,omitempty"`
16368
16369	// NextPageToken: [Output Only] This token allows you to get the next
16370	// page of results for list requests. If the number of results is larger
16371	// than maxResults, use the nextPageToken as a value for the query
16372	// parameter pageToken in the next list request. Subsequent list
16373	// requests will have their own nextPageToken to continue paging through
16374	// the results.
16375	NextPageToken string `json:"nextPageToken,omitempty"`
16376
16377	// ServerResponse contains the HTTP response code and headers from the
16378	// server.
16379	googleapi.ServerResponse `json:"-"`
16380
16381	// ForceSendFields is a list of field names (e.g. "Items") to
16382	// unconditionally include in API requests. By default, fields with
16383	// empty values are omitted from API requests. However, any non-pointer,
16384	// non-interface field appearing in ForceSendFields will be sent to the
16385	// server regardless of whether the field is empty or not. This may be
16386	// used to include empty fields in Patch requests.
16387	ForceSendFields []string `json:"-"`
16388
16389	// NullFields is a list of field names (e.g. "Items") to include in API
16390	// requests with the JSON null value. By default, fields with empty
16391	// values are omitted from API requests. However, any field with an
16392	// empty value appearing in NullFields will be sent to the server as
16393	// null. It is an error if a field in this list has a non-empty value.
16394	// This may be used to include null fields in Patch requests.
16395	NullFields []string `json:"-"`
16396}
16397
16398func (s *InstanceGroupManagersListErrorsResponse) MarshalJSON() ([]byte, error) {
16399	type NoMethod InstanceGroupManagersListErrorsResponse
16400	raw := NoMethod(*s)
16401	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16402}
16403
16404type InstanceGroupManagersListManagedInstancesResponse struct {
16405	// ManagedInstances: [Output Only] The list of instances in the managed
16406	// instance group.
16407	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
16408
16409	// NextPageToken: [Output Only] This token allows you to get the next
16410	// page of results for list requests. If the number of results is larger
16411	// than maxResults, use the nextPageToken as a value for the query
16412	// parameter pageToken in the next list request. Subsequent list
16413	// requests will have their own nextPageToken to continue paging through
16414	// the results.
16415	NextPageToken string `json:"nextPageToken,omitempty"`
16416
16417	// ServerResponse contains the HTTP response code and headers from the
16418	// server.
16419	googleapi.ServerResponse `json:"-"`
16420
16421	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
16422	// unconditionally include in API requests. By default, fields with
16423	// empty values are omitted from API requests. However, any non-pointer,
16424	// non-interface field appearing in ForceSendFields will be sent to the
16425	// server regardless of whether the field is empty or not. This may be
16426	// used to include empty fields in Patch requests.
16427	ForceSendFields []string `json:"-"`
16428
16429	// NullFields is a list of field names (e.g. "ManagedInstances") to
16430	// include in API requests with the JSON null value. By default, fields
16431	// with empty values are omitted from API requests. However, any field
16432	// with an empty value appearing in NullFields will be sent to the
16433	// server as null. It is an error if a field in this list has a
16434	// non-empty value. This may be used to include null fields in Patch
16435	// requests.
16436	NullFields []string `json:"-"`
16437}
16438
16439func (s *InstanceGroupManagersListManagedInstancesResponse) MarshalJSON() ([]byte, error) {
16440	type NoMethod InstanceGroupManagersListManagedInstancesResponse
16441	raw := NoMethod(*s)
16442	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16443}
16444
16445type InstanceGroupManagersListPerInstanceConfigsResp struct {
16446	// Items: [Output Only] The list of PerInstanceConfig.
16447	Items []*PerInstanceConfig `json:"items,omitempty"`
16448
16449	// NextPageToken: [Output Only] This token allows you to get the next
16450	// page of results for list requests. If the number of results is larger
16451	// than maxResults, use the nextPageToken as a value for the query
16452	// parameter pageToken in the next list request. Subsequent list
16453	// requests will have their own nextPageToken to continue paging through
16454	// the results.
16455	NextPageToken string `json:"nextPageToken,omitempty"`
16456
16457	// Warning: [Output Only] Informational warning message.
16458	Warning *InstanceGroupManagersListPerInstanceConfigsRespWarning `json:"warning,omitempty"`
16459
16460	// ServerResponse contains the HTTP response code and headers from the
16461	// server.
16462	googleapi.ServerResponse `json:"-"`
16463
16464	// ForceSendFields is a list of field names (e.g. "Items") to
16465	// unconditionally include in API requests. By default, fields with
16466	// empty values are omitted from API requests. However, any non-pointer,
16467	// non-interface field appearing in ForceSendFields will be sent to the
16468	// server regardless of whether the field is empty or not. This may be
16469	// used to include empty fields in Patch requests.
16470	ForceSendFields []string `json:"-"`
16471
16472	// NullFields is a list of field names (e.g. "Items") to include in API
16473	// requests with the JSON null value. By default, fields with empty
16474	// values are omitted from API requests. However, any field with an
16475	// empty value appearing in NullFields will be sent to the server as
16476	// null. It is an error if a field in this list has a non-empty value.
16477	// This may be used to include null fields in Patch requests.
16478	NullFields []string `json:"-"`
16479}
16480
16481func (s *InstanceGroupManagersListPerInstanceConfigsResp) MarshalJSON() ([]byte, error) {
16482	type NoMethod InstanceGroupManagersListPerInstanceConfigsResp
16483	raw := NoMethod(*s)
16484	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16485}
16486
16487// InstanceGroupManagersListPerInstanceConfigsRespWarning: [Output Only]
16488// Informational warning message.
16489type InstanceGroupManagersListPerInstanceConfigsRespWarning struct {
16490	// Code: [Output Only] A warning code, if applicable. For example,
16491	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16492	// the response.
16493	//
16494	// Possible values:
16495	//   "CLEANUP_FAILED"
16496	//   "DEPRECATED_RESOURCE_USED"
16497	//   "DEPRECATED_TYPE_USED"
16498	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16499	//   "EXPERIMENTAL_TYPE_USED"
16500	//   "EXTERNAL_API_WARNING"
16501	//   "FIELD_VALUE_OVERRIDEN"
16502	//   "INJECTED_KERNELS_DEPRECATED"
16503	//   "MISSING_TYPE_DEPENDENCY"
16504	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16505	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16506	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16507	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16508	//   "NEXT_HOP_NOT_RUNNING"
16509	//   "NOT_CRITICAL_ERROR"
16510	//   "NO_RESULTS_ON_PAGE"
16511	//   "REQUIRED_TOS_AGREEMENT"
16512	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16513	//   "RESOURCE_NOT_DELETED"
16514	//   "SCHEMA_VALIDATION_IGNORED"
16515	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16516	//   "UNDECLARED_PROPERTIES"
16517	//   "UNREACHABLE"
16518	Code string `json:"code,omitempty"`
16519
16520	// Data: [Output Only] Metadata about this warning in key: value format.
16521	// For example:
16522	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16523	Data []*InstanceGroupManagersListPerInstanceConfigsRespWarningData `json:"data,omitempty"`
16524
16525	// Message: [Output Only] A human-readable description of the warning
16526	// code.
16527	Message string `json:"message,omitempty"`
16528
16529	// ForceSendFields is a list of field names (e.g. "Code") to
16530	// unconditionally include in API requests. By default, fields with
16531	// empty values are omitted from API requests. However, any non-pointer,
16532	// non-interface field appearing in ForceSendFields will be sent to the
16533	// server regardless of whether the field is empty or not. This may be
16534	// used to include empty fields in Patch requests.
16535	ForceSendFields []string `json:"-"`
16536
16537	// NullFields is a list of field names (e.g. "Code") to include in API
16538	// requests with the JSON null value. By default, fields with empty
16539	// values are omitted from API requests. However, any field with an
16540	// empty value appearing in NullFields will be sent to the server as
16541	// null. It is an error if a field in this list has a non-empty value.
16542	// This may be used to include null fields in Patch requests.
16543	NullFields []string `json:"-"`
16544}
16545
16546func (s *InstanceGroupManagersListPerInstanceConfigsRespWarning) MarshalJSON() ([]byte, error) {
16547	type NoMethod InstanceGroupManagersListPerInstanceConfigsRespWarning
16548	raw := NoMethod(*s)
16549	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16550}
16551
16552type InstanceGroupManagersListPerInstanceConfigsRespWarningData struct {
16553	// Key: [Output Only] A key that provides more detail on the warning
16554	// being returned. For example, for warnings where there are no results
16555	// in a list request for a particular zone, this key might be scope and
16556	// the key value might be the zone name. Other examples might be a key
16557	// indicating a deprecated resource and a suggested replacement, or a
16558	// warning about invalid network settings (for example, if an instance
16559	// attempts to perform IP forwarding but is not enabled for IP
16560	// forwarding).
16561	Key string `json:"key,omitempty"`
16562
16563	// Value: [Output Only] A warning data value corresponding to the key.
16564	Value string `json:"value,omitempty"`
16565
16566	// ForceSendFields is a list of field names (e.g. "Key") to
16567	// unconditionally include in API requests. By default, fields with
16568	// empty values are omitted from API requests. However, any non-pointer,
16569	// non-interface field appearing in ForceSendFields will be sent to the
16570	// server regardless of whether the field is empty or not. This may be
16571	// used to include empty fields in Patch requests.
16572	ForceSendFields []string `json:"-"`
16573
16574	// NullFields is a list of field names (e.g. "Key") to include in API
16575	// requests with the JSON null value. By default, fields with empty
16576	// values are omitted from API requests. However, any field with an
16577	// empty value appearing in NullFields will be sent to the server as
16578	// null. It is an error if a field in this list has a non-empty value.
16579	// This may be used to include null fields in Patch requests.
16580	NullFields []string `json:"-"`
16581}
16582
16583func (s *InstanceGroupManagersListPerInstanceConfigsRespWarningData) MarshalJSON() ([]byte, error) {
16584	type NoMethod InstanceGroupManagersListPerInstanceConfigsRespWarningData
16585	raw := NoMethod(*s)
16586	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16587}
16588
16589// InstanceGroupManagersPatchPerInstanceConfigsReq:
16590// InstanceGroupManagers.patchPerInstanceConfigs
16591type InstanceGroupManagersPatchPerInstanceConfigsReq struct {
16592	// PerInstanceConfigs: The list of per-instance configs to insert or
16593	// patch on this managed instance group.
16594	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
16595
16596	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
16597	// to unconditionally include in API requests. By default, fields with
16598	// empty values are omitted from API requests. However, any non-pointer,
16599	// non-interface field appearing in ForceSendFields will be sent to the
16600	// server regardless of whether the field is empty or not. This may be
16601	// used to include empty fields in Patch requests.
16602	ForceSendFields []string `json:"-"`
16603
16604	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
16605	// include in API requests with the JSON null value. By default, fields
16606	// with empty values are omitted from API requests. However, any field
16607	// with an empty value appearing in NullFields will be sent to the
16608	// server as null. It is an error if a field in this list has a
16609	// non-empty value. This may be used to include null fields in Patch
16610	// requests.
16611	NullFields []string `json:"-"`
16612}
16613
16614func (s *InstanceGroupManagersPatchPerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
16615	type NoMethod InstanceGroupManagersPatchPerInstanceConfigsReq
16616	raw := NoMethod(*s)
16617	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16618}
16619
16620type InstanceGroupManagersRecreateInstancesRequest struct {
16621	// Instances: The URLs of one or more instances to recreate. This can be
16622	// a full URL or a partial URL, such as
16623	// zones/[ZONE]/instances/[INSTANCE_NAME].
16624	Instances []string `json:"instances,omitempty"`
16625
16626	// ForceSendFields is a list of field names (e.g. "Instances") to
16627	// unconditionally include in API requests. By default, fields with
16628	// empty values are omitted from API requests. However, any non-pointer,
16629	// non-interface field appearing in ForceSendFields will be sent to the
16630	// server regardless of whether the field is empty or not. This may be
16631	// used to include empty fields in Patch requests.
16632	ForceSendFields []string `json:"-"`
16633
16634	// NullFields is a list of field names (e.g. "Instances") to include in
16635	// API requests with the JSON null value. By default, fields with empty
16636	// values are omitted from API requests. However, any field with an
16637	// empty value appearing in NullFields will be sent to the server as
16638	// null. It is an error if a field in this list has a non-empty value.
16639	// This may be used to include null fields in Patch requests.
16640	NullFields []string `json:"-"`
16641}
16642
16643func (s *InstanceGroupManagersRecreateInstancesRequest) MarshalJSON() ([]byte, error) {
16644	type NoMethod InstanceGroupManagersRecreateInstancesRequest
16645	raw := NoMethod(*s)
16646	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16647}
16648
16649type InstanceGroupManagersResizeAdvancedRequest struct {
16650	// NoCreationRetries: If this flag is true, the managed instance group
16651	// attempts to create all instances initiated by this resize request
16652	// only once. If there is an error during creation, the managed instance
16653	// group does not retry create this instance, and we will decrease the
16654	// targetSize of the request instead. If the flag is false, the group
16655	// attempts to recreate each instance continuously until it
16656	// succeeds.
16657	//
16658	// This flag matters only in the first attempt of creation of an
16659	// instance. After an instance is successfully created while this flag
16660	// is enabled, the instance behaves the same way as all the other
16661	// instances created with a regular resize request. In particular, if a
16662	// running instance dies unexpectedly at a later time and needs to be
16663	// recreated, this mode does not affect the recreation behavior in that
16664	// scenario.
16665	//
16666	// This flag is applicable only to the current resize request. It does
16667	// not influence other resize requests in any way.
16668	//
16669	// You can see which instances is being creating in which mode by
16670	// calling the get or listManagedInstances API.
16671	NoCreationRetries bool `json:"noCreationRetries,omitempty"`
16672
16673	// TargetSize: The number of running instances that the managed instance
16674	// group should maintain at any given time. The group automatically adds
16675	// or removes instances to maintain the number of instances specified by
16676	// this parameter.
16677	TargetSize int64 `json:"targetSize,omitempty"`
16678
16679	// ForceSendFields is a list of field names (e.g. "NoCreationRetries")
16680	// to unconditionally include in API requests. By default, fields with
16681	// empty values are omitted from API requests. However, any non-pointer,
16682	// non-interface field appearing in ForceSendFields will be sent to the
16683	// server regardless of whether the field is empty or not. This may be
16684	// used to include empty fields in Patch requests.
16685	ForceSendFields []string `json:"-"`
16686
16687	// NullFields is a list of field names (e.g. "NoCreationRetries") to
16688	// include in API requests with the JSON null value. By default, fields
16689	// with empty values are omitted from API requests. However, any field
16690	// with an empty value appearing in NullFields will be sent to the
16691	// server as null. It is an error if a field in this list has a
16692	// non-empty value. This may be used to include null fields in Patch
16693	// requests.
16694	NullFields []string `json:"-"`
16695}
16696
16697func (s *InstanceGroupManagersResizeAdvancedRequest) MarshalJSON() ([]byte, error) {
16698	type NoMethod InstanceGroupManagersResizeAdvancedRequest
16699	raw := NoMethod(*s)
16700	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16701}
16702
16703type InstanceGroupManagersScopedList struct {
16704	// InstanceGroupManagers: [Output Only] The list of managed instance
16705	// groups that are contained in the specified project and zone.
16706	InstanceGroupManagers []*InstanceGroupManager `json:"instanceGroupManagers,omitempty"`
16707
16708	// Warning: [Output Only] The warning that replaces the list of managed
16709	// instance groups when the list is empty.
16710	Warning *InstanceGroupManagersScopedListWarning `json:"warning,omitempty"`
16711
16712	// ForceSendFields is a list of field names (e.g.
16713	// "InstanceGroupManagers") to unconditionally include in API requests.
16714	// By default, fields with empty values are omitted from API requests.
16715	// However, any non-pointer, non-interface field appearing in
16716	// ForceSendFields will be sent to the server regardless of whether the
16717	// field is empty or not. This may be used to include empty fields in
16718	// Patch requests.
16719	ForceSendFields []string `json:"-"`
16720
16721	// NullFields is a list of field names (e.g. "InstanceGroupManagers") to
16722	// include in API requests with the JSON null value. By default, fields
16723	// with empty values are omitted from API requests. However, any field
16724	// with an empty value appearing in NullFields will be sent to the
16725	// server as null. It is an error if a field in this list has a
16726	// non-empty value. This may be used to include null fields in Patch
16727	// requests.
16728	NullFields []string `json:"-"`
16729}
16730
16731func (s *InstanceGroupManagersScopedList) MarshalJSON() ([]byte, error) {
16732	type NoMethod InstanceGroupManagersScopedList
16733	raw := NoMethod(*s)
16734	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16735}
16736
16737// InstanceGroupManagersScopedListWarning: [Output Only] The warning
16738// that replaces the list of managed instance groups when the list is
16739// empty.
16740type InstanceGroupManagersScopedListWarning struct {
16741	// Code: [Output Only] A warning code, if applicable. For example,
16742	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16743	// the response.
16744	//
16745	// Possible values:
16746	//   "CLEANUP_FAILED"
16747	//   "DEPRECATED_RESOURCE_USED"
16748	//   "DEPRECATED_TYPE_USED"
16749	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16750	//   "EXPERIMENTAL_TYPE_USED"
16751	//   "EXTERNAL_API_WARNING"
16752	//   "FIELD_VALUE_OVERRIDEN"
16753	//   "INJECTED_KERNELS_DEPRECATED"
16754	//   "MISSING_TYPE_DEPENDENCY"
16755	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16756	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16757	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16758	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16759	//   "NEXT_HOP_NOT_RUNNING"
16760	//   "NOT_CRITICAL_ERROR"
16761	//   "NO_RESULTS_ON_PAGE"
16762	//   "REQUIRED_TOS_AGREEMENT"
16763	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16764	//   "RESOURCE_NOT_DELETED"
16765	//   "SCHEMA_VALIDATION_IGNORED"
16766	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16767	//   "UNDECLARED_PROPERTIES"
16768	//   "UNREACHABLE"
16769	Code string `json:"code,omitempty"`
16770
16771	// Data: [Output Only] Metadata about this warning in key: value format.
16772	// For example:
16773	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16774	Data []*InstanceGroupManagersScopedListWarningData `json:"data,omitempty"`
16775
16776	// Message: [Output Only] A human-readable description of the warning
16777	// code.
16778	Message string `json:"message,omitempty"`
16779
16780	// ForceSendFields is a list of field names (e.g. "Code") to
16781	// unconditionally include in API requests. By default, fields with
16782	// empty values are omitted from API requests. However, any non-pointer,
16783	// non-interface field appearing in ForceSendFields will be sent to the
16784	// server regardless of whether the field is empty or not. This may be
16785	// used to include empty fields in Patch requests.
16786	ForceSendFields []string `json:"-"`
16787
16788	// NullFields is a list of field names (e.g. "Code") to include in API
16789	// requests with the JSON null value. By default, fields with empty
16790	// values are omitted from API requests. However, any field with an
16791	// empty value appearing in NullFields will be sent to the server as
16792	// null. It is an error if a field in this list has a non-empty value.
16793	// This may be used to include null fields in Patch requests.
16794	NullFields []string `json:"-"`
16795}
16796
16797func (s *InstanceGroupManagersScopedListWarning) MarshalJSON() ([]byte, error) {
16798	type NoMethod InstanceGroupManagersScopedListWarning
16799	raw := NoMethod(*s)
16800	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16801}
16802
16803type InstanceGroupManagersScopedListWarningData struct {
16804	// Key: [Output Only] A key that provides more detail on the warning
16805	// being returned. For example, for warnings where there are no results
16806	// in a list request for a particular zone, this key might be scope and
16807	// the key value might be the zone name. Other examples might be a key
16808	// indicating a deprecated resource and a suggested replacement, or a
16809	// warning about invalid network settings (for example, if an instance
16810	// attempts to perform IP forwarding but is not enabled for IP
16811	// forwarding).
16812	Key string `json:"key,omitempty"`
16813
16814	// Value: [Output Only] A warning data value corresponding to the key.
16815	Value string `json:"value,omitempty"`
16816
16817	// ForceSendFields is a list of field names (e.g. "Key") to
16818	// unconditionally include in API requests. By default, fields with
16819	// empty values are omitted from API requests. However, any non-pointer,
16820	// non-interface field appearing in ForceSendFields will be sent to the
16821	// server regardless of whether the field is empty or not. This may be
16822	// used to include empty fields in Patch requests.
16823	ForceSendFields []string `json:"-"`
16824
16825	// NullFields is a list of field names (e.g. "Key") to include in API
16826	// requests with the JSON null value. By default, fields with empty
16827	// values are omitted from API requests. However, any field with an
16828	// empty value appearing in NullFields will be sent to the server as
16829	// null. It is an error if a field in this list has a non-empty value.
16830	// This may be used to include null fields in Patch requests.
16831	NullFields []string `json:"-"`
16832}
16833
16834func (s *InstanceGroupManagersScopedListWarningData) MarshalJSON() ([]byte, error) {
16835	type NoMethod InstanceGroupManagersScopedListWarningData
16836	raw := NoMethod(*s)
16837	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16838}
16839
16840type InstanceGroupManagersSetAutoHealingRequest struct {
16841	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
16842
16843	// ForceSendFields is a list of field names (e.g. "AutoHealingPolicies")
16844	// to unconditionally include in API requests. By default, fields with
16845	// empty values are omitted from API requests. However, any non-pointer,
16846	// non-interface field appearing in ForceSendFields will be sent to the
16847	// server regardless of whether the field is empty or not. This may be
16848	// used to include empty fields in Patch requests.
16849	ForceSendFields []string `json:"-"`
16850
16851	// NullFields is a list of field names (e.g. "AutoHealingPolicies") to
16852	// include in API requests with the JSON null value. By default, fields
16853	// with empty values are omitted from API requests. However, any field
16854	// with an empty value appearing in NullFields will be sent to the
16855	// server as null. It is an error if a field in this list has a
16856	// non-empty value. This may be used to include null fields in Patch
16857	// requests.
16858	NullFields []string `json:"-"`
16859}
16860
16861func (s *InstanceGroupManagersSetAutoHealingRequest) MarshalJSON() ([]byte, error) {
16862	type NoMethod InstanceGroupManagersSetAutoHealingRequest
16863	raw := NoMethod(*s)
16864	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16865}
16866
16867type InstanceGroupManagersSetInstanceTemplateRequest struct {
16868	// InstanceTemplate: The URL of the instance template that is specified
16869	// for this managed instance group. The group uses this template to
16870	// create all new instances in the managed instance group.
16871	InstanceTemplate string `json:"instanceTemplate,omitempty"`
16872
16873	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
16874	// unconditionally include in API requests. By default, fields with
16875	// empty values are omitted from API requests. However, any non-pointer,
16876	// non-interface field appearing in ForceSendFields will be sent to the
16877	// server regardless of whether the field is empty or not. This may be
16878	// used to include empty fields in Patch requests.
16879	ForceSendFields []string `json:"-"`
16880
16881	// NullFields is a list of field names (e.g. "InstanceTemplate") to
16882	// include in API requests with the JSON null value. By default, fields
16883	// with empty values are omitted from API requests. However, any field
16884	// with an empty value appearing in NullFields will be sent to the
16885	// server as null. It is an error if a field in this list has a
16886	// non-empty value. This may be used to include null fields in Patch
16887	// requests.
16888	NullFields []string `json:"-"`
16889}
16890
16891func (s *InstanceGroupManagersSetInstanceTemplateRequest) MarshalJSON() ([]byte, error) {
16892	type NoMethod InstanceGroupManagersSetInstanceTemplateRequest
16893	raw := NoMethod(*s)
16894	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16895}
16896
16897type InstanceGroupManagersSetTargetPoolsRequest struct {
16898	// Fingerprint: The fingerprint of the target pools information. Use
16899	// this optional property to prevent conflicts when multiple users
16900	// change the target pools settings concurrently. Obtain the fingerprint
16901	// with the instanceGroupManagers.get method. Then, include the
16902	// fingerprint in your request to ensure that you do not overwrite
16903	// changes that were applied from another concurrent request.
16904	Fingerprint string `json:"fingerprint,omitempty"`
16905
16906	// TargetPools: The list of target pool URLs that instances in this
16907	// managed instance group belong to. The managed instance group applies
16908	// these target pools to all of the instances in the group. Existing
16909	// instances and new instances in the group all receive these target
16910	// pool settings.
16911	TargetPools []string `json:"targetPools,omitempty"`
16912
16913	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
16914	// unconditionally include in API requests. By default, fields with
16915	// empty values are omitted from API requests. However, any non-pointer,
16916	// non-interface field appearing in ForceSendFields will be sent to the
16917	// server regardless of whether the field is empty or not. This may be
16918	// used to include empty fields in Patch requests.
16919	ForceSendFields []string `json:"-"`
16920
16921	// NullFields is a list of field names (e.g. "Fingerprint") to include
16922	// in API requests with the JSON null value. By default, fields with
16923	// empty values are omitted from API requests. However, any field with
16924	// an empty value appearing in NullFields will be sent to the server as
16925	// null. It is an error if a field in this list has a non-empty value.
16926	// This may be used to include null fields in Patch requests.
16927	NullFields []string `json:"-"`
16928}
16929
16930func (s *InstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
16931	type NoMethod InstanceGroupManagersSetTargetPoolsRequest
16932	raw := NoMethod(*s)
16933	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16934}
16935
16936// InstanceGroupManagersUpdatePerInstanceConfigsReq:
16937// InstanceGroupManagers.updatePerInstanceConfigs
16938type InstanceGroupManagersUpdatePerInstanceConfigsReq struct {
16939	// PerInstanceConfigs: The list of per-instance configs to insert or
16940	// patch on this managed instance group.
16941	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
16942
16943	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
16944	// to unconditionally include in API requests. By default, fields with
16945	// empty values are omitted from API requests. However, any non-pointer,
16946	// non-interface field appearing in ForceSendFields will be sent to the
16947	// server regardless of whether the field is empty or not. This may be
16948	// used to include empty fields in Patch requests.
16949	ForceSendFields []string `json:"-"`
16950
16951	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
16952	// include in API requests with the JSON null value. By default, fields
16953	// with empty values are omitted from API requests. However, any field
16954	// with an empty value appearing in NullFields will be sent to the
16955	// server as null. It is an error if a field in this list has a
16956	// non-empty value. This may be used to include null fields in Patch
16957	// requests.
16958	NullFields []string `json:"-"`
16959}
16960
16961func (s *InstanceGroupManagersUpdatePerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
16962	type NoMethod InstanceGroupManagersUpdatePerInstanceConfigsReq
16963	raw := NoMethod(*s)
16964	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16965}
16966
16967type InstanceGroupsAddInstancesRequest struct {
16968	// Instances: The list of instances to add to the instance group.
16969	Instances []*InstanceReference `json:"instances,omitempty"`
16970
16971	// ForceSendFields is a list of field names (e.g. "Instances") to
16972	// unconditionally include in API requests. By default, fields with
16973	// empty values are omitted from API requests. However, any non-pointer,
16974	// non-interface field appearing in ForceSendFields will be sent to the
16975	// server regardless of whether the field is empty or not. This may be
16976	// used to include empty fields in Patch requests.
16977	ForceSendFields []string `json:"-"`
16978
16979	// NullFields is a list of field names (e.g. "Instances") to include in
16980	// API requests with the JSON null value. By default, fields with empty
16981	// values are omitted from API requests. However, any field with an
16982	// empty value appearing in NullFields will be sent to the server as
16983	// null. It is an error if a field in this list has a non-empty value.
16984	// This may be used to include null fields in Patch requests.
16985	NullFields []string `json:"-"`
16986}
16987
16988func (s *InstanceGroupsAddInstancesRequest) MarshalJSON() ([]byte, error) {
16989	type NoMethod InstanceGroupsAddInstancesRequest
16990	raw := NoMethod(*s)
16991	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16992}
16993
16994type InstanceGroupsListInstances struct {
16995	// Id: [Output Only] Unique identifier for the resource; defined by the
16996	// server.
16997	Id string `json:"id,omitempty"`
16998
16999	// Items: A list of InstanceWithNamedPorts resources.
17000	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
17001
17002	// Kind: [Output Only] The resource type, which is always
17003	// compute#instanceGroupsListInstances for the list of instances in the
17004	// specified instance group.
17005	Kind string `json:"kind,omitempty"`
17006
17007	// NextPageToken: [Output Only] This token allows you to get the next
17008	// page of results for list requests. If the number of results is larger
17009	// than maxResults, use the nextPageToken as a value for the query
17010	// parameter pageToken in the next list request. Subsequent list
17011	// requests will have their own nextPageToken to continue paging through
17012	// the results.
17013	NextPageToken string `json:"nextPageToken,omitempty"`
17014
17015	// SelfLink: [Output Only] Server-defined URL for this resource.
17016	SelfLink string `json:"selfLink,omitempty"`
17017
17018	// Warning: [Output Only] Informational warning message.
17019	Warning *InstanceGroupsListInstancesWarning `json:"warning,omitempty"`
17020
17021	// ServerResponse contains the HTTP response code and headers from the
17022	// server.
17023	googleapi.ServerResponse `json:"-"`
17024
17025	// ForceSendFields is a list of field names (e.g. "Id") to
17026	// unconditionally include in API requests. By default, fields with
17027	// empty values are omitted from API requests. However, any non-pointer,
17028	// non-interface field appearing in ForceSendFields will be sent to the
17029	// server regardless of whether the field is empty or not. This may be
17030	// used to include empty fields in Patch requests.
17031	ForceSendFields []string `json:"-"`
17032
17033	// NullFields is a list of field names (e.g. "Id") to include in API
17034	// requests with the JSON null value. By default, fields with empty
17035	// values are omitted from API requests. However, any field with an
17036	// empty value appearing in NullFields will be sent to the server as
17037	// null. It is an error if a field in this list has a non-empty value.
17038	// This may be used to include null fields in Patch requests.
17039	NullFields []string `json:"-"`
17040}
17041
17042func (s *InstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
17043	type NoMethod InstanceGroupsListInstances
17044	raw := NoMethod(*s)
17045	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17046}
17047
17048// InstanceGroupsListInstancesWarning: [Output Only] Informational
17049// warning message.
17050type InstanceGroupsListInstancesWarning struct {
17051	// Code: [Output Only] A warning code, if applicable. For example,
17052	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17053	// the response.
17054	//
17055	// Possible values:
17056	//   "CLEANUP_FAILED"
17057	//   "DEPRECATED_RESOURCE_USED"
17058	//   "DEPRECATED_TYPE_USED"
17059	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17060	//   "EXPERIMENTAL_TYPE_USED"
17061	//   "EXTERNAL_API_WARNING"
17062	//   "FIELD_VALUE_OVERRIDEN"
17063	//   "INJECTED_KERNELS_DEPRECATED"
17064	//   "MISSING_TYPE_DEPENDENCY"
17065	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17066	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17067	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17068	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17069	//   "NEXT_HOP_NOT_RUNNING"
17070	//   "NOT_CRITICAL_ERROR"
17071	//   "NO_RESULTS_ON_PAGE"
17072	//   "REQUIRED_TOS_AGREEMENT"
17073	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17074	//   "RESOURCE_NOT_DELETED"
17075	//   "SCHEMA_VALIDATION_IGNORED"
17076	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17077	//   "UNDECLARED_PROPERTIES"
17078	//   "UNREACHABLE"
17079	Code string `json:"code,omitempty"`
17080
17081	// Data: [Output Only] Metadata about this warning in key: value format.
17082	// For example:
17083	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17084	Data []*InstanceGroupsListInstancesWarningData `json:"data,omitempty"`
17085
17086	// Message: [Output Only] A human-readable description of the warning
17087	// code.
17088	Message string `json:"message,omitempty"`
17089
17090	// ForceSendFields is a list of field names (e.g. "Code") to
17091	// unconditionally include in API requests. By default, fields with
17092	// empty values are omitted from API requests. However, any non-pointer,
17093	// non-interface field appearing in ForceSendFields will be sent to the
17094	// server regardless of whether the field is empty or not. This may be
17095	// used to include empty fields in Patch requests.
17096	ForceSendFields []string `json:"-"`
17097
17098	// NullFields is a list of field names (e.g. "Code") to include in API
17099	// requests with the JSON null value. By default, fields with empty
17100	// values are omitted from API requests. However, any field with an
17101	// empty value appearing in NullFields will be sent to the server as
17102	// null. It is an error if a field in this list has a non-empty value.
17103	// This may be used to include null fields in Patch requests.
17104	NullFields []string `json:"-"`
17105}
17106
17107func (s *InstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
17108	type NoMethod InstanceGroupsListInstancesWarning
17109	raw := NoMethod(*s)
17110	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17111}
17112
17113type InstanceGroupsListInstancesWarningData struct {
17114	// Key: [Output Only] A key that provides more detail on the warning
17115	// being returned. For example, for warnings where there are no results
17116	// in a list request for a particular zone, this key might be scope and
17117	// the key value might be the zone name. Other examples might be a key
17118	// indicating a deprecated resource and a suggested replacement, or a
17119	// warning about invalid network settings (for example, if an instance
17120	// attempts to perform IP forwarding but is not enabled for IP
17121	// forwarding).
17122	Key string `json:"key,omitempty"`
17123
17124	// Value: [Output Only] A warning data value corresponding to the key.
17125	Value string `json:"value,omitempty"`
17126
17127	// ForceSendFields is a list of field names (e.g. "Key") to
17128	// unconditionally include in API requests. By default, fields with
17129	// empty values are omitted from API requests. However, any non-pointer,
17130	// non-interface field appearing in ForceSendFields will be sent to the
17131	// server regardless of whether the field is empty or not. This may be
17132	// used to include empty fields in Patch requests.
17133	ForceSendFields []string `json:"-"`
17134
17135	// NullFields is a list of field names (e.g. "Key") to include in API
17136	// requests with the JSON null value. By default, fields with empty
17137	// values are omitted from API requests. However, any field with an
17138	// empty value appearing in NullFields will be sent to the server as
17139	// null. It is an error if a field in this list has a non-empty value.
17140	// This may be used to include null fields in Patch requests.
17141	NullFields []string `json:"-"`
17142}
17143
17144func (s *InstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
17145	type NoMethod InstanceGroupsListInstancesWarningData
17146	raw := NoMethod(*s)
17147	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17148}
17149
17150type InstanceGroupsListInstancesRequest struct {
17151	// InstanceState: A filter for the state of the instances in the
17152	// instance group. Valid options are ALL or RUNNING. If you do not
17153	// specify this parameter the list includes all instances regardless of
17154	// their state.
17155	//
17156	// Possible values:
17157	//   "ALL"
17158	//   "RUNNING"
17159	InstanceState string `json:"instanceState,omitempty"`
17160
17161	// ForceSendFields is a list of field names (e.g. "InstanceState") to
17162	// unconditionally include in API requests. By default, fields with
17163	// empty values are omitted from API requests. However, any non-pointer,
17164	// non-interface field appearing in ForceSendFields will be sent to the
17165	// server regardless of whether the field is empty or not. This may be
17166	// used to include empty fields in Patch requests.
17167	ForceSendFields []string `json:"-"`
17168
17169	// NullFields is a list of field names (e.g. "InstanceState") to include
17170	// in API requests with the JSON null value. By default, fields with
17171	// empty values are omitted from API requests. However, any field with
17172	// an empty value appearing in NullFields will be sent to the server as
17173	// null. It is an error if a field in this list has a non-empty value.
17174	// This may be used to include null fields in Patch requests.
17175	NullFields []string `json:"-"`
17176}
17177
17178func (s *InstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
17179	type NoMethod InstanceGroupsListInstancesRequest
17180	raw := NoMethod(*s)
17181	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17182}
17183
17184type InstanceGroupsRemoveInstancesRequest struct {
17185	// Instances: The list of instances to remove from the instance group.
17186	Instances []*InstanceReference `json:"instances,omitempty"`
17187
17188	// ForceSendFields is a list of field names (e.g. "Instances") to
17189	// unconditionally include in API requests. By default, fields with
17190	// empty values are omitted from API requests. However, any non-pointer,
17191	// non-interface field appearing in ForceSendFields will be sent to the
17192	// server regardless of whether the field is empty or not. This may be
17193	// used to include empty fields in Patch requests.
17194	ForceSendFields []string `json:"-"`
17195
17196	// NullFields is a list of field names (e.g. "Instances") to include in
17197	// API requests with the JSON null value. By default, fields with empty
17198	// values are omitted from API requests. However, any field with an
17199	// empty value appearing in NullFields will be sent to the server as
17200	// null. It is an error if a field in this list has a non-empty value.
17201	// This may be used to include null fields in Patch requests.
17202	NullFields []string `json:"-"`
17203}
17204
17205func (s *InstanceGroupsRemoveInstancesRequest) MarshalJSON() ([]byte, error) {
17206	type NoMethod InstanceGroupsRemoveInstancesRequest
17207	raw := NoMethod(*s)
17208	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17209}
17210
17211type InstanceGroupsScopedList struct {
17212	// InstanceGroups: [Output Only] The list of instance groups that are
17213	// contained in this scope.
17214	InstanceGroups []*InstanceGroup `json:"instanceGroups,omitempty"`
17215
17216	// Warning: [Output Only] An informational warning that replaces the
17217	// list of instance groups when the list is empty.
17218	Warning *InstanceGroupsScopedListWarning `json:"warning,omitempty"`
17219
17220	// ForceSendFields is a list of field names (e.g. "InstanceGroups") to
17221	// unconditionally include in API requests. By default, fields with
17222	// empty values are omitted from API requests. However, any non-pointer,
17223	// non-interface field appearing in ForceSendFields will be sent to the
17224	// server regardless of whether the field is empty or not. This may be
17225	// used to include empty fields in Patch requests.
17226	ForceSendFields []string `json:"-"`
17227
17228	// NullFields is a list of field names (e.g. "InstanceGroups") to
17229	// include in API requests with the JSON null value. By default, fields
17230	// with empty values are omitted from API requests. However, any field
17231	// with an empty value appearing in NullFields will be sent to the
17232	// server as null. It is an error if a field in this list has a
17233	// non-empty value. This may be used to include null fields in Patch
17234	// requests.
17235	NullFields []string `json:"-"`
17236}
17237
17238func (s *InstanceGroupsScopedList) MarshalJSON() ([]byte, error) {
17239	type NoMethod InstanceGroupsScopedList
17240	raw := NoMethod(*s)
17241	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17242}
17243
17244// InstanceGroupsScopedListWarning: [Output Only] An informational
17245// warning that replaces the list of instance groups when the list is
17246// empty.
17247type InstanceGroupsScopedListWarning struct {
17248	// Code: [Output Only] A warning code, if applicable. For example,
17249	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17250	// the response.
17251	//
17252	// Possible values:
17253	//   "CLEANUP_FAILED"
17254	//   "DEPRECATED_RESOURCE_USED"
17255	//   "DEPRECATED_TYPE_USED"
17256	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17257	//   "EXPERIMENTAL_TYPE_USED"
17258	//   "EXTERNAL_API_WARNING"
17259	//   "FIELD_VALUE_OVERRIDEN"
17260	//   "INJECTED_KERNELS_DEPRECATED"
17261	//   "MISSING_TYPE_DEPENDENCY"
17262	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17263	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17264	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17265	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17266	//   "NEXT_HOP_NOT_RUNNING"
17267	//   "NOT_CRITICAL_ERROR"
17268	//   "NO_RESULTS_ON_PAGE"
17269	//   "REQUIRED_TOS_AGREEMENT"
17270	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17271	//   "RESOURCE_NOT_DELETED"
17272	//   "SCHEMA_VALIDATION_IGNORED"
17273	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17274	//   "UNDECLARED_PROPERTIES"
17275	//   "UNREACHABLE"
17276	Code string `json:"code,omitempty"`
17277
17278	// Data: [Output Only] Metadata about this warning in key: value format.
17279	// For example:
17280	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17281	Data []*InstanceGroupsScopedListWarningData `json:"data,omitempty"`
17282
17283	// Message: [Output Only] A human-readable description of the warning
17284	// code.
17285	Message string `json:"message,omitempty"`
17286
17287	// ForceSendFields is a list of field names (e.g. "Code") to
17288	// unconditionally include in API requests. By default, fields with
17289	// empty values are omitted from API requests. However, any non-pointer,
17290	// non-interface field appearing in ForceSendFields will be sent to the
17291	// server regardless of whether the field is empty or not. This may be
17292	// used to include empty fields in Patch requests.
17293	ForceSendFields []string `json:"-"`
17294
17295	// NullFields is a list of field names (e.g. "Code") to include in API
17296	// requests with the JSON null value. By default, fields with empty
17297	// values are omitted from API requests. However, any field with an
17298	// empty value appearing in NullFields will be sent to the server as
17299	// null. It is an error if a field in this list has a non-empty value.
17300	// This may be used to include null fields in Patch requests.
17301	NullFields []string `json:"-"`
17302}
17303
17304func (s *InstanceGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
17305	type NoMethod InstanceGroupsScopedListWarning
17306	raw := NoMethod(*s)
17307	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17308}
17309
17310type InstanceGroupsScopedListWarningData struct {
17311	// Key: [Output Only] A key that provides more detail on the warning
17312	// being returned. For example, for warnings where there are no results
17313	// in a list request for a particular zone, this key might be scope and
17314	// the key value might be the zone name. Other examples might be a key
17315	// indicating a deprecated resource and a suggested replacement, or a
17316	// warning about invalid network settings (for example, if an instance
17317	// attempts to perform IP forwarding but is not enabled for IP
17318	// forwarding).
17319	Key string `json:"key,omitempty"`
17320
17321	// Value: [Output Only] A warning data value corresponding to the key.
17322	Value string `json:"value,omitempty"`
17323
17324	// ForceSendFields is a list of field names (e.g. "Key") to
17325	// unconditionally include in API requests. By default, fields with
17326	// empty values are omitted from API requests. However, any non-pointer,
17327	// non-interface field appearing in ForceSendFields will be sent to the
17328	// server regardless of whether the field is empty or not. This may be
17329	// used to include empty fields in Patch requests.
17330	ForceSendFields []string `json:"-"`
17331
17332	// NullFields is a list of field names (e.g. "Key") to include in API
17333	// requests with the JSON null value. By default, fields with empty
17334	// values are omitted from API requests. However, any field with an
17335	// empty value appearing in NullFields will be sent to the server as
17336	// null. It is an error if a field in this list has a non-empty value.
17337	// This may be used to include null fields in Patch requests.
17338	NullFields []string `json:"-"`
17339}
17340
17341func (s *InstanceGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
17342	type NoMethod InstanceGroupsScopedListWarningData
17343	raw := NoMethod(*s)
17344	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17345}
17346
17347type InstanceGroupsSetNamedPortsRequest struct {
17348	// Fingerprint: The fingerprint of the named ports information for this
17349	// instance group. Use this optional property to prevent conflicts when
17350	// multiple users change the named ports settings concurrently. Obtain
17351	// the fingerprint with the instanceGroups.get method. Then, include the
17352	// fingerprint in your request to ensure that you do not overwrite
17353	// changes that were applied from another concurrent request. A request
17354	// with an incorrect fingerprint will fail with error 412
17355	// conditionNotMet.
17356	Fingerprint string `json:"fingerprint,omitempty"`
17357
17358	// NamedPorts: The list of named ports to set for this instance group.
17359	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
17360
17361	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
17362	// unconditionally include in API requests. By default, fields with
17363	// empty values are omitted from API requests. However, any non-pointer,
17364	// non-interface field appearing in ForceSendFields will be sent to the
17365	// server regardless of whether the field is empty or not. This may be
17366	// used to include empty fields in Patch requests.
17367	ForceSendFields []string `json:"-"`
17368
17369	// NullFields is a list of field names (e.g. "Fingerprint") to include
17370	// in API requests with the JSON null value. By default, fields with
17371	// empty values are omitted from API requests. However, any field with
17372	// an empty value appearing in NullFields will be sent to the server as
17373	// null. It is an error if a field in this list has a non-empty value.
17374	// This may be used to include null fields in Patch requests.
17375	NullFields []string `json:"-"`
17376}
17377
17378func (s *InstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
17379	type NoMethod InstanceGroupsSetNamedPortsRequest
17380	raw := NoMethod(*s)
17381	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17382}
17383
17384// InstanceList: Contains a list of instances.
17385type InstanceList struct {
17386	// Id: [Output Only] Unique identifier for the resource; defined by the
17387	// server.
17388	Id string `json:"id,omitempty"`
17389
17390	// Items: A list of Instance resources.
17391	Items []*Instance `json:"items,omitempty"`
17392
17393	// Kind: [Output Only] Type of resource. Always compute#instanceList for
17394	// lists of Instance resources.
17395	Kind string `json:"kind,omitempty"`
17396
17397	// NextPageToken: [Output Only] This token allows you to get the next
17398	// page of results for list requests. If the number of results is larger
17399	// than maxResults, use the nextPageToken as a value for the query
17400	// parameter pageToken in the next list request. Subsequent list
17401	// requests will have their own nextPageToken to continue paging through
17402	// the results.
17403	NextPageToken string `json:"nextPageToken,omitempty"`
17404
17405	// SelfLink: [Output Only] Server-defined URL for this resource.
17406	SelfLink string `json:"selfLink,omitempty"`
17407
17408	// Warning: [Output Only] Informational warning message.
17409	Warning *InstanceListWarning `json:"warning,omitempty"`
17410
17411	// ServerResponse contains the HTTP response code and headers from the
17412	// server.
17413	googleapi.ServerResponse `json:"-"`
17414
17415	// ForceSendFields is a list of field names (e.g. "Id") to
17416	// unconditionally include in API requests. By default, fields with
17417	// empty values are omitted from API requests. However, any non-pointer,
17418	// non-interface field appearing in ForceSendFields will be sent to the
17419	// server regardless of whether the field is empty or not. This may be
17420	// used to include empty fields in Patch requests.
17421	ForceSendFields []string `json:"-"`
17422
17423	// NullFields is a list of field names (e.g. "Id") to include in API
17424	// requests with the JSON null value. By default, fields with empty
17425	// values are omitted from API requests. However, any field with an
17426	// empty value appearing in NullFields will be sent to the server as
17427	// null. It is an error if a field in this list has a non-empty value.
17428	// This may be used to include null fields in Patch requests.
17429	NullFields []string `json:"-"`
17430}
17431
17432func (s *InstanceList) MarshalJSON() ([]byte, error) {
17433	type NoMethod InstanceList
17434	raw := NoMethod(*s)
17435	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17436}
17437
17438// InstanceListWarning: [Output Only] Informational warning message.
17439type InstanceListWarning struct {
17440	// Code: [Output Only] A warning code, if applicable. For example,
17441	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17442	// the response.
17443	//
17444	// Possible values:
17445	//   "CLEANUP_FAILED"
17446	//   "DEPRECATED_RESOURCE_USED"
17447	//   "DEPRECATED_TYPE_USED"
17448	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17449	//   "EXPERIMENTAL_TYPE_USED"
17450	//   "EXTERNAL_API_WARNING"
17451	//   "FIELD_VALUE_OVERRIDEN"
17452	//   "INJECTED_KERNELS_DEPRECATED"
17453	//   "MISSING_TYPE_DEPENDENCY"
17454	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17455	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17456	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17457	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17458	//   "NEXT_HOP_NOT_RUNNING"
17459	//   "NOT_CRITICAL_ERROR"
17460	//   "NO_RESULTS_ON_PAGE"
17461	//   "REQUIRED_TOS_AGREEMENT"
17462	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17463	//   "RESOURCE_NOT_DELETED"
17464	//   "SCHEMA_VALIDATION_IGNORED"
17465	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17466	//   "UNDECLARED_PROPERTIES"
17467	//   "UNREACHABLE"
17468	Code string `json:"code,omitempty"`
17469
17470	// Data: [Output Only] Metadata about this warning in key: value format.
17471	// For example:
17472	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17473	Data []*InstanceListWarningData `json:"data,omitempty"`
17474
17475	// Message: [Output Only] A human-readable description of the warning
17476	// code.
17477	Message string `json:"message,omitempty"`
17478
17479	// ForceSendFields is a list of field names (e.g. "Code") to
17480	// unconditionally include in API requests. By default, fields with
17481	// empty values are omitted from API requests. However, any non-pointer,
17482	// non-interface field appearing in ForceSendFields will be sent to the
17483	// server regardless of whether the field is empty or not. This may be
17484	// used to include empty fields in Patch requests.
17485	ForceSendFields []string `json:"-"`
17486
17487	// NullFields is a list of field names (e.g. "Code") to include in API
17488	// requests with the JSON null value. By default, fields with empty
17489	// values are omitted from API requests. However, any field with an
17490	// empty value appearing in NullFields will be sent to the server as
17491	// null. It is an error if a field in this list has a non-empty value.
17492	// This may be used to include null fields in Patch requests.
17493	NullFields []string `json:"-"`
17494}
17495
17496func (s *InstanceListWarning) MarshalJSON() ([]byte, error) {
17497	type NoMethod InstanceListWarning
17498	raw := NoMethod(*s)
17499	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17500}
17501
17502type InstanceListWarningData struct {
17503	// Key: [Output Only] A key that provides more detail on the warning
17504	// being returned. For example, for warnings where there are no results
17505	// in a list request for a particular zone, this key might be scope and
17506	// the key value might be the zone name. Other examples might be a key
17507	// indicating a deprecated resource and a suggested replacement, or a
17508	// warning about invalid network settings (for example, if an instance
17509	// attempts to perform IP forwarding but is not enabled for IP
17510	// forwarding).
17511	Key string `json:"key,omitempty"`
17512
17513	// Value: [Output Only] A warning data value corresponding to the key.
17514	Value string `json:"value,omitempty"`
17515
17516	// ForceSendFields is a list of field names (e.g. "Key") to
17517	// unconditionally include in API requests. By default, fields with
17518	// empty values are omitted from API requests. However, any non-pointer,
17519	// non-interface field appearing in ForceSendFields will be sent to the
17520	// server regardless of whether the field is empty or not. This may be
17521	// used to include empty fields in Patch requests.
17522	ForceSendFields []string `json:"-"`
17523
17524	// NullFields is a list of field names (e.g. "Key") to include in API
17525	// requests with the JSON null value. By default, fields with empty
17526	// values are omitted from API requests. However, any field with an
17527	// empty value appearing in NullFields will be sent to the server as
17528	// null. It is an error if a field in this list has a non-empty value.
17529	// This may be used to include null fields in Patch requests.
17530	NullFields []string `json:"-"`
17531}
17532
17533func (s *InstanceListWarningData) MarshalJSON() ([]byte, error) {
17534	type NoMethod InstanceListWarningData
17535	raw := NoMethod(*s)
17536	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17537}
17538
17539// InstanceListReferrers: Contains a list of instance referrers.
17540type InstanceListReferrers struct {
17541	// Id: [Output Only] Unique identifier for the resource; defined by the
17542	// server.
17543	Id string `json:"id,omitempty"`
17544
17545	// Items: A list of Reference resources.
17546	Items []*Reference `json:"items,omitempty"`
17547
17548	// Kind: [Output Only] Type of resource. Always
17549	// compute#instanceListReferrers for lists of Instance referrers.
17550	Kind string `json:"kind,omitempty"`
17551
17552	// NextPageToken: [Output Only] This token allows you to get the next
17553	// page of results for list requests. If the number of results is larger
17554	// than maxResults, use the nextPageToken as a value for the query
17555	// parameter pageToken in the next list request. Subsequent list
17556	// requests will have their own nextPageToken to continue paging through
17557	// the results.
17558	NextPageToken string `json:"nextPageToken,omitempty"`
17559
17560	// SelfLink: [Output Only] Server-defined URL for this resource.
17561	SelfLink string `json:"selfLink,omitempty"`
17562
17563	// Warning: [Output Only] Informational warning message.
17564	Warning *InstanceListReferrersWarning `json:"warning,omitempty"`
17565
17566	// ServerResponse contains the HTTP response code and headers from the
17567	// server.
17568	googleapi.ServerResponse `json:"-"`
17569
17570	// ForceSendFields is a list of field names (e.g. "Id") to
17571	// unconditionally include in API requests. By default, fields with
17572	// empty values are omitted from API requests. However, any non-pointer,
17573	// non-interface field appearing in ForceSendFields will be sent to the
17574	// server regardless of whether the field is empty or not. This may be
17575	// used to include empty fields in Patch requests.
17576	ForceSendFields []string `json:"-"`
17577
17578	// NullFields is a list of field names (e.g. "Id") to include in API
17579	// requests with the JSON null value. By default, fields with empty
17580	// values are omitted from API requests. However, any field with an
17581	// empty value appearing in NullFields will be sent to the server as
17582	// null. It is an error if a field in this list has a non-empty value.
17583	// This may be used to include null fields in Patch requests.
17584	NullFields []string `json:"-"`
17585}
17586
17587func (s *InstanceListReferrers) MarshalJSON() ([]byte, error) {
17588	type NoMethod InstanceListReferrers
17589	raw := NoMethod(*s)
17590	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17591}
17592
17593// InstanceListReferrersWarning: [Output Only] Informational warning
17594// message.
17595type InstanceListReferrersWarning struct {
17596	// Code: [Output Only] A warning code, if applicable. For example,
17597	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17598	// the response.
17599	//
17600	// Possible values:
17601	//   "CLEANUP_FAILED"
17602	//   "DEPRECATED_RESOURCE_USED"
17603	//   "DEPRECATED_TYPE_USED"
17604	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17605	//   "EXPERIMENTAL_TYPE_USED"
17606	//   "EXTERNAL_API_WARNING"
17607	//   "FIELD_VALUE_OVERRIDEN"
17608	//   "INJECTED_KERNELS_DEPRECATED"
17609	//   "MISSING_TYPE_DEPENDENCY"
17610	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17611	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17612	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17613	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17614	//   "NEXT_HOP_NOT_RUNNING"
17615	//   "NOT_CRITICAL_ERROR"
17616	//   "NO_RESULTS_ON_PAGE"
17617	//   "REQUIRED_TOS_AGREEMENT"
17618	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17619	//   "RESOURCE_NOT_DELETED"
17620	//   "SCHEMA_VALIDATION_IGNORED"
17621	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17622	//   "UNDECLARED_PROPERTIES"
17623	//   "UNREACHABLE"
17624	Code string `json:"code,omitempty"`
17625
17626	// Data: [Output Only] Metadata about this warning in key: value format.
17627	// For example:
17628	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17629	Data []*InstanceListReferrersWarningData `json:"data,omitempty"`
17630
17631	// Message: [Output Only] A human-readable description of the warning
17632	// code.
17633	Message string `json:"message,omitempty"`
17634
17635	// ForceSendFields is a list of field names (e.g. "Code") to
17636	// unconditionally include in API requests. By default, fields with
17637	// empty values are omitted from API requests. However, any non-pointer,
17638	// non-interface field appearing in ForceSendFields will be sent to the
17639	// server regardless of whether the field is empty or not. This may be
17640	// used to include empty fields in Patch requests.
17641	ForceSendFields []string `json:"-"`
17642
17643	// NullFields is a list of field names (e.g. "Code") to include in API
17644	// requests with the JSON null value. By default, fields with empty
17645	// values are omitted from API requests. However, any field with an
17646	// empty value appearing in NullFields will be sent to the server as
17647	// null. It is an error if a field in this list has a non-empty value.
17648	// This may be used to include null fields in Patch requests.
17649	NullFields []string `json:"-"`
17650}
17651
17652func (s *InstanceListReferrersWarning) MarshalJSON() ([]byte, error) {
17653	type NoMethod InstanceListReferrersWarning
17654	raw := NoMethod(*s)
17655	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17656}
17657
17658type InstanceListReferrersWarningData struct {
17659	// Key: [Output Only] A key that provides more detail on the warning
17660	// being returned. For example, for warnings where there are no results
17661	// in a list request for a particular zone, this key might be scope and
17662	// the key value might be the zone name. Other examples might be a key
17663	// indicating a deprecated resource and a suggested replacement, or a
17664	// warning about invalid network settings (for example, if an instance
17665	// attempts to perform IP forwarding but is not enabled for IP
17666	// forwarding).
17667	Key string `json:"key,omitempty"`
17668
17669	// Value: [Output Only] A warning data value corresponding to the key.
17670	Value string `json:"value,omitempty"`
17671
17672	// ForceSendFields is a list of field names (e.g. "Key") to
17673	// unconditionally include in API requests. By default, fields with
17674	// empty values are omitted from API requests. However, any non-pointer,
17675	// non-interface field appearing in ForceSendFields will be sent to the
17676	// server regardless of whether the field is empty or not. This may be
17677	// used to include empty fields in Patch requests.
17678	ForceSendFields []string `json:"-"`
17679
17680	// NullFields is a list of field names (e.g. "Key") to include in API
17681	// requests with the JSON null value. By default, fields with empty
17682	// values are omitted from API requests. However, any field with an
17683	// empty value appearing in NullFields will be sent to the server as
17684	// null. It is an error if a field in this list has a non-empty value.
17685	// This may be used to include null fields in Patch requests.
17686	NullFields []string `json:"-"`
17687}
17688
17689func (s *InstanceListReferrersWarningData) MarshalJSON() ([]byte, error) {
17690	type NoMethod InstanceListReferrersWarningData
17691	raw := NoMethod(*s)
17692	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17693}
17694
17695type InstanceManagedByIgmError struct {
17696	// Error: [Output Only] Contents of the error.
17697	Error *InstanceManagedByIgmErrorManagedInstanceError `json:"error,omitempty"`
17698
17699	// InstanceActionDetails: [Output Only] Details of the instance action
17700	// that triggered this error. May be null, if the error was not caused
17701	// by an action on an instance. This field is optional.
17702	InstanceActionDetails *InstanceManagedByIgmErrorInstanceActionDetails `json:"instanceActionDetails,omitempty"`
17703
17704	// Timestamp: [Output Only] The time that this error occurred. This
17705	// value is in RFC3339 text format.
17706	Timestamp string `json:"timestamp,omitempty"`
17707
17708	// ForceSendFields is a list of field names (e.g. "Error") to
17709	// unconditionally include in API requests. By default, fields with
17710	// empty values are omitted from API requests. However, any non-pointer,
17711	// non-interface field appearing in ForceSendFields will be sent to the
17712	// server regardless of whether the field is empty or not. This may be
17713	// used to include empty fields in Patch requests.
17714	ForceSendFields []string `json:"-"`
17715
17716	// NullFields is a list of field names (e.g. "Error") to include in API
17717	// requests with the JSON null value. By default, fields with empty
17718	// values are omitted from API requests. However, any field with an
17719	// empty value appearing in NullFields will be sent to the server as
17720	// null. It is an error if a field in this list has a non-empty value.
17721	// This may be used to include null fields in Patch requests.
17722	NullFields []string `json:"-"`
17723}
17724
17725func (s *InstanceManagedByIgmError) MarshalJSON() ([]byte, error) {
17726	type NoMethod InstanceManagedByIgmError
17727	raw := NoMethod(*s)
17728	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17729}
17730
17731type InstanceManagedByIgmErrorInstanceActionDetails struct {
17732	// Action: [Output Only] Action that managed instance group was
17733	// executing on the instance when the error occurred. Possible values:
17734	//
17735	// Possible values:
17736	//   "ABANDONING"
17737	//   "CREATING"
17738	//   "CREATING_WITHOUT_RETRIES"
17739	//   "DELETING"
17740	//   "NONE"
17741	//   "RECREATING"
17742	//   "REFRESHING"
17743	//   "RESTARTING"
17744	//   "VERIFYING"
17745	Action string `json:"action,omitempty"`
17746
17747	// Instance: [Output Only] The URL of the instance. The URL can be set
17748	// even if the instance has not yet been created.
17749	Instance string `json:"instance,omitempty"`
17750
17751	// Version: [Output Only] Version this instance was created from, or was
17752	// being created from, but the creation failed. Corresponds to one of
17753	// the versions that were set on the Instance Group Manager resource at
17754	// the time this instance was being created.
17755	Version *ManagedInstanceVersion `json:"version,omitempty"`
17756
17757	// ForceSendFields is a list of field names (e.g. "Action") to
17758	// unconditionally include in API requests. By default, fields with
17759	// empty values are omitted from API requests. However, any non-pointer,
17760	// non-interface field appearing in ForceSendFields will be sent to the
17761	// server regardless of whether the field is empty or not. This may be
17762	// used to include empty fields in Patch requests.
17763	ForceSendFields []string `json:"-"`
17764
17765	// NullFields is a list of field names (e.g. "Action") to include in API
17766	// requests with the JSON null value. By default, fields with empty
17767	// values are omitted from API requests. However, any field with an
17768	// empty value appearing in NullFields will be sent to the server as
17769	// null. It is an error if a field in this list has a non-empty value.
17770	// This may be used to include null fields in Patch requests.
17771	NullFields []string `json:"-"`
17772}
17773
17774func (s *InstanceManagedByIgmErrorInstanceActionDetails) MarshalJSON() ([]byte, error) {
17775	type NoMethod InstanceManagedByIgmErrorInstanceActionDetails
17776	raw := NoMethod(*s)
17777	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17778}
17779
17780type InstanceManagedByIgmErrorManagedInstanceError struct {
17781	// Code: [Output Only] Error code.
17782	Code string `json:"code,omitempty"`
17783
17784	// Message: [Output Only] Error message.
17785	Message string `json:"message,omitempty"`
17786
17787	// ForceSendFields is a list of field names (e.g. "Code") to
17788	// unconditionally include in API requests. By default, fields with
17789	// empty values are omitted from API requests. However, any non-pointer,
17790	// non-interface field appearing in ForceSendFields will be sent to the
17791	// server regardless of whether the field is empty or not. This may be
17792	// used to include empty fields in Patch requests.
17793	ForceSendFields []string `json:"-"`
17794
17795	// NullFields is a list of field names (e.g. "Code") to include in API
17796	// requests with the JSON null value. By default, fields with empty
17797	// values are omitted from API requests. However, any field with an
17798	// empty value appearing in NullFields will be sent to the server as
17799	// null. It is an error if a field in this list has a non-empty value.
17800	// This may be used to include null fields in Patch requests.
17801	NullFields []string `json:"-"`
17802}
17803
17804func (s *InstanceManagedByIgmErrorManagedInstanceError) MarshalJSON() ([]byte, error) {
17805	type NoMethod InstanceManagedByIgmErrorManagedInstanceError
17806	raw := NoMethod(*s)
17807	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17808}
17809
17810type InstanceMoveRequest struct {
17811	// DestinationZone: The URL of the destination zone to move the
17812	// instance. This can be a full or partial URL. For example, the
17813	// following are all valid URLs to a zone:
17814	// - https://www.googleapis.com/compute/v1/projects/project/zones/zone
17815	//
17816	// - projects/project/zones/zone
17817	// - zones/zone
17818	DestinationZone string `json:"destinationZone,omitempty"`
17819
17820	// TargetInstance: The URL of the target instance to move. This can be a
17821	// full or partial URL. For example, the following are all valid URLs to
17822	// an instance:
17823	// -
17824	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
17825	// - projects/project/zones/zone/instances/instance
17826	// - zones/zone/instances/instance
17827	TargetInstance string `json:"targetInstance,omitempty"`
17828
17829	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
17830	// unconditionally include in API requests. By default, fields with
17831	// empty values are omitted from API requests. However, any non-pointer,
17832	// non-interface field appearing in ForceSendFields will be sent to the
17833	// server regardless of whether the field is empty or not. This may be
17834	// used to include empty fields in Patch requests.
17835	ForceSendFields []string `json:"-"`
17836
17837	// NullFields is a list of field names (e.g. "DestinationZone") to
17838	// include in API requests with the JSON null value. By default, fields
17839	// with empty values are omitted from API requests. However, any field
17840	// with an empty value appearing in NullFields will be sent to the
17841	// server as null. It is an error if a field in this list has a
17842	// non-empty value. This may be used to include null fields in Patch
17843	// requests.
17844	NullFields []string `json:"-"`
17845}
17846
17847func (s *InstanceMoveRequest) MarshalJSON() ([]byte, error) {
17848	type NoMethod InstanceMoveRequest
17849	raw := NoMethod(*s)
17850	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17851}
17852
17853type InstanceProperties struct {
17854	// CanIpForward: Enables instances created based on this template to
17855	// send packets with source IP addresses other than their own and
17856	// receive packets with destination IP addresses other than their own.
17857	// If these instances will be used as an IP gateway or it will be set as
17858	// the next-hop in a Route resource, specify true. If unsure, leave this
17859	// set to false. See the Enable IP forwarding documentation for more
17860	// information.
17861	CanIpForward bool `json:"canIpForward,omitempty"`
17862
17863	// ConfidentialInstanceConfig: Specifies the Confidential Instance
17864	// options.
17865	ConfidentialInstanceConfig *ConfidentialInstanceConfig `json:"confidentialInstanceConfig,omitempty"`
17866
17867	// Description: An optional text description for the instances that are
17868	// created from this instance template.
17869	Description string `json:"description,omitempty"`
17870
17871	// Disks: An array of disks that are associated with the instances that
17872	// are created from this template.
17873	Disks []*AttachedDisk `json:"disks,omitempty"`
17874
17875	// DisplayDevice: Display Device properties to enable support for remote
17876	// display products like: Teradici, VNC and TeamViewer
17877	DisplayDevice *DisplayDevice `json:"displayDevice,omitempty"`
17878
17879	// GuestAccelerators: A list of guest accelerator cards' type and count
17880	// to use for instances created from the instance template.
17881	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
17882
17883	// Labels: Labels to apply to instances that are created from this
17884	// template.
17885	Labels map[string]string `json:"labels,omitempty"`
17886
17887	// MachineType: The machine type to use for instances that are created
17888	// from this template.
17889	MachineType string `json:"machineType,omitempty"`
17890
17891	// Metadata: The metadata key/value pairs to assign to instances that
17892	// are created from this template. These pairs can consist of custom
17893	// metadata or predefined keys. See Project and instance metadata for
17894	// more information.
17895	Metadata *Metadata `json:"metadata,omitempty"`
17896
17897	// MinCpuPlatform: Minimum cpu/platform to be used by this instance. The
17898	// instance may be scheduled on the specified or newer cpu/platform.
17899	// Applicable values are the friendly names of CPU platforms, such as
17900	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
17901	// Bridge". For more information, read Specifying a Minimum CPU
17902	// Platform.
17903	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
17904
17905	// NetworkInterfaces: An array of network access configurations for this
17906	// interface.
17907	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
17908
17909	// PostKeyRevocationActionType: Specifies whether this instance will be
17910	// shut down on key revocation.
17911	//
17912	// Possible values:
17913	//   "NOOP"
17914	//   "SHUTDOWN"
17915	//   "UNSPECIFIED"
17916	PostKeyRevocationActionType string `json:"postKeyRevocationActionType,omitempty"`
17917
17918	// PrivateIpv6GoogleAccess: The private IPv6 google access type for the
17919	// VM. If not specified, use  INHERIT_FROM_SUBNETWORK as default.
17920	//
17921	// Possible values:
17922	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE"
17923	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE"
17924	//   "INHERIT_FROM_SUBNETWORK"
17925	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
17926
17927	// ReservationAffinity: Specifies the reservations that this instance
17928	// can consume from.
17929	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
17930
17931	// ResourcePolicies: Resource policies (names, not ULRs) applied to
17932	// instances created from this templae.
17933	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
17934
17935	// Scheduling: Specifies the scheduling options for the instances that
17936	// are created from this template.
17937	Scheduling *Scheduling `json:"scheduling,omitempty"`
17938
17939	// ServiceAccounts: A list of service accounts with specified scopes.
17940	// Access tokens for these service accounts are available to the
17941	// instances that are created from this template. Use metadata queries
17942	// to obtain the access tokens for these instances.
17943	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
17944
17945	ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
17946
17947	// ShieldedVmConfig: Specifies the Shielded VM options for the instances
17948	// that are created from this template.
17949	ShieldedVmConfig *ShieldedVmConfig `json:"shieldedVmConfig,omitempty"`
17950
17951	// Tags: A list of tags to apply to the instances that are created from
17952	// this template. The tags identify valid sources or targets for network
17953	// firewalls. The setTags method can modify this list of tags. Each tag
17954	// within the list must comply with RFC1035.
17955	Tags *Tags `json:"tags,omitempty"`
17956
17957	// ForceSendFields is a list of field names (e.g. "CanIpForward") to
17958	// unconditionally include in API requests. By default, fields with
17959	// empty values are omitted from API requests. However, any non-pointer,
17960	// non-interface field appearing in ForceSendFields will be sent to the
17961	// server regardless of whether the field is empty or not. This may be
17962	// used to include empty fields in Patch requests.
17963	ForceSendFields []string `json:"-"`
17964
17965	// NullFields is a list of field names (e.g. "CanIpForward") to include
17966	// in API requests with the JSON null value. By default, fields with
17967	// empty values are omitted from API requests. However, any field with
17968	// an empty value appearing in NullFields will be sent to the server as
17969	// null. It is an error if a field in this list has a non-empty value.
17970	// This may be used to include null fields in Patch requests.
17971	NullFields []string `json:"-"`
17972}
17973
17974func (s *InstanceProperties) MarshalJSON() ([]byte, error) {
17975	type NoMethod InstanceProperties
17976	raw := NoMethod(*s)
17977	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17978}
17979
17980type InstanceReference struct {
17981	// Instance: The URL for a specific instance.
17982	Instance string `json:"instance,omitempty"`
17983
17984	// ForceSendFields is a list of field names (e.g. "Instance") to
17985	// unconditionally include in API requests. By default, fields with
17986	// empty values are omitted from API requests. However, any non-pointer,
17987	// non-interface field appearing in ForceSendFields will be sent to the
17988	// server regardless of whether the field is empty or not. This may be
17989	// used to include empty fields in Patch requests.
17990	ForceSendFields []string `json:"-"`
17991
17992	// NullFields is a list of field names (e.g. "Instance") to include in
17993	// API requests with the JSON null value. By default, fields with empty
17994	// values are omitted from API requests. However, any field with an
17995	// empty value appearing in NullFields will be sent to the server as
17996	// null. It is an error if a field in this list has a non-empty value.
17997	// This may be used to include null fields in Patch requests.
17998	NullFields []string `json:"-"`
17999}
18000
18001func (s *InstanceReference) MarshalJSON() ([]byte, error) {
18002	type NoMethod InstanceReference
18003	raw := NoMethod(*s)
18004	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18005}
18006
18007// InstanceTemplate: Represents an Instance Template resource.
18008//
18009// You can use instance templates to create VM instances and managed
18010// instance groups. For more information, read Instance Templates. (==
18011// resource_for {$api_version}.instanceTemplates ==)
18012type InstanceTemplate struct {
18013	// CreationTimestamp: [Output Only] The creation timestamp for this
18014	// instance template in RFC3339 text format.
18015	CreationTimestamp string `json:"creationTimestamp,omitempty"`
18016
18017	// Description: An optional description of this resource. Provide this
18018	// property when you create the resource.
18019	Description string `json:"description,omitempty"`
18020
18021	// Id: [Output Only] A unique identifier for this instance template. The
18022	// server defines this identifier.
18023	Id uint64 `json:"id,omitempty,string"`
18024
18025	// Kind: [Output Only] The resource type, which is always
18026	// compute#instanceTemplate for instance templates.
18027	Kind string `json:"kind,omitempty"`
18028
18029	// Name: Name of the resource; provided by the client when the resource
18030	// is created. The name must be 1-63 characters long, and comply with
18031	// RFC1035. Specifically, the name must be 1-63 characters long and
18032	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
18033	// the first character must be a lowercase letter, and all following
18034	// characters must be a dash, lowercase letter, or digit, except the
18035	// last character, which cannot be a dash.
18036	Name string `json:"name,omitempty"`
18037
18038	// Properties: The instance properties for this instance template.
18039	Properties *InstanceProperties `json:"properties,omitempty"`
18040
18041	// SelfLink: [Output Only] The URL for this instance template. The
18042	// server defines this URL.
18043	SelfLink string `json:"selfLink,omitempty"`
18044
18045	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
18046	// with the resource id.
18047	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
18048
18049	// SourceInstance: The source instance used to create the template. You
18050	// can provide this as a partial or full URL to the resource. For
18051	// example, the following are valid values:
18052	// -
18053	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
18054	// - projects/project/zones/zone/instances/instance
18055	SourceInstance string `json:"sourceInstance,omitempty"`
18056
18057	// SourceInstanceParams: The source instance params to use to create
18058	// this instance template.
18059	SourceInstanceParams *SourceInstanceParams `json:"sourceInstanceParams,omitempty"`
18060
18061	// ServerResponse contains the HTTP response code and headers from the
18062	// server.
18063	googleapi.ServerResponse `json:"-"`
18064
18065	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
18066	// to unconditionally include in API requests. By default, fields with
18067	// empty values are omitted from API requests. However, any non-pointer,
18068	// non-interface field appearing in ForceSendFields will be sent to the
18069	// server regardless of whether the field is empty or not. This may be
18070	// used to include empty fields in Patch requests.
18071	ForceSendFields []string `json:"-"`
18072
18073	// NullFields is a list of field names (e.g. "CreationTimestamp") to
18074	// include in API requests with the JSON null value. By default, fields
18075	// with empty values are omitted from API requests. However, any field
18076	// with an empty value appearing in NullFields will be sent to the
18077	// server as null. It is an error if a field in this list has a
18078	// non-empty value. This may be used to include null fields in Patch
18079	// requests.
18080	NullFields []string `json:"-"`
18081}
18082
18083func (s *InstanceTemplate) MarshalJSON() ([]byte, error) {
18084	type NoMethod InstanceTemplate
18085	raw := NoMethod(*s)
18086	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18087}
18088
18089// InstanceTemplateList: A list of instance templates.
18090type InstanceTemplateList struct {
18091	// Id: [Output Only] Unique identifier for the resource; defined by the
18092	// server.
18093	Id string `json:"id,omitempty"`
18094
18095	// Items: A list of InstanceTemplate resources.
18096	Items []*InstanceTemplate `json:"items,omitempty"`
18097
18098	// Kind: [Output Only] The resource type, which is always
18099	// compute#instanceTemplatesListResponse for instance template lists.
18100	Kind string `json:"kind,omitempty"`
18101
18102	// NextPageToken: [Output Only] This token allows you to get the next
18103	// page of results for list requests. If the number of results is larger
18104	// than maxResults, use the nextPageToken as a value for the query
18105	// parameter pageToken in the next list request. Subsequent list
18106	// requests will have their own nextPageToken to continue paging through
18107	// the results.
18108	NextPageToken string `json:"nextPageToken,omitempty"`
18109
18110	// SelfLink: [Output Only] Server-defined URL for this resource.
18111	SelfLink string `json:"selfLink,omitempty"`
18112
18113	// Warning: [Output Only] Informational warning message.
18114	Warning *InstanceTemplateListWarning `json:"warning,omitempty"`
18115
18116	// ServerResponse contains the HTTP response code and headers from the
18117	// server.
18118	googleapi.ServerResponse `json:"-"`
18119
18120	// ForceSendFields is a list of field names (e.g. "Id") to
18121	// unconditionally include in API requests. By default, fields with
18122	// empty values are omitted from API requests. However, any non-pointer,
18123	// non-interface field appearing in ForceSendFields will be sent to the
18124	// server regardless of whether the field is empty or not. This may be
18125	// used to include empty fields in Patch requests.
18126	ForceSendFields []string `json:"-"`
18127
18128	// NullFields is a list of field names (e.g. "Id") to include in API
18129	// requests with the JSON null value. By default, fields with empty
18130	// values are omitted from API requests. However, any field with an
18131	// empty value appearing in NullFields will be sent to the server as
18132	// null. It is an error if a field in this list has a non-empty value.
18133	// This may be used to include null fields in Patch requests.
18134	NullFields []string `json:"-"`
18135}
18136
18137func (s *InstanceTemplateList) MarshalJSON() ([]byte, error) {
18138	type NoMethod InstanceTemplateList
18139	raw := NoMethod(*s)
18140	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18141}
18142
18143// InstanceTemplateListWarning: [Output Only] Informational warning
18144// message.
18145type InstanceTemplateListWarning struct {
18146	// Code: [Output Only] A warning code, if applicable. For example,
18147	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18148	// the response.
18149	//
18150	// Possible values:
18151	//   "CLEANUP_FAILED"
18152	//   "DEPRECATED_RESOURCE_USED"
18153	//   "DEPRECATED_TYPE_USED"
18154	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18155	//   "EXPERIMENTAL_TYPE_USED"
18156	//   "EXTERNAL_API_WARNING"
18157	//   "FIELD_VALUE_OVERRIDEN"
18158	//   "INJECTED_KERNELS_DEPRECATED"
18159	//   "MISSING_TYPE_DEPENDENCY"
18160	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18161	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18162	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18163	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18164	//   "NEXT_HOP_NOT_RUNNING"
18165	//   "NOT_CRITICAL_ERROR"
18166	//   "NO_RESULTS_ON_PAGE"
18167	//   "REQUIRED_TOS_AGREEMENT"
18168	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18169	//   "RESOURCE_NOT_DELETED"
18170	//   "SCHEMA_VALIDATION_IGNORED"
18171	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18172	//   "UNDECLARED_PROPERTIES"
18173	//   "UNREACHABLE"
18174	Code string `json:"code,omitempty"`
18175
18176	// Data: [Output Only] Metadata about this warning in key: value format.
18177	// For example:
18178	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18179	Data []*InstanceTemplateListWarningData `json:"data,omitempty"`
18180
18181	// Message: [Output Only] A human-readable description of the warning
18182	// code.
18183	Message string `json:"message,omitempty"`
18184
18185	// ForceSendFields is a list of field names (e.g. "Code") to
18186	// unconditionally include in API requests. By default, fields with
18187	// empty values are omitted from API requests. However, any non-pointer,
18188	// non-interface field appearing in ForceSendFields will be sent to the
18189	// server regardless of whether the field is empty or not. This may be
18190	// used to include empty fields in Patch requests.
18191	ForceSendFields []string `json:"-"`
18192
18193	// NullFields is a list of field names (e.g. "Code") to include in API
18194	// requests with the JSON null value. By default, fields with empty
18195	// values are omitted from API requests. However, any field with an
18196	// empty value appearing in NullFields will be sent to the server as
18197	// null. It is an error if a field in this list has a non-empty value.
18198	// This may be used to include null fields in Patch requests.
18199	NullFields []string `json:"-"`
18200}
18201
18202func (s *InstanceTemplateListWarning) MarshalJSON() ([]byte, error) {
18203	type NoMethod InstanceTemplateListWarning
18204	raw := NoMethod(*s)
18205	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18206}
18207
18208type InstanceTemplateListWarningData struct {
18209	// Key: [Output Only] A key that provides more detail on the warning
18210	// being returned. For example, for warnings where there are no results
18211	// in a list request for a particular zone, this key might be scope and
18212	// the key value might be the zone name. Other examples might be a key
18213	// indicating a deprecated resource and a suggested replacement, or a
18214	// warning about invalid network settings (for example, if an instance
18215	// attempts to perform IP forwarding but is not enabled for IP
18216	// forwarding).
18217	Key string `json:"key,omitempty"`
18218
18219	// Value: [Output Only] A warning data value corresponding to the key.
18220	Value string `json:"value,omitempty"`
18221
18222	// ForceSendFields is a list of field names (e.g. "Key") to
18223	// unconditionally include in API requests. By default, fields with
18224	// empty values are omitted from API requests. However, any non-pointer,
18225	// non-interface field appearing in ForceSendFields will be sent to the
18226	// server regardless of whether the field is empty or not. This may be
18227	// used to include empty fields in Patch requests.
18228	ForceSendFields []string `json:"-"`
18229
18230	// NullFields is a list of field names (e.g. "Key") to include in API
18231	// requests with the JSON null value. By default, fields with empty
18232	// values are omitted from API requests. However, any field with an
18233	// empty value appearing in NullFields will be sent to the server as
18234	// null. It is an error if a field in this list has a non-empty value.
18235	// This may be used to include null fields in Patch requests.
18236	NullFields []string `json:"-"`
18237}
18238
18239func (s *InstanceTemplateListWarningData) MarshalJSON() ([]byte, error) {
18240	type NoMethod InstanceTemplateListWarningData
18241	raw := NoMethod(*s)
18242	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18243}
18244
18245type InstanceWithNamedPorts struct {
18246	// Instance: [Output Only] The URL of the instance.
18247	Instance string `json:"instance,omitempty"`
18248
18249	// NamedPorts: [Output Only] The named ports that belong to this
18250	// instance group.
18251	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
18252
18253	// Status: [Output Only] The status of the instance.
18254	//
18255	// Possible values:
18256	//   "PROVISIONING"
18257	//   "REPAIRING"
18258	//   "RUNNING"
18259	//   "STAGING"
18260	//   "STOPPED"
18261	//   "STOPPING"
18262	//   "SUSPENDED"
18263	//   "SUSPENDING"
18264	//   "TERMINATED"
18265	Status string `json:"status,omitempty"`
18266
18267	// ForceSendFields is a list of field names (e.g. "Instance") to
18268	// unconditionally include in API requests. By default, fields with
18269	// empty values are omitted from API requests. However, any non-pointer,
18270	// non-interface field appearing in ForceSendFields will be sent to the
18271	// server regardless of whether the field is empty or not. This may be
18272	// used to include empty fields in Patch requests.
18273	ForceSendFields []string `json:"-"`
18274
18275	// NullFields is a list of field names (e.g. "Instance") to include in
18276	// API requests with the JSON null value. By default, fields with empty
18277	// values are omitted from API requests. However, any field with an
18278	// empty value appearing in NullFields will be sent to the server as
18279	// null. It is an error if a field in this list has a non-empty value.
18280	// This may be used to include null fields in Patch requests.
18281	NullFields []string `json:"-"`
18282}
18283
18284func (s *InstanceWithNamedPorts) MarshalJSON() ([]byte, error) {
18285	type NoMethod InstanceWithNamedPorts
18286	raw := NoMethod(*s)
18287	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18288}
18289
18290type InstancesAddResourcePoliciesRequest struct {
18291	// ResourcePolicies: Resource policies to be added to this instance.
18292	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
18293
18294	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
18295	// unconditionally include in API requests. By default, fields with
18296	// empty values are omitted from API requests. However, any non-pointer,
18297	// non-interface field appearing in ForceSendFields will be sent to the
18298	// server regardless of whether the field is empty or not. This may be
18299	// used to include empty fields in Patch requests.
18300	ForceSendFields []string `json:"-"`
18301
18302	// NullFields is a list of field names (e.g. "ResourcePolicies") to
18303	// include in API requests with the JSON null value. By default, fields
18304	// with empty values are omitted from API requests. However, any field
18305	// with an empty value appearing in NullFields will be sent to the
18306	// server as null. It is an error if a field in this list has a
18307	// non-empty value. This may be used to include null fields in Patch
18308	// requests.
18309	NullFields []string `json:"-"`
18310}
18311
18312func (s *InstancesAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
18313	type NoMethod InstancesAddResourcePoliciesRequest
18314	raw := NoMethod(*s)
18315	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18316}
18317
18318type InstancesGetEffectiveFirewallsResponse struct {
18319	// Firewalls: Effective firewalls on the instance.
18320	Firewalls []*Firewall `json:"firewalls,omitempty"`
18321
18322	// OrganizationFirewalls: Effective firewalls from organization
18323	// policies.
18324	OrganizationFirewalls []*InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy `json:"organizationFirewalls,omitempty"`
18325
18326	// ServerResponse contains the HTTP response code and headers from the
18327	// server.
18328	googleapi.ServerResponse `json:"-"`
18329
18330	// ForceSendFields is a list of field names (e.g. "Firewalls") to
18331	// unconditionally include in API requests. By default, fields with
18332	// empty values are omitted from API requests. However, any non-pointer,
18333	// non-interface field appearing in ForceSendFields will be sent to the
18334	// server regardless of whether the field is empty or not. This may be
18335	// used to include empty fields in Patch requests.
18336	ForceSendFields []string `json:"-"`
18337
18338	// NullFields is a list of field names (e.g. "Firewalls") to include in
18339	// API requests with the JSON null value. By default, fields with empty
18340	// values are omitted from API requests. However, any field with an
18341	// empty value appearing in NullFields will be sent to the server as
18342	// null. It is an error if a field in this list has a non-empty value.
18343	// This may be used to include null fields in Patch requests.
18344	NullFields []string `json:"-"`
18345}
18346
18347func (s *InstancesGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) {
18348	type NoMethod InstancesGetEffectiveFirewallsResponse
18349	raw := NoMethod(*s)
18350	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18351}
18352
18353// InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy: A
18354// pruned SecurityPolicy containing ID and any applicable firewall
18355// rules.
18356type InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy struct {
18357	// Id: The unique identifier for the security policy. This identifier is
18358	// defined by the server.
18359	Id uint64 `json:"id,omitempty,string"`
18360
18361	// Rules: The rules that apply to the network.
18362	Rules []*SecurityPolicyRule `json:"rules,omitempty"`
18363
18364	// ForceSendFields is a list of field names (e.g. "Id") to
18365	// unconditionally include in API requests. By default, fields with
18366	// empty values are omitted from API requests. However, any non-pointer,
18367	// non-interface field appearing in ForceSendFields will be sent to the
18368	// server regardless of whether the field is empty or not. This may be
18369	// used to include empty fields in Patch requests.
18370	ForceSendFields []string `json:"-"`
18371
18372	// NullFields is a list of field names (e.g. "Id") to include in API
18373	// requests with the JSON null value. By default, fields with empty
18374	// values are omitted from API requests. However, any field with an
18375	// empty value appearing in NullFields will be sent to the server as
18376	// null. It is an error if a field in this list has a non-empty value.
18377	// This may be used to include null fields in Patch requests.
18378	NullFields []string `json:"-"`
18379}
18380
18381func (s *InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy) MarshalJSON() ([]byte, error) {
18382	type NoMethod InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy
18383	raw := NoMethod(*s)
18384	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18385}
18386
18387type InstancesRemoveResourcePoliciesRequest struct {
18388	// ResourcePolicies: Resource policies to be removed from this instance.
18389	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
18390
18391	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
18392	// unconditionally include in API requests. By default, fields with
18393	// empty values are omitted from API requests. However, any non-pointer,
18394	// non-interface field appearing in ForceSendFields will be sent to the
18395	// server regardless of whether the field is empty or not. This may be
18396	// used to include empty fields in Patch requests.
18397	ForceSendFields []string `json:"-"`
18398
18399	// NullFields is a list of field names (e.g. "ResourcePolicies") to
18400	// include in API requests with the JSON null value. By default, fields
18401	// with empty values are omitted from API requests. However, any field
18402	// with an empty value appearing in NullFields will be sent to the
18403	// server as null. It is an error if a field in this list has a
18404	// non-empty value. This may be used to include null fields in Patch
18405	// requests.
18406	NullFields []string `json:"-"`
18407}
18408
18409func (s *InstancesRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
18410	type NoMethod InstancesRemoveResourcePoliciesRequest
18411	raw := NoMethod(*s)
18412	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18413}
18414
18415type InstancesResumeRequest struct {
18416	// Disks: Array of disks associated with this instance that are
18417	// protected with a customer-supplied encryption key.
18418	//
18419	// In order to resume the instance, the disk url and its corresponding
18420	// key must be provided.
18421	//
18422	// If the disk is not protected with a customer-supplied encryption key
18423	// it should not be specified.
18424	Disks []*CustomerEncryptionKeyProtectedDisk `json:"disks,omitempty"`
18425
18426	// InstanceEncryptionKey: Decrypts data associated with an instance that
18427	// is protected with a customer-supplied encryption key.
18428	//
18429	// If the instance you are starting is protected with a
18430	// customer-supplied encryption key, the correct key must be provided
18431	// otherwise the instance resume will not succeed.
18432	InstanceEncryptionKey *CustomerEncryptionKey `json:"instanceEncryptionKey,omitempty"`
18433
18434	// ForceSendFields is a list of field names (e.g. "Disks") to
18435	// unconditionally include in API requests. By default, fields with
18436	// empty values are omitted from API requests. However, any non-pointer,
18437	// non-interface field appearing in ForceSendFields will be sent to the
18438	// server regardless of whether the field is empty or not. This may be
18439	// used to include empty fields in Patch requests.
18440	ForceSendFields []string `json:"-"`
18441
18442	// NullFields is a list of field names (e.g. "Disks") to include in API
18443	// requests with the JSON null value. By default, fields with empty
18444	// values are omitted from API requests. However, any field with an
18445	// empty value appearing in NullFields will be sent to the server as
18446	// null. It is an error if a field in this list has a non-empty value.
18447	// This may be used to include null fields in Patch requests.
18448	NullFields []string `json:"-"`
18449}
18450
18451func (s *InstancesResumeRequest) MarshalJSON() ([]byte, error) {
18452	type NoMethod InstancesResumeRequest
18453	raw := NoMethod(*s)
18454	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18455}
18456
18457type InstancesScopedList struct {
18458	// Instances: [Output Only] A list of instances contained in this scope.
18459	Instances []*Instance `json:"instances,omitempty"`
18460
18461	// Warning: [Output Only] Informational warning which replaces the list
18462	// of instances when the list is empty.
18463	Warning *InstancesScopedListWarning `json:"warning,omitempty"`
18464
18465	// ForceSendFields is a list of field names (e.g. "Instances") to
18466	// unconditionally include in API requests. By default, fields with
18467	// empty values are omitted from API requests. However, any non-pointer,
18468	// non-interface field appearing in ForceSendFields will be sent to the
18469	// server regardless of whether the field is empty or not. This may be
18470	// used to include empty fields in Patch requests.
18471	ForceSendFields []string `json:"-"`
18472
18473	// NullFields is a list of field names (e.g. "Instances") to include in
18474	// API requests with the JSON null value. By default, fields with empty
18475	// values are omitted from API requests. However, any field with an
18476	// empty value appearing in NullFields will be sent to the server as
18477	// null. It is an error if a field in this list has a non-empty value.
18478	// This may be used to include null fields in Patch requests.
18479	NullFields []string `json:"-"`
18480}
18481
18482func (s *InstancesScopedList) MarshalJSON() ([]byte, error) {
18483	type NoMethod InstancesScopedList
18484	raw := NoMethod(*s)
18485	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18486}
18487
18488// InstancesScopedListWarning: [Output Only] Informational warning which
18489// replaces the list of instances when the list is empty.
18490type InstancesScopedListWarning struct {
18491	// Code: [Output Only] A warning code, if applicable. For example,
18492	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18493	// the response.
18494	//
18495	// Possible values:
18496	//   "CLEANUP_FAILED"
18497	//   "DEPRECATED_RESOURCE_USED"
18498	//   "DEPRECATED_TYPE_USED"
18499	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18500	//   "EXPERIMENTAL_TYPE_USED"
18501	//   "EXTERNAL_API_WARNING"
18502	//   "FIELD_VALUE_OVERRIDEN"
18503	//   "INJECTED_KERNELS_DEPRECATED"
18504	//   "MISSING_TYPE_DEPENDENCY"
18505	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18506	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18507	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18508	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18509	//   "NEXT_HOP_NOT_RUNNING"
18510	//   "NOT_CRITICAL_ERROR"
18511	//   "NO_RESULTS_ON_PAGE"
18512	//   "REQUIRED_TOS_AGREEMENT"
18513	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18514	//   "RESOURCE_NOT_DELETED"
18515	//   "SCHEMA_VALIDATION_IGNORED"
18516	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18517	//   "UNDECLARED_PROPERTIES"
18518	//   "UNREACHABLE"
18519	Code string `json:"code,omitempty"`
18520
18521	// Data: [Output Only] Metadata about this warning in key: value format.
18522	// For example:
18523	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18524	Data []*InstancesScopedListWarningData `json:"data,omitempty"`
18525
18526	// Message: [Output Only] A human-readable description of the warning
18527	// code.
18528	Message string `json:"message,omitempty"`
18529
18530	// ForceSendFields is a list of field names (e.g. "Code") to
18531	// unconditionally include in API requests. By default, fields with
18532	// empty values are omitted from API requests. However, any non-pointer,
18533	// non-interface field appearing in ForceSendFields will be sent to the
18534	// server regardless of whether the field is empty or not. This may be
18535	// used to include empty fields in Patch requests.
18536	ForceSendFields []string `json:"-"`
18537
18538	// NullFields is a list of field names (e.g. "Code") to include in API
18539	// requests with the JSON null value. By default, fields with empty
18540	// values are omitted from API requests. However, any field with an
18541	// empty value appearing in NullFields will be sent to the server as
18542	// null. It is an error if a field in this list has a non-empty value.
18543	// This may be used to include null fields in Patch requests.
18544	NullFields []string `json:"-"`
18545}
18546
18547func (s *InstancesScopedListWarning) MarshalJSON() ([]byte, error) {
18548	type NoMethod InstancesScopedListWarning
18549	raw := NoMethod(*s)
18550	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18551}
18552
18553type InstancesScopedListWarningData struct {
18554	// Key: [Output Only] A key that provides more detail on the warning
18555	// being returned. For example, for warnings where there are no results
18556	// in a list request for a particular zone, this key might be scope and
18557	// the key value might be the zone name. Other examples might be a key
18558	// indicating a deprecated resource and a suggested replacement, or a
18559	// warning about invalid network settings (for example, if an instance
18560	// attempts to perform IP forwarding but is not enabled for IP
18561	// forwarding).
18562	Key string `json:"key,omitempty"`
18563
18564	// Value: [Output Only] A warning data value corresponding to the key.
18565	Value string `json:"value,omitempty"`
18566
18567	// ForceSendFields is a list of field names (e.g. "Key") to
18568	// unconditionally include in API requests. By default, fields with
18569	// empty values are omitted from API requests. However, any non-pointer,
18570	// non-interface field appearing in ForceSendFields will be sent to the
18571	// server regardless of whether the field is empty or not. This may be
18572	// used to include empty fields in Patch requests.
18573	ForceSendFields []string `json:"-"`
18574
18575	// NullFields is a list of field names (e.g. "Key") to include in API
18576	// requests with the JSON null value. By default, fields with empty
18577	// values are omitted from API requests. However, any field with an
18578	// empty value appearing in NullFields will be sent to the server as
18579	// null. It is an error if a field in this list has a non-empty value.
18580	// This may be used to include null fields in Patch requests.
18581	NullFields []string `json:"-"`
18582}
18583
18584func (s *InstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
18585	type NoMethod InstancesScopedListWarningData
18586	raw := NoMethod(*s)
18587	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18588}
18589
18590type InstancesSetLabelsRequest struct {
18591	// LabelFingerprint: Fingerprint of the previous set of labels for this
18592	// resource, used to prevent conflicts. Provide the latest fingerprint
18593	// value when making a request to add or change labels.
18594	LabelFingerprint string `json:"labelFingerprint,omitempty"`
18595
18596	Labels map[string]string `json:"labels,omitempty"`
18597
18598	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
18599	// unconditionally include in API requests. By default, fields with
18600	// empty values are omitted from API requests. However, any non-pointer,
18601	// non-interface field appearing in ForceSendFields will be sent to the
18602	// server regardless of whether the field is empty or not. This may be
18603	// used to include empty fields in Patch requests.
18604	ForceSendFields []string `json:"-"`
18605
18606	// NullFields is a list of field names (e.g. "LabelFingerprint") to
18607	// include in API requests with the JSON null value. By default, fields
18608	// with empty values are omitted from API requests. However, any field
18609	// with an empty value appearing in NullFields will be sent to the
18610	// server as null. It is an error if a field in this list has a
18611	// non-empty value. This may be used to include null fields in Patch
18612	// requests.
18613	NullFields []string `json:"-"`
18614}
18615
18616func (s *InstancesSetLabelsRequest) MarshalJSON() ([]byte, error) {
18617	type NoMethod InstancesSetLabelsRequest
18618	raw := NoMethod(*s)
18619	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18620}
18621
18622type InstancesSetMachineResourcesRequest struct {
18623	// GuestAccelerators: A list of the type and count of accelerator cards
18624	// attached to the instance.
18625	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
18626
18627	// ForceSendFields is a list of field names (e.g. "GuestAccelerators")
18628	// to unconditionally include in API requests. By default, fields with
18629	// empty values are omitted from API requests. However, any non-pointer,
18630	// non-interface field appearing in ForceSendFields will be sent to the
18631	// server regardless of whether the field is empty or not. This may be
18632	// used to include empty fields in Patch requests.
18633	ForceSendFields []string `json:"-"`
18634
18635	// NullFields is a list of field names (e.g. "GuestAccelerators") to
18636	// include in API requests with the JSON null value. By default, fields
18637	// with empty values are omitted from API requests. However, any field
18638	// with an empty value appearing in NullFields will be sent to the
18639	// server as null. It is an error if a field in this list has a
18640	// non-empty value. This may be used to include null fields in Patch
18641	// requests.
18642	NullFields []string `json:"-"`
18643}
18644
18645func (s *InstancesSetMachineResourcesRequest) MarshalJSON() ([]byte, error) {
18646	type NoMethod InstancesSetMachineResourcesRequest
18647	raw := NoMethod(*s)
18648	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18649}
18650
18651type InstancesSetMachineTypeRequest struct {
18652	// MachineType: Full or partial URL of the machine type resource. See
18653	// Machine Types for a full list of machine types. For example:
18654	// zones/us-central1-f/machineTypes/n1-standard-1
18655	MachineType string `json:"machineType,omitempty"`
18656
18657	// ForceSendFields is a list of field names (e.g. "MachineType") to
18658	// unconditionally include in API requests. By default, fields with
18659	// empty values are omitted from API requests. However, any non-pointer,
18660	// non-interface field appearing in ForceSendFields will be sent to the
18661	// server regardless of whether the field is empty or not. This may be
18662	// used to include empty fields in Patch requests.
18663	ForceSendFields []string `json:"-"`
18664
18665	// NullFields is a list of field names (e.g. "MachineType") to include
18666	// in API requests with the JSON null value. By default, fields with
18667	// empty values are omitted from API requests. However, any field with
18668	// an empty value appearing in NullFields will be sent to the server as
18669	// null. It is an error if a field in this list has a non-empty value.
18670	// This may be used to include null fields in Patch requests.
18671	NullFields []string `json:"-"`
18672}
18673
18674func (s *InstancesSetMachineTypeRequest) MarshalJSON() ([]byte, error) {
18675	type NoMethod InstancesSetMachineTypeRequest
18676	raw := NoMethod(*s)
18677	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18678}
18679
18680type InstancesSetMinCpuPlatformRequest struct {
18681	// MinCpuPlatform: Minimum cpu/platform this instance should be started
18682	// at.
18683	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
18684
18685	// ForceSendFields is a list of field names (e.g. "MinCpuPlatform") to
18686	// unconditionally include in API requests. By default, fields with
18687	// empty values are omitted from API requests. However, any non-pointer,
18688	// non-interface field appearing in ForceSendFields will be sent to the
18689	// server regardless of whether the field is empty or not. This may be
18690	// used to include empty fields in Patch requests.
18691	ForceSendFields []string `json:"-"`
18692
18693	// NullFields is a list of field names (e.g. "MinCpuPlatform") to
18694	// include in API requests with the JSON null value. By default, fields
18695	// with empty values are omitted from API requests. However, any field
18696	// with an empty value appearing in NullFields will be sent to the
18697	// server as null. It is an error if a field in this list has a
18698	// non-empty value. This may be used to include null fields in Patch
18699	// requests.
18700	NullFields []string `json:"-"`
18701}
18702
18703func (s *InstancesSetMinCpuPlatformRequest) MarshalJSON() ([]byte, error) {
18704	type NoMethod InstancesSetMinCpuPlatformRequest
18705	raw := NoMethod(*s)
18706	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18707}
18708
18709type InstancesSetNameRequest struct {
18710	// CurrentName: The current name of this resource, used to prevent
18711	// conflicts. Provide the latest name when making a request to change
18712	// name.
18713	CurrentName string `json:"currentName,omitempty"`
18714
18715	// Name: The name to be applied to the instance. Needs to be RFC 1035
18716	// compliant.
18717	Name string `json:"name,omitempty"`
18718
18719	// ForceSendFields is a list of field names (e.g. "CurrentName") to
18720	// unconditionally include in API requests. By default, fields with
18721	// empty values are omitted from API requests. However, any non-pointer,
18722	// non-interface field appearing in ForceSendFields will be sent to the
18723	// server regardless of whether the field is empty or not. This may be
18724	// used to include empty fields in Patch requests.
18725	ForceSendFields []string `json:"-"`
18726
18727	// NullFields is a list of field names (e.g. "CurrentName") to include
18728	// in API requests with the JSON null value. By default, fields with
18729	// empty values are omitted from API requests. However, any field with
18730	// an empty value appearing in NullFields will be sent to the server as
18731	// null. It is an error if a field in this list has a non-empty value.
18732	// This may be used to include null fields in Patch requests.
18733	NullFields []string `json:"-"`
18734}
18735
18736func (s *InstancesSetNameRequest) MarshalJSON() ([]byte, error) {
18737	type NoMethod InstancesSetNameRequest
18738	raw := NoMethod(*s)
18739	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18740}
18741
18742type InstancesSetServiceAccountRequest struct {
18743	// Email: Email address of the service account.
18744	Email string `json:"email,omitempty"`
18745
18746	// Scopes: The list of scopes to be made available for this service
18747	// account.
18748	Scopes []string `json:"scopes,omitempty"`
18749
18750	// ForceSendFields is a list of field names (e.g. "Email") to
18751	// unconditionally include in API requests. By default, fields with
18752	// empty values are omitted from API requests. However, any non-pointer,
18753	// non-interface field appearing in ForceSendFields will be sent to the
18754	// server regardless of whether the field is empty or not. This may be
18755	// used to include empty fields in Patch requests.
18756	ForceSendFields []string `json:"-"`
18757
18758	// NullFields is a list of field names (e.g. "Email") to include in API
18759	// requests with the JSON null value. By default, fields with empty
18760	// values are omitted from API requests. However, any field with an
18761	// empty value appearing in NullFields will be sent to the server as
18762	// null. It is an error if a field in this list has a non-empty value.
18763	// This may be used to include null fields in Patch requests.
18764	NullFields []string `json:"-"`
18765}
18766
18767func (s *InstancesSetServiceAccountRequest) MarshalJSON() ([]byte, error) {
18768	type NoMethod InstancesSetServiceAccountRequest
18769	raw := NoMethod(*s)
18770	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18771}
18772
18773type InstancesStartWithEncryptionKeyRequest struct {
18774	// Disks: Array of disks associated with this instance that are
18775	// protected with a customer-supplied encryption key.
18776	//
18777	// In order to start the instance, the disk url and its corresponding
18778	// key must be provided.
18779	//
18780	// If the disk is not protected with a customer-supplied encryption key
18781	// it should not be specified.
18782	Disks []*CustomerEncryptionKeyProtectedDisk `json:"disks,omitempty"`
18783
18784	// InstanceEncryptionKey: Decrypts data associated with an instance that
18785	// is protected with a customer-supplied encryption key.
18786	//
18787	// If the instance you are starting is protected with a
18788	// customer-supplied encryption key, the correct key must be provided
18789	// otherwise the instance start will not succeed.
18790	InstanceEncryptionKey *CustomerEncryptionKey `json:"instanceEncryptionKey,omitempty"`
18791
18792	// ForceSendFields is a list of field names (e.g. "Disks") to
18793	// unconditionally include in API requests. By default, fields with
18794	// empty values are omitted from API requests. However, any non-pointer,
18795	// non-interface field appearing in ForceSendFields will be sent to the
18796	// server regardless of whether the field is empty or not. This may be
18797	// used to include empty fields in Patch requests.
18798	ForceSendFields []string `json:"-"`
18799
18800	// NullFields is a list of field names (e.g. "Disks") to include in API
18801	// requests with the JSON null value. By default, fields with empty
18802	// values are omitted from API requests. However, any field with an
18803	// empty value appearing in NullFields will be sent to the server as
18804	// null. It is an error if a field in this list has a non-empty value.
18805	// This may be used to include null fields in Patch requests.
18806	NullFields []string `json:"-"`
18807}
18808
18809func (s *InstancesStartWithEncryptionKeyRequest) MarshalJSON() ([]byte, error) {
18810	type NoMethod InstancesStartWithEncryptionKeyRequest
18811	raw := NoMethod(*s)
18812	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18813}
18814
18815// Int64RangeMatch: HttpRouteRuleMatch criteria for field values that
18816// must stay within the specified integer range.
18817type Int64RangeMatch struct {
18818	// RangeEnd: The end of the range (exclusive) in signed long integer
18819	// format.
18820	RangeEnd int64 `json:"rangeEnd,omitempty,string"`
18821
18822	// RangeStart: The start of the range (inclusive) in signed long integer
18823	// format.
18824	RangeStart int64 `json:"rangeStart,omitempty,string"`
18825
18826	// ForceSendFields is a list of field names (e.g. "RangeEnd") to
18827	// unconditionally include in API requests. By default, fields with
18828	// empty values are omitted from API requests. However, any non-pointer,
18829	// non-interface field appearing in ForceSendFields will be sent to the
18830	// server regardless of whether the field is empty or not. This may be
18831	// used to include empty fields in Patch requests.
18832	ForceSendFields []string `json:"-"`
18833
18834	// NullFields is a list of field names (e.g. "RangeEnd") to include in
18835	// API requests with the JSON null value. By default, fields with empty
18836	// values are omitted from API requests. However, any field with an
18837	// empty value appearing in NullFields will be sent to the server as
18838	// null. It is an error if a field in this list has a non-empty value.
18839	// This may be used to include null fields in Patch requests.
18840	NullFields []string `json:"-"`
18841}
18842
18843func (s *Int64RangeMatch) MarshalJSON() ([]byte, error) {
18844	type NoMethod Int64RangeMatch
18845	raw := NoMethod(*s)
18846	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18847}
18848
18849// Interconnect: Represents an Interconnect resource.
18850//
18851// An Interconnect resource is a dedicated connection between the GCP
18852// network and your on-premises network. For more information, read the
18853// Dedicated Interconnect Overview. (== resource_for
18854// {$api_version}.interconnects ==)
18855type Interconnect struct {
18856	// AdminEnabled: Administrative status of the interconnect. When this is
18857	// set to true, the Interconnect is functional and can carry traffic.
18858	// When set to false, no packets can be carried over the interconnect
18859	// and no BGP routes are exchanged over it. By default, the status is
18860	// set to true.
18861	AdminEnabled bool `json:"adminEnabled,omitempty"`
18862
18863	// CircuitInfos: [Output Only] A list of CircuitInfo objects, that
18864	// describe the individual circuits in this LAG.
18865	CircuitInfos []*InterconnectCircuitInfo `json:"circuitInfos,omitempty"`
18866
18867	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
18868	// format.
18869	CreationTimestamp string `json:"creationTimestamp,omitempty"`
18870
18871	// CustomerName: Customer name, to put in the Letter of Authorization as
18872	// the party authorized to request a crossconnect.
18873	CustomerName string `json:"customerName,omitempty"`
18874
18875	// Description: An optional description of this resource. Provide this
18876	// property when you create the resource.
18877	Description string `json:"description,omitempty"`
18878
18879	// ExpectedOutages: [Output Only] A list of outages expected for this
18880	// Interconnect.
18881	ExpectedOutages []*InterconnectOutageNotification `json:"expectedOutages,omitempty"`
18882
18883	// GoogleIpAddress: [Output Only] IP address configured on the Google
18884	// side of the Interconnect link. This can be used only for ping tests.
18885	GoogleIpAddress string `json:"googleIpAddress,omitempty"`
18886
18887	// GoogleReferenceId: [Output Only] Google reference ID to be used when
18888	// raising support tickets with Google or otherwise to debug backend
18889	// connectivity issues.
18890	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
18891
18892	// Id: [Output Only] The unique identifier for the resource. This
18893	// identifier is defined by the server.
18894	Id uint64 `json:"id,omitempty,string"`
18895
18896	// InterconnectAttachments: [Output Only] A list of the URLs of all
18897	// InterconnectAttachments configured to use this Interconnect.
18898	InterconnectAttachments []string `json:"interconnectAttachments,omitempty"`
18899
18900	// InterconnectType: Type of interconnect, which can take one of the
18901	// following values:
18902	// - PARTNER: A partner-managed interconnection shared between customers
18903	// though a partner.
18904	// - DEDICATED: A dedicated physical interconnection with the customer.
18905	// Note that a value IT_PRIVATE has been deprecated in favor of
18906	// DEDICATED.
18907	//
18908	// Possible values:
18909	//   "DEDICATED"
18910	//   "IT_PRIVATE"
18911	//   "PARTNER"
18912	InterconnectType string `json:"interconnectType,omitempty"`
18913
18914	// Kind: [Output Only] Type of the resource. Always compute#interconnect
18915	// for interconnects.
18916	Kind string `json:"kind,omitempty"`
18917
18918	// LabelFingerprint: A fingerprint for the labels being applied to this
18919	// Interconnect, which is essentially a hash of the labels set used for
18920	// optimistic locking. The fingerprint is initially generated by Compute
18921	// Engine and changes after every request to modify or update labels.
18922	// You must always provide an up-to-date fingerprint hash in order to
18923	// update or change labels, otherwise the request will fail with error
18924	// 412 conditionNotMet.
18925	//
18926	// To see the latest fingerprint, make a get() request to retrieve an
18927	// Interconnect.
18928	LabelFingerprint string `json:"labelFingerprint,omitempty"`
18929
18930	// Labels: Labels to apply to this Interconnect resource. These can be
18931	// later modified by the setLabels method. Each label key/value must
18932	// comply with RFC1035. Label values may be empty.
18933	Labels map[string]string `json:"labels,omitempty"`
18934
18935	// LinkType: Type of link requested, which can take one of the following
18936	// values:
18937	// - LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics
18938	// - LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. Note
18939	// that this field indicates the speed of each of the links in the
18940	// bundle, not the speed of the entire bundle.
18941	//
18942	// Possible values:
18943	//   "LINK_TYPE_ETHERNET_100G_LR"
18944	//   "LINK_TYPE_ETHERNET_10G_LR"
18945	LinkType string `json:"linkType,omitempty"`
18946
18947	// Location: URL of the InterconnectLocation object that represents
18948	// where this connection is to be provisioned.
18949	Location string `json:"location,omitempty"`
18950
18951	// Name: Name of the resource. Provided by the client when the resource
18952	// is created. The name must be 1-63 characters long, and comply with
18953	// RFC1035. Specifically, the name must be 1-63 characters long and
18954	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
18955	// the first character must be a lowercase letter, and all following
18956	// characters must be a dash, lowercase letter, or digit, except the
18957	// last character, which cannot be a dash.
18958	Name string `json:"name,omitempty"`
18959
18960	// NocContactEmail: Email address to contact the customer NOC for
18961	// operations and maintenance notifications regarding this Interconnect.
18962	// If specified, this will be used for notifications in addition to all
18963	// other forms described, such as Stackdriver logs alerting and Cloud
18964	// Notifications.
18965	NocContactEmail string `json:"nocContactEmail,omitempty"`
18966
18967	// OperationalStatus: [Output Only] The current status of this
18968	// Interconnect's functionality, which can take one of the following
18969	// values:
18970	// - OS_ACTIVE: A valid Interconnect, which is turned up and is ready to
18971	// use. Attachments may be provisioned on this Interconnect.
18972	// - OS_UNPROVISIONED: An Interconnect that has not completed turnup. No
18973	// attachments may be provisioned on this Interconnect.
18974	// - OS_UNDER_MAINTENANCE: An Interconnect that is undergoing internal
18975	// maintenance. No attachments may be provisioned or updated on this
18976	// Interconnect.
18977	//
18978	// Possible values:
18979	//   "OS_ACTIVE"
18980	//   "OS_UNPROVISIONED"
18981	OperationalStatus string `json:"operationalStatus,omitempty"`
18982
18983	// PeerIpAddress: [Output Only] IP address configured on the customer
18984	// side of the Interconnect link. The customer should configure this IP
18985	// address during turnup when prompted by Google NOC. This can be used
18986	// only for ping tests.
18987	PeerIpAddress string `json:"peerIpAddress,omitempty"`
18988
18989	// ProvisionedLinkCount: [Output Only] Number of links actually
18990	// provisioned in this interconnect.
18991	ProvisionedLinkCount int64 `json:"provisionedLinkCount,omitempty"`
18992
18993	// RequestedLinkCount: Target number of physical links in the link
18994	// bundle, as requested by the customer.
18995	RequestedLinkCount int64 `json:"requestedLinkCount,omitempty"`
18996
18997	// SelfLink: [Output Only] Server-defined URL for the resource.
18998	SelfLink string `json:"selfLink,omitempty"`
18999
19000	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
19001	// with the resource id.
19002	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
19003
19004	// State: [Output Only] The current state of Interconnect functionality,
19005	// which can take one of the following values:
19006	// - ACTIVE: The Interconnect is valid, turned up and ready to use.
19007	// Attachments may be provisioned on this Interconnect.
19008	// - UNPROVISIONED: The Interconnect has not completed turnup. No
19009	// attachments may be provisioned on this Interconnect.
19010	// - UNDER_MAINTENANCE: The Interconnect is undergoing internal
19011	// maintenance. No attachments may be provisioned or updated on this
19012	// Interconnect.
19013	//
19014	// Possible values:
19015	//   "ACTIVE"
19016	//   "UNPROVISIONED"
19017	State string `json:"state,omitempty"`
19018
19019	// ServerResponse contains the HTTP response code and headers from the
19020	// server.
19021	googleapi.ServerResponse `json:"-"`
19022
19023	// ForceSendFields is a list of field names (e.g. "AdminEnabled") to
19024	// unconditionally include in API requests. By default, fields with
19025	// empty values are omitted from API requests. However, any non-pointer,
19026	// non-interface field appearing in ForceSendFields will be sent to the
19027	// server regardless of whether the field is empty or not. This may be
19028	// used to include empty fields in Patch requests.
19029	ForceSendFields []string `json:"-"`
19030
19031	// NullFields is a list of field names (e.g. "AdminEnabled") to include
19032	// in API requests with the JSON null value. By default, fields with
19033	// empty values are omitted from API requests. However, any field with
19034	// an empty value appearing in NullFields will be sent to the server as
19035	// null. It is an error if a field in this list has a non-empty value.
19036	// This may be used to include null fields in Patch requests.
19037	NullFields []string `json:"-"`
19038}
19039
19040func (s *Interconnect) MarshalJSON() ([]byte, error) {
19041	type NoMethod Interconnect
19042	raw := NoMethod(*s)
19043	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19044}
19045
19046// InterconnectAttachment: Represents an Interconnect Attachment (VLAN)
19047// resource.
19048//
19049// You can use Interconnect attachments (VLANS) to connect your Virtual
19050// Private Cloud networks to your on-premises networks through an
19051// Interconnect. For more information, read  Creating VLAN Attachments.
19052// (== resource_for {$api_version}.interconnectAttachments ==)
19053type InterconnectAttachment struct {
19054	// AdminEnabled: Determines whether this Attachment will carry packets.
19055	// Not present for PARTNER_PROVIDER.
19056	AdminEnabled bool `json:"adminEnabled,omitempty"`
19057
19058	// Bandwidth: Provisioned bandwidth capacity for the interconnect
19059	// attachment. For attachments of type DEDICATED, the user can set the
19060	// bandwidth. For attachments of type PARTNER, the Google Partner that
19061	// is operating the interconnect must set the bandwidth. Output only for
19062	// PARTNER type, mutable for PARTNER_PROVIDER and DEDICATED, and can
19063	// take one of the following values:
19064	// - BPS_50M: 50 Mbit/s
19065	// - BPS_100M: 100 Mbit/s
19066	// - BPS_200M: 200 Mbit/s
19067	// - BPS_300M: 300 Mbit/s
19068	// - BPS_400M: 400 Mbit/s
19069	// - BPS_500M: 500 Mbit/s
19070	// - BPS_1G: 1 Gbit/s
19071	// - BPS_2G: 2 Gbit/s
19072	// - BPS_5G: 5 Gbit/s
19073	// - BPS_10G: 10 Gbit/s
19074	// - BPS_20G: 20 Gbit/s
19075	// - BPS_50G: 50 Gbit/s
19076	//
19077	// Possible values:
19078	//   "BPS_100M"
19079	//   "BPS_10G"
19080	//   "BPS_1G"
19081	//   "BPS_200M"
19082	//   "BPS_20G"
19083	//   "BPS_2G"
19084	//   "BPS_300M"
19085	//   "BPS_400M"
19086	//   "BPS_500M"
19087	//   "BPS_50G"
19088	//   "BPS_50M"
19089	//   "BPS_5G"
19090	Bandwidth string `json:"bandwidth,omitempty"`
19091
19092	// CandidateSubnets: Up to 16 candidate prefixes that can be used to
19093	// restrict the allocation of cloudRouterIpAddress and
19094	// customerRouterIpAddress for this attachment. All prefixes must be
19095	// within link-local address space (169.254.0.0/16) and must be /29 or
19096	// shorter (/28, /27, etc). Google will attempt to select an unused /29
19097	// from the supplied candidate prefix(es). The request will fail if all
19098	// possible /29s are in use on Google's edge. If not supplied, Google
19099	// will randomly select an unused /29 from all of link-local space.
19100	CandidateSubnets []string `json:"candidateSubnets,omitempty"`
19101
19102	// CloudRouterIpAddress: [Output Only] IPv4 address + prefix length to
19103	// be configured on Cloud Router Interface for this interconnect
19104	// attachment.
19105	CloudRouterIpAddress string `json:"cloudRouterIpAddress,omitempty"`
19106
19107	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
19108	// format.
19109	CreationTimestamp string `json:"creationTimestamp,omitempty"`
19110
19111	// CustomerRouterIpAddress: [Output Only] IPv4 address + prefix length
19112	// to be configured on the customer router subinterface for this
19113	// interconnect attachment.
19114	CustomerRouterIpAddress string `json:"customerRouterIpAddress,omitempty"`
19115
19116	// Description: An optional description of this resource.
19117	Description string `json:"description,omitempty"`
19118
19119	// EdgeAvailabilityDomain: Desired availability domain for the
19120	// attachment. Only available for type PARTNER, at creation time, and
19121	// can take one of the following values:
19122	// - AVAILABILITY_DOMAIN_ANY
19123	// - AVAILABILITY_DOMAIN_1
19124	// - AVAILABILITY_DOMAIN_2 For improved reliability, customers should
19125	// configure a pair of attachments, one per availability domain. The
19126	// selected availability domain will be provided to the Partner via the
19127	// pairing key, so that the provisioned circuit will lie in the
19128	// specified domain. If not specified, the value will default to
19129	// AVAILABILITY_DOMAIN_ANY.
19130	//
19131	// Possible values:
19132	//   "AVAILABILITY_DOMAIN_1"
19133	//   "AVAILABILITY_DOMAIN_2"
19134	//   "AVAILABILITY_DOMAIN_ANY"
19135	EdgeAvailabilityDomain string `json:"edgeAvailabilityDomain,omitempty"`
19136
19137	// GoogleReferenceId: [Output Only] Google reference ID, to be used when
19138	// raising support tickets with Google or otherwise to debug backend
19139	// connectivity issues. [Deprecated] This field is not used.
19140	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
19141
19142	// Id: [Output Only] The unique identifier for the resource. This
19143	// identifier is defined by the server.
19144	Id uint64 `json:"id,omitempty,string"`
19145
19146	// Interconnect: URL of the underlying Interconnect object that this
19147	// attachment's traffic will traverse through.
19148	Interconnect string `json:"interconnect,omitempty"`
19149
19150	// Kind: [Output Only] Type of the resource. Always
19151	// compute#interconnectAttachment for interconnect attachments.
19152	Kind string `json:"kind,omitempty"`
19153
19154	// LabelFingerprint: A fingerprint for the labels being applied to this
19155	// InterconnectAttachment, which is essentially a hash of the labels set
19156	// used for optimistic locking. The fingerprint is initially generated
19157	// by Compute Engine and changes after every request to modify or update
19158	// labels. You must always provide an up-to-date fingerprint hash in
19159	// order to update or change labels, otherwise the request will fail
19160	// with error 412 conditionNotMet.
19161	//
19162	// To see the latest fingerprint, make a get() request to retrieve an
19163	// InterconnectAttachment.
19164	LabelFingerprint string `json:"labelFingerprint,omitempty"`
19165
19166	// Labels: Labels to apply to this InterconnectAttachment resource.
19167	// These can be later modified by the setLabels method. Each label
19168	// key/value must comply with RFC1035. Label values may be empty.
19169	Labels map[string]string `json:"labels,omitempty"`
19170
19171	// Mtu: Maximum Transmission Unit (MTU), in bytes, of packets passing
19172	// through this interconnect attachment. Only 1440 and 1500 are allowed.
19173	// If not specified, the value will default to 1440.
19174	Mtu int64 `json:"mtu,omitempty"`
19175
19176	// Name: Name of the resource. Provided by the client when the resource
19177	// is created. The name must be 1-63 characters long, and comply with
19178	// RFC1035. Specifically, the name must be 1-63 characters long and
19179	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
19180	// the first character must be a lowercase letter, and all following
19181	// characters must be a dash, lowercase letter, or digit, except the
19182	// last character, which cannot be a dash.
19183	Name string `json:"name,omitempty"`
19184
19185	// OperationalStatus: [Output Only] The current status of whether or not
19186	// this interconnect attachment is functional, which can take one of the
19187	// following values:
19188	// - OS_ACTIVE: The attachment has been turned up and is ready to use.
19189	//
19190	// - OS_UNPROVISIONED: The attachment is not ready to use yet, because
19191	// turnup is not complete.
19192	//
19193	// Possible values:
19194	//   "OS_ACTIVE"
19195	//   "OS_UNPROVISIONED"
19196	OperationalStatus string `json:"operationalStatus,omitempty"`
19197
19198	// PairingKey: [Output only for type PARTNER. Input only for
19199	// PARTNER_PROVIDER. Not present for DEDICATED]. The opaque identifier
19200	// of an PARTNER attachment used to initiate provisioning with a
19201	// selected partner. Of the form "XXXXX/region/domain"
19202	PairingKey string `json:"pairingKey,omitempty"`
19203
19204	// PartnerAsn: Optional BGP ASN for the router supplied by a Layer 3
19205	// Partner if they configured BGP on behalf of the customer. Output only
19206	// for PARTNER type, input only for PARTNER_PROVIDER, not available for
19207	// DEDICATED.
19208	PartnerAsn int64 `json:"partnerAsn,omitempty,string"`
19209
19210	// PartnerMetadata: Informational metadata about Partner attachments
19211	// from Partners to display to customers. Output only for for PARTNER
19212	// type, mutable for PARTNER_PROVIDER, not available for DEDICATED.
19213	PartnerMetadata *InterconnectAttachmentPartnerMetadata `json:"partnerMetadata,omitempty"`
19214
19215	// PrivateInterconnectInfo: [Output Only] Information specific to an
19216	// InterconnectAttachment. This property is populated if the
19217	// interconnect that this is attached to is of type DEDICATED.
19218	PrivateInterconnectInfo *InterconnectAttachmentPrivateInfo `json:"privateInterconnectInfo,omitempty"`
19219
19220	// Region: [Output Only] URL of the region where the regional
19221	// interconnect attachment resides. You must specify this field as part
19222	// of the HTTP request URL. It is not settable as a field in the request
19223	// body.
19224	Region string `json:"region,omitempty"`
19225
19226	// Router: URL of the Cloud Router to be used for dynamic routing. This
19227	// router must be in the same region as this InterconnectAttachment. The
19228	// InterconnectAttachment will automatically connect the Interconnect to
19229	// the network & region within which the Cloud Router is configured.
19230	Router string `json:"router,omitempty"`
19231
19232	// SelfLink: [Output Only] Server-defined URL for the resource.
19233	SelfLink string `json:"selfLink,omitempty"`
19234
19235	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
19236	// with the resource id.
19237	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
19238
19239	// State: [Output Only] The current state of this attachment's
19240	// functionality. Enum values ACTIVE and UNPROVISIONED are shared by
19241	// DEDICATED/PRIVATE, PARTNER, and PARTNER_PROVIDER interconnect
19242	// attachments, while enum values PENDING_PARTNER,
19243	// PARTNER_REQUEST_RECEIVED, and PENDING_CUSTOMER are used for only
19244	// PARTNER and PARTNER_PROVIDER interconnect attachments. This state can
19245	// take one of the following values:
19246	// - ACTIVE: The attachment has been turned up and is ready to use.
19247	// - UNPROVISIONED: The attachment is not ready to use yet, because
19248	// turnup is not complete.
19249	// - PENDING_PARTNER: A newly-created PARTNER attachment that has not
19250	// yet been configured on the Partner side.
19251	// - PARTNER_REQUEST_RECEIVED: A PARTNER attachment is in the process of
19252	// provisioning after a PARTNER_PROVIDER attachment was created that
19253	// references it.
19254	// - PENDING_CUSTOMER: A PARTNER or PARTNER_PROVIDER attachment that is
19255	// waiting for a customer to activate it.
19256	// - DEFUNCT: The attachment was deleted externally and is no longer
19257	// functional. This could be because the associated Interconnect was
19258	// removed, or because the other side of a Partner attachment was
19259	// deleted.
19260	//
19261	// Possible values:
19262	//   "ACTIVE"
19263	//   "DEFUNCT"
19264	//   "PARTNER_REQUEST_RECEIVED"
19265	//   "PENDING_CUSTOMER"
19266	//   "PENDING_PARTNER"
19267	//   "STATE_UNSPECIFIED"
19268	//   "UNPROVISIONED"
19269	State string `json:"state,omitempty"`
19270
19271	// Type: The type of interconnect attachment this is, which can take one
19272	// of the following values:
19273	// - DEDICATED: an attachment to a Dedicated Interconnect.
19274	// - PARTNER: an attachment to a Partner Interconnect, created by the
19275	// customer.
19276	// - PARTNER_PROVIDER: an attachment to a Partner Interconnect, created
19277	// by the partner.
19278	//
19279	// Possible values:
19280	//   "DEDICATED"
19281	//   "PARTNER"
19282	//   "PARTNER_PROVIDER"
19283	Type string `json:"type,omitempty"`
19284
19285	// VlanTag8021q: The IEEE 802.1Q VLAN tag for this attachment, in the
19286	// range 2-4094. Only specified at creation time.
19287	VlanTag8021q int64 `json:"vlanTag8021q,omitempty"`
19288
19289	// ServerResponse contains the HTTP response code and headers from the
19290	// server.
19291	googleapi.ServerResponse `json:"-"`
19292
19293	// ForceSendFields is a list of field names (e.g. "AdminEnabled") to
19294	// unconditionally include in API requests. By default, fields with
19295	// empty values are omitted from API requests. However, any non-pointer,
19296	// non-interface field appearing in ForceSendFields will be sent to the
19297	// server regardless of whether the field is empty or not. This may be
19298	// used to include empty fields in Patch requests.
19299	ForceSendFields []string `json:"-"`
19300
19301	// NullFields is a list of field names (e.g. "AdminEnabled") to include
19302	// in API requests with the JSON null value. By default, fields with
19303	// empty values are omitted from API requests. However, any field with
19304	// an empty value appearing in NullFields will be sent to the server as
19305	// null. It is an error if a field in this list has a non-empty value.
19306	// This may be used to include null fields in Patch requests.
19307	NullFields []string `json:"-"`
19308}
19309
19310func (s *InterconnectAttachment) MarshalJSON() ([]byte, error) {
19311	type NoMethod InterconnectAttachment
19312	raw := NoMethod(*s)
19313	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19314}
19315
19316type InterconnectAttachmentAggregatedList struct {
19317	// Id: [Output Only] Unique identifier for the resource; defined by the
19318	// server.
19319	Id string `json:"id,omitempty"`
19320
19321	// Items: A list of InterconnectAttachmentsScopedList resources.
19322	Items map[string]InterconnectAttachmentsScopedList `json:"items,omitempty"`
19323
19324	// Kind: [Output Only] Type of resource. Always
19325	// compute#interconnectAttachmentAggregatedList for aggregated lists of
19326	// interconnect attachments.
19327	Kind string `json:"kind,omitempty"`
19328
19329	// NextPageToken: [Output Only] This token allows you to get the next
19330	// page of results for list requests. If the number of results is larger
19331	// than maxResults, use the nextPageToken as a value for the query
19332	// parameter pageToken in the next list request. Subsequent list
19333	// requests will have their own nextPageToken to continue paging through
19334	// the results.
19335	NextPageToken string `json:"nextPageToken,omitempty"`
19336
19337	// SelfLink: [Output Only] Server-defined URL for this resource.
19338	SelfLink string `json:"selfLink,omitempty"`
19339
19340	// Warning: [Output Only] Informational warning message.
19341	Warning *InterconnectAttachmentAggregatedListWarning `json:"warning,omitempty"`
19342
19343	// ServerResponse contains the HTTP response code and headers from the
19344	// server.
19345	googleapi.ServerResponse `json:"-"`
19346
19347	// ForceSendFields is a list of field names (e.g. "Id") to
19348	// unconditionally include in API requests. By default, fields with
19349	// empty values are omitted from API requests. However, any non-pointer,
19350	// non-interface field appearing in ForceSendFields will be sent to the
19351	// server regardless of whether the field is empty or not. This may be
19352	// used to include empty fields in Patch requests.
19353	ForceSendFields []string `json:"-"`
19354
19355	// NullFields is a list of field names (e.g. "Id") to include in API
19356	// requests with the JSON null value. By default, fields with empty
19357	// values are omitted from API requests. However, any field with an
19358	// empty value appearing in NullFields will be sent to the server as
19359	// null. It is an error if a field in this list has a non-empty value.
19360	// This may be used to include null fields in Patch requests.
19361	NullFields []string `json:"-"`
19362}
19363
19364func (s *InterconnectAttachmentAggregatedList) MarshalJSON() ([]byte, error) {
19365	type NoMethod InterconnectAttachmentAggregatedList
19366	raw := NoMethod(*s)
19367	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19368}
19369
19370// InterconnectAttachmentAggregatedListWarning: [Output Only]
19371// Informational warning message.
19372type InterconnectAttachmentAggregatedListWarning struct {
19373	// Code: [Output Only] A warning code, if applicable. For example,
19374	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19375	// the response.
19376	//
19377	// Possible values:
19378	//   "CLEANUP_FAILED"
19379	//   "DEPRECATED_RESOURCE_USED"
19380	//   "DEPRECATED_TYPE_USED"
19381	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19382	//   "EXPERIMENTAL_TYPE_USED"
19383	//   "EXTERNAL_API_WARNING"
19384	//   "FIELD_VALUE_OVERRIDEN"
19385	//   "INJECTED_KERNELS_DEPRECATED"
19386	//   "MISSING_TYPE_DEPENDENCY"
19387	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19388	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19389	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19390	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19391	//   "NEXT_HOP_NOT_RUNNING"
19392	//   "NOT_CRITICAL_ERROR"
19393	//   "NO_RESULTS_ON_PAGE"
19394	//   "REQUIRED_TOS_AGREEMENT"
19395	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19396	//   "RESOURCE_NOT_DELETED"
19397	//   "SCHEMA_VALIDATION_IGNORED"
19398	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19399	//   "UNDECLARED_PROPERTIES"
19400	//   "UNREACHABLE"
19401	Code string `json:"code,omitempty"`
19402
19403	// Data: [Output Only] Metadata about this warning in key: value format.
19404	// For example:
19405	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19406	Data []*InterconnectAttachmentAggregatedListWarningData `json:"data,omitempty"`
19407
19408	// Message: [Output Only] A human-readable description of the warning
19409	// code.
19410	Message string `json:"message,omitempty"`
19411
19412	// ForceSendFields is a list of field names (e.g. "Code") to
19413	// unconditionally include in API requests. By default, fields with
19414	// empty values are omitted from API requests. However, any non-pointer,
19415	// non-interface field appearing in ForceSendFields will be sent to the
19416	// server regardless of whether the field is empty or not. This may be
19417	// used to include empty fields in Patch requests.
19418	ForceSendFields []string `json:"-"`
19419
19420	// NullFields is a list of field names (e.g. "Code") to include in API
19421	// requests with the JSON null value. By default, fields with empty
19422	// values are omitted from API requests. However, any field with an
19423	// empty value appearing in NullFields will be sent to the server as
19424	// null. It is an error if a field in this list has a non-empty value.
19425	// This may be used to include null fields in Patch requests.
19426	NullFields []string `json:"-"`
19427}
19428
19429func (s *InterconnectAttachmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
19430	type NoMethod InterconnectAttachmentAggregatedListWarning
19431	raw := NoMethod(*s)
19432	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19433}
19434
19435type InterconnectAttachmentAggregatedListWarningData struct {
19436	// Key: [Output Only] A key that provides more detail on the warning
19437	// being returned. For example, for warnings where there are no results
19438	// in a list request for a particular zone, this key might be scope and
19439	// the key value might be the zone name. Other examples might be a key
19440	// indicating a deprecated resource and a suggested replacement, or a
19441	// warning about invalid network settings (for example, if an instance
19442	// attempts to perform IP forwarding but is not enabled for IP
19443	// forwarding).
19444	Key string `json:"key,omitempty"`
19445
19446	// Value: [Output Only] A warning data value corresponding to the key.
19447	Value string `json:"value,omitempty"`
19448
19449	// ForceSendFields is a list of field names (e.g. "Key") to
19450	// unconditionally include in API requests. By default, fields with
19451	// empty values are omitted from API requests. However, any non-pointer,
19452	// non-interface field appearing in ForceSendFields will be sent to the
19453	// server regardless of whether the field is empty or not. This may be
19454	// used to include empty fields in Patch requests.
19455	ForceSendFields []string `json:"-"`
19456
19457	// NullFields is a list of field names (e.g. "Key") to include in API
19458	// requests with the JSON null value. By default, fields with empty
19459	// values are omitted from API requests. However, any field with an
19460	// empty value appearing in NullFields will be sent to the server as
19461	// null. It is an error if a field in this list has a non-empty value.
19462	// This may be used to include null fields in Patch requests.
19463	NullFields []string `json:"-"`
19464}
19465
19466func (s *InterconnectAttachmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
19467	type NoMethod InterconnectAttachmentAggregatedListWarningData
19468	raw := NoMethod(*s)
19469	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19470}
19471
19472// InterconnectAttachmentList: Response to the list request, and
19473// contains a list of interconnect attachments.
19474type InterconnectAttachmentList struct {
19475	// Id: [Output Only] Unique identifier for the resource; defined by the
19476	// server.
19477	Id string `json:"id,omitempty"`
19478
19479	// Items: A list of InterconnectAttachment resources.
19480	Items []*InterconnectAttachment `json:"items,omitempty"`
19481
19482	// Kind: [Output Only] Type of resource. Always
19483	// compute#interconnectAttachmentList for lists of interconnect
19484	// attachments.
19485	Kind string `json:"kind,omitempty"`
19486
19487	// NextPageToken: [Output Only] This token allows you to get the next
19488	// page of results for list requests. If the number of results is larger
19489	// than maxResults, use the nextPageToken as a value for the query
19490	// parameter pageToken in the next list request. Subsequent list
19491	// requests will have their own nextPageToken to continue paging through
19492	// the results.
19493	NextPageToken string `json:"nextPageToken,omitempty"`
19494
19495	// SelfLink: [Output Only] Server-defined URL for this resource.
19496	SelfLink string `json:"selfLink,omitempty"`
19497
19498	// Warning: [Output Only] Informational warning message.
19499	Warning *InterconnectAttachmentListWarning `json:"warning,omitempty"`
19500
19501	// ServerResponse contains the HTTP response code and headers from the
19502	// server.
19503	googleapi.ServerResponse `json:"-"`
19504
19505	// ForceSendFields is a list of field names (e.g. "Id") to
19506	// unconditionally include in API requests. By default, fields with
19507	// empty values are omitted from API requests. However, any non-pointer,
19508	// non-interface field appearing in ForceSendFields will be sent to the
19509	// server regardless of whether the field is empty or not. This may be
19510	// used to include empty fields in Patch requests.
19511	ForceSendFields []string `json:"-"`
19512
19513	// NullFields is a list of field names (e.g. "Id") to include in API
19514	// requests with the JSON null value. By default, fields with empty
19515	// values are omitted from API requests. However, any field with an
19516	// empty value appearing in NullFields will be sent to the server as
19517	// null. It is an error if a field in this list has a non-empty value.
19518	// This may be used to include null fields in Patch requests.
19519	NullFields []string `json:"-"`
19520}
19521
19522func (s *InterconnectAttachmentList) MarshalJSON() ([]byte, error) {
19523	type NoMethod InterconnectAttachmentList
19524	raw := NoMethod(*s)
19525	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19526}
19527
19528// InterconnectAttachmentListWarning: [Output Only] Informational
19529// warning message.
19530type InterconnectAttachmentListWarning struct {
19531	// Code: [Output Only] A warning code, if applicable. For example,
19532	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19533	// the response.
19534	//
19535	// Possible values:
19536	//   "CLEANUP_FAILED"
19537	//   "DEPRECATED_RESOURCE_USED"
19538	//   "DEPRECATED_TYPE_USED"
19539	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19540	//   "EXPERIMENTAL_TYPE_USED"
19541	//   "EXTERNAL_API_WARNING"
19542	//   "FIELD_VALUE_OVERRIDEN"
19543	//   "INJECTED_KERNELS_DEPRECATED"
19544	//   "MISSING_TYPE_DEPENDENCY"
19545	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19546	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19547	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19548	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19549	//   "NEXT_HOP_NOT_RUNNING"
19550	//   "NOT_CRITICAL_ERROR"
19551	//   "NO_RESULTS_ON_PAGE"
19552	//   "REQUIRED_TOS_AGREEMENT"
19553	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19554	//   "RESOURCE_NOT_DELETED"
19555	//   "SCHEMA_VALIDATION_IGNORED"
19556	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19557	//   "UNDECLARED_PROPERTIES"
19558	//   "UNREACHABLE"
19559	Code string `json:"code,omitempty"`
19560
19561	// Data: [Output Only] Metadata about this warning in key: value format.
19562	// For example:
19563	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19564	Data []*InterconnectAttachmentListWarningData `json:"data,omitempty"`
19565
19566	// Message: [Output Only] A human-readable description of the warning
19567	// code.
19568	Message string `json:"message,omitempty"`
19569
19570	// ForceSendFields is a list of field names (e.g. "Code") to
19571	// unconditionally include in API requests. By default, fields with
19572	// empty values are omitted from API requests. However, any non-pointer,
19573	// non-interface field appearing in ForceSendFields will be sent to the
19574	// server regardless of whether the field is empty or not. This may be
19575	// used to include empty fields in Patch requests.
19576	ForceSendFields []string `json:"-"`
19577
19578	// NullFields is a list of field names (e.g. "Code") to include in API
19579	// requests with the JSON null value. By default, fields with empty
19580	// values are omitted from API requests. However, any field with an
19581	// empty value appearing in NullFields will be sent to the server as
19582	// null. It is an error if a field in this list has a non-empty value.
19583	// This may be used to include null fields in Patch requests.
19584	NullFields []string `json:"-"`
19585}
19586
19587func (s *InterconnectAttachmentListWarning) MarshalJSON() ([]byte, error) {
19588	type NoMethod InterconnectAttachmentListWarning
19589	raw := NoMethod(*s)
19590	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19591}
19592
19593type InterconnectAttachmentListWarningData struct {
19594	// Key: [Output Only] A key that provides more detail on the warning
19595	// being returned. For example, for warnings where there are no results
19596	// in a list request for a particular zone, this key might be scope and
19597	// the key value might be the zone name. Other examples might be a key
19598	// indicating a deprecated resource and a suggested replacement, or a
19599	// warning about invalid network settings (for example, if an instance
19600	// attempts to perform IP forwarding but is not enabled for IP
19601	// forwarding).
19602	Key string `json:"key,omitempty"`
19603
19604	// Value: [Output Only] A warning data value corresponding to the key.
19605	Value string `json:"value,omitempty"`
19606
19607	// ForceSendFields is a list of field names (e.g. "Key") to
19608	// unconditionally include in API requests. By default, fields with
19609	// empty values are omitted from API requests. However, any non-pointer,
19610	// non-interface field appearing in ForceSendFields will be sent to the
19611	// server regardless of whether the field is empty or not. This may be
19612	// used to include empty fields in Patch requests.
19613	ForceSendFields []string `json:"-"`
19614
19615	// NullFields is a list of field names (e.g. "Key") to include in API
19616	// requests with the JSON null value. By default, fields with empty
19617	// values are omitted from API requests. However, any field with an
19618	// empty value appearing in NullFields will be sent to the server as
19619	// null. It is an error if a field in this list has a non-empty value.
19620	// This may be used to include null fields in Patch requests.
19621	NullFields []string `json:"-"`
19622}
19623
19624func (s *InterconnectAttachmentListWarningData) MarshalJSON() ([]byte, error) {
19625	type NoMethod InterconnectAttachmentListWarningData
19626	raw := NoMethod(*s)
19627	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19628}
19629
19630// InterconnectAttachmentPartnerMetadata: Informational metadata about
19631// Partner attachments from Partners to display to customers. These
19632// fields are propagated from PARTNER_PROVIDER attachments to their
19633// corresponding PARTNER attachments.
19634type InterconnectAttachmentPartnerMetadata struct {
19635	// InterconnectName: Plain text name of the Interconnect this attachment
19636	// is connected to, as displayed in the Partner's portal. For instance
19637	// "Chicago 1". This value may be validated to match approved Partner
19638	// values.
19639	InterconnectName string `json:"interconnectName,omitempty"`
19640
19641	// PartnerName: Plain text name of the Partner providing this
19642	// attachment. This value may be validated to match approved Partner
19643	// values.
19644	PartnerName string `json:"partnerName,omitempty"`
19645
19646	// PortalUrl: URL of the Partner's portal for this Attachment. Partners
19647	// may customise this to be a deep link to the specific resource on the
19648	// Partner portal. This value may be validated to match approved Partner
19649	// values.
19650	PortalUrl string `json:"portalUrl,omitempty"`
19651
19652	// ForceSendFields is a list of field names (e.g. "InterconnectName") to
19653	// unconditionally include in API requests. By default, fields with
19654	// empty values are omitted from API requests. However, any non-pointer,
19655	// non-interface field appearing in ForceSendFields will be sent to the
19656	// server regardless of whether the field is empty or not. This may be
19657	// used to include empty fields in Patch requests.
19658	ForceSendFields []string `json:"-"`
19659
19660	// NullFields is a list of field names (e.g. "InterconnectName") to
19661	// include in API requests with the JSON null value. By default, fields
19662	// with empty values are omitted from API requests. However, any field
19663	// with an empty value appearing in NullFields will be sent to the
19664	// server as null. It is an error if a field in this list has a
19665	// non-empty value. This may be used to include null fields in Patch
19666	// requests.
19667	NullFields []string `json:"-"`
19668}
19669
19670func (s *InterconnectAttachmentPartnerMetadata) MarshalJSON() ([]byte, error) {
19671	type NoMethod InterconnectAttachmentPartnerMetadata
19672	raw := NoMethod(*s)
19673	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19674}
19675
19676// InterconnectAttachmentPrivateInfo: Information for an interconnect
19677// attachment when this belongs to an interconnect of type DEDICATED.
19678type InterconnectAttachmentPrivateInfo struct {
19679	// Tag8021q: [Output Only] 802.1q encapsulation tag to be used for
19680	// traffic between Google and the customer, going to and from this
19681	// network and region.
19682	Tag8021q int64 `json:"tag8021q,omitempty"`
19683
19684	// ForceSendFields is a list of field names (e.g. "Tag8021q") to
19685	// unconditionally include in API requests. By default, fields with
19686	// empty values are omitted from API requests. However, any non-pointer,
19687	// non-interface field appearing in ForceSendFields will be sent to the
19688	// server regardless of whether the field is empty or not. This may be
19689	// used to include empty fields in Patch requests.
19690	ForceSendFields []string `json:"-"`
19691
19692	// NullFields is a list of field names (e.g. "Tag8021q") to include in
19693	// API requests with the JSON null value. By default, fields with empty
19694	// values are omitted from API requests. However, any field with an
19695	// empty value appearing in NullFields will be sent to the server as
19696	// null. It is an error if a field in this list has a non-empty value.
19697	// This may be used to include null fields in Patch requests.
19698	NullFields []string `json:"-"`
19699}
19700
19701func (s *InterconnectAttachmentPrivateInfo) MarshalJSON() ([]byte, error) {
19702	type NoMethod InterconnectAttachmentPrivateInfo
19703	raw := NoMethod(*s)
19704	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19705}
19706
19707type InterconnectAttachmentsScopedList struct {
19708	// InterconnectAttachments: A list of interconnect attachments contained
19709	// in this scope.
19710	InterconnectAttachments []*InterconnectAttachment `json:"interconnectAttachments,omitempty"`
19711
19712	// Warning: Informational warning which replaces the list of addresses
19713	// when the list is empty.
19714	Warning *InterconnectAttachmentsScopedListWarning `json:"warning,omitempty"`
19715
19716	// ForceSendFields is a list of field names (e.g.
19717	// "InterconnectAttachments") to unconditionally include in API
19718	// requests. By default, fields with empty values are omitted from API
19719	// requests. However, any non-pointer, non-interface field appearing in
19720	// ForceSendFields will be sent to the server regardless of whether the
19721	// field is empty or not. This may be used to include empty fields in
19722	// Patch requests.
19723	ForceSendFields []string `json:"-"`
19724
19725	// NullFields is a list of field names (e.g. "InterconnectAttachments")
19726	// to include in API requests with the JSON null value. By default,
19727	// fields with empty values are omitted from API requests. However, any
19728	// field with an empty value appearing in NullFields will be sent to the
19729	// server as null. It is an error if a field in this list has a
19730	// non-empty value. This may be used to include null fields in Patch
19731	// requests.
19732	NullFields []string `json:"-"`
19733}
19734
19735func (s *InterconnectAttachmentsScopedList) MarshalJSON() ([]byte, error) {
19736	type NoMethod InterconnectAttachmentsScopedList
19737	raw := NoMethod(*s)
19738	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19739}
19740
19741// InterconnectAttachmentsScopedListWarning: Informational warning which
19742// replaces the list of addresses when the list is empty.
19743type InterconnectAttachmentsScopedListWarning struct {
19744	// Code: [Output Only] A warning code, if applicable. For example,
19745	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19746	// the response.
19747	//
19748	// Possible values:
19749	//   "CLEANUP_FAILED"
19750	//   "DEPRECATED_RESOURCE_USED"
19751	//   "DEPRECATED_TYPE_USED"
19752	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19753	//   "EXPERIMENTAL_TYPE_USED"
19754	//   "EXTERNAL_API_WARNING"
19755	//   "FIELD_VALUE_OVERRIDEN"
19756	//   "INJECTED_KERNELS_DEPRECATED"
19757	//   "MISSING_TYPE_DEPENDENCY"
19758	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19759	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19760	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19761	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19762	//   "NEXT_HOP_NOT_RUNNING"
19763	//   "NOT_CRITICAL_ERROR"
19764	//   "NO_RESULTS_ON_PAGE"
19765	//   "REQUIRED_TOS_AGREEMENT"
19766	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19767	//   "RESOURCE_NOT_DELETED"
19768	//   "SCHEMA_VALIDATION_IGNORED"
19769	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19770	//   "UNDECLARED_PROPERTIES"
19771	//   "UNREACHABLE"
19772	Code string `json:"code,omitempty"`
19773
19774	// Data: [Output Only] Metadata about this warning in key: value format.
19775	// For example:
19776	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19777	Data []*InterconnectAttachmentsScopedListWarningData `json:"data,omitempty"`
19778
19779	// Message: [Output Only] A human-readable description of the warning
19780	// code.
19781	Message string `json:"message,omitempty"`
19782
19783	// ForceSendFields is a list of field names (e.g. "Code") to
19784	// unconditionally include in API requests. By default, fields with
19785	// empty values are omitted from API requests. However, any non-pointer,
19786	// non-interface field appearing in ForceSendFields will be sent to the
19787	// server regardless of whether the field is empty or not. This may be
19788	// used to include empty fields in Patch requests.
19789	ForceSendFields []string `json:"-"`
19790
19791	// NullFields is a list of field names (e.g. "Code") to include in API
19792	// requests with the JSON null value. By default, fields with empty
19793	// values are omitted from API requests. However, any field with an
19794	// empty value appearing in NullFields will be sent to the server as
19795	// null. It is an error if a field in this list has a non-empty value.
19796	// This may be used to include null fields in Patch requests.
19797	NullFields []string `json:"-"`
19798}
19799
19800func (s *InterconnectAttachmentsScopedListWarning) MarshalJSON() ([]byte, error) {
19801	type NoMethod InterconnectAttachmentsScopedListWarning
19802	raw := NoMethod(*s)
19803	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19804}
19805
19806type InterconnectAttachmentsScopedListWarningData struct {
19807	// Key: [Output Only] A key that provides more detail on the warning
19808	// being returned. For example, for warnings where there are no results
19809	// in a list request for a particular zone, this key might be scope and
19810	// the key value might be the zone name. Other examples might be a key
19811	// indicating a deprecated resource and a suggested replacement, or a
19812	// warning about invalid network settings (for example, if an instance
19813	// attempts to perform IP forwarding but is not enabled for IP
19814	// forwarding).
19815	Key string `json:"key,omitempty"`
19816
19817	// Value: [Output Only] A warning data value corresponding to the key.
19818	Value string `json:"value,omitempty"`
19819
19820	// ForceSendFields is a list of field names (e.g. "Key") to
19821	// unconditionally include in API requests. By default, fields with
19822	// empty values are omitted from API requests. However, any non-pointer,
19823	// non-interface field appearing in ForceSendFields will be sent to the
19824	// server regardless of whether the field is empty or not. This may be
19825	// used to include empty fields in Patch requests.
19826	ForceSendFields []string `json:"-"`
19827
19828	// NullFields is a list of field names (e.g. "Key") to include in API
19829	// requests with the JSON null value. By default, fields with empty
19830	// values are omitted from API requests. However, any field with an
19831	// empty value appearing in NullFields will be sent to the server as
19832	// null. It is an error if a field in this list has a non-empty value.
19833	// This may be used to include null fields in Patch requests.
19834	NullFields []string `json:"-"`
19835}
19836
19837func (s *InterconnectAttachmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
19838	type NoMethod InterconnectAttachmentsScopedListWarningData
19839	raw := NoMethod(*s)
19840	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19841}
19842
19843// InterconnectCircuitInfo: Describes a single physical circuit between
19844// the Customer and Google. CircuitInfo objects are created by Google,
19845// so all fields are output only. Next id: 4
19846type InterconnectCircuitInfo struct {
19847	// CustomerDemarcId: Customer-side demarc ID for this circuit.
19848	CustomerDemarcId string `json:"customerDemarcId,omitempty"`
19849
19850	// GoogleCircuitId: Google-assigned unique ID for this circuit. Assigned
19851	// at circuit turn-up.
19852	GoogleCircuitId string `json:"googleCircuitId,omitempty"`
19853
19854	// GoogleDemarcId: Google-side demarc ID for this circuit. Assigned at
19855	// circuit turn-up and provided by Google to the customer in the LOA.
19856	GoogleDemarcId string `json:"googleDemarcId,omitempty"`
19857
19858	// ForceSendFields is a list of field names (e.g. "CustomerDemarcId") to
19859	// unconditionally include in API requests. By default, fields with
19860	// empty values are omitted from API requests. However, any non-pointer,
19861	// non-interface field appearing in ForceSendFields will be sent to the
19862	// server regardless of whether the field is empty or not. This may be
19863	// used to include empty fields in Patch requests.
19864	ForceSendFields []string `json:"-"`
19865
19866	// NullFields is a list of field names (e.g. "CustomerDemarcId") to
19867	// include in API requests with the JSON null value. By default, fields
19868	// with empty values are omitted from API requests. However, any field
19869	// with an empty value appearing in NullFields will be sent to the
19870	// server as null. It is an error if a field in this list has a
19871	// non-empty value. This may be used to include null fields in Patch
19872	// requests.
19873	NullFields []string `json:"-"`
19874}
19875
19876func (s *InterconnectCircuitInfo) MarshalJSON() ([]byte, error) {
19877	type NoMethod InterconnectCircuitInfo
19878	raw := NoMethod(*s)
19879	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19880}
19881
19882// InterconnectDiagnostics: Diagnostics information about interconnect,
19883// contains detailed and current technical information about Google's
19884// side of the connection.
19885type InterconnectDiagnostics struct {
19886	// ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects,
19887	// describing individual neighbors currently seen by the Google router
19888	// in the ARP cache for the Interconnect. This will be empty when the
19889	// Interconnect is not bundled.
19890	ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"`
19891
19892	// Links: A list of InterconnectDiagnostics.LinkStatus objects,
19893	// describing the status for each link on the Interconnect.
19894	Links []*InterconnectDiagnosticsLinkStatus `json:"links,omitempty"`
19895
19896	// MacAddress: The MAC address of the Interconnect's bundle interface.
19897	MacAddress string `json:"macAddress,omitempty"`
19898
19899	// ForceSendFields is a list of field names (e.g. "ArpCaches") to
19900	// unconditionally include in API requests. By default, fields with
19901	// empty values are omitted from API requests. However, any non-pointer,
19902	// non-interface field appearing in ForceSendFields will be sent to the
19903	// server regardless of whether the field is empty or not. This may be
19904	// used to include empty fields in Patch requests.
19905	ForceSendFields []string `json:"-"`
19906
19907	// NullFields is a list of field names (e.g. "ArpCaches") to include in
19908	// API requests with the JSON null value. By default, fields with empty
19909	// values are omitted from API requests. However, any field with an
19910	// empty value appearing in NullFields will be sent to the server as
19911	// null. It is an error if a field in this list has a non-empty value.
19912	// This may be used to include null fields in Patch requests.
19913	NullFields []string `json:"-"`
19914}
19915
19916func (s *InterconnectDiagnostics) MarshalJSON() ([]byte, error) {
19917	type NoMethod InterconnectDiagnostics
19918	raw := NoMethod(*s)
19919	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19920}
19921
19922// InterconnectDiagnosticsARPEntry: Describing the ARP neighbor entries
19923// seen on this link
19924type InterconnectDiagnosticsARPEntry struct {
19925	// IpAddress: The IP address of this ARP neighbor.
19926	IpAddress string `json:"ipAddress,omitempty"`
19927
19928	// MacAddress: The MAC address of this ARP neighbor.
19929	MacAddress string `json:"macAddress,omitempty"`
19930
19931	// ForceSendFields is a list of field names (e.g. "IpAddress") to
19932	// unconditionally include in API requests. By default, fields with
19933	// empty values are omitted from API requests. However, any non-pointer,
19934	// non-interface field appearing in ForceSendFields will be sent to the
19935	// server regardless of whether the field is empty or not. This may be
19936	// used to include empty fields in Patch requests.
19937	ForceSendFields []string `json:"-"`
19938
19939	// NullFields is a list of field names (e.g. "IpAddress") to include in
19940	// API requests with the JSON null value. By default, fields with empty
19941	// values are omitted from API requests. However, any field with an
19942	// empty value appearing in NullFields will be sent to the server as
19943	// null. It is an error if a field in this list has a non-empty value.
19944	// This may be used to include null fields in Patch requests.
19945	NullFields []string `json:"-"`
19946}
19947
19948func (s *InterconnectDiagnosticsARPEntry) MarshalJSON() ([]byte, error) {
19949	type NoMethod InterconnectDiagnosticsARPEntry
19950	raw := NoMethod(*s)
19951	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19952}
19953
19954type InterconnectDiagnosticsLinkLACPStatus struct {
19955	// GoogleSystemId: System ID of the port on Google's side of the LACP
19956	// exchange.
19957	GoogleSystemId string `json:"googleSystemId,omitempty"`
19958
19959	// NeighborSystemId: System ID of the port on the neighbor's side of the
19960	// LACP exchange.
19961	NeighborSystemId string `json:"neighborSystemId,omitempty"`
19962
19963	// State: The state of a LACP link, which can take one of the following
19964	// values:
19965	// - ACTIVE: The link is configured and active within the bundle.
19966	// - DETACHED: The link is not configured within the bundle. This means
19967	// that the rest of the object should be empty.
19968	//
19969	// Possible values:
19970	//   "ACTIVE"
19971	//   "DETACHED"
19972	State string `json:"state,omitempty"`
19973
19974	// ForceSendFields is a list of field names (e.g. "GoogleSystemId") to
19975	// unconditionally include in API requests. By default, fields with
19976	// empty values are omitted from API requests. However, any non-pointer,
19977	// non-interface field appearing in ForceSendFields will be sent to the
19978	// server regardless of whether the field is empty or not. This may be
19979	// used to include empty fields in Patch requests.
19980	ForceSendFields []string `json:"-"`
19981
19982	// NullFields is a list of field names (e.g. "GoogleSystemId") to
19983	// include in API requests with the JSON null value. By default, fields
19984	// with empty values are omitted from API requests. However, any field
19985	// with an empty value appearing in NullFields will be sent to the
19986	// server as null. It is an error if a field in this list has a
19987	// non-empty value. This may be used to include null fields in Patch
19988	// requests.
19989	NullFields []string `json:"-"`
19990}
19991
19992func (s *InterconnectDiagnosticsLinkLACPStatus) MarshalJSON() ([]byte, error) {
19993	type NoMethod InterconnectDiagnosticsLinkLACPStatus
19994	raw := NoMethod(*s)
19995	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19996}
19997
19998type InterconnectDiagnosticsLinkOpticalPower struct {
19999	// State: The status of the current value when compared to the warning
20000	// and alarm levels for the receiving or transmitting transceiver.
20001	// Possible states include:
20002	// - OK: The value has not crossed a warning threshold.
20003	// - LOW_WARNING: The value has crossed below the low warning threshold.
20004	//
20005	// - HIGH_WARNING: The value has crossed above the high warning
20006	// threshold.
20007	// - LOW_ALARM: The value has crossed below the low alarm threshold.
20008	// - HIGH_ALARM: The value has crossed above the high alarm threshold.
20009	//
20010	// Possible values:
20011	//   "HIGH_ALARM"
20012	//   "HIGH_WARNING"
20013	//   "LOW_ALARM"
20014	//   "LOW_WARNING"
20015	//   "OK"
20016	State string `json:"state,omitempty"`
20017
20018	// Value: Value of the current receiving or transmitting optical power,
20019	// read in dBm. Take a known good optical value, give it a 10% margin
20020	// and trigger warnings relative to that value. In general, a -7dBm
20021	// warning and a -11dBm alarm are good optical value estimates for most
20022	// links.
20023	Value float64 `json:"value,omitempty"`
20024
20025	// ForceSendFields is a list of field names (e.g. "State") to
20026	// unconditionally include in API requests. By default, fields with
20027	// empty values are omitted from API requests. However, any non-pointer,
20028	// non-interface field appearing in ForceSendFields will be sent to the
20029	// server regardless of whether the field is empty or not. This may be
20030	// used to include empty fields in Patch requests.
20031	ForceSendFields []string `json:"-"`
20032
20033	// NullFields is a list of field names (e.g. "State") to include in API
20034	// requests with the JSON null value. By default, fields with empty
20035	// values are omitted from API requests. However, any field with an
20036	// empty value appearing in NullFields will be sent to the server as
20037	// null. It is an error if a field in this list has a non-empty value.
20038	// This may be used to include null fields in Patch requests.
20039	NullFields []string `json:"-"`
20040}
20041
20042func (s *InterconnectDiagnosticsLinkOpticalPower) MarshalJSON() ([]byte, error) {
20043	type NoMethod InterconnectDiagnosticsLinkOpticalPower
20044	raw := NoMethod(*s)
20045	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20046}
20047
20048func (s *InterconnectDiagnosticsLinkOpticalPower) UnmarshalJSON(data []byte) error {
20049	type NoMethod InterconnectDiagnosticsLinkOpticalPower
20050	var s1 struct {
20051		Value gensupport.JSONFloat64 `json:"value"`
20052		*NoMethod
20053	}
20054	s1.NoMethod = (*NoMethod)(s)
20055	if err := json.Unmarshal(data, &s1); err != nil {
20056		return err
20057	}
20058	s.Value = float64(s1.Value)
20059	return nil
20060}
20061
20062type InterconnectDiagnosticsLinkStatus struct {
20063	// ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects,
20064	// describing the ARP neighbor entries seen on this link. This will be
20065	// empty if the link is bundled
20066	ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"`
20067
20068	// CircuitId: The unique ID for this link assigned during turn up by
20069	// Google.
20070	CircuitId string `json:"circuitId,omitempty"`
20071
20072	// GoogleDemarc: The Demarc address assigned by Google and provided in
20073	// the LoA.
20074	GoogleDemarc string `json:"googleDemarc,omitempty"`
20075
20076	LacpStatus *InterconnectDiagnosticsLinkLACPStatus `json:"lacpStatus,omitempty"`
20077
20078	// ReceivingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower
20079	// object, describing the current value and status of the received light
20080	// level.
20081	ReceivingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"receivingOpticalPower,omitempty"`
20082
20083	// TransmittingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower
20084	// object, describing the current value and status of the transmitted
20085	// light level.
20086	TransmittingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"transmittingOpticalPower,omitempty"`
20087
20088	// ForceSendFields is a list of field names (e.g. "ArpCaches") to
20089	// unconditionally include in API requests. By default, fields with
20090	// empty values are omitted from API requests. However, any non-pointer,
20091	// non-interface field appearing in ForceSendFields will be sent to the
20092	// server regardless of whether the field is empty or not. This may be
20093	// used to include empty fields in Patch requests.
20094	ForceSendFields []string `json:"-"`
20095
20096	// NullFields is a list of field names (e.g. "ArpCaches") to include in
20097	// API requests with the JSON null value. By default, fields with empty
20098	// values are omitted from API requests. However, any field with an
20099	// empty value appearing in NullFields will be sent to the server as
20100	// null. It is an error if a field in this list has a non-empty value.
20101	// This may be used to include null fields in Patch requests.
20102	NullFields []string `json:"-"`
20103}
20104
20105func (s *InterconnectDiagnosticsLinkStatus) MarshalJSON() ([]byte, error) {
20106	type NoMethod InterconnectDiagnosticsLinkStatus
20107	raw := NoMethod(*s)
20108	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20109}
20110
20111// InterconnectList: Response to the list request, and contains a list
20112// of interconnects.
20113type InterconnectList struct {
20114	// Id: [Output Only] Unique identifier for the resource; defined by the
20115	// server.
20116	Id string `json:"id,omitempty"`
20117
20118	// Items: A list of Interconnect resources.
20119	Items []*Interconnect `json:"items,omitempty"`
20120
20121	// Kind: [Output Only] Type of resource. Always compute#interconnectList
20122	// for lists of interconnects.
20123	Kind string `json:"kind,omitempty"`
20124
20125	// NextPageToken: [Output Only] This token allows you to get the next
20126	// page of results for list requests. If the number of results is larger
20127	// than maxResults, use the nextPageToken as a value for the query
20128	// parameter pageToken in the next list request. Subsequent list
20129	// requests will have their own nextPageToken to continue paging through
20130	// the results.
20131	NextPageToken string `json:"nextPageToken,omitempty"`
20132
20133	// SelfLink: [Output Only] Server-defined URL for this resource.
20134	SelfLink string `json:"selfLink,omitempty"`
20135
20136	// Warning: [Output Only] Informational warning message.
20137	Warning *InterconnectListWarning `json:"warning,omitempty"`
20138
20139	// ServerResponse contains the HTTP response code and headers from the
20140	// server.
20141	googleapi.ServerResponse `json:"-"`
20142
20143	// ForceSendFields is a list of field names (e.g. "Id") to
20144	// unconditionally include in API requests. By default, fields with
20145	// empty values are omitted from API requests. However, any non-pointer,
20146	// non-interface field appearing in ForceSendFields will be sent to the
20147	// server regardless of whether the field is empty or not. This may be
20148	// used to include empty fields in Patch requests.
20149	ForceSendFields []string `json:"-"`
20150
20151	// NullFields is a list of field names (e.g. "Id") to include in API
20152	// requests with the JSON null value. By default, fields with empty
20153	// values are omitted from API requests. However, any field with an
20154	// empty value appearing in NullFields will be sent to the server as
20155	// null. It is an error if a field in this list has a non-empty value.
20156	// This may be used to include null fields in Patch requests.
20157	NullFields []string `json:"-"`
20158}
20159
20160func (s *InterconnectList) MarshalJSON() ([]byte, error) {
20161	type NoMethod InterconnectList
20162	raw := NoMethod(*s)
20163	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20164}
20165
20166// InterconnectListWarning: [Output Only] Informational warning message.
20167type InterconnectListWarning struct {
20168	// Code: [Output Only] A warning code, if applicable. For example,
20169	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20170	// the response.
20171	//
20172	// Possible values:
20173	//   "CLEANUP_FAILED"
20174	//   "DEPRECATED_RESOURCE_USED"
20175	//   "DEPRECATED_TYPE_USED"
20176	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20177	//   "EXPERIMENTAL_TYPE_USED"
20178	//   "EXTERNAL_API_WARNING"
20179	//   "FIELD_VALUE_OVERRIDEN"
20180	//   "INJECTED_KERNELS_DEPRECATED"
20181	//   "MISSING_TYPE_DEPENDENCY"
20182	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20183	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20184	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20185	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20186	//   "NEXT_HOP_NOT_RUNNING"
20187	//   "NOT_CRITICAL_ERROR"
20188	//   "NO_RESULTS_ON_PAGE"
20189	//   "REQUIRED_TOS_AGREEMENT"
20190	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20191	//   "RESOURCE_NOT_DELETED"
20192	//   "SCHEMA_VALIDATION_IGNORED"
20193	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20194	//   "UNDECLARED_PROPERTIES"
20195	//   "UNREACHABLE"
20196	Code string `json:"code,omitempty"`
20197
20198	// Data: [Output Only] Metadata about this warning in key: value format.
20199	// For example:
20200	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20201	Data []*InterconnectListWarningData `json:"data,omitempty"`
20202
20203	// Message: [Output Only] A human-readable description of the warning
20204	// code.
20205	Message string `json:"message,omitempty"`
20206
20207	// ForceSendFields is a list of field names (e.g. "Code") to
20208	// unconditionally include in API requests. By default, fields with
20209	// empty values are omitted from API requests. However, any non-pointer,
20210	// non-interface field appearing in ForceSendFields will be sent to the
20211	// server regardless of whether the field is empty or not. This may be
20212	// used to include empty fields in Patch requests.
20213	ForceSendFields []string `json:"-"`
20214
20215	// NullFields is a list of field names (e.g. "Code") to include in API
20216	// requests with the JSON null value. By default, fields with empty
20217	// values are omitted from API requests. However, any field with an
20218	// empty value appearing in NullFields will be sent to the server as
20219	// null. It is an error if a field in this list has a non-empty value.
20220	// This may be used to include null fields in Patch requests.
20221	NullFields []string `json:"-"`
20222}
20223
20224func (s *InterconnectListWarning) MarshalJSON() ([]byte, error) {
20225	type NoMethod InterconnectListWarning
20226	raw := NoMethod(*s)
20227	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20228}
20229
20230type InterconnectListWarningData struct {
20231	// Key: [Output Only] A key that provides more detail on the warning
20232	// being returned. For example, for warnings where there are no results
20233	// in a list request for a particular zone, this key might be scope and
20234	// the key value might be the zone name. Other examples might be a key
20235	// indicating a deprecated resource and a suggested replacement, or a
20236	// warning about invalid network settings (for example, if an instance
20237	// attempts to perform IP forwarding but is not enabled for IP
20238	// forwarding).
20239	Key string `json:"key,omitempty"`
20240
20241	// Value: [Output Only] A warning data value corresponding to the key.
20242	Value string `json:"value,omitempty"`
20243
20244	// ForceSendFields is a list of field names (e.g. "Key") to
20245	// unconditionally include in API requests. By default, fields with
20246	// empty values are omitted from API requests. However, any non-pointer,
20247	// non-interface field appearing in ForceSendFields will be sent to the
20248	// server regardless of whether the field is empty or not. This may be
20249	// used to include empty fields in Patch requests.
20250	ForceSendFields []string `json:"-"`
20251
20252	// NullFields is a list of field names (e.g. "Key") to include in API
20253	// requests with the JSON null value. By default, fields with empty
20254	// values are omitted from API requests. However, any field with an
20255	// empty value appearing in NullFields will be sent to the server as
20256	// null. It is an error if a field in this list has a non-empty value.
20257	// This may be used to include null fields in Patch requests.
20258	NullFields []string `json:"-"`
20259}
20260
20261func (s *InterconnectListWarningData) MarshalJSON() ([]byte, error) {
20262	type NoMethod InterconnectListWarningData
20263	raw := NoMethod(*s)
20264	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20265}
20266
20267// InterconnectLocation: Represents an Interconnect Attachment (VLAN)
20268// Location resource.
20269//
20270// You can use this resource to find location details about an
20271// Interconnect attachment (VLAN). For more information about
20272// interconnect attachments, read  Creating VLAN Attachments.
20273type InterconnectLocation struct {
20274	// Address: [Output Only] The postal address of the Point of Presence,
20275	// each line in the address is separated by a newline character.
20276	Address string `json:"address,omitempty"`
20277
20278	// AvailabilityZone: [Output Only] Availability zone for this
20279	// InterconnectLocation. Within a metropolitan area (metro), maintenance
20280	// will not be simultaneously scheduled in more than one availability
20281	// zone. Example: "zone1" or "zone2".
20282	AvailabilityZone string `json:"availabilityZone,omitempty"`
20283
20284	// City: [Output Only] Metropolitan area designator that indicates which
20285	// city an interconnect is located. For example: "Chicago, IL",
20286	// "Amsterdam, Netherlands".
20287	City string `json:"city,omitempty"`
20288
20289	// Continent: [Output Only] Continent for this location, which can take
20290	// one of the following values:
20291	// - AFRICA
20292	// - ASIA_PAC
20293	// - EUROPE
20294	// - NORTH_AMERICA
20295	// - SOUTH_AMERICA
20296	//
20297	// Possible values:
20298	//   "AFRICA"
20299	//   "ASIA_PAC"
20300	//   "C_AFRICA"
20301	//   "C_ASIA_PAC"
20302	//   "C_EUROPE"
20303	//   "C_NORTH_AMERICA"
20304	//   "C_SOUTH_AMERICA"
20305	//   "EUROPE"
20306	//   "NORTH_AMERICA"
20307	//   "SOUTH_AMERICA"
20308	Continent string `json:"continent,omitempty"`
20309
20310	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
20311	// format.
20312	CreationTimestamp string `json:"creationTimestamp,omitempty"`
20313
20314	// Description: [Output Only] An optional description of the resource.
20315	Description string `json:"description,omitempty"`
20316
20317	// FacilityProvider: [Output Only] The name of the provider for this
20318	// facility (e.g., EQUINIX).
20319	FacilityProvider string `json:"facilityProvider,omitempty"`
20320
20321	// FacilityProviderFacilityId: [Output Only] A provider-assigned
20322	// Identifier for this facility (e.g., Ashburn-DC1).
20323	FacilityProviderFacilityId string `json:"facilityProviderFacilityId,omitempty"`
20324
20325	// Id: [Output Only] The unique identifier for the resource. This
20326	// identifier is defined by the server.
20327	Id uint64 `json:"id,omitempty,string"`
20328
20329	// Kind: [Output Only] Type of the resource. Always
20330	// compute#interconnectLocation for interconnect locations.
20331	Kind string `json:"kind,omitempty"`
20332
20333	// Name: [Output Only] Name of the resource.
20334	Name string `json:"name,omitempty"`
20335
20336	// PeeringdbFacilityId: [Output Only] The peeringdb identifier for this
20337	// facility (corresponding with a netfac type in peeringdb).
20338	PeeringdbFacilityId string `json:"peeringdbFacilityId,omitempty"`
20339
20340	// RegionInfos: [Output Only] A list of InterconnectLocation.RegionInfo
20341	// objects, that describe parameters pertaining to the relation between
20342	// this InterconnectLocation and various Google Cloud regions.
20343	RegionInfos []*InterconnectLocationRegionInfo `json:"regionInfos,omitempty"`
20344
20345	// SelfLink: [Output Only] Server-defined URL for the resource.
20346	SelfLink string `json:"selfLink,omitempty"`
20347
20348	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
20349	// with the resource id.
20350	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
20351
20352	// Status: [Output Only] The status of this InterconnectLocation, which
20353	// can take one of the following values:
20354	// - CLOSED: The InterconnectLocation is closed and is unavailable for
20355	// provisioning new Interconnects.
20356	// - AVAILABLE: The InterconnectLocation is available for provisioning
20357	// new Interconnects.
20358	//
20359	// Possible values:
20360	//   "AVAILABLE"
20361	//   "CLOSED"
20362	Status string `json:"status,omitempty"`
20363
20364	// ServerResponse contains the HTTP response code and headers from the
20365	// server.
20366	googleapi.ServerResponse `json:"-"`
20367
20368	// ForceSendFields is a list of field names (e.g. "Address") to
20369	// unconditionally include in API requests. By default, fields with
20370	// empty values are omitted from API requests. However, any non-pointer,
20371	// non-interface field appearing in ForceSendFields will be sent to the
20372	// server regardless of whether the field is empty or not. This may be
20373	// used to include empty fields in Patch requests.
20374	ForceSendFields []string `json:"-"`
20375
20376	// NullFields is a list of field names (e.g. "Address") to include in
20377	// API requests with the JSON null value. By default, fields with empty
20378	// values are omitted from API requests. However, any field with an
20379	// empty value appearing in NullFields will be sent to the server as
20380	// null. It is an error if a field in this list has a non-empty value.
20381	// This may be used to include null fields in Patch requests.
20382	NullFields []string `json:"-"`
20383}
20384
20385func (s *InterconnectLocation) MarshalJSON() ([]byte, error) {
20386	type NoMethod InterconnectLocation
20387	raw := NoMethod(*s)
20388	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20389}
20390
20391// InterconnectLocationList: Response to the list request, and contains
20392// a list of interconnect locations.
20393type InterconnectLocationList struct {
20394	// Id: [Output Only] Unique identifier for the resource; defined by the
20395	// server.
20396	Id string `json:"id,omitempty"`
20397
20398	// Items: A list of InterconnectLocation resources.
20399	Items []*InterconnectLocation `json:"items,omitempty"`
20400
20401	// Kind: [Output Only] Type of resource. Always
20402	// compute#interconnectLocationList for lists of interconnect locations.
20403	Kind string `json:"kind,omitempty"`
20404
20405	// NextPageToken: [Output Only] This token allows you to get the next
20406	// page of results for list requests. If the number of results is larger
20407	// than maxResults, use the nextPageToken as a value for the query
20408	// parameter pageToken in the next list request. Subsequent list
20409	// requests will have their own nextPageToken to continue paging through
20410	// the results.
20411	NextPageToken string `json:"nextPageToken,omitempty"`
20412
20413	// SelfLink: [Output Only] Server-defined URL for this resource.
20414	SelfLink string `json:"selfLink,omitempty"`
20415
20416	// Warning: [Output Only] Informational warning message.
20417	Warning *InterconnectLocationListWarning `json:"warning,omitempty"`
20418
20419	// ServerResponse contains the HTTP response code and headers from the
20420	// server.
20421	googleapi.ServerResponse `json:"-"`
20422
20423	// ForceSendFields is a list of field names (e.g. "Id") to
20424	// unconditionally include in API requests. By default, fields with
20425	// empty values are omitted from API requests. However, any non-pointer,
20426	// non-interface field appearing in ForceSendFields will be sent to the
20427	// server regardless of whether the field is empty or not. This may be
20428	// used to include empty fields in Patch requests.
20429	ForceSendFields []string `json:"-"`
20430
20431	// NullFields is a list of field names (e.g. "Id") to include in API
20432	// requests with the JSON null value. By default, fields with empty
20433	// values are omitted from API requests. However, any field with an
20434	// empty value appearing in NullFields will be sent to the server as
20435	// null. It is an error if a field in this list has a non-empty value.
20436	// This may be used to include null fields in Patch requests.
20437	NullFields []string `json:"-"`
20438}
20439
20440func (s *InterconnectLocationList) MarshalJSON() ([]byte, error) {
20441	type NoMethod InterconnectLocationList
20442	raw := NoMethod(*s)
20443	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20444}
20445
20446// InterconnectLocationListWarning: [Output Only] Informational warning
20447// message.
20448type InterconnectLocationListWarning struct {
20449	// Code: [Output Only] A warning code, if applicable. For example,
20450	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20451	// the response.
20452	//
20453	// Possible values:
20454	//   "CLEANUP_FAILED"
20455	//   "DEPRECATED_RESOURCE_USED"
20456	//   "DEPRECATED_TYPE_USED"
20457	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20458	//   "EXPERIMENTAL_TYPE_USED"
20459	//   "EXTERNAL_API_WARNING"
20460	//   "FIELD_VALUE_OVERRIDEN"
20461	//   "INJECTED_KERNELS_DEPRECATED"
20462	//   "MISSING_TYPE_DEPENDENCY"
20463	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20464	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20465	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20466	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20467	//   "NEXT_HOP_NOT_RUNNING"
20468	//   "NOT_CRITICAL_ERROR"
20469	//   "NO_RESULTS_ON_PAGE"
20470	//   "REQUIRED_TOS_AGREEMENT"
20471	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20472	//   "RESOURCE_NOT_DELETED"
20473	//   "SCHEMA_VALIDATION_IGNORED"
20474	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20475	//   "UNDECLARED_PROPERTIES"
20476	//   "UNREACHABLE"
20477	Code string `json:"code,omitempty"`
20478
20479	// Data: [Output Only] Metadata about this warning in key: value format.
20480	// For example:
20481	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20482	Data []*InterconnectLocationListWarningData `json:"data,omitempty"`
20483
20484	// Message: [Output Only] A human-readable description of the warning
20485	// code.
20486	Message string `json:"message,omitempty"`
20487
20488	// ForceSendFields is a list of field names (e.g. "Code") to
20489	// unconditionally include in API requests. By default, fields with
20490	// empty values are omitted from API requests. However, any non-pointer,
20491	// non-interface field appearing in ForceSendFields will be sent to the
20492	// server regardless of whether the field is empty or not. This may be
20493	// used to include empty fields in Patch requests.
20494	ForceSendFields []string `json:"-"`
20495
20496	// NullFields is a list of field names (e.g. "Code") to include in API
20497	// requests with the JSON null value. By default, fields with empty
20498	// values are omitted from API requests. However, any field with an
20499	// empty value appearing in NullFields will be sent to the server as
20500	// null. It is an error if a field in this list has a non-empty value.
20501	// This may be used to include null fields in Patch requests.
20502	NullFields []string `json:"-"`
20503}
20504
20505func (s *InterconnectLocationListWarning) MarshalJSON() ([]byte, error) {
20506	type NoMethod InterconnectLocationListWarning
20507	raw := NoMethod(*s)
20508	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20509}
20510
20511type InterconnectLocationListWarningData struct {
20512	// Key: [Output Only] A key that provides more detail on the warning
20513	// being returned. For example, for warnings where there are no results
20514	// in a list request for a particular zone, this key might be scope and
20515	// the key value might be the zone name. Other examples might be a key
20516	// indicating a deprecated resource and a suggested replacement, or a
20517	// warning about invalid network settings (for example, if an instance
20518	// attempts to perform IP forwarding but is not enabled for IP
20519	// forwarding).
20520	Key string `json:"key,omitempty"`
20521
20522	// Value: [Output Only] A warning data value corresponding to the key.
20523	Value string `json:"value,omitempty"`
20524
20525	// ForceSendFields is a list of field names (e.g. "Key") to
20526	// unconditionally include in API requests. By default, fields with
20527	// empty values are omitted from API requests. However, any non-pointer,
20528	// non-interface field appearing in ForceSendFields will be sent to the
20529	// server regardless of whether the field is empty or not. This may be
20530	// used to include empty fields in Patch requests.
20531	ForceSendFields []string `json:"-"`
20532
20533	// NullFields is a list of field names (e.g. "Key") to include in API
20534	// requests with the JSON null value. By default, fields with empty
20535	// values are omitted from API requests. However, any field with an
20536	// empty value appearing in NullFields will be sent to the server as
20537	// null. It is an error if a field in this list has a non-empty value.
20538	// This may be used to include null fields in Patch requests.
20539	NullFields []string `json:"-"`
20540}
20541
20542func (s *InterconnectLocationListWarningData) MarshalJSON() ([]byte, error) {
20543	type NoMethod InterconnectLocationListWarningData
20544	raw := NoMethod(*s)
20545	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20546}
20547
20548// InterconnectLocationRegionInfo: Information about any potential
20549// InterconnectAttachments between an Interconnect at a specific
20550// InterconnectLocation, and a specific Cloud Region.
20551type InterconnectLocationRegionInfo struct {
20552	// ExpectedRttMs: Expected round-trip time in milliseconds, from this
20553	// InterconnectLocation to a VM in this region.
20554	ExpectedRttMs int64 `json:"expectedRttMs,omitempty,string"`
20555
20556	// LocationPresence: Identifies the network presence of this location.
20557	//
20558	// Possible values:
20559	//   "GLOBAL"
20560	//   "LOCAL_REGION"
20561	//   "LP_GLOBAL"
20562	//   "LP_LOCAL_REGION"
20563	LocationPresence string `json:"locationPresence,omitempty"`
20564
20565	// Region: URL for the region of this location.
20566	Region string `json:"region,omitempty"`
20567
20568	// ForceSendFields is a list of field names (e.g. "ExpectedRttMs") to
20569	// unconditionally include in API requests. By default, fields with
20570	// empty values are omitted from API requests. However, any non-pointer,
20571	// non-interface field appearing in ForceSendFields will be sent to the
20572	// server regardless of whether the field is empty or not. This may be
20573	// used to include empty fields in Patch requests.
20574	ForceSendFields []string `json:"-"`
20575
20576	// NullFields is a list of field names (e.g. "ExpectedRttMs") to include
20577	// in API requests with the JSON null value. By default, fields with
20578	// empty values are omitted from API requests. However, any field with
20579	// an empty value appearing in NullFields will be sent to the server as
20580	// null. It is an error if a field in this list has a non-empty value.
20581	// This may be used to include null fields in Patch requests.
20582	NullFields []string `json:"-"`
20583}
20584
20585func (s *InterconnectLocationRegionInfo) MarshalJSON() ([]byte, error) {
20586	type NoMethod InterconnectLocationRegionInfo
20587	raw := NoMethod(*s)
20588	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20589}
20590
20591// InterconnectOutageNotification: Description of a planned outage on
20592// this Interconnect. Next id: 9
20593type InterconnectOutageNotification struct {
20594	// AffectedCircuits: If issue_type is IT_PARTIAL_OUTAGE, a list of the
20595	// Google-side circuit IDs that will be affected.
20596	AffectedCircuits []string `json:"affectedCircuits,omitempty"`
20597
20598	// Description: A description about the purpose of the outage.
20599	Description string `json:"description,omitempty"`
20600
20601	// EndTime: Scheduled end time for the outage (milliseconds since Unix
20602	// epoch).
20603	EndTime int64 `json:"endTime,omitempty,string"`
20604
20605	// IssueType: Form this outage is expected to take, which can take one
20606	// of the following values:
20607	// - OUTAGE: The Interconnect may be completely out of service for some
20608	// or all of the specified window.
20609	// - PARTIAL_OUTAGE: Some circuits comprising the Interconnect as a
20610	// whole should remain up, but with reduced bandwidth. Note that the
20611	// versions of this enum prefixed with "IT_" have been deprecated in
20612	// favor of the unprefixed values.
20613	//
20614	// Possible values:
20615	//   "IT_OUTAGE"
20616	//   "IT_PARTIAL_OUTAGE"
20617	//   "OUTAGE"
20618	//   "PARTIAL_OUTAGE"
20619	IssueType string `json:"issueType,omitempty"`
20620
20621	// Name: Unique identifier for this outage notification.
20622	Name string `json:"name,omitempty"`
20623
20624	// Source: The party that generated this notification, which can take
20625	// the following value:
20626	// - GOOGLE: this notification as generated by Google. Note that the
20627	// value of NSRC_GOOGLE has been deprecated in favor of GOOGLE.
20628	//
20629	// Possible values:
20630	//   "GOOGLE"
20631	//   "NSRC_GOOGLE"
20632	Source string `json:"source,omitempty"`
20633
20634	// StartTime: Scheduled start time for the outage (milliseconds since
20635	// Unix epoch).
20636	StartTime int64 `json:"startTime,omitempty,string"`
20637
20638	// State: State of this notification, which can take one of the
20639	// following values:
20640	// - ACTIVE: This outage notification is active. The event could be in
20641	// the past, present, or future. See start_time and end_time for
20642	// scheduling.
20643	// - CANCELLED: The outage associated with this notification was
20644	// cancelled before the outage was due to start. Note that the versions
20645	// of this enum prefixed with "NS_" have been deprecated in favor of the
20646	// unprefixed values.
20647	//
20648	// Possible values:
20649	//   "ACTIVE"
20650	//   "CANCELLED"
20651	//   "COMPLETED"
20652	//   "NS_ACTIVE"
20653	//   "NS_CANCELED"
20654	State string `json:"state,omitempty"`
20655
20656	// ForceSendFields is a list of field names (e.g. "AffectedCircuits") to
20657	// unconditionally include in API requests. By default, fields with
20658	// empty values are omitted from API requests. However, any non-pointer,
20659	// non-interface field appearing in ForceSendFields will be sent to the
20660	// server regardless of whether the field is empty or not. This may be
20661	// used to include empty fields in Patch requests.
20662	ForceSendFields []string `json:"-"`
20663
20664	// NullFields is a list of field names (e.g. "AffectedCircuits") to
20665	// include in API requests with the JSON null value. By default, fields
20666	// with empty values are omitted from API requests. However, any field
20667	// with an empty value appearing in NullFields will be sent to the
20668	// server as null. It is an error if a field in this list has a
20669	// non-empty value. This may be used to include null fields in Patch
20670	// requests.
20671	NullFields []string `json:"-"`
20672}
20673
20674func (s *InterconnectOutageNotification) MarshalJSON() ([]byte, error) {
20675	type NoMethod InterconnectOutageNotification
20676	raw := NoMethod(*s)
20677	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20678}
20679
20680// InterconnectsGetDiagnosticsResponse: Response for the
20681// InterconnectsGetDiagnosticsRequest.
20682type InterconnectsGetDiagnosticsResponse struct {
20683	Result *InterconnectDiagnostics `json:"result,omitempty"`
20684
20685	// ServerResponse contains the HTTP response code and headers from the
20686	// server.
20687	googleapi.ServerResponse `json:"-"`
20688
20689	// ForceSendFields is a list of field names (e.g. "Result") to
20690	// unconditionally include in API requests. By default, fields with
20691	// empty values are omitted from API requests. However, any non-pointer,
20692	// non-interface field appearing in ForceSendFields will be sent to the
20693	// server regardless of whether the field is empty or not. This may be
20694	// used to include empty fields in Patch requests.
20695	ForceSendFields []string `json:"-"`
20696
20697	// NullFields is a list of field names (e.g. "Result") to include in API
20698	// requests with the JSON null value. By default, fields with empty
20699	// values are omitted from API requests. However, any field with an
20700	// empty value appearing in NullFields will be sent to the server as
20701	// null. It is an error if a field in this list has a non-empty value.
20702	// This may be used to include null fields in Patch requests.
20703	NullFields []string `json:"-"`
20704}
20705
20706func (s *InterconnectsGetDiagnosticsResponse) MarshalJSON() ([]byte, error) {
20707	type NoMethod InterconnectsGetDiagnosticsResponse
20708	raw := NoMethod(*s)
20709	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20710}
20711
20712type InternalIpAddress struct {
20713	// Cidr: IP CIDR address or range.
20714	Cidr string `json:"cidr,omitempty"`
20715
20716	// Owner: The owner of the internal IP address.
20717	Owner string `json:"owner,omitempty"`
20718
20719	// Purpose: The purpose of the internal IP address if applicable.
20720	Purpose string `json:"purpose,omitempty"`
20721
20722	// Region: The region of the internal IP address if applicable.
20723	Region string `json:"region,omitempty"`
20724
20725	// Type: The type of the internal IP address.
20726	//
20727	// Possible values:
20728	//   "PEER_RESERVED"
20729	//   "PEER_USED"
20730	//   "REMOTE_RESERVED"
20731	//   "REMOTE_USED"
20732	//   "RESERVED"
20733	//   "SUBNETWORK"
20734	//   "TYPE_UNSPECIFIED"
20735	Type string `json:"type,omitempty"`
20736
20737	// ForceSendFields is a list of field names (e.g. "Cidr") to
20738	// unconditionally include in API requests. By default, fields with
20739	// empty values are omitted from API requests. However, any non-pointer,
20740	// non-interface field appearing in ForceSendFields will be sent to the
20741	// server regardless of whether the field is empty or not. This may be
20742	// used to include empty fields in Patch requests.
20743	ForceSendFields []string `json:"-"`
20744
20745	// NullFields is a list of field names (e.g. "Cidr") to include in API
20746	// requests with the JSON null value. By default, fields with empty
20747	// values are omitted from API requests. However, any field with an
20748	// empty value appearing in NullFields will be sent to the server as
20749	// null. It is an error if a field in this list has a non-empty value.
20750	// This may be used to include null fields in Patch requests.
20751	NullFields []string `json:"-"`
20752}
20753
20754func (s *InternalIpAddress) MarshalJSON() ([]byte, error) {
20755	type NoMethod InternalIpAddress
20756	raw := NoMethod(*s)
20757	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20758}
20759
20760type InternalIpOwner struct {
20761	// IpCidrRange: IP CIDR range being owned.
20762	IpCidrRange string `json:"ipCidrRange,omitempty"`
20763
20764	// Owners: URLs of the IP owners of the IP CIDR range.
20765	Owners []string `json:"owners,omitempty"`
20766
20767	// SystemOwned: Whether this IP CIDR range is reserved for system use.
20768	SystemOwned bool `json:"systemOwned,omitempty"`
20769
20770	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
20771	// unconditionally include in API requests. By default, fields with
20772	// empty values are omitted from API requests. However, any non-pointer,
20773	// non-interface field appearing in ForceSendFields will be sent to the
20774	// server regardless of whether the field is empty or not. This may be
20775	// used to include empty fields in Patch requests.
20776	ForceSendFields []string `json:"-"`
20777
20778	// NullFields is a list of field names (e.g. "IpCidrRange") to include
20779	// in API requests with the JSON null value. By default, fields with
20780	// empty values are omitted from API requests. However, any field with
20781	// an empty value appearing in NullFields will be sent to the server as
20782	// null. It is an error if a field in this list has a non-empty value.
20783	// This may be used to include null fields in Patch requests.
20784	NullFields []string `json:"-"`
20785}
20786
20787func (s *InternalIpOwner) MarshalJSON() ([]byte, error) {
20788	type NoMethod InternalIpOwner
20789	raw := NoMethod(*s)
20790	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20791}
20792
20793type IpAddressesList struct {
20794	// Id: [Output Only] Unique identifier for the resource; defined by the
20795	// server.
20796	Id string `json:"id,omitempty"`
20797
20798	// Items: A list of InternalIpAddress resources.
20799	Items []*InternalIpAddress `json:"items,omitempty"`
20800
20801	// Kind: [Output Only] Type of resource. Always compute#ipAddressesList
20802	// for IP addresses lists.
20803	Kind string `json:"kind,omitempty"`
20804
20805	// NextPageToken: [Output Only] This token allows you to get the next
20806	// page of results for list requests. If the number of results is larger
20807	// than maxResults, use the nextPageToken as a value for the query
20808	// parameter pageToken in the next list request. Subsequent list
20809	// requests will have their own nextPageToken to continue paging through
20810	// the results.
20811	NextPageToken string `json:"nextPageToken,omitempty"`
20812
20813	// SelfLink: [Output Only] Server-defined URL for this resource.
20814	SelfLink string `json:"selfLink,omitempty"`
20815
20816	// Warning: [Output Only] Informational warning message.
20817	Warning *IpAddressesListWarning `json:"warning,omitempty"`
20818
20819	// ServerResponse contains the HTTP response code and headers from the
20820	// server.
20821	googleapi.ServerResponse `json:"-"`
20822
20823	// ForceSendFields is a list of field names (e.g. "Id") to
20824	// unconditionally include in API requests. By default, fields with
20825	// empty values are omitted from API requests. However, any non-pointer,
20826	// non-interface field appearing in ForceSendFields will be sent to the
20827	// server regardless of whether the field is empty or not. This may be
20828	// used to include empty fields in Patch requests.
20829	ForceSendFields []string `json:"-"`
20830
20831	// NullFields is a list of field names (e.g. "Id") to include in API
20832	// requests with the JSON null value. By default, fields with empty
20833	// values are omitted from API requests. However, any field with an
20834	// empty value appearing in NullFields will be sent to the server as
20835	// null. It is an error if a field in this list has a non-empty value.
20836	// This may be used to include null fields in Patch requests.
20837	NullFields []string `json:"-"`
20838}
20839
20840func (s *IpAddressesList) MarshalJSON() ([]byte, error) {
20841	type NoMethod IpAddressesList
20842	raw := NoMethod(*s)
20843	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20844}
20845
20846// IpAddressesListWarning: [Output Only] Informational warning message.
20847type IpAddressesListWarning struct {
20848	// Code: [Output Only] A warning code, if applicable. For example,
20849	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20850	// the response.
20851	//
20852	// Possible values:
20853	//   "CLEANUP_FAILED"
20854	//   "DEPRECATED_RESOURCE_USED"
20855	//   "DEPRECATED_TYPE_USED"
20856	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20857	//   "EXPERIMENTAL_TYPE_USED"
20858	//   "EXTERNAL_API_WARNING"
20859	//   "FIELD_VALUE_OVERRIDEN"
20860	//   "INJECTED_KERNELS_DEPRECATED"
20861	//   "MISSING_TYPE_DEPENDENCY"
20862	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20863	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20864	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20865	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20866	//   "NEXT_HOP_NOT_RUNNING"
20867	//   "NOT_CRITICAL_ERROR"
20868	//   "NO_RESULTS_ON_PAGE"
20869	//   "REQUIRED_TOS_AGREEMENT"
20870	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20871	//   "RESOURCE_NOT_DELETED"
20872	//   "SCHEMA_VALIDATION_IGNORED"
20873	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20874	//   "UNDECLARED_PROPERTIES"
20875	//   "UNREACHABLE"
20876	Code string `json:"code,omitempty"`
20877
20878	// Data: [Output Only] Metadata about this warning in key: value format.
20879	// For example:
20880	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20881	Data []*IpAddressesListWarningData `json:"data,omitempty"`
20882
20883	// Message: [Output Only] A human-readable description of the warning
20884	// code.
20885	Message string `json:"message,omitempty"`
20886
20887	// ForceSendFields is a list of field names (e.g. "Code") to
20888	// unconditionally include in API requests. By default, fields with
20889	// empty values are omitted from API requests. However, any non-pointer,
20890	// non-interface field appearing in ForceSendFields will be sent to the
20891	// server regardless of whether the field is empty or not. This may be
20892	// used to include empty fields in Patch requests.
20893	ForceSendFields []string `json:"-"`
20894
20895	// NullFields is a list of field names (e.g. "Code") to include in API
20896	// requests with the JSON null value. By default, fields with empty
20897	// values are omitted from API requests. However, any field with an
20898	// empty value appearing in NullFields will be sent to the server as
20899	// null. It is an error if a field in this list has a non-empty value.
20900	// This may be used to include null fields in Patch requests.
20901	NullFields []string `json:"-"`
20902}
20903
20904func (s *IpAddressesListWarning) MarshalJSON() ([]byte, error) {
20905	type NoMethod IpAddressesListWarning
20906	raw := NoMethod(*s)
20907	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20908}
20909
20910type IpAddressesListWarningData struct {
20911	// Key: [Output Only] A key that provides more detail on the warning
20912	// being returned. For example, for warnings where there are no results
20913	// in a list request for a particular zone, this key might be scope and
20914	// the key value might be the zone name. Other examples might be a key
20915	// indicating a deprecated resource and a suggested replacement, or a
20916	// warning about invalid network settings (for example, if an instance
20917	// attempts to perform IP forwarding but is not enabled for IP
20918	// forwarding).
20919	Key string `json:"key,omitempty"`
20920
20921	// Value: [Output Only] A warning data value corresponding to the key.
20922	Value string `json:"value,omitempty"`
20923
20924	// ForceSendFields is a list of field names (e.g. "Key") to
20925	// unconditionally include in API requests. By default, fields with
20926	// empty values are omitted from API requests. However, any non-pointer,
20927	// non-interface field appearing in ForceSendFields will be sent to the
20928	// server regardless of whether the field is empty or not. This may be
20929	// used to include empty fields in Patch requests.
20930	ForceSendFields []string `json:"-"`
20931
20932	// NullFields is a list of field names (e.g. "Key") to include in API
20933	// requests with the JSON null value. By default, fields with empty
20934	// values are omitted from API requests. However, any field with an
20935	// empty value appearing in NullFields will be sent to the server as
20936	// null. It is an error if a field in this list has a non-empty value.
20937	// This may be used to include null fields in Patch requests.
20938	NullFields []string `json:"-"`
20939}
20940
20941func (s *IpAddressesListWarningData) MarshalJSON() ([]byte, error) {
20942	type NoMethod IpAddressesListWarningData
20943	raw := NoMethod(*s)
20944	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20945}
20946
20947// IpOwnerList: Contains a list of IP owners.
20948type IpOwnerList struct {
20949	// Id: [Output Only] Unique identifier for the resource; defined by the
20950	// server.
20951	Id string `json:"id,omitempty"`
20952
20953	// Items: A list of InternalIpOwner resources.
20954	Items []*InternalIpOwner `json:"items,omitempty"`
20955
20956	// Kind: [Output Only] Type of resource. Always compute#ipOwnerList for
20957	// lists of IP owners.
20958	Kind string `json:"kind,omitempty"`
20959
20960	// NextPageToken: [Output Only] This token allows you to get the next
20961	// page of results for list requests. If the number of results is larger
20962	// than maxResults, use the nextPageToken as a value for the query
20963	// parameter pageToken in the next list request. Subsequent list
20964	// requests will have their own nextPageToken to continue paging through
20965	// the results.
20966	NextPageToken string `json:"nextPageToken,omitempty"`
20967
20968	// SelfLink: [Output Only] Server-defined URL for this resource.
20969	SelfLink string `json:"selfLink,omitempty"`
20970
20971	// Warning: [Output Only] Informational warning message.
20972	Warning *IpOwnerListWarning `json:"warning,omitempty"`
20973
20974	// ServerResponse contains the HTTP response code and headers from the
20975	// server.
20976	googleapi.ServerResponse `json:"-"`
20977
20978	// ForceSendFields is a list of field names (e.g. "Id") to
20979	// unconditionally include in API requests. By default, fields with
20980	// empty values are omitted from API requests. However, any non-pointer,
20981	// non-interface field appearing in ForceSendFields will be sent to the
20982	// server regardless of whether the field is empty or not. This may be
20983	// used to include empty fields in Patch requests.
20984	ForceSendFields []string `json:"-"`
20985
20986	// NullFields is a list of field names (e.g. "Id") to include in API
20987	// requests with the JSON null value. By default, fields with empty
20988	// values are omitted from API requests. However, any field with an
20989	// empty value appearing in NullFields will be sent to the server as
20990	// null. It is an error if a field in this list has a non-empty value.
20991	// This may be used to include null fields in Patch requests.
20992	NullFields []string `json:"-"`
20993}
20994
20995func (s *IpOwnerList) MarshalJSON() ([]byte, error) {
20996	type NoMethod IpOwnerList
20997	raw := NoMethod(*s)
20998	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20999}
21000
21001// IpOwnerListWarning: [Output Only] Informational warning message.
21002type IpOwnerListWarning struct {
21003	// Code: [Output Only] A warning code, if applicable. For example,
21004	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21005	// the response.
21006	//
21007	// Possible values:
21008	//   "CLEANUP_FAILED"
21009	//   "DEPRECATED_RESOURCE_USED"
21010	//   "DEPRECATED_TYPE_USED"
21011	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21012	//   "EXPERIMENTAL_TYPE_USED"
21013	//   "EXTERNAL_API_WARNING"
21014	//   "FIELD_VALUE_OVERRIDEN"
21015	//   "INJECTED_KERNELS_DEPRECATED"
21016	//   "MISSING_TYPE_DEPENDENCY"
21017	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21018	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21019	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21020	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21021	//   "NEXT_HOP_NOT_RUNNING"
21022	//   "NOT_CRITICAL_ERROR"
21023	//   "NO_RESULTS_ON_PAGE"
21024	//   "REQUIRED_TOS_AGREEMENT"
21025	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21026	//   "RESOURCE_NOT_DELETED"
21027	//   "SCHEMA_VALIDATION_IGNORED"
21028	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21029	//   "UNDECLARED_PROPERTIES"
21030	//   "UNREACHABLE"
21031	Code string `json:"code,omitempty"`
21032
21033	// Data: [Output Only] Metadata about this warning in key: value format.
21034	// For example:
21035	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21036	Data []*IpOwnerListWarningData `json:"data,omitempty"`
21037
21038	// Message: [Output Only] A human-readable description of the warning
21039	// code.
21040	Message string `json:"message,omitempty"`
21041
21042	// ForceSendFields is a list of field names (e.g. "Code") to
21043	// unconditionally include in API requests. By default, fields with
21044	// empty values are omitted from API requests. However, any non-pointer,
21045	// non-interface field appearing in ForceSendFields will be sent to the
21046	// server regardless of whether the field is empty or not. This may be
21047	// used to include empty fields in Patch requests.
21048	ForceSendFields []string `json:"-"`
21049
21050	// NullFields is a list of field names (e.g. "Code") to include in API
21051	// requests with the JSON null value. By default, fields with empty
21052	// values are omitted from API requests. However, any field with an
21053	// empty value appearing in NullFields will be sent to the server as
21054	// null. It is an error if a field in this list has a non-empty value.
21055	// This may be used to include null fields in Patch requests.
21056	NullFields []string `json:"-"`
21057}
21058
21059func (s *IpOwnerListWarning) MarshalJSON() ([]byte, error) {
21060	type NoMethod IpOwnerListWarning
21061	raw := NoMethod(*s)
21062	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21063}
21064
21065type IpOwnerListWarningData struct {
21066	// Key: [Output Only] A key that provides more detail on the warning
21067	// being returned. For example, for warnings where there are no results
21068	// in a list request for a particular zone, this key might be scope and
21069	// the key value might be the zone name. Other examples might be a key
21070	// indicating a deprecated resource and a suggested replacement, or a
21071	// warning about invalid network settings (for example, if an instance
21072	// attempts to perform IP forwarding but is not enabled for IP
21073	// forwarding).
21074	Key string `json:"key,omitempty"`
21075
21076	// Value: [Output Only] A warning data value corresponding to the key.
21077	Value string `json:"value,omitempty"`
21078
21079	// ForceSendFields is a list of field names (e.g. "Key") 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. "Key") 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 *IpOwnerListWarningData) MarshalJSON() ([]byte, error) {
21097	type NoMethod IpOwnerListWarningData
21098	raw := NoMethod(*s)
21099	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21100}
21101
21102// Jwt: JWT configuration for origin authentication.
21103type Jwt struct {
21104	// Audiences: A JWT containing any of these audiences will be accepted.
21105	// The service name will be accepted if audiences is empty. Examples:
21106	// bookstore_android.apps.googleusercontent.com,
21107	// bookstore_web.apps.googleusercontent.com
21108	Audiences []string `json:"audiences,omitempty"`
21109
21110	// Issuer: Identifies the issuer that issued the JWT, which is usually a
21111	// URL or an email address. Examples: https://securetoken.google.com,
21112	// 1234567-compute@developer.gserviceaccount.com
21113	Issuer string `json:"issuer,omitempty"`
21114
21115	// JwksPublicKeys: The provider's public key set to validate the
21116	// signature of the JWT.
21117	JwksPublicKeys string `json:"jwksPublicKeys,omitempty"`
21118
21119	// JwtHeaders: jwt_headers and jwt_params define where to extract the
21120	// JWT from an HTTP request. If no explicit location is specified, the
21121	// following default locations are tried in order:
21122	//
21123	// 1. The Authorization header using the Bearer schema. See `here `_.
21124	// Example:
21125	//
21126	// Authorization: Bearer .
21127	//
21128	// 2. `access_token` query parameter. See `this `_
21129	//
21130	// Multiple JWTs can be verified for a request. Each JWT has to be
21131	// extracted from the locations its issuer specified or from the default
21132	// locations.
21133	//
21134	// This field is set if JWT is sent in a request header. This field
21135	// specifies the header name. For example, if
21136	// `header=x-goog-iap-jwt-assertion`, the header format will be
21137	// x-goog-iap-jwt-assertion: .
21138	JwtHeaders []*JwtHeader `json:"jwtHeaders,omitempty"`
21139
21140	// JwtParams: This field is set if JWT is sent in a query parameter.
21141	// This field specifies the query parameter name. For example, if
21142	// jwt_params[0] is jwt_token, the JWT format in the query parameter is
21143	// /path?jwt_token=.
21144	JwtParams []string `json:"jwtParams,omitempty"`
21145
21146	// ForceSendFields is a list of field names (e.g. "Audiences") to
21147	// unconditionally include in API requests. By default, fields with
21148	// empty values are omitted from API requests. However, any non-pointer,
21149	// non-interface field appearing in ForceSendFields will be sent to the
21150	// server regardless of whether the field is empty or not. This may be
21151	// used to include empty fields in Patch requests.
21152	ForceSendFields []string `json:"-"`
21153
21154	// NullFields is a list of field names (e.g. "Audiences") to include in
21155	// API requests with the JSON null value. By default, fields with empty
21156	// values are omitted from API requests. However, any field with an
21157	// empty value appearing in NullFields will be sent to the server as
21158	// null. It is an error if a field in this list has a non-empty value.
21159	// This may be used to include null fields in Patch requests.
21160	NullFields []string `json:"-"`
21161}
21162
21163func (s *Jwt) MarshalJSON() ([]byte, error) {
21164	type NoMethod Jwt
21165	raw := NoMethod(*s)
21166	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21167}
21168
21169// JwtHeader: This message specifies a header location to extract JWT
21170// token.
21171type JwtHeader struct {
21172	// Name: The HTTP header name.
21173	Name string `json:"name,omitempty"`
21174
21175	// ValuePrefix: The value prefix. The value format is "value_prefix" For
21176	// example, for "Authorization: Bearer ", value_prefix="Bearer " with a
21177	// space at the end.
21178	ValuePrefix string `json:"valuePrefix,omitempty"`
21179
21180	// ForceSendFields is a list of field names (e.g. "Name") to
21181	// unconditionally include in API requests. By default, fields with
21182	// empty values are omitted from API requests. However, any non-pointer,
21183	// non-interface field appearing in ForceSendFields will be sent to the
21184	// server regardless of whether the field is empty or not. This may be
21185	// used to include empty fields in Patch requests.
21186	ForceSendFields []string `json:"-"`
21187
21188	// NullFields is a list of field names (e.g. "Name") to include in API
21189	// requests with the JSON null value. By default, fields with empty
21190	// values are omitted from API requests. However, any field with an
21191	// empty value appearing in NullFields will be sent to the server as
21192	// null. It is an error if a field in this list has a non-empty value.
21193	// This may be used to include null fields in Patch requests.
21194	NullFields []string `json:"-"`
21195}
21196
21197func (s *JwtHeader) MarshalJSON() ([]byte, error) {
21198	type NoMethod JwtHeader
21199	raw := NoMethod(*s)
21200	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21201}
21202
21203// License: A license resource.
21204type License struct {
21205	// ChargesUseFee: [Output Only] Deprecated. This field no longer
21206	// reflects whether a license charges a usage fee.
21207	ChargesUseFee bool `json:"chargesUseFee,omitempty"`
21208
21209	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
21210	// format.
21211	CreationTimestamp string `json:"creationTimestamp,omitempty"`
21212
21213	// Description: An optional textual description of the resource;
21214	// provided by the client when the resource is created.
21215	Description string `json:"description,omitempty"`
21216
21217	// Id: [Output Only] The unique identifier for the resource. This
21218	// identifier is defined by the server.
21219	Id uint64 `json:"id,omitempty,string"`
21220
21221	// Kind: [Output Only] Type of resource. Always compute#license for
21222	// licenses.
21223	Kind string `json:"kind,omitempty"`
21224
21225	// LicenseCode: [Output Only] The unique code used to attach this
21226	// license to images, snapshots, and disks.
21227	LicenseCode uint64 `json:"licenseCode,omitempty,string"`
21228
21229	// Name: Name of the resource. The name must be 1-63 characters long and
21230	// comply with RFC1035.
21231	Name string `json:"name,omitempty"`
21232
21233	ResourceRequirements *LicenseResourceRequirements `json:"resourceRequirements,omitempty"`
21234
21235	// SelfLink: [Output Only] Server-defined URL for the resource.
21236	SelfLink string `json:"selfLink,omitempty"`
21237
21238	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
21239	// with the resource id.
21240	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
21241
21242	// Transferable: If false, licenses will not be copied from the source
21243	// resource when creating an image from a disk, disk from snapshot, or
21244	// snapshot from disk.
21245	Transferable bool `json:"transferable,omitempty"`
21246
21247	// ServerResponse contains the HTTP response code and headers from the
21248	// server.
21249	googleapi.ServerResponse `json:"-"`
21250
21251	// ForceSendFields is a list of field names (e.g. "ChargesUseFee") to
21252	// unconditionally include in API requests. By default, fields with
21253	// empty values are omitted from API requests. However, any non-pointer,
21254	// non-interface field appearing in ForceSendFields will be sent to the
21255	// server regardless of whether the field is empty or not. This may be
21256	// used to include empty fields in Patch requests.
21257	ForceSendFields []string `json:"-"`
21258
21259	// NullFields is a list of field names (e.g. "ChargesUseFee") to include
21260	// in API requests with the JSON null value. By default, fields with
21261	// empty values are omitted from API requests. However, any field with
21262	// an empty value appearing in NullFields will be sent to the server as
21263	// null. It is an error if a field in this list has a non-empty value.
21264	// This may be used to include null fields in Patch requests.
21265	NullFields []string `json:"-"`
21266}
21267
21268func (s *License) MarshalJSON() ([]byte, error) {
21269	type NoMethod License
21270	raw := NoMethod(*s)
21271	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21272}
21273
21274type LicenseCode struct {
21275	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
21276	// format.
21277	CreationTimestamp string `json:"creationTimestamp,omitempty"`
21278
21279	// Description: [Output Only] Description of this License Code.
21280	Description string `json:"description,omitempty"`
21281
21282	// Id: [Output Only] The unique identifier for the resource. This
21283	// identifier is defined by the server.
21284	Id uint64 `json:"id,omitempty,string"`
21285
21286	// Kind: [Output Only] Type of resource. Always compute#licenseCode for
21287	// licenses.
21288	Kind string `json:"kind,omitempty"`
21289
21290	// LicenseAlias: [Output Only] URL and description aliases of Licenses
21291	// with the same License Code.
21292	LicenseAlias []*LicenseCodeLicenseAlias `json:"licenseAlias,omitempty"`
21293
21294	// Name: [Output Only] Name of the resource. The name is 1-20 characters
21295	// long and must be a valid 64 bit integer.
21296	Name string `json:"name,omitempty"`
21297
21298	// SelfLink: [Output Only] Server-defined URL for the resource.
21299	SelfLink string `json:"selfLink,omitempty"`
21300
21301	// State: [Output Only] Current state of this License Code.
21302	//
21303	// Possible values:
21304	//   "DISABLED"
21305	//   "ENABLED"
21306	//   "RESTRICTED"
21307	//   "STATE_UNSPECIFIED"
21308	//   "TERMINATED"
21309	State string `json:"state,omitempty"`
21310
21311	// Transferable: [Output Only] If true, the license will remain attached
21312	// when creating images or snapshots from disks. Otherwise, the license
21313	// is not transferred.
21314	Transferable bool `json:"transferable,omitempty"`
21315
21316	// ServerResponse contains the HTTP response code and headers from the
21317	// server.
21318	googleapi.ServerResponse `json:"-"`
21319
21320	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
21321	// to unconditionally include in API requests. By default, fields with
21322	// empty values are omitted from API requests. However, any non-pointer,
21323	// non-interface field appearing in ForceSendFields will be sent to the
21324	// server regardless of whether the field is empty or not. This may be
21325	// used to include empty fields in Patch requests.
21326	ForceSendFields []string `json:"-"`
21327
21328	// NullFields is a list of field names (e.g. "CreationTimestamp") to
21329	// include in API requests with the JSON null value. By default, fields
21330	// with empty values are omitted from API requests. However, any field
21331	// with an empty value appearing in NullFields will be sent to the
21332	// server as null. It is an error if a field in this list has a
21333	// non-empty value. This may be used to include null fields in Patch
21334	// requests.
21335	NullFields []string `json:"-"`
21336}
21337
21338func (s *LicenseCode) MarshalJSON() ([]byte, error) {
21339	type NoMethod LicenseCode
21340	raw := NoMethod(*s)
21341	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21342}
21343
21344type LicenseCodeLicenseAlias struct {
21345	// Description: [Output Only] Description of this License Code.
21346	Description string `json:"description,omitempty"`
21347
21348	// SelfLink: [Output Only] URL of license corresponding to this License
21349	// Code.
21350	SelfLink string `json:"selfLink,omitempty"`
21351
21352	// ForceSendFields is a list of field names (e.g. "Description") to
21353	// unconditionally include in API requests. By default, fields with
21354	// empty values are omitted from API requests. However, any non-pointer,
21355	// non-interface field appearing in ForceSendFields will be sent to the
21356	// server regardless of whether the field is empty or not. This may be
21357	// used to include empty fields in Patch requests.
21358	ForceSendFields []string `json:"-"`
21359
21360	// NullFields is a list of field names (e.g. "Description") to include
21361	// in API requests with the JSON null value. By default, fields with
21362	// empty values are omitted from API requests. However, any field with
21363	// an empty value appearing in NullFields will be sent to the server as
21364	// null. It is an error if a field in this list has a non-empty value.
21365	// This may be used to include null fields in Patch requests.
21366	NullFields []string `json:"-"`
21367}
21368
21369func (s *LicenseCodeLicenseAlias) MarshalJSON() ([]byte, error) {
21370	type NoMethod LicenseCodeLicenseAlias
21371	raw := NoMethod(*s)
21372	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21373}
21374
21375// LicenseResourceCommitment: Commitment for a particular license
21376// resource.
21377type LicenseResourceCommitment struct {
21378	// Amount: The number of licenses purchased.
21379	Amount int64 `json:"amount,omitempty,string"`
21380
21381	// CoresPerLicense: Specifies the core range of the instance for which
21382	// this license applies.
21383	CoresPerLicense string `json:"coresPerLicense,omitempty"`
21384
21385	// License: Any applicable license URI.
21386	License string `json:"license,omitempty"`
21387
21388	// ForceSendFields is a list of field names (e.g. "Amount") to
21389	// unconditionally include in API requests. By default, fields with
21390	// empty values are omitted from API requests. However, any non-pointer,
21391	// non-interface field appearing in ForceSendFields will be sent to the
21392	// server regardless of whether the field is empty or not. This may be
21393	// used to include empty fields in Patch requests.
21394	ForceSendFields []string `json:"-"`
21395
21396	// NullFields is a list of field names (e.g. "Amount") to include in API
21397	// requests with the JSON null value. By default, fields with empty
21398	// values are omitted from API requests. However, any field with an
21399	// empty value appearing in NullFields will be sent to the server as
21400	// null. It is an error if a field in this list has a non-empty value.
21401	// This may be used to include null fields in Patch requests.
21402	NullFields []string `json:"-"`
21403}
21404
21405func (s *LicenseResourceCommitment) MarshalJSON() ([]byte, error) {
21406	type NoMethod LicenseResourceCommitment
21407	raw := NoMethod(*s)
21408	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21409}
21410
21411type LicenseResourceRequirements struct {
21412	// MinGuestCpuCount: Minimum number of guest cpus required to use the
21413	// Instance. Enforced at Instance creation and Instance start.
21414	MinGuestCpuCount int64 `json:"minGuestCpuCount,omitempty"`
21415
21416	// MinMemoryMb: Minimum memory required to use the Instance. Enforced at
21417	// Instance creation and Instance start.
21418	MinMemoryMb int64 `json:"minMemoryMb,omitempty"`
21419
21420	// ForceSendFields is a list of field names (e.g. "MinGuestCpuCount") to
21421	// unconditionally include in API requests. By default, fields with
21422	// empty values are omitted from API requests. However, any non-pointer,
21423	// non-interface field appearing in ForceSendFields will be sent to the
21424	// server regardless of whether the field is empty or not. This may be
21425	// used to include empty fields in Patch requests.
21426	ForceSendFields []string `json:"-"`
21427
21428	// NullFields is a list of field names (e.g. "MinGuestCpuCount") to
21429	// include in API requests with the JSON null value. By default, fields
21430	// with empty values are omitted from API requests. However, any field
21431	// with an empty value appearing in NullFields will be sent to the
21432	// server as null. It is an error if a field in this list has a
21433	// non-empty value. This may be used to include null fields in Patch
21434	// requests.
21435	NullFields []string `json:"-"`
21436}
21437
21438func (s *LicenseResourceRequirements) MarshalJSON() ([]byte, error) {
21439	type NoMethod LicenseResourceRequirements
21440	raw := NoMethod(*s)
21441	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21442}
21443
21444type LicensesListResponse struct {
21445	// Id: [Output Only] Unique identifier for the resource; defined by the
21446	// server.
21447	Id string `json:"id,omitempty"`
21448
21449	// Items: A list of License resources.
21450	Items []*License `json:"items,omitempty"`
21451
21452	// NextPageToken: [Output Only] This token allows you to get the next
21453	// page of results for list requests. If the number of results is larger
21454	// than maxResults, use the nextPageToken as a value for the query
21455	// parameter pageToken in the next list request. Subsequent list
21456	// requests will have their own nextPageToken to continue paging through
21457	// the results.
21458	NextPageToken string `json:"nextPageToken,omitempty"`
21459
21460	// SelfLink: [Output Only] Server-defined URL for this resource.
21461	SelfLink string `json:"selfLink,omitempty"`
21462
21463	// Warning: [Output Only] Informational warning message.
21464	Warning *LicensesListResponseWarning `json:"warning,omitempty"`
21465
21466	// ServerResponse contains the HTTP response code and headers from the
21467	// server.
21468	googleapi.ServerResponse `json:"-"`
21469
21470	// ForceSendFields is a list of field names (e.g. "Id") to
21471	// unconditionally include in API requests. By default, fields with
21472	// empty values are omitted from API requests. However, any non-pointer,
21473	// non-interface field appearing in ForceSendFields will be sent to the
21474	// server regardless of whether the field is empty or not. This may be
21475	// used to include empty fields in Patch requests.
21476	ForceSendFields []string `json:"-"`
21477
21478	// NullFields is a list of field names (e.g. "Id") to include in API
21479	// requests with the JSON null value. By default, fields with empty
21480	// values are omitted from API requests. However, any field with an
21481	// empty value appearing in NullFields will be sent to the server as
21482	// null. It is an error if a field in this list has a non-empty value.
21483	// This may be used to include null fields in Patch requests.
21484	NullFields []string `json:"-"`
21485}
21486
21487func (s *LicensesListResponse) MarshalJSON() ([]byte, error) {
21488	type NoMethod LicensesListResponse
21489	raw := NoMethod(*s)
21490	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21491}
21492
21493// LicensesListResponseWarning: [Output Only] Informational warning
21494// message.
21495type LicensesListResponseWarning struct {
21496	// Code: [Output Only] A warning code, if applicable. For example,
21497	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21498	// the response.
21499	//
21500	// Possible values:
21501	//   "CLEANUP_FAILED"
21502	//   "DEPRECATED_RESOURCE_USED"
21503	//   "DEPRECATED_TYPE_USED"
21504	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21505	//   "EXPERIMENTAL_TYPE_USED"
21506	//   "EXTERNAL_API_WARNING"
21507	//   "FIELD_VALUE_OVERRIDEN"
21508	//   "INJECTED_KERNELS_DEPRECATED"
21509	//   "MISSING_TYPE_DEPENDENCY"
21510	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21511	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21512	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21513	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21514	//   "NEXT_HOP_NOT_RUNNING"
21515	//   "NOT_CRITICAL_ERROR"
21516	//   "NO_RESULTS_ON_PAGE"
21517	//   "REQUIRED_TOS_AGREEMENT"
21518	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21519	//   "RESOURCE_NOT_DELETED"
21520	//   "SCHEMA_VALIDATION_IGNORED"
21521	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21522	//   "UNDECLARED_PROPERTIES"
21523	//   "UNREACHABLE"
21524	Code string `json:"code,omitempty"`
21525
21526	// Data: [Output Only] Metadata about this warning in key: value format.
21527	// For example:
21528	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21529	Data []*LicensesListResponseWarningData `json:"data,omitempty"`
21530
21531	// Message: [Output Only] A human-readable description of the warning
21532	// code.
21533	Message string `json:"message,omitempty"`
21534
21535	// ForceSendFields is a list of field names (e.g. "Code") to
21536	// unconditionally include in API requests. By default, fields with
21537	// empty values are omitted from API requests. However, any non-pointer,
21538	// non-interface field appearing in ForceSendFields will be sent to the
21539	// server regardless of whether the field is empty or not. This may be
21540	// used to include empty fields in Patch requests.
21541	ForceSendFields []string `json:"-"`
21542
21543	// NullFields is a list of field names (e.g. "Code") to include in API
21544	// requests with the JSON null value. By default, fields with empty
21545	// values are omitted from API requests. However, any field with an
21546	// empty value appearing in NullFields will be sent to the server as
21547	// null. It is an error if a field in this list has a non-empty value.
21548	// This may be used to include null fields in Patch requests.
21549	NullFields []string `json:"-"`
21550}
21551
21552func (s *LicensesListResponseWarning) MarshalJSON() ([]byte, error) {
21553	type NoMethod LicensesListResponseWarning
21554	raw := NoMethod(*s)
21555	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21556}
21557
21558type LicensesListResponseWarningData struct {
21559	// Key: [Output Only] A key that provides more detail on the warning
21560	// being returned. For example, for warnings where there are no results
21561	// in a list request for a particular zone, this key might be scope and
21562	// the key value might be the zone name. Other examples might be a key
21563	// indicating a deprecated resource and a suggested replacement, or a
21564	// warning about invalid network settings (for example, if an instance
21565	// attempts to perform IP forwarding but is not enabled for IP
21566	// forwarding).
21567	Key string `json:"key,omitempty"`
21568
21569	// Value: [Output Only] A warning data value corresponding to the key.
21570	Value string `json:"value,omitempty"`
21571
21572	// ForceSendFields is a list of field names (e.g. "Key") to
21573	// unconditionally include in API requests. By default, fields with
21574	// empty values are omitted from API requests. However, any non-pointer,
21575	// non-interface field appearing in ForceSendFields will be sent to the
21576	// server regardless of whether the field is empty or not. This may be
21577	// used to include empty fields in Patch requests.
21578	ForceSendFields []string `json:"-"`
21579
21580	// NullFields is a list of field names (e.g. "Key") to include in API
21581	// requests with the JSON null value. By default, fields with empty
21582	// values are omitted from API requests. However, any field with an
21583	// empty value appearing in NullFields will be sent to the server as
21584	// null. It is an error if a field in this list has a non-empty value.
21585	// This may be used to include null fields in Patch requests.
21586	NullFields []string `json:"-"`
21587}
21588
21589func (s *LicensesListResponseWarningData) MarshalJSON() ([]byte, error) {
21590	type NoMethod LicensesListResponseWarningData
21591	raw := NoMethod(*s)
21592	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21593}
21594
21595type LocalDisk struct {
21596	// DiskCount: Specifies the number of such disks.
21597	DiskCount int64 `json:"diskCount,omitempty"`
21598
21599	// DiskSizeGb: Specifies the size of the disk in base-2 GB.
21600	DiskSizeGb int64 `json:"diskSizeGb,omitempty"`
21601
21602	// DiskType: Specifies the desired disk type on the node. This disk type
21603	// must be a local storage type (e.g.: local-ssd). Note that for
21604	// nodeTemplates, this should be the name of the disk type and not its
21605	// URL.
21606	DiskType string `json:"diskType,omitempty"`
21607
21608	// ForceSendFields is a list of field names (e.g. "DiskCount") to
21609	// unconditionally include in API requests. By default, fields with
21610	// empty values are omitted from API requests. However, any non-pointer,
21611	// non-interface field appearing in ForceSendFields will be sent to the
21612	// server regardless of whether the field is empty or not. This may be
21613	// used to include empty fields in Patch requests.
21614	ForceSendFields []string `json:"-"`
21615
21616	// NullFields is a list of field names (e.g. "DiskCount") to include in
21617	// API requests with the JSON null value. By default, fields with empty
21618	// values are omitted from API requests. However, any field with an
21619	// empty value appearing in NullFields will be sent to the server as
21620	// null. It is an error if a field in this list has a non-empty value.
21621	// This may be used to include null fields in Patch requests.
21622	NullFields []string `json:"-"`
21623}
21624
21625func (s *LocalDisk) MarshalJSON() ([]byte, error) {
21626	type NoMethod LocalDisk
21627	raw := NoMethod(*s)
21628	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21629}
21630
21631// LogConfig: Specifies what kind of log the caller must write
21632type LogConfig struct {
21633	// CloudAudit: Cloud audit options.
21634	CloudAudit *LogConfigCloudAuditOptions `json:"cloudAudit,omitempty"`
21635
21636	// Counter: Counter options.
21637	Counter *LogConfigCounterOptions `json:"counter,omitempty"`
21638
21639	// DataAccess: Data access options.
21640	DataAccess *LogConfigDataAccessOptions `json:"dataAccess,omitempty"`
21641
21642	// ForceSendFields is a list of field names (e.g. "CloudAudit") to
21643	// unconditionally include in API requests. By default, fields with
21644	// empty values are omitted from API requests. However, any non-pointer,
21645	// non-interface field appearing in ForceSendFields will be sent to the
21646	// server regardless of whether the field is empty or not. This may be
21647	// used to include empty fields in Patch requests.
21648	ForceSendFields []string `json:"-"`
21649
21650	// NullFields is a list of field names (e.g. "CloudAudit") to include in
21651	// API requests with the JSON null value. By default, fields with empty
21652	// values are omitted from API requests. However, any field with an
21653	// empty value appearing in NullFields will be sent to the server as
21654	// null. It is an error if a field in this list has a non-empty value.
21655	// This may be used to include null fields in Patch requests.
21656	NullFields []string `json:"-"`
21657}
21658
21659func (s *LogConfig) MarshalJSON() ([]byte, error) {
21660	type NoMethod LogConfig
21661	raw := NoMethod(*s)
21662	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21663}
21664
21665// LogConfigCloudAuditOptions: Write a Cloud Audit log
21666type LogConfigCloudAuditOptions struct {
21667	// AuthorizationLoggingOptions: Information used by the Cloud Audit
21668	// Logging pipeline.
21669	AuthorizationLoggingOptions *AuthorizationLoggingOptions `json:"authorizationLoggingOptions,omitempty"`
21670
21671	// LogName: The log_name to populate in the Cloud Audit Record.
21672	//
21673	// Possible values:
21674	//   "ADMIN_ACTIVITY"
21675	//   "DATA_ACCESS"
21676	//   "UNSPECIFIED_LOG_NAME"
21677	LogName string `json:"logName,omitempty"`
21678
21679	// ForceSendFields is a list of field names (e.g.
21680	// "AuthorizationLoggingOptions") to unconditionally include in API
21681	// requests. By default, fields with empty values are omitted from API
21682	// requests. However, any non-pointer, non-interface field appearing in
21683	// ForceSendFields will be sent to the server regardless of whether the
21684	// field is empty or not. This may be used to include empty fields in
21685	// Patch requests.
21686	ForceSendFields []string `json:"-"`
21687
21688	// NullFields is a list of field names (e.g.
21689	// "AuthorizationLoggingOptions") to include in API requests with the
21690	// JSON null value. By default, fields with empty values are omitted
21691	// from API requests. However, any field with an empty value appearing
21692	// in NullFields will be sent to the server as null. It is an error if a
21693	// field in this list has a non-empty value. This may be used to include
21694	// null fields in Patch requests.
21695	NullFields []string `json:"-"`
21696}
21697
21698func (s *LogConfigCloudAuditOptions) MarshalJSON() ([]byte, error) {
21699	type NoMethod LogConfigCloudAuditOptions
21700	raw := NoMethod(*s)
21701	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21702}
21703
21704// LogConfigCounterOptions: Increment a streamz counter with the
21705// specified metric and field names.
21706//
21707// Metric names should start with a '/', generally be lowercase-only,
21708// and end in "_count". Field names should not contain an initial slash.
21709// The actual exported metric names will have "/iam/policy"
21710// prepended.
21711//
21712// Field names correspond to IAM request parameters and field values are
21713// their respective values.
21714//
21715// Supported field names: - "authority", which is "[token]" if
21716// IAMContext.token is present, otherwise the value of
21717// IAMContext.authority_selector if present, and otherwise a
21718// representation of IAMContext.principal; or - "iam_principal", a
21719// representation of IAMContext.principal even if a token or authority
21720// selector is present; or - "" (empty string), resulting in a counter
21721// with no fields.
21722//
21723// Examples: counter { metric: "/debug_access_count" field:
21724// "iam_principal" } ==> increment counter
21725// /iam/policy/debug_access_count {iam_principal=[value of
21726// IAMContext.principal]}
21727//
21728// TODO(b/141846426): Consider supporting "authority" and
21729// "iam_principal" fields in the same counter.
21730type LogConfigCounterOptions struct {
21731	// CustomFields: Custom fields.
21732	CustomFields []*LogConfigCounterOptionsCustomField `json:"customFields,omitempty"`
21733
21734	// Field: The field value to attribute.
21735	Field string `json:"field,omitempty"`
21736
21737	// Metric: The metric to update.
21738	Metric string `json:"metric,omitempty"`
21739
21740	// ForceSendFields is a list of field names (e.g. "CustomFields") to
21741	// unconditionally include in API requests. By default, fields with
21742	// empty values are omitted from API requests. However, any non-pointer,
21743	// non-interface field appearing in ForceSendFields will be sent to the
21744	// server regardless of whether the field is empty or not. This may be
21745	// used to include empty fields in Patch requests.
21746	ForceSendFields []string `json:"-"`
21747
21748	// NullFields is a list of field names (e.g. "CustomFields") to include
21749	// in API requests with the JSON null value. By default, fields with
21750	// empty values are omitted from API requests. However, any field with
21751	// an empty value appearing in NullFields will be sent to the server as
21752	// null. It is an error if a field in this list has a non-empty value.
21753	// This may be used to include null fields in Patch requests.
21754	NullFields []string `json:"-"`
21755}
21756
21757func (s *LogConfigCounterOptions) MarshalJSON() ([]byte, error) {
21758	type NoMethod LogConfigCounterOptions
21759	raw := NoMethod(*s)
21760	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21761}
21762
21763// LogConfigCounterOptionsCustomField: Custom fields. These can be used
21764// to create a counter with arbitrary field/value pairs. See:
21765// go/rpcsp-custom-fields.
21766type LogConfigCounterOptionsCustomField struct {
21767	// Name: Name is the field name.
21768	Name string `json:"name,omitempty"`
21769
21770	// Value: Value is the field value. It is important that in contrast to
21771	// the CounterOptions.field, the value here is a constant that is not
21772	// derived from the IAMContext.
21773	Value string `json:"value,omitempty"`
21774
21775	// ForceSendFields is a list of field names (e.g. "Name") to
21776	// unconditionally include in API requests. By default, fields with
21777	// empty values are omitted from API requests. However, any non-pointer,
21778	// non-interface field appearing in ForceSendFields will be sent to the
21779	// server regardless of whether the field is empty or not. This may be
21780	// used to include empty fields in Patch requests.
21781	ForceSendFields []string `json:"-"`
21782
21783	// NullFields is a list of field names (e.g. "Name") to include in API
21784	// requests with the JSON null value. By default, fields with empty
21785	// values are omitted from API requests. However, any field with an
21786	// empty value appearing in NullFields will be sent to the server as
21787	// null. It is an error if a field in this list has a non-empty value.
21788	// This may be used to include null fields in Patch requests.
21789	NullFields []string `json:"-"`
21790}
21791
21792func (s *LogConfigCounterOptionsCustomField) MarshalJSON() ([]byte, error) {
21793	type NoMethod LogConfigCounterOptionsCustomField
21794	raw := NoMethod(*s)
21795	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21796}
21797
21798// LogConfigDataAccessOptions: Write a Data Access (Gin) log
21799type LogConfigDataAccessOptions struct {
21800	// LogMode: Whether Gin logging should happen in a fail-closed manner at
21801	// the caller. This is relevant only in the LocalIAM implementation, for
21802	// now.
21803	//
21804	// Possible values:
21805	//   "LOG_FAIL_CLOSED"
21806	//   "LOG_MODE_UNSPECIFIED"
21807	LogMode string `json:"logMode,omitempty"`
21808
21809	// ForceSendFields is a list of field names (e.g. "LogMode") to
21810	// unconditionally include in API requests. By default, fields with
21811	// empty values are omitted from API requests. However, any non-pointer,
21812	// non-interface field appearing in ForceSendFields will be sent to the
21813	// server regardless of whether the field is empty or not. This may be
21814	// used to include empty fields in Patch requests.
21815	ForceSendFields []string `json:"-"`
21816
21817	// NullFields is a list of field names (e.g. "LogMode") to include in
21818	// API requests with the JSON null value. By default, fields with empty
21819	// values are omitted from API requests. However, any field with an
21820	// empty value appearing in NullFields will be sent to the server as
21821	// null. It is an error if a field in this list has a non-empty value.
21822	// This may be used to include null fields in Patch requests.
21823	NullFields []string `json:"-"`
21824}
21825
21826func (s *LogConfigDataAccessOptions) MarshalJSON() ([]byte, error) {
21827	type NoMethod LogConfigDataAccessOptions
21828	raw := NoMethod(*s)
21829	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21830}
21831
21832// MachineImage: Represents a machine image resource.
21833//
21834// A machine image is a Compute Engine resource that stores all the
21835// configuration, metadata, permissions, and data from one or more disks
21836// required to create a Virtual machine (VM) instance. For more
21837// information, see Machine images. (== resource_for
21838// {$api_version}.machineImages ==)
21839type MachineImage struct {
21840	// CreationTimestamp: [Output Only] The creation timestamp for this
21841	// machine image in RFC3339 text format.
21842	CreationTimestamp string `json:"creationTimestamp,omitempty"`
21843
21844	// Description: An optional description of this resource. Provide this
21845	// property when you create the resource.
21846	Description string `json:"description,omitempty"`
21847
21848	// GuestFlush: [Input Only] Specifies to create an application
21849	// consistent machine image by informing the OS to prepare for the
21850	// snapshot process. Currently only supported on Windows instances using
21851	// the Volume Shadow Copy Service (VSS).
21852	GuestFlush bool `json:"guestFlush,omitempty"`
21853
21854	// Id: [Output Only] A unique identifier for this machine image. The
21855	// server defines this identifier.
21856	Id uint64 `json:"id,omitempty,string"`
21857
21858	// Kind: [Output Only] The resource type, which is always
21859	// compute#machineImage for machine image.
21860	Kind string `json:"kind,omitempty"`
21861
21862	// MachineImageEncryptionKey: Encrypts the machine image using a
21863	// customer-supplied encryption key.
21864	//
21865	// After you encrypt a machine image using a customer-supplied key, you
21866	// must provide the same key if you use the machine image later. For
21867	// example, you must provide the encryption key when you create an
21868	// instance from the encrypted machine image in a future
21869	// request.
21870	//
21871	// Customer-supplied encryption keys do not protect access to metadata
21872	// of the machine image.
21873	//
21874	// If you do not provide an encryption key when creating the machine
21875	// image, then the machine image will be encrypted using an
21876	// automatically generated key and you do not need to provide a key to
21877	// use the machine image later.
21878	MachineImageEncryptionKey *CustomerEncryptionKey `json:"machineImageEncryptionKey,omitempty"`
21879
21880	// Name: Name of the resource; provided by the client when the resource
21881	// is created. The name must be 1-63 characters long, and comply with
21882	// RFC1035. Specifically, the name must be 1-63 characters long and
21883	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
21884	// the first character must be a lowercase letter, and all following
21885	// characters must be a dash, lowercase letter, or digit, except the
21886	// last character, which cannot be a dash.
21887	Name string `json:"name,omitempty"`
21888
21889	// SelfLink: [Output Only] The URL for this machine image. The server
21890	// defines this URL.
21891	SelfLink string `json:"selfLink,omitempty"`
21892
21893	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
21894	// with the resource id.
21895	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
21896
21897	// SourceDiskEncryptionKeys: [Input Only] The customer-supplied
21898	// encryption key of the disks attached to the source instance. Required
21899	// if the source disk is protected by a customer-supplied encryption
21900	// key.
21901	SourceDiskEncryptionKeys []*SourceDiskEncryptionKey `json:"sourceDiskEncryptionKeys,omitempty"`
21902
21903	// SourceInstance: The source instance used to create the machine image.
21904	// You can provide this as a partial or full URL to the resource. For
21905	// example, the following are valid values:
21906	// -
21907	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
21908	// - projects/project/zones/zone/instances/instance
21909	SourceInstance string `json:"sourceInstance,omitempty"`
21910
21911	// SourceInstanceProperties: [Output Only] Properties of source
21912	// instance.
21913	SourceInstanceProperties *SourceInstanceProperties `json:"sourceInstanceProperties,omitempty"`
21914
21915	// Status: [Output Only] The status of the machine image. One of the
21916	// following values: INVALID, CREATING, READY, DELETING, and UPLOADING.
21917	//
21918	// Possible values:
21919	//   "CREATING"
21920	//   "DELETING"
21921	//   "INVALID"
21922	//   "READY"
21923	//   "UPLOADING"
21924	Status string `json:"status,omitempty"`
21925
21926	// StorageLocations: GCS bucket storage location of the machine image
21927	// (regional or multi-regional).
21928	StorageLocations []string `json:"storageLocations,omitempty"`
21929
21930	// TotalStorageBytes: [Output Only] Total size of the storage used by
21931	// the machine image.
21932	TotalStorageBytes int64 `json:"totalStorageBytes,omitempty,string"`
21933
21934	// ServerResponse contains the HTTP response code and headers from the
21935	// server.
21936	googleapi.ServerResponse `json:"-"`
21937
21938	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
21939	// to unconditionally include in API requests. By default, fields with
21940	// empty values are omitted from API requests. However, any non-pointer,
21941	// non-interface field appearing in ForceSendFields will be sent to the
21942	// server regardless of whether the field is empty or not. This may be
21943	// used to include empty fields in Patch requests.
21944	ForceSendFields []string `json:"-"`
21945
21946	// NullFields is a list of field names (e.g. "CreationTimestamp") to
21947	// include in API requests with the JSON null value. By default, fields
21948	// with empty values are omitted from API requests. However, any field
21949	// with an empty value appearing in NullFields will be sent to the
21950	// server as null. It is an error if a field in this list has a
21951	// non-empty value. This may be used to include null fields in Patch
21952	// requests.
21953	NullFields []string `json:"-"`
21954}
21955
21956func (s *MachineImage) MarshalJSON() ([]byte, error) {
21957	type NoMethod MachineImage
21958	raw := NoMethod(*s)
21959	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21960}
21961
21962// MachineImageList: A list of machine images.
21963type MachineImageList struct {
21964	// Id: [Output Only] Unique identifier for the resource; defined by the
21965	// server.
21966	Id string `json:"id,omitempty"`
21967
21968	// Items: A list of MachineImage resources.
21969	Items []*MachineImage `json:"items,omitempty"`
21970
21971	// Kind: [Output Only] The resource type, which is always
21972	// compute#machineImagesListResponse for machine image lists.
21973	Kind string `json:"kind,omitempty"`
21974
21975	// NextPageToken: [Output Only] This token allows you to get the next
21976	// page of results for list requests. If the number of results is larger
21977	// than maxResults, use the nextPageToken as a value for the query
21978	// parameter pageToken in the next list request. Subsequent list
21979	// requests will have their own nextPageToken to continue paging through
21980	// the results.
21981	NextPageToken string `json:"nextPageToken,omitempty"`
21982
21983	// SelfLink: [Output Only] Server-defined URL for this resource.
21984	SelfLink string `json:"selfLink,omitempty"`
21985
21986	// Warning: [Output Only] Informational warning message.
21987	Warning *MachineImageListWarning `json:"warning,omitempty"`
21988
21989	// ServerResponse contains the HTTP response code and headers from the
21990	// server.
21991	googleapi.ServerResponse `json:"-"`
21992
21993	// ForceSendFields is a list of field names (e.g. "Id") to
21994	// unconditionally include in API requests. By default, fields with
21995	// empty values are omitted from API requests. However, any non-pointer,
21996	// non-interface field appearing in ForceSendFields will be sent to the
21997	// server regardless of whether the field is empty or not. This may be
21998	// used to include empty fields in Patch requests.
21999	ForceSendFields []string `json:"-"`
22000
22001	// NullFields is a list of field names (e.g. "Id") to include in API
22002	// requests with the JSON null value. By default, fields with empty
22003	// values are omitted from API requests. However, any field with an
22004	// empty value appearing in NullFields will be sent to the server as
22005	// null. It is an error if a field in this list has a non-empty value.
22006	// This may be used to include null fields in Patch requests.
22007	NullFields []string `json:"-"`
22008}
22009
22010func (s *MachineImageList) MarshalJSON() ([]byte, error) {
22011	type NoMethod MachineImageList
22012	raw := NoMethod(*s)
22013	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22014}
22015
22016// MachineImageListWarning: [Output Only] Informational warning message.
22017type MachineImageListWarning struct {
22018	// Code: [Output Only] A warning code, if applicable. For example,
22019	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22020	// the response.
22021	//
22022	// Possible values:
22023	//   "CLEANUP_FAILED"
22024	//   "DEPRECATED_RESOURCE_USED"
22025	//   "DEPRECATED_TYPE_USED"
22026	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22027	//   "EXPERIMENTAL_TYPE_USED"
22028	//   "EXTERNAL_API_WARNING"
22029	//   "FIELD_VALUE_OVERRIDEN"
22030	//   "INJECTED_KERNELS_DEPRECATED"
22031	//   "MISSING_TYPE_DEPENDENCY"
22032	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22033	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22034	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22035	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22036	//   "NEXT_HOP_NOT_RUNNING"
22037	//   "NOT_CRITICAL_ERROR"
22038	//   "NO_RESULTS_ON_PAGE"
22039	//   "REQUIRED_TOS_AGREEMENT"
22040	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22041	//   "RESOURCE_NOT_DELETED"
22042	//   "SCHEMA_VALIDATION_IGNORED"
22043	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22044	//   "UNDECLARED_PROPERTIES"
22045	//   "UNREACHABLE"
22046	Code string `json:"code,omitempty"`
22047
22048	// Data: [Output Only] Metadata about this warning in key: value format.
22049	// For example:
22050	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22051	Data []*MachineImageListWarningData `json:"data,omitempty"`
22052
22053	// Message: [Output Only] A human-readable description of the warning
22054	// code.
22055	Message string `json:"message,omitempty"`
22056
22057	// ForceSendFields is a list of field names (e.g. "Code") to
22058	// unconditionally include in API requests. By default, fields with
22059	// empty values are omitted from API requests. However, any non-pointer,
22060	// non-interface field appearing in ForceSendFields will be sent to the
22061	// server regardless of whether the field is empty or not. This may be
22062	// used to include empty fields in Patch requests.
22063	ForceSendFields []string `json:"-"`
22064
22065	// NullFields is a list of field names (e.g. "Code") to include in API
22066	// requests with the JSON null value. By default, fields with empty
22067	// values are omitted from API requests. However, any field with an
22068	// empty value appearing in NullFields will be sent to the server as
22069	// null. It is an error if a field in this list has a non-empty value.
22070	// This may be used to include null fields in Patch requests.
22071	NullFields []string `json:"-"`
22072}
22073
22074func (s *MachineImageListWarning) MarshalJSON() ([]byte, error) {
22075	type NoMethod MachineImageListWarning
22076	raw := NoMethod(*s)
22077	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22078}
22079
22080type MachineImageListWarningData struct {
22081	// Key: [Output Only] A key that provides more detail on the warning
22082	// being returned. For example, for warnings where there are no results
22083	// in a list request for a particular zone, this key might be scope and
22084	// the key value might be the zone name. Other examples might be a key
22085	// indicating a deprecated resource and a suggested replacement, or a
22086	// warning about invalid network settings (for example, if an instance
22087	// attempts to perform IP forwarding but is not enabled for IP
22088	// forwarding).
22089	Key string `json:"key,omitempty"`
22090
22091	// Value: [Output Only] A warning data value corresponding to the key.
22092	Value string `json:"value,omitempty"`
22093
22094	// ForceSendFields is a list of field names (e.g. "Key") to
22095	// unconditionally include in API requests. By default, fields with
22096	// empty values are omitted from API requests. However, any non-pointer,
22097	// non-interface field appearing in ForceSendFields will be sent to the
22098	// server regardless of whether the field is empty or not. This may be
22099	// used to include empty fields in Patch requests.
22100	ForceSendFields []string `json:"-"`
22101
22102	// NullFields is a list of field names (e.g. "Key") to include in API
22103	// requests with the JSON null value. By default, fields with empty
22104	// values are omitted from API requests. However, any field with an
22105	// empty value appearing in NullFields will be sent to the server as
22106	// null. It is an error if a field in this list has a non-empty value.
22107	// This may be used to include null fields in Patch requests.
22108	NullFields []string `json:"-"`
22109}
22110
22111func (s *MachineImageListWarningData) MarshalJSON() ([]byte, error) {
22112	type NoMethod MachineImageListWarningData
22113	raw := NoMethod(*s)
22114	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22115}
22116
22117// MachineType: Represents a Machine Type resource.
22118//
22119// You can use specific machine types for your VM instances based on
22120// performance and pricing requirements. For more information, read
22121// Machine Types. (== resource_for {$api_version}.machineTypes ==)
22122type MachineType struct {
22123	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
22124	// format.
22125	CreationTimestamp string `json:"creationTimestamp,omitempty"`
22126
22127	// Deprecated: [Output Only] The deprecation status associated with this
22128	// machine type.
22129	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
22130
22131	// Description: [Output Only] An optional textual description of the
22132	// resource.
22133	Description string `json:"description,omitempty"`
22134
22135	// GuestCpus: [Output Only] The number of virtual CPUs that are
22136	// available to the instance.
22137	GuestCpus int64 `json:"guestCpus,omitempty"`
22138
22139	// Id: [Output Only] The unique identifier for the resource. This
22140	// identifier is defined by the server.
22141	Id uint64 `json:"id,omitempty,string"`
22142
22143	// IsSharedCpu: [Output Only] Whether this machine type has a shared
22144	// CPU. See Shared-core machine types for more information.
22145	IsSharedCpu bool `json:"isSharedCpu,omitempty"`
22146
22147	// Kind: [Output Only] The type of the resource. Always
22148	// compute#machineType for machine types.
22149	Kind string `json:"kind,omitempty"`
22150
22151	// MaximumPersistentDisks: [Output Only] Maximum persistent disks
22152	// allowed.
22153	MaximumPersistentDisks int64 `json:"maximumPersistentDisks,omitempty"`
22154
22155	// MaximumPersistentDisksSizeGb: [Output Only] Maximum total persistent
22156	// disks size (GB) allowed.
22157	MaximumPersistentDisksSizeGb int64 `json:"maximumPersistentDisksSizeGb,omitempty,string"`
22158
22159	// MemoryMb: [Output Only] The amount of physical memory available to
22160	// the instance, defined in MB.
22161	MemoryMb int64 `json:"memoryMb,omitempty"`
22162
22163	// Name: [Output Only] Name of the resource.
22164	Name string `json:"name,omitempty"`
22165
22166	// SelfLink: [Output Only] Server-defined URL for the resource.
22167	SelfLink string `json:"selfLink,omitempty"`
22168
22169	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
22170	// with the resource id.
22171	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
22172
22173	// Zone: [Output Only] The name of the zone where the machine type
22174	// resides, such as us-central1-a.
22175	Zone string `json:"zone,omitempty"`
22176
22177	// ServerResponse contains the HTTP response code and headers from the
22178	// server.
22179	googleapi.ServerResponse `json:"-"`
22180
22181	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
22182	// to unconditionally include in API requests. By default, fields with
22183	// empty values are omitted from API requests. However, any non-pointer,
22184	// non-interface field appearing in ForceSendFields will be sent to the
22185	// server regardless of whether the field is empty or not. This may be
22186	// used to include empty fields in Patch requests.
22187	ForceSendFields []string `json:"-"`
22188
22189	// NullFields is a list of field names (e.g. "CreationTimestamp") to
22190	// include in API requests with the JSON null value. By default, fields
22191	// with empty values are omitted from API requests. However, any field
22192	// with an empty value appearing in NullFields will be sent to the
22193	// server as null. It is an error if a field in this list has a
22194	// non-empty value. This may be used to include null fields in Patch
22195	// requests.
22196	NullFields []string `json:"-"`
22197}
22198
22199func (s *MachineType) MarshalJSON() ([]byte, error) {
22200	type NoMethod MachineType
22201	raw := NoMethod(*s)
22202	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22203}
22204
22205type MachineTypeAggregatedList struct {
22206	// Id: [Output Only] Unique identifier for the resource; defined by the
22207	// server.
22208	Id string `json:"id,omitempty"`
22209
22210	// Items: A list of MachineTypesScopedList resources.
22211	Items map[string]MachineTypesScopedList `json:"items,omitempty"`
22212
22213	// Kind: [Output Only] Type of resource. Always
22214	// compute#machineTypeAggregatedList for aggregated lists of machine
22215	// types.
22216	Kind string `json:"kind,omitempty"`
22217
22218	// NextPageToken: [Output Only] This token allows you to get the next
22219	// page of results for list requests. If the number of results is larger
22220	// than maxResults, use the nextPageToken as a value for the query
22221	// parameter pageToken in the next list request. Subsequent list
22222	// requests will have their own nextPageToken to continue paging through
22223	// the results.
22224	NextPageToken string `json:"nextPageToken,omitempty"`
22225
22226	// SelfLink: [Output Only] Server-defined URL for this resource.
22227	SelfLink string `json:"selfLink,omitempty"`
22228
22229	// Warning: [Output Only] Informational warning message.
22230	Warning *MachineTypeAggregatedListWarning `json:"warning,omitempty"`
22231
22232	// ServerResponse contains the HTTP response code and headers from the
22233	// server.
22234	googleapi.ServerResponse `json:"-"`
22235
22236	// ForceSendFields is a list of field names (e.g. "Id") to
22237	// unconditionally include in API requests. By default, fields with
22238	// empty values are omitted from API requests. However, any non-pointer,
22239	// non-interface field appearing in ForceSendFields will be sent to the
22240	// server regardless of whether the field is empty or not. This may be
22241	// used to include empty fields in Patch requests.
22242	ForceSendFields []string `json:"-"`
22243
22244	// NullFields is a list of field names (e.g. "Id") to include in API
22245	// requests with the JSON null value. By default, fields with empty
22246	// values are omitted from API requests. However, any field with an
22247	// empty value appearing in NullFields will be sent to the server as
22248	// null. It is an error if a field in this list has a non-empty value.
22249	// This may be used to include null fields in Patch requests.
22250	NullFields []string `json:"-"`
22251}
22252
22253func (s *MachineTypeAggregatedList) MarshalJSON() ([]byte, error) {
22254	type NoMethod MachineTypeAggregatedList
22255	raw := NoMethod(*s)
22256	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22257}
22258
22259// MachineTypeAggregatedListWarning: [Output Only] Informational warning
22260// message.
22261type MachineTypeAggregatedListWarning struct {
22262	// Code: [Output Only] A warning code, if applicable. For example,
22263	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22264	// the response.
22265	//
22266	// Possible values:
22267	//   "CLEANUP_FAILED"
22268	//   "DEPRECATED_RESOURCE_USED"
22269	//   "DEPRECATED_TYPE_USED"
22270	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22271	//   "EXPERIMENTAL_TYPE_USED"
22272	//   "EXTERNAL_API_WARNING"
22273	//   "FIELD_VALUE_OVERRIDEN"
22274	//   "INJECTED_KERNELS_DEPRECATED"
22275	//   "MISSING_TYPE_DEPENDENCY"
22276	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22277	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22278	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22279	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22280	//   "NEXT_HOP_NOT_RUNNING"
22281	//   "NOT_CRITICAL_ERROR"
22282	//   "NO_RESULTS_ON_PAGE"
22283	//   "REQUIRED_TOS_AGREEMENT"
22284	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22285	//   "RESOURCE_NOT_DELETED"
22286	//   "SCHEMA_VALIDATION_IGNORED"
22287	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22288	//   "UNDECLARED_PROPERTIES"
22289	//   "UNREACHABLE"
22290	Code string `json:"code,omitempty"`
22291
22292	// Data: [Output Only] Metadata about this warning in key: value format.
22293	// For example:
22294	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22295	Data []*MachineTypeAggregatedListWarningData `json:"data,omitempty"`
22296
22297	// Message: [Output Only] A human-readable description of the warning
22298	// code.
22299	Message string `json:"message,omitempty"`
22300
22301	// ForceSendFields is a list of field names (e.g. "Code") to
22302	// unconditionally include in API requests. By default, fields with
22303	// empty values are omitted from API requests. However, any non-pointer,
22304	// non-interface field appearing in ForceSendFields will be sent to the
22305	// server regardless of whether the field is empty or not. This may be
22306	// used to include empty fields in Patch requests.
22307	ForceSendFields []string `json:"-"`
22308
22309	// NullFields is a list of field names (e.g. "Code") to include in API
22310	// requests with the JSON null value. By default, fields with empty
22311	// values are omitted from API requests. However, any field with an
22312	// empty value appearing in NullFields will be sent to the server as
22313	// null. It is an error if a field in this list has a non-empty value.
22314	// This may be used to include null fields in Patch requests.
22315	NullFields []string `json:"-"`
22316}
22317
22318func (s *MachineTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
22319	type NoMethod MachineTypeAggregatedListWarning
22320	raw := NoMethod(*s)
22321	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22322}
22323
22324type MachineTypeAggregatedListWarningData struct {
22325	// Key: [Output Only] A key that provides more detail on the warning
22326	// being returned. For example, for warnings where there are no results
22327	// in a list request for a particular zone, this key might be scope and
22328	// the key value might be the zone name. Other examples might be a key
22329	// indicating a deprecated resource and a suggested replacement, or a
22330	// warning about invalid network settings (for example, if an instance
22331	// attempts to perform IP forwarding but is not enabled for IP
22332	// forwarding).
22333	Key string `json:"key,omitempty"`
22334
22335	// Value: [Output Only] A warning data value corresponding to the key.
22336	Value string `json:"value,omitempty"`
22337
22338	// ForceSendFields is a list of field names (e.g. "Key") to
22339	// unconditionally include in API requests. By default, fields with
22340	// empty values are omitted from API requests. However, any non-pointer,
22341	// non-interface field appearing in ForceSendFields will be sent to the
22342	// server regardless of whether the field is empty or not. This may be
22343	// used to include empty fields in Patch requests.
22344	ForceSendFields []string `json:"-"`
22345
22346	// NullFields is a list of field names (e.g. "Key") to include in API
22347	// requests with the JSON null value. By default, fields with empty
22348	// values are omitted from API requests. However, any field with an
22349	// empty value appearing in NullFields will be sent to the server as
22350	// null. It is an error if a field in this list has a non-empty value.
22351	// This may be used to include null fields in Patch requests.
22352	NullFields []string `json:"-"`
22353}
22354
22355func (s *MachineTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
22356	type NoMethod MachineTypeAggregatedListWarningData
22357	raw := NoMethod(*s)
22358	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22359}
22360
22361// MachineTypeList: Contains a list of machine types.
22362type MachineTypeList struct {
22363	// Id: [Output Only] Unique identifier for the resource; defined by the
22364	// server.
22365	Id string `json:"id,omitempty"`
22366
22367	// Items: A list of MachineType resources.
22368	Items []*MachineType `json:"items,omitempty"`
22369
22370	// Kind: [Output Only] Type of resource. Always compute#machineTypeList
22371	// for lists of machine types.
22372	Kind string `json:"kind,omitempty"`
22373
22374	// NextPageToken: [Output Only] This token allows you to get the next
22375	// page of results for list requests. If the number of results is larger
22376	// than maxResults, use the nextPageToken as a value for the query
22377	// parameter pageToken in the next list request. Subsequent list
22378	// requests will have their own nextPageToken to continue paging through
22379	// the results.
22380	NextPageToken string `json:"nextPageToken,omitempty"`
22381
22382	// SelfLink: [Output Only] Server-defined URL for this resource.
22383	SelfLink string `json:"selfLink,omitempty"`
22384
22385	// Warning: [Output Only] Informational warning message.
22386	Warning *MachineTypeListWarning `json:"warning,omitempty"`
22387
22388	// ServerResponse contains the HTTP response code and headers from the
22389	// server.
22390	googleapi.ServerResponse `json:"-"`
22391
22392	// ForceSendFields is a list of field names (e.g. "Id") to
22393	// unconditionally include in API requests. By default, fields with
22394	// empty values are omitted from API requests. However, any non-pointer,
22395	// non-interface field appearing in ForceSendFields will be sent to the
22396	// server regardless of whether the field is empty or not. This may be
22397	// used to include empty fields in Patch requests.
22398	ForceSendFields []string `json:"-"`
22399
22400	// NullFields is a list of field names (e.g. "Id") to include in API
22401	// requests with the JSON null value. By default, fields with empty
22402	// values are omitted from API requests. However, any field with an
22403	// empty value appearing in NullFields will be sent to the server as
22404	// null. It is an error if a field in this list has a non-empty value.
22405	// This may be used to include null fields in Patch requests.
22406	NullFields []string `json:"-"`
22407}
22408
22409func (s *MachineTypeList) MarshalJSON() ([]byte, error) {
22410	type NoMethod MachineTypeList
22411	raw := NoMethod(*s)
22412	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22413}
22414
22415// MachineTypeListWarning: [Output Only] Informational warning message.
22416type MachineTypeListWarning struct {
22417	// Code: [Output Only] A warning code, if applicable. For example,
22418	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22419	// the response.
22420	//
22421	// Possible values:
22422	//   "CLEANUP_FAILED"
22423	//   "DEPRECATED_RESOURCE_USED"
22424	//   "DEPRECATED_TYPE_USED"
22425	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22426	//   "EXPERIMENTAL_TYPE_USED"
22427	//   "EXTERNAL_API_WARNING"
22428	//   "FIELD_VALUE_OVERRIDEN"
22429	//   "INJECTED_KERNELS_DEPRECATED"
22430	//   "MISSING_TYPE_DEPENDENCY"
22431	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22432	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22433	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22434	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22435	//   "NEXT_HOP_NOT_RUNNING"
22436	//   "NOT_CRITICAL_ERROR"
22437	//   "NO_RESULTS_ON_PAGE"
22438	//   "REQUIRED_TOS_AGREEMENT"
22439	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22440	//   "RESOURCE_NOT_DELETED"
22441	//   "SCHEMA_VALIDATION_IGNORED"
22442	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22443	//   "UNDECLARED_PROPERTIES"
22444	//   "UNREACHABLE"
22445	Code string `json:"code,omitempty"`
22446
22447	// Data: [Output Only] Metadata about this warning in key: value format.
22448	// For example:
22449	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22450	Data []*MachineTypeListWarningData `json:"data,omitempty"`
22451
22452	// Message: [Output Only] A human-readable description of the warning
22453	// code.
22454	Message string `json:"message,omitempty"`
22455
22456	// ForceSendFields is a list of field names (e.g. "Code") to
22457	// unconditionally include in API requests. By default, fields with
22458	// empty values are omitted from API requests. However, any non-pointer,
22459	// non-interface field appearing in ForceSendFields will be sent to the
22460	// server regardless of whether the field is empty or not. This may be
22461	// used to include empty fields in Patch requests.
22462	ForceSendFields []string `json:"-"`
22463
22464	// NullFields is a list of field names (e.g. "Code") to include in API
22465	// requests with the JSON null value. By default, fields with empty
22466	// values are omitted from API requests. However, any field with an
22467	// empty value appearing in NullFields will be sent to the server as
22468	// null. It is an error if a field in this list has a non-empty value.
22469	// This may be used to include null fields in Patch requests.
22470	NullFields []string `json:"-"`
22471}
22472
22473func (s *MachineTypeListWarning) MarshalJSON() ([]byte, error) {
22474	type NoMethod MachineTypeListWarning
22475	raw := NoMethod(*s)
22476	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22477}
22478
22479type MachineTypeListWarningData struct {
22480	// Key: [Output Only] A key that provides more detail on the warning
22481	// being returned. For example, for warnings where there are no results
22482	// in a list request for a particular zone, this key might be scope and
22483	// the key value might be the zone name. Other examples might be a key
22484	// indicating a deprecated resource and a suggested replacement, or a
22485	// warning about invalid network settings (for example, if an instance
22486	// attempts to perform IP forwarding but is not enabled for IP
22487	// forwarding).
22488	Key string `json:"key,omitempty"`
22489
22490	// Value: [Output Only] A warning data value corresponding to the key.
22491	Value string `json:"value,omitempty"`
22492
22493	// ForceSendFields is a list of field names (e.g. "Key") to
22494	// unconditionally include in API requests. By default, fields with
22495	// empty values are omitted from API requests. However, any non-pointer,
22496	// non-interface field appearing in ForceSendFields will be sent to the
22497	// server regardless of whether the field is empty or not. This may be
22498	// used to include empty fields in Patch requests.
22499	ForceSendFields []string `json:"-"`
22500
22501	// NullFields is a list of field names (e.g. "Key") to include in API
22502	// requests with the JSON null value. By default, fields with empty
22503	// values are omitted from API requests. However, any field with an
22504	// empty value appearing in NullFields will be sent to the server as
22505	// null. It is an error if a field in this list has a non-empty value.
22506	// This may be used to include null fields in Patch requests.
22507	NullFields []string `json:"-"`
22508}
22509
22510func (s *MachineTypeListWarningData) MarshalJSON() ([]byte, error) {
22511	type NoMethod MachineTypeListWarningData
22512	raw := NoMethod(*s)
22513	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22514}
22515
22516type MachineTypesScopedList struct {
22517	// MachineTypes: [Output Only] A list of machine types contained in this
22518	// scope.
22519	MachineTypes []*MachineType `json:"machineTypes,omitempty"`
22520
22521	// Warning: [Output Only] An informational warning that appears when the
22522	// machine types list is empty.
22523	Warning *MachineTypesScopedListWarning `json:"warning,omitempty"`
22524
22525	// ForceSendFields is a list of field names (e.g. "MachineTypes") to
22526	// unconditionally include in API requests. By default, fields with
22527	// empty values are omitted from API requests. However, any non-pointer,
22528	// non-interface field appearing in ForceSendFields will be sent to the
22529	// server regardless of whether the field is empty or not. This may be
22530	// used to include empty fields in Patch requests.
22531	ForceSendFields []string `json:"-"`
22532
22533	// NullFields is a list of field names (e.g. "MachineTypes") to include
22534	// in API requests with the JSON null value. By default, fields with
22535	// empty values are omitted from API requests. However, any field with
22536	// an empty value appearing in NullFields will be sent to the server as
22537	// null. It is an error if a field in this list has a non-empty value.
22538	// This may be used to include null fields in Patch requests.
22539	NullFields []string `json:"-"`
22540}
22541
22542func (s *MachineTypesScopedList) MarshalJSON() ([]byte, error) {
22543	type NoMethod MachineTypesScopedList
22544	raw := NoMethod(*s)
22545	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22546}
22547
22548// MachineTypesScopedListWarning: [Output Only] An informational warning
22549// that appears when the machine types list is empty.
22550type MachineTypesScopedListWarning struct {
22551	// Code: [Output Only] A warning code, if applicable. For example,
22552	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22553	// the response.
22554	//
22555	// Possible values:
22556	//   "CLEANUP_FAILED"
22557	//   "DEPRECATED_RESOURCE_USED"
22558	//   "DEPRECATED_TYPE_USED"
22559	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22560	//   "EXPERIMENTAL_TYPE_USED"
22561	//   "EXTERNAL_API_WARNING"
22562	//   "FIELD_VALUE_OVERRIDEN"
22563	//   "INJECTED_KERNELS_DEPRECATED"
22564	//   "MISSING_TYPE_DEPENDENCY"
22565	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22566	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22567	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22568	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22569	//   "NEXT_HOP_NOT_RUNNING"
22570	//   "NOT_CRITICAL_ERROR"
22571	//   "NO_RESULTS_ON_PAGE"
22572	//   "REQUIRED_TOS_AGREEMENT"
22573	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22574	//   "RESOURCE_NOT_DELETED"
22575	//   "SCHEMA_VALIDATION_IGNORED"
22576	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22577	//   "UNDECLARED_PROPERTIES"
22578	//   "UNREACHABLE"
22579	Code string `json:"code,omitempty"`
22580
22581	// Data: [Output Only] Metadata about this warning in key: value format.
22582	// For example:
22583	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22584	Data []*MachineTypesScopedListWarningData `json:"data,omitempty"`
22585
22586	// Message: [Output Only] A human-readable description of the warning
22587	// code.
22588	Message string `json:"message,omitempty"`
22589
22590	// ForceSendFields is a list of field names (e.g. "Code") to
22591	// unconditionally include in API requests. By default, fields with
22592	// empty values are omitted from API requests. However, any non-pointer,
22593	// non-interface field appearing in ForceSendFields will be sent to the
22594	// server regardless of whether the field is empty or not. This may be
22595	// used to include empty fields in Patch requests.
22596	ForceSendFields []string `json:"-"`
22597
22598	// NullFields is a list of field names (e.g. "Code") to include in API
22599	// requests with the JSON null value. By default, fields with empty
22600	// values are omitted from API requests. However, any field with an
22601	// empty value appearing in NullFields will be sent to the server as
22602	// null. It is an error if a field in this list has a non-empty value.
22603	// This may be used to include null fields in Patch requests.
22604	NullFields []string `json:"-"`
22605}
22606
22607func (s *MachineTypesScopedListWarning) MarshalJSON() ([]byte, error) {
22608	type NoMethod MachineTypesScopedListWarning
22609	raw := NoMethod(*s)
22610	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22611}
22612
22613type MachineTypesScopedListWarningData struct {
22614	// Key: [Output Only] A key that provides more detail on the warning
22615	// being returned. For example, for warnings where there are no results
22616	// in a list request for a particular zone, this key might be scope and
22617	// the key value might be the zone name. Other examples might be a key
22618	// indicating a deprecated resource and a suggested replacement, or a
22619	// warning about invalid network settings (for example, if an instance
22620	// attempts to perform IP forwarding but is not enabled for IP
22621	// forwarding).
22622	Key string `json:"key,omitempty"`
22623
22624	// Value: [Output Only] A warning data value corresponding to the key.
22625	Value string `json:"value,omitempty"`
22626
22627	// ForceSendFields is a list of field names (e.g. "Key") to
22628	// unconditionally include in API requests. By default, fields with
22629	// empty values are omitted from API requests. However, any non-pointer,
22630	// non-interface field appearing in ForceSendFields will be sent to the
22631	// server regardless of whether the field is empty or not. This may be
22632	// used to include empty fields in Patch requests.
22633	ForceSendFields []string `json:"-"`
22634
22635	// NullFields is a list of field names (e.g. "Key") to include in API
22636	// requests with the JSON null value. By default, fields with empty
22637	// values are omitted from API requests. However, any field with an
22638	// empty value appearing in NullFields will be sent to the server as
22639	// null. It is an error if a field in this list has a non-empty value.
22640	// This may be used to include null fields in Patch requests.
22641	NullFields []string `json:"-"`
22642}
22643
22644func (s *MachineTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
22645	type NoMethod MachineTypesScopedListWarningData
22646	raw := NoMethod(*s)
22647	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22648}
22649
22650// ManagedInstance: A Managed Instance resource.
22651type ManagedInstance struct {
22652	// CurrentAction: [Output Only] The current action that the managed
22653	// instance group has scheduled for the instance. Possible values:
22654	// - NONE The instance is running, and the managed instance group does
22655	// not have any scheduled actions for this instance.
22656	// - CREATING The managed instance group is creating this instance. If
22657	// the group fails to create this instance, it will try again until it
22658	// is successful.
22659	// - CREATING_WITHOUT_RETRIES The managed instance group is attempting
22660	// to create this instance only once. If the group fails to create this
22661	// instance, it does not try again and the group's targetSize value is
22662	// decreased instead.
22663	// - RECREATING The managed instance group is recreating this instance.
22664	//
22665	// - DELETING The managed instance group is permanently deleting this
22666	// instance.
22667	// - ABANDONING The managed instance group is abandoning this instance.
22668	// The instance will be removed from the instance group and from any
22669	// target pools that are associated with this group.
22670	// - RESTARTING The managed instance group is restarting the instance.
22671	//
22672	// - REFRESHING The managed instance group is applying configuration
22673	// changes to the instance without stopping it. For example, the group
22674	// can update the target pool list for an instance without stopping that
22675	// instance.
22676	// - VERIFYING The managed instance group has created the instance and
22677	// it is in the process of being verified.
22678	//
22679	// Possible values:
22680	//   "ABANDONING"
22681	//   "CREATING"
22682	//   "CREATING_WITHOUT_RETRIES"
22683	//   "DELETING"
22684	//   "NONE"
22685	//   "RECREATING"
22686	//   "REFRESHING"
22687	//   "RESTARTING"
22688	//   "VERIFYING"
22689	CurrentAction string `json:"currentAction,omitempty"`
22690
22691	// Id: [Output only] The unique identifier for this resource. This field
22692	// is empty when instance does not exist.
22693	Id uint64 `json:"id,omitempty,string"`
22694
22695	// Instance: [Output Only] The URL of the instance. The URL can exist
22696	// even if the instance has not yet been created.
22697	Instance string `json:"instance,omitempty"`
22698
22699	// InstanceHealth: [Output Only] Health state of the instance per
22700	// health-check.
22701	InstanceHealth []*ManagedInstanceInstanceHealth `json:"instanceHealth,omitempty"`
22702
22703	// InstanceStatus: [Output Only] The status of the instance. This field
22704	// is empty when the instance does not exist.
22705	//
22706	// Possible values:
22707	//   "PROVISIONING"
22708	//   "REPAIRING"
22709	//   "RUNNING"
22710	//   "STAGING"
22711	//   "STOPPED"
22712	//   "STOPPING"
22713	//   "SUSPENDED"
22714	//   "SUSPENDING"
22715	//   "TERMINATED"
22716	InstanceStatus string `json:"instanceStatus,omitempty"`
22717
22718	// InstanceTemplate: [Output Only] The intended template of the
22719	// instance. This field is empty when current_action is one of {
22720	// DELETING, ABANDONING }.
22721	InstanceTemplate string `json:"instanceTemplate,omitempty"`
22722
22723	// LastAttempt: [Output Only] Information about the last attempt to
22724	// create or delete the instance.
22725	LastAttempt *ManagedInstanceLastAttempt `json:"lastAttempt,omitempty"`
22726
22727	// PreservedStateFromConfig: [Output Only] Preserved state applied from
22728	// per-instance config for this instance.
22729	PreservedStateFromConfig *PreservedState `json:"preservedStateFromConfig,omitempty"`
22730
22731	// PreservedStateFromPolicy: [Output Only] Preserved state generated
22732	// based on stateful policy for this instance.
22733	PreservedStateFromPolicy *PreservedState `json:"preservedStateFromPolicy,omitempty"`
22734
22735	// Tag: [Output Only] Tag describing the version.
22736	Tag string `json:"tag,omitempty"`
22737
22738	// Version: [Output Only] Intended version of this instance.
22739	Version *ManagedInstanceVersion `json:"version,omitempty"`
22740
22741	// ForceSendFields is a list of field names (e.g. "CurrentAction") to
22742	// unconditionally include in API requests. By default, fields with
22743	// empty values are omitted from API requests. However, any non-pointer,
22744	// non-interface field appearing in ForceSendFields will be sent to the
22745	// server regardless of whether the field is empty or not. This may be
22746	// used to include empty fields in Patch requests.
22747	ForceSendFields []string `json:"-"`
22748
22749	// NullFields is a list of field names (e.g. "CurrentAction") to include
22750	// in API requests with the JSON null value. By default, fields with
22751	// empty values are omitted from API requests. However, any field with
22752	// an empty value appearing in NullFields will be sent to the server as
22753	// null. It is an error if a field in this list has a non-empty value.
22754	// This may be used to include null fields in Patch requests.
22755	NullFields []string `json:"-"`
22756}
22757
22758func (s *ManagedInstance) MarshalJSON() ([]byte, error) {
22759	type NoMethod ManagedInstance
22760	raw := NoMethod(*s)
22761	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22762}
22763
22764type ManagedInstanceInstanceHealth struct {
22765	// DetailedHealthState: [Output Only] The current detailed instance
22766	// health state.
22767	//
22768	// Possible values:
22769	//   "DRAINING"
22770	//   "HEALTHY"
22771	//   "TIMEOUT"
22772	//   "UNHEALTHY"
22773	//   "UNKNOWN"
22774	DetailedHealthState string `json:"detailedHealthState,omitempty"`
22775
22776	// HealthCheck: [Output Only] The URL for the health check that verifies
22777	// whether the instance is healthy.
22778	HealthCheck string `json:"healthCheck,omitempty"`
22779
22780	// HealthState: [Output Only] The current instance health state. This
22781	// field will not get promoted to beta/GA and might be removed from
22782	// alpha APIs after 01/12/2019. Please use detailed_health_state field
22783	// instead.
22784	//
22785	// Possible values:
22786	//   "HEALTHY"
22787	//   "UNHEALTHY"
22788	HealthState string `json:"healthState,omitempty"`
22789
22790	// ForceSendFields is a list of field names (e.g. "DetailedHealthState")
22791	// to unconditionally include in API requests. By default, fields with
22792	// empty values are omitted from API requests. However, any non-pointer,
22793	// non-interface field appearing in ForceSendFields will be sent to the
22794	// server regardless of whether the field is empty or not. This may be
22795	// used to include empty fields in Patch requests.
22796	ForceSendFields []string `json:"-"`
22797
22798	// NullFields is a list of field names (e.g. "DetailedHealthState") to
22799	// include in API requests with the JSON null value. By default, fields
22800	// with empty values are omitted from API requests. However, any field
22801	// with an empty value appearing in NullFields will be sent to the
22802	// server as null. It is an error if a field in this list has a
22803	// non-empty value. This may be used to include null fields in Patch
22804	// requests.
22805	NullFields []string `json:"-"`
22806}
22807
22808func (s *ManagedInstanceInstanceHealth) MarshalJSON() ([]byte, error) {
22809	type NoMethod ManagedInstanceInstanceHealth
22810	raw := NoMethod(*s)
22811	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22812}
22813
22814type ManagedInstanceLastAttempt struct {
22815	// Errors: [Output Only] Encountered errors during the last attempt to
22816	// create or delete the instance.
22817	Errors *ManagedInstanceLastAttemptErrors `json:"errors,omitempty"`
22818
22819	// ForceSendFields is a list of field names (e.g. "Errors") to
22820	// unconditionally include in API requests. By default, fields with
22821	// empty values are omitted from API requests. However, any non-pointer,
22822	// non-interface field appearing in ForceSendFields will be sent to the
22823	// server regardless of whether the field is empty or not. This may be
22824	// used to include empty fields in Patch requests.
22825	ForceSendFields []string `json:"-"`
22826
22827	// NullFields is a list of field names (e.g. "Errors") to include in API
22828	// requests with the JSON null value. By default, fields with empty
22829	// values are omitted from API requests. However, any field with an
22830	// empty value appearing in NullFields will be sent to the server as
22831	// null. It is an error if a field in this list has a non-empty value.
22832	// This may be used to include null fields in Patch requests.
22833	NullFields []string `json:"-"`
22834}
22835
22836func (s *ManagedInstanceLastAttempt) MarshalJSON() ([]byte, error) {
22837	type NoMethod ManagedInstanceLastAttempt
22838	raw := NoMethod(*s)
22839	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22840}
22841
22842// ManagedInstanceLastAttemptErrors: [Output Only] Encountered errors
22843// during the last attempt to create or delete the instance.
22844type ManagedInstanceLastAttemptErrors struct {
22845	// Errors: [Output Only] The array of errors encountered while
22846	// processing this operation.
22847	Errors []*ManagedInstanceLastAttemptErrorsErrors `json:"errors,omitempty"`
22848
22849	// ForceSendFields is a list of field names (e.g. "Errors") to
22850	// unconditionally include in API requests. By default, fields with
22851	// empty values are omitted from API requests. However, any non-pointer,
22852	// non-interface field appearing in ForceSendFields will be sent to the
22853	// server regardless of whether the field is empty or not. This may be
22854	// used to include empty fields in Patch requests.
22855	ForceSendFields []string `json:"-"`
22856
22857	// NullFields is a list of field names (e.g. "Errors") to include in API
22858	// requests with the JSON null value. By default, fields with empty
22859	// values are omitted from API requests. However, any field with an
22860	// empty value appearing in NullFields will be sent to the server as
22861	// null. It is an error if a field in this list has a non-empty value.
22862	// This may be used to include null fields in Patch requests.
22863	NullFields []string `json:"-"`
22864}
22865
22866func (s *ManagedInstanceLastAttemptErrors) MarshalJSON() ([]byte, error) {
22867	type NoMethod ManagedInstanceLastAttemptErrors
22868	raw := NoMethod(*s)
22869	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22870}
22871
22872type ManagedInstanceLastAttemptErrorsErrors struct {
22873	// Code: [Output Only] The error type identifier for this error.
22874	Code string `json:"code,omitempty"`
22875
22876	// Location: [Output Only] Indicates the field in the request that
22877	// caused the error. This property is optional.
22878	Location string `json:"location,omitempty"`
22879
22880	// Message: [Output Only] An optional, human-readable error message.
22881	Message string `json:"message,omitempty"`
22882
22883	// ForceSendFields is a list of field names (e.g. "Code") to
22884	// unconditionally include in API requests. By default, fields with
22885	// empty values are omitted from API requests. However, any non-pointer,
22886	// non-interface field appearing in ForceSendFields will be sent to the
22887	// server regardless of whether the field is empty or not. This may be
22888	// used to include empty fields in Patch requests.
22889	ForceSendFields []string `json:"-"`
22890
22891	// NullFields is a list of field names (e.g. "Code") to include in API
22892	// requests with the JSON null value. By default, fields with empty
22893	// values are omitted from API requests. However, any field with an
22894	// empty value appearing in NullFields will be sent to the server as
22895	// null. It is an error if a field in this list has a non-empty value.
22896	// This may be used to include null fields in Patch requests.
22897	NullFields []string `json:"-"`
22898}
22899
22900func (s *ManagedInstanceLastAttemptErrorsErrors) MarshalJSON() ([]byte, error) {
22901	type NoMethod ManagedInstanceLastAttemptErrorsErrors
22902	raw := NoMethod(*s)
22903	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22904}
22905
22906type ManagedInstanceVersion struct {
22907	// InstanceTemplate: [Output Only] The intended template of the
22908	// instance. This field is empty when current_action is one of {
22909	// DELETING, ABANDONING }.
22910	InstanceTemplate string `json:"instanceTemplate,omitempty"`
22911
22912	// Name: [Output Only] Name of the version.
22913	Name string `json:"name,omitempty"`
22914
22915	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
22916	// unconditionally include in API requests. By default, fields with
22917	// empty values are omitted from API requests. However, any non-pointer,
22918	// non-interface field appearing in ForceSendFields will be sent to the
22919	// server regardless of whether the field is empty or not. This may be
22920	// used to include empty fields in Patch requests.
22921	ForceSendFields []string `json:"-"`
22922
22923	// NullFields is a list of field names (e.g. "InstanceTemplate") to
22924	// include in API requests with the JSON null value. By default, fields
22925	// with empty values are omitted from API requests. However, any field
22926	// with an empty value appearing in NullFields will be sent to the
22927	// server as null. It is an error if a field in this list has a
22928	// non-empty value. This may be used to include null fields in Patch
22929	// requests.
22930	NullFields []string `json:"-"`
22931}
22932
22933func (s *ManagedInstanceVersion) MarshalJSON() ([]byte, error) {
22934	type NoMethod ManagedInstanceVersion
22935	raw := NoMethod(*s)
22936	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22937}
22938
22939// Metadata: A metadata key/value entry.
22940type Metadata struct {
22941	// Fingerprint: Specifies a fingerprint for this request, which is
22942	// essentially a hash of the metadata's contents and used for optimistic
22943	// locking. The fingerprint is initially generated by Compute Engine and
22944	// changes after every request to modify or update metadata. You must
22945	// always provide an up-to-date fingerprint hash in order to update or
22946	// change metadata, otherwise the request will fail with error 412
22947	// conditionNotMet.
22948	//
22949	// To see the latest fingerprint, make a get() request to retrieve the
22950	// resource.
22951	Fingerprint string `json:"fingerprint,omitempty"`
22952
22953	// Items: Array of key/value pairs. The total size of all keys and
22954	// values must be less than 512 KB.
22955	Items []*MetadataItems `json:"items,omitempty"`
22956
22957	// Kind: [Output Only] Type of the resource. Always compute#metadata for
22958	// metadata.
22959	Kind string `json:"kind,omitempty"`
22960
22961	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
22962	// unconditionally include in API requests. By default, fields with
22963	// empty values are omitted from API requests. However, any non-pointer,
22964	// non-interface field appearing in ForceSendFields will be sent to the
22965	// server regardless of whether the field is empty or not. This may be
22966	// used to include empty fields in Patch requests.
22967	ForceSendFields []string `json:"-"`
22968
22969	// NullFields is a list of field names (e.g. "Fingerprint") to include
22970	// in API requests with the JSON null value. By default, fields with
22971	// empty values are omitted from API requests. However, any field with
22972	// an empty value appearing in NullFields will be sent to the server as
22973	// null. It is an error if a field in this list has a non-empty value.
22974	// This may be used to include null fields in Patch requests.
22975	NullFields []string `json:"-"`
22976}
22977
22978func (s *Metadata) MarshalJSON() ([]byte, error) {
22979	type NoMethod Metadata
22980	raw := NoMethod(*s)
22981	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22982}
22983
22984type MetadataItems struct {
22985	// Key: Key for the metadata entry. Keys must conform to the following
22986	// regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is
22987	// reflected as part of a URL in the metadata server. Additionally, to
22988	// avoid ambiguity, keys must not conflict with any other metadata keys
22989	// for the project.
22990	Key string `json:"key,omitempty"`
22991
22992	// Value: Value for the metadata entry. These are free-form strings, and
22993	// only have meaning as interpreted by the image running in the
22994	// instance. The only restriction placed on values is that their size
22995	// must be less than or equal to 262144 bytes (256 KiB).
22996	Value string `json:"value,omitempty"`
22997
22998	// ForceSendFields is a list of field names (e.g. "Key") to
22999	// unconditionally include in API requests. By default, fields with
23000	// empty values are omitted from API requests. However, any non-pointer,
23001	// non-interface field appearing in ForceSendFields will be sent to the
23002	// server regardless of whether the field is empty or not. This may be
23003	// used to include empty fields in Patch requests.
23004	ForceSendFields []string `json:"-"`
23005
23006	// NullFields is a list of field names (e.g. "Key") to include in API
23007	// requests with the JSON null value. By default, fields with empty
23008	// values are omitted from API requests. However, any field with an
23009	// empty value appearing in NullFields will be sent to the server as
23010	// null. It is an error if a field in this list has a non-empty value.
23011	// This may be used to include null fields in Patch requests.
23012	NullFields []string `json:"-"`
23013}
23014
23015func (s *MetadataItems) MarshalJSON() ([]byte, error) {
23016	type NoMethod MetadataItems
23017	raw := NoMethod(*s)
23018	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23019}
23020
23021// MetadataCredentialsFromPlugin: Custom authenticator credentials.
23022type MetadataCredentialsFromPlugin struct {
23023	// Name: Plugin name.
23024	Name string `json:"name,omitempty"`
23025
23026	// StructConfig: A text proto that conforms to a Struct type definition
23027	// interpreted by the plugin.
23028	StructConfig string `json:"structConfig,omitempty"`
23029
23030	// ForceSendFields is a list of field names (e.g. "Name") to
23031	// unconditionally include in API requests. By default, fields with
23032	// empty values are omitted from API requests. However, any non-pointer,
23033	// non-interface field appearing in ForceSendFields will be sent to the
23034	// server regardless of whether the field is empty or not. This may be
23035	// used to include empty fields in Patch requests.
23036	ForceSendFields []string `json:"-"`
23037
23038	// NullFields is a list of field names (e.g. "Name") to include in API
23039	// requests with the JSON null value. By default, fields with empty
23040	// values are omitted from API requests. However, any field with an
23041	// empty value appearing in NullFields will be sent to the server as
23042	// null. It is an error if a field in this list has a non-empty value.
23043	// This may be used to include null fields in Patch requests.
23044	NullFields []string `json:"-"`
23045}
23046
23047func (s *MetadataCredentialsFromPlugin) MarshalJSON() ([]byte, error) {
23048	type NoMethod MetadataCredentialsFromPlugin
23049	raw := NoMethod(*s)
23050	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23051}
23052
23053// MetadataFilter: Opaque filter criteria used by loadbalancers to
23054// restrict routing configuration to a limited set of loadbalancing
23055// proxies. Proxies and sidecars involved in loadbalancing would
23056// typically present metadata to the loadbalancers which need to match
23057// criteria specified here. If a match takes place, the relevant
23058// configuration is made available to those proxies.
23059// For each metadataFilter in this list, if its filterMatchCriteria is
23060// set to MATCH_ANY, at least one of the filterLabels must match the
23061// corresponding label provided in the metadata. If its
23062// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
23063// must match with corresponding labels provided in the metadata.
23064// An example for using metadataFilters would be: if loadbalancing
23065// involves  Envoys, they will only receive routing configuration when
23066// values in metadataFilters match values supplied in <a
23067// href="https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/core/b
23068// ase.proto#envoy-api-msg-core-node" Node metadata of their XDS
23069// requests to loadbalancers.
23070type MetadataFilter struct {
23071	// FilterLabels: The list of label value pairs that must match labels in
23072	// the provided metadata based on filterMatchCriteria
23073	// This list must not be empty and can have at the most 64 entries.
23074	FilterLabels []*MetadataFilterLabelMatch `json:"filterLabels,omitempty"`
23075
23076	// FilterMatchCriteria: Specifies how individual filterLabel matches
23077	// within the list of filterLabels contribute towards the overall
23078	// metadataFilter match.
23079	// Supported values are:
23080	// - MATCH_ANY: At least one of the filterLabels must have a matching
23081	// label in the provided metadata.
23082	// - MATCH_ALL: All filterLabels must have matching labels in the
23083	// provided metadata.
23084	//
23085	// Possible values:
23086	//   "MATCH_ALL"
23087	//   "MATCH_ANY"
23088	//   "NOT_SET"
23089	FilterMatchCriteria string `json:"filterMatchCriteria,omitempty"`
23090
23091	// ForceSendFields is a list of field names (e.g. "FilterLabels") to
23092	// unconditionally include in API requests. By default, fields with
23093	// empty values are omitted from API requests. However, any non-pointer,
23094	// non-interface field appearing in ForceSendFields will be sent to the
23095	// server regardless of whether the field is empty or not. This may be
23096	// used to include empty fields in Patch requests.
23097	ForceSendFields []string `json:"-"`
23098
23099	// NullFields is a list of field names (e.g. "FilterLabels") to include
23100	// in API requests with the JSON null value. By default, fields with
23101	// empty values are omitted from API requests. However, any field with
23102	// an empty value appearing in NullFields will be sent to the server as
23103	// null. It is an error if a field in this list has a non-empty value.
23104	// This may be used to include null fields in Patch requests.
23105	NullFields []string `json:"-"`
23106}
23107
23108func (s *MetadataFilter) MarshalJSON() ([]byte, error) {
23109	type NoMethod MetadataFilter
23110	raw := NoMethod(*s)
23111	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23112}
23113
23114// MetadataFilterLabelMatch: MetadataFilter label name value pairs that
23115// are expected to match corresponding labels presented as metadata to
23116// the loadbalancer.
23117type MetadataFilterLabelMatch struct {
23118	// Name: Name of metadata label.
23119	// The name can have a maximum length of 1024 characters and must be at
23120	// least 1 character long.
23121	Name string `json:"name,omitempty"`
23122
23123	// Value: The value of the label must match the specified value.
23124	// value can have a maximum length of 1024 characters.
23125	Value string `json:"value,omitempty"`
23126
23127	// ForceSendFields is a list of field names (e.g. "Name") to
23128	// unconditionally include in API requests. By default, fields with
23129	// empty values are omitted from API requests. However, any non-pointer,
23130	// non-interface field appearing in ForceSendFields will be sent to the
23131	// server regardless of whether the field is empty or not. This may be
23132	// used to include empty fields in Patch requests.
23133	ForceSendFields []string `json:"-"`
23134
23135	// NullFields is a list of field names (e.g. "Name") to include in API
23136	// requests with the JSON null value. By default, fields with empty
23137	// values are omitted from API requests. However, any field with an
23138	// empty value appearing in NullFields will be sent to the server as
23139	// null. It is an error if a field in this list has a non-empty value.
23140	// This may be used to include null fields in Patch requests.
23141	NullFields []string `json:"-"`
23142}
23143
23144func (s *MetadataFilterLabelMatch) MarshalJSON() ([]byte, error) {
23145	type NoMethod MetadataFilterLabelMatch
23146	raw := NoMethod(*s)
23147	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23148}
23149
23150// MutualTls: Configuration for the mutual Tls mode for peer
23151// authentication.
23152type MutualTls struct {
23153	// Mode: Specifies if the server TLS is configured to be strict or
23154	// permissive. This field can be set to one of the following: STRICT:
23155	// Client certificate must be presented, connection is in TLS.
23156	// PERMISSIVE: Client certificate can be omitted, connection can be
23157	// either plaintext or TLS.
23158	//
23159	// Possible values:
23160	//   "INVALID"
23161	//   "PERMISSIVE"
23162	//   "STRICT"
23163	Mode string `json:"mode,omitempty"`
23164
23165	// ForceSendFields is a list of field names (e.g. "Mode") to
23166	// unconditionally include in API requests. By default, fields with
23167	// empty values are omitted from API requests. However, any non-pointer,
23168	// non-interface field appearing in ForceSendFields will be sent to the
23169	// server regardless of whether the field is empty or not. This may be
23170	// used to include empty fields in Patch requests.
23171	ForceSendFields []string `json:"-"`
23172
23173	// NullFields is a list of field names (e.g. "Mode") to include in API
23174	// requests with the JSON null value. By default, fields with empty
23175	// values are omitted from API requests. However, any field with an
23176	// empty value appearing in NullFields will be sent to the server as
23177	// null. It is an error if a field in this list has a non-empty value.
23178	// This may be used to include null fields in Patch requests.
23179	NullFields []string `json:"-"`
23180}
23181
23182func (s *MutualTls) MarshalJSON() ([]byte, error) {
23183	type NoMethod MutualTls
23184	raw := NoMethod(*s)
23185	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23186}
23187
23188// NamedPort: The named port. For example: .
23189type NamedPort struct {
23190	// Name: The name for this named port. The name must be 1-63 characters
23191	// long, and comply with RFC1035.
23192	Name string `json:"name,omitempty"`
23193
23194	// Port: The port number, which can be a value between 1 and 65535.
23195	Port int64 `json:"port,omitempty"`
23196
23197	// ForceSendFields is a list of field names (e.g. "Name") to
23198	// unconditionally include in API requests. By default, fields with
23199	// empty values are omitted from API requests. However, any non-pointer,
23200	// non-interface field appearing in ForceSendFields will be sent to the
23201	// server regardless of whether the field is empty or not. This may be
23202	// used to include empty fields in Patch requests.
23203	ForceSendFields []string `json:"-"`
23204
23205	// NullFields is a list of field names (e.g. "Name") to include in API
23206	// requests with the JSON null value. By default, fields with empty
23207	// values are omitted from API requests. However, any field with an
23208	// empty value appearing in NullFields will be sent to the server as
23209	// null. It is an error if a field in this list has a non-empty value.
23210	// This may be used to include null fields in Patch requests.
23211	NullFields []string `json:"-"`
23212}
23213
23214func (s *NamedPort) MarshalJSON() ([]byte, error) {
23215	type NoMethod NamedPort
23216	raw := NoMethod(*s)
23217	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23218}
23219
23220// Network: Represents a VPC Network resource.
23221//
23222// Networks connect resources to each other and to the internet. For
23223// more information, read Virtual Private Cloud (VPC) Network. (==
23224// resource_for {$api_version}.networks ==)
23225type Network struct {
23226	// IPv4Range: Deprecated in favor of subnet mode networks. The range of
23227	// internal addresses that are legal on this network. This range is a
23228	// CIDR specification, for example: 192.168.0.0/16. Provided by the
23229	// client when the network is created.
23230	IPv4Range string `json:"IPv4Range,omitempty"`
23231
23232	// AutoCreateSubnetworks: When set to true, the VPC network is created
23233	// in "auto" mode. When set to false, the VPC network is created in
23234	// "custom" mode.
23235	//
23236	// An auto mode VPC network starts with one subnet per region. Each
23237	// subnet has a predetermined range as described in Auto mode VPC
23238	// network IP ranges.
23239	AutoCreateSubnetworks bool `json:"autoCreateSubnetworks,omitempty"`
23240
23241	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
23242	// format.
23243	CreationTimestamp string `json:"creationTimestamp,omitempty"`
23244
23245	// Description: An optional description of this resource. Provide this
23246	// field when you create the resource.
23247	Description string `json:"description,omitempty"`
23248
23249	// GatewayIPv4: [Output Only] The gateway address for default routing
23250	// out of the network, selected by GCP.
23251	GatewayIPv4 string `json:"gatewayIPv4,omitempty"`
23252
23253	// Id: [Output Only] The unique identifier for the resource. This
23254	// identifier is defined by the server.
23255	Id uint64 `json:"id,omitempty,string"`
23256
23257	// Kind: [Output Only] Type of the resource. Always compute#network for
23258	// networks.
23259	Kind string `json:"kind,omitempty"`
23260
23261	// Mtu: Maximum Transmission Unit in bytes. The minimum value for this
23262	// field is 1460 and the maximum value is 1500 bytes.
23263	Mtu int64 `json:"mtu,omitempty"`
23264
23265	// MulticastMode: The multicast mode for this network. If set to ZONAL,
23266	// multicast is allowed within a zone. If set to DISABLED, multicast is
23267	// disabled for this network. The default is DISABLED.
23268	//
23269	// Possible values:
23270	//   "DISABLED"
23271	//   "ZONAL"
23272	MulticastMode string `json:"multicastMode,omitempty"`
23273
23274	// Name: Name of the resource. Provided by the client when the resource
23275	// is created. The name must be 1-63 characters long, and comply with
23276	// RFC1035. Specifically, the name must be 1-63 characters long and
23277	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
23278	// character must be a lowercase letter, and all following characters
23279	// (except for the last character) must be a dash, lowercase letter, or
23280	// digit. The last character must be a lowercase letter or digit.
23281	Name string `json:"name,omitempty"`
23282
23283	// Peerings: [Output Only] A list of network peerings for the resource.
23284	Peerings []*NetworkPeering `json:"peerings,omitempty"`
23285
23286	// RoutingConfig: The network-level routing configuration for this
23287	// network. Used by Cloud Router to determine what type of network-wide
23288	// routing behavior to enforce.
23289	RoutingConfig *NetworkRoutingConfig `json:"routingConfig,omitempty"`
23290
23291	// SelfLink: [Output Only] Server-defined URL for the resource.
23292	SelfLink string `json:"selfLink,omitempty"`
23293
23294	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
23295	// with the resource id.
23296	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
23297
23298	// Subnetworks: [Output Only] Server-defined fully-qualified URLs for
23299	// all subnetworks in this VPC network.
23300	Subnetworks []string `json:"subnetworks,omitempty"`
23301
23302	// ServerResponse contains the HTTP response code and headers from the
23303	// server.
23304	googleapi.ServerResponse `json:"-"`
23305
23306	// ForceSendFields is a list of field names (e.g. "IPv4Range") to
23307	// unconditionally include in API requests. By default, fields with
23308	// empty values are omitted from API requests. However, any non-pointer,
23309	// non-interface field appearing in ForceSendFields will be sent to the
23310	// server regardless of whether the field is empty or not. This may be
23311	// used to include empty fields in Patch requests.
23312	ForceSendFields []string `json:"-"`
23313
23314	// NullFields is a list of field names (e.g. "IPv4Range") to include in
23315	// API requests with the JSON null value. By default, fields with empty
23316	// values are omitted from API requests. However, any field with an
23317	// empty value appearing in NullFields will be sent to the server as
23318	// null. It is an error if a field in this list has a non-empty value.
23319	// This may be used to include null fields in Patch requests.
23320	NullFields []string `json:"-"`
23321}
23322
23323func (s *Network) MarshalJSON() ([]byte, error) {
23324	type NoMethod Network
23325	raw := NoMethod(*s)
23326	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23327}
23328
23329// NetworkEndpoint: The network endpoint. Next ID: 7
23330type NetworkEndpoint struct {
23331	// Annotations: Metadata defined as annotations on the network endpoint.
23332	Annotations map[string]string `json:"annotations,omitempty"`
23333
23334	// Fqdn: Optional fully qualified domain name of network endpoint. This
23335	// can only be specified when NetworkEndpointGroup.network_endpoint_type
23336	// is NON_GCP_FQDN_PORT.
23337	Fqdn string `json:"fqdn,omitempty"`
23338
23339	// Instance: The name for a specific VM instance that the IP address
23340	// belongs to. This is required for network endpoints of type
23341	// GCE_VM_IP_PORT. The instance must be in the same zone of network
23342	// endpoint group.
23343	//
23344	// The name must be 1-63 characters long, and comply with RFC1035.
23345	Instance string `json:"instance,omitempty"`
23346
23347	// IpAddress: Optional IPv4 address of network endpoint. The IP address
23348	// must belong to a VM in Compute Engine (either the primary IP or as
23349	// part of an aliased IP range). If the IP address is not specified,
23350	// then the primary IP address for the VM instance in the network that
23351	// the network endpoint group belongs to will be used.
23352	IpAddress string `json:"ipAddress,omitempty"`
23353
23354	// Port: Optional port number of network endpoint. If not specified and
23355	// the NetworkEndpointGroup.network_endpoint_type is GCE_IP_PORT, the
23356	// defaultPort for the network endpoint group will be used.
23357	Port int64 `json:"port,omitempty"`
23358
23359	// ForceSendFields is a list of field names (e.g. "Annotations") to
23360	// unconditionally include in API requests. By default, fields with
23361	// empty values are omitted from API requests. However, any non-pointer,
23362	// non-interface field appearing in ForceSendFields will be sent to the
23363	// server regardless of whether the field is empty or not. This may be
23364	// used to include empty fields in Patch requests.
23365	ForceSendFields []string `json:"-"`
23366
23367	// NullFields is a list of field names (e.g. "Annotations") to include
23368	// in API requests with the JSON null value. By default, fields with
23369	// empty values are omitted from API requests. However, any field with
23370	// an empty value appearing in NullFields will be sent to the server as
23371	// null. It is an error if a field in this list has a non-empty value.
23372	// This may be used to include null fields in Patch requests.
23373	NullFields []string `json:"-"`
23374}
23375
23376func (s *NetworkEndpoint) MarshalJSON() ([]byte, error) {
23377	type NoMethod NetworkEndpoint
23378	raw := NoMethod(*s)
23379	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23380}
23381
23382// NetworkEndpointGroup: Represents a collection of network
23383// endpoints.
23384//
23385// For more information read Setting up network endpoint groups in load
23386// balancing. (== resource_for {$api_version}.networkEndpointGroups ==)
23387// Next ID: 21
23388type NetworkEndpointGroup struct {
23389	// Annotations: Metadata defined as annotations on the network endpoint
23390	// group.
23391	Annotations map[string]string `json:"annotations,omitempty"`
23392
23393	// AppEngine: Only valid when networkEndpointType is "SERVERLESS". Only
23394	// one of cloudRun, appEngine or cloudFunction may be set.
23395	AppEngine *NetworkEndpointGroupAppEngine `json:"appEngine,omitempty"`
23396
23397	// CloudFunction: Only valid when networkEndpointType is "SERVERLESS".
23398	// Only one of cloudRun, appEngine or cloudFunction may be set.
23399	CloudFunction *NetworkEndpointGroupCloudFunction `json:"cloudFunction,omitempty"`
23400
23401	// CloudRun: Only valid when networkEndpointType is "SERVERLESS". Only
23402	// one of cloudRun, appEngine or cloudFunction may be set.
23403	CloudRun *NetworkEndpointGroupCloudRun `json:"cloudRun,omitempty"`
23404
23405	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
23406	// format.
23407	CreationTimestamp string `json:"creationTimestamp,omitempty"`
23408
23409	// DefaultPort: The default port used if the port number is not
23410	// specified in the network endpoint.
23411	DefaultPort int64 `json:"defaultPort,omitempty"`
23412
23413	// Description: An optional description of this resource. Provide this
23414	// property when you create the resource.
23415	Description string `json:"description,omitempty"`
23416
23417	// Id: [Output Only] The unique identifier for the resource. This
23418	// identifier is defined by the server.
23419	Id uint64 `json:"id,omitempty,string"`
23420
23421	// Kind: [Output Only] Type of the resource. Always
23422	// compute#networkEndpointGroup for network endpoint group.
23423	Kind string `json:"kind,omitempty"`
23424
23425	// LoadBalancer: This field is only valid when the network endpoint
23426	// group is used for load balancing. [Deprecated] This field is
23427	// deprecated.
23428	LoadBalancer *NetworkEndpointGroupLbNetworkEndpointGroup `json:"loadBalancer,omitempty"`
23429
23430	// Name: Name of the resource; provided by the client when the resource
23431	// is created. The name must be 1-63 characters long, and comply with
23432	// RFC1035. Specifically, the name must be 1-63 characters long and
23433	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
23434	// the first character must be a lowercase letter, and all following
23435	// characters must be a dash, lowercase letter, or digit, except the
23436	// last character, which cannot be a dash.
23437	Name string `json:"name,omitempty"`
23438
23439	// Network: The URL of the network to which all network endpoints in the
23440	// NEG belong. Uses "default" project network if unspecified.
23441	Network string `json:"network,omitempty"`
23442
23443	// NetworkEndpointType: Type of network endpoints in this network
23444	// endpoint group. Currently the only supported value is GCE_VM_IP_PORT.
23445	//
23446	// Possible values:
23447	//   "GCE_VM_IP_PORT"
23448	//   "GCE_VM_PRIMARY_IP"
23449	//   "INTERNET_FQDN_PORT"
23450	//   "INTERNET_IP_PORT"
23451	//   "NON_GCP_PRIVATE_IP_PORT"
23452	//   "SERVERLESS"
23453	NetworkEndpointType string `json:"networkEndpointType,omitempty"`
23454
23455	// Region: [Output Only] The URL of the region where the network
23456	// endpoint group is located.
23457	Region string `json:"region,omitempty"`
23458
23459	// SelfLink: [Output Only] Server-defined URL for the resource.
23460	SelfLink string `json:"selfLink,omitempty"`
23461
23462	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
23463	// with the resource id.
23464	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
23465
23466	// Size: [Output only] Number of network endpoints in the network
23467	// endpoint group.
23468	Size int64 `json:"size,omitempty"`
23469
23470	// Subnetwork: Optional URL of the subnetwork to which all network
23471	// endpoints in the NEG belong.
23472	Subnetwork string `json:"subnetwork,omitempty"`
23473
23474	// Type: Specify the type of this network endpoint group. Only
23475	// LOAD_BALANCING is valid for now.
23476	//
23477	// Possible values:
23478	//   "LOAD_BALANCING"
23479	Type string `json:"type,omitempty"`
23480
23481	// Zone: [Output Only] The URL of the zone where the network endpoint
23482	// group is located.
23483	Zone string `json:"zone,omitempty"`
23484
23485	// ServerResponse contains the HTTP response code and headers from the
23486	// server.
23487	googleapi.ServerResponse `json:"-"`
23488
23489	// ForceSendFields is a list of field names (e.g. "Annotations") to
23490	// unconditionally include in API requests. By default, fields with
23491	// empty values are omitted from API requests. However, any non-pointer,
23492	// non-interface field appearing in ForceSendFields will be sent to the
23493	// server regardless of whether the field is empty or not. This may be
23494	// used to include empty fields in Patch requests.
23495	ForceSendFields []string `json:"-"`
23496
23497	// NullFields is a list of field names (e.g. "Annotations") to include
23498	// in API requests with the JSON null value. By default, fields with
23499	// empty values are omitted from API requests. However, any field with
23500	// an empty value appearing in NullFields will be sent to the server as
23501	// null. It is an error if a field in this list has a non-empty value.
23502	// This may be used to include null fields in Patch requests.
23503	NullFields []string `json:"-"`
23504}
23505
23506func (s *NetworkEndpointGroup) MarshalJSON() ([]byte, error) {
23507	type NoMethod NetworkEndpointGroup
23508	raw := NoMethod(*s)
23509	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23510}
23511
23512type NetworkEndpointGroupAggregatedList struct {
23513	// Id: [Output Only] Unique identifier for the resource; defined by the
23514	// server.
23515	Id string `json:"id,omitempty"`
23516
23517	// Items: A list of NetworkEndpointGroupsScopedList resources.
23518	Items map[string]NetworkEndpointGroupsScopedList `json:"items,omitempty"`
23519
23520	// Kind: [Output Only] The resource type, which is always
23521	// compute#networkEndpointGroupAggregatedList for aggregated lists of
23522	// network endpoint groups.
23523	Kind string `json:"kind,omitempty"`
23524
23525	// NextPageToken: [Output Only] This token allows you to get the next
23526	// page of results for list requests. If the number of results is larger
23527	// than maxResults, use the nextPageToken as a value for the query
23528	// parameter pageToken in the next list request. Subsequent list
23529	// requests will have their own nextPageToken to continue paging through
23530	// the results.
23531	NextPageToken string `json:"nextPageToken,omitempty"`
23532
23533	// SelfLink: [Output Only] Server-defined URL for this resource.
23534	SelfLink string `json:"selfLink,omitempty"`
23535
23536	// Warning: [Output Only] Informational warning message.
23537	Warning *NetworkEndpointGroupAggregatedListWarning `json:"warning,omitempty"`
23538
23539	// ServerResponse contains the HTTP response code and headers from the
23540	// server.
23541	googleapi.ServerResponse `json:"-"`
23542
23543	// ForceSendFields is a list of field names (e.g. "Id") to
23544	// unconditionally include in API requests. By default, fields with
23545	// empty values are omitted from API requests. However, any non-pointer,
23546	// non-interface field appearing in ForceSendFields will be sent to the
23547	// server regardless of whether the field is empty or not. This may be
23548	// used to include empty fields in Patch requests.
23549	ForceSendFields []string `json:"-"`
23550
23551	// NullFields is a list of field names (e.g. "Id") to include in API
23552	// requests with the JSON null value. By default, fields with empty
23553	// values are omitted from API requests. However, any field with an
23554	// empty value appearing in NullFields will be sent to the server as
23555	// null. It is an error if a field in this list has a non-empty value.
23556	// This may be used to include null fields in Patch requests.
23557	NullFields []string `json:"-"`
23558}
23559
23560func (s *NetworkEndpointGroupAggregatedList) MarshalJSON() ([]byte, error) {
23561	type NoMethod NetworkEndpointGroupAggregatedList
23562	raw := NoMethod(*s)
23563	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23564}
23565
23566// NetworkEndpointGroupAggregatedListWarning: [Output Only]
23567// Informational warning message.
23568type NetworkEndpointGroupAggregatedListWarning struct {
23569	// Code: [Output Only] A warning code, if applicable. For example,
23570	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23571	// the response.
23572	//
23573	// Possible values:
23574	//   "CLEANUP_FAILED"
23575	//   "DEPRECATED_RESOURCE_USED"
23576	//   "DEPRECATED_TYPE_USED"
23577	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23578	//   "EXPERIMENTAL_TYPE_USED"
23579	//   "EXTERNAL_API_WARNING"
23580	//   "FIELD_VALUE_OVERRIDEN"
23581	//   "INJECTED_KERNELS_DEPRECATED"
23582	//   "MISSING_TYPE_DEPENDENCY"
23583	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23584	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23585	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23586	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23587	//   "NEXT_HOP_NOT_RUNNING"
23588	//   "NOT_CRITICAL_ERROR"
23589	//   "NO_RESULTS_ON_PAGE"
23590	//   "REQUIRED_TOS_AGREEMENT"
23591	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23592	//   "RESOURCE_NOT_DELETED"
23593	//   "SCHEMA_VALIDATION_IGNORED"
23594	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23595	//   "UNDECLARED_PROPERTIES"
23596	//   "UNREACHABLE"
23597	Code string `json:"code,omitempty"`
23598
23599	// Data: [Output Only] Metadata about this warning in key: value format.
23600	// For example:
23601	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23602	Data []*NetworkEndpointGroupAggregatedListWarningData `json:"data,omitempty"`
23603
23604	// Message: [Output Only] A human-readable description of the warning
23605	// code.
23606	Message string `json:"message,omitempty"`
23607
23608	// ForceSendFields is a list of field names (e.g. "Code") to
23609	// unconditionally include in API requests. By default, fields with
23610	// empty values are omitted from API requests. However, any non-pointer,
23611	// non-interface field appearing in ForceSendFields will be sent to the
23612	// server regardless of whether the field is empty or not. This may be
23613	// used to include empty fields in Patch requests.
23614	ForceSendFields []string `json:"-"`
23615
23616	// NullFields is a list of field names (e.g. "Code") to include in API
23617	// requests with the JSON null value. By default, fields with empty
23618	// values are omitted from API requests. However, any field with an
23619	// empty value appearing in NullFields will be sent to the server as
23620	// null. It is an error if a field in this list has a non-empty value.
23621	// This may be used to include null fields in Patch requests.
23622	NullFields []string `json:"-"`
23623}
23624
23625func (s *NetworkEndpointGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
23626	type NoMethod NetworkEndpointGroupAggregatedListWarning
23627	raw := NoMethod(*s)
23628	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23629}
23630
23631type NetworkEndpointGroupAggregatedListWarningData struct {
23632	// Key: [Output Only] A key that provides more detail on the warning
23633	// being returned. For example, for warnings where there are no results
23634	// in a list request for a particular zone, this key might be scope and
23635	// the key value might be the zone name. Other examples might be a key
23636	// indicating a deprecated resource and a suggested replacement, or a
23637	// warning about invalid network settings (for example, if an instance
23638	// attempts to perform IP forwarding but is not enabled for IP
23639	// forwarding).
23640	Key string `json:"key,omitempty"`
23641
23642	// Value: [Output Only] A warning data value corresponding to the key.
23643	Value string `json:"value,omitempty"`
23644
23645	// ForceSendFields is a list of field names (e.g. "Key") to
23646	// unconditionally include in API requests. By default, fields with
23647	// empty values are omitted from API requests. However, any non-pointer,
23648	// non-interface field appearing in ForceSendFields will be sent to the
23649	// server regardless of whether the field is empty or not. This may be
23650	// used to include empty fields in Patch requests.
23651	ForceSendFields []string `json:"-"`
23652
23653	// NullFields is a list of field names (e.g. "Key") to include in API
23654	// requests with the JSON null value. By default, fields with empty
23655	// values are omitted from API requests. However, any field with an
23656	// empty value appearing in NullFields will be sent to the server as
23657	// null. It is an error if a field in this list has a non-empty value.
23658	// This may be used to include null fields in Patch requests.
23659	NullFields []string `json:"-"`
23660}
23661
23662func (s *NetworkEndpointGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
23663	type NoMethod NetworkEndpointGroupAggregatedListWarningData
23664	raw := NoMethod(*s)
23665	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23666}
23667
23668// NetworkEndpointGroupAppEngine: Configuration for an App Engine
23669// network endpoint group (NEG). The service is optional, may be
23670// provided explicitly or in the URL mask. The version is optional and
23671// can only be provided explicitly or in the URL mask when service is
23672// present.
23673//
23674// Note: App Engine service must be in the same project and located in
23675// the same region as the Serverless NEG.
23676type NetworkEndpointGroupAppEngine struct {
23677	// Service: Optional serving service.
23678	//
23679	// The service name must be 1-63 characters long, and comply with
23680	// RFC1035.
23681	//
23682	// Example value: "default", "my-service".
23683	Service string `json:"service,omitempty"`
23684
23685	// UrlMask: A template to parse service and version fields from a
23686	// request URL. URL mask allows for routing to multiple App Engine
23687	// services without having to create multiple Network Endpoint Groups
23688	// and backend services.
23689	//
23690	// For example, the request URLs "foo1-dot-appname.appspot.com/v1" and
23691	// "foo1-dot-appname.appspot.com/v2" can be backed by the same
23692	// Serverless NEG with URL mask "-dot-appname.appspot.com/". The URL
23693	// mask will parse them to { service = "foo1", version = "v1" } and {
23694	// service = "foo1", version = "v2" } respectively.
23695	UrlMask string `json:"urlMask,omitempty"`
23696
23697	// Version: Optional serving version.
23698	//
23699	// The version must be 1-63 characters long, and comply with
23700	// RFC1035.
23701	//
23702	// Example value: "v1", "v2".
23703	Version string `json:"version,omitempty"`
23704
23705	// ForceSendFields is a list of field names (e.g. "Service") to
23706	// unconditionally include in API requests. By default, fields with
23707	// empty values are omitted from API requests. However, any non-pointer,
23708	// non-interface field appearing in ForceSendFields will be sent to the
23709	// server regardless of whether the field is empty or not. This may be
23710	// used to include empty fields in Patch requests.
23711	ForceSendFields []string `json:"-"`
23712
23713	// NullFields is a list of field names (e.g. "Service") to include in
23714	// API requests with the JSON null value. By default, fields with empty
23715	// values are omitted from API requests. However, any field with an
23716	// empty value appearing in NullFields will be sent to the server as
23717	// null. It is an error if a field in this list has a non-empty value.
23718	// This may be used to include null fields in Patch requests.
23719	NullFields []string `json:"-"`
23720}
23721
23722func (s *NetworkEndpointGroupAppEngine) MarshalJSON() ([]byte, error) {
23723	type NoMethod NetworkEndpointGroupAppEngine
23724	raw := NoMethod(*s)
23725	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23726}
23727
23728// NetworkEndpointGroupCloudFunction: Configuration for a Cloud Function
23729// network endpoint group (NEG). The function must be provided
23730// explicitly or in the URL mask.
23731//
23732// Note: Cloud Function must be in the same project and located in the
23733// same region as the Serverless NEG.
23734type NetworkEndpointGroupCloudFunction struct {
23735	// Function: A user-defined name of the Cloud Function.
23736	//
23737	// The function name is case-sensitive and must be 1-63 characters
23738	// long.
23739	//
23740	// Example value: "func1".
23741	Function string `json:"function,omitempty"`
23742
23743	// UrlMask: A template to parse function field from a request URL. URL
23744	// mask allows for routing to multiple Cloud Functions without having to
23745	// create multiple Network Endpoint Groups and backend services.
23746	//
23747	// For example, request URLs "mydomain.com/function1" and
23748	// "mydomain.com/function2" can be backed by the same Serverless NEG
23749	// with URL mask "/". The URL mask will parse them to { function =
23750	// "function1" } and { function = "function2" } respectively.
23751	UrlMask string `json:"urlMask,omitempty"`
23752
23753	// ForceSendFields is a list of field names (e.g. "Function") to
23754	// unconditionally include in API requests. By default, fields with
23755	// empty values are omitted from API requests. However, any non-pointer,
23756	// non-interface field appearing in ForceSendFields will be sent to the
23757	// server regardless of whether the field is empty or not. This may be
23758	// used to include empty fields in Patch requests.
23759	ForceSendFields []string `json:"-"`
23760
23761	// NullFields is a list of field names (e.g. "Function") to include in
23762	// API requests with the JSON null value. By default, fields with empty
23763	// values are omitted from API requests. However, any field with an
23764	// empty value appearing in NullFields will be sent to the server as
23765	// null. It is an error if a field in this list has a non-empty value.
23766	// This may be used to include null fields in Patch requests.
23767	NullFields []string `json:"-"`
23768}
23769
23770func (s *NetworkEndpointGroupCloudFunction) MarshalJSON() ([]byte, error) {
23771	type NoMethod NetworkEndpointGroupCloudFunction
23772	raw := NoMethod(*s)
23773	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23774}
23775
23776// NetworkEndpointGroupCloudRun: Configuration for a Cloud Run network
23777// endpoint group (NEG). The service must be provided explicitly or in
23778// the URL mask. The tag is optional, may be provided explicitly or in
23779// the URL mask.
23780//
23781// Note: Cloud Run service must be in the same project and located in
23782// the same region as the Serverless NEG.
23783type NetworkEndpointGroupCloudRun struct {
23784	// Service: Cloud Run service is the main resource of Cloud Run.
23785	//
23786	// The service must be 1-63 characters long, and comply with
23787	// RFC1035.
23788	//
23789	// Example value: "run-service".
23790	Service string `json:"service,omitempty"`
23791
23792	// Tag: Optional Cloud Run tag represents the "named-revision" to
23793	// provide additional fine-grained traffic routing information.
23794	//
23795	// The tag must be 1-63 characters long, and comply with
23796	// RFC1035.
23797	//
23798	// Example value: "revision-0010".
23799	Tag string `json:"tag,omitempty"`
23800
23801	// UrlMask: A template to parse service and tag fields from a request
23802	// URL. URL mask allows for routing to multiple Run services without
23803	// having to create multiple network endpoint groups and backend
23804	// services.
23805	//
23806	// For example, request URLs "foo1.domain.com/bar1" and
23807	// "foo1.domain.com/bar2" can be backed by the same Serverless Network
23808	// Endpoint Group (NEG) with URL mask ".domain.com/". The URL mask will
23809	// parse them to { service="bar1", tag="foo1" } and { service="bar2",
23810	// tag="foo2" } respectively.
23811	UrlMask string `json:"urlMask,omitempty"`
23812
23813	// ForceSendFields is a list of field names (e.g. "Service") to
23814	// unconditionally include in API requests. By default, fields with
23815	// empty values are omitted from API requests. However, any non-pointer,
23816	// non-interface field appearing in ForceSendFields will be sent to the
23817	// server regardless of whether the field is empty or not. This may be
23818	// used to include empty fields in Patch requests.
23819	ForceSendFields []string `json:"-"`
23820
23821	// NullFields is a list of field names (e.g. "Service") to include in
23822	// API requests with the JSON null value. By default, fields with empty
23823	// values are omitted from API requests. However, any field with an
23824	// empty value appearing in NullFields will be sent to the server as
23825	// null. It is an error if a field in this list has a non-empty value.
23826	// This may be used to include null fields in Patch requests.
23827	NullFields []string `json:"-"`
23828}
23829
23830func (s *NetworkEndpointGroupCloudRun) MarshalJSON() ([]byte, error) {
23831	type NoMethod NetworkEndpointGroupCloudRun
23832	raw := NoMethod(*s)
23833	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23834}
23835
23836// NetworkEndpointGroupLbNetworkEndpointGroup: Load balancing specific
23837// fields for network endpoint group.
23838type NetworkEndpointGroupLbNetworkEndpointGroup struct {
23839	// DefaultPort: The default port used if the port number is not
23840	// specified in the network endpoint. [Deprecated] This field is
23841	// deprecated.
23842	DefaultPort int64 `json:"defaultPort,omitempty"`
23843
23844	// Network: The URL of the network to which all network endpoints in the
23845	// NEG belong. Uses "default" project network if unspecified.
23846	// [Deprecated] This field is deprecated.
23847	Network string `json:"network,omitempty"`
23848
23849	// Subnetwork: Optional URL of the subnetwork to which all network
23850	// endpoints in the NEG belong. [Deprecated] This field is deprecated.
23851	Subnetwork string `json:"subnetwork,omitempty"`
23852
23853	// Zone: [Output Only] The URL of the zone where the network endpoint
23854	// group is located. [Deprecated] This field is deprecated.
23855	Zone string `json:"zone,omitempty"`
23856
23857	// ForceSendFields is a list of field names (e.g. "DefaultPort") to
23858	// unconditionally include in API requests. By default, fields with
23859	// empty values are omitted from API requests. However, any non-pointer,
23860	// non-interface field appearing in ForceSendFields will be sent to the
23861	// server regardless of whether the field is empty or not. This may be
23862	// used to include empty fields in Patch requests.
23863	ForceSendFields []string `json:"-"`
23864
23865	// NullFields is a list of field names (e.g. "DefaultPort") to include
23866	// in API requests with the JSON null value. By default, fields with
23867	// empty values are omitted from API requests. However, any field with
23868	// an empty value appearing in NullFields will be sent to the server as
23869	// null. It is an error if a field in this list has a non-empty value.
23870	// This may be used to include null fields in Patch requests.
23871	NullFields []string `json:"-"`
23872}
23873
23874func (s *NetworkEndpointGroupLbNetworkEndpointGroup) MarshalJSON() ([]byte, error) {
23875	type NoMethod NetworkEndpointGroupLbNetworkEndpointGroup
23876	raw := NoMethod(*s)
23877	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23878}
23879
23880type NetworkEndpointGroupList struct {
23881	// Id: [Output Only] Unique identifier for the resource; defined by the
23882	// server.
23883	Id string `json:"id,omitempty"`
23884
23885	// Items: A list of NetworkEndpointGroup resources.
23886	Items []*NetworkEndpointGroup `json:"items,omitempty"`
23887
23888	// Kind: [Output Only] The resource type, which is always
23889	// compute#networkEndpointGroupList for network endpoint group lists.
23890	Kind string `json:"kind,omitempty"`
23891
23892	// NextPageToken: [Output Only] This token allows you to get the next
23893	// page of results for list requests. If the number of results is larger
23894	// than maxResults, use the nextPageToken as a value for the query
23895	// parameter pageToken in the next list request. Subsequent list
23896	// requests will have their own nextPageToken to continue paging through
23897	// the results.
23898	NextPageToken string `json:"nextPageToken,omitempty"`
23899
23900	// SelfLink: [Output Only] Server-defined URL for this resource.
23901	SelfLink string `json:"selfLink,omitempty"`
23902
23903	// Warning: [Output Only] Informational warning message.
23904	Warning *NetworkEndpointGroupListWarning `json:"warning,omitempty"`
23905
23906	// ServerResponse contains the HTTP response code and headers from the
23907	// server.
23908	googleapi.ServerResponse `json:"-"`
23909
23910	// ForceSendFields is a list of field names (e.g. "Id") to
23911	// unconditionally include in API requests. By default, fields with
23912	// empty values are omitted from API requests. However, any non-pointer,
23913	// non-interface field appearing in ForceSendFields will be sent to the
23914	// server regardless of whether the field is empty or not. This may be
23915	// used to include empty fields in Patch requests.
23916	ForceSendFields []string `json:"-"`
23917
23918	// NullFields is a list of field names (e.g. "Id") to include in API
23919	// requests with the JSON null value. By default, fields with empty
23920	// values are omitted from API requests. However, any field with an
23921	// empty value appearing in NullFields will be sent to the server as
23922	// null. It is an error if a field in this list has a non-empty value.
23923	// This may be used to include null fields in Patch requests.
23924	NullFields []string `json:"-"`
23925}
23926
23927func (s *NetworkEndpointGroupList) MarshalJSON() ([]byte, error) {
23928	type NoMethod NetworkEndpointGroupList
23929	raw := NoMethod(*s)
23930	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23931}
23932
23933// NetworkEndpointGroupListWarning: [Output Only] Informational warning
23934// message.
23935type NetworkEndpointGroupListWarning struct {
23936	// Code: [Output Only] A warning code, if applicable. For example,
23937	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23938	// the response.
23939	//
23940	// Possible values:
23941	//   "CLEANUP_FAILED"
23942	//   "DEPRECATED_RESOURCE_USED"
23943	//   "DEPRECATED_TYPE_USED"
23944	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23945	//   "EXPERIMENTAL_TYPE_USED"
23946	//   "EXTERNAL_API_WARNING"
23947	//   "FIELD_VALUE_OVERRIDEN"
23948	//   "INJECTED_KERNELS_DEPRECATED"
23949	//   "MISSING_TYPE_DEPENDENCY"
23950	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23951	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23952	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23953	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23954	//   "NEXT_HOP_NOT_RUNNING"
23955	//   "NOT_CRITICAL_ERROR"
23956	//   "NO_RESULTS_ON_PAGE"
23957	//   "REQUIRED_TOS_AGREEMENT"
23958	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23959	//   "RESOURCE_NOT_DELETED"
23960	//   "SCHEMA_VALIDATION_IGNORED"
23961	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23962	//   "UNDECLARED_PROPERTIES"
23963	//   "UNREACHABLE"
23964	Code string `json:"code,omitempty"`
23965
23966	// Data: [Output Only] Metadata about this warning in key: value format.
23967	// For example:
23968	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23969	Data []*NetworkEndpointGroupListWarningData `json:"data,omitempty"`
23970
23971	// Message: [Output Only] A human-readable description of the warning
23972	// code.
23973	Message string `json:"message,omitempty"`
23974
23975	// ForceSendFields is a list of field names (e.g. "Code") to
23976	// unconditionally include in API requests. By default, fields with
23977	// empty values are omitted from API requests. However, any non-pointer,
23978	// non-interface field appearing in ForceSendFields will be sent to the
23979	// server regardless of whether the field is empty or not. This may be
23980	// used to include empty fields in Patch requests.
23981	ForceSendFields []string `json:"-"`
23982
23983	// NullFields is a list of field names (e.g. "Code") to include in API
23984	// requests with the JSON null value. By default, fields with empty
23985	// values are omitted from API requests. However, any field with an
23986	// empty value appearing in NullFields will be sent to the server as
23987	// null. It is an error if a field in this list has a non-empty value.
23988	// This may be used to include null fields in Patch requests.
23989	NullFields []string `json:"-"`
23990}
23991
23992func (s *NetworkEndpointGroupListWarning) MarshalJSON() ([]byte, error) {
23993	type NoMethod NetworkEndpointGroupListWarning
23994	raw := NoMethod(*s)
23995	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23996}
23997
23998type NetworkEndpointGroupListWarningData struct {
23999	// Key: [Output Only] A key that provides more detail on the warning
24000	// being returned. For example, for warnings where there are no results
24001	// in a list request for a particular zone, this key might be scope and
24002	// the key value might be the zone name. Other examples might be a key
24003	// indicating a deprecated resource and a suggested replacement, or a
24004	// warning about invalid network settings (for example, if an instance
24005	// attempts to perform IP forwarding but is not enabled for IP
24006	// forwarding).
24007	Key string `json:"key,omitempty"`
24008
24009	// Value: [Output Only] A warning data value corresponding to the key.
24010	Value string `json:"value,omitempty"`
24011
24012	// ForceSendFields is a list of field names (e.g. "Key") to
24013	// unconditionally include in API requests. By default, fields with
24014	// empty values are omitted from API requests. However, any non-pointer,
24015	// non-interface field appearing in ForceSendFields will be sent to the
24016	// server regardless of whether the field is empty or not. This may be
24017	// used to include empty fields in Patch requests.
24018	ForceSendFields []string `json:"-"`
24019
24020	// NullFields is a list of field names (e.g. "Key") to include in API
24021	// requests with the JSON null value. By default, fields with empty
24022	// values are omitted from API requests. However, any field with an
24023	// empty value appearing in NullFields will be sent to the server as
24024	// null. It is an error if a field in this list has a non-empty value.
24025	// This may be used to include null fields in Patch requests.
24026	NullFields []string `json:"-"`
24027}
24028
24029func (s *NetworkEndpointGroupListWarningData) MarshalJSON() ([]byte, error) {
24030	type NoMethod NetworkEndpointGroupListWarningData
24031	raw := NoMethod(*s)
24032	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24033}
24034
24035type NetworkEndpointGroupsAttachEndpointsRequest struct {
24036	// NetworkEndpoints: The list of network endpoints to be attached.
24037	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
24038
24039	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
24040	// unconditionally include in API requests. By default, fields with
24041	// empty values are omitted from API requests. However, any non-pointer,
24042	// non-interface field appearing in ForceSendFields will be sent to the
24043	// server regardless of whether the field is empty or not. This may be
24044	// used to include empty fields in Patch requests.
24045	ForceSendFields []string `json:"-"`
24046
24047	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
24048	// include in API requests with the JSON null value. By default, fields
24049	// with empty values are omitted from API requests. However, any field
24050	// with an empty value appearing in NullFields will be sent to the
24051	// server as null. It is an error if a field in this list has a
24052	// non-empty value. This may be used to include null fields in Patch
24053	// requests.
24054	NullFields []string `json:"-"`
24055}
24056
24057func (s *NetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) {
24058	type NoMethod NetworkEndpointGroupsAttachEndpointsRequest
24059	raw := NoMethod(*s)
24060	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24061}
24062
24063type NetworkEndpointGroupsDetachEndpointsRequest struct {
24064	// NetworkEndpoints: The list of network endpoints to be detached.
24065	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
24066
24067	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
24068	// unconditionally include in API requests. By default, fields with
24069	// empty values are omitted from API requests. However, any non-pointer,
24070	// non-interface field appearing in ForceSendFields will be sent to the
24071	// server regardless of whether the field is empty or not. This may be
24072	// used to include empty fields in Patch requests.
24073	ForceSendFields []string `json:"-"`
24074
24075	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
24076	// include in API requests with the JSON null value. By default, fields
24077	// with empty values are omitted from API requests. However, any field
24078	// with an empty value appearing in NullFields will be sent to the
24079	// server as null. It is an error if a field in this list has a
24080	// non-empty value. This may be used to include null fields in Patch
24081	// requests.
24082	NullFields []string `json:"-"`
24083}
24084
24085func (s *NetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) {
24086	type NoMethod NetworkEndpointGroupsDetachEndpointsRequest
24087	raw := NoMethod(*s)
24088	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24089}
24090
24091type NetworkEndpointGroupsListEndpointsRequest struct {
24092	// EndpointFilters: Optional list of endpoints to query. This is a more
24093	// efficient but also limited version of filter parameter. Endpoints in
24094	// the filter must have ip_address and port fields populated, other
24095	// fields are not supported.
24096	EndpointFilters []*NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter `json:"endpointFilters,omitempty"`
24097
24098	// HealthStatus: Optional query parameter for showing the health status
24099	// of each network endpoint. Valid options are SKIP or SHOW. If you
24100	// don't specifiy this parameter, the health status of network endpoints
24101	// will not be provided.
24102	//
24103	// Possible values:
24104	//   "SHOW"
24105	//   "SKIP"
24106	HealthStatus string `json:"healthStatus,omitempty"`
24107
24108	// ForceSendFields is a list of field names (e.g. "EndpointFilters") to
24109	// unconditionally include in API requests. By default, fields with
24110	// empty values are omitted from API requests. However, any non-pointer,
24111	// non-interface field appearing in ForceSendFields will be sent to the
24112	// server regardless of whether the field is empty or not. This may be
24113	// used to include empty fields in Patch requests.
24114	ForceSendFields []string `json:"-"`
24115
24116	// NullFields is a list of field names (e.g. "EndpointFilters") to
24117	// include in API requests with the JSON null value. By default, fields
24118	// with empty values are omitted from API requests. However, any field
24119	// with an empty value appearing in NullFields will be sent to the
24120	// server as null. It is an error if a field in this list has a
24121	// non-empty value. This may be used to include null fields in Patch
24122	// requests.
24123	NullFields []string `json:"-"`
24124}
24125
24126func (s *NetworkEndpointGroupsListEndpointsRequest) MarshalJSON() ([]byte, error) {
24127	type NoMethod NetworkEndpointGroupsListEndpointsRequest
24128	raw := NoMethod(*s)
24129	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24130}
24131
24132type NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter struct {
24133	NetworkEndpoint *NetworkEndpoint `json:"networkEndpoint,omitempty"`
24134
24135	// ForceSendFields is a list of field names (e.g. "NetworkEndpoint") to
24136	// unconditionally include in API requests. By default, fields with
24137	// empty values are omitted from API requests. However, any non-pointer,
24138	// non-interface field appearing in ForceSendFields will be sent to the
24139	// server regardless of whether the field is empty or not. This may be
24140	// used to include empty fields in Patch requests.
24141	ForceSendFields []string `json:"-"`
24142
24143	// NullFields is a list of field names (e.g. "NetworkEndpoint") to
24144	// include in API requests with the JSON null value. By default, fields
24145	// with empty values are omitted from API requests. However, any field
24146	// with an empty value appearing in NullFields will be sent to the
24147	// server as null. It is an error if a field in this list has a
24148	// non-empty value. This may be used to include null fields in Patch
24149	// requests.
24150	NullFields []string `json:"-"`
24151}
24152
24153func (s *NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter) MarshalJSON() ([]byte, error) {
24154	type NoMethod NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter
24155	raw := NoMethod(*s)
24156	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24157}
24158
24159type NetworkEndpointGroupsListNetworkEndpoints struct {
24160	// Id: [Output Only] Unique identifier for the resource; defined by the
24161	// server.
24162	Id string `json:"id,omitempty"`
24163
24164	// Items: A list of NetworkEndpointWithHealthStatus resources.
24165	Items []*NetworkEndpointWithHealthStatus `json:"items,omitempty"`
24166
24167	// Kind: [Output Only] The resource type, which is always
24168	// compute#networkEndpointGroupsListNetworkEndpoints for the list of
24169	// network endpoints in the specified network endpoint group.
24170	Kind string `json:"kind,omitempty"`
24171
24172	// NextPageToken: [Output Only] This token allows you to get the next
24173	// page of results for list requests. If the number of results is larger
24174	// than maxResults, use the nextPageToken as a value for the query
24175	// parameter pageToken in the next list request. Subsequent list
24176	// requests will have their own nextPageToken to continue paging through
24177	// the results.
24178	NextPageToken string `json:"nextPageToken,omitempty"`
24179
24180	// Warning: [Output Only] Informational warning message.
24181	Warning *NetworkEndpointGroupsListNetworkEndpointsWarning `json:"warning,omitempty"`
24182
24183	// ServerResponse contains the HTTP response code and headers from the
24184	// server.
24185	googleapi.ServerResponse `json:"-"`
24186
24187	// ForceSendFields is a list of field names (e.g. "Id") to
24188	// unconditionally include in API requests. By default, fields with
24189	// empty values are omitted from API requests. However, any non-pointer,
24190	// non-interface field appearing in ForceSendFields will be sent to the
24191	// server regardless of whether the field is empty or not. This may be
24192	// used to include empty fields in Patch requests.
24193	ForceSendFields []string `json:"-"`
24194
24195	// NullFields is a list of field names (e.g. "Id") to include in API
24196	// requests with the JSON null value. By default, fields with empty
24197	// values are omitted from API requests. However, any field with an
24198	// empty value appearing in NullFields will be sent to the server as
24199	// null. It is an error if a field in this list has a non-empty value.
24200	// This may be used to include null fields in Patch requests.
24201	NullFields []string `json:"-"`
24202}
24203
24204func (s *NetworkEndpointGroupsListNetworkEndpoints) MarshalJSON() ([]byte, error) {
24205	type NoMethod NetworkEndpointGroupsListNetworkEndpoints
24206	raw := NoMethod(*s)
24207	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24208}
24209
24210// NetworkEndpointGroupsListNetworkEndpointsWarning: [Output Only]
24211// Informational warning message.
24212type NetworkEndpointGroupsListNetworkEndpointsWarning struct {
24213	// Code: [Output Only] A warning code, if applicable. For example,
24214	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24215	// the response.
24216	//
24217	// Possible values:
24218	//   "CLEANUP_FAILED"
24219	//   "DEPRECATED_RESOURCE_USED"
24220	//   "DEPRECATED_TYPE_USED"
24221	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24222	//   "EXPERIMENTAL_TYPE_USED"
24223	//   "EXTERNAL_API_WARNING"
24224	//   "FIELD_VALUE_OVERRIDEN"
24225	//   "INJECTED_KERNELS_DEPRECATED"
24226	//   "MISSING_TYPE_DEPENDENCY"
24227	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24228	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24229	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24230	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24231	//   "NEXT_HOP_NOT_RUNNING"
24232	//   "NOT_CRITICAL_ERROR"
24233	//   "NO_RESULTS_ON_PAGE"
24234	//   "REQUIRED_TOS_AGREEMENT"
24235	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24236	//   "RESOURCE_NOT_DELETED"
24237	//   "SCHEMA_VALIDATION_IGNORED"
24238	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24239	//   "UNDECLARED_PROPERTIES"
24240	//   "UNREACHABLE"
24241	Code string `json:"code,omitempty"`
24242
24243	// Data: [Output Only] Metadata about this warning in key: value format.
24244	// For example:
24245	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24246	Data []*NetworkEndpointGroupsListNetworkEndpointsWarningData `json:"data,omitempty"`
24247
24248	// Message: [Output Only] A human-readable description of the warning
24249	// code.
24250	Message string `json:"message,omitempty"`
24251
24252	// ForceSendFields is a list of field names (e.g. "Code") to
24253	// unconditionally include in API requests. By default, fields with
24254	// empty values are omitted from API requests. However, any non-pointer,
24255	// non-interface field appearing in ForceSendFields will be sent to the
24256	// server regardless of whether the field is empty or not. This may be
24257	// used to include empty fields in Patch requests.
24258	ForceSendFields []string `json:"-"`
24259
24260	// NullFields is a list of field names (e.g. "Code") to include in API
24261	// requests with the JSON null value. By default, fields with empty
24262	// values are omitted from API requests. However, any field with an
24263	// empty value appearing in NullFields will be sent to the server as
24264	// null. It is an error if a field in this list has a non-empty value.
24265	// This may be used to include null fields in Patch requests.
24266	NullFields []string `json:"-"`
24267}
24268
24269func (s *NetworkEndpointGroupsListNetworkEndpointsWarning) MarshalJSON() ([]byte, error) {
24270	type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarning
24271	raw := NoMethod(*s)
24272	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24273}
24274
24275type NetworkEndpointGroupsListNetworkEndpointsWarningData struct {
24276	// Key: [Output Only] A key that provides more detail on the warning
24277	// being returned. For example, for warnings where there are no results
24278	// in a list request for a particular zone, this key might be scope and
24279	// the key value might be the zone name. Other examples might be a key
24280	// indicating a deprecated resource and a suggested replacement, or a
24281	// warning about invalid network settings (for example, if an instance
24282	// attempts to perform IP forwarding but is not enabled for IP
24283	// forwarding).
24284	Key string `json:"key,omitempty"`
24285
24286	// Value: [Output Only] A warning data value corresponding to the key.
24287	Value string `json:"value,omitempty"`
24288
24289	// ForceSendFields is a list of field names (e.g. "Key") 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. "Key") 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 *NetworkEndpointGroupsListNetworkEndpointsWarningData) MarshalJSON() ([]byte, error) {
24307	type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarningData
24308	raw := NoMethod(*s)
24309	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24310}
24311
24312type NetworkEndpointGroupsScopedList struct {
24313	// NetworkEndpointGroups: [Output Only] The list of network endpoint
24314	// groups that are contained in this scope.
24315	NetworkEndpointGroups []*NetworkEndpointGroup `json:"networkEndpointGroups,omitempty"`
24316
24317	// Warning: [Output Only] An informational warning that replaces the
24318	// list of network endpoint groups when the list is empty.
24319	Warning *NetworkEndpointGroupsScopedListWarning `json:"warning,omitempty"`
24320
24321	// ForceSendFields is a list of field names (e.g.
24322	// "NetworkEndpointGroups") to unconditionally include in API requests.
24323	// By default, fields with empty values are omitted from API requests.
24324	// However, any non-pointer, non-interface field appearing in
24325	// ForceSendFields will be sent to the server regardless of whether the
24326	// field is empty or not. This may be used to include empty fields in
24327	// Patch requests.
24328	ForceSendFields []string `json:"-"`
24329
24330	// NullFields is a list of field names (e.g. "NetworkEndpointGroups") to
24331	// include in API requests with the JSON null value. By default, fields
24332	// with empty values are omitted from API requests. However, any field
24333	// with an empty value appearing in NullFields will be sent to the
24334	// server as null. It is an error if a field in this list has a
24335	// non-empty value. This may be used to include null fields in Patch
24336	// requests.
24337	NullFields []string `json:"-"`
24338}
24339
24340func (s *NetworkEndpointGroupsScopedList) MarshalJSON() ([]byte, error) {
24341	type NoMethod NetworkEndpointGroupsScopedList
24342	raw := NoMethod(*s)
24343	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24344}
24345
24346// NetworkEndpointGroupsScopedListWarning: [Output Only] An
24347// informational warning that replaces the list of network endpoint
24348// groups when the list is empty.
24349type NetworkEndpointGroupsScopedListWarning struct {
24350	// Code: [Output Only] A warning code, if applicable. For example,
24351	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24352	// the response.
24353	//
24354	// Possible values:
24355	//   "CLEANUP_FAILED"
24356	//   "DEPRECATED_RESOURCE_USED"
24357	//   "DEPRECATED_TYPE_USED"
24358	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24359	//   "EXPERIMENTAL_TYPE_USED"
24360	//   "EXTERNAL_API_WARNING"
24361	//   "FIELD_VALUE_OVERRIDEN"
24362	//   "INJECTED_KERNELS_DEPRECATED"
24363	//   "MISSING_TYPE_DEPENDENCY"
24364	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24365	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24366	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24367	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24368	//   "NEXT_HOP_NOT_RUNNING"
24369	//   "NOT_CRITICAL_ERROR"
24370	//   "NO_RESULTS_ON_PAGE"
24371	//   "REQUIRED_TOS_AGREEMENT"
24372	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24373	//   "RESOURCE_NOT_DELETED"
24374	//   "SCHEMA_VALIDATION_IGNORED"
24375	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24376	//   "UNDECLARED_PROPERTIES"
24377	//   "UNREACHABLE"
24378	Code string `json:"code,omitempty"`
24379
24380	// Data: [Output Only] Metadata about this warning in key: value format.
24381	// For example:
24382	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24383	Data []*NetworkEndpointGroupsScopedListWarningData `json:"data,omitempty"`
24384
24385	// Message: [Output Only] A human-readable description of the warning
24386	// code.
24387	Message string `json:"message,omitempty"`
24388
24389	// ForceSendFields is a list of field names (e.g. "Code") to
24390	// unconditionally include in API requests. By default, fields with
24391	// empty values are omitted from API requests. However, any non-pointer,
24392	// non-interface field appearing in ForceSendFields will be sent to the
24393	// server regardless of whether the field is empty or not. This may be
24394	// used to include empty fields in Patch requests.
24395	ForceSendFields []string `json:"-"`
24396
24397	// NullFields is a list of field names (e.g. "Code") to include in API
24398	// requests with the JSON null value. By default, fields with empty
24399	// values are omitted from API requests. However, any field with an
24400	// empty value appearing in NullFields will be sent to the server as
24401	// null. It is an error if a field in this list has a non-empty value.
24402	// This may be used to include null fields in Patch requests.
24403	NullFields []string `json:"-"`
24404}
24405
24406func (s *NetworkEndpointGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
24407	type NoMethod NetworkEndpointGroupsScopedListWarning
24408	raw := NoMethod(*s)
24409	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24410}
24411
24412type NetworkEndpointGroupsScopedListWarningData struct {
24413	// Key: [Output Only] A key that provides more detail on the warning
24414	// being returned. For example, for warnings where there are no results
24415	// in a list request for a particular zone, this key might be scope and
24416	// the key value might be the zone name. Other examples might be a key
24417	// indicating a deprecated resource and a suggested replacement, or a
24418	// warning about invalid network settings (for example, if an instance
24419	// attempts to perform IP forwarding but is not enabled for IP
24420	// forwarding).
24421	Key string `json:"key,omitempty"`
24422
24423	// Value: [Output Only] A warning data value corresponding to the key.
24424	Value string `json:"value,omitempty"`
24425
24426	// ForceSendFields is a list of field names (e.g. "Key") to
24427	// unconditionally include in API requests. By default, fields with
24428	// empty values are omitted from API requests. However, any non-pointer,
24429	// non-interface field appearing in ForceSendFields will be sent to the
24430	// server regardless of whether the field is empty or not. This may be
24431	// used to include empty fields in Patch requests.
24432	ForceSendFields []string `json:"-"`
24433
24434	// NullFields is a list of field names (e.g. "Key") to include in API
24435	// requests with the JSON null value. By default, fields with empty
24436	// values are omitted from API requests. However, any field with an
24437	// empty value appearing in NullFields will be sent to the server as
24438	// null. It is an error if a field in this list has a non-empty value.
24439	// This may be used to include null fields in Patch requests.
24440	NullFields []string `json:"-"`
24441}
24442
24443func (s *NetworkEndpointGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
24444	type NoMethod NetworkEndpointGroupsScopedListWarningData
24445	raw := NoMethod(*s)
24446	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24447}
24448
24449type NetworkEndpointWithHealthStatus struct {
24450	// Healths: [Output only] The health status of network endpoint;
24451	Healths []*HealthStatusForNetworkEndpoint `json:"healths,omitempty"`
24452
24453	// NetworkEndpoint: [Output only] The network endpoint;
24454	NetworkEndpoint *NetworkEndpoint `json:"networkEndpoint,omitempty"`
24455
24456	// ForceSendFields is a list of field names (e.g. "Healths") to
24457	// unconditionally include in API requests. By default, fields with
24458	// empty values are omitted from API requests. However, any non-pointer,
24459	// non-interface field appearing in ForceSendFields will be sent to the
24460	// server regardless of whether the field is empty or not. This may be
24461	// used to include empty fields in Patch requests.
24462	ForceSendFields []string `json:"-"`
24463
24464	// NullFields is a list of field names (e.g. "Healths") to include in
24465	// API requests with the JSON null value. By default, fields with empty
24466	// values are omitted from API requests. However, any field with an
24467	// empty value appearing in NullFields will be sent to the server as
24468	// null. It is an error if a field in this list has a non-empty value.
24469	// This may be used to include null fields in Patch requests.
24470	NullFields []string `json:"-"`
24471}
24472
24473func (s *NetworkEndpointWithHealthStatus) MarshalJSON() ([]byte, error) {
24474	type NoMethod NetworkEndpointWithHealthStatus
24475	raw := NoMethod(*s)
24476	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24477}
24478
24479// NetworkInterface: A network interface resource attached to an
24480// instance.
24481type NetworkInterface struct {
24482	// AccessConfigs: An array of configurations for this interface.
24483	// Currently, only one access config, ONE_TO_ONE_NAT, is supported. If
24484	// there are no accessConfigs specified, then this instance will have no
24485	// external internet access.
24486	AccessConfigs []*AccessConfig `json:"accessConfigs,omitempty"`
24487
24488	// AliasIpRanges: An array of alias IP ranges for this network
24489	// interface. You can only specify this field for network interfaces in
24490	// VPC networks.
24491	AliasIpRanges []*AliasIpRange `json:"aliasIpRanges,omitempty"`
24492
24493	// Fingerprint: Fingerprint hash of contents stored in this network
24494	// interface. This field will be ignored when inserting an Instance or
24495	// adding a NetworkInterface. An up-to-date fingerprint must be provided
24496	// in order to update the NetworkInterface, otherwise the request will
24497	// fail with error 412 conditionNotMet.
24498	Fingerprint string `json:"fingerprint,omitempty"`
24499
24500	// Ipv6Address: [Output Only] An IPv6 internal network address for this
24501	// network interface.
24502	Ipv6Address string `json:"ipv6Address,omitempty"`
24503
24504	// Kind: [Output Only] Type of the resource. Always
24505	// compute#networkInterface for network interfaces.
24506	Kind string `json:"kind,omitempty"`
24507
24508	// Name: [Output Only] The name of the network interface, which is
24509	// generated by the server. For network devices, these are eth0, eth1,
24510	// etc.
24511	Name string `json:"name,omitempty"`
24512
24513	// Network: URL of the network resource for this instance. When creating
24514	// an instance, if neither the network nor the subnetwork is specified,
24515	// the default network global/networks/default is used; if the network
24516	// is not specified but the subnetwork is specified, the network is
24517	// inferred.
24518	//
24519	// If you specify this property, you can specify the network as a full
24520	// or partial URL. For example, the following are all valid URLs:
24521	// -
24522	// https://www.googleapis.com/compute/v1/projects/project/global/networks/network
24523	// - projects/project/global/networks/network
24524	// - global/networks/default
24525	Network string `json:"network,omitempty"`
24526
24527	// NetworkIP: An IPv4 internal IP address to assign to the instance for
24528	// this network interface. If not specified by the user, an unused
24529	// internal IP is assigned by the system.
24530	NetworkIP string `json:"networkIP,omitempty"`
24531
24532	// Subnetwork: The URL of the Subnetwork resource for this instance. If
24533	// the network resource is in legacy mode, do not specify this field. If
24534	// the network is in auto subnet mode, specifying the subnetwork is
24535	// optional. If the network is in custom subnet mode, specifying the
24536	// subnetwork is required. If you specify this field, you can specify
24537	// the subnetwork as a full or partial URL. For example, the following
24538	// are all valid URLs:
24539	// -
24540	// https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
24541	// - regions/region/subnetworks/subnetwork
24542	Subnetwork string `json:"subnetwork,omitempty"`
24543
24544	// ForceSendFields is a list of field names (e.g. "AccessConfigs") to
24545	// unconditionally include in API requests. By default, fields with
24546	// empty values are omitted from API requests. However, any non-pointer,
24547	// non-interface field appearing in ForceSendFields will be sent to the
24548	// server regardless of whether the field is empty or not. This may be
24549	// used to include empty fields in Patch requests.
24550	ForceSendFields []string `json:"-"`
24551
24552	// NullFields is a list of field names (e.g. "AccessConfigs") to include
24553	// in API requests with the JSON null value. By default, fields with
24554	// empty values are omitted from API requests. However, any field with
24555	// an empty value appearing in NullFields will be sent to the server as
24556	// null. It is an error if a field in this list has a non-empty value.
24557	// This may be used to include null fields in Patch requests.
24558	NullFields []string `json:"-"`
24559}
24560
24561func (s *NetworkInterface) MarshalJSON() ([]byte, error) {
24562	type NoMethod NetworkInterface
24563	raw := NoMethod(*s)
24564	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24565}
24566
24567// NetworkList: Contains a list of networks.
24568type NetworkList struct {
24569	// Id: [Output Only] Unique identifier for the resource; defined by the
24570	// server.
24571	Id string `json:"id,omitempty"`
24572
24573	// Items: A list of Network resources.
24574	Items []*Network `json:"items,omitempty"`
24575
24576	// Kind: [Output Only] Type of resource. Always compute#networkList for
24577	// lists of networks.
24578	Kind string `json:"kind,omitempty"`
24579
24580	// NextPageToken: [Output Only] This token allows you to get the next
24581	// page of results for list requests. If the number of results is larger
24582	// than maxResults, use the nextPageToken as a value for the query
24583	// parameter pageToken in the next list request. Subsequent list
24584	// requests will have their own nextPageToken to continue paging through
24585	// the results.
24586	NextPageToken string `json:"nextPageToken,omitempty"`
24587
24588	// SelfLink: [Output Only] Server-defined URL for this resource.
24589	SelfLink string `json:"selfLink,omitempty"`
24590
24591	// Warning: [Output Only] Informational warning message.
24592	Warning *NetworkListWarning `json:"warning,omitempty"`
24593
24594	// ServerResponse contains the HTTP response code and headers from the
24595	// server.
24596	googleapi.ServerResponse `json:"-"`
24597
24598	// ForceSendFields is a list of field names (e.g. "Id") to
24599	// unconditionally include in API requests. By default, fields with
24600	// empty values are omitted from API requests. However, any non-pointer,
24601	// non-interface field appearing in ForceSendFields will be sent to the
24602	// server regardless of whether the field is empty or not. This may be
24603	// used to include empty fields in Patch requests.
24604	ForceSendFields []string `json:"-"`
24605
24606	// NullFields is a list of field names (e.g. "Id") to include in API
24607	// requests with the JSON null value. By default, fields with empty
24608	// values are omitted from API requests. However, any field with an
24609	// empty value appearing in NullFields will be sent to the server as
24610	// null. It is an error if a field in this list has a non-empty value.
24611	// This may be used to include null fields in Patch requests.
24612	NullFields []string `json:"-"`
24613}
24614
24615func (s *NetworkList) MarshalJSON() ([]byte, error) {
24616	type NoMethod NetworkList
24617	raw := NoMethod(*s)
24618	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24619}
24620
24621// NetworkListWarning: [Output Only] Informational warning message.
24622type NetworkListWarning struct {
24623	// Code: [Output Only] A warning code, if applicable. For example,
24624	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24625	// the response.
24626	//
24627	// Possible values:
24628	//   "CLEANUP_FAILED"
24629	//   "DEPRECATED_RESOURCE_USED"
24630	//   "DEPRECATED_TYPE_USED"
24631	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24632	//   "EXPERIMENTAL_TYPE_USED"
24633	//   "EXTERNAL_API_WARNING"
24634	//   "FIELD_VALUE_OVERRIDEN"
24635	//   "INJECTED_KERNELS_DEPRECATED"
24636	//   "MISSING_TYPE_DEPENDENCY"
24637	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24638	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24639	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24640	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24641	//   "NEXT_HOP_NOT_RUNNING"
24642	//   "NOT_CRITICAL_ERROR"
24643	//   "NO_RESULTS_ON_PAGE"
24644	//   "REQUIRED_TOS_AGREEMENT"
24645	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24646	//   "RESOURCE_NOT_DELETED"
24647	//   "SCHEMA_VALIDATION_IGNORED"
24648	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24649	//   "UNDECLARED_PROPERTIES"
24650	//   "UNREACHABLE"
24651	Code string `json:"code,omitempty"`
24652
24653	// Data: [Output Only] Metadata about this warning in key: value format.
24654	// For example:
24655	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24656	Data []*NetworkListWarningData `json:"data,omitempty"`
24657
24658	// Message: [Output Only] A human-readable description of the warning
24659	// code.
24660	Message string `json:"message,omitempty"`
24661
24662	// ForceSendFields is a list of field names (e.g. "Code") to
24663	// unconditionally include in API requests. By default, fields with
24664	// empty values are omitted from API requests. However, any non-pointer,
24665	// non-interface field appearing in ForceSendFields will be sent to the
24666	// server regardless of whether the field is empty or not. This may be
24667	// used to include empty fields in Patch requests.
24668	ForceSendFields []string `json:"-"`
24669
24670	// NullFields is a list of field names (e.g. "Code") to include in API
24671	// requests with the JSON null value. By default, fields with empty
24672	// values are omitted from API requests. However, any field with an
24673	// empty value appearing in NullFields will be sent to the server as
24674	// null. It is an error if a field in this list has a non-empty value.
24675	// This may be used to include null fields in Patch requests.
24676	NullFields []string `json:"-"`
24677}
24678
24679func (s *NetworkListWarning) MarshalJSON() ([]byte, error) {
24680	type NoMethod NetworkListWarning
24681	raw := NoMethod(*s)
24682	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24683}
24684
24685type NetworkListWarningData struct {
24686	// Key: [Output Only] A key that provides more detail on the warning
24687	// being returned. For example, for warnings where there are no results
24688	// in a list request for a particular zone, this key might be scope and
24689	// the key value might be the zone name. Other examples might be a key
24690	// indicating a deprecated resource and a suggested replacement, or a
24691	// warning about invalid network settings (for example, if an instance
24692	// attempts to perform IP forwarding but is not enabled for IP
24693	// forwarding).
24694	Key string `json:"key,omitempty"`
24695
24696	// Value: [Output Only] A warning data value corresponding to the key.
24697	Value string `json:"value,omitempty"`
24698
24699	// ForceSendFields is a list of field names (e.g. "Key") to
24700	// unconditionally include in API requests. By default, fields with
24701	// empty values are omitted from API requests. However, any non-pointer,
24702	// non-interface field appearing in ForceSendFields will be sent to the
24703	// server regardless of whether the field is empty or not. This may be
24704	// used to include empty fields in Patch requests.
24705	ForceSendFields []string `json:"-"`
24706
24707	// NullFields is a list of field names (e.g. "Key") to include in API
24708	// requests with the JSON null value. By default, fields with empty
24709	// values are omitted from API requests. However, any field with an
24710	// empty value appearing in NullFields will be sent to the server as
24711	// null. It is an error if a field in this list has a non-empty value.
24712	// This may be used to include null fields in Patch requests.
24713	NullFields []string `json:"-"`
24714}
24715
24716func (s *NetworkListWarningData) MarshalJSON() ([]byte, error) {
24717	type NoMethod NetworkListWarningData
24718	raw := NoMethod(*s)
24719	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24720}
24721
24722// NetworkPeering: A network peering attached to a network resource. The
24723// message includes the peering name, peer network, peering state, and a
24724// flag indicating whether Google Compute Engine should automatically
24725// create routes for the peering.
24726type NetworkPeering struct {
24727	// AdvertisePeerSubnetsViaRouters: Whether Cloud Routers in this network
24728	// can automatically advertise subnets from the peer network.
24729	AdvertisePeerSubnetsViaRouters bool `json:"advertisePeerSubnetsViaRouters,omitempty"`
24730
24731	// AutoCreateRoutes: This field will be deprecated soon. Use the
24732	// exchange_subnet_routes field instead. Indicates whether full mesh
24733	// connectivity is created and managed automatically between peered
24734	// networks. Currently this field should always be true since Google
24735	// Compute Engine will automatically create and manage subnetwork routes
24736	// between two networks when peering state is ACTIVE.
24737	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
24738
24739	// ExchangeSubnetRoutes: Indicates whether full mesh connectivity is
24740	// created and managed automatically between peered networks. Currently
24741	// this field should always be true since Google Compute Engine will
24742	// automatically create and manage subnetwork routes between two
24743	// networks when peering state is ACTIVE.
24744	ExchangeSubnetRoutes bool `json:"exchangeSubnetRoutes,omitempty"`
24745
24746	// ExportCustomRoutes: Whether to export the custom routes to peer
24747	// network.
24748	ExportCustomRoutes bool `json:"exportCustomRoutes,omitempty"`
24749
24750	// ExportSubnetRoutesWithPublicIp: Whether subnet routes with public IP
24751	// range are exported. The default value is true, all subnet routes are
24752	// exported. The IPv4 special-use ranges
24753	// (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are always
24754	// exported to peers and are not controlled by this field.
24755	ExportSubnetRoutesWithPublicIp bool `json:"exportSubnetRoutesWithPublicIp,omitempty"`
24756
24757	// ImportCustomRoutes: Whether to import the custom routes from peer
24758	// network.
24759	ImportCustomRoutes bool `json:"importCustomRoutes,omitempty"`
24760
24761	// ImportSubnetRoutesWithPublicIp: Whether subnet routes with public IP
24762	// range are imported. The default value is false. The IPv4 special-use
24763	// ranges (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are
24764	// always imported from peers and are not controlled by this field.
24765	ImportSubnetRoutesWithPublicIp bool `json:"importSubnetRoutesWithPublicIp,omitempty"`
24766
24767	// Name: Name of this peering. Provided by the client when the peering
24768	// is created. The name must comply with RFC1035. Specifically, the name
24769	// must be 1-63 characters long and match regular expression
24770	// `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase
24771	// letter, and all the following characters must be a dash, lowercase
24772	// letter, or digit, except the last character, which cannot be a dash.
24773	Name string `json:"name,omitempty"`
24774
24775	// Network: The URL of the peer network. It can be either full URL or
24776	// partial URL. The peer network may belong to a different project. If
24777	// the partial URL does not contain project, it is assumed that the peer
24778	// network is in the same project as the current network.
24779	Network string `json:"network,omitempty"`
24780
24781	// PeerMtu: Maximum Transmission Unit in bytes.
24782	PeerMtu int64 `json:"peerMtu,omitempty"`
24783
24784	// State: [Output Only] State for the peering, either `ACTIVE` or
24785	// `INACTIVE`. The peering is `ACTIVE` when there's a matching
24786	// configuration in the peer network.
24787	//
24788	// Possible values:
24789	//   "ACTIVE"
24790	//   "INACTIVE"
24791	State string `json:"state,omitempty"`
24792
24793	// StateDetails: [Output Only] Details about the current state of the
24794	// peering.
24795	StateDetails string `json:"stateDetails,omitempty"`
24796
24797	// ForceSendFields is a list of field names (e.g.
24798	// "AdvertisePeerSubnetsViaRouters") to unconditionally include in API
24799	// requests. By default, fields with empty values are omitted from API
24800	// requests. However, any non-pointer, non-interface field appearing in
24801	// ForceSendFields will be sent to the server regardless of whether the
24802	// field is empty or not. This may be used to include empty fields in
24803	// Patch requests.
24804	ForceSendFields []string `json:"-"`
24805
24806	// NullFields is a list of field names (e.g.
24807	// "AdvertisePeerSubnetsViaRouters") to include in API requests with the
24808	// JSON null value. By default, fields with empty values are omitted
24809	// from API requests. However, any field with an empty value appearing
24810	// in NullFields will be sent to the server as null. It is an error if a
24811	// field in this list has a non-empty value. This may be used to include
24812	// null fields in Patch requests.
24813	NullFields []string `json:"-"`
24814}
24815
24816func (s *NetworkPeering) MarshalJSON() ([]byte, error) {
24817	type NoMethod NetworkPeering
24818	raw := NoMethod(*s)
24819	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24820}
24821
24822// NetworkRoutingConfig: A routing configuration attached to a network
24823// resource. The message includes the list of routers associated with
24824// the network, and a flag indicating the type of routing behavior to
24825// enforce network-wide.
24826type NetworkRoutingConfig struct {
24827	// RoutingMode: The network-wide routing mode to use. If set to
24828	// REGIONAL, this network's Cloud Routers will only advertise routes
24829	// with subnets of this network in the same region as the router. If set
24830	// to GLOBAL, this network's Cloud Routers will advertise routes with
24831	// all subnets of this network, across regions.
24832	//
24833	// Possible values:
24834	//   "GLOBAL"
24835	//   "REGIONAL"
24836	RoutingMode string `json:"routingMode,omitempty"`
24837
24838	// ForceSendFields is a list of field names (e.g. "RoutingMode") to
24839	// unconditionally include in API requests. By default, fields with
24840	// empty values are omitted from API requests. However, any non-pointer,
24841	// non-interface field appearing in ForceSendFields will be sent to the
24842	// server regardless of whether the field is empty or not. This may be
24843	// used to include empty fields in Patch requests.
24844	ForceSendFields []string `json:"-"`
24845
24846	// NullFields is a list of field names (e.g. "RoutingMode") to include
24847	// in API requests with the JSON null value. By default, fields with
24848	// empty values are omitted from API requests. However, any field with
24849	// an empty value appearing in NullFields will be sent to the server as
24850	// null. It is an error if a field in this list has a non-empty value.
24851	// This may be used to include null fields in Patch requests.
24852	NullFields []string `json:"-"`
24853}
24854
24855func (s *NetworkRoutingConfig) MarshalJSON() ([]byte, error) {
24856	type NoMethod NetworkRoutingConfig
24857	raw := NoMethod(*s)
24858	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24859}
24860
24861type NetworksAddPeeringRequest struct {
24862	// AutoCreateRoutes: This field will be deprecated soon. Use
24863	// exchange_subnet_routes in network_peering instead. Indicates whether
24864	// full mesh connectivity is created and managed automatically between
24865	// peered networks. Currently this field should always be true since
24866	// Google Compute Engine will automatically create and manage subnetwork
24867	// routes between two networks when peering state is ACTIVE.
24868	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
24869
24870	// ExportCustomRoutes: This field will be deprecated soon. Use
24871	// export_custom_routes in network_peering instead. Whether to export
24872	// the custom routes to peer network.
24873	ExportCustomRoutes bool `json:"exportCustomRoutes,omitempty"`
24874
24875	// ImportCustomRoutes: This field will be deprecated soon. Use
24876	// import_custom_routes in network_peering instead. Whether to import
24877	// the custom routes from peer network.
24878	ImportCustomRoutes bool `json:"importCustomRoutes,omitempty"`
24879
24880	// Name: Name of the peering, which should conform to RFC1035.
24881	Name string `json:"name,omitempty"`
24882
24883	// NetworkPeering: Network peering parameters. In order to specify route
24884	// policies for peering using import and export custom routes, you must
24885	// specify all peering related parameters (name, peer network,
24886	// exchange_subnet_routes) in the network_peering field. The
24887	// corresponding fields in NetworksAddPeeringRequest will be deprecated
24888	// soon.
24889	NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"`
24890
24891	// PeerNetwork: URL of the peer network. It can be either full URL or
24892	// partial URL. The peer network may belong to a different project. If
24893	// the partial URL does not contain project, it is assumed that the peer
24894	// network is in the same project as the current network.
24895	PeerNetwork string `json:"peerNetwork,omitempty"`
24896
24897	// ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to
24898	// unconditionally include in API requests. By default, fields with
24899	// empty values are omitted from API requests. However, any non-pointer,
24900	// non-interface field appearing in ForceSendFields will be sent to the
24901	// server regardless of whether the field is empty or not. This may be
24902	// used to include empty fields in Patch requests.
24903	ForceSendFields []string `json:"-"`
24904
24905	// NullFields is a list of field names (e.g. "AutoCreateRoutes") to
24906	// include in API requests with the JSON null value. By default, fields
24907	// with empty values are omitted from API requests. However, any field
24908	// with an empty value appearing in NullFields will be sent to the
24909	// server as null. It is an error if a field in this list has a
24910	// non-empty value. This may be used to include null fields in Patch
24911	// requests.
24912	NullFields []string `json:"-"`
24913}
24914
24915func (s *NetworksAddPeeringRequest) MarshalJSON() ([]byte, error) {
24916	type NoMethod NetworksAddPeeringRequest
24917	raw := NoMethod(*s)
24918	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24919}
24920
24921type NetworksGetEffectiveFirewallsResponse struct {
24922	// Firewalls: Effective firewalls on the network.
24923	Firewalls []*Firewall `json:"firewalls,omitempty"`
24924
24925	// OrganizationFirewalls: Effective firewalls from organization
24926	// policies.
24927	OrganizationFirewalls []*NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy `json:"organizationFirewalls,omitempty"`
24928
24929	// ServerResponse contains the HTTP response code and headers from the
24930	// server.
24931	googleapi.ServerResponse `json:"-"`
24932
24933	// ForceSendFields is a list of field names (e.g. "Firewalls") to
24934	// unconditionally include in API requests. By default, fields with
24935	// empty values are omitted from API requests. However, any non-pointer,
24936	// non-interface field appearing in ForceSendFields will be sent to the
24937	// server regardless of whether the field is empty or not. This may be
24938	// used to include empty fields in Patch requests.
24939	ForceSendFields []string `json:"-"`
24940
24941	// NullFields is a list of field names (e.g. "Firewalls") to include in
24942	// API requests with the JSON null value. By default, fields with empty
24943	// values are omitted from API requests. However, any field with an
24944	// empty value appearing in NullFields will be sent to the server as
24945	// null. It is an error if a field in this list has a non-empty value.
24946	// This may be used to include null fields in Patch requests.
24947	NullFields []string `json:"-"`
24948}
24949
24950func (s *NetworksGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) {
24951	type NoMethod NetworksGetEffectiveFirewallsResponse
24952	raw := NoMethod(*s)
24953	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24954}
24955
24956// NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy: A
24957// pruned SecurityPolicy containing ID and any applicable firewall
24958// rules.
24959type NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy struct {
24960	// Id: [Output Only] The unique identifier for the security policy. This
24961	// identifier is defined by the server.
24962	Id uint64 `json:"id,omitempty,string"`
24963
24964	// Rules: The rules that apply to the network.
24965	Rules []*SecurityPolicyRule `json:"rules,omitempty"`
24966
24967	// ForceSendFields is a list of field names (e.g. "Id") to
24968	// unconditionally include in API requests. By default, fields with
24969	// empty values are omitted from API requests. However, any non-pointer,
24970	// non-interface field appearing in ForceSendFields will be sent to the
24971	// server regardless of whether the field is empty or not. This may be
24972	// used to include empty fields in Patch requests.
24973	ForceSendFields []string `json:"-"`
24974
24975	// NullFields is a list of field names (e.g. "Id") to include in API
24976	// requests with the JSON null value. By default, fields with empty
24977	// values are omitted from API requests. However, any field with an
24978	// empty value appearing in NullFields will be sent to the server as
24979	// null. It is an error if a field in this list has a non-empty value.
24980	// This may be used to include null fields in Patch requests.
24981	NullFields []string `json:"-"`
24982}
24983
24984func (s *NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy) MarshalJSON() ([]byte, error) {
24985	type NoMethod NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy
24986	raw := NoMethod(*s)
24987	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24988}
24989
24990type NetworksRemovePeeringRequest struct {
24991	// Name: Name of the peering, which should conform to RFC1035.
24992	Name string `json:"name,omitempty"`
24993
24994	// ForceSendFields is a list of field names (e.g. "Name") to
24995	// unconditionally include in API requests. By default, fields with
24996	// empty values are omitted from API requests. However, any non-pointer,
24997	// non-interface field appearing in ForceSendFields will be sent to the
24998	// server regardless of whether the field is empty or not. This may be
24999	// used to include empty fields in Patch requests.
25000	ForceSendFields []string `json:"-"`
25001
25002	// NullFields is a list of field names (e.g. "Name") to include in API
25003	// requests with the JSON null value. By default, fields with empty
25004	// values are omitted from API requests. However, any field with an
25005	// empty value appearing in NullFields will be sent to the server as
25006	// null. It is an error if a field in this list has a non-empty value.
25007	// This may be used to include null fields in Patch requests.
25008	NullFields []string `json:"-"`
25009}
25010
25011func (s *NetworksRemovePeeringRequest) MarshalJSON() ([]byte, error) {
25012	type NoMethod NetworksRemovePeeringRequest
25013	raw := NoMethod(*s)
25014	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25015}
25016
25017type NetworksUpdatePeeringRequest struct {
25018	NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"`
25019
25020	// ForceSendFields is a list of field names (e.g. "NetworkPeering") to
25021	// unconditionally include in API requests. By default, fields with
25022	// empty values are omitted from API requests. However, any non-pointer,
25023	// non-interface field appearing in ForceSendFields will be sent to the
25024	// server regardless of whether the field is empty or not. This may be
25025	// used to include empty fields in Patch requests.
25026	ForceSendFields []string `json:"-"`
25027
25028	// NullFields is a list of field names (e.g. "NetworkPeering") to
25029	// include in API requests with the JSON null value. By default, fields
25030	// with empty values are omitted from API requests. However, any field
25031	// with an empty value appearing in NullFields will be sent to the
25032	// server as null. It is an error if a field in this list has a
25033	// non-empty value. This may be used to include null fields in Patch
25034	// requests.
25035	NullFields []string `json:"-"`
25036}
25037
25038func (s *NetworksUpdatePeeringRequest) MarshalJSON() ([]byte, error) {
25039	type NoMethod NetworksUpdatePeeringRequest
25040	raw := NoMethod(*s)
25041	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25042}
25043
25044// NodeGroup: Represent a sole-tenant Node Group resource.
25045//
25046// A sole-tenant node is a physical server that is dedicated to hosting
25047// VM instances only for your specific project. Use sole-tenant nodes to
25048// keep your instances physically separated from instances in other
25049// projects, or to group your instances together on the same host
25050// hardware. For more information, read Sole-tenant nodes. (==
25051// resource_for {$api_version}.nodeGroups ==)
25052type NodeGroup struct {
25053	// AutoscalingPolicy: Specifies how autoscaling should behave.
25054	AutoscalingPolicy *NodeGroupAutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
25055
25056	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
25057	// format.
25058	CreationTimestamp string `json:"creationTimestamp,omitempty"`
25059
25060	// Description: An optional description of this resource. Provide this
25061	// property when you create the resource.
25062	Description string `json:"description,omitempty"`
25063
25064	Fingerprint string `json:"fingerprint,omitempty"`
25065
25066	// Id: [Output Only] The unique identifier for the resource. This
25067	// identifier is defined by the server.
25068	Id uint64 `json:"id,omitempty,string"`
25069
25070	// Kind: [Output Only] The type of the resource. Always
25071	// compute#nodeGroup for node group.
25072	Kind string `json:"kind,omitempty"`
25073
25074	// MaintenancePolicy: Specifies how to handle instances when a node in
25075	// the group undergoes maintenance.
25076	//
25077	// Possible values:
25078	//   "DEFAULT"
25079	//   "MAINTENANCE_POLICY_UNSPECIFIED"
25080	//   "MIGRATE_WITHIN_NODE_GROUP"
25081	//   "RESTART_IN_PLACE"
25082	MaintenancePolicy string `json:"maintenancePolicy,omitempty"`
25083
25084	// Name: The name of the resource, provided by the client when initially
25085	// creating the resource. The resource name must be 1-63 characters
25086	// long, and comply with RFC1035. Specifically, the name must be 1-63
25087	// characters long and match the regular expression
25088	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
25089	// a lowercase letter, and all following characters must be a dash,
25090	// lowercase letter, or digit, except the last character, which cannot
25091	// be a dash.
25092	Name string `json:"name,omitempty"`
25093
25094	// NodeTemplate: The URL of the node template to which this node group
25095	// belongs.
25096	NodeTemplate string `json:"nodeTemplate,omitempty"`
25097
25098	// SelfLink: [Output Only] Server-defined URL for the resource.
25099	SelfLink string `json:"selfLink,omitempty"`
25100
25101	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
25102	// with the resource id.
25103	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
25104
25105	// Size: [Output Only] The total number of nodes in the node group.
25106	Size int64 `json:"size,omitempty"`
25107
25108	// Possible values:
25109	//   "CREATING"
25110	//   "DELETING"
25111	//   "INVALID"
25112	//   "READY"
25113	Status string `json:"status,omitempty"`
25114
25115	// Zone: [Output Only] The name of the zone where the node group
25116	// resides, such as us-central1-a.
25117	Zone string `json:"zone,omitempty"`
25118
25119	// ServerResponse contains the HTTP response code and headers from the
25120	// server.
25121	googleapi.ServerResponse `json:"-"`
25122
25123	// ForceSendFields is a list of field names (e.g. "AutoscalingPolicy")
25124	// to unconditionally include in API requests. By default, fields with
25125	// empty values are omitted from API requests. However, any non-pointer,
25126	// non-interface field appearing in ForceSendFields will be sent to the
25127	// server regardless of whether the field is empty or not. This may be
25128	// used to include empty fields in Patch requests.
25129	ForceSendFields []string `json:"-"`
25130
25131	// NullFields is a list of field names (e.g. "AutoscalingPolicy") to
25132	// include in API requests with the JSON null value. By default, fields
25133	// with empty values are omitted from API requests. However, any field
25134	// with an empty value appearing in NullFields will be sent to the
25135	// server as null. It is an error if a field in this list has a
25136	// non-empty value. This may be used to include null fields in Patch
25137	// requests.
25138	NullFields []string `json:"-"`
25139}
25140
25141func (s *NodeGroup) MarshalJSON() ([]byte, error) {
25142	type NoMethod NodeGroup
25143	raw := NoMethod(*s)
25144	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25145}
25146
25147type NodeGroupAggregatedList struct {
25148	// Id: [Output Only] Unique identifier for the resource; defined by the
25149	// server.
25150	Id string `json:"id,omitempty"`
25151
25152	// Items: A list of NodeGroupsScopedList resources.
25153	Items map[string]NodeGroupsScopedList `json:"items,omitempty"`
25154
25155	// Kind: [Output Only] Type of resource.Always
25156	// compute#nodeGroupAggregatedList for aggregated lists of node groups.
25157	Kind string `json:"kind,omitempty"`
25158
25159	// NextPageToken: [Output Only] This token allows you to get the next
25160	// page of results for list requests. If the number of results is larger
25161	// than maxResults, use the nextPageToken as a value for the query
25162	// parameter pageToken in the next list request. Subsequent list
25163	// requests will have their own nextPageToken to continue paging through
25164	// the results.
25165	NextPageToken string `json:"nextPageToken,omitempty"`
25166
25167	// SelfLink: [Output Only] Server-defined URL for this resource.
25168	SelfLink string `json:"selfLink,omitempty"`
25169
25170	// Warning: [Output Only] Informational warning message.
25171	Warning *NodeGroupAggregatedListWarning `json:"warning,omitempty"`
25172
25173	// ServerResponse contains the HTTP response code and headers from the
25174	// server.
25175	googleapi.ServerResponse `json:"-"`
25176
25177	// ForceSendFields is a list of field names (e.g. "Id") to
25178	// unconditionally include in API requests. By default, fields with
25179	// empty values are omitted from API requests. However, any non-pointer,
25180	// non-interface field appearing in ForceSendFields will be sent to the
25181	// server regardless of whether the field is empty or not. This may be
25182	// used to include empty fields in Patch requests.
25183	ForceSendFields []string `json:"-"`
25184
25185	// NullFields is a list of field names (e.g. "Id") to include in API
25186	// requests with the JSON null value. By default, fields with empty
25187	// values are omitted from API requests. However, any field with an
25188	// empty value appearing in NullFields will be sent to the server as
25189	// null. It is an error if a field in this list has a non-empty value.
25190	// This may be used to include null fields in Patch requests.
25191	NullFields []string `json:"-"`
25192}
25193
25194func (s *NodeGroupAggregatedList) MarshalJSON() ([]byte, error) {
25195	type NoMethod NodeGroupAggregatedList
25196	raw := NoMethod(*s)
25197	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25198}
25199
25200// NodeGroupAggregatedListWarning: [Output Only] Informational warning
25201// message.
25202type NodeGroupAggregatedListWarning struct {
25203	// Code: [Output Only] A warning code, if applicable. For example,
25204	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25205	// the response.
25206	//
25207	// Possible values:
25208	//   "CLEANUP_FAILED"
25209	//   "DEPRECATED_RESOURCE_USED"
25210	//   "DEPRECATED_TYPE_USED"
25211	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25212	//   "EXPERIMENTAL_TYPE_USED"
25213	//   "EXTERNAL_API_WARNING"
25214	//   "FIELD_VALUE_OVERRIDEN"
25215	//   "INJECTED_KERNELS_DEPRECATED"
25216	//   "MISSING_TYPE_DEPENDENCY"
25217	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25218	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25219	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25220	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25221	//   "NEXT_HOP_NOT_RUNNING"
25222	//   "NOT_CRITICAL_ERROR"
25223	//   "NO_RESULTS_ON_PAGE"
25224	//   "REQUIRED_TOS_AGREEMENT"
25225	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25226	//   "RESOURCE_NOT_DELETED"
25227	//   "SCHEMA_VALIDATION_IGNORED"
25228	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25229	//   "UNDECLARED_PROPERTIES"
25230	//   "UNREACHABLE"
25231	Code string `json:"code,omitempty"`
25232
25233	// Data: [Output Only] Metadata about this warning in key: value format.
25234	// For example:
25235	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25236	Data []*NodeGroupAggregatedListWarningData `json:"data,omitempty"`
25237
25238	// Message: [Output Only] A human-readable description of the warning
25239	// code.
25240	Message string `json:"message,omitempty"`
25241
25242	// ForceSendFields is a list of field names (e.g. "Code") to
25243	// unconditionally include in API requests. By default, fields with
25244	// empty values are omitted from API requests. However, any non-pointer,
25245	// non-interface field appearing in ForceSendFields will be sent to the
25246	// server regardless of whether the field is empty or not. This may be
25247	// used to include empty fields in Patch requests.
25248	ForceSendFields []string `json:"-"`
25249
25250	// NullFields is a list of field names (e.g. "Code") to include in API
25251	// requests with the JSON null value. By default, fields with empty
25252	// values are omitted from API requests. However, any field with an
25253	// empty value appearing in NullFields will be sent to the server as
25254	// null. It is an error if a field in this list has a non-empty value.
25255	// This may be used to include null fields in Patch requests.
25256	NullFields []string `json:"-"`
25257}
25258
25259func (s *NodeGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
25260	type NoMethod NodeGroupAggregatedListWarning
25261	raw := NoMethod(*s)
25262	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25263}
25264
25265type NodeGroupAggregatedListWarningData struct {
25266	// Key: [Output Only] A key that provides more detail on the warning
25267	// being returned. For example, for warnings where there are no results
25268	// in a list request for a particular zone, this key might be scope and
25269	// the key value might be the zone name. Other examples might be a key
25270	// indicating a deprecated resource and a suggested replacement, or a
25271	// warning about invalid network settings (for example, if an instance
25272	// attempts to perform IP forwarding but is not enabled for IP
25273	// forwarding).
25274	Key string `json:"key,omitempty"`
25275
25276	// Value: [Output Only] A warning data value corresponding to the key.
25277	Value string `json:"value,omitempty"`
25278
25279	// ForceSendFields is a list of field names (e.g. "Key") to
25280	// unconditionally include in API requests. By default, fields with
25281	// empty values are omitted from API requests. However, any non-pointer,
25282	// non-interface field appearing in ForceSendFields will be sent to the
25283	// server regardless of whether the field is empty or not. This may be
25284	// used to include empty fields in Patch requests.
25285	ForceSendFields []string `json:"-"`
25286
25287	// NullFields is a list of field names (e.g. "Key") to include in API
25288	// requests with the JSON null value. By default, fields with empty
25289	// values are omitted from API requests. However, any field with an
25290	// empty value appearing in NullFields will be sent to the server as
25291	// null. It is an error if a field in this list has a non-empty value.
25292	// This may be used to include null fields in Patch requests.
25293	NullFields []string `json:"-"`
25294}
25295
25296func (s *NodeGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
25297	type NoMethod NodeGroupAggregatedListWarningData
25298	raw := NoMethod(*s)
25299	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25300}
25301
25302type NodeGroupAutoscalingPolicy struct {
25303	// MaxNodes: The maximum number of nodes that the group should have.
25304	MaxNodes int64 `json:"maxNodes,omitempty"`
25305
25306	// MinNodes: The minimum number of nodes that the group should have.
25307	MinNodes int64 `json:"minNodes,omitempty"`
25308
25309	// Mode: The autoscaling mode.
25310	//
25311	// Possible values:
25312	//   "MODE_UNSPECIFIED"
25313	//   "OFF"
25314	//   "ON"
25315	//   "ONLY_SCALE_OUT"
25316	Mode string `json:"mode,omitempty"`
25317
25318	// ForceSendFields is a list of field names (e.g. "MaxNodes") to
25319	// unconditionally include in API requests. By default, fields with
25320	// empty values are omitted from API requests. However, any non-pointer,
25321	// non-interface field appearing in ForceSendFields will be sent to the
25322	// server regardless of whether the field is empty or not. This may be
25323	// used to include empty fields in Patch requests.
25324	ForceSendFields []string `json:"-"`
25325
25326	// NullFields is a list of field names (e.g. "MaxNodes") to include in
25327	// API requests with the JSON null value. By default, fields with empty
25328	// values are omitted from API requests. However, any field with an
25329	// empty value appearing in NullFields will be sent to the server as
25330	// null. It is an error if a field in this list has a non-empty value.
25331	// This may be used to include null fields in Patch requests.
25332	NullFields []string `json:"-"`
25333}
25334
25335func (s *NodeGroupAutoscalingPolicy) MarshalJSON() ([]byte, error) {
25336	type NoMethod NodeGroupAutoscalingPolicy
25337	raw := NoMethod(*s)
25338	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25339}
25340
25341// NodeGroupList: Contains a list of nodeGroups.
25342type NodeGroupList struct {
25343	// Id: [Output Only] Unique identifier for the resource; defined by the
25344	// server.
25345	Id string `json:"id,omitempty"`
25346
25347	// Items: A list of NodeGroup resources.
25348	Items []*NodeGroup `json:"items,omitempty"`
25349
25350	// Kind: [Output Only] Type of resource.Always compute#nodeGroupList for
25351	// lists of node groups.
25352	Kind string `json:"kind,omitempty"`
25353
25354	// NextPageToken: [Output Only] This token allows you to get the next
25355	// page of results for list requests. If the number of results is larger
25356	// than maxResults, use the nextPageToken as a value for the query
25357	// parameter pageToken in the next list request. Subsequent list
25358	// requests will have their own nextPageToken to continue paging through
25359	// the results.
25360	NextPageToken string `json:"nextPageToken,omitempty"`
25361
25362	// SelfLink: [Output Only] Server-defined URL for this resource.
25363	SelfLink string `json:"selfLink,omitempty"`
25364
25365	// Warning: [Output Only] Informational warning message.
25366	Warning *NodeGroupListWarning `json:"warning,omitempty"`
25367
25368	// ServerResponse contains the HTTP response code and headers from the
25369	// server.
25370	googleapi.ServerResponse `json:"-"`
25371
25372	// ForceSendFields is a list of field names (e.g. "Id") to
25373	// unconditionally include in API requests. By default, fields with
25374	// empty values are omitted from API requests. However, any non-pointer,
25375	// non-interface field appearing in ForceSendFields will be sent to the
25376	// server regardless of whether the field is empty or not. This may be
25377	// used to include empty fields in Patch requests.
25378	ForceSendFields []string `json:"-"`
25379
25380	// NullFields is a list of field names (e.g. "Id") to include in API
25381	// requests with the JSON null value. By default, fields with empty
25382	// values are omitted from API requests. However, any field with an
25383	// empty value appearing in NullFields will be sent to the server as
25384	// null. It is an error if a field in this list has a non-empty value.
25385	// This may be used to include null fields in Patch requests.
25386	NullFields []string `json:"-"`
25387}
25388
25389func (s *NodeGroupList) MarshalJSON() ([]byte, error) {
25390	type NoMethod NodeGroupList
25391	raw := NoMethod(*s)
25392	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25393}
25394
25395// NodeGroupListWarning: [Output Only] Informational warning message.
25396type NodeGroupListWarning struct {
25397	// Code: [Output Only] A warning code, if applicable. For example,
25398	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25399	// the response.
25400	//
25401	// Possible values:
25402	//   "CLEANUP_FAILED"
25403	//   "DEPRECATED_RESOURCE_USED"
25404	//   "DEPRECATED_TYPE_USED"
25405	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25406	//   "EXPERIMENTAL_TYPE_USED"
25407	//   "EXTERNAL_API_WARNING"
25408	//   "FIELD_VALUE_OVERRIDEN"
25409	//   "INJECTED_KERNELS_DEPRECATED"
25410	//   "MISSING_TYPE_DEPENDENCY"
25411	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25412	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25413	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25414	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25415	//   "NEXT_HOP_NOT_RUNNING"
25416	//   "NOT_CRITICAL_ERROR"
25417	//   "NO_RESULTS_ON_PAGE"
25418	//   "REQUIRED_TOS_AGREEMENT"
25419	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25420	//   "RESOURCE_NOT_DELETED"
25421	//   "SCHEMA_VALIDATION_IGNORED"
25422	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25423	//   "UNDECLARED_PROPERTIES"
25424	//   "UNREACHABLE"
25425	Code string `json:"code,omitempty"`
25426
25427	// Data: [Output Only] Metadata about this warning in key: value format.
25428	// For example:
25429	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25430	Data []*NodeGroupListWarningData `json:"data,omitempty"`
25431
25432	// Message: [Output Only] A human-readable description of the warning
25433	// code.
25434	Message string `json:"message,omitempty"`
25435
25436	// ForceSendFields is a list of field names (e.g. "Code") to
25437	// unconditionally include in API requests. By default, fields with
25438	// empty values are omitted from API requests. However, any non-pointer,
25439	// non-interface field appearing in ForceSendFields will be sent to the
25440	// server regardless of whether the field is empty or not. This may be
25441	// used to include empty fields in Patch requests.
25442	ForceSendFields []string `json:"-"`
25443
25444	// NullFields is a list of field names (e.g. "Code") to include in API
25445	// requests with the JSON null value. By default, fields with empty
25446	// values are omitted from API requests. However, any field with an
25447	// empty value appearing in NullFields will be sent to the server as
25448	// null. It is an error if a field in this list has a non-empty value.
25449	// This may be used to include null fields in Patch requests.
25450	NullFields []string `json:"-"`
25451}
25452
25453func (s *NodeGroupListWarning) MarshalJSON() ([]byte, error) {
25454	type NoMethod NodeGroupListWarning
25455	raw := NoMethod(*s)
25456	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25457}
25458
25459type NodeGroupListWarningData struct {
25460	// Key: [Output Only] A key that provides more detail on the warning
25461	// being returned. For example, for warnings where there are no results
25462	// in a list request for a particular zone, this key might be scope and
25463	// the key value might be the zone name. Other examples might be a key
25464	// indicating a deprecated resource and a suggested replacement, or a
25465	// warning about invalid network settings (for example, if an instance
25466	// attempts to perform IP forwarding but is not enabled for IP
25467	// forwarding).
25468	Key string `json:"key,omitempty"`
25469
25470	// Value: [Output Only] A warning data value corresponding to the key.
25471	Value string `json:"value,omitempty"`
25472
25473	// ForceSendFields is a list of field names (e.g. "Key") to
25474	// unconditionally include in API requests. By default, fields with
25475	// empty values are omitted from API requests. However, any non-pointer,
25476	// non-interface field appearing in ForceSendFields will be sent to the
25477	// server regardless of whether the field is empty or not. This may be
25478	// used to include empty fields in Patch requests.
25479	ForceSendFields []string `json:"-"`
25480
25481	// NullFields is a list of field names (e.g. "Key") to include in API
25482	// requests with the JSON null value. By default, fields with empty
25483	// values are omitted from API requests. However, any field with an
25484	// empty value appearing in NullFields will be sent to the server as
25485	// null. It is an error if a field in this list has a non-empty value.
25486	// This may be used to include null fields in Patch requests.
25487	NullFields []string `json:"-"`
25488}
25489
25490func (s *NodeGroupListWarningData) MarshalJSON() ([]byte, error) {
25491	type NoMethod NodeGroupListWarningData
25492	raw := NoMethod(*s)
25493	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25494}
25495
25496type NodeGroupNode struct {
25497	// Accelerators: Accelerators for this node.
25498	Accelerators []*AcceleratorConfig `json:"accelerators,omitempty"`
25499
25500	// Disks: Local disk configurations.
25501	Disks []*LocalDisk `json:"disks,omitempty"`
25502
25503	// Instances: Instances scheduled on this node.
25504	Instances []string `json:"instances,omitempty"`
25505
25506	// Name: The name of the node.
25507	Name string `json:"name,omitempty"`
25508
25509	// NodeType: The type of this node.
25510	NodeType string `json:"nodeType,omitempty"`
25511
25512	// ServerBinding: Binding properties for the physical server.
25513	ServerBinding *ServerBinding `json:"serverBinding,omitempty"`
25514
25515	// ServerId: Server ID associated with this node.
25516	ServerId string `json:"serverId,omitempty"`
25517
25518	// Possible values:
25519	//   "CREATING"
25520	//   "DELETING"
25521	//   "INVALID"
25522	//   "READY"
25523	//   "REPAIRING"
25524	Status string `json:"status,omitempty"`
25525
25526	// ForceSendFields is a list of field names (e.g. "Accelerators") to
25527	// unconditionally include in API requests. By default, fields with
25528	// empty values are omitted from API requests. However, any non-pointer,
25529	// non-interface field appearing in ForceSendFields will be sent to the
25530	// server regardless of whether the field is empty or not. This may be
25531	// used to include empty fields in Patch requests.
25532	ForceSendFields []string `json:"-"`
25533
25534	// NullFields is a list of field names (e.g. "Accelerators") to include
25535	// in API requests with the JSON null value. By default, fields with
25536	// empty values are omitted from API requests. However, any field with
25537	// an empty value appearing in NullFields will be sent to the server as
25538	// null. It is an error if a field in this list has a non-empty value.
25539	// This may be used to include null fields in Patch requests.
25540	NullFields []string `json:"-"`
25541}
25542
25543func (s *NodeGroupNode) MarshalJSON() ([]byte, error) {
25544	type NoMethod NodeGroupNode
25545	raw := NoMethod(*s)
25546	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25547}
25548
25549type NodeGroupsAddNodesRequest struct {
25550	// AdditionalNodeCount: Count of additional nodes to be added to the
25551	// node group.
25552	AdditionalNodeCount int64 `json:"additionalNodeCount,omitempty"`
25553
25554	// ForceSendFields is a list of field names (e.g. "AdditionalNodeCount")
25555	// to unconditionally include in API requests. By default, fields with
25556	// empty values are omitted from API requests. However, any non-pointer,
25557	// non-interface field appearing in ForceSendFields will be sent to the
25558	// server regardless of whether the field is empty or not. This may be
25559	// used to include empty fields in Patch requests.
25560	ForceSendFields []string `json:"-"`
25561
25562	// NullFields is a list of field names (e.g. "AdditionalNodeCount") to
25563	// include in API requests with the JSON null value. By default, fields
25564	// with empty values are omitted from API requests. However, any field
25565	// with an empty value appearing in NullFields will be sent to the
25566	// server as null. It is an error if a field in this list has a
25567	// non-empty value. This may be used to include null fields in Patch
25568	// requests.
25569	NullFields []string `json:"-"`
25570}
25571
25572func (s *NodeGroupsAddNodesRequest) MarshalJSON() ([]byte, error) {
25573	type NoMethod NodeGroupsAddNodesRequest
25574	raw := NoMethod(*s)
25575	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25576}
25577
25578type NodeGroupsDeleteNodesRequest struct {
25579	// Nodes: Names of the nodes to delete.
25580	Nodes []string `json:"nodes,omitempty"`
25581
25582	// ForceSendFields is a list of field names (e.g. "Nodes") to
25583	// unconditionally include in API requests. By default, fields with
25584	// empty values are omitted from API requests. However, any non-pointer,
25585	// non-interface field appearing in ForceSendFields will be sent to the
25586	// server regardless of whether the field is empty or not. This may be
25587	// used to include empty fields in Patch requests.
25588	ForceSendFields []string `json:"-"`
25589
25590	// NullFields is a list of field names (e.g. "Nodes") to include in API
25591	// requests with the JSON null value. By default, fields with empty
25592	// values are omitted from API requests. However, any field with an
25593	// empty value appearing in NullFields will be sent to the server as
25594	// null. It is an error if a field in this list has a non-empty value.
25595	// This may be used to include null fields in Patch requests.
25596	NullFields []string `json:"-"`
25597}
25598
25599func (s *NodeGroupsDeleteNodesRequest) MarshalJSON() ([]byte, error) {
25600	type NoMethod NodeGroupsDeleteNodesRequest
25601	raw := NoMethod(*s)
25602	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25603}
25604
25605type NodeGroupsListNodes struct {
25606	// Id: [Output Only] Unique identifier for the resource; defined by the
25607	// server.
25608	Id string `json:"id,omitempty"`
25609
25610	// Items: A list of Node resources.
25611	Items []*NodeGroupNode `json:"items,omitempty"`
25612
25613	// Kind: [Output Only] The resource type, which is always
25614	// compute.nodeGroupsListNodes for the list of nodes in the specified
25615	// node group.
25616	Kind string `json:"kind,omitempty"`
25617
25618	// NextPageToken: [Output Only] This token allows you to get the next
25619	// page of results for list requests. If the number of results is larger
25620	// than maxResults, use the nextPageToken as a value for the query
25621	// parameter pageToken in the next list request. Subsequent list
25622	// requests will have their own nextPageToken to continue paging through
25623	// the results.
25624	NextPageToken string `json:"nextPageToken,omitempty"`
25625
25626	// SelfLink: [Output Only] Server-defined URL for this resource.
25627	SelfLink string `json:"selfLink,omitempty"`
25628
25629	// Warning: [Output Only] Informational warning message.
25630	Warning *NodeGroupsListNodesWarning `json:"warning,omitempty"`
25631
25632	// ServerResponse contains the HTTP response code and headers from the
25633	// server.
25634	googleapi.ServerResponse `json:"-"`
25635
25636	// ForceSendFields is a list of field names (e.g. "Id") to
25637	// unconditionally include in API requests. By default, fields with
25638	// empty values are omitted from API requests. However, any non-pointer,
25639	// non-interface field appearing in ForceSendFields will be sent to the
25640	// server regardless of whether the field is empty or not. This may be
25641	// used to include empty fields in Patch requests.
25642	ForceSendFields []string `json:"-"`
25643
25644	// NullFields is a list of field names (e.g. "Id") to include in API
25645	// requests with the JSON null value. By default, fields with empty
25646	// values are omitted from API requests. However, any field with an
25647	// empty value appearing in NullFields will be sent to the server as
25648	// null. It is an error if a field in this list has a non-empty value.
25649	// This may be used to include null fields in Patch requests.
25650	NullFields []string `json:"-"`
25651}
25652
25653func (s *NodeGroupsListNodes) MarshalJSON() ([]byte, error) {
25654	type NoMethod NodeGroupsListNodes
25655	raw := NoMethod(*s)
25656	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25657}
25658
25659// NodeGroupsListNodesWarning: [Output Only] Informational warning
25660// message.
25661type NodeGroupsListNodesWarning struct {
25662	// Code: [Output Only] A warning code, if applicable. For example,
25663	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25664	// the response.
25665	//
25666	// Possible values:
25667	//   "CLEANUP_FAILED"
25668	//   "DEPRECATED_RESOURCE_USED"
25669	//   "DEPRECATED_TYPE_USED"
25670	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25671	//   "EXPERIMENTAL_TYPE_USED"
25672	//   "EXTERNAL_API_WARNING"
25673	//   "FIELD_VALUE_OVERRIDEN"
25674	//   "INJECTED_KERNELS_DEPRECATED"
25675	//   "MISSING_TYPE_DEPENDENCY"
25676	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25677	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25678	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25679	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25680	//   "NEXT_HOP_NOT_RUNNING"
25681	//   "NOT_CRITICAL_ERROR"
25682	//   "NO_RESULTS_ON_PAGE"
25683	//   "REQUIRED_TOS_AGREEMENT"
25684	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25685	//   "RESOURCE_NOT_DELETED"
25686	//   "SCHEMA_VALIDATION_IGNORED"
25687	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25688	//   "UNDECLARED_PROPERTIES"
25689	//   "UNREACHABLE"
25690	Code string `json:"code,omitempty"`
25691
25692	// Data: [Output Only] Metadata about this warning in key: value format.
25693	// For example:
25694	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25695	Data []*NodeGroupsListNodesWarningData `json:"data,omitempty"`
25696
25697	// Message: [Output Only] A human-readable description of the warning
25698	// code.
25699	Message string `json:"message,omitempty"`
25700
25701	// ForceSendFields is a list of field names (e.g. "Code") to
25702	// unconditionally include in API requests. By default, fields with
25703	// empty values are omitted from API requests. However, any non-pointer,
25704	// non-interface field appearing in ForceSendFields will be sent to the
25705	// server regardless of whether the field is empty or not. This may be
25706	// used to include empty fields in Patch requests.
25707	ForceSendFields []string `json:"-"`
25708
25709	// NullFields is a list of field names (e.g. "Code") to include in API
25710	// requests with the JSON null value. By default, fields with empty
25711	// values are omitted from API requests. However, any field with an
25712	// empty value appearing in NullFields will be sent to the server as
25713	// null. It is an error if a field in this list has a non-empty value.
25714	// This may be used to include null fields in Patch requests.
25715	NullFields []string `json:"-"`
25716}
25717
25718func (s *NodeGroupsListNodesWarning) MarshalJSON() ([]byte, error) {
25719	type NoMethod NodeGroupsListNodesWarning
25720	raw := NoMethod(*s)
25721	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25722}
25723
25724type NodeGroupsListNodesWarningData struct {
25725	// Key: [Output Only] A key that provides more detail on the warning
25726	// being returned. For example, for warnings where there are no results
25727	// in a list request for a particular zone, this key might be scope and
25728	// the key value might be the zone name. Other examples might be a key
25729	// indicating a deprecated resource and a suggested replacement, or a
25730	// warning about invalid network settings (for example, if an instance
25731	// attempts to perform IP forwarding but is not enabled for IP
25732	// forwarding).
25733	Key string `json:"key,omitempty"`
25734
25735	// Value: [Output Only] A warning data value corresponding to the key.
25736	Value string `json:"value,omitempty"`
25737
25738	// ForceSendFields is a list of field names (e.g. "Key") to
25739	// unconditionally include in API requests. By default, fields with
25740	// empty values are omitted from API requests. However, any non-pointer,
25741	// non-interface field appearing in ForceSendFields will be sent to the
25742	// server regardless of whether the field is empty or not. This may be
25743	// used to include empty fields in Patch requests.
25744	ForceSendFields []string `json:"-"`
25745
25746	// NullFields is a list of field names (e.g. "Key") to include in API
25747	// requests with the JSON null value. By default, fields with empty
25748	// values are omitted from API requests. However, any field with an
25749	// empty value appearing in NullFields will be sent to the server as
25750	// null. It is an error if a field in this list has a non-empty value.
25751	// This may be used to include null fields in Patch requests.
25752	NullFields []string `json:"-"`
25753}
25754
25755func (s *NodeGroupsListNodesWarningData) MarshalJSON() ([]byte, error) {
25756	type NoMethod NodeGroupsListNodesWarningData
25757	raw := NoMethod(*s)
25758	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25759}
25760
25761type NodeGroupsScopedList struct {
25762	// NodeGroups: [Output Only] A list of node groups contained in this
25763	// scope.
25764	NodeGroups []*NodeGroup `json:"nodeGroups,omitempty"`
25765
25766	// Warning: [Output Only] An informational warning that appears when the
25767	// nodeGroup list is empty.
25768	Warning *NodeGroupsScopedListWarning `json:"warning,omitempty"`
25769
25770	// ForceSendFields is a list of field names (e.g. "NodeGroups") to
25771	// unconditionally include in API requests. By default, fields with
25772	// empty values are omitted from API requests. However, any non-pointer,
25773	// non-interface field appearing in ForceSendFields will be sent to the
25774	// server regardless of whether the field is empty or not. This may be
25775	// used to include empty fields in Patch requests.
25776	ForceSendFields []string `json:"-"`
25777
25778	// NullFields is a list of field names (e.g. "NodeGroups") to include in
25779	// API requests with the JSON null value. By default, fields with empty
25780	// values are omitted from API requests. However, any field with an
25781	// empty value appearing in NullFields will be sent to the server as
25782	// null. It is an error if a field in this list has a non-empty value.
25783	// This may be used to include null fields in Patch requests.
25784	NullFields []string `json:"-"`
25785}
25786
25787func (s *NodeGroupsScopedList) MarshalJSON() ([]byte, error) {
25788	type NoMethod NodeGroupsScopedList
25789	raw := NoMethod(*s)
25790	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25791}
25792
25793// NodeGroupsScopedListWarning: [Output Only] An informational warning
25794// that appears when the nodeGroup list is empty.
25795type NodeGroupsScopedListWarning struct {
25796	// Code: [Output Only] A warning code, if applicable. For example,
25797	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25798	// the response.
25799	//
25800	// Possible values:
25801	//   "CLEANUP_FAILED"
25802	//   "DEPRECATED_RESOURCE_USED"
25803	//   "DEPRECATED_TYPE_USED"
25804	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25805	//   "EXPERIMENTAL_TYPE_USED"
25806	//   "EXTERNAL_API_WARNING"
25807	//   "FIELD_VALUE_OVERRIDEN"
25808	//   "INJECTED_KERNELS_DEPRECATED"
25809	//   "MISSING_TYPE_DEPENDENCY"
25810	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25811	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25812	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25813	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25814	//   "NEXT_HOP_NOT_RUNNING"
25815	//   "NOT_CRITICAL_ERROR"
25816	//   "NO_RESULTS_ON_PAGE"
25817	//   "REQUIRED_TOS_AGREEMENT"
25818	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25819	//   "RESOURCE_NOT_DELETED"
25820	//   "SCHEMA_VALIDATION_IGNORED"
25821	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25822	//   "UNDECLARED_PROPERTIES"
25823	//   "UNREACHABLE"
25824	Code string `json:"code,omitempty"`
25825
25826	// Data: [Output Only] Metadata about this warning in key: value format.
25827	// For example:
25828	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25829	Data []*NodeGroupsScopedListWarningData `json:"data,omitempty"`
25830
25831	// Message: [Output Only] A human-readable description of the warning
25832	// code.
25833	Message string `json:"message,omitempty"`
25834
25835	// ForceSendFields is a list of field names (e.g. "Code") to
25836	// unconditionally include in API requests. By default, fields with
25837	// empty values are omitted from API requests. However, any non-pointer,
25838	// non-interface field appearing in ForceSendFields will be sent to the
25839	// server regardless of whether the field is empty or not. This may be
25840	// used to include empty fields in Patch requests.
25841	ForceSendFields []string `json:"-"`
25842
25843	// NullFields is a list of field names (e.g. "Code") to include in API
25844	// requests with the JSON null value. By default, fields with empty
25845	// values are omitted from API requests. However, any field with an
25846	// empty value appearing in NullFields will be sent to the server as
25847	// null. It is an error if a field in this list has a non-empty value.
25848	// This may be used to include null fields in Patch requests.
25849	NullFields []string `json:"-"`
25850}
25851
25852func (s *NodeGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
25853	type NoMethod NodeGroupsScopedListWarning
25854	raw := NoMethod(*s)
25855	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25856}
25857
25858type NodeGroupsScopedListWarningData struct {
25859	// Key: [Output Only] A key that provides more detail on the warning
25860	// being returned. For example, for warnings where there are no results
25861	// in a list request for a particular zone, this key might be scope and
25862	// the key value might be the zone name. Other examples might be a key
25863	// indicating a deprecated resource and a suggested replacement, or a
25864	// warning about invalid network settings (for example, if an instance
25865	// attempts to perform IP forwarding but is not enabled for IP
25866	// forwarding).
25867	Key string `json:"key,omitempty"`
25868
25869	// Value: [Output Only] A warning data value corresponding to the key.
25870	Value string `json:"value,omitempty"`
25871
25872	// ForceSendFields is a list of field names (e.g. "Key") to
25873	// unconditionally include in API requests. By default, fields with
25874	// empty values are omitted from API requests. However, any non-pointer,
25875	// non-interface field appearing in ForceSendFields will be sent to the
25876	// server regardless of whether the field is empty or not. This may be
25877	// used to include empty fields in Patch requests.
25878	ForceSendFields []string `json:"-"`
25879
25880	// NullFields is a list of field names (e.g. "Key") to include in API
25881	// requests with the JSON null value. By default, fields with empty
25882	// values are omitted from API requests. However, any field with an
25883	// empty value appearing in NullFields will be sent to the server as
25884	// null. It is an error if a field in this list has a non-empty value.
25885	// This may be used to include null fields in Patch requests.
25886	NullFields []string `json:"-"`
25887}
25888
25889func (s *NodeGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
25890	type NoMethod NodeGroupsScopedListWarningData
25891	raw := NoMethod(*s)
25892	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25893}
25894
25895type NodeGroupsSetNodeTemplateRequest struct {
25896	// NodeTemplate: Full or partial URL of the node template resource to be
25897	// updated for this node group.
25898	NodeTemplate string `json:"nodeTemplate,omitempty"`
25899
25900	// ForceSendFields is a list of field names (e.g. "NodeTemplate") to
25901	// unconditionally include in API requests. By default, fields with
25902	// empty values are omitted from API requests. However, any non-pointer,
25903	// non-interface field appearing in ForceSendFields will be sent to the
25904	// server regardless of whether the field is empty or not. This may be
25905	// used to include empty fields in Patch requests.
25906	ForceSendFields []string `json:"-"`
25907
25908	// NullFields is a list of field names (e.g. "NodeTemplate") to include
25909	// in API requests with the JSON null value. By default, fields with
25910	// empty values are omitted from API requests. However, any field with
25911	// an empty value appearing in NullFields will be sent to the server as
25912	// null. It is an error if a field in this list has a non-empty value.
25913	// This may be used to include null fields in Patch requests.
25914	NullFields []string `json:"-"`
25915}
25916
25917func (s *NodeGroupsSetNodeTemplateRequest) MarshalJSON() ([]byte, error) {
25918	type NoMethod NodeGroupsSetNodeTemplateRequest
25919	raw := NoMethod(*s)
25920	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25921}
25922
25923// NodeTemplate: Represent a sole-tenant Node Template resource.
25924//
25925// You can use a template to define properties for nodes in a node
25926// group. For more information, read Creating node groups and instances.
25927// (== resource_for {$api_version}.nodeTemplates ==) (== NextID: 18 ==)
25928type NodeTemplate struct {
25929	Accelerators []*AcceleratorConfig `json:"accelerators,omitempty"`
25930
25931	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
25932	// format.
25933	CreationTimestamp string `json:"creationTimestamp,omitempty"`
25934
25935	// Description: An optional description of this resource. Provide this
25936	// property when you create the resource.
25937	Description string `json:"description,omitempty"`
25938
25939	Disks []*LocalDisk `json:"disks,omitempty"`
25940
25941	// Id: [Output Only] The unique identifier for the resource. This
25942	// identifier is defined by the server.
25943	Id uint64 `json:"id,omitempty,string"`
25944
25945	// Kind: [Output Only] The type of the resource. Always
25946	// compute#nodeTemplate for node templates.
25947	Kind string `json:"kind,omitempty"`
25948
25949	// Name: The name of the resource, provided by the client when initially
25950	// creating the resource. The resource name must be 1-63 characters
25951	// long, and comply with RFC1035. Specifically, the name must be 1-63
25952	// characters long and match the regular expression
25953	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
25954	// a lowercase letter, and all following characters must be a dash,
25955	// lowercase letter, or digit, except the last character, which cannot
25956	// be a dash.
25957	Name string `json:"name,omitempty"`
25958
25959	// NodeAffinityLabels: Labels to use for node affinity, which will be
25960	// used in instance scheduling.
25961	NodeAffinityLabels map[string]string `json:"nodeAffinityLabels,omitempty"`
25962
25963	// NodeType: The node type to use for nodes group that are created from
25964	// this template.
25965	NodeType string `json:"nodeType,omitempty"`
25966
25967	// NodeTypeFlexibility: The flexible properties of the desired node
25968	// type. Node groups that use this node template will create nodes of a
25969	// type that matches these properties.
25970	//
25971	// This field is mutually exclusive with the node_type property; you can
25972	// only define one or the other, but not both.
25973	NodeTypeFlexibility *NodeTemplateNodeTypeFlexibility `json:"nodeTypeFlexibility,omitempty"`
25974
25975	// Region: [Output Only] The name of the region where the node template
25976	// resides, such as us-central1.
25977	Region string `json:"region,omitempty"`
25978
25979	// SelfLink: [Output Only] Server-defined URL for the resource.
25980	SelfLink string `json:"selfLink,omitempty"`
25981
25982	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
25983	// with the resource id.
25984	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
25985
25986	// ServerBinding: Sets the binding properties for the physical server.
25987	// Valid values include:
25988	// - [Default] RESTART_NODE_ON_ANY_SERVER: Restarts VMs on any available
25989	// physical server
25990	// - RESTART_NODE_ON_MINIMAL_SERVER: Restarts VMs on the same physical
25991	// server whenever possible
25992	//
25993	// See Sole-tenant node options for more information.
25994	ServerBinding *ServerBinding `json:"serverBinding,omitempty"`
25995
25996	// Status: [Output Only] The status of the node template. One of the
25997	// following values: CREATING, READY, and DELETING.
25998	//
25999	// Possible values:
26000	//   "CREATING"
26001	//   "DELETING"
26002	//   "INVALID"
26003	//   "READY"
26004	Status string `json:"status,omitempty"`
26005
26006	// StatusMessage: [Output Only] An optional, human-readable explanation
26007	// of the status.
26008	StatusMessage string `json:"statusMessage,omitempty"`
26009
26010	// ServerResponse contains the HTTP response code and headers from the
26011	// server.
26012	googleapi.ServerResponse `json:"-"`
26013
26014	// ForceSendFields is a list of field names (e.g. "Accelerators") to
26015	// unconditionally include in API requests. By default, fields with
26016	// empty values are omitted from API requests. However, any non-pointer,
26017	// non-interface field appearing in ForceSendFields will be sent to the
26018	// server regardless of whether the field is empty or not. This may be
26019	// used to include empty fields in Patch requests.
26020	ForceSendFields []string `json:"-"`
26021
26022	// NullFields is a list of field names (e.g. "Accelerators") to include
26023	// in API requests with the JSON null value. By default, fields with
26024	// empty values are omitted from API requests. However, any field with
26025	// an empty value appearing in NullFields will be sent to the server as
26026	// null. It is an error if a field in this list has a non-empty value.
26027	// This may be used to include null fields in Patch requests.
26028	NullFields []string `json:"-"`
26029}
26030
26031func (s *NodeTemplate) MarshalJSON() ([]byte, error) {
26032	type NoMethod NodeTemplate
26033	raw := NoMethod(*s)
26034	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26035}
26036
26037type NodeTemplateAggregatedList struct {
26038	// Id: [Output Only] Unique identifier for the resource; defined by the
26039	// server.
26040	Id string `json:"id,omitempty"`
26041
26042	// Items: A list of NodeTemplatesScopedList resources.
26043	Items map[string]NodeTemplatesScopedList `json:"items,omitempty"`
26044
26045	// Kind: [Output Only] Type of resource.Always
26046	// compute#nodeTemplateAggregatedList for aggregated lists of node
26047	// templates.
26048	Kind string `json:"kind,omitempty"`
26049
26050	// NextPageToken: [Output Only] This token allows you to get the next
26051	// page of results for list requests. If the number of results is larger
26052	// than maxResults, use the nextPageToken as a value for the query
26053	// parameter pageToken in the next list request. Subsequent list
26054	// requests will have their own nextPageToken to continue paging through
26055	// the results.
26056	NextPageToken string `json:"nextPageToken,omitempty"`
26057
26058	// SelfLink: [Output Only] Server-defined URL for this resource.
26059	SelfLink string `json:"selfLink,omitempty"`
26060
26061	// Warning: [Output Only] Informational warning message.
26062	Warning *NodeTemplateAggregatedListWarning `json:"warning,omitempty"`
26063
26064	// ServerResponse contains the HTTP response code and headers from the
26065	// server.
26066	googleapi.ServerResponse `json:"-"`
26067
26068	// ForceSendFields is a list of field names (e.g. "Id") to
26069	// unconditionally include in API requests. By default, fields with
26070	// empty values are omitted from API requests. However, any non-pointer,
26071	// non-interface field appearing in ForceSendFields will be sent to the
26072	// server regardless of whether the field is empty or not. This may be
26073	// used to include empty fields in Patch requests.
26074	ForceSendFields []string `json:"-"`
26075
26076	// NullFields is a list of field names (e.g. "Id") to include in API
26077	// requests with the JSON null value. By default, fields with empty
26078	// values are omitted from API requests. However, any field with an
26079	// empty value appearing in NullFields will be sent to the server as
26080	// null. It is an error if a field in this list has a non-empty value.
26081	// This may be used to include null fields in Patch requests.
26082	NullFields []string `json:"-"`
26083}
26084
26085func (s *NodeTemplateAggregatedList) MarshalJSON() ([]byte, error) {
26086	type NoMethod NodeTemplateAggregatedList
26087	raw := NoMethod(*s)
26088	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26089}
26090
26091// NodeTemplateAggregatedListWarning: [Output Only] Informational
26092// warning message.
26093type NodeTemplateAggregatedListWarning struct {
26094	// Code: [Output Only] A warning code, if applicable. For example,
26095	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26096	// the response.
26097	//
26098	// Possible values:
26099	//   "CLEANUP_FAILED"
26100	//   "DEPRECATED_RESOURCE_USED"
26101	//   "DEPRECATED_TYPE_USED"
26102	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26103	//   "EXPERIMENTAL_TYPE_USED"
26104	//   "EXTERNAL_API_WARNING"
26105	//   "FIELD_VALUE_OVERRIDEN"
26106	//   "INJECTED_KERNELS_DEPRECATED"
26107	//   "MISSING_TYPE_DEPENDENCY"
26108	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26109	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26110	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26111	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26112	//   "NEXT_HOP_NOT_RUNNING"
26113	//   "NOT_CRITICAL_ERROR"
26114	//   "NO_RESULTS_ON_PAGE"
26115	//   "REQUIRED_TOS_AGREEMENT"
26116	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26117	//   "RESOURCE_NOT_DELETED"
26118	//   "SCHEMA_VALIDATION_IGNORED"
26119	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26120	//   "UNDECLARED_PROPERTIES"
26121	//   "UNREACHABLE"
26122	Code string `json:"code,omitempty"`
26123
26124	// Data: [Output Only] Metadata about this warning in key: value format.
26125	// For example:
26126	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26127	Data []*NodeTemplateAggregatedListWarningData `json:"data,omitempty"`
26128
26129	// Message: [Output Only] A human-readable description of the warning
26130	// code.
26131	Message string `json:"message,omitempty"`
26132
26133	// ForceSendFields is a list of field names (e.g. "Code") to
26134	// unconditionally include in API requests. By default, fields with
26135	// empty values are omitted from API requests. However, any non-pointer,
26136	// non-interface field appearing in ForceSendFields will be sent to the
26137	// server regardless of whether the field is empty or not. This may be
26138	// used to include empty fields in Patch requests.
26139	ForceSendFields []string `json:"-"`
26140
26141	// NullFields is a list of field names (e.g. "Code") to include in API
26142	// requests with the JSON null value. By default, fields with empty
26143	// values are omitted from API requests. However, any field with an
26144	// empty value appearing in NullFields will be sent to the server as
26145	// null. It is an error if a field in this list has a non-empty value.
26146	// This may be used to include null fields in Patch requests.
26147	NullFields []string `json:"-"`
26148}
26149
26150func (s *NodeTemplateAggregatedListWarning) MarshalJSON() ([]byte, error) {
26151	type NoMethod NodeTemplateAggregatedListWarning
26152	raw := NoMethod(*s)
26153	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26154}
26155
26156type NodeTemplateAggregatedListWarningData struct {
26157	// Key: [Output Only] A key that provides more detail on the warning
26158	// being returned. For example, for warnings where there are no results
26159	// in a list request for a particular zone, this key might be scope and
26160	// the key value might be the zone name. Other examples might be a key
26161	// indicating a deprecated resource and a suggested replacement, or a
26162	// warning about invalid network settings (for example, if an instance
26163	// attempts to perform IP forwarding but is not enabled for IP
26164	// forwarding).
26165	Key string `json:"key,omitempty"`
26166
26167	// Value: [Output Only] A warning data value corresponding to the key.
26168	Value string `json:"value,omitempty"`
26169
26170	// ForceSendFields is a list of field names (e.g. "Key") to
26171	// unconditionally include in API requests. By default, fields with
26172	// empty values are omitted from API requests. However, any non-pointer,
26173	// non-interface field appearing in ForceSendFields will be sent to the
26174	// server regardless of whether the field is empty or not. This may be
26175	// used to include empty fields in Patch requests.
26176	ForceSendFields []string `json:"-"`
26177
26178	// NullFields is a list of field names (e.g. "Key") to include in API
26179	// requests with the JSON null value. By default, fields with empty
26180	// values are omitted from API requests. However, any field with an
26181	// empty value appearing in NullFields will be sent to the server as
26182	// null. It is an error if a field in this list has a non-empty value.
26183	// This may be used to include null fields in Patch requests.
26184	NullFields []string `json:"-"`
26185}
26186
26187func (s *NodeTemplateAggregatedListWarningData) MarshalJSON() ([]byte, error) {
26188	type NoMethod NodeTemplateAggregatedListWarningData
26189	raw := NoMethod(*s)
26190	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26191}
26192
26193// NodeTemplateList: Contains a list of node templates.
26194type NodeTemplateList struct {
26195	// Id: [Output Only] Unique identifier for the resource; defined by the
26196	// server.
26197	Id string `json:"id,omitempty"`
26198
26199	// Items: A list of NodeTemplate resources.
26200	Items []*NodeTemplate `json:"items,omitempty"`
26201
26202	// Kind: [Output Only] Type of resource.Always compute#nodeTemplateList
26203	// for lists of node templates.
26204	Kind string `json:"kind,omitempty"`
26205
26206	// NextPageToken: [Output Only] This token allows you to get the next
26207	// page of results for list requests. If the number of results is larger
26208	// than maxResults, use the nextPageToken as a value for the query
26209	// parameter pageToken in the next list request. Subsequent list
26210	// requests will have their own nextPageToken to continue paging through
26211	// the results.
26212	NextPageToken string `json:"nextPageToken,omitempty"`
26213
26214	// SelfLink: [Output Only] Server-defined URL for this resource.
26215	SelfLink string `json:"selfLink,omitempty"`
26216
26217	// Warning: [Output Only] Informational warning message.
26218	Warning *NodeTemplateListWarning `json:"warning,omitempty"`
26219
26220	// ServerResponse contains the HTTP response code and headers from the
26221	// server.
26222	googleapi.ServerResponse `json:"-"`
26223
26224	// ForceSendFields is a list of field names (e.g. "Id") to
26225	// unconditionally include in API requests. By default, fields with
26226	// empty values are omitted from API requests. However, any non-pointer,
26227	// non-interface field appearing in ForceSendFields will be sent to the
26228	// server regardless of whether the field is empty or not. This may be
26229	// used to include empty fields in Patch requests.
26230	ForceSendFields []string `json:"-"`
26231
26232	// NullFields is a list of field names (e.g. "Id") to include in API
26233	// requests with the JSON null value. By default, fields with empty
26234	// values are omitted from API requests. However, any field with an
26235	// empty value appearing in NullFields will be sent to the server as
26236	// null. It is an error if a field in this list has a non-empty value.
26237	// This may be used to include null fields in Patch requests.
26238	NullFields []string `json:"-"`
26239}
26240
26241func (s *NodeTemplateList) MarshalJSON() ([]byte, error) {
26242	type NoMethod NodeTemplateList
26243	raw := NoMethod(*s)
26244	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26245}
26246
26247// NodeTemplateListWarning: [Output Only] Informational warning message.
26248type NodeTemplateListWarning struct {
26249	// Code: [Output Only] A warning code, if applicable. For example,
26250	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26251	// the response.
26252	//
26253	// Possible values:
26254	//   "CLEANUP_FAILED"
26255	//   "DEPRECATED_RESOURCE_USED"
26256	//   "DEPRECATED_TYPE_USED"
26257	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26258	//   "EXPERIMENTAL_TYPE_USED"
26259	//   "EXTERNAL_API_WARNING"
26260	//   "FIELD_VALUE_OVERRIDEN"
26261	//   "INJECTED_KERNELS_DEPRECATED"
26262	//   "MISSING_TYPE_DEPENDENCY"
26263	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26264	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26265	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26266	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26267	//   "NEXT_HOP_NOT_RUNNING"
26268	//   "NOT_CRITICAL_ERROR"
26269	//   "NO_RESULTS_ON_PAGE"
26270	//   "REQUIRED_TOS_AGREEMENT"
26271	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26272	//   "RESOURCE_NOT_DELETED"
26273	//   "SCHEMA_VALIDATION_IGNORED"
26274	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26275	//   "UNDECLARED_PROPERTIES"
26276	//   "UNREACHABLE"
26277	Code string `json:"code,omitempty"`
26278
26279	// Data: [Output Only] Metadata about this warning in key: value format.
26280	// For example:
26281	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26282	Data []*NodeTemplateListWarningData `json:"data,omitempty"`
26283
26284	// Message: [Output Only] A human-readable description of the warning
26285	// code.
26286	Message string `json:"message,omitempty"`
26287
26288	// ForceSendFields is a list of field names (e.g. "Code") to
26289	// unconditionally include in API requests. By default, fields with
26290	// empty values are omitted from API requests. However, any non-pointer,
26291	// non-interface field appearing in ForceSendFields will be sent to the
26292	// server regardless of whether the field is empty or not. This may be
26293	// used to include empty fields in Patch requests.
26294	ForceSendFields []string `json:"-"`
26295
26296	// NullFields is a list of field names (e.g. "Code") to include in API
26297	// requests with the JSON null value. By default, fields with empty
26298	// values are omitted from API requests. However, any field with an
26299	// empty value appearing in NullFields will be sent to the server as
26300	// null. It is an error if a field in this list has a non-empty value.
26301	// This may be used to include null fields in Patch requests.
26302	NullFields []string `json:"-"`
26303}
26304
26305func (s *NodeTemplateListWarning) MarshalJSON() ([]byte, error) {
26306	type NoMethod NodeTemplateListWarning
26307	raw := NoMethod(*s)
26308	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26309}
26310
26311type NodeTemplateListWarningData struct {
26312	// Key: [Output Only] A key that provides more detail on the warning
26313	// being returned. For example, for warnings where there are no results
26314	// in a list request for a particular zone, this key might be scope and
26315	// the key value might be the zone name. Other examples might be a key
26316	// indicating a deprecated resource and a suggested replacement, or a
26317	// warning about invalid network settings (for example, if an instance
26318	// attempts to perform IP forwarding but is not enabled for IP
26319	// forwarding).
26320	Key string `json:"key,omitempty"`
26321
26322	// Value: [Output Only] A warning data value corresponding to the key.
26323	Value string `json:"value,omitempty"`
26324
26325	// ForceSendFields is a list of field names (e.g. "Key") to
26326	// unconditionally include in API requests. By default, fields with
26327	// empty values are omitted from API requests. However, any non-pointer,
26328	// non-interface field appearing in ForceSendFields will be sent to the
26329	// server regardless of whether the field is empty or not. This may be
26330	// used to include empty fields in Patch requests.
26331	ForceSendFields []string `json:"-"`
26332
26333	// NullFields is a list of field names (e.g. "Key") to include in API
26334	// requests with the JSON null value. By default, fields with empty
26335	// values are omitted from API requests. However, any field with an
26336	// empty value appearing in NullFields will be sent to the server as
26337	// null. It is an error if a field in this list has a non-empty value.
26338	// This may be used to include null fields in Patch requests.
26339	NullFields []string `json:"-"`
26340}
26341
26342func (s *NodeTemplateListWarningData) MarshalJSON() ([]byte, error) {
26343	type NoMethod NodeTemplateListWarningData
26344	raw := NoMethod(*s)
26345	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26346}
26347
26348type NodeTemplateNodeTypeFlexibility struct {
26349	Cpus string `json:"cpus,omitempty"`
26350
26351	LocalSsd string `json:"localSsd,omitempty"`
26352
26353	Memory string `json:"memory,omitempty"`
26354
26355	// ForceSendFields is a list of field names (e.g. "Cpus") to
26356	// unconditionally include in API requests. By default, fields with
26357	// empty values are omitted from API requests. However, any non-pointer,
26358	// non-interface field appearing in ForceSendFields will be sent to the
26359	// server regardless of whether the field is empty or not. This may be
26360	// used to include empty fields in Patch requests.
26361	ForceSendFields []string `json:"-"`
26362
26363	// NullFields is a list of field names (e.g. "Cpus") to include in API
26364	// requests with the JSON null value. By default, fields with empty
26365	// values are omitted from API requests. However, any field with an
26366	// empty value appearing in NullFields will be sent to the server as
26367	// null. It is an error if a field in this list has a non-empty value.
26368	// This may be used to include null fields in Patch requests.
26369	NullFields []string `json:"-"`
26370}
26371
26372func (s *NodeTemplateNodeTypeFlexibility) MarshalJSON() ([]byte, error) {
26373	type NoMethod NodeTemplateNodeTypeFlexibility
26374	raw := NoMethod(*s)
26375	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26376}
26377
26378type NodeTemplatesScopedList struct {
26379	// NodeTemplates: [Output Only] A list of node templates contained in
26380	// this scope.
26381	NodeTemplates []*NodeTemplate `json:"nodeTemplates,omitempty"`
26382
26383	// Warning: [Output Only] An informational warning that appears when the
26384	// node templates list is empty.
26385	Warning *NodeTemplatesScopedListWarning `json:"warning,omitempty"`
26386
26387	// ForceSendFields is a list of field names (e.g. "NodeTemplates") to
26388	// unconditionally include in API requests. By default, fields with
26389	// empty values are omitted from API requests. However, any non-pointer,
26390	// non-interface field appearing in ForceSendFields will be sent to the
26391	// server regardless of whether the field is empty or not. This may be
26392	// used to include empty fields in Patch requests.
26393	ForceSendFields []string `json:"-"`
26394
26395	// NullFields is a list of field names (e.g. "NodeTemplates") to include
26396	// in API requests with the JSON null value. By default, fields with
26397	// empty values are omitted from API requests. However, any field with
26398	// an empty value appearing in NullFields will be sent to the server as
26399	// null. It is an error if a field in this list has a non-empty value.
26400	// This may be used to include null fields in Patch requests.
26401	NullFields []string `json:"-"`
26402}
26403
26404func (s *NodeTemplatesScopedList) MarshalJSON() ([]byte, error) {
26405	type NoMethod NodeTemplatesScopedList
26406	raw := NoMethod(*s)
26407	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26408}
26409
26410// NodeTemplatesScopedListWarning: [Output Only] An informational
26411// warning that appears when the node templates list is empty.
26412type NodeTemplatesScopedListWarning struct {
26413	// Code: [Output Only] A warning code, if applicable. For example,
26414	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26415	// the response.
26416	//
26417	// Possible values:
26418	//   "CLEANUP_FAILED"
26419	//   "DEPRECATED_RESOURCE_USED"
26420	//   "DEPRECATED_TYPE_USED"
26421	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26422	//   "EXPERIMENTAL_TYPE_USED"
26423	//   "EXTERNAL_API_WARNING"
26424	//   "FIELD_VALUE_OVERRIDEN"
26425	//   "INJECTED_KERNELS_DEPRECATED"
26426	//   "MISSING_TYPE_DEPENDENCY"
26427	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26428	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26429	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26430	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26431	//   "NEXT_HOP_NOT_RUNNING"
26432	//   "NOT_CRITICAL_ERROR"
26433	//   "NO_RESULTS_ON_PAGE"
26434	//   "REQUIRED_TOS_AGREEMENT"
26435	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26436	//   "RESOURCE_NOT_DELETED"
26437	//   "SCHEMA_VALIDATION_IGNORED"
26438	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26439	//   "UNDECLARED_PROPERTIES"
26440	//   "UNREACHABLE"
26441	Code string `json:"code,omitempty"`
26442
26443	// Data: [Output Only] Metadata about this warning in key: value format.
26444	// For example:
26445	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26446	Data []*NodeTemplatesScopedListWarningData `json:"data,omitempty"`
26447
26448	// Message: [Output Only] A human-readable description of the warning
26449	// code.
26450	Message string `json:"message,omitempty"`
26451
26452	// ForceSendFields is a list of field names (e.g. "Code") to
26453	// unconditionally include in API requests. By default, fields with
26454	// empty values are omitted from API requests. However, any non-pointer,
26455	// non-interface field appearing in ForceSendFields will be sent to the
26456	// server regardless of whether the field is empty or not. This may be
26457	// used to include empty fields in Patch requests.
26458	ForceSendFields []string `json:"-"`
26459
26460	// NullFields is a list of field names (e.g. "Code") to include in API
26461	// requests with the JSON null value. By default, fields with empty
26462	// values are omitted from API requests. However, any field with an
26463	// empty value appearing in NullFields will be sent to the server as
26464	// null. It is an error if a field in this list has a non-empty value.
26465	// This may be used to include null fields in Patch requests.
26466	NullFields []string `json:"-"`
26467}
26468
26469func (s *NodeTemplatesScopedListWarning) MarshalJSON() ([]byte, error) {
26470	type NoMethod NodeTemplatesScopedListWarning
26471	raw := NoMethod(*s)
26472	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26473}
26474
26475type NodeTemplatesScopedListWarningData struct {
26476	// Key: [Output Only] A key that provides more detail on the warning
26477	// being returned. For example, for warnings where there are no results
26478	// in a list request for a particular zone, this key might be scope and
26479	// the key value might be the zone name. Other examples might be a key
26480	// indicating a deprecated resource and a suggested replacement, or a
26481	// warning about invalid network settings (for example, if an instance
26482	// attempts to perform IP forwarding but is not enabled for IP
26483	// forwarding).
26484	Key string `json:"key,omitempty"`
26485
26486	// Value: [Output Only] A warning data value corresponding to the key.
26487	Value string `json:"value,omitempty"`
26488
26489	// ForceSendFields is a list of field names (e.g. "Key") to
26490	// unconditionally include in API requests. By default, fields with
26491	// empty values are omitted from API requests. However, any non-pointer,
26492	// non-interface field appearing in ForceSendFields will be sent to the
26493	// server regardless of whether the field is empty or not. This may be
26494	// used to include empty fields in Patch requests.
26495	ForceSendFields []string `json:"-"`
26496
26497	// NullFields is a list of field names (e.g. "Key") to include in API
26498	// requests with the JSON null value. By default, fields with empty
26499	// values are omitted from API requests. However, any field with an
26500	// empty value appearing in NullFields will be sent to the server as
26501	// null. It is an error if a field in this list has a non-empty value.
26502	// This may be used to include null fields in Patch requests.
26503	NullFields []string `json:"-"`
26504}
26505
26506func (s *NodeTemplatesScopedListWarningData) MarshalJSON() ([]byte, error) {
26507	type NoMethod NodeTemplatesScopedListWarningData
26508	raw := NoMethod(*s)
26509	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26510}
26511
26512// NodeType: Represent a sole-tenant Node Type resource.
26513//
26514// Each node within a node group must have a node type. A node type
26515// specifies the total amount of cores and memory for that node.
26516// Currently, the only available node type is n1-node-96-624 node type
26517// that has 96 vCPUs and 624 GB of memory, available in multiple zones.
26518// For more information read Node types. (== resource_for
26519// {$api_version}.nodeTypes ==)
26520type NodeType struct {
26521	// CpuPlatform: [Output Only] The CPU platform used by this node type.
26522	CpuPlatform string `json:"cpuPlatform,omitempty"`
26523
26524	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
26525	// format.
26526	CreationTimestamp string `json:"creationTimestamp,omitempty"`
26527
26528	// Deprecated: [Output Only] The deprecation status associated with this
26529	// node type.
26530	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
26531
26532	// Description: [Output Only] An optional textual description of the
26533	// resource.
26534	Description string `json:"description,omitempty"`
26535
26536	// GuestCpus: [Output Only] The number of virtual CPUs that are
26537	// available to the node type.
26538	GuestCpus int64 `json:"guestCpus,omitempty"`
26539
26540	// Id: [Output Only] The unique identifier for the resource. This
26541	// identifier is defined by the server.
26542	Id uint64 `json:"id,omitempty,string"`
26543
26544	// Kind: [Output Only] The type of the resource. Always compute#nodeType
26545	// for node types.
26546	Kind string `json:"kind,omitempty"`
26547
26548	// LocalSsdGb: [Output Only] Local SSD available to the node type,
26549	// defined in GB.
26550	LocalSsdGb int64 `json:"localSsdGb,omitempty"`
26551
26552	// MemoryMb: [Output Only] The amount of physical memory available to
26553	// the node type, defined in MB.
26554	MemoryMb int64 `json:"memoryMb,omitempty"`
26555
26556	// Name: [Output Only] Name of the resource.
26557	Name string `json:"name,omitempty"`
26558
26559	// SelfLink: [Output Only] Server-defined URL for the resource.
26560	SelfLink string `json:"selfLink,omitempty"`
26561
26562	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
26563	// with the resource id.
26564	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
26565
26566	// Zone: [Output Only] The name of the zone where the node type resides,
26567	// such as us-central1-a.
26568	Zone string `json:"zone,omitempty"`
26569
26570	// ServerResponse contains the HTTP response code and headers from the
26571	// server.
26572	googleapi.ServerResponse `json:"-"`
26573
26574	// ForceSendFields is a list of field names (e.g. "CpuPlatform") to
26575	// unconditionally include in API requests. By default, fields with
26576	// empty values are omitted from API requests. However, any non-pointer,
26577	// non-interface field appearing in ForceSendFields will be sent to the
26578	// server regardless of whether the field is empty or not. This may be
26579	// used to include empty fields in Patch requests.
26580	ForceSendFields []string `json:"-"`
26581
26582	// NullFields is a list of field names (e.g. "CpuPlatform") to include
26583	// in API requests with the JSON null value. By default, fields with
26584	// empty values are omitted from API requests. However, any field with
26585	// an empty value appearing in NullFields will be sent to the server as
26586	// null. It is an error if a field in this list has a non-empty value.
26587	// This may be used to include null fields in Patch requests.
26588	NullFields []string `json:"-"`
26589}
26590
26591func (s *NodeType) MarshalJSON() ([]byte, error) {
26592	type NoMethod NodeType
26593	raw := NoMethod(*s)
26594	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26595}
26596
26597type NodeTypeAggregatedList struct {
26598	// Id: [Output Only] Unique identifier for the resource; defined by the
26599	// server.
26600	Id string `json:"id,omitempty"`
26601
26602	// Items: A list of NodeTypesScopedList resources.
26603	Items map[string]NodeTypesScopedList `json:"items,omitempty"`
26604
26605	// Kind: [Output Only] Type of resource.Always
26606	// compute#nodeTypeAggregatedList for aggregated lists of node types.
26607	Kind string `json:"kind,omitempty"`
26608
26609	// NextPageToken: [Output Only] This token allows you to get the next
26610	// page of results for list requests. If the number of results is larger
26611	// than maxResults, use the nextPageToken as a value for the query
26612	// parameter pageToken in the next list request. Subsequent list
26613	// requests will have their own nextPageToken to continue paging through
26614	// the results.
26615	NextPageToken string `json:"nextPageToken,omitempty"`
26616
26617	// SelfLink: [Output Only] Server-defined URL for this resource.
26618	SelfLink string `json:"selfLink,omitempty"`
26619
26620	// Warning: [Output Only] Informational warning message.
26621	Warning *NodeTypeAggregatedListWarning `json:"warning,omitempty"`
26622
26623	// ServerResponse contains the HTTP response code and headers from the
26624	// server.
26625	googleapi.ServerResponse `json:"-"`
26626
26627	// ForceSendFields is a list of field names (e.g. "Id") to
26628	// unconditionally include in API requests. By default, fields with
26629	// empty values are omitted from API requests. However, any non-pointer,
26630	// non-interface field appearing in ForceSendFields will be sent to the
26631	// server regardless of whether the field is empty or not. This may be
26632	// used to include empty fields in Patch requests.
26633	ForceSendFields []string `json:"-"`
26634
26635	// NullFields is a list of field names (e.g. "Id") to include in API
26636	// requests with the JSON null value. By default, fields with empty
26637	// values are omitted from API requests. However, any field with an
26638	// empty value appearing in NullFields will be sent to the server as
26639	// null. It is an error if a field in this list has a non-empty value.
26640	// This may be used to include null fields in Patch requests.
26641	NullFields []string `json:"-"`
26642}
26643
26644func (s *NodeTypeAggregatedList) MarshalJSON() ([]byte, error) {
26645	type NoMethod NodeTypeAggregatedList
26646	raw := NoMethod(*s)
26647	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26648}
26649
26650// NodeTypeAggregatedListWarning: [Output Only] Informational warning
26651// message.
26652type NodeTypeAggregatedListWarning struct {
26653	// Code: [Output Only] A warning code, if applicable. For example,
26654	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26655	// the response.
26656	//
26657	// Possible values:
26658	//   "CLEANUP_FAILED"
26659	//   "DEPRECATED_RESOURCE_USED"
26660	//   "DEPRECATED_TYPE_USED"
26661	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26662	//   "EXPERIMENTAL_TYPE_USED"
26663	//   "EXTERNAL_API_WARNING"
26664	//   "FIELD_VALUE_OVERRIDEN"
26665	//   "INJECTED_KERNELS_DEPRECATED"
26666	//   "MISSING_TYPE_DEPENDENCY"
26667	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26668	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26669	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26670	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26671	//   "NEXT_HOP_NOT_RUNNING"
26672	//   "NOT_CRITICAL_ERROR"
26673	//   "NO_RESULTS_ON_PAGE"
26674	//   "REQUIRED_TOS_AGREEMENT"
26675	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26676	//   "RESOURCE_NOT_DELETED"
26677	//   "SCHEMA_VALIDATION_IGNORED"
26678	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26679	//   "UNDECLARED_PROPERTIES"
26680	//   "UNREACHABLE"
26681	Code string `json:"code,omitempty"`
26682
26683	// Data: [Output Only] Metadata about this warning in key: value format.
26684	// For example:
26685	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26686	Data []*NodeTypeAggregatedListWarningData `json:"data,omitempty"`
26687
26688	// Message: [Output Only] A human-readable description of the warning
26689	// code.
26690	Message string `json:"message,omitempty"`
26691
26692	// ForceSendFields is a list of field names (e.g. "Code") to
26693	// unconditionally include in API requests. By default, fields with
26694	// empty values are omitted from API requests. However, any non-pointer,
26695	// non-interface field appearing in ForceSendFields will be sent to the
26696	// server regardless of whether the field is empty or not. This may be
26697	// used to include empty fields in Patch requests.
26698	ForceSendFields []string `json:"-"`
26699
26700	// NullFields is a list of field names (e.g. "Code") to include in API
26701	// requests with the JSON null value. By default, fields with empty
26702	// values are omitted from API requests. However, any field with an
26703	// empty value appearing in NullFields will be sent to the server as
26704	// null. It is an error if a field in this list has a non-empty value.
26705	// This may be used to include null fields in Patch requests.
26706	NullFields []string `json:"-"`
26707}
26708
26709func (s *NodeTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
26710	type NoMethod NodeTypeAggregatedListWarning
26711	raw := NoMethod(*s)
26712	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26713}
26714
26715type NodeTypeAggregatedListWarningData struct {
26716	// Key: [Output Only] A key that provides more detail on the warning
26717	// being returned. For example, for warnings where there are no results
26718	// in a list request for a particular zone, this key might be scope and
26719	// the key value might be the zone name. Other examples might be a key
26720	// indicating a deprecated resource and a suggested replacement, or a
26721	// warning about invalid network settings (for example, if an instance
26722	// attempts to perform IP forwarding but is not enabled for IP
26723	// forwarding).
26724	Key string `json:"key,omitempty"`
26725
26726	// Value: [Output Only] A warning data value corresponding to the key.
26727	Value string `json:"value,omitempty"`
26728
26729	// ForceSendFields is a list of field names (e.g. "Key") to
26730	// unconditionally include in API requests. By default, fields with
26731	// empty values are omitted from API requests. However, any non-pointer,
26732	// non-interface field appearing in ForceSendFields will be sent to the
26733	// server regardless of whether the field is empty or not. This may be
26734	// used to include empty fields in Patch requests.
26735	ForceSendFields []string `json:"-"`
26736
26737	// NullFields is a list of field names (e.g. "Key") to include in API
26738	// requests with the JSON null value. By default, fields with empty
26739	// values are omitted from API requests. However, any field with an
26740	// empty value appearing in NullFields will be sent to the server as
26741	// null. It is an error if a field in this list has a non-empty value.
26742	// This may be used to include null fields in Patch requests.
26743	NullFields []string `json:"-"`
26744}
26745
26746func (s *NodeTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
26747	type NoMethod NodeTypeAggregatedListWarningData
26748	raw := NoMethod(*s)
26749	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26750}
26751
26752// NodeTypeList: Contains a list of node types.
26753type NodeTypeList struct {
26754	// Id: [Output Only] Unique identifier for the resource; defined by the
26755	// server.
26756	Id string `json:"id,omitempty"`
26757
26758	// Items: A list of NodeType resources.
26759	Items []*NodeType `json:"items,omitempty"`
26760
26761	// Kind: [Output Only] Type of resource.Always compute#nodeTypeList for
26762	// lists of node types.
26763	Kind string `json:"kind,omitempty"`
26764
26765	// NextPageToken: [Output Only] This token allows you to get the next
26766	// page of results for list requests. If the number of results is larger
26767	// than maxResults, use the nextPageToken as a value for the query
26768	// parameter pageToken in the next list request. Subsequent list
26769	// requests will have their own nextPageToken to continue paging through
26770	// the results.
26771	NextPageToken string `json:"nextPageToken,omitempty"`
26772
26773	// SelfLink: [Output Only] Server-defined URL for this resource.
26774	SelfLink string `json:"selfLink,omitempty"`
26775
26776	// Warning: [Output Only] Informational warning message.
26777	Warning *NodeTypeListWarning `json:"warning,omitempty"`
26778
26779	// ServerResponse contains the HTTP response code and headers from the
26780	// server.
26781	googleapi.ServerResponse `json:"-"`
26782
26783	// ForceSendFields is a list of field names (e.g. "Id") to
26784	// unconditionally include in API requests. By default, fields with
26785	// empty values are omitted from API requests. However, any non-pointer,
26786	// non-interface field appearing in ForceSendFields will be sent to the
26787	// server regardless of whether the field is empty or not. This may be
26788	// used to include empty fields in Patch requests.
26789	ForceSendFields []string `json:"-"`
26790
26791	// NullFields is a list of field names (e.g. "Id") to include in API
26792	// requests with the JSON null value. By default, fields with empty
26793	// values are omitted from API requests. However, any field with an
26794	// empty value appearing in NullFields will be sent to the server as
26795	// null. It is an error if a field in this list has a non-empty value.
26796	// This may be used to include null fields in Patch requests.
26797	NullFields []string `json:"-"`
26798}
26799
26800func (s *NodeTypeList) MarshalJSON() ([]byte, error) {
26801	type NoMethod NodeTypeList
26802	raw := NoMethod(*s)
26803	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26804}
26805
26806// NodeTypeListWarning: [Output Only] Informational warning message.
26807type NodeTypeListWarning struct {
26808	// Code: [Output Only] A warning code, if applicable. For example,
26809	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26810	// the response.
26811	//
26812	// Possible values:
26813	//   "CLEANUP_FAILED"
26814	//   "DEPRECATED_RESOURCE_USED"
26815	//   "DEPRECATED_TYPE_USED"
26816	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26817	//   "EXPERIMENTAL_TYPE_USED"
26818	//   "EXTERNAL_API_WARNING"
26819	//   "FIELD_VALUE_OVERRIDEN"
26820	//   "INJECTED_KERNELS_DEPRECATED"
26821	//   "MISSING_TYPE_DEPENDENCY"
26822	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26823	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26824	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26825	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26826	//   "NEXT_HOP_NOT_RUNNING"
26827	//   "NOT_CRITICAL_ERROR"
26828	//   "NO_RESULTS_ON_PAGE"
26829	//   "REQUIRED_TOS_AGREEMENT"
26830	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26831	//   "RESOURCE_NOT_DELETED"
26832	//   "SCHEMA_VALIDATION_IGNORED"
26833	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26834	//   "UNDECLARED_PROPERTIES"
26835	//   "UNREACHABLE"
26836	Code string `json:"code,omitempty"`
26837
26838	// Data: [Output Only] Metadata about this warning in key: value format.
26839	// For example:
26840	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26841	Data []*NodeTypeListWarningData `json:"data,omitempty"`
26842
26843	// Message: [Output Only] A human-readable description of the warning
26844	// code.
26845	Message string `json:"message,omitempty"`
26846
26847	// ForceSendFields is a list of field names (e.g. "Code") to
26848	// unconditionally include in API requests. By default, fields with
26849	// empty values are omitted from API requests. However, any non-pointer,
26850	// non-interface field appearing in ForceSendFields will be sent to the
26851	// server regardless of whether the field is empty or not. This may be
26852	// used to include empty fields in Patch requests.
26853	ForceSendFields []string `json:"-"`
26854
26855	// NullFields is a list of field names (e.g. "Code") to include in API
26856	// requests with the JSON null value. By default, fields with empty
26857	// values are omitted from API requests. However, any field with an
26858	// empty value appearing in NullFields will be sent to the server as
26859	// null. It is an error if a field in this list has a non-empty value.
26860	// This may be used to include null fields in Patch requests.
26861	NullFields []string `json:"-"`
26862}
26863
26864func (s *NodeTypeListWarning) MarshalJSON() ([]byte, error) {
26865	type NoMethod NodeTypeListWarning
26866	raw := NoMethod(*s)
26867	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26868}
26869
26870type NodeTypeListWarningData struct {
26871	// Key: [Output Only] A key that provides more detail on the warning
26872	// being returned. For example, for warnings where there are no results
26873	// in a list request for a particular zone, this key might be scope and
26874	// the key value might be the zone name. Other examples might be a key
26875	// indicating a deprecated resource and a suggested replacement, or a
26876	// warning about invalid network settings (for example, if an instance
26877	// attempts to perform IP forwarding but is not enabled for IP
26878	// forwarding).
26879	Key string `json:"key,omitempty"`
26880
26881	// Value: [Output Only] A warning data value corresponding to the key.
26882	Value string `json:"value,omitempty"`
26883
26884	// ForceSendFields is a list of field names (e.g. "Key") to
26885	// unconditionally include in API requests. By default, fields with
26886	// empty values are omitted from API requests. However, any non-pointer,
26887	// non-interface field appearing in ForceSendFields will be sent to the
26888	// server regardless of whether the field is empty or not. This may be
26889	// used to include empty fields in Patch requests.
26890	ForceSendFields []string `json:"-"`
26891
26892	// NullFields is a list of field names (e.g. "Key") to include in API
26893	// requests with the JSON null value. By default, fields with empty
26894	// values are omitted from API requests. However, any field with an
26895	// empty value appearing in NullFields will be sent to the server as
26896	// null. It is an error if a field in this list has a non-empty value.
26897	// This may be used to include null fields in Patch requests.
26898	NullFields []string `json:"-"`
26899}
26900
26901func (s *NodeTypeListWarningData) MarshalJSON() ([]byte, error) {
26902	type NoMethod NodeTypeListWarningData
26903	raw := NoMethod(*s)
26904	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26905}
26906
26907type NodeTypesScopedList struct {
26908	// NodeTypes: [Output Only] A list of node types contained in this
26909	// scope.
26910	NodeTypes []*NodeType `json:"nodeTypes,omitempty"`
26911
26912	// Warning: [Output Only] An informational warning that appears when the
26913	// node types list is empty.
26914	Warning *NodeTypesScopedListWarning `json:"warning,omitempty"`
26915
26916	// ForceSendFields is a list of field names (e.g. "NodeTypes") to
26917	// unconditionally include in API requests. By default, fields with
26918	// empty values are omitted from API requests. However, any non-pointer,
26919	// non-interface field appearing in ForceSendFields will be sent to the
26920	// server regardless of whether the field is empty or not. This may be
26921	// used to include empty fields in Patch requests.
26922	ForceSendFields []string `json:"-"`
26923
26924	// NullFields is a list of field names (e.g. "NodeTypes") to include in
26925	// API requests with the JSON null value. By default, fields with empty
26926	// values are omitted from API requests. However, any field with an
26927	// empty value appearing in NullFields will be sent to the server as
26928	// null. It is an error if a field in this list has a non-empty value.
26929	// This may be used to include null fields in Patch requests.
26930	NullFields []string `json:"-"`
26931}
26932
26933func (s *NodeTypesScopedList) MarshalJSON() ([]byte, error) {
26934	type NoMethod NodeTypesScopedList
26935	raw := NoMethod(*s)
26936	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26937}
26938
26939// NodeTypesScopedListWarning: [Output Only] An informational warning
26940// that appears when the node types list is empty.
26941type NodeTypesScopedListWarning struct {
26942	// Code: [Output Only] A warning code, if applicable. For example,
26943	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26944	// the response.
26945	//
26946	// Possible values:
26947	//   "CLEANUP_FAILED"
26948	//   "DEPRECATED_RESOURCE_USED"
26949	//   "DEPRECATED_TYPE_USED"
26950	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26951	//   "EXPERIMENTAL_TYPE_USED"
26952	//   "EXTERNAL_API_WARNING"
26953	//   "FIELD_VALUE_OVERRIDEN"
26954	//   "INJECTED_KERNELS_DEPRECATED"
26955	//   "MISSING_TYPE_DEPENDENCY"
26956	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26957	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26958	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26959	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26960	//   "NEXT_HOP_NOT_RUNNING"
26961	//   "NOT_CRITICAL_ERROR"
26962	//   "NO_RESULTS_ON_PAGE"
26963	//   "REQUIRED_TOS_AGREEMENT"
26964	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26965	//   "RESOURCE_NOT_DELETED"
26966	//   "SCHEMA_VALIDATION_IGNORED"
26967	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26968	//   "UNDECLARED_PROPERTIES"
26969	//   "UNREACHABLE"
26970	Code string `json:"code,omitempty"`
26971
26972	// Data: [Output Only] Metadata about this warning in key: value format.
26973	// For example:
26974	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26975	Data []*NodeTypesScopedListWarningData `json:"data,omitempty"`
26976
26977	// Message: [Output Only] A human-readable description of the warning
26978	// code.
26979	Message string `json:"message,omitempty"`
26980
26981	// ForceSendFields is a list of field names (e.g. "Code") to
26982	// unconditionally include in API requests. By default, fields with
26983	// empty values are omitted from API requests. However, any non-pointer,
26984	// non-interface field appearing in ForceSendFields will be sent to the
26985	// server regardless of whether the field is empty or not. This may be
26986	// used to include empty fields in Patch requests.
26987	ForceSendFields []string `json:"-"`
26988
26989	// NullFields is a list of field names (e.g. "Code") to include in API
26990	// requests with the JSON null value. By default, fields with empty
26991	// values are omitted from API requests. However, any field with an
26992	// empty value appearing in NullFields will be sent to the server as
26993	// null. It is an error if a field in this list has a non-empty value.
26994	// This may be used to include null fields in Patch requests.
26995	NullFields []string `json:"-"`
26996}
26997
26998func (s *NodeTypesScopedListWarning) MarshalJSON() ([]byte, error) {
26999	type NoMethod NodeTypesScopedListWarning
27000	raw := NoMethod(*s)
27001	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27002}
27003
27004type NodeTypesScopedListWarningData struct {
27005	// Key: [Output Only] A key that provides more detail on the warning
27006	// being returned. For example, for warnings where there are no results
27007	// in a list request for a particular zone, this key might be scope and
27008	// the key value might be the zone name. Other examples might be a key
27009	// indicating a deprecated resource and a suggested replacement, or a
27010	// warning about invalid network settings (for example, if an instance
27011	// attempts to perform IP forwarding but is not enabled for IP
27012	// forwarding).
27013	Key string `json:"key,omitempty"`
27014
27015	// Value: [Output Only] A warning data value corresponding to the key.
27016	Value string `json:"value,omitempty"`
27017
27018	// ForceSendFields is a list of field names (e.g. "Key") to
27019	// unconditionally include in API requests. By default, fields with
27020	// empty values are omitted from API requests. However, any non-pointer,
27021	// non-interface field appearing in ForceSendFields will be sent to the
27022	// server regardless of whether the field is empty or not. This may be
27023	// used to include empty fields in Patch requests.
27024	ForceSendFields []string `json:"-"`
27025
27026	// NullFields is a list of field names (e.g. "Key") to include in API
27027	// requests with the JSON null value. By default, fields with empty
27028	// values are omitted from API requests. However, any field with an
27029	// empty value appearing in NullFields will be sent to the server as
27030	// null. It is an error if a field in this list has a non-empty value.
27031	// This may be used to include null fields in Patch requests.
27032	NullFields []string `json:"-"`
27033}
27034
27035func (s *NodeTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
27036	type NoMethod NodeTypesScopedListWarningData
27037	raw := NoMethod(*s)
27038	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27039}
27040
27041// NotificationEndpoint: A notification endpoint resource defines an
27042// endpoint to receive notifications when there are status changes
27043// detected by the associated health check service.
27044type NotificationEndpoint struct {
27045	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
27046	// format.
27047	CreationTimestamp string `json:"creationTimestamp,omitempty"`
27048
27049	// Description: An optional description of this resource. Provide this
27050	// property when you create the resource.
27051	Description string `json:"description,omitempty"`
27052
27053	// GrpcSettings: Settings of the gRPC notification endpoint including
27054	// the endpoint URL and the retry duration.
27055	GrpcSettings *NotificationEndpointGrpcSettings `json:"grpcSettings,omitempty"`
27056
27057	// Id: [Output Only] A unique identifier for this resource type. The
27058	// server generates this identifier.
27059	Id uint64 `json:"id,omitempty,string"`
27060
27061	// Kind: [Output Only] Type of the resource. Always
27062	// compute#notificationEndpoint for notification endpoints.
27063	Kind string `json:"kind,omitempty"`
27064
27065	// Name: Name of the resource. Provided by the client when the resource
27066	// is created. The name must be 1-63 characters long, and comply with
27067	// RFC1035. Specifically, the name must be 1-63 characters long and
27068	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
27069	// the first character must be a lowercase letter, and all following
27070	// characters must be a dash, lowercase letter, or digit, except the
27071	// last character, which cannot be a dash.
27072	Name string `json:"name,omitempty"`
27073
27074	// Region: [Output Only] URL of the region where the notification
27075	// endpoint resides. This field applies only to the regional resource.
27076	// You must specify this field as part of the HTTP request URL. It is
27077	// not settable as a field in the request body.
27078	Region string `json:"region,omitempty"`
27079
27080	// SelfLink: [Output Only] Server-defined URL for the resource.
27081	SelfLink string `json:"selfLink,omitempty"`
27082
27083	// ServerResponse contains the HTTP response code and headers from the
27084	// server.
27085	googleapi.ServerResponse `json:"-"`
27086
27087	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
27088	// to unconditionally include in API requests. By default, fields with
27089	// empty values are omitted from API requests. However, any non-pointer,
27090	// non-interface field appearing in ForceSendFields will be sent to the
27091	// server regardless of whether the field is empty or not. This may be
27092	// used to include empty fields in Patch requests.
27093	ForceSendFields []string `json:"-"`
27094
27095	// NullFields is a list of field names (e.g. "CreationTimestamp") to
27096	// include in API requests with the JSON null value. By default, fields
27097	// with empty values are omitted from API requests. However, any field
27098	// with an empty value appearing in NullFields will be sent to the
27099	// server as null. It is an error if a field in this list has a
27100	// non-empty value. This may be used to include null fields in Patch
27101	// requests.
27102	NullFields []string `json:"-"`
27103}
27104
27105func (s *NotificationEndpoint) MarshalJSON() ([]byte, error) {
27106	type NoMethod NotificationEndpoint
27107	raw := NoMethod(*s)
27108	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27109}
27110
27111// NotificationEndpointGrpcSettings: Represents a gRPC setting that
27112// describes one gRPC notification endpoint and the retry duration
27113// attempting to send notification to this endpoint.
27114type NotificationEndpointGrpcSettings struct {
27115	// Authority: Optional. If specified, this field is used to set the
27116	// authority header by the sender of notifications. See
27117	// https://tools.ietf.org/html/rfc7540#section-8.1.2.3
27118	Authority string `json:"authority,omitempty"`
27119
27120	// Endpoint: Endpoint to which gRPC notifications are sent. This must be
27121	// a valid gRPCLB DNS name.
27122	Endpoint string `json:"endpoint,omitempty"`
27123
27124	// PayloadName: Optional. If specified, this field is used to populate
27125	// the "name" field in gRPC requests.
27126	PayloadName string `json:"payloadName,omitempty"`
27127
27128	// ResendInterval: Optional. This field is used to configure how often
27129	// to send a full update of all non-healthy backends. If unspecified,
27130	// full updates are not sent. If specified, must be in the range between
27131	// 600 seconds to 3600 seconds. Nanos are disallowed.
27132	ResendInterval *Duration `json:"resendInterval,omitempty"`
27133
27134	// RetryDurationSec: How much time (in seconds) is spent attempting
27135	// notification retries until a successful response is received. Default
27136	// is 30s. Limit is 20m (1200s). Must be a positive number.
27137	RetryDurationSec int64 `json:"retryDurationSec,omitempty"`
27138
27139	// ForceSendFields is a list of field names (e.g. "Authority") to
27140	// unconditionally include in API requests. By default, fields with
27141	// empty values are omitted from API requests. However, any non-pointer,
27142	// non-interface field appearing in ForceSendFields will be sent to the
27143	// server regardless of whether the field is empty or not. This may be
27144	// used to include empty fields in Patch requests.
27145	ForceSendFields []string `json:"-"`
27146
27147	// NullFields is a list of field names (e.g. "Authority") to include in
27148	// API requests with the JSON null value. By default, fields with empty
27149	// values are omitted from API requests. However, any field with an
27150	// empty value appearing in NullFields will be sent to the server as
27151	// null. It is an error if a field in this list has a non-empty value.
27152	// This may be used to include null fields in Patch requests.
27153	NullFields []string `json:"-"`
27154}
27155
27156func (s *NotificationEndpointGrpcSettings) MarshalJSON() ([]byte, error) {
27157	type NoMethod NotificationEndpointGrpcSettings
27158	raw := NoMethod(*s)
27159	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27160}
27161
27162type NotificationEndpointList struct {
27163	// Id: [Output Only] Unique identifier for the resource; defined by the
27164	// server.
27165	Id string `json:"id,omitempty"`
27166
27167	// Items: A list of NotificationEndpoint resources.
27168	Items []*NotificationEndpoint `json:"items,omitempty"`
27169
27170	// Kind: [Output Only] Type of the resource. Always
27171	// compute#notificationEndpoint for notification endpoints.
27172	Kind string `json:"kind,omitempty"`
27173
27174	// NextPageToken: [Output Only] This token allows you to get the next
27175	// page of results for list requests. If the number of results is larger
27176	// than maxResults, use the nextPageToken as a value for the query
27177	// parameter pageToken in the next list request. Subsequent list
27178	// requests will have their own nextPageToken to continue paging through
27179	// the results.
27180	NextPageToken string `json:"nextPageToken,omitempty"`
27181
27182	// SelfLink: [Output Only] Server-defined URL for this resource.
27183	SelfLink string `json:"selfLink,omitempty"`
27184
27185	// Warning: [Output Only] Informational warning message.
27186	Warning *NotificationEndpointListWarning `json:"warning,omitempty"`
27187
27188	// ServerResponse contains the HTTP response code and headers from the
27189	// server.
27190	googleapi.ServerResponse `json:"-"`
27191
27192	// ForceSendFields is a list of field names (e.g. "Id") to
27193	// unconditionally include in API requests. By default, fields with
27194	// empty values are omitted from API requests. However, any non-pointer,
27195	// non-interface field appearing in ForceSendFields will be sent to the
27196	// server regardless of whether the field is empty or not. This may be
27197	// used to include empty fields in Patch requests.
27198	ForceSendFields []string `json:"-"`
27199
27200	// NullFields is a list of field names (e.g. "Id") to include in API
27201	// requests with the JSON null value. By default, fields with empty
27202	// values are omitted from API requests. However, any field with an
27203	// empty value appearing in NullFields will be sent to the server as
27204	// null. It is an error if a field in this list has a non-empty value.
27205	// This may be used to include null fields in Patch requests.
27206	NullFields []string `json:"-"`
27207}
27208
27209func (s *NotificationEndpointList) MarshalJSON() ([]byte, error) {
27210	type NoMethod NotificationEndpointList
27211	raw := NoMethod(*s)
27212	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27213}
27214
27215// NotificationEndpointListWarning: [Output Only] Informational warning
27216// message.
27217type NotificationEndpointListWarning struct {
27218	// Code: [Output Only] A warning code, if applicable. For example,
27219	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27220	// the response.
27221	//
27222	// Possible values:
27223	//   "CLEANUP_FAILED"
27224	//   "DEPRECATED_RESOURCE_USED"
27225	//   "DEPRECATED_TYPE_USED"
27226	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27227	//   "EXPERIMENTAL_TYPE_USED"
27228	//   "EXTERNAL_API_WARNING"
27229	//   "FIELD_VALUE_OVERRIDEN"
27230	//   "INJECTED_KERNELS_DEPRECATED"
27231	//   "MISSING_TYPE_DEPENDENCY"
27232	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27233	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27234	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27235	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27236	//   "NEXT_HOP_NOT_RUNNING"
27237	//   "NOT_CRITICAL_ERROR"
27238	//   "NO_RESULTS_ON_PAGE"
27239	//   "REQUIRED_TOS_AGREEMENT"
27240	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27241	//   "RESOURCE_NOT_DELETED"
27242	//   "SCHEMA_VALIDATION_IGNORED"
27243	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27244	//   "UNDECLARED_PROPERTIES"
27245	//   "UNREACHABLE"
27246	Code string `json:"code,omitempty"`
27247
27248	// Data: [Output Only] Metadata about this warning in key: value format.
27249	// For example:
27250	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27251	Data []*NotificationEndpointListWarningData `json:"data,omitempty"`
27252
27253	// Message: [Output Only] A human-readable description of the warning
27254	// code.
27255	Message string `json:"message,omitempty"`
27256
27257	// ForceSendFields is a list of field names (e.g. "Code") to
27258	// unconditionally include in API requests. By default, fields with
27259	// empty values are omitted from API requests. However, any non-pointer,
27260	// non-interface field appearing in ForceSendFields will be sent to the
27261	// server regardless of whether the field is empty or not. This may be
27262	// used to include empty fields in Patch requests.
27263	ForceSendFields []string `json:"-"`
27264
27265	// NullFields is a list of field names (e.g. "Code") to include in API
27266	// requests with the JSON null value. By default, fields with empty
27267	// values are omitted from API requests. However, any field with an
27268	// empty value appearing in NullFields will be sent to the server as
27269	// null. It is an error if a field in this list has a non-empty value.
27270	// This may be used to include null fields in Patch requests.
27271	NullFields []string `json:"-"`
27272}
27273
27274func (s *NotificationEndpointListWarning) MarshalJSON() ([]byte, error) {
27275	type NoMethod NotificationEndpointListWarning
27276	raw := NoMethod(*s)
27277	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27278}
27279
27280type NotificationEndpointListWarningData struct {
27281	// Key: [Output Only] A key that provides more detail on the warning
27282	// being returned. For example, for warnings where there are no results
27283	// in a list request for a particular zone, this key might be scope and
27284	// the key value might be the zone name. Other examples might be a key
27285	// indicating a deprecated resource and a suggested replacement, or a
27286	// warning about invalid network settings (for example, if an instance
27287	// attempts to perform IP forwarding but is not enabled for IP
27288	// forwarding).
27289	Key string `json:"key,omitempty"`
27290
27291	// Value: [Output Only] A warning data value corresponding to the key.
27292	Value string `json:"value,omitempty"`
27293
27294	// ForceSendFields is a list of field names (e.g. "Key") to
27295	// unconditionally include in API requests. By default, fields with
27296	// empty values are omitted from API requests. However, any non-pointer,
27297	// non-interface field appearing in ForceSendFields will be sent to the
27298	// server regardless of whether the field is empty or not. This may be
27299	// used to include empty fields in Patch requests.
27300	ForceSendFields []string `json:"-"`
27301
27302	// NullFields is a list of field names (e.g. "Key") to include in API
27303	// requests with the JSON null value. By default, fields with empty
27304	// values are omitted from API requests. However, any field with an
27305	// empty value appearing in NullFields will be sent to the server as
27306	// null. It is an error if a field in this list has a non-empty value.
27307	// This may be used to include null fields in Patch requests.
27308	NullFields []string `json:"-"`
27309}
27310
27311func (s *NotificationEndpointListWarningData) MarshalJSON() ([]byte, error) {
27312	type NoMethod NotificationEndpointListWarningData
27313	raw := NoMethod(*s)
27314	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27315}
27316
27317// Operation: Represents an Operation resource.
27318//
27319// Google Compute Engine has three Operation resources:
27320//
27321// * [Global](/compute/docs/reference/rest/latest/globalOperations) *
27322// [Regional](/compute/docs/reference/rest/latest/regionOperations) *
27323// [Zonal](/compute/docs/reference/rest/latest/zoneOperations)
27324//
27325// You can use an operation resource to manage asynchronous API
27326// requests. For more information, read Handling API
27327// responses.
27328//
27329// Operations can be global, regional or zonal.
27330// - For global operations, use the globalOperations resource.
27331// - For regional operations, use the regionOperations resource.
27332// - For zonal operations, use the zonalOperations resource.
27333//
27334// For more information, read  Global, Regional, and Zonal Resources.
27335// (== resource_for {$api_version}.globalOperations ==) (== resource_for
27336// {$api_version}.regionOperations ==) (== resource_for
27337// {$api_version}.zoneOperations ==)
27338type Operation struct {
27339	// ClientOperationId: [Output Only] The value of `requestId` if you
27340	// provided it in the request. Not present otherwise.
27341	ClientOperationId string `json:"clientOperationId,omitempty"`
27342
27343	// CreationTimestamp: [Deprecated] This field is deprecated.
27344	CreationTimestamp string `json:"creationTimestamp,omitempty"`
27345
27346	// Description: [Output Only] A textual description of the operation,
27347	// which is set when the operation is created.
27348	Description string `json:"description,omitempty"`
27349
27350	// EndTime: [Output Only] The time that this operation was completed.
27351	// This value is in RFC3339 text format.
27352	EndTime string `json:"endTime,omitempty"`
27353
27354	// Error: [Output Only] If errors are generated during processing of the
27355	// operation, this field will be populated.
27356	Error *OperationError `json:"error,omitempty"`
27357
27358	// HttpErrorMessage: [Output Only] If the operation fails, this field
27359	// contains the HTTP error message that was returned, such as NOT FOUND.
27360	HttpErrorMessage string `json:"httpErrorMessage,omitempty"`
27361
27362	// HttpErrorStatusCode: [Output Only] If the operation fails, this field
27363	// contains the HTTP error status code that was returned. For example, a
27364	// 404 means the resource was not found.
27365	HttpErrorStatusCode int64 `json:"httpErrorStatusCode,omitempty"`
27366
27367	// Id: [Output Only] The unique identifier for the operation. This
27368	// identifier is defined by the server.
27369	Id uint64 `json:"id,omitempty,string"`
27370
27371	// InsertTime: [Output Only] The time that this operation was requested.
27372	// This value is in RFC3339 text format.
27373	InsertTime string `json:"insertTime,omitempty"`
27374
27375	// Kind: [Output Only] Type of the resource. Always compute#operation
27376	// for Operation resources.
27377	Kind string `json:"kind,omitempty"`
27378
27379	// Name: [Output Only] Name of the operation.
27380	Name string `json:"name,omitempty"`
27381
27382	// OperationType: [Output Only] The type of operation, such as insert,
27383	// update, or delete, and so on.
27384	OperationType string `json:"operationType,omitempty"`
27385
27386	// Progress: [Output Only] An optional progress indicator that ranges
27387	// from 0 to 100. There is no requirement that this be linear or support
27388	// any granularity of operations. This should not be used to guess when
27389	// the operation will be complete. This number should monotonically
27390	// increase as the operation progresses.
27391	Progress int64 `json:"progress,omitempty"`
27392
27393	// Region: [Output Only] The URL of the region where the operation
27394	// resides. Only applicable when performing regional operations.
27395	Region string `json:"region,omitempty"`
27396
27397	// SelfLink: [Output Only] Server-defined URL for the resource.
27398	SelfLink string `json:"selfLink,omitempty"`
27399
27400	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
27401	// with the resource id.
27402	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
27403
27404	// StartTime: [Output Only] The time that this operation was started by
27405	// the server. This value is in RFC3339 text format.
27406	StartTime string `json:"startTime,omitempty"`
27407
27408	// Status: [Output Only] The status of the operation, which can be one
27409	// of the following: PENDING, RUNNING, or DONE.
27410	//
27411	// Possible values:
27412	//   "DONE"
27413	//   "PENDING"
27414	//   "RUNNING"
27415	Status string `json:"status,omitempty"`
27416
27417	// StatusMessage: [Output Only] An optional textual description of the
27418	// current status of the operation.
27419	StatusMessage string `json:"statusMessage,omitempty"`
27420
27421	// TargetId: [Output Only] The unique target ID, which identifies a
27422	// specific incarnation of the target resource.
27423	TargetId uint64 `json:"targetId,omitempty,string"`
27424
27425	// TargetLink: [Output Only] The URL of the resource that the operation
27426	// modifies. For operations related to creating a snapshot, this points
27427	// to the persistent disk that the snapshot was created from.
27428	TargetLink string `json:"targetLink,omitempty"`
27429
27430	// User: [Output Only] User who requested the operation, for example:
27431	// user@example.com.
27432	User string `json:"user,omitempty"`
27433
27434	// Warnings: [Output Only] If warning messages are generated during
27435	// processing of the operation, this field will be populated.
27436	Warnings []*OperationWarnings `json:"warnings,omitempty"`
27437
27438	// Zone: [Output Only] The URL of the zone where the operation resides.
27439	// Only applicable when performing per-zone operations.
27440	Zone string `json:"zone,omitempty"`
27441
27442	// ServerResponse contains the HTTP response code and headers from the
27443	// server.
27444	googleapi.ServerResponse `json:"-"`
27445
27446	// ForceSendFields is a list of field names (e.g. "ClientOperationId")
27447	// to unconditionally include in API requests. By default, fields with
27448	// empty values are omitted from API requests. However, any non-pointer,
27449	// non-interface field appearing in ForceSendFields will be sent to the
27450	// server regardless of whether the field is empty or not. This may be
27451	// used to include empty fields in Patch requests.
27452	ForceSendFields []string `json:"-"`
27453
27454	// NullFields is a list of field names (e.g. "ClientOperationId") to
27455	// include in API requests with the JSON null value. By default, fields
27456	// with empty values are omitted from API requests. However, any field
27457	// with an empty value appearing in NullFields will be sent to the
27458	// server as null. It is an error if a field in this list has a
27459	// non-empty value. This may be used to include null fields in Patch
27460	// requests.
27461	NullFields []string `json:"-"`
27462}
27463
27464func (s *Operation) MarshalJSON() ([]byte, error) {
27465	type NoMethod Operation
27466	raw := NoMethod(*s)
27467	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27468}
27469
27470// OperationError: [Output Only] If errors are generated during
27471// processing of the operation, this field will be populated.
27472type OperationError struct {
27473	// Errors: [Output Only] The array of errors encountered while
27474	// processing this operation.
27475	Errors []*OperationErrorErrors `json:"errors,omitempty"`
27476
27477	// ForceSendFields is a list of field names (e.g. "Errors") to
27478	// unconditionally include in API requests. By default, fields with
27479	// empty values are omitted from API requests. However, any non-pointer,
27480	// non-interface field appearing in ForceSendFields will be sent to the
27481	// server regardless of whether the field is empty or not. This may be
27482	// used to include empty fields in Patch requests.
27483	ForceSendFields []string `json:"-"`
27484
27485	// NullFields is a list of field names (e.g. "Errors") to include in API
27486	// requests with the JSON null value. By default, fields with empty
27487	// values are omitted from API requests. However, any field with an
27488	// empty value appearing in NullFields will be sent to the server as
27489	// null. It is an error if a field in this list has a non-empty value.
27490	// This may be used to include null fields in Patch requests.
27491	NullFields []string `json:"-"`
27492}
27493
27494func (s *OperationError) MarshalJSON() ([]byte, error) {
27495	type NoMethod OperationError
27496	raw := NoMethod(*s)
27497	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27498}
27499
27500type OperationErrorErrors struct {
27501	// Code: [Output Only] The error type identifier for this error.
27502	Code string `json:"code,omitempty"`
27503
27504	// Location: [Output Only] Indicates the field in the request that
27505	// caused the error. This property is optional.
27506	Location string `json:"location,omitempty"`
27507
27508	// Message: [Output Only] An optional, human-readable error message.
27509	Message string `json:"message,omitempty"`
27510
27511	// ForceSendFields is a list of field names (e.g. "Code") to
27512	// unconditionally include in API requests. By default, fields with
27513	// empty values are omitted from API requests. However, any non-pointer,
27514	// non-interface field appearing in ForceSendFields will be sent to the
27515	// server regardless of whether the field is empty or not. This may be
27516	// used to include empty fields in Patch requests.
27517	ForceSendFields []string `json:"-"`
27518
27519	// NullFields is a list of field names (e.g. "Code") to include in API
27520	// requests with the JSON null value. By default, fields with empty
27521	// values are omitted from API requests. However, any field with an
27522	// empty value appearing in NullFields will be sent to the server as
27523	// null. It is an error if a field in this list has a non-empty value.
27524	// This may be used to include null fields in Patch requests.
27525	NullFields []string `json:"-"`
27526}
27527
27528func (s *OperationErrorErrors) MarshalJSON() ([]byte, error) {
27529	type NoMethod OperationErrorErrors
27530	raw := NoMethod(*s)
27531	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27532}
27533
27534type OperationWarnings struct {
27535	// Code: [Output Only] A warning code, if applicable. For example,
27536	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27537	// the response.
27538	//
27539	// Possible values:
27540	//   "CLEANUP_FAILED"
27541	//   "DEPRECATED_RESOURCE_USED"
27542	//   "DEPRECATED_TYPE_USED"
27543	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27544	//   "EXPERIMENTAL_TYPE_USED"
27545	//   "EXTERNAL_API_WARNING"
27546	//   "FIELD_VALUE_OVERRIDEN"
27547	//   "INJECTED_KERNELS_DEPRECATED"
27548	//   "MISSING_TYPE_DEPENDENCY"
27549	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27550	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27551	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27552	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27553	//   "NEXT_HOP_NOT_RUNNING"
27554	//   "NOT_CRITICAL_ERROR"
27555	//   "NO_RESULTS_ON_PAGE"
27556	//   "REQUIRED_TOS_AGREEMENT"
27557	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27558	//   "RESOURCE_NOT_DELETED"
27559	//   "SCHEMA_VALIDATION_IGNORED"
27560	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27561	//   "UNDECLARED_PROPERTIES"
27562	//   "UNREACHABLE"
27563	Code string `json:"code,omitempty"`
27564
27565	// Data: [Output Only] Metadata about this warning in key: value format.
27566	// For example:
27567	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27568	Data []*OperationWarningsData `json:"data,omitempty"`
27569
27570	// Message: [Output Only] A human-readable description of the warning
27571	// code.
27572	Message string `json:"message,omitempty"`
27573
27574	// ForceSendFields is a list of field names (e.g. "Code") to
27575	// unconditionally include in API requests. By default, fields with
27576	// empty values are omitted from API requests. However, any non-pointer,
27577	// non-interface field appearing in ForceSendFields will be sent to the
27578	// server regardless of whether the field is empty or not. This may be
27579	// used to include empty fields in Patch requests.
27580	ForceSendFields []string `json:"-"`
27581
27582	// NullFields is a list of field names (e.g. "Code") to include in API
27583	// requests with the JSON null value. By default, fields with empty
27584	// values are omitted from API requests. However, any field with an
27585	// empty value appearing in NullFields will be sent to the server as
27586	// null. It is an error if a field in this list has a non-empty value.
27587	// This may be used to include null fields in Patch requests.
27588	NullFields []string `json:"-"`
27589}
27590
27591func (s *OperationWarnings) MarshalJSON() ([]byte, error) {
27592	type NoMethod OperationWarnings
27593	raw := NoMethod(*s)
27594	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27595}
27596
27597type OperationWarningsData struct {
27598	// Key: [Output Only] A key that provides more detail on the warning
27599	// being returned. For example, for warnings where there are no results
27600	// in a list request for a particular zone, this key might be scope and
27601	// the key value might be the zone name. Other examples might be a key
27602	// indicating a deprecated resource and a suggested replacement, or a
27603	// warning about invalid network settings (for example, if an instance
27604	// attempts to perform IP forwarding but is not enabled for IP
27605	// forwarding).
27606	Key string `json:"key,omitempty"`
27607
27608	// Value: [Output Only] A warning data value corresponding to the key.
27609	Value string `json:"value,omitempty"`
27610
27611	// ForceSendFields is a list of field names (e.g. "Key") to
27612	// unconditionally include in API requests. By default, fields with
27613	// empty values are omitted from API requests. However, any non-pointer,
27614	// non-interface field appearing in ForceSendFields will be sent to the
27615	// server regardless of whether the field is empty or not. This may be
27616	// used to include empty fields in Patch requests.
27617	ForceSendFields []string `json:"-"`
27618
27619	// NullFields is a list of field names (e.g. "Key") to include in API
27620	// requests with the JSON null value. By default, fields with empty
27621	// values are omitted from API requests. However, any field with an
27622	// empty value appearing in NullFields will be sent to the server as
27623	// null. It is an error if a field in this list has a non-empty value.
27624	// This may be used to include null fields in Patch requests.
27625	NullFields []string `json:"-"`
27626}
27627
27628func (s *OperationWarningsData) MarshalJSON() ([]byte, error) {
27629	type NoMethod OperationWarningsData
27630	raw := NoMethod(*s)
27631	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27632}
27633
27634type OperationAggregatedList struct {
27635	// Id: [Output Only] The unique identifier for the resource. This
27636	// identifier is defined by the server.
27637	Id string `json:"id,omitempty"`
27638
27639	// Items: [Output Only] A map of scoped operation lists.
27640	Items map[string]OperationsScopedList `json:"items,omitempty"`
27641
27642	// Kind: [Output Only] Type of resource. Always
27643	// compute#operationAggregatedList for aggregated lists of operations.
27644	Kind string `json:"kind,omitempty"`
27645
27646	// NextPageToken: [Output Only] This token allows you to get the next
27647	// page of results for list requests. If the number of results is larger
27648	// than maxResults, use the nextPageToken as a value for the query
27649	// parameter pageToken in the next list request. Subsequent list
27650	// requests will have their own nextPageToken to continue paging through
27651	// the results.
27652	NextPageToken string `json:"nextPageToken,omitempty"`
27653
27654	// SelfLink: [Output Only] Server-defined URL for this resource.
27655	SelfLink string `json:"selfLink,omitempty"`
27656
27657	// Warning: [Output Only] Informational warning message.
27658	Warning *OperationAggregatedListWarning `json:"warning,omitempty"`
27659
27660	// ServerResponse contains the HTTP response code and headers from the
27661	// server.
27662	googleapi.ServerResponse `json:"-"`
27663
27664	// ForceSendFields is a list of field names (e.g. "Id") to
27665	// unconditionally include in API requests. By default, fields with
27666	// empty values are omitted from API requests. However, any non-pointer,
27667	// non-interface field appearing in ForceSendFields will be sent to the
27668	// server regardless of whether the field is empty or not. This may be
27669	// used to include empty fields in Patch requests.
27670	ForceSendFields []string `json:"-"`
27671
27672	// NullFields is a list of field names (e.g. "Id") to include in API
27673	// requests with the JSON null value. By default, fields with empty
27674	// values are omitted from API requests. However, any field with an
27675	// empty value appearing in NullFields will be sent to the server as
27676	// null. It is an error if a field in this list has a non-empty value.
27677	// This may be used to include null fields in Patch requests.
27678	NullFields []string `json:"-"`
27679}
27680
27681func (s *OperationAggregatedList) MarshalJSON() ([]byte, error) {
27682	type NoMethod OperationAggregatedList
27683	raw := NoMethod(*s)
27684	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27685}
27686
27687// OperationAggregatedListWarning: [Output Only] Informational warning
27688// message.
27689type OperationAggregatedListWarning struct {
27690	// Code: [Output Only] A warning code, if applicable. For example,
27691	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27692	// the response.
27693	//
27694	// Possible values:
27695	//   "CLEANUP_FAILED"
27696	//   "DEPRECATED_RESOURCE_USED"
27697	//   "DEPRECATED_TYPE_USED"
27698	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27699	//   "EXPERIMENTAL_TYPE_USED"
27700	//   "EXTERNAL_API_WARNING"
27701	//   "FIELD_VALUE_OVERRIDEN"
27702	//   "INJECTED_KERNELS_DEPRECATED"
27703	//   "MISSING_TYPE_DEPENDENCY"
27704	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27705	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27706	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27707	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27708	//   "NEXT_HOP_NOT_RUNNING"
27709	//   "NOT_CRITICAL_ERROR"
27710	//   "NO_RESULTS_ON_PAGE"
27711	//   "REQUIRED_TOS_AGREEMENT"
27712	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27713	//   "RESOURCE_NOT_DELETED"
27714	//   "SCHEMA_VALIDATION_IGNORED"
27715	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27716	//   "UNDECLARED_PROPERTIES"
27717	//   "UNREACHABLE"
27718	Code string `json:"code,omitempty"`
27719
27720	// Data: [Output Only] Metadata about this warning in key: value format.
27721	// For example:
27722	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27723	Data []*OperationAggregatedListWarningData `json:"data,omitempty"`
27724
27725	// Message: [Output Only] A human-readable description of the warning
27726	// code.
27727	Message string `json:"message,omitempty"`
27728
27729	// ForceSendFields is a list of field names (e.g. "Code") to
27730	// unconditionally include in API requests. By default, fields with
27731	// empty values are omitted from API requests. However, any non-pointer,
27732	// non-interface field appearing in ForceSendFields will be sent to the
27733	// server regardless of whether the field is empty or not. This may be
27734	// used to include empty fields in Patch requests.
27735	ForceSendFields []string `json:"-"`
27736
27737	// NullFields is a list of field names (e.g. "Code") to include in API
27738	// requests with the JSON null value. By default, fields with empty
27739	// values are omitted from API requests. However, any field with an
27740	// empty value appearing in NullFields will be sent to the server as
27741	// null. It is an error if a field in this list has a non-empty value.
27742	// This may be used to include null fields in Patch requests.
27743	NullFields []string `json:"-"`
27744}
27745
27746func (s *OperationAggregatedListWarning) MarshalJSON() ([]byte, error) {
27747	type NoMethod OperationAggregatedListWarning
27748	raw := NoMethod(*s)
27749	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27750}
27751
27752type OperationAggregatedListWarningData struct {
27753	// Key: [Output Only] A key that provides more detail on the warning
27754	// being returned. For example, for warnings where there are no results
27755	// in a list request for a particular zone, this key might be scope and
27756	// the key value might be the zone name. Other examples might be a key
27757	// indicating a deprecated resource and a suggested replacement, or a
27758	// warning about invalid network settings (for example, if an instance
27759	// attempts to perform IP forwarding but is not enabled for IP
27760	// forwarding).
27761	Key string `json:"key,omitempty"`
27762
27763	// Value: [Output Only] A warning data value corresponding to the key.
27764	Value string `json:"value,omitempty"`
27765
27766	// ForceSendFields is a list of field names (e.g. "Key") to
27767	// unconditionally include in API requests. By default, fields with
27768	// empty values are omitted from API requests. However, any non-pointer,
27769	// non-interface field appearing in ForceSendFields will be sent to the
27770	// server regardless of whether the field is empty or not. This may be
27771	// used to include empty fields in Patch requests.
27772	ForceSendFields []string `json:"-"`
27773
27774	// NullFields is a list of field names (e.g. "Key") to include in API
27775	// requests with the JSON null value. By default, fields with empty
27776	// values are omitted from API requests. However, any field with an
27777	// empty value appearing in NullFields will be sent to the server as
27778	// null. It is an error if a field in this list has a non-empty value.
27779	// This may be used to include null fields in Patch requests.
27780	NullFields []string `json:"-"`
27781}
27782
27783func (s *OperationAggregatedListWarningData) MarshalJSON() ([]byte, error) {
27784	type NoMethod OperationAggregatedListWarningData
27785	raw := NoMethod(*s)
27786	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27787}
27788
27789// OperationList: Contains a list of Operation resources.
27790type OperationList struct {
27791	// Id: [Output Only] The unique identifier for the resource. This
27792	// identifier is defined by the server.
27793	Id string `json:"id,omitempty"`
27794
27795	// Items: [Output Only] A list of Operation resources.
27796	Items []*Operation `json:"items,omitempty"`
27797
27798	// Kind: [Output Only] Type of resource. Always compute#operations for
27799	// Operations resource.
27800	Kind string `json:"kind,omitempty"`
27801
27802	// NextPageToken: [Output Only] This token allows you to get the next
27803	// page of results for list requests. If the number of results is larger
27804	// than maxResults, use the nextPageToken as a value for the query
27805	// parameter pageToken in the next list request. Subsequent list
27806	// requests will have their own nextPageToken to continue paging through
27807	// the results.
27808	NextPageToken string `json:"nextPageToken,omitempty"`
27809
27810	// SelfLink: [Output Only] Server-defined URL for this resource.
27811	SelfLink string `json:"selfLink,omitempty"`
27812
27813	// Warning: [Output Only] Informational warning message.
27814	Warning *OperationListWarning `json:"warning,omitempty"`
27815
27816	// ServerResponse contains the HTTP response code and headers from the
27817	// server.
27818	googleapi.ServerResponse `json:"-"`
27819
27820	// ForceSendFields is a list of field names (e.g. "Id") to
27821	// unconditionally include in API requests. By default, fields with
27822	// empty values are omitted from API requests. However, any non-pointer,
27823	// non-interface field appearing in ForceSendFields will be sent to the
27824	// server regardless of whether the field is empty or not. This may be
27825	// used to include empty fields in Patch requests.
27826	ForceSendFields []string `json:"-"`
27827
27828	// NullFields is a list of field names (e.g. "Id") to include in API
27829	// requests with the JSON null value. By default, fields with empty
27830	// values are omitted from API requests. However, any field with an
27831	// empty value appearing in NullFields will be sent to the server as
27832	// null. It is an error if a field in this list has a non-empty value.
27833	// This may be used to include null fields in Patch requests.
27834	NullFields []string `json:"-"`
27835}
27836
27837func (s *OperationList) MarshalJSON() ([]byte, error) {
27838	type NoMethod OperationList
27839	raw := NoMethod(*s)
27840	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27841}
27842
27843// OperationListWarning: [Output Only] Informational warning message.
27844type OperationListWarning struct {
27845	// Code: [Output Only] A warning code, if applicable. For example,
27846	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27847	// the response.
27848	//
27849	// Possible values:
27850	//   "CLEANUP_FAILED"
27851	//   "DEPRECATED_RESOURCE_USED"
27852	//   "DEPRECATED_TYPE_USED"
27853	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27854	//   "EXPERIMENTAL_TYPE_USED"
27855	//   "EXTERNAL_API_WARNING"
27856	//   "FIELD_VALUE_OVERRIDEN"
27857	//   "INJECTED_KERNELS_DEPRECATED"
27858	//   "MISSING_TYPE_DEPENDENCY"
27859	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27860	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27861	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27862	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27863	//   "NEXT_HOP_NOT_RUNNING"
27864	//   "NOT_CRITICAL_ERROR"
27865	//   "NO_RESULTS_ON_PAGE"
27866	//   "REQUIRED_TOS_AGREEMENT"
27867	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27868	//   "RESOURCE_NOT_DELETED"
27869	//   "SCHEMA_VALIDATION_IGNORED"
27870	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27871	//   "UNDECLARED_PROPERTIES"
27872	//   "UNREACHABLE"
27873	Code string `json:"code,omitempty"`
27874
27875	// Data: [Output Only] Metadata about this warning in key: value format.
27876	// For example:
27877	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27878	Data []*OperationListWarningData `json:"data,omitempty"`
27879
27880	// Message: [Output Only] A human-readable description of the warning
27881	// code.
27882	Message string `json:"message,omitempty"`
27883
27884	// ForceSendFields is a list of field names (e.g. "Code") to
27885	// unconditionally include in API requests. By default, fields with
27886	// empty values are omitted from API requests. However, any non-pointer,
27887	// non-interface field appearing in ForceSendFields will be sent to the
27888	// server regardless of whether the field is empty or not. This may be
27889	// used to include empty fields in Patch requests.
27890	ForceSendFields []string `json:"-"`
27891
27892	// NullFields is a list of field names (e.g. "Code") to include in API
27893	// requests with the JSON null value. By default, fields with empty
27894	// values are omitted from API requests. However, any field with an
27895	// empty value appearing in NullFields will be sent to the server as
27896	// null. It is an error if a field in this list has a non-empty value.
27897	// This may be used to include null fields in Patch requests.
27898	NullFields []string `json:"-"`
27899}
27900
27901func (s *OperationListWarning) MarshalJSON() ([]byte, error) {
27902	type NoMethod OperationListWarning
27903	raw := NoMethod(*s)
27904	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27905}
27906
27907type OperationListWarningData struct {
27908	// Key: [Output Only] A key that provides more detail on the warning
27909	// being returned. For example, for warnings where there are no results
27910	// in a list request for a particular zone, this key might be scope and
27911	// the key value might be the zone name. Other examples might be a key
27912	// indicating a deprecated resource and a suggested replacement, or a
27913	// warning about invalid network settings (for example, if an instance
27914	// attempts to perform IP forwarding but is not enabled for IP
27915	// forwarding).
27916	Key string `json:"key,omitempty"`
27917
27918	// Value: [Output Only] A warning data value corresponding to the key.
27919	Value string `json:"value,omitempty"`
27920
27921	// ForceSendFields is a list of field names (e.g. "Key") to
27922	// unconditionally include in API requests. By default, fields with
27923	// empty values are omitted from API requests. However, any non-pointer,
27924	// non-interface field appearing in ForceSendFields will be sent to the
27925	// server regardless of whether the field is empty or not. This may be
27926	// used to include empty fields in Patch requests.
27927	ForceSendFields []string `json:"-"`
27928
27929	// NullFields is a list of field names (e.g. "Key") to include in API
27930	// requests with the JSON null value. By default, fields with empty
27931	// values are omitted from API requests. However, any field with an
27932	// empty value appearing in NullFields will be sent to the server as
27933	// null. It is an error if a field in this list has a non-empty value.
27934	// This may be used to include null fields in Patch requests.
27935	NullFields []string `json:"-"`
27936}
27937
27938func (s *OperationListWarningData) MarshalJSON() ([]byte, error) {
27939	type NoMethod OperationListWarningData
27940	raw := NoMethod(*s)
27941	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27942}
27943
27944type OperationsScopedList struct {
27945	// Operations: [Output Only] A list of operations contained in this
27946	// scope.
27947	Operations []*Operation `json:"operations,omitempty"`
27948
27949	// Warning: [Output Only] Informational warning which replaces the list
27950	// of operations when the list is empty.
27951	Warning *OperationsScopedListWarning `json:"warning,omitempty"`
27952
27953	// ForceSendFields is a list of field names (e.g. "Operations") to
27954	// unconditionally include in API requests. By default, fields with
27955	// empty values are omitted from API requests. However, any non-pointer,
27956	// non-interface field appearing in ForceSendFields will be sent to the
27957	// server regardless of whether the field is empty or not. This may be
27958	// used to include empty fields in Patch requests.
27959	ForceSendFields []string `json:"-"`
27960
27961	// NullFields is a list of field names (e.g. "Operations") to include in
27962	// API requests with the JSON null value. By default, fields with empty
27963	// values are omitted from API requests. However, any field with an
27964	// empty value appearing in NullFields will be sent to the server as
27965	// null. It is an error if a field in this list has a non-empty value.
27966	// This may be used to include null fields in Patch requests.
27967	NullFields []string `json:"-"`
27968}
27969
27970func (s *OperationsScopedList) MarshalJSON() ([]byte, error) {
27971	type NoMethod OperationsScopedList
27972	raw := NoMethod(*s)
27973	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27974}
27975
27976// OperationsScopedListWarning: [Output Only] Informational warning
27977// which replaces the list of operations when the list is empty.
27978type OperationsScopedListWarning struct {
27979	// Code: [Output Only] A warning code, if applicable. For example,
27980	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27981	// the response.
27982	//
27983	// Possible values:
27984	//   "CLEANUP_FAILED"
27985	//   "DEPRECATED_RESOURCE_USED"
27986	//   "DEPRECATED_TYPE_USED"
27987	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27988	//   "EXPERIMENTAL_TYPE_USED"
27989	//   "EXTERNAL_API_WARNING"
27990	//   "FIELD_VALUE_OVERRIDEN"
27991	//   "INJECTED_KERNELS_DEPRECATED"
27992	//   "MISSING_TYPE_DEPENDENCY"
27993	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27994	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27995	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27996	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27997	//   "NEXT_HOP_NOT_RUNNING"
27998	//   "NOT_CRITICAL_ERROR"
27999	//   "NO_RESULTS_ON_PAGE"
28000	//   "REQUIRED_TOS_AGREEMENT"
28001	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28002	//   "RESOURCE_NOT_DELETED"
28003	//   "SCHEMA_VALIDATION_IGNORED"
28004	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28005	//   "UNDECLARED_PROPERTIES"
28006	//   "UNREACHABLE"
28007	Code string `json:"code,omitempty"`
28008
28009	// Data: [Output Only] Metadata about this warning in key: value format.
28010	// For example:
28011	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28012	Data []*OperationsScopedListWarningData `json:"data,omitempty"`
28013
28014	// Message: [Output Only] A human-readable description of the warning
28015	// code.
28016	Message string `json:"message,omitempty"`
28017
28018	// ForceSendFields is a list of field names (e.g. "Code") to
28019	// unconditionally include in API requests. By default, fields with
28020	// empty values are omitted from API requests. However, any non-pointer,
28021	// non-interface field appearing in ForceSendFields will be sent to the
28022	// server regardless of whether the field is empty or not. This may be
28023	// used to include empty fields in Patch requests.
28024	ForceSendFields []string `json:"-"`
28025
28026	// NullFields is a list of field names (e.g. "Code") to include in API
28027	// requests with the JSON null value. By default, fields with empty
28028	// values are omitted from API requests. However, any field with an
28029	// empty value appearing in NullFields will be sent to the server as
28030	// null. It is an error if a field in this list has a non-empty value.
28031	// This may be used to include null fields in Patch requests.
28032	NullFields []string `json:"-"`
28033}
28034
28035func (s *OperationsScopedListWarning) MarshalJSON() ([]byte, error) {
28036	type NoMethod OperationsScopedListWarning
28037	raw := NoMethod(*s)
28038	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28039}
28040
28041type OperationsScopedListWarningData struct {
28042	// Key: [Output Only] A key that provides more detail on the warning
28043	// being returned. For example, for warnings where there are no results
28044	// in a list request for a particular zone, this key might be scope and
28045	// the key value might be the zone name. Other examples might be a key
28046	// indicating a deprecated resource and a suggested replacement, or a
28047	// warning about invalid network settings (for example, if an instance
28048	// attempts to perform IP forwarding but is not enabled for IP
28049	// forwarding).
28050	Key string `json:"key,omitempty"`
28051
28052	// Value: [Output Only] A warning data value corresponding to the key.
28053	Value string `json:"value,omitempty"`
28054
28055	// ForceSendFields is a list of field names (e.g. "Key") to
28056	// unconditionally include in API requests. By default, fields with
28057	// empty values are omitted from API requests. However, any non-pointer,
28058	// non-interface field appearing in ForceSendFields will be sent to the
28059	// server regardless of whether the field is empty or not. This may be
28060	// used to include empty fields in Patch requests.
28061	ForceSendFields []string `json:"-"`
28062
28063	// NullFields is a list of field names (e.g. "Key") to include in API
28064	// requests with the JSON null value. By default, fields with empty
28065	// values are omitted from API requests. However, any field with an
28066	// empty value appearing in NullFields will be sent to the server as
28067	// null. It is an error if a field in this list has a non-empty value.
28068	// This may be used to include null fields in Patch requests.
28069	NullFields []string `json:"-"`
28070}
28071
28072func (s *OperationsScopedListWarningData) MarshalJSON() ([]byte, error) {
28073	type NoMethod OperationsScopedListWarningData
28074	raw := NoMethod(*s)
28075	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28076}
28077
28078type OrganizationSecurityPoliciesListAssociationsResponse struct {
28079	// Associations: A list of associations.
28080	Associations []*SecurityPolicyAssociation `json:"associations,omitempty"`
28081
28082	// Kind: [Output Only] Type of securityPolicy associations. Always
28083	// compute#organizationSecurityPoliciesListAssociations for lists of
28084	// securityPolicy associations.
28085	Kind string `json:"kind,omitempty"`
28086
28087	// ServerResponse contains the HTTP response code and headers from the
28088	// server.
28089	googleapi.ServerResponse `json:"-"`
28090
28091	// ForceSendFields is a list of field names (e.g. "Associations") to
28092	// unconditionally include in API requests. By default, fields with
28093	// empty values are omitted from API requests. However, any non-pointer,
28094	// non-interface field appearing in ForceSendFields will be sent to the
28095	// server regardless of whether the field is empty or not. This may be
28096	// used to include empty fields in Patch requests.
28097	ForceSendFields []string `json:"-"`
28098
28099	// NullFields is a list of field names (e.g. "Associations") to include
28100	// in API requests with the JSON null value. By default, fields with
28101	// empty values are omitted from API requests. However, any field with
28102	// an empty value appearing in NullFields will be sent to the server as
28103	// null. It is an error if a field in this list has a non-empty value.
28104	// This may be used to include null fields in Patch requests.
28105	NullFields []string `json:"-"`
28106}
28107
28108func (s *OrganizationSecurityPoliciesListAssociationsResponse) MarshalJSON() ([]byte, error) {
28109	type NoMethod OrganizationSecurityPoliciesListAssociationsResponse
28110	raw := NoMethod(*s)
28111	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28112}
28113
28114// OriginAuthenticationMethod: Configuration for the origin
28115// authentication method.
28116type OriginAuthenticationMethod struct {
28117	Jwt *Jwt `json:"jwt,omitempty"`
28118
28119	// ForceSendFields is a list of field names (e.g. "Jwt") to
28120	// unconditionally include in API requests. By default, fields with
28121	// empty values are omitted from API requests. However, any non-pointer,
28122	// non-interface field appearing in ForceSendFields will be sent to the
28123	// server regardless of whether the field is empty or not. This may be
28124	// used to include empty fields in Patch requests.
28125	ForceSendFields []string `json:"-"`
28126
28127	// NullFields is a list of field names (e.g. "Jwt") to include in API
28128	// requests with the JSON null value. By default, fields with empty
28129	// values are omitted from API requests. However, any field with an
28130	// empty value appearing in NullFields will be sent to the server as
28131	// null. It is an error if a field in this list has a non-empty value.
28132	// This may be used to include null fields in Patch requests.
28133	NullFields []string `json:"-"`
28134}
28135
28136func (s *OriginAuthenticationMethod) MarshalJSON() ([]byte, error) {
28137	type NoMethod OriginAuthenticationMethod
28138	raw := NoMethod(*s)
28139	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28140}
28141
28142// OutlierDetection: Settings controlling the eviction of unhealthy
28143// hosts from the load balancing pool for the backend service.
28144type OutlierDetection struct {
28145	// BaseEjectionTime: The base time that a host is ejected for. The real
28146	// ejection time is equal to the base ejection time multiplied by the
28147	// number of times the host has been ejected. Defaults to 30000ms or
28148	// 30s.
28149	BaseEjectionTime *Duration `json:"baseEjectionTime,omitempty"`
28150
28151	// ConsecutiveErrors: Number of errors before a host is ejected from the
28152	// connection pool. When the backend host is accessed over HTTP, a 5xx
28153	// return code qualifies as an error. Defaults to 5.
28154	ConsecutiveErrors int64 `json:"consecutiveErrors,omitempty"`
28155
28156	// ConsecutiveGatewayFailure: The number of consecutive gateway failures
28157	// (502, 503, 504 status or connection errors that are mapped to one of
28158	// those status codes) before a consecutive gateway failure ejection
28159	// occurs. Defaults to 3.
28160	ConsecutiveGatewayFailure int64 `json:"consecutiveGatewayFailure,omitempty"`
28161
28162	// EnforcingConsecutiveErrors: The percentage chance that a host will be
28163	// actually ejected when an outlier status is detected through
28164	// consecutive 5xx. This setting can be used to disable ejection or to
28165	// ramp it up slowly. Defaults to 0.
28166	EnforcingConsecutiveErrors int64 `json:"enforcingConsecutiveErrors,omitempty"`
28167
28168	// EnforcingConsecutiveGatewayFailure: The percentage chance that a host
28169	// will be actually ejected when an outlier status is detected through
28170	// consecutive gateway failures. This setting can be used to disable
28171	// ejection or to ramp it up slowly. Defaults to 100.
28172	EnforcingConsecutiveGatewayFailure int64 `json:"enforcingConsecutiveGatewayFailure,omitempty"`
28173
28174	// EnforcingSuccessRate: The percentage chance that a host will be
28175	// actually ejected when an outlier status is detected through success
28176	// rate statistics. This setting can be used to disable ejection or to
28177	// ramp it up slowly. Defaults to 100.
28178	EnforcingSuccessRate int64 `json:"enforcingSuccessRate,omitempty"`
28179
28180	// Interval: Time interval between ejection analysis sweeps. This can
28181	// result in both new ejections as well as hosts being returned to
28182	// service. Defaults to 1 second.
28183	Interval *Duration `json:"interval,omitempty"`
28184
28185	// MaxEjectionPercent: Maximum percentage of hosts in the load balancing
28186	// pool for the backend service that can be ejected. Defaults to 50%.
28187	MaxEjectionPercent int64 `json:"maxEjectionPercent,omitempty"`
28188
28189	// SuccessRateMinimumHosts: The number of hosts in a cluster that must
28190	// have enough request volume to detect success rate outliers. If the
28191	// number of hosts is less than this setting, outlier detection via
28192	// success rate statistics is not performed for any host in the cluster.
28193	// Defaults to 5.
28194	SuccessRateMinimumHosts int64 `json:"successRateMinimumHosts,omitempty"`
28195
28196	// SuccessRateRequestVolume: The minimum number of total requests that
28197	// must be collected in one interval (as defined by the interval
28198	// duration above) to include this host in success rate based outlier
28199	// detection. If the volume is lower than this setting, outlier
28200	// detection via success rate statistics is not performed for that host.
28201	// Defaults to 100.
28202	SuccessRateRequestVolume int64 `json:"successRateRequestVolume,omitempty"`
28203
28204	// SuccessRateStdevFactor: This factor is used to determine the ejection
28205	// threshold for success rate outlier ejection. The ejection threshold
28206	// is the difference between the mean success rate, and the product of
28207	// this factor and the standard deviation of the mean success rate: mean
28208	// - (stdev * success_rate_stdev_factor). This factor is divided by a
28209	// thousand to get a double. That is, if the desired factor is 1.9, the
28210	// runtime value should be 1900. Defaults to 1900.
28211	SuccessRateStdevFactor int64 `json:"successRateStdevFactor,omitempty"`
28212
28213	// ForceSendFields is a list of field names (e.g. "BaseEjectionTime") to
28214	// unconditionally include in API requests. By default, fields with
28215	// empty values are omitted from API requests. However, any non-pointer,
28216	// non-interface field appearing in ForceSendFields will be sent to the
28217	// server regardless of whether the field is empty or not. This may be
28218	// used to include empty fields in Patch requests.
28219	ForceSendFields []string `json:"-"`
28220
28221	// NullFields is a list of field names (e.g. "BaseEjectionTime") to
28222	// include in API requests with the JSON null value. By default, fields
28223	// with empty values are omitted from API requests. However, any field
28224	// with an empty value appearing in NullFields will be sent to the
28225	// server as null. It is an error if a field in this list has a
28226	// non-empty value. This may be used to include null fields in Patch
28227	// requests.
28228	NullFields []string `json:"-"`
28229}
28230
28231func (s *OutlierDetection) MarshalJSON() ([]byte, error) {
28232	type NoMethod OutlierDetection
28233	raw := NoMethod(*s)
28234	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28235}
28236
28237// PacketIntervals: Next free: 7
28238type PacketIntervals struct {
28239	// AvgMs: Average observed inter-packet interval in milliseconds.
28240	AvgMs int64 `json:"avgMs,omitempty,string"`
28241
28242	// Duration: From how long ago in the past these intervals were
28243	// observed.
28244	//
28245	// Possible values:
28246	//   "DURATION_UNSPECIFIED"
28247	//   "HOUR"
28248	//   "MAX"
28249	//   "MINUTE"
28250	Duration string `json:"duration,omitempty"`
28251
28252	// MaxMs: Maximum observed inter-packet interval in milliseconds.
28253	MaxMs int64 `json:"maxMs,omitempty,string"`
28254
28255	// MinMs: Minimum observed inter-packet interval in milliseconds.
28256	MinMs int64 `json:"minMs,omitempty,string"`
28257
28258	// NumIntervals: Number of inter-packet intervals from which these
28259	// statistics were derived.
28260	NumIntervals int64 `json:"numIntervals,omitempty,string"`
28261
28262	// Type: The type of packets for which inter-packet intervals were
28263	// computed.
28264	//
28265	// Possible values:
28266	//   "LOOPBACK"
28267	//   "RECEIVE"
28268	//   "TRANSMIT"
28269	//   "TYPE_UNSPECIFIED"
28270	Type string `json:"type,omitempty"`
28271
28272	// ForceSendFields is a list of field names (e.g. "AvgMs") to
28273	// unconditionally include in API requests. By default, fields with
28274	// empty values are omitted from API requests. However, any non-pointer,
28275	// non-interface field appearing in ForceSendFields will be sent to the
28276	// server regardless of whether the field is empty or not. This may be
28277	// used to include empty fields in Patch requests.
28278	ForceSendFields []string `json:"-"`
28279
28280	// NullFields is a list of field names (e.g. "AvgMs") to include in API
28281	// requests with the JSON null value. By default, fields with empty
28282	// values are omitted from API requests. However, any field with an
28283	// empty value appearing in NullFields will be sent to the server as
28284	// null. It is an error if a field in this list has a non-empty value.
28285	// This may be used to include null fields in Patch requests.
28286	NullFields []string `json:"-"`
28287}
28288
28289func (s *PacketIntervals) MarshalJSON() ([]byte, error) {
28290	type NoMethod PacketIntervals
28291	raw := NoMethod(*s)
28292	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28293}
28294
28295// PacketMirroring: Represents a PacketMirroring resource.
28296type PacketMirroring struct {
28297	// CollectorIlb: The Forwarding Rule resource of type
28298	// loadBalancingScheme=INTERNAL that will be used as collector for
28299	// mirrored traffic. The specified forwarding rule must have
28300	// isMirroringCollector set to true.
28301	CollectorIlb *PacketMirroringForwardingRuleInfo `json:"collectorIlb,omitempty"`
28302
28303	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
28304	// format.
28305	CreationTimestamp string `json:"creationTimestamp,omitempty"`
28306
28307	// Description: An optional description of this resource. Provide this
28308	// property when you create the resource.
28309	Description string `json:"description,omitempty"`
28310
28311	// Enable: Indicates whether or not this packet mirroring takes effect.
28312	// If set to FALSE, this packet mirroring policy will not be enforced on
28313	// the network.
28314	//
28315	// The default is TRUE.
28316	//
28317	// Possible values:
28318	//   "FALSE"
28319	//   "TRUE"
28320	Enable string `json:"enable,omitempty"`
28321
28322	// Filter: Filter for mirrored traffic. If unspecified, all traffic is
28323	// mirrored.
28324	Filter *PacketMirroringFilter `json:"filter,omitempty"`
28325
28326	// Id: [Output Only] The unique identifier for the resource. This
28327	// identifier is defined by the server.
28328	Id uint64 `json:"id,omitempty,string"`
28329
28330	// Kind: [Output Only] Type of the resource. Always
28331	// compute#packetMirroring for packet mirrorings.
28332	Kind string `json:"kind,omitempty"`
28333
28334	// MirroredResources: PacketMirroring mirroredResourceInfos.
28335	// MirroredResourceInfo specifies a set of mirrored VM instances,
28336	// subnetworks and/or tags for which traffic from/to all VM instances
28337	// will be mirrored.
28338	MirroredResources *PacketMirroringMirroredResourceInfo `json:"mirroredResources,omitempty"`
28339
28340	// Name: Name of the resource; provided by the client when the resource
28341	// is created. The name must be 1-63 characters long, and comply with
28342	// RFC1035. Specifically, the name must be 1-63 characters long and
28343	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
28344	// the first character must be a lowercase letter, and all following
28345	// characters must be a dash, lowercase letter, or digit, except the
28346	// last character, which cannot be a dash.
28347	Name string `json:"name,omitempty"`
28348
28349	// Network: Specifies the mirrored VPC network. Only packets in this
28350	// network will be mirrored. All mirrored VMs should have a NIC in the
28351	// given network. All mirrored subnetworks should belong to the given
28352	// network.
28353	Network *PacketMirroringNetworkInfo `json:"network,omitempty"`
28354
28355	// Priority: The priority of applying this configuration. Priority is
28356	// used to break ties in cases where there is more than one matching
28357	// rule. In the case of two rules that apply for a given Instance, the
28358	// one with the lowest-numbered priority value wins.
28359	//
28360	// Default value is 1000. Valid range is 0 through 65535.
28361	Priority int64 `json:"priority,omitempty"`
28362
28363	// Region: [Output Only] URI of the region where the packetMirroring
28364	// resides.
28365	Region string `json:"region,omitempty"`
28366
28367	// SelfLink: [Output Only] Server-defined URL for the resource.
28368	SelfLink string `json:"selfLink,omitempty"`
28369
28370	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
28371	// with the resource id.
28372	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
28373
28374	// ServerResponse contains the HTTP response code and headers from the
28375	// server.
28376	googleapi.ServerResponse `json:"-"`
28377
28378	// ForceSendFields is a list of field names (e.g. "CollectorIlb") to
28379	// unconditionally include in API requests. By default, fields with
28380	// empty values are omitted from API requests. However, any non-pointer,
28381	// non-interface field appearing in ForceSendFields will be sent to the
28382	// server regardless of whether the field is empty or not. This may be
28383	// used to include empty fields in Patch requests.
28384	ForceSendFields []string `json:"-"`
28385
28386	// NullFields is a list of field names (e.g. "CollectorIlb") to include
28387	// in API requests with the JSON null value. By default, fields with
28388	// empty values are omitted from API requests. However, any field with
28389	// an empty value appearing in NullFields will be sent to the server as
28390	// null. It is an error if a field in this list has a non-empty value.
28391	// This may be used to include null fields in Patch requests.
28392	NullFields []string `json:"-"`
28393}
28394
28395func (s *PacketMirroring) MarshalJSON() ([]byte, error) {
28396	type NoMethod PacketMirroring
28397	raw := NoMethod(*s)
28398	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28399}
28400
28401// PacketMirroringAggregatedList: Contains a list of packetMirrorings.
28402type PacketMirroringAggregatedList struct {
28403	// Id: [Output Only] Unique identifier for the resource; defined by the
28404	// server.
28405	Id string `json:"id,omitempty"`
28406
28407	// Items: A list of PacketMirroring resources.
28408	Items map[string]PacketMirroringsScopedList `json:"items,omitempty"`
28409
28410	// Kind: Type of resource.
28411	Kind string `json:"kind,omitempty"`
28412
28413	// NextPageToken: [Output Only] This token allows you to get the next
28414	// page of results for list requests. If the number of results is larger
28415	// than maxResults, use the nextPageToken as a value for the query
28416	// parameter pageToken in the next list request. Subsequent list
28417	// requests will have their own nextPageToken to continue paging through
28418	// the results.
28419	NextPageToken string `json:"nextPageToken,omitempty"`
28420
28421	// SelfLink: [Output Only] Server-defined URL for this resource.
28422	SelfLink string `json:"selfLink,omitempty"`
28423
28424	// Warning: [Output Only] Informational warning message.
28425	Warning *PacketMirroringAggregatedListWarning `json:"warning,omitempty"`
28426
28427	// ServerResponse contains the HTTP response code and headers from the
28428	// server.
28429	googleapi.ServerResponse `json:"-"`
28430
28431	// ForceSendFields is a list of field names (e.g. "Id") to
28432	// unconditionally include in API requests. By default, fields with
28433	// empty values are omitted from API requests. However, any non-pointer,
28434	// non-interface field appearing in ForceSendFields will be sent to the
28435	// server regardless of whether the field is empty or not. This may be
28436	// used to include empty fields in Patch requests.
28437	ForceSendFields []string `json:"-"`
28438
28439	// NullFields is a list of field names (e.g. "Id") to include in API
28440	// requests with the JSON null value. By default, fields with empty
28441	// values are omitted from API requests. However, any field with an
28442	// empty value appearing in NullFields will be sent to the server as
28443	// null. It is an error if a field in this list has a non-empty value.
28444	// This may be used to include null fields in Patch requests.
28445	NullFields []string `json:"-"`
28446}
28447
28448func (s *PacketMirroringAggregatedList) MarshalJSON() ([]byte, error) {
28449	type NoMethod PacketMirroringAggregatedList
28450	raw := NoMethod(*s)
28451	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28452}
28453
28454// PacketMirroringAggregatedListWarning: [Output Only] Informational
28455// warning message.
28456type PacketMirroringAggregatedListWarning struct {
28457	// Code: [Output Only] A warning code, if applicable. For example,
28458	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28459	// the response.
28460	//
28461	// Possible values:
28462	//   "CLEANUP_FAILED"
28463	//   "DEPRECATED_RESOURCE_USED"
28464	//   "DEPRECATED_TYPE_USED"
28465	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28466	//   "EXPERIMENTAL_TYPE_USED"
28467	//   "EXTERNAL_API_WARNING"
28468	//   "FIELD_VALUE_OVERRIDEN"
28469	//   "INJECTED_KERNELS_DEPRECATED"
28470	//   "MISSING_TYPE_DEPENDENCY"
28471	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28472	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28473	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28474	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28475	//   "NEXT_HOP_NOT_RUNNING"
28476	//   "NOT_CRITICAL_ERROR"
28477	//   "NO_RESULTS_ON_PAGE"
28478	//   "REQUIRED_TOS_AGREEMENT"
28479	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28480	//   "RESOURCE_NOT_DELETED"
28481	//   "SCHEMA_VALIDATION_IGNORED"
28482	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28483	//   "UNDECLARED_PROPERTIES"
28484	//   "UNREACHABLE"
28485	Code string `json:"code,omitempty"`
28486
28487	// Data: [Output Only] Metadata about this warning in key: value format.
28488	// For example:
28489	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28490	Data []*PacketMirroringAggregatedListWarningData `json:"data,omitempty"`
28491
28492	// Message: [Output Only] A human-readable description of the warning
28493	// code.
28494	Message string `json:"message,omitempty"`
28495
28496	// ForceSendFields is a list of field names (e.g. "Code") to
28497	// unconditionally include in API requests. By default, fields with
28498	// empty values are omitted from API requests. However, any non-pointer,
28499	// non-interface field appearing in ForceSendFields will be sent to the
28500	// server regardless of whether the field is empty or not. This may be
28501	// used to include empty fields in Patch requests.
28502	ForceSendFields []string `json:"-"`
28503
28504	// NullFields is a list of field names (e.g. "Code") to include in API
28505	// requests with the JSON null value. By default, fields with empty
28506	// values are omitted from API requests. However, any field with an
28507	// empty value appearing in NullFields will be sent to the server as
28508	// null. It is an error if a field in this list has a non-empty value.
28509	// This may be used to include null fields in Patch requests.
28510	NullFields []string `json:"-"`
28511}
28512
28513func (s *PacketMirroringAggregatedListWarning) MarshalJSON() ([]byte, error) {
28514	type NoMethod PacketMirroringAggregatedListWarning
28515	raw := NoMethod(*s)
28516	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28517}
28518
28519type PacketMirroringAggregatedListWarningData struct {
28520	// Key: [Output Only] A key that provides more detail on the warning
28521	// being returned. For example, for warnings where there are no results
28522	// in a list request for a particular zone, this key might be scope and
28523	// the key value might be the zone name. Other examples might be a key
28524	// indicating a deprecated resource and a suggested replacement, or a
28525	// warning about invalid network settings (for example, if an instance
28526	// attempts to perform IP forwarding but is not enabled for IP
28527	// forwarding).
28528	Key string `json:"key,omitempty"`
28529
28530	// Value: [Output Only] A warning data value corresponding to the key.
28531	Value string `json:"value,omitempty"`
28532
28533	// ForceSendFields is a list of field names (e.g. "Key") to
28534	// unconditionally include in API requests. By default, fields with
28535	// empty values are omitted from API requests. However, any non-pointer,
28536	// non-interface field appearing in ForceSendFields will be sent to the
28537	// server regardless of whether the field is empty or not. This may be
28538	// used to include empty fields in Patch requests.
28539	ForceSendFields []string `json:"-"`
28540
28541	// NullFields is a list of field names (e.g. "Key") to include in API
28542	// requests with the JSON null value. By default, fields with empty
28543	// values are omitted from API requests. However, any field with an
28544	// empty value appearing in NullFields will be sent to the server as
28545	// null. It is an error if a field in this list has a non-empty value.
28546	// This may be used to include null fields in Patch requests.
28547	NullFields []string `json:"-"`
28548}
28549
28550func (s *PacketMirroringAggregatedListWarningData) MarshalJSON() ([]byte, error) {
28551	type NoMethod PacketMirroringAggregatedListWarningData
28552	raw := NoMethod(*s)
28553	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28554}
28555
28556type PacketMirroringFilter struct {
28557	// IPProtocols: Protocols that apply as filter on mirrored traffic. If
28558	// no protocols are specified, all traffic that matches the specified
28559	// CIDR ranges is mirrored. If neither cidrRanges nor IPProtocols is
28560	// specified, all traffic is mirrored.
28561	IPProtocols []string `json:"IPProtocols,omitempty"`
28562
28563	// CidrRanges: IP CIDR ranges that apply as filter on the source
28564	// (ingress) or destination (egress) IP in the IP header. Only IPv4 is
28565	// supported. If no ranges are specified, all traffic that matches the
28566	// specified IPProtocols is mirrored. If neither cidrRanges nor
28567	// IPProtocols is specified, all traffic is mirrored.
28568	CidrRanges []string `json:"cidrRanges,omitempty"`
28569
28570	// ForceSendFields is a list of field names (e.g. "IPProtocols") to
28571	// unconditionally include in API requests. By default, fields with
28572	// empty values are omitted from API requests. However, any non-pointer,
28573	// non-interface field appearing in ForceSendFields will be sent to the
28574	// server regardless of whether the field is empty or not. This may be
28575	// used to include empty fields in Patch requests.
28576	ForceSendFields []string `json:"-"`
28577
28578	// NullFields is a list of field names (e.g. "IPProtocols") to include
28579	// in API requests with the JSON null value. By default, fields with
28580	// empty values are omitted from API requests. However, any field with
28581	// an empty value appearing in NullFields will be sent to the server as
28582	// null. It is an error if a field in this list has a non-empty value.
28583	// This may be used to include null fields in Patch requests.
28584	NullFields []string `json:"-"`
28585}
28586
28587func (s *PacketMirroringFilter) MarshalJSON() ([]byte, error) {
28588	type NoMethod PacketMirroringFilter
28589	raw := NoMethod(*s)
28590	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28591}
28592
28593type PacketMirroringForwardingRuleInfo struct {
28594	// CanonicalUrl: [Output Only] Unique identifier for the forwarding
28595	// rule; defined by the server.
28596	CanonicalUrl string `json:"canonicalUrl,omitempty"`
28597
28598	// Url: Resource URL to the forwarding rule representing the ILB
28599	// configured as destination of the mirrored traffic.
28600	Url string `json:"url,omitempty"`
28601
28602	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
28603	// unconditionally include in API requests. By default, fields with
28604	// empty values are omitted from API requests. However, any non-pointer,
28605	// non-interface field appearing in ForceSendFields will be sent to the
28606	// server regardless of whether the field is empty or not. This may be
28607	// used to include empty fields in Patch requests.
28608	ForceSendFields []string `json:"-"`
28609
28610	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
28611	// in API requests with the JSON null value. By default, fields with
28612	// empty values are omitted from API requests. However, any field with
28613	// an empty value appearing in NullFields will be sent to the server as
28614	// null. It is an error if a field in this list has a non-empty value.
28615	// This may be used to include null fields in Patch requests.
28616	NullFields []string `json:"-"`
28617}
28618
28619func (s *PacketMirroringForwardingRuleInfo) MarshalJSON() ([]byte, error) {
28620	type NoMethod PacketMirroringForwardingRuleInfo
28621	raw := NoMethod(*s)
28622	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28623}
28624
28625// PacketMirroringList: Contains a list of PacketMirroring resources.
28626type PacketMirroringList struct {
28627	// Id: [Output Only] Unique identifier for the resource; defined by the
28628	// server.
28629	Id string `json:"id,omitempty"`
28630
28631	// Items: A list of PacketMirroring resources.
28632	Items []*PacketMirroring `json:"items,omitempty"`
28633
28634	// Kind: [Output Only] Type of resource. Always compute#packetMirroring
28635	// for packetMirrorings.
28636	Kind string `json:"kind,omitempty"`
28637
28638	// NextPageToken: [Output Only] This token allows you to get the next
28639	// page of results for list requests. If the number of results is larger
28640	// than maxResults, use the nextPageToken as a value for the query
28641	// parameter pageToken in the next list request. Subsequent list
28642	// requests will have their own nextPageToken to continue paging through
28643	// the results.
28644	NextPageToken string `json:"nextPageToken,omitempty"`
28645
28646	// SelfLink: [Output Only] Server-defined URL for this resource.
28647	SelfLink string `json:"selfLink,omitempty"`
28648
28649	// Warning: [Output Only] Informational warning message.
28650	Warning *PacketMirroringListWarning `json:"warning,omitempty"`
28651
28652	// ServerResponse contains the HTTP response code and headers from the
28653	// server.
28654	googleapi.ServerResponse `json:"-"`
28655
28656	// ForceSendFields is a list of field names (e.g. "Id") to
28657	// unconditionally include in API requests. By default, fields with
28658	// empty values are omitted from API requests. However, any non-pointer,
28659	// non-interface field appearing in ForceSendFields will be sent to the
28660	// server regardless of whether the field is empty or not. This may be
28661	// used to include empty fields in Patch requests.
28662	ForceSendFields []string `json:"-"`
28663
28664	// NullFields is a list of field names (e.g. "Id") to include in API
28665	// requests with the JSON null value. By default, fields with empty
28666	// values are omitted from API requests. However, any field with an
28667	// empty value appearing in NullFields will be sent to the server as
28668	// null. It is an error if a field in this list has a non-empty value.
28669	// This may be used to include null fields in Patch requests.
28670	NullFields []string `json:"-"`
28671}
28672
28673func (s *PacketMirroringList) MarshalJSON() ([]byte, error) {
28674	type NoMethod PacketMirroringList
28675	raw := NoMethod(*s)
28676	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28677}
28678
28679// PacketMirroringListWarning: [Output Only] Informational warning
28680// message.
28681type PacketMirroringListWarning struct {
28682	// Code: [Output Only] A warning code, if applicable. For example,
28683	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28684	// the response.
28685	//
28686	// Possible values:
28687	//   "CLEANUP_FAILED"
28688	//   "DEPRECATED_RESOURCE_USED"
28689	//   "DEPRECATED_TYPE_USED"
28690	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28691	//   "EXPERIMENTAL_TYPE_USED"
28692	//   "EXTERNAL_API_WARNING"
28693	//   "FIELD_VALUE_OVERRIDEN"
28694	//   "INJECTED_KERNELS_DEPRECATED"
28695	//   "MISSING_TYPE_DEPENDENCY"
28696	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28697	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28698	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28699	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28700	//   "NEXT_HOP_NOT_RUNNING"
28701	//   "NOT_CRITICAL_ERROR"
28702	//   "NO_RESULTS_ON_PAGE"
28703	//   "REQUIRED_TOS_AGREEMENT"
28704	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28705	//   "RESOURCE_NOT_DELETED"
28706	//   "SCHEMA_VALIDATION_IGNORED"
28707	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28708	//   "UNDECLARED_PROPERTIES"
28709	//   "UNREACHABLE"
28710	Code string `json:"code,omitempty"`
28711
28712	// Data: [Output Only] Metadata about this warning in key: value format.
28713	// For example:
28714	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28715	Data []*PacketMirroringListWarningData `json:"data,omitempty"`
28716
28717	// Message: [Output Only] A human-readable description of the warning
28718	// code.
28719	Message string `json:"message,omitempty"`
28720
28721	// ForceSendFields is a list of field names (e.g. "Code") to
28722	// unconditionally include in API requests. By default, fields with
28723	// empty values are omitted from API requests. However, any non-pointer,
28724	// non-interface field appearing in ForceSendFields will be sent to the
28725	// server regardless of whether the field is empty or not. This may be
28726	// used to include empty fields in Patch requests.
28727	ForceSendFields []string `json:"-"`
28728
28729	// NullFields is a list of field names (e.g. "Code") to include in API
28730	// requests with the JSON null value. By default, fields with empty
28731	// values are omitted from API requests. However, any field with an
28732	// empty value appearing in NullFields will be sent to the server as
28733	// null. It is an error if a field in this list has a non-empty value.
28734	// This may be used to include null fields in Patch requests.
28735	NullFields []string `json:"-"`
28736}
28737
28738func (s *PacketMirroringListWarning) MarshalJSON() ([]byte, error) {
28739	type NoMethod PacketMirroringListWarning
28740	raw := NoMethod(*s)
28741	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28742}
28743
28744type PacketMirroringListWarningData struct {
28745	// Key: [Output Only] A key that provides more detail on the warning
28746	// being returned. For example, for warnings where there are no results
28747	// in a list request for a particular zone, this key might be scope and
28748	// the key value might be the zone name. Other examples might be a key
28749	// indicating a deprecated resource and a suggested replacement, or a
28750	// warning about invalid network settings (for example, if an instance
28751	// attempts to perform IP forwarding but is not enabled for IP
28752	// forwarding).
28753	Key string `json:"key,omitempty"`
28754
28755	// Value: [Output Only] A warning data value corresponding to the key.
28756	Value string `json:"value,omitempty"`
28757
28758	// ForceSendFields is a list of field names (e.g. "Key") to
28759	// unconditionally include in API requests. By default, fields with
28760	// empty values are omitted from API requests. However, any non-pointer,
28761	// non-interface field appearing in ForceSendFields will be sent to the
28762	// server regardless of whether the field is empty or not. This may be
28763	// used to include empty fields in Patch requests.
28764	ForceSendFields []string `json:"-"`
28765
28766	// NullFields is a list of field names (e.g. "Key") to include in API
28767	// requests with the JSON null value. By default, fields with empty
28768	// values are omitted from API requests. However, any field with an
28769	// empty value appearing in NullFields will be sent to the server as
28770	// null. It is an error if a field in this list has a non-empty value.
28771	// This may be used to include null fields in Patch requests.
28772	NullFields []string `json:"-"`
28773}
28774
28775func (s *PacketMirroringListWarningData) MarshalJSON() ([]byte, error) {
28776	type NoMethod PacketMirroringListWarningData
28777	raw := NoMethod(*s)
28778	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28779}
28780
28781type PacketMirroringMirroredResourceInfo struct {
28782	// Instances: A set of virtual machine instances that are being
28783	// mirrored. They must live in zones contained in the same region as
28784	// this packetMirroring.
28785	//
28786	// Note that this config will apply only to those network interfaces of
28787	// the Instances that belong to the network specified in this
28788	// packetMirroring.
28789	//
28790	// You may specify a maximum of 50 Instances.
28791	Instances []*PacketMirroringMirroredResourceInfoInstanceInfo `json:"instances,omitempty"`
28792
28793	// Subnetworks: A set of subnetworks for which traffic from/to all VM
28794	// instances will be mirrored. They must live in the same region as this
28795	// packetMirroring.
28796	//
28797	// You may specify a maximum of 5 subnetworks.
28798	Subnetworks []*PacketMirroringMirroredResourceInfoSubnetInfo `json:"subnetworks,omitempty"`
28799
28800	// Tags: A set of mirrored tags. Traffic from/to all VM instances that
28801	// have one or more of these tags will be mirrored.
28802	Tags []string `json:"tags,omitempty"`
28803
28804	// ForceSendFields is a list of field names (e.g. "Instances") to
28805	// unconditionally include in API requests. By default, fields with
28806	// empty values are omitted from API requests. However, any non-pointer,
28807	// non-interface field appearing in ForceSendFields will be sent to the
28808	// server regardless of whether the field is empty or not. This may be
28809	// used to include empty fields in Patch requests.
28810	ForceSendFields []string `json:"-"`
28811
28812	// NullFields is a list of field names (e.g. "Instances") to include in
28813	// API requests with the JSON null value. By default, fields with empty
28814	// values are omitted from API requests. However, any field with an
28815	// empty value appearing in NullFields will be sent to the server as
28816	// null. It is an error if a field in this list has a non-empty value.
28817	// This may be used to include null fields in Patch requests.
28818	NullFields []string `json:"-"`
28819}
28820
28821func (s *PacketMirroringMirroredResourceInfo) MarshalJSON() ([]byte, error) {
28822	type NoMethod PacketMirroringMirroredResourceInfo
28823	raw := NoMethod(*s)
28824	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28825}
28826
28827type PacketMirroringMirroredResourceInfoInstanceInfo struct {
28828	// CanonicalUrl: [Output Only] Unique identifier for the instance;
28829	// defined by the server.
28830	CanonicalUrl string `json:"canonicalUrl,omitempty"`
28831
28832	// Url: Resource URL to the virtual machine instance which is being
28833	// mirrored.
28834	Url string `json:"url,omitempty"`
28835
28836	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
28837	// unconditionally include in API requests. By default, fields with
28838	// empty values are omitted from API requests. However, any non-pointer,
28839	// non-interface field appearing in ForceSendFields will be sent to the
28840	// server regardless of whether the field is empty or not. This may be
28841	// used to include empty fields in Patch requests.
28842	ForceSendFields []string `json:"-"`
28843
28844	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
28845	// in API requests with the JSON null value. By default, fields with
28846	// empty values are omitted from API requests. However, any field with
28847	// an empty value appearing in NullFields will be sent to the server as
28848	// null. It is an error if a field in this list has a non-empty value.
28849	// This may be used to include null fields in Patch requests.
28850	NullFields []string `json:"-"`
28851}
28852
28853func (s *PacketMirroringMirroredResourceInfoInstanceInfo) MarshalJSON() ([]byte, error) {
28854	type NoMethod PacketMirroringMirroredResourceInfoInstanceInfo
28855	raw := NoMethod(*s)
28856	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28857}
28858
28859type PacketMirroringMirroredResourceInfoSubnetInfo struct {
28860	// CanonicalUrl: [Output Only] Unique identifier for the subnetwork;
28861	// defined by the server.
28862	CanonicalUrl string `json:"canonicalUrl,omitempty"`
28863
28864	// Url: Resource URL to the subnetwork for which traffic from/to all VM
28865	// instances will be mirrored.
28866	Url string `json:"url,omitempty"`
28867
28868	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
28869	// unconditionally include in API requests. By default, fields with
28870	// empty values are omitted from API requests. However, any non-pointer,
28871	// non-interface field appearing in ForceSendFields will be sent to the
28872	// server regardless of whether the field is empty or not. This may be
28873	// used to include empty fields in Patch requests.
28874	ForceSendFields []string `json:"-"`
28875
28876	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
28877	// in API requests with the JSON null value. By default, fields with
28878	// empty values are omitted from API requests. However, any field with
28879	// an empty value appearing in NullFields will be sent to the server as
28880	// null. It is an error if a field in this list has a non-empty value.
28881	// This may be used to include null fields in Patch requests.
28882	NullFields []string `json:"-"`
28883}
28884
28885func (s *PacketMirroringMirroredResourceInfoSubnetInfo) MarshalJSON() ([]byte, error) {
28886	type NoMethod PacketMirroringMirroredResourceInfoSubnetInfo
28887	raw := NoMethod(*s)
28888	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28889}
28890
28891type PacketMirroringNetworkInfo struct {
28892	// CanonicalUrl: [Output Only] Unique identifier for the network;
28893	// defined by the server.
28894	CanonicalUrl string `json:"canonicalUrl,omitempty"`
28895
28896	// Url: URL of the network resource.
28897	Url string `json:"url,omitempty"`
28898
28899	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
28900	// unconditionally include in API requests. By default, fields with
28901	// empty values are omitted from API requests. However, any non-pointer,
28902	// non-interface field appearing in ForceSendFields will be sent to the
28903	// server regardless of whether the field is empty or not. This may be
28904	// used to include empty fields in Patch requests.
28905	ForceSendFields []string `json:"-"`
28906
28907	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
28908	// in API requests with the JSON null value. By default, fields with
28909	// empty values are omitted from API requests. However, any field with
28910	// an empty value appearing in NullFields will be sent to the server as
28911	// null. It is an error if a field in this list has a non-empty value.
28912	// This may be used to include null fields in Patch requests.
28913	NullFields []string `json:"-"`
28914}
28915
28916func (s *PacketMirroringNetworkInfo) MarshalJSON() ([]byte, error) {
28917	type NoMethod PacketMirroringNetworkInfo
28918	raw := NoMethod(*s)
28919	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28920}
28921
28922type PacketMirroringsScopedList struct {
28923	// PacketMirrorings: A list of packetMirrorings contained in this scope.
28924	PacketMirrorings []*PacketMirroring `json:"packetMirrorings,omitempty"`
28925
28926	// Warning: Informational warning which replaces the list of
28927	// packetMirrorings when the list is empty.
28928	Warning *PacketMirroringsScopedListWarning `json:"warning,omitempty"`
28929
28930	// ForceSendFields is a list of field names (e.g. "PacketMirrorings") to
28931	// unconditionally include in API requests. By default, fields with
28932	// empty values are omitted from API requests. However, any non-pointer,
28933	// non-interface field appearing in ForceSendFields will be sent to the
28934	// server regardless of whether the field is empty or not. This may be
28935	// used to include empty fields in Patch requests.
28936	ForceSendFields []string `json:"-"`
28937
28938	// NullFields is a list of field names (e.g. "PacketMirrorings") to
28939	// include in API requests with the JSON null value. By default, fields
28940	// with empty values are omitted from API requests. However, any field
28941	// with an empty value appearing in NullFields will be sent to the
28942	// server as null. It is an error if a field in this list has a
28943	// non-empty value. This may be used to include null fields in Patch
28944	// requests.
28945	NullFields []string `json:"-"`
28946}
28947
28948func (s *PacketMirroringsScopedList) MarshalJSON() ([]byte, error) {
28949	type NoMethod PacketMirroringsScopedList
28950	raw := NoMethod(*s)
28951	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28952}
28953
28954// PacketMirroringsScopedListWarning: Informational warning which
28955// replaces the list of packetMirrorings when the list is empty.
28956type PacketMirroringsScopedListWarning struct {
28957	// Code: [Output Only] A warning code, if applicable. For example,
28958	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28959	// the response.
28960	//
28961	// Possible values:
28962	//   "CLEANUP_FAILED"
28963	//   "DEPRECATED_RESOURCE_USED"
28964	//   "DEPRECATED_TYPE_USED"
28965	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28966	//   "EXPERIMENTAL_TYPE_USED"
28967	//   "EXTERNAL_API_WARNING"
28968	//   "FIELD_VALUE_OVERRIDEN"
28969	//   "INJECTED_KERNELS_DEPRECATED"
28970	//   "MISSING_TYPE_DEPENDENCY"
28971	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28972	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28973	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28974	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28975	//   "NEXT_HOP_NOT_RUNNING"
28976	//   "NOT_CRITICAL_ERROR"
28977	//   "NO_RESULTS_ON_PAGE"
28978	//   "REQUIRED_TOS_AGREEMENT"
28979	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28980	//   "RESOURCE_NOT_DELETED"
28981	//   "SCHEMA_VALIDATION_IGNORED"
28982	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28983	//   "UNDECLARED_PROPERTIES"
28984	//   "UNREACHABLE"
28985	Code string `json:"code,omitempty"`
28986
28987	// Data: [Output Only] Metadata about this warning in key: value format.
28988	// For example:
28989	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28990	Data []*PacketMirroringsScopedListWarningData `json:"data,omitempty"`
28991
28992	// Message: [Output Only] A human-readable description of the warning
28993	// code.
28994	Message string `json:"message,omitempty"`
28995
28996	// ForceSendFields is a list of field names (e.g. "Code") to
28997	// unconditionally include in API requests. By default, fields with
28998	// empty values are omitted from API requests. However, any non-pointer,
28999	// non-interface field appearing in ForceSendFields will be sent to the
29000	// server regardless of whether the field is empty or not. This may be
29001	// used to include empty fields in Patch requests.
29002	ForceSendFields []string `json:"-"`
29003
29004	// NullFields is a list of field names (e.g. "Code") to include in API
29005	// requests with the JSON null value. By default, fields with empty
29006	// values are omitted from API requests. However, any field with an
29007	// empty value appearing in NullFields will be sent to the server as
29008	// null. It is an error if a field in this list has a non-empty value.
29009	// This may be used to include null fields in Patch requests.
29010	NullFields []string `json:"-"`
29011}
29012
29013func (s *PacketMirroringsScopedListWarning) MarshalJSON() ([]byte, error) {
29014	type NoMethod PacketMirroringsScopedListWarning
29015	raw := NoMethod(*s)
29016	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29017}
29018
29019type PacketMirroringsScopedListWarningData struct {
29020	// Key: [Output Only] A key that provides more detail on the warning
29021	// being returned. For example, for warnings where there are no results
29022	// in a list request for a particular zone, this key might be scope and
29023	// the key value might be the zone name. Other examples might be a key
29024	// indicating a deprecated resource and a suggested replacement, or a
29025	// warning about invalid network settings (for example, if an instance
29026	// attempts to perform IP forwarding but is not enabled for IP
29027	// forwarding).
29028	Key string `json:"key,omitempty"`
29029
29030	// Value: [Output Only] A warning data value corresponding to the key.
29031	Value string `json:"value,omitempty"`
29032
29033	// ForceSendFields is a list of field names (e.g. "Key") to
29034	// unconditionally include in API requests. By default, fields with
29035	// empty values are omitted from API requests. However, any non-pointer,
29036	// non-interface field appearing in ForceSendFields will be sent to the
29037	// server regardless of whether the field is empty or not. This may be
29038	// used to include empty fields in Patch requests.
29039	ForceSendFields []string `json:"-"`
29040
29041	// NullFields is a list of field names (e.g. "Key") to include in API
29042	// requests with the JSON null value. By default, fields with empty
29043	// values are omitted from API requests. However, any field with an
29044	// empty value appearing in NullFields will be sent to the server as
29045	// null. It is an error if a field in this list has a non-empty value.
29046	// This may be used to include null fields in Patch requests.
29047	NullFields []string `json:"-"`
29048}
29049
29050func (s *PacketMirroringsScopedListWarningData) MarshalJSON() ([]byte, error) {
29051	type NoMethod PacketMirroringsScopedListWarningData
29052	raw := NoMethod(*s)
29053	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29054}
29055
29056// PathMatcher: A matcher for the path portion of the URL. The
29057// BackendService from the longest-matched rule will serve the URL. If
29058// no rule was matched, the default service will be used.
29059type PathMatcher struct {
29060	// DefaultRouteAction: defaultRouteAction takes effect when none of the
29061	// pathRules or routeRules match. The load balancer performs advanced
29062	// routing actions like URL rewrites, header transformations, etc. prior
29063	// to forwarding the request to the selected backend. If
29064	// defaultRouteAction specifies any weightedBackendServices,
29065	// defaultService must not be set. Conversely if defaultService is set,
29066	// defaultRouteAction cannot contain any  weightedBackendServices.
29067	// Only one of defaultRouteAction or defaultUrlRedirect must be set.
29068	DefaultRouteAction *HttpRouteAction `json:"defaultRouteAction,omitempty"`
29069
29070	// DefaultService: The full or partial URL to the BackendService
29071	// resource. This will be used if none of the pathRules or routeRules
29072	// defined by this PathMatcher are matched. For example, the following
29073	// are all valid URLs to a BackendService resource:
29074	// -
29075	// https://www.googleapis.com/compute/v1/projects/project/global/backendServices/backendService
29076	// - compute/v1/projects/project/global/backendServices/backendService
29077	//
29078	// - global/backendServices/backendService  If defaultRouteAction is
29079	// additionally specified, advanced routing actions like URL Rewrites,
29080	// etc. take effect prior to sending the request to the backend.
29081	// However, if defaultService is specified, defaultRouteAction cannot
29082	// contain any weightedBackendServices. Conversely, if
29083	// defaultRouteAction specifies any weightedBackendServices,
29084	// defaultService must not be specified.
29085	// Only one of defaultService, defaultUrlRedirect  or
29086	// defaultRouteAction.weightedBackendService must be set.
29087	// Authorization requires one or more of the following Google IAM
29088	// permissions on the specified resource default_service:
29089	// - compute.backendBuckets.use
29090	// - compute.backendServices.use
29091	DefaultService string `json:"defaultService,omitempty"`
29092
29093	// DefaultUrlRedirect: When none of the specified pathRules or
29094	// routeRules match, the request is redirected to a URL specified by
29095	// defaultUrlRedirect.
29096	// If defaultUrlRedirect is specified, defaultService or
29097	// defaultRouteAction must not be set.
29098	DefaultUrlRedirect *HttpRedirectAction `json:"defaultUrlRedirect,omitempty"`
29099
29100	// Description: An optional description of this resource. Provide this
29101	// property when you create the resource.
29102	Description string `json:"description,omitempty"`
29103
29104	// HeaderAction: Specifies changes to request and response headers that
29105	// need to take effect for the selected backendService.
29106	// HeaderAction specified here are applied after the matching
29107	// HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap
29108	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
29109
29110	// Name: The name to which this PathMatcher is referred by the HostRule.
29111	Name string `json:"name,omitempty"`
29112
29113	// PathRules: The list of path rules. Use this list instead of
29114	// routeRules when routing based on simple path matching is all that's
29115	// required. The order by which path rules are specified does not
29116	// matter. Matches are always done on the longest-path-first basis.
29117	// For example: a pathRule with a path /a/b/c/* will match before /a/b/*
29118	// irrespective of the order in which those paths appear in this
29119	// list.
29120	// Within a given pathMatcher, only one of pathRules or routeRules must
29121	// be set.
29122	PathRules []*PathRule `json:"pathRules,omitempty"`
29123
29124	// RouteRules: The list of HTTP route rules. Use this list instead of
29125	// pathRules when advanced route matching and routing actions are
29126	// desired. routeRules are evaluated in order of priority, from the
29127	// lowest to highest number.
29128	// Within a given pathMatcher, you can set only one of pathRules or
29129	// routeRules.
29130	RouteRules []*HttpRouteRule `json:"routeRules,omitempty"`
29131
29132	// ForceSendFields is a list of field names (e.g. "DefaultRouteAction")
29133	// to unconditionally include in API requests. By default, fields with
29134	// empty values are omitted from API requests. However, any non-pointer,
29135	// non-interface field appearing in ForceSendFields will be sent to the
29136	// server regardless of whether the field is empty or not. This may be
29137	// used to include empty fields in Patch requests.
29138	ForceSendFields []string `json:"-"`
29139
29140	// NullFields is a list of field names (e.g. "DefaultRouteAction") to
29141	// include in API requests with the JSON null value. By default, fields
29142	// with empty values are omitted from API requests. However, any field
29143	// with an empty value appearing in NullFields will be sent to the
29144	// server as null. It is an error if a field in this list has a
29145	// non-empty value. This may be used to include null fields in Patch
29146	// requests.
29147	NullFields []string `json:"-"`
29148}
29149
29150func (s *PathMatcher) MarshalJSON() ([]byte, error) {
29151	type NoMethod PathMatcher
29152	raw := NoMethod(*s)
29153	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29154}
29155
29156// PathRule: A path-matching rule for a URL. If matched, will use the
29157// specified BackendService to handle the traffic arriving at this URL.
29158type PathRule struct {
29159	// Paths: The list of path patterns to match. Each must start with / and
29160	// the only place a * is allowed is at the end following a /. The string
29161	// fed to the path matcher does not include any text after the first ?
29162	// or #, and those chars are not allowed here.
29163	Paths []string `json:"paths,omitempty"`
29164
29165	// RouteAction: In response to a matching path, the load balancer
29166	// performs advanced routing actions like URL rewrites, header
29167	// transformations, etc. prior to forwarding the request to the selected
29168	// backend. If routeAction specifies any  weightedBackendServices,
29169	// service must not be set. Conversely if service is set, routeAction
29170	// cannot contain any  weightedBackendServices.
29171	// Only one of routeAction or urlRedirect must be set.
29172	RouteAction *HttpRouteAction `json:"routeAction,omitempty"`
29173
29174	// Service: The full or partial URL of the backend service resource to
29175	// which traffic is directed if this rule is matched. If routeAction is
29176	// additionally specified, advanced routing actions like URL Rewrites,
29177	// etc. take effect prior to sending the request to the backend.
29178	// However, if service is specified, routeAction cannot contain any
29179	// weightedBackendService s. Conversely, if routeAction specifies any
29180	// weightedBackendServices, service must not be specified.
29181	// Only one of urlRedirect, service or
29182	// routeAction.weightedBackendService must be set.
29183	Service string `json:"service,omitempty"`
29184
29185	// UrlRedirect: When a path pattern is matched, the request is
29186	// redirected to a URL specified by urlRedirect.
29187	// If urlRedirect is specified, service or routeAction must not be set.
29188	UrlRedirect *HttpRedirectAction `json:"urlRedirect,omitempty"`
29189
29190	// ForceSendFields is a list of field names (e.g. "Paths") to
29191	// unconditionally include in API requests. By default, fields with
29192	// empty values are omitted from API requests. However, any non-pointer,
29193	// non-interface field appearing in ForceSendFields will be sent to the
29194	// server regardless of whether the field is empty or not. This may be
29195	// used to include empty fields in Patch requests.
29196	ForceSendFields []string `json:"-"`
29197
29198	// NullFields is a list of field names (e.g. "Paths") to include in API
29199	// requests with the JSON null value. By default, fields with empty
29200	// values are omitted from API requests. However, any field with an
29201	// empty value appearing in NullFields will be sent to the server as
29202	// null. It is an error if a field in this list has a non-empty value.
29203	// This may be used to include null fields in Patch requests.
29204	NullFields []string `json:"-"`
29205}
29206
29207func (s *PathRule) MarshalJSON() ([]byte, error) {
29208	type NoMethod PathRule
29209	raw := NoMethod(*s)
29210	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29211}
29212
29213// PeerAuthenticationMethod: Configuration for the peer authentication
29214// method.
29215type PeerAuthenticationMethod struct {
29216	// Mtls: Set if mTLS is used for peer authentication.
29217	Mtls *MutualTls `json:"mtls,omitempty"`
29218
29219	// ForceSendFields is a list of field names (e.g. "Mtls") to
29220	// unconditionally include in API requests. By default, fields with
29221	// empty values are omitted from API requests. However, any non-pointer,
29222	// non-interface field appearing in ForceSendFields will be sent to the
29223	// server regardless of whether the field is empty or not. This may be
29224	// used to include empty fields in Patch requests.
29225	ForceSendFields []string `json:"-"`
29226
29227	// NullFields is a list of field names (e.g. "Mtls") to include in API
29228	// requests with the JSON null value. By default, fields with empty
29229	// values are omitted from API requests. However, any field with an
29230	// empty value appearing in NullFields will be sent to the server as
29231	// null. It is an error if a field in this list has a non-empty value.
29232	// This may be used to include null fields in Patch requests.
29233	NullFields []string `json:"-"`
29234}
29235
29236func (s *PeerAuthenticationMethod) MarshalJSON() ([]byte, error) {
29237	type NoMethod PeerAuthenticationMethod
29238	raw := NoMethod(*s)
29239	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29240}
29241
29242type PerInstanceConfig struct {
29243	// Fingerprint: Fingerprint of this per-instance config. This field may
29244	// be used in optimistic locking. It will be ignored when inserting a
29245	// per-instance config. An up-to-date fingerprint must be provided in
29246	// order to update an existing per-instance config or the field needs to
29247	// be unset.
29248	Fingerprint string `json:"fingerprint,omitempty"`
29249
29250	// Name: The name of the per-instance config and the corresponding
29251	// instance. Serves as a merge key during UpdatePerInstanceConfigs
29252	// operation, i.e. if per-instance config with the same name exists then
29253	// it will be updated, otherwise a new one will be created for the VM
29254	// instance with the same name. An attempt to create a per-instance
29255	// config for a VM instance that either doesn't exist or is not part of
29256	// the group will result in a failure.
29257	Name string `json:"name,omitempty"`
29258
29259	// PreservedState: Intended preserved state for the given instance. Does
29260	// not contain state generated based on Stateful Policy.
29261	PreservedState *PreservedState `json:"preservedState,omitempty"`
29262
29263	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
29264	// unconditionally include in API requests. By default, fields with
29265	// empty values are omitted from API requests. However, any non-pointer,
29266	// non-interface field appearing in ForceSendFields will be sent to the
29267	// server regardless of whether the field is empty or not. This may be
29268	// used to include empty fields in Patch requests.
29269	ForceSendFields []string `json:"-"`
29270
29271	// NullFields is a list of field names (e.g. "Fingerprint") to include
29272	// in API requests with the JSON null value. By default, fields with
29273	// empty values are omitted from API requests. However, any field with
29274	// an empty value appearing in NullFields will be sent to the server as
29275	// null. It is an error if a field in this list has a non-empty value.
29276	// This may be used to include null fields in Patch requests.
29277	NullFields []string `json:"-"`
29278}
29279
29280func (s *PerInstanceConfig) MarshalJSON() ([]byte, error) {
29281	type NoMethod PerInstanceConfig
29282	raw := NoMethod(*s)
29283	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29284}
29285
29286// Permission: All fields defined in a permission are ANDed.
29287type Permission struct {
29288	// Constraints: Extra custom constraints. The constraints are ANDed
29289	// together.
29290	Constraints []*PermissionConstraint `json:"constraints,omitempty"`
29291
29292	// Hosts: Used in Ingress or Egress Gateway cases to specify hosts that
29293	// the policy applies to. Exact match, prefix match, and suffix match
29294	// are supported.
29295	Hosts []string `json:"hosts,omitempty"`
29296
29297	// Methods: HTTP method.
29298	Methods []string `json:"methods,omitempty"`
29299
29300	// NotHosts: Negate of hosts. Specifies exclusions.
29301	NotHosts []string `json:"notHosts,omitempty"`
29302
29303	// NotMethods: Negate of methods. Specifies exclusions.
29304	NotMethods []string `json:"notMethods,omitempty"`
29305
29306	// NotPaths: Negate of paths. Specifies exclusions.
29307	NotPaths []string `json:"notPaths,omitempty"`
29308
29309	// NotPorts: Negate of ports. Specifies exclusions.
29310	NotPorts []string `json:"notPorts,omitempty"`
29311
29312	// Paths: HTTP request paths or gRPC methods. Exact match, prefix match,
29313	// and suffix match are supported.
29314	Paths []string `json:"paths,omitempty"`
29315
29316	// Ports: Port names or numbers.
29317	Ports []string `json:"ports,omitempty"`
29318
29319	// ForceSendFields is a list of field names (e.g. "Constraints") to
29320	// unconditionally include in API requests. By default, fields with
29321	// empty values are omitted from API requests. However, any non-pointer,
29322	// non-interface field appearing in ForceSendFields will be sent to the
29323	// server regardless of whether the field is empty or not. This may be
29324	// used to include empty fields in Patch requests.
29325	ForceSendFields []string `json:"-"`
29326
29327	// NullFields is a list of field names (e.g. "Constraints") to include
29328	// in API requests with the JSON null value. By default, fields with
29329	// empty values are omitted from API requests. However, any field with
29330	// an empty value appearing in NullFields will be sent to the server as
29331	// null. It is an error if a field in this list has a non-empty value.
29332	// This may be used to include null fields in Patch requests.
29333	NullFields []string `json:"-"`
29334}
29335
29336func (s *Permission) MarshalJSON() ([]byte, error) {
29337	type NoMethod Permission
29338	raw := NoMethod(*s)
29339	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29340}
29341
29342// PermissionConstraint: Custom constraint that specifies a key and a
29343// list of allowed values for Istio attributes.
29344type PermissionConstraint struct {
29345	// Key: Key of the constraint.
29346	Key string `json:"key,omitempty"`
29347
29348	// Values: A list of allowed values.
29349	Values []string `json:"values,omitempty"`
29350
29351	// ForceSendFields is a list of field names (e.g. "Key") to
29352	// unconditionally include in API requests. By default, fields with
29353	// empty values are omitted from API requests. However, any non-pointer,
29354	// non-interface field appearing in ForceSendFields will be sent to the
29355	// server regardless of whether the field is empty or not. This may be
29356	// used to include empty fields in Patch requests.
29357	ForceSendFields []string `json:"-"`
29358
29359	// NullFields is a list of field names (e.g. "Key") to include in API
29360	// requests with the JSON null value. By default, fields with empty
29361	// values are omitted from API requests. However, any field with an
29362	// empty value appearing in NullFields will be sent to the server as
29363	// null. It is an error if a field in this list has a non-empty value.
29364	// This may be used to include null fields in Patch requests.
29365	NullFields []string `json:"-"`
29366}
29367
29368func (s *PermissionConstraint) MarshalJSON() ([]byte, error) {
29369	type NoMethod PermissionConstraint
29370	raw := NoMethod(*s)
29371	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29372}
29373
29374// Policy: An Identity and Access Management (IAM) policy, which
29375// specifies access controls for Google Cloud resources.
29376//
29377//
29378//
29379// A `Policy` is a collection of `bindings`. A `binding` binds one or
29380// more `members` to a single `role`. Members can be user accounts,
29381// service accounts, Google groups, and domains (such as G Suite). A
29382// `role` is a named list of permissions; each `role` can be an IAM
29383// predefined role or a user-created custom role.
29384//
29385// Optionally, a `binding` can specify a `condition`, which is a logical
29386// expression that allows access to a resource only if the expression
29387// evaluates to `true`. A condition can add constraints based on
29388// attributes of the request, the resource, or both.
29389//
29390// **JSON example:**
29391//
29392// { "bindings": [ { "role": "roles/resourcemanager.organizationAdmin",
29393// "members": [ "user:mike@example.com", "group:admins@example.com",
29394// "domain:google.com",
29395// "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, {
29396// "role": "roles/resourcemanager.organizationViewer", "members":
29397// ["user:eve@example.com"], "condition": { "title": "expirable access",
29398// "description": "Does not grant access after Sep 2020", "expression":
29399// "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ],
29400// "etag": "BwWWja0YfJA=", "version": 3 }
29401//
29402// **YAML example:**
29403//
29404// bindings: - members: - user:mike@example.com -
29405// group:admins@example.com - domain:google.com -
29406// serviceAccount:my-project-id@appspot.gserviceaccount.com role:
29407// roles/resourcemanager.organizationAdmin - members: -
29408// user:eve@example.com role: roles/resourcemanager.organizationViewer
29409// condition: title: expirable access description: Does not grant access
29410// after Sep 2020 expression: request.time <
29411// timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version:
29412// 3
29413//
29414// For a description of IAM and its features, see the [IAM
29415// documentation](https://cloud.google.com/iam/docs/).
29416type Policy struct {
29417	// AuditConfigs: Specifies cloud audit logging configuration for this
29418	// policy.
29419	AuditConfigs []*AuditConfig `json:"auditConfigs,omitempty"`
29420
29421	// Bindings: Associates a list of `members` to a `role`. Optionally, may
29422	// specify a `condition` that determines how and when the `bindings` are
29423	// applied. Each of the `bindings` must contain at least one member.
29424	Bindings []*Binding `json:"bindings,omitempty"`
29425
29426	// Etag: `etag` is used for optimistic concurrency control as a way to
29427	// help prevent simultaneous updates of a policy from overwriting each
29428	// other. It is strongly suggested that systems make use of the `etag`
29429	// in the read-modify-write cycle to perform policy updates in order to
29430	// avoid race conditions: An `etag` is returned in the response to
29431	// `getIamPolicy`, and systems are expected to put that etag in the
29432	// request to `setIamPolicy` to ensure that their change will be applied
29433	// to the same version of the policy.
29434	//
29435	// **Important:** If you use IAM Conditions, you must include the `etag`
29436	// field whenever you call `setIamPolicy`. If you omit this field, then
29437	// IAM allows you to overwrite a version `3` policy with a version `1`
29438	// policy, and all of the conditions in the version `3` policy are lost.
29439	Etag string `json:"etag,omitempty"`
29440
29441	IamOwned bool `json:"iamOwned,omitempty"`
29442
29443	// Rules: If more than one rule is specified, the rules are applied in
29444	// the following manner: - All matching LOG rules are always applied. -
29445	// If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging
29446	// will be applied if one or more matching rule requires logging. -
29447	// Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
29448	// granted. Logging will be applied if one or more matching rule
29449	// requires logging. - Otherwise, if no rule applies, permission is
29450	// denied.
29451	Rules []*Rule `json:"rules,omitempty"`
29452
29453	// Version: Specifies the format of the policy.
29454	//
29455	// Valid values are `0`, `1`, and `3`. Requests that specify an invalid
29456	// value are rejected.
29457	//
29458	// Any operation that affects conditional role bindings must specify
29459	// version `3`. This requirement applies to the following operations:
29460	//
29461	// * Getting a policy that includes a conditional role binding * Adding
29462	// a conditional role binding to a policy * Changing a conditional role
29463	// binding in a policy * Removing any role binding, with or without a
29464	// condition, from a policy that includes conditions
29465	//
29466	// **Important:** If you use IAM Conditions, you must include the `etag`
29467	// field whenever you call `setIamPolicy`. If you omit this field, then
29468	// IAM allows you to overwrite a version `3` policy with a version `1`
29469	// policy, and all of the conditions in the version `3` policy are
29470	// lost.
29471	//
29472	// If a policy does not include any conditions, operations on that
29473	// policy may specify any valid version or leave the field unset.
29474	Version int64 `json:"version,omitempty"`
29475
29476	// ServerResponse contains the HTTP response code and headers from the
29477	// server.
29478	googleapi.ServerResponse `json:"-"`
29479
29480	// ForceSendFields is a list of field names (e.g. "AuditConfigs") to
29481	// unconditionally include in API requests. By default, fields with
29482	// empty values are omitted from API requests. However, any non-pointer,
29483	// non-interface field appearing in ForceSendFields will be sent to the
29484	// server regardless of whether the field is empty or not. This may be
29485	// used to include empty fields in Patch requests.
29486	ForceSendFields []string `json:"-"`
29487
29488	// NullFields is a list of field names (e.g. "AuditConfigs") to include
29489	// in API requests with the JSON null value. By default, fields with
29490	// empty values are omitted from API requests. However, any field with
29491	// an empty value appearing in NullFields will be sent to the server as
29492	// null. It is an error if a field in this list has a non-empty value.
29493	// This may be used to include null fields in Patch requests.
29494	NullFields []string `json:"-"`
29495}
29496
29497func (s *Policy) MarshalJSON() ([]byte, error) {
29498	type NoMethod Policy
29499	raw := NoMethod(*s)
29500	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29501}
29502
29503type PreconfiguredWafSet struct {
29504	// ExpressionSets: List of entities that are currently supported for WAF
29505	// rules.
29506	ExpressionSets []*WafExpressionSet `json:"expressionSets,omitempty"`
29507
29508	// ForceSendFields is a list of field names (e.g. "ExpressionSets") to
29509	// unconditionally include in API requests. By default, fields with
29510	// empty values are omitted from API requests. However, any non-pointer,
29511	// non-interface field appearing in ForceSendFields will be sent to the
29512	// server regardless of whether the field is empty or not. This may be
29513	// used to include empty fields in Patch requests.
29514	ForceSendFields []string `json:"-"`
29515
29516	// NullFields is a list of field names (e.g. "ExpressionSets") to
29517	// include in API requests with the JSON null value. By default, fields
29518	// with empty values are omitted from API requests. However, any field
29519	// with an empty value appearing in NullFields will be sent to the
29520	// server as null. It is an error if a field in this list has a
29521	// non-empty value. This may be used to include null fields in Patch
29522	// requests.
29523	NullFields []string `json:"-"`
29524}
29525
29526func (s *PreconfiguredWafSet) MarshalJSON() ([]byte, error) {
29527	type NoMethod PreconfiguredWafSet
29528	raw := NoMethod(*s)
29529	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29530}
29531
29532// PreservedState: Preserved state for a given instance.
29533type PreservedState struct {
29534	// Disks: Preserved disks defined for this instance. This map is keyed
29535	// with the device names of the disks.
29536	Disks map[string]PreservedStatePreservedDisk `json:"disks,omitempty"`
29537
29538	// Metadata: Preserved metadata defined for this instance.
29539	Metadata map[string]string `json:"metadata,omitempty"`
29540
29541	// ForceSendFields is a list of field names (e.g. "Disks") to
29542	// unconditionally include in API requests. By default, fields with
29543	// empty values are omitted from API requests. However, any non-pointer,
29544	// non-interface field appearing in ForceSendFields will be sent to the
29545	// server regardless of whether the field is empty or not. This may be
29546	// used to include empty fields in Patch requests.
29547	ForceSendFields []string `json:"-"`
29548
29549	// NullFields is a list of field names (e.g. "Disks") to include in API
29550	// requests with the JSON null value. By default, fields with empty
29551	// values are omitted from API requests. However, any field with an
29552	// empty value appearing in NullFields will be sent to the server as
29553	// null. It is an error if a field in this list has a non-empty value.
29554	// This may be used to include null fields in Patch requests.
29555	NullFields []string `json:"-"`
29556}
29557
29558func (s *PreservedState) MarshalJSON() ([]byte, error) {
29559	type NoMethod PreservedState
29560	raw := NoMethod(*s)
29561	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29562}
29563
29564type PreservedStatePreservedDisk struct {
29565	// AutoDelete: These stateful disks will never be deleted during
29566	// autohealing, update, instance recreate operations. This flag is used
29567	// to configure if the disk should be deleted after it is no longer used
29568	// by the group, e.g. when the given instance or the whole MIG is
29569	// deleted. Note: disks attached in READ_ONLY mode cannot be
29570	// auto-deleted.
29571	//
29572	// Possible values:
29573	//   "NEVER"
29574	//   "ON_PERMANENT_INSTANCE_DELETION"
29575	AutoDelete string `json:"autoDelete,omitempty"`
29576
29577	// Mode: The mode in which to attach this disk, either READ_WRITE or
29578	// READ_ONLY. If not specified, the default is to attach the disk in
29579	// READ_WRITE mode.
29580	//
29581	// Possible values:
29582	//   "READ_ONLY"
29583	//   "READ_WRITE"
29584	Mode string `json:"mode,omitempty"`
29585
29586	// Source: The URL of the disk resource that is stateful and should be
29587	// attached to the VM instance.
29588	Source string `json:"source,omitempty"`
29589
29590	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
29591	// unconditionally include in API requests. By default, fields with
29592	// empty values are omitted from API requests. However, any non-pointer,
29593	// non-interface field appearing in ForceSendFields will be sent to the
29594	// server regardless of whether the field is empty or not. This may be
29595	// used to include empty fields in Patch requests.
29596	ForceSendFields []string `json:"-"`
29597
29598	// NullFields is a list of field names (e.g. "AutoDelete") to include in
29599	// API requests with the JSON null value. By default, fields with empty
29600	// values are omitted from API requests. However, any field with an
29601	// empty value appearing in NullFields will be sent to the server as
29602	// null. It is an error if a field in this list has a non-empty value.
29603	// This may be used to include null fields in Patch requests.
29604	NullFields []string `json:"-"`
29605}
29606
29607func (s *PreservedStatePreservedDisk) MarshalJSON() ([]byte, error) {
29608	type NoMethod PreservedStatePreservedDisk
29609	raw := NoMethod(*s)
29610	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29611}
29612
29613// Principal: All fields defined in a principal are ANDed.
29614type Principal struct {
29615	// Condition: An expression to specify custom condition.
29616	Condition string `json:"condition,omitempty"`
29617
29618	// Groups: The groups the principal belongs to. Exact match, prefix
29619	// match, and suffix match are supported.
29620	Groups []string `json:"groups,omitempty"`
29621
29622	// Ips: IPv4 or IPv6 address or range (In CIDR format)
29623	Ips []string `json:"ips,omitempty"`
29624
29625	// Namespaces: The namespaces. Exact match, prefix match, and suffix
29626	// match are supported.
29627	Namespaces []string `json:"namespaces,omitempty"`
29628
29629	// NotGroups: Negate of groups. Specifies exclusions.
29630	NotGroups []string `json:"notGroups,omitempty"`
29631
29632	// NotIps: Negate of IPs. Specifies exclusions.
29633	NotIps []string `json:"notIps,omitempty"`
29634
29635	// NotNamespaces: Negate of namespaces. Specifies exclusions.
29636	NotNamespaces []string `json:"notNamespaces,omitempty"`
29637
29638	// NotUsers: Negate of users. Specifies exclusions.
29639	NotUsers []string `json:"notUsers,omitempty"`
29640
29641	// Properties: A map of Istio attribute to expected values. Exact match,
29642	// prefix match, and suffix match are supported for values. For example,
29643	// `request.headers[version]: "v1". The properties are ANDed together.
29644	Properties map[string]string `json:"properties,omitempty"`
29645
29646	// Users: The user names/IDs or service accounts. Exact match, prefix
29647	// match, and suffix match are supported.
29648	Users []string `json:"users,omitempty"`
29649
29650	// ForceSendFields is a list of field names (e.g. "Condition") to
29651	// unconditionally include in API requests. By default, fields with
29652	// empty values are omitted from API requests. However, any non-pointer,
29653	// non-interface field appearing in ForceSendFields will be sent to the
29654	// server regardless of whether the field is empty or not. This may be
29655	// used to include empty fields in Patch requests.
29656	ForceSendFields []string `json:"-"`
29657
29658	// NullFields is a list of field names (e.g. "Condition") to include in
29659	// API requests with the JSON null value. By default, fields with empty
29660	// values are omitted from API requests. However, any field with an
29661	// empty value appearing in NullFields will be sent to the server as
29662	// null. It is an error if a field in this list has a non-empty value.
29663	// This may be used to include null fields in Patch requests.
29664	NullFields []string `json:"-"`
29665}
29666
29667func (s *Principal) MarshalJSON() ([]byte, error) {
29668	type NoMethod Principal
29669	raw := NoMethod(*s)
29670	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29671}
29672
29673// Project: Represents a Project resource.
29674//
29675// A project is used to organize resources in a Google Cloud Platform
29676// environment. For more information, read about the  Resource
29677// Hierarchy. (== resource_for {$api_version}.projects ==)
29678type Project struct {
29679	// CommonInstanceMetadata: Metadata key/value pairs available to all
29680	// instances contained in this project. See Custom metadata for more
29681	// information.
29682	CommonInstanceMetadata *Metadata `json:"commonInstanceMetadata,omitempty"`
29683
29684	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
29685	// format.
29686	CreationTimestamp string `json:"creationTimestamp,omitempty"`
29687
29688	// DefaultNetworkTier: This signifies the default network tier used for
29689	// configuring resources of the project and can only take the following
29690	// values: PREMIUM, STANDARD. Initially the default network tier is
29691	// PREMIUM.
29692	//
29693	// Possible values:
29694	//   "PREMIUM"
29695	//   "SELECT"
29696	//   "STANDARD"
29697	DefaultNetworkTier string `json:"defaultNetworkTier,omitempty"`
29698
29699	// DefaultServiceAccount: [Output Only] Default service account used by
29700	// VMs running in this project.
29701	DefaultServiceAccount string `json:"defaultServiceAccount,omitempty"`
29702
29703	// Description: An optional textual description of the resource.
29704	Description string `json:"description,omitempty"`
29705
29706	// EnabledFeatures: Restricted features enabled for use on this project.
29707	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
29708
29709	// Id: [Output Only] The unique identifier for the resource. This
29710	// identifier is defined by the server. This is not the project ID, and
29711	// is just a unique ID used by Compute Engine to identify resources.
29712	Id uint64 `json:"id,omitempty,string"`
29713
29714	// Kind: [Output Only] Type of the resource. Always compute#project for
29715	// projects.
29716	Kind string `json:"kind,omitempty"`
29717
29718	// Name: The project ID. For example: my-example-project. Use the
29719	// project ID to make requests to Compute Engine.
29720	Name string `json:"name,omitempty"`
29721
29722	// Quotas: [Output Only] Quotas assigned to this project.
29723	Quotas []*Quota `json:"quotas,omitempty"`
29724
29725	// SelfLink: [Output Only] Server-defined URL for the resource.
29726	SelfLink string `json:"selfLink,omitempty"`
29727
29728	// UsageExportLocation: The naming prefix for daily usage reports and
29729	// the Google Cloud Storage bucket where they are stored.
29730	UsageExportLocation *UsageExportLocation `json:"usageExportLocation,omitempty"`
29731
29732	// XpnProjectStatus: [Output Only] The role this project has in a shared
29733	// VPC configuration. Currently only HOST projects are differentiated.
29734	//
29735	// Possible values:
29736	//   "HOST"
29737	//   "UNSPECIFIED_XPN_PROJECT_STATUS"
29738	XpnProjectStatus string `json:"xpnProjectStatus,omitempty"`
29739
29740	// ServerResponse contains the HTTP response code and headers from the
29741	// server.
29742	googleapi.ServerResponse `json:"-"`
29743
29744	// ForceSendFields is a list of field names (e.g.
29745	// "CommonInstanceMetadata") to unconditionally include in API requests.
29746	// By default, fields with empty values are omitted from API requests.
29747	// However, any non-pointer, non-interface field appearing in
29748	// ForceSendFields will be sent to the server regardless of whether the
29749	// field is empty or not. This may be used to include empty fields in
29750	// Patch requests.
29751	ForceSendFields []string `json:"-"`
29752
29753	// NullFields is a list of field names (e.g. "CommonInstanceMetadata")
29754	// to include in API requests with the JSON null value. By default,
29755	// fields with empty values are omitted from API requests. However, any
29756	// field with an empty value appearing in NullFields will be sent to the
29757	// server as null. It is an error if a field in this list has a
29758	// non-empty value. This may be used to include null fields in Patch
29759	// requests.
29760	NullFields []string `json:"-"`
29761}
29762
29763func (s *Project) MarshalJSON() ([]byte, error) {
29764	type NoMethod Project
29765	raw := NoMethod(*s)
29766	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29767}
29768
29769type ProjectsDisableXpnResourceRequest struct {
29770	// XpnResource: Service resource (a.k.a service project) ID.
29771	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
29772
29773	// ForceSendFields is a list of field names (e.g. "XpnResource") to
29774	// unconditionally include in API requests. By default, fields with
29775	// empty values are omitted from API requests. However, any non-pointer,
29776	// non-interface field appearing in ForceSendFields will be sent to the
29777	// server regardless of whether the field is empty or not. This may be
29778	// used to include empty fields in Patch requests.
29779	ForceSendFields []string `json:"-"`
29780
29781	// NullFields is a list of field names (e.g. "XpnResource") to include
29782	// in API requests with the JSON null value. By default, fields with
29783	// empty values are omitted from API requests. However, any field with
29784	// an empty value appearing in NullFields will be sent to the server as
29785	// null. It is an error if a field in this list has a non-empty value.
29786	// This may be used to include null fields in Patch requests.
29787	NullFields []string `json:"-"`
29788}
29789
29790func (s *ProjectsDisableXpnResourceRequest) MarshalJSON() ([]byte, error) {
29791	type NoMethod ProjectsDisableXpnResourceRequest
29792	raw := NoMethod(*s)
29793	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29794}
29795
29796type ProjectsEnableXpnResourceRequest struct {
29797	// XpnResource: Service resource (a.k.a service project) ID.
29798	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
29799
29800	// ForceSendFields is a list of field names (e.g. "XpnResource") to
29801	// unconditionally include in API requests. By default, fields with
29802	// empty values are omitted from API requests. However, any non-pointer,
29803	// non-interface field appearing in ForceSendFields will be sent to the
29804	// server regardless of whether the field is empty or not. This may be
29805	// used to include empty fields in Patch requests.
29806	ForceSendFields []string `json:"-"`
29807
29808	// NullFields is a list of field names (e.g. "XpnResource") to include
29809	// in API requests with the JSON null value. By default, fields with
29810	// empty values are omitted from API requests. However, any field with
29811	// an empty value appearing in NullFields will be sent to the server as
29812	// null. It is an error if a field in this list has a non-empty value.
29813	// This may be used to include null fields in Patch requests.
29814	NullFields []string `json:"-"`
29815}
29816
29817func (s *ProjectsEnableXpnResourceRequest) MarshalJSON() ([]byte, error) {
29818	type NoMethod ProjectsEnableXpnResourceRequest
29819	raw := NoMethod(*s)
29820	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29821}
29822
29823type ProjectsGetXpnResources struct {
29824	// Kind: [Output Only] Type of resource. Always
29825	// compute#projectsGetXpnResources for lists of service resources (a.k.a
29826	// service projects)
29827	Kind string `json:"kind,omitempty"`
29828
29829	// NextPageToken: [Output Only] This token allows you to get the next
29830	// page of results for list requests. If the number of results is larger
29831	// than maxResults, use the nextPageToken as a value for the query
29832	// parameter pageToken in the next list request. Subsequent list
29833	// requests will have their own nextPageToken to continue paging through
29834	// the results.
29835	NextPageToken string `json:"nextPageToken,omitempty"`
29836
29837	// Resources: Service resources (a.k.a service projects) attached to
29838	// this project as their shared VPC host.
29839	Resources []*XpnResourceId `json:"resources,omitempty"`
29840
29841	// ServerResponse contains the HTTP response code and headers from the
29842	// server.
29843	googleapi.ServerResponse `json:"-"`
29844
29845	// ForceSendFields is a list of field names (e.g. "Kind") to
29846	// unconditionally include in API requests. By default, fields with
29847	// empty values are omitted from API requests. However, any non-pointer,
29848	// non-interface field appearing in ForceSendFields will be sent to the
29849	// server regardless of whether the field is empty or not. This may be
29850	// used to include empty fields in Patch requests.
29851	ForceSendFields []string `json:"-"`
29852
29853	// NullFields is a list of field names (e.g. "Kind") to include in API
29854	// requests with the JSON null value. By default, fields with empty
29855	// values are omitted from API requests. However, any field with an
29856	// empty value appearing in NullFields will be sent to the server as
29857	// null. It is an error if a field in this list has a non-empty value.
29858	// This may be used to include null fields in Patch requests.
29859	NullFields []string `json:"-"`
29860}
29861
29862func (s *ProjectsGetXpnResources) MarshalJSON() ([]byte, error) {
29863	type NoMethod ProjectsGetXpnResources
29864	raw := NoMethod(*s)
29865	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29866}
29867
29868type ProjectsListXpnHostsRequest struct {
29869	// Organization: Optional organization ID managed by Cloud Resource
29870	// Manager, for which to list shared VPC host projects. If not
29871	// specified, the organization will be inferred from the project.
29872	Organization string `json:"organization,omitempty"`
29873
29874	// ForceSendFields is a list of field names (e.g. "Organization") to
29875	// unconditionally include in API requests. By default, fields with
29876	// empty values are omitted from API requests. However, any non-pointer,
29877	// non-interface field appearing in ForceSendFields will be sent to the
29878	// server regardless of whether the field is empty or not. This may be
29879	// used to include empty fields in Patch requests.
29880	ForceSendFields []string `json:"-"`
29881
29882	// NullFields is a list of field names (e.g. "Organization") to include
29883	// in API requests with the JSON null value. By default, fields with
29884	// empty values are omitted from API requests. However, any field with
29885	// an empty value appearing in NullFields will be sent to the server as
29886	// null. It is an error if a field in this list has a non-empty value.
29887	// This may be used to include null fields in Patch requests.
29888	NullFields []string `json:"-"`
29889}
29890
29891func (s *ProjectsListXpnHostsRequest) MarshalJSON() ([]byte, error) {
29892	type NoMethod ProjectsListXpnHostsRequest
29893	raw := NoMethod(*s)
29894	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29895}
29896
29897type ProjectsSetDefaultNetworkTierRequest struct {
29898	// NetworkTier: Default network tier to be set.
29899	//
29900	// Possible values:
29901	//   "PREMIUM"
29902	//   "SELECT"
29903	//   "STANDARD"
29904	NetworkTier string `json:"networkTier,omitempty"`
29905
29906	// ForceSendFields is a list of field names (e.g. "NetworkTier") to
29907	// unconditionally include in API requests. By default, fields with
29908	// empty values are omitted from API requests. However, any non-pointer,
29909	// non-interface field appearing in ForceSendFields will be sent to the
29910	// server regardless of whether the field is empty or not. This may be
29911	// used to include empty fields in Patch requests.
29912	ForceSendFields []string `json:"-"`
29913
29914	// NullFields is a list of field names (e.g. "NetworkTier") to include
29915	// in API requests with the JSON null value. By default, fields with
29916	// empty values are omitted from API requests. However, any field with
29917	// an empty value appearing in NullFields will be sent to the server as
29918	// null. It is an error if a field in this list has a non-empty value.
29919	// This may be used to include null fields in Patch requests.
29920	NullFields []string `json:"-"`
29921}
29922
29923func (s *ProjectsSetDefaultNetworkTierRequest) MarshalJSON() ([]byte, error) {
29924	type NoMethod ProjectsSetDefaultNetworkTierRequest
29925	raw := NoMethod(*s)
29926	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29927}
29928
29929type ProjectsSetDefaultServiceAccountRequest struct {
29930	// Email: Email address of the service account.
29931	Email string `json:"email,omitempty"`
29932
29933	// ForceSendFields is a list of field names (e.g. "Email") to
29934	// unconditionally include in API requests. By default, fields with
29935	// empty values are omitted from API requests. However, any non-pointer,
29936	// non-interface field appearing in ForceSendFields will be sent to the
29937	// server regardless of whether the field is empty or not. This may be
29938	// used to include empty fields in Patch requests.
29939	ForceSendFields []string `json:"-"`
29940
29941	// NullFields is a list of field names (e.g. "Email") to include in API
29942	// requests with the JSON null value. By default, fields with empty
29943	// values are omitted from API requests. However, any field with an
29944	// empty value appearing in NullFields will be sent to the server as
29945	// null. It is an error if a field in this list has a non-empty value.
29946	// This may be used to include null fields in Patch requests.
29947	NullFields []string `json:"-"`
29948}
29949
29950func (s *ProjectsSetDefaultServiceAccountRequest) MarshalJSON() ([]byte, error) {
29951	type NoMethod ProjectsSetDefaultServiceAccountRequest
29952	raw := NoMethod(*s)
29953	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29954}
29955
29956// PublicAdvertisedPrefix: A public advertised prefix represents an
29957// aggregated IP prefix or netblock which customers bring to cloud. The
29958// IP prefix is a single unit of route advertisement and is announced
29959// globally to the internet.
29960type PublicAdvertisedPrefix struct {
29961	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
29962	// format.
29963	CreationTimestamp string `json:"creationTimestamp,omitempty"`
29964
29965	// Description: An optional description of this resource. Provide this
29966	// property when you create the resource.
29967	Description string `json:"description,omitempty"`
29968
29969	// DnsVerificationIp: The IPv4 address to be used for reverse DNS
29970	// verification.
29971	DnsVerificationIp string `json:"dnsVerificationIp,omitempty"`
29972
29973	// Fingerprint: Fingerprint of this resource. A hash of the contents
29974	// stored in this object. This field is used in optimistic locking. This
29975	// field will be ignored when inserting a new PublicAdvertisedPrefix. An
29976	// up-to-date fingerprint must be provided in order to update the
29977	// PublicAdvertisedPrefix, otherwise the request will fail with error
29978	// 412 conditionNotMet.
29979	//
29980	// To see the latest fingerprint, make a get() request to retrieve a
29981	// PublicAdvertisedPrefix.
29982	Fingerprint string `json:"fingerprint,omitempty"`
29983
29984	// Id: [Output Only] The unique identifier for the resource type. The
29985	// server generates this identifier.
29986	Id uint64 `json:"id,omitempty,string"`
29987
29988	// IpCidrRange: The IPv4 address range, in CIDR format, represented by
29989	// this public advertised prefix.
29990	IpCidrRange string `json:"ipCidrRange,omitempty"`
29991
29992	// Kind: [Output Only] Type of the resource. Always
29993	// compute#publicAdvertisedPrefix for public advertised prefixes.
29994	Kind string `json:"kind,omitempty"`
29995
29996	// Name: Name of the resource. Provided by the client when the resource
29997	// is created. The name must be 1-63 characters long, and comply with
29998	// RFC1035. Specifically, the name must be 1-63 characters long and
29999	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
30000	// the first character must be a lowercase letter, and all following
30001	// characters must be a dash, lowercase letter, or digit, except the
30002	// last character, which cannot be a dash.
30003	Name string `json:"name,omitempty"`
30004
30005	// PublicDelegatedPrefixs: [Output Only] The list of public delegated
30006	// prefixes that exist for this public advertised prefix.
30007	PublicDelegatedPrefixs []*PublicAdvertisedPrefixPublicDelegatedPrefix `json:"publicDelegatedPrefixs,omitempty"`
30008
30009	// SelfLink: [Output Only] Server-defined URL for the resource.
30010	SelfLink string `json:"selfLink,omitempty"`
30011
30012	// SelfLinkWithId: [Output Only] Server-defined URL with id for the
30013	// resource.
30014	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
30015
30016	// SharedSecret: [Output Only] The shared secret to be used for reverse
30017	// DNS verification.
30018	SharedSecret string `json:"sharedSecret,omitempty"`
30019
30020	// Status: The status of the public advertised prefix.
30021	//
30022	// Possible values:
30023	//   "INITIAL"
30024	//   "PREFIX_CONFIGURATION_COMPLETE"
30025	//   "PREFIX_CONFIGURATION_IN_PROGRESS"
30026	//   "PREFIX_REMOVAL_IN_PROGRESS"
30027	//   "PTR_CONFIGURED"
30028	//   "REVERSE_DNS_LOOKUP_FAILED"
30029	//   "VALIDATED"
30030	Status string `json:"status,omitempty"`
30031
30032	// ServerResponse contains the HTTP response code and headers from the
30033	// server.
30034	googleapi.ServerResponse `json:"-"`
30035
30036	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
30037	// to unconditionally include in API requests. By default, fields with
30038	// empty values are omitted from API requests. However, any non-pointer,
30039	// non-interface field appearing in ForceSendFields will be sent to the
30040	// server regardless of whether the field is empty or not. This may be
30041	// used to include empty fields in Patch requests.
30042	ForceSendFields []string `json:"-"`
30043
30044	// NullFields is a list of field names (e.g. "CreationTimestamp") to
30045	// include in API requests with the JSON null value. By default, fields
30046	// with empty values are omitted from API requests. However, any field
30047	// with an empty value appearing in NullFields will be sent to the
30048	// server as null. It is an error if a field in this list has a
30049	// non-empty value. This may be used to include null fields in Patch
30050	// requests.
30051	NullFields []string `json:"-"`
30052}
30053
30054func (s *PublicAdvertisedPrefix) MarshalJSON() ([]byte, error) {
30055	type NoMethod PublicAdvertisedPrefix
30056	raw := NoMethod(*s)
30057	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30058}
30059
30060type PublicAdvertisedPrefixList struct {
30061	// Id: [Output Only] Unique identifier for the resource; defined by the
30062	// server.
30063	Id string `json:"id,omitempty"`
30064
30065	// Items: A list of PublicAdvertisedPrefix resources.
30066	Items []*PublicAdvertisedPrefix `json:"items,omitempty"`
30067
30068	// Kind: [Output Only] Type of the resource. Always
30069	// compute#publicAdvertisedPrefix for public advertised prefixes.
30070	Kind string `json:"kind,omitempty"`
30071
30072	// NextPageToken: [Output Only] This token allows you to get the next
30073	// page of results for list requests. If the number of results is larger
30074	// than maxResults, use the nextPageToken as a value for the query
30075	// parameter pageToken in the next list request. Subsequent list
30076	// requests will have their own nextPageToken to continue paging through
30077	// the results.
30078	NextPageToken string `json:"nextPageToken,omitempty"`
30079
30080	// SelfLink: [Output Only] Server-defined URL for this resource.
30081	SelfLink string `json:"selfLink,omitempty"`
30082
30083	// Warning: [Output Only] Informational warning message.
30084	Warning *PublicAdvertisedPrefixListWarning `json:"warning,omitempty"`
30085
30086	// ServerResponse contains the HTTP response code and headers from the
30087	// server.
30088	googleapi.ServerResponse `json:"-"`
30089
30090	// ForceSendFields is a list of field names (e.g. "Id") 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. "Id") to include in API
30099	// requests with the JSON null value. By default, fields with empty
30100	// values are omitted from API requests. However, any field with an
30101	// empty value appearing in NullFields will be sent to the server as
30102	// null. It is an error if a field in this list has a non-empty value.
30103	// This may be used to include null fields in Patch requests.
30104	NullFields []string `json:"-"`
30105}
30106
30107func (s *PublicAdvertisedPrefixList) MarshalJSON() ([]byte, error) {
30108	type NoMethod PublicAdvertisedPrefixList
30109	raw := NoMethod(*s)
30110	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30111}
30112
30113// PublicAdvertisedPrefixListWarning: [Output Only] Informational
30114// warning message.
30115type PublicAdvertisedPrefixListWarning struct {
30116	// Code: [Output Only] A warning code, if applicable. For example,
30117	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30118	// the response.
30119	//
30120	// Possible values:
30121	//   "CLEANUP_FAILED"
30122	//   "DEPRECATED_RESOURCE_USED"
30123	//   "DEPRECATED_TYPE_USED"
30124	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30125	//   "EXPERIMENTAL_TYPE_USED"
30126	//   "EXTERNAL_API_WARNING"
30127	//   "FIELD_VALUE_OVERRIDEN"
30128	//   "INJECTED_KERNELS_DEPRECATED"
30129	//   "MISSING_TYPE_DEPENDENCY"
30130	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30131	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30132	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30133	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30134	//   "NEXT_HOP_NOT_RUNNING"
30135	//   "NOT_CRITICAL_ERROR"
30136	//   "NO_RESULTS_ON_PAGE"
30137	//   "REQUIRED_TOS_AGREEMENT"
30138	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30139	//   "RESOURCE_NOT_DELETED"
30140	//   "SCHEMA_VALIDATION_IGNORED"
30141	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30142	//   "UNDECLARED_PROPERTIES"
30143	//   "UNREACHABLE"
30144	Code string `json:"code,omitempty"`
30145
30146	// Data: [Output Only] Metadata about this warning in key: value format.
30147	// For example:
30148	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30149	Data []*PublicAdvertisedPrefixListWarningData `json:"data,omitempty"`
30150
30151	// Message: [Output Only] A human-readable description of the warning
30152	// code.
30153	Message string `json:"message,omitempty"`
30154
30155	// ForceSendFields is a list of field names (e.g. "Code") to
30156	// unconditionally include in API requests. By default, fields with
30157	// empty values are omitted from API requests. However, any non-pointer,
30158	// non-interface field appearing in ForceSendFields will be sent to the
30159	// server regardless of whether the field is empty or not. This may be
30160	// used to include empty fields in Patch requests.
30161	ForceSendFields []string `json:"-"`
30162
30163	// NullFields is a list of field names (e.g. "Code") to include in API
30164	// requests with the JSON null value. By default, fields with empty
30165	// values are omitted from API requests. However, any field with an
30166	// empty value appearing in NullFields will be sent to the server as
30167	// null. It is an error if a field in this list has a non-empty value.
30168	// This may be used to include null fields in Patch requests.
30169	NullFields []string `json:"-"`
30170}
30171
30172func (s *PublicAdvertisedPrefixListWarning) MarshalJSON() ([]byte, error) {
30173	type NoMethod PublicAdvertisedPrefixListWarning
30174	raw := NoMethod(*s)
30175	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30176}
30177
30178type PublicAdvertisedPrefixListWarningData struct {
30179	// Key: [Output Only] A key that provides more detail on the warning
30180	// being returned. For example, for warnings where there are no results
30181	// in a list request for a particular zone, this key might be scope and
30182	// the key value might be the zone name. Other examples might be a key
30183	// indicating a deprecated resource and a suggested replacement, or a
30184	// warning about invalid network settings (for example, if an instance
30185	// attempts to perform IP forwarding but is not enabled for IP
30186	// forwarding).
30187	Key string `json:"key,omitempty"`
30188
30189	// Value: [Output Only] A warning data value corresponding to the key.
30190	Value string `json:"value,omitempty"`
30191
30192	// ForceSendFields is a list of field names (e.g. "Key") to
30193	// unconditionally include in API requests. By default, fields with
30194	// empty values are omitted from API requests. However, any non-pointer,
30195	// non-interface field appearing in ForceSendFields will be sent to the
30196	// server regardless of whether the field is empty or not. This may be
30197	// used to include empty fields in Patch requests.
30198	ForceSendFields []string `json:"-"`
30199
30200	// NullFields is a list of field names (e.g. "Key") to include in API
30201	// requests with the JSON null value. By default, fields with empty
30202	// values are omitted from API requests. However, any field with an
30203	// empty value appearing in NullFields will be sent to the server as
30204	// null. It is an error if a field in this list has a non-empty value.
30205	// This may be used to include null fields in Patch requests.
30206	NullFields []string `json:"-"`
30207}
30208
30209func (s *PublicAdvertisedPrefixListWarningData) MarshalJSON() ([]byte, error) {
30210	type NoMethod PublicAdvertisedPrefixListWarningData
30211	raw := NoMethod(*s)
30212	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30213}
30214
30215// PublicAdvertisedPrefixPublicDelegatedPrefix: Represents a CIDR range
30216// which can be used to assign addresses.
30217type PublicAdvertisedPrefixPublicDelegatedPrefix struct {
30218	// Name: The name of the public delegated prefix
30219	Name string `json:"name,omitempty"`
30220
30221	// Region: The region of the public delegated prefix if it is regional.
30222	// If absent, the prefix is global.
30223	Region string `json:"region,omitempty"`
30224
30225	// Status: The status of the public delegated prefix. Possible values
30226	// are: ACTIVE: The public delegated prefix is active DRAINED: The
30227	// public delegated prefix is drained.
30228	Status string `json:"status,omitempty"`
30229
30230	// ForceSendFields is a list of field names (e.g. "Name") to
30231	// unconditionally include in API requests. By default, fields with
30232	// empty values are omitted from API requests. However, any non-pointer,
30233	// non-interface field appearing in ForceSendFields will be sent to the
30234	// server regardless of whether the field is empty or not. This may be
30235	// used to include empty fields in Patch requests.
30236	ForceSendFields []string `json:"-"`
30237
30238	// NullFields is a list of field names (e.g. "Name") to include in API
30239	// requests with the JSON null value. By default, fields with empty
30240	// values are omitted from API requests. However, any field with an
30241	// empty value appearing in NullFields will be sent to the server as
30242	// null. It is an error if a field in this list has a non-empty value.
30243	// This may be used to include null fields in Patch requests.
30244	NullFields []string `json:"-"`
30245}
30246
30247func (s *PublicAdvertisedPrefixPublicDelegatedPrefix) MarshalJSON() ([]byte, error) {
30248	type NoMethod PublicAdvertisedPrefixPublicDelegatedPrefix
30249	raw := NoMethod(*s)
30250	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30251}
30252
30253// PublicDelegatedPrefix: A PublicDelegatedPrefix resource represents an
30254// IP block within a PublicAdvertisedPrefix that is configured within a
30255// single cloud scope (global or region). IPs in the block can be
30256// allocated to resources within that scope. Public delegated prefixes
30257// may be further broken up into smaller IP blocks in the same scope as
30258// the parent block.
30259type PublicDelegatedPrefix struct {
30260	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
30261	// format.
30262	CreationTimestamp string `json:"creationTimestamp,omitempty"`
30263
30264	// Description: An optional description of this resource. Provide this
30265	// property when you create the resource.
30266	Description string `json:"description,omitempty"`
30267
30268	// Fingerprint: Fingerprint of this resource. A hash of the contents
30269	// stored in this object. This field is used in optimistic locking. This
30270	// field will be ignored when inserting a new PublicDelegatedPrefix. An
30271	// up-to-date fingerprint must be provided in order to update the
30272	// PublicDelegatedPrefix, otherwise the request will fail with error 412
30273	// conditionNotMet.
30274	//
30275	// To see the latest fingerprint, make a get() request to retrieve a
30276	// PublicDelegatedPrefix.
30277	Fingerprint string `json:"fingerprint,omitempty"`
30278
30279	// Id: [Output Only] The unique identifier for the resource type. The
30280	// server generates this identifier.
30281	Id uint64 `json:"id,omitempty,string"`
30282
30283	// IpCidrRange: The IPv4 address range, in CIDR format, represented by
30284	// this public delegated prefix.
30285	IpCidrRange string `json:"ipCidrRange,omitempty"`
30286
30287	// Kind: [Output Only] Type of the resource. Always
30288	// compute#publicDelegatedPrefix for public delegated prefixes.
30289	Kind string `json:"kind,omitempty"`
30290
30291	// Name: Name of the resource. Provided by the client when the resource
30292	// is created. The name must be 1-63 characters long, and comply with
30293	// RFC1035. Specifically, the name must be 1-63 characters long and
30294	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
30295	// the first character must be a lowercase letter, and all following
30296	// characters must be a dash, lowercase letter, or digit, except the
30297	// last character, which cannot be a dash.
30298	Name string `json:"name,omitempty"`
30299
30300	// ParentPrefix: The URL of parent prefix. Either PublicAdvertisedPrefix
30301	// or PublicDelegatedPrefix.
30302	ParentPrefix string `json:"parentPrefix,omitempty"`
30303
30304	// PublicDelegatedSubPrefixs: The list of sub public delegated prefixes
30305	// that exist for this public delegated prefix.
30306	PublicDelegatedSubPrefixs []*PublicDelegatedPrefixPublicDelegatedSubPrefix `json:"publicDelegatedSubPrefixs,omitempty"`
30307
30308	// Region: [Output Only] URL of the region where the public delegated
30309	// prefix resides. This field applies only to the region resource. You
30310	// must specify this field as part of the HTTP request URL. It is not
30311	// settable as a field in the request body.
30312	Region string `json:"region,omitempty"`
30313
30314	// SelfLink: [Output Only] Server-defined URL for the resource.
30315	SelfLink string `json:"selfLink,omitempty"`
30316
30317	// SelfLinkWithId: [Output Only] Server-defined URL with id for the
30318	// resource.
30319	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
30320
30321	// Status: [Output Only] The status of the public delegated prefix.
30322	//
30323	// Possible values:
30324	//   "ANNOUNCED"
30325	//   "INITIALIZING"
30326	Status string `json:"status,omitempty"`
30327
30328	// ServerResponse contains the HTTP response code and headers from the
30329	// server.
30330	googleapi.ServerResponse `json:"-"`
30331
30332	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
30333	// to unconditionally include in API requests. By default, fields with
30334	// empty values are omitted from API requests. However, any non-pointer,
30335	// non-interface field appearing in ForceSendFields will be sent to the
30336	// server regardless of whether the field is empty or not. This may be
30337	// used to include empty fields in Patch requests.
30338	ForceSendFields []string `json:"-"`
30339
30340	// NullFields is a list of field names (e.g. "CreationTimestamp") to
30341	// include in API requests with the JSON null value. By default, fields
30342	// with empty values are omitted from API requests. However, any field
30343	// with an empty value appearing in NullFields will be sent to the
30344	// server as null. It is an error if a field in this list has a
30345	// non-empty value. This may be used to include null fields in Patch
30346	// requests.
30347	NullFields []string `json:"-"`
30348}
30349
30350func (s *PublicDelegatedPrefix) MarshalJSON() ([]byte, error) {
30351	type NoMethod PublicDelegatedPrefix
30352	raw := NoMethod(*s)
30353	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30354}
30355
30356type PublicDelegatedPrefixAggregatedList struct {
30357	// Id: [Output Only] Unique identifier for the resource; defined by the
30358	// server.
30359	Id string `json:"id,omitempty"`
30360
30361	// Items: A list of PublicDelegatedPrefixesScopedList resources.
30362	Items map[string]PublicDelegatedPrefixesScopedList `json:"items,omitempty"`
30363
30364	// Kind: [Output Only] Type of the resource. Always
30365	// compute#publicDelegatedPrefixAggregatedList for aggregated lists of
30366	// public delegated prefixes.
30367	Kind string `json:"kind,omitempty"`
30368
30369	// NextPageToken: [Output Only] This token allows you to get the next
30370	// page of results for list requests. If the number of results is larger
30371	// than maxResults, use the nextPageToken as a value for the query
30372	// parameter pageToken in the next list request. Subsequent list
30373	// requests will have their own nextPageToken to continue paging through
30374	// the results.
30375	NextPageToken string `json:"nextPageToken,omitempty"`
30376
30377	// SelfLink: [Output Only] Server-defined URL for this resource.
30378	SelfLink string `json:"selfLink,omitempty"`
30379
30380	// Warning: [Output Only] Informational warning message.
30381	Warning *PublicDelegatedPrefixAggregatedListWarning `json:"warning,omitempty"`
30382
30383	// ServerResponse contains the HTTP response code and headers from the
30384	// server.
30385	googleapi.ServerResponse `json:"-"`
30386
30387	// ForceSendFields is a list of field names (e.g. "Id") to
30388	// unconditionally include in API requests. By default, fields with
30389	// empty values are omitted from API requests. However, any non-pointer,
30390	// non-interface field appearing in ForceSendFields will be sent to the
30391	// server regardless of whether the field is empty or not. This may be
30392	// used to include empty fields in Patch requests.
30393	ForceSendFields []string `json:"-"`
30394
30395	// NullFields is a list of field names (e.g. "Id") to include in API
30396	// requests with the JSON null value. By default, fields with empty
30397	// values are omitted from API requests. However, any field with an
30398	// empty value appearing in NullFields will be sent to the server as
30399	// null. It is an error if a field in this list has a non-empty value.
30400	// This may be used to include null fields in Patch requests.
30401	NullFields []string `json:"-"`
30402}
30403
30404func (s *PublicDelegatedPrefixAggregatedList) MarshalJSON() ([]byte, error) {
30405	type NoMethod PublicDelegatedPrefixAggregatedList
30406	raw := NoMethod(*s)
30407	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30408}
30409
30410// PublicDelegatedPrefixAggregatedListWarning: [Output Only]
30411// Informational warning message.
30412type PublicDelegatedPrefixAggregatedListWarning struct {
30413	// Code: [Output Only] A warning code, if applicable. For example,
30414	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30415	// the response.
30416	//
30417	// Possible values:
30418	//   "CLEANUP_FAILED"
30419	//   "DEPRECATED_RESOURCE_USED"
30420	//   "DEPRECATED_TYPE_USED"
30421	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30422	//   "EXPERIMENTAL_TYPE_USED"
30423	//   "EXTERNAL_API_WARNING"
30424	//   "FIELD_VALUE_OVERRIDEN"
30425	//   "INJECTED_KERNELS_DEPRECATED"
30426	//   "MISSING_TYPE_DEPENDENCY"
30427	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30428	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30429	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30430	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30431	//   "NEXT_HOP_NOT_RUNNING"
30432	//   "NOT_CRITICAL_ERROR"
30433	//   "NO_RESULTS_ON_PAGE"
30434	//   "REQUIRED_TOS_AGREEMENT"
30435	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30436	//   "RESOURCE_NOT_DELETED"
30437	//   "SCHEMA_VALIDATION_IGNORED"
30438	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30439	//   "UNDECLARED_PROPERTIES"
30440	//   "UNREACHABLE"
30441	Code string `json:"code,omitempty"`
30442
30443	// Data: [Output Only] Metadata about this warning in key: value format.
30444	// For example:
30445	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30446	Data []*PublicDelegatedPrefixAggregatedListWarningData `json:"data,omitempty"`
30447
30448	// Message: [Output Only] A human-readable description of the warning
30449	// code.
30450	Message string `json:"message,omitempty"`
30451
30452	// ForceSendFields is a list of field names (e.g. "Code") to
30453	// unconditionally include in API requests. By default, fields with
30454	// empty values are omitted from API requests. However, any non-pointer,
30455	// non-interface field appearing in ForceSendFields will be sent to the
30456	// server regardless of whether the field is empty or not. This may be
30457	// used to include empty fields in Patch requests.
30458	ForceSendFields []string `json:"-"`
30459
30460	// NullFields is a list of field names (e.g. "Code") to include in API
30461	// requests with the JSON null value. By default, fields with empty
30462	// values are omitted from API requests. However, any field with an
30463	// empty value appearing in NullFields will be sent to the server as
30464	// null. It is an error if a field in this list has a non-empty value.
30465	// This may be used to include null fields in Patch requests.
30466	NullFields []string `json:"-"`
30467}
30468
30469func (s *PublicDelegatedPrefixAggregatedListWarning) MarshalJSON() ([]byte, error) {
30470	type NoMethod PublicDelegatedPrefixAggregatedListWarning
30471	raw := NoMethod(*s)
30472	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30473}
30474
30475type PublicDelegatedPrefixAggregatedListWarningData struct {
30476	// Key: [Output Only] A key that provides more detail on the warning
30477	// being returned. For example, for warnings where there are no results
30478	// in a list request for a particular zone, this key might be scope and
30479	// the key value might be the zone name. Other examples might be a key
30480	// indicating a deprecated resource and a suggested replacement, or a
30481	// warning about invalid network settings (for example, if an instance
30482	// attempts to perform IP forwarding but is not enabled for IP
30483	// forwarding).
30484	Key string `json:"key,omitempty"`
30485
30486	// Value: [Output Only] A warning data value corresponding to the key.
30487	Value string `json:"value,omitempty"`
30488
30489	// ForceSendFields is a list of field names (e.g. "Key") to
30490	// unconditionally include in API requests. By default, fields with
30491	// empty values are omitted from API requests. However, any non-pointer,
30492	// non-interface field appearing in ForceSendFields will be sent to the
30493	// server regardless of whether the field is empty or not. This may be
30494	// used to include empty fields in Patch requests.
30495	ForceSendFields []string `json:"-"`
30496
30497	// NullFields is a list of field names (e.g. "Key") to include in API
30498	// requests with the JSON null value. By default, fields with empty
30499	// values are omitted from API requests. However, any field with an
30500	// empty value appearing in NullFields will be sent to the server as
30501	// null. It is an error if a field in this list has a non-empty value.
30502	// This may be used to include null fields in Patch requests.
30503	NullFields []string `json:"-"`
30504}
30505
30506func (s *PublicDelegatedPrefixAggregatedListWarningData) MarshalJSON() ([]byte, error) {
30507	type NoMethod PublicDelegatedPrefixAggregatedListWarningData
30508	raw := NoMethod(*s)
30509	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30510}
30511
30512type PublicDelegatedPrefixList struct {
30513	// Id: [Output Only] Unique identifier for the resource; defined by the
30514	// server.
30515	Id string `json:"id,omitempty"`
30516
30517	// Items: A list of PublicDelegatedPrefix resources.
30518	Items []*PublicDelegatedPrefix `json:"items,omitempty"`
30519
30520	// Kind: [Output Only] Type of the resource. Always
30521	// compute#publicDelegatedPrefixList for public delegated prefixes.
30522	Kind string `json:"kind,omitempty"`
30523
30524	// NextPageToken: [Output Only] This token allows you to get the next
30525	// page of results for list requests. If the number of results is larger
30526	// than maxResults, use the nextPageToken as a value for the query
30527	// parameter pageToken in the next list request. Subsequent list
30528	// requests will have their own nextPageToken to continue paging through
30529	// the results.
30530	NextPageToken string `json:"nextPageToken,omitempty"`
30531
30532	// SelfLink: [Output Only] Server-defined URL for this resource.
30533	SelfLink string `json:"selfLink,omitempty"`
30534
30535	// Warning: [Output Only] Informational warning message.
30536	Warning *PublicDelegatedPrefixListWarning `json:"warning,omitempty"`
30537
30538	// ServerResponse contains the HTTP response code and headers from the
30539	// server.
30540	googleapi.ServerResponse `json:"-"`
30541
30542	// ForceSendFields is a list of field names (e.g. "Id") to
30543	// unconditionally include in API requests. By default, fields with
30544	// empty values are omitted from API requests. However, any non-pointer,
30545	// non-interface field appearing in ForceSendFields will be sent to the
30546	// server regardless of whether the field is empty or not. This may be
30547	// used to include empty fields in Patch requests.
30548	ForceSendFields []string `json:"-"`
30549
30550	// NullFields is a list of field names (e.g. "Id") to include in API
30551	// requests with the JSON null value. By default, fields with empty
30552	// values are omitted from API requests. However, any field with an
30553	// empty value appearing in NullFields will be sent to the server as
30554	// null. It is an error if a field in this list has a non-empty value.
30555	// This may be used to include null fields in Patch requests.
30556	NullFields []string `json:"-"`
30557}
30558
30559func (s *PublicDelegatedPrefixList) MarshalJSON() ([]byte, error) {
30560	type NoMethod PublicDelegatedPrefixList
30561	raw := NoMethod(*s)
30562	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30563}
30564
30565// PublicDelegatedPrefixListWarning: [Output Only] Informational warning
30566// message.
30567type PublicDelegatedPrefixListWarning struct {
30568	// Code: [Output Only] A warning code, if applicable. For example,
30569	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30570	// the response.
30571	//
30572	// Possible values:
30573	//   "CLEANUP_FAILED"
30574	//   "DEPRECATED_RESOURCE_USED"
30575	//   "DEPRECATED_TYPE_USED"
30576	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30577	//   "EXPERIMENTAL_TYPE_USED"
30578	//   "EXTERNAL_API_WARNING"
30579	//   "FIELD_VALUE_OVERRIDEN"
30580	//   "INJECTED_KERNELS_DEPRECATED"
30581	//   "MISSING_TYPE_DEPENDENCY"
30582	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30583	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30584	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30585	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30586	//   "NEXT_HOP_NOT_RUNNING"
30587	//   "NOT_CRITICAL_ERROR"
30588	//   "NO_RESULTS_ON_PAGE"
30589	//   "REQUIRED_TOS_AGREEMENT"
30590	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30591	//   "RESOURCE_NOT_DELETED"
30592	//   "SCHEMA_VALIDATION_IGNORED"
30593	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30594	//   "UNDECLARED_PROPERTIES"
30595	//   "UNREACHABLE"
30596	Code string `json:"code,omitempty"`
30597
30598	// Data: [Output Only] Metadata about this warning in key: value format.
30599	// For example:
30600	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30601	Data []*PublicDelegatedPrefixListWarningData `json:"data,omitempty"`
30602
30603	// Message: [Output Only] A human-readable description of the warning
30604	// code.
30605	Message string `json:"message,omitempty"`
30606
30607	// ForceSendFields is a list of field names (e.g. "Code") to
30608	// unconditionally include in API requests. By default, fields with
30609	// empty values are omitted from API requests. However, any non-pointer,
30610	// non-interface field appearing in ForceSendFields will be sent to the
30611	// server regardless of whether the field is empty or not. This may be
30612	// used to include empty fields in Patch requests.
30613	ForceSendFields []string `json:"-"`
30614
30615	// NullFields is a list of field names (e.g. "Code") to include in API
30616	// requests with the JSON null value. By default, fields with empty
30617	// values are omitted from API requests. However, any field with an
30618	// empty value appearing in NullFields will be sent to the server as
30619	// null. It is an error if a field in this list has a non-empty value.
30620	// This may be used to include null fields in Patch requests.
30621	NullFields []string `json:"-"`
30622}
30623
30624func (s *PublicDelegatedPrefixListWarning) MarshalJSON() ([]byte, error) {
30625	type NoMethod PublicDelegatedPrefixListWarning
30626	raw := NoMethod(*s)
30627	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30628}
30629
30630type PublicDelegatedPrefixListWarningData struct {
30631	// Key: [Output Only] A key that provides more detail on the warning
30632	// being returned. For example, for warnings where there are no results
30633	// in a list request for a particular zone, this key might be scope and
30634	// the key value might be the zone name. Other examples might be a key
30635	// indicating a deprecated resource and a suggested replacement, or a
30636	// warning about invalid network settings (for example, if an instance
30637	// attempts to perform IP forwarding but is not enabled for IP
30638	// forwarding).
30639	Key string `json:"key,omitempty"`
30640
30641	// Value: [Output Only] A warning data value corresponding to the key.
30642	Value string `json:"value,omitempty"`
30643
30644	// ForceSendFields is a list of field names (e.g. "Key") to
30645	// unconditionally include in API requests. By default, fields with
30646	// empty values are omitted from API requests. However, any non-pointer,
30647	// non-interface field appearing in ForceSendFields will be sent to the
30648	// server regardless of whether the field is empty or not. This may be
30649	// used to include empty fields in Patch requests.
30650	ForceSendFields []string `json:"-"`
30651
30652	// NullFields is a list of field names (e.g. "Key") to include in API
30653	// requests with the JSON null value. By default, fields with empty
30654	// values are omitted from API requests. However, any field with an
30655	// empty value appearing in NullFields will be sent to the server as
30656	// null. It is an error if a field in this list has a non-empty value.
30657	// This may be used to include null fields in Patch requests.
30658	NullFields []string `json:"-"`
30659}
30660
30661func (s *PublicDelegatedPrefixListWarningData) MarshalJSON() ([]byte, error) {
30662	type NoMethod PublicDelegatedPrefixListWarningData
30663	raw := NoMethod(*s)
30664	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30665}
30666
30667// PublicDelegatedPrefixPublicDelegatedSubPrefix: Represents a sub
30668// PublicDelegatedPrefix.
30669type PublicDelegatedPrefixPublicDelegatedSubPrefix struct {
30670	// DelegateeProject: Name of the project scoping this
30671	// PublicDelegatedSubPrefix.
30672	DelegateeProject string `json:"delegateeProject,omitempty"`
30673
30674	// Description: An optional description of this resource. Provide this
30675	// property when you create the resource.
30676	Description string `json:"description,omitempty"`
30677
30678	// IpCidrRange: The IPv4 address range, in CIDR format, represented by
30679	// this sub public delegated prefix.
30680	IpCidrRange string `json:"ipCidrRange,omitempty"`
30681
30682	// IsAddress: Whether the sub prefix is delegated to create Address
30683	// resources in the delegatee project.
30684	IsAddress bool `json:"isAddress,omitempty"`
30685
30686	// Name: The name of the sub public delegated prefix.
30687	Name string `json:"name,omitempty"`
30688
30689	// Region: [Output Only] The region of the sub public delegated prefix
30690	// if it is regional. If absent, the sub prefix is global.
30691	Region string `json:"region,omitempty"`
30692
30693	// Status: [Output Only] The status of the sub public delegated prefix.
30694	//
30695	// Possible values:
30696	//   "ACTIVE"
30697	//   "INACTIVE"
30698	Status string `json:"status,omitempty"`
30699
30700	// ForceSendFields is a list of field names (e.g. "DelegateeProject") to
30701	// unconditionally include in API requests. By default, fields with
30702	// empty values are omitted from API requests. However, any non-pointer,
30703	// non-interface field appearing in ForceSendFields will be sent to the
30704	// server regardless of whether the field is empty or not. This may be
30705	// used to include empty fields in Patch requests.
30706	ForceSendFields []string `json:"-"`
30707
30708	// NullFields is a list of field names (e.g. "DelegateeProject") to
30709	// include in API requests with the JSON null value. By default, fields
30710	// with empty values are omitted from API requests. However, any field
30711	// with an empty value appearing in NullFields will be sent to the
30712	// server as null. It is an error if a field in this list has a
30713	// non-empty value. This may be used to include null fields in Patch
30714	// requests.
30715	NullFields []string `json:"-"`
30716}
30717
30718func (s *PublicDelegatedPrefixPublicDelegatedSubPrefix) MarshalJSON() ([]byte, error) {
30719	type NoMethod PublicDelegatedPrefixPublicDelegatedSubPrefix
30720	raw := NoMethod(*s)
30721	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30722}
30723
30724type PublicDelegatedPrefixesScopedList struct {
30725	// PublicDelegatedPrefixes: [Output Only] A list of
30726	// PublicDelegatedPrefixes contained in this scope.
30727	PublicDelegatedPrefixes []*PublicDelegatedPrefix `json:"publicDelegatedPrefixes,omitempty"`
30728
30729	// Warning: [Output Only] Informational warning which replaces the list
30730	// of public delegated prefixes when the list is empty.
30731	Warning *PublicDelegatedPrefixesScopedListWarning `json:"warning,omitempty"`
30732
30733	// ForceSendFields is a list of field names (e.g.
30734	// "PublicDelegatedPrefixes") to unconditionally include in API
30735	// requests. By default, fields with empty values are omitted from API
30736	// requests. However, any non-pointer, non-interface field appearing in
30737	// ForceSendFields will be sent to the server regardless of whether the
30738	// field is empty or not. This may be used to include empty fields in
30739	// Patch requests.
30740	ForceSendFields []string `json:"-"`
30741
30742	// NullFields is a list of field names (e.g. "PublicDelegatedPrefixes")
30743	// to include in API requests with the JSON null value. By default,
30744	// fields with empty values are omitted from API requests. However, any
30745	// field with an empty value appearing in NullFields will be sent to the
30746	// server as null. It is an error if a field in this list has a
30747	// non-empty value. This may be used to include null fields in Patch
30748	// requests.
30749	NullFields []string `json:"-"`
30750}
30751
30752func (s *PublicDelegatedPrefixesScopedList) MarshalJSON() ([]byte, error) {
30753	type NoMethod PublicDelegatedPrefixesScopedList
30754	raw := NoMethod(*s)
30755	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30756}
30757
30758// PublicDelegatedPrefixesScopedListWarning: [Output Only] Informational
30759// warning which replaces the list of public delegated prefixes when the
30760// list is empty.
30761type PublicDelegatedPrefixesScopedListWarning struct {
30762	// Code: [Output Only] A warning code, if applicable. For example,
30763	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30764	// the response.
30765	//
30766	// Possible values:
30767	//   "CLEANUP_FAILED"
30768	//   "DEPRECATED_RESOURCE_USED"
30769	//   "DEPRECATED_TYPE_USED"
30770	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30771	//   "EXPERIMENTAL_TYPE_USED"
30772	//   "EXTERNAL_API_WARNING"
30773	//   "FIELD_VALUE_OVERRIDEN"
30774	//   "INJECTED_KERNELS_DEPRECATED"
30775	//   "MISSING_TYPE_DEPENDENCY"
30776	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30777	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30778	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30779	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30780	//   "NEXT_HOP_NOT_RUNNING"
30781	//   "NOT_CRITICAL_ERROR"
30782	//   "NO_RESULTS_ON_PAGE"
30783	//   "REQUIRED_TOS_AGREEMENT"
30784	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30785	//   "RESOURCE_NOT_DELETED"
30786	//   "SCHEMA_VALIDATION_IGNORED"
30787	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30788	//   "UNDECLARED_PROPERTIES"
30789	//   "UNREACHABLE"
30790	Code string `json:"code,omitempty"`
30791
30792	// Data: [Output Only] Metadata about this warning in key: value format.
30793	// For example:
30794	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30795	Data []*PublicDelegatedPrefixesScopedListWarningData `json:"data,omitempty"`
30796
30797	// Message: [Output Only] A human-readable description of the warning
30798	// code.
30799	Message string `json:"message,omitempty"`
30800
30801	// ForceSendFields is a list of field names (e.g. "Code") to
30802	// unconditionally include in API requests. By default, fields with
30803	// empty values are omitted from API requests. However, any non-pointer,
30804	// non-interface field appearing in ForceSendFields will be sent to the
30805	// server regardless of whether the field is empty or not. This may be
30806	// used to include empty fields in Patch requests.
30807	ForceSendFields []string `json:"-"`
30808
30809	// NullFields is a list of field names (e.g. "Code") to include in API
30810	// requests with the JSON null value. By default, fields with empty
30811	// values are omitted from API requests. However, any field with an
30812	// empty value appearing in NullFields will be sent to the server as
30813	// null. It is an error if a field in this list has a non-empty value.
30814	// This may be used to include null fields in Patch requests.
30815	NullFields []string `json:"-"`
30816}
30817
30818func (s *PublicDelegatedPrefixesScopedListWarning) MarshalJSON() ([]byte, error) {
30819	type NoMethod PublicDelegatedPrefixesScopedListWarning
30820	raw := NoMethod(*s)
30821	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30822}
30823
30824type PublicDelegatedPrefixesScopedListWarningData struct {
30825	// Key: [Output Only] A key that provides more detail on the warning
30826	// being returned. For example, for warnings where there are no results
30827	// in a list request for a particular zone, this key might be scope and
30828	// the key value might be the zone name. Other examples might be a key
30829	// indicating a deprecated resource and a suggested replacement, or a
30830	// warning about invalid network settings (for example, if an instance
30831	// attempts to perform IP forwarding but is not enabled for IP
30832	// forwarding).
30833	Key string `json:"key,omitempty"`
30834
30835	// Value: [Output Only] A warning data value corresponding to the key.
30836	Value string `json:"value,omitempty"`
30837
30838	// ForceSendFields is a list of field names (e.g. "Key") to
30839	// unconditionally include in API requests. By default, fields with
30840	// empty values are omitted from API requests. However, any non-pointer,
30841	// non-interface field appearing in ForceSendFields will be sent to the
30842	// server regardless of whether the field is empty or not. This may be
30843	// used to include empty fields in Patch requests.
30844	ForceSendFields []string `json:"-"`
30845
30846	// NullFields is a list of field names (e.g. "Key") to include in API
30847	// requests with the JSON null value. By default, fields with empty
30848	// values are omitted from API requests. However, any field with an
30849	// empty value appearing in NullFields will be sent to the server as
30850	// null. It is an error if a field in this list has a non-empty value.
30851	// This may be used to include null fields in Patch requests.
30852	NullFields []string `json:"-"`
30853}
30854
30855func (s *PublicDelegatedPrefixesScopedListWarningData) MarshalJSON() ([]byte, error) {
30856	type NoMethod PublicDelegatedPrefixesScopedListWarningData
30857	raw := NoMethod(*s)
30858	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30859}
30860
30861// Quota: A quotas entry.
30862type Quota struct {
30863	// Limit: [Output Only] Quota limit for this metric.
30864	Limit float64 `json:"limit,omitempty"`
30865
30866	// Metric: [Output Only] Name of the quota metric.
30867	//
30868	// Possible values:
30869	//   "ALIASES_PER_NETWORK_GLOBAL"
30870	//   "AMD_S9300_GPUS"
30871	//   "AUTOSCALERS"
30872	//   "BACKEND_BUCKETS"
30873	//   "BACKEND_SERVICES"
30874	//   "C2_CPUS"
30875	//   "COMMITMENTS"
30876	//   "COMMITTED_C2_CPUS"
30877	//   "COMMITTED_CPUS"
30878	//   "COMMITTED_LICENSES"
30879	//   "COMMITTED_LOCAL_SSD_TOTAL_GB"
30880	//   "COMMITTED_N2D_CPUS"
30881	//   "COMMITTED_N2_CPUS"
30882	//   "COMMITTED_NVIDIA_K80_GPUS"
30883	//   "COMMITTED_NVIDIA_P100_GPUS"
30884	//   "COMMITTED_NVIDIA_P4_GPUS"
30885	//   "COMMITTED_NVIDIA_T4_GPUS"
30886	//   "COMMITTED_NVIDIA_V100_GPUS"
30887	//   "CPUS"
30888	//   "CPUS_ALL_REGIONS"
30889	//   "DISKS_TOTAL_GB"
30890	//   "EXTERNAL_VPN_GATEWAYS"
30891	//   "FIREWALLS"
30892	//   "FORWARDING_RULES"
30893	//   "GLOBAL_INTERNAL_ADDRESSES"
30894	//   "GPUS_ALL_REGIONS"
30895	//   "HEALTH_CHECKS"
30896	//   "IMAGES"
30897	//   "INSTANCES"
30898	//   "INSTANCES_PER_NETWORK_GLOBAL"
30899	//   "INSTANCE_GROUPS"
30900	//   "INSTANCE_GROUP_MANAGERS"
30901	//   "INSTANCE_TEMPLATES"
30902	//   "INTERCONNECTS"
30903	//   "INTERCONNECT_ATTACHMENTS_PER_REGION"
30904	//   "INTERCONNECT_ATTACHMENTS_TOTAL_MBPS"
30905	//   "INTERCONNECT_TOTAL_GBPS"
30906	//   "INTERNAL_ADDRESSES"
30907	//   "INTERNAL_FORWARDING_RULES_PER_NETWORK"
30908	//   "INTERNAL_FORWARDING_RULES_WITH_GLOBAL_ACCESS_PER_NETWORK"
30909	//   "INTERNAL_FORWARDING_RULES_WITH_TARGET_INSTANCE_PER_NETWORK"
30910	//   "INTERNAL_TARGET_INSTANCE_WITH_GLOBAL_ACCESS_PER_NETWORK"
30911	//   "IN_USE_ADDRESSES"
30912	//   "IN_USE_BACKUP_SCHEDULES"
30913	//   "IN_USE_MAINTENANCE_WINDOWS"
30914	//   "IN_USE_SNAPSHOT_SCHEDULES"
30915	//   "LOCAL_SSD_TOTAL_GB"
30916	//   "MACHINE_IMAGES"
30917	//   "N2D_CPUS"
30918	//   "N2_CPUS"
30919	//   "NETWORKS"
30920	//   "NETWORK_ENDPOINT_GROUPS"
30921	//   "NVIDIA_K80_GPUS"
30922	//   "NVIDIA_P100_GPUS"
30923	//   "NVIDIA_P100_VWS_GPUS"
30924	//   "NVIDIA_P4_GPUS"
30925	//   "NVIDIA_P4_VWS_GPUS"
30926	//   "NVIDIA_T4_GPUS"
30927	//   "NVIDIA_T4_VWS_GPUS"
30928	//   "NVIDIA_V100_GPUS"
30929	//   "PACKET_MIRRORINGS"
30930	//   "PREEMPTIBLE_CPUS"
30931	//   "PREEMPTIBLE_LOCAL_SSD_GB"
30932	//   "PREEMPTIBLE_NVIDIA_K80_GPUS"
30933	//   "PREEMPTIBLE_NVIDIA_P100_GPUS"
30934	//   "PREEMPTIBLE_NVIDIA_P100_VWS_GPUS"
30935	//   "PREEMPTIBLE_NVIDIA_P4_GPUS"
30936	//   "PREEMPTIBLE_NVIDIA_P4_VWS_GPUS"
30937	//   "PREEMPTIBLE_NVIDIA_T4_GPUS"
30938	//   "PREEMPTIBLE_NVIDIA_T4_VWS_GPUS"
30939	//   "PREEMPTIBLE_NVIDIA_V100_GPUS"
30940	//   "PRIVATE_V6_ACCESS_SUBNETWORKS"
30941	//   "REGIONAL_AUTOSCALERS"
30942	//   "REGIONAL_INSTANCE_GROUP_MANAGERS"
30943	//   "RESERVATIONS"
30944	//   "RESOURCE_POLICIES"
30945	//   "ROUTERS"
30946	//   "ROUTES"
30947	//   "SECURITY_POLICIES"
30948	//   "SECURITY_POLICY_CEVAL_RULES"
30949	//   "SECURITY_POLICY_RULES"
30950	//   "SNAPSHOTS"
30951	//   "SSD_TOTAL_GB"
30952	//   "SSL_CERTIFICATES"
30953	//   "STATIC_ADDRESSES"
30954	//   "SUBNETWORKS"
30955	//   "SUBNET_RANGES_PER_NETWORK"
30956	//   "TARGET_HTTPS_PROXIES"
30957	//   "TARGET_HTTP_PROXIES"
30958	//   "TARGET_INSTANCES"
30959	//   "TARGET_POOLS"
30960	//   "TARGET_SSL_PROXIES"
30961	//   "TARGET_TCP_PROXIES"
30962	//   "TARGET_VPN_GATEWAYS"
30963	//   "URL_MAPS"
30964	//   "VPN_GATEWAYS"
30965	//   "VPN_TUNNELS"
30966	//   "XPN_SERVICE_PROJECTS"
30967	Metric string `json:"metric,omitempty"`
30968
30969	// Owner: [Output Only] Owning resource. This is the resource on which
30970	// this quota is applied.
30971	Owner string `json:"owner,omitempty"`
30972
30973	// Usage: [Output Only] Current usage of this metric.
30974	Usage float64 `json:"usage,omitempty"`
30975
30976	// ForceSendFields is a list of field names (e.g. "Limit") to
30977	// unconditionally include in API requests. By default, fields with
30978	// empty values are omitted from API requests. However, any non-pointer,
30979	// non-interface field appearing in ForceSendFields will be sent to the
30980	// server regardless of whether the field is empty or not. This may be
30981	// used to include empty fields in Patch requests.
30982	ForceSendFields []string `json:"-"`
30983
30984	// NullFields is a list of field names (e.g. "Limit") to include in API
30985	// requests with the JSON null value. By default, fields with empty
30986	// values are omitted from API requests. However, any field with an
30987	// empty value appearing in NullFields will be sent to the server as
30988	// null. It is an error if a field in this list has a non-empty value.
30989	// This may be used to include null fields in Patch requests.
30990	NullFields []string `json:"-"`
30991}
30992
30993func (s *Quota) MarshalJSON() ([]byte, error) {
30994	type NoMethod Quota
30995	raw := NoMethod(*s)
30996	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30997}
30998
30999func (s *Quota) UnmarshalJSON(data []byte) error {
31000	type NoMethod Quota
31001	var s1 struct {
31002		Limit gensupport.JSONFloat64 `json:"limit"`
31003		Usage gensupport.JSONFloat64 `json:"usage"`
31004		*NoMethod
31005	}
31006	s1.NoMethod = (*NoMethod)(s)
31007	if err := json.Unmarshal(data, &s1); err != nil {
31008		return err
31009	}
31010	s.Limit = float64(s1.Limit)
31011	s.Usage = float64(s1.Usage)
31012	return nil
31013}
31014
31015type RbacPolicy struct {
31016	// Name: Name of the RbacPolicy.
31017	Name string `json:"name,omitempty"`
31018
31019	// Permissions: The list of permissions.
31020	Permissions []*Permission `json:"permissions,omitempty"`
31021
31022	// Principals: The list of principals.
31023	Principals []*Principal `json:"principals,omitempty"`
31024
31025	// ForceSendFields is a list of field names (e.g. "Name") to
31026	// unconditionally include in API requests. By default, fields with
31027	// empty values are omitted from API requests. However, any non-pointer,
31028	// non-interface field appearing in ForceSendFields will be sent to the
31029	// server regardless of whether the field is empty or not. This may be
31030	// used to include empty fields in Patch requests.
31031	ForceSendFields []string `json:"-"`
31032
31033	// NullFields is a list of field names (e.g. "Name") to include in API
31034	// requests with the JSON null value. By default, fields with empty
31035	// values are omitted from API requests. However, any field with an
31036	// empty value appearing in NullFields will be sent to the server as
31037	// null. It is an error if a field in this list has a non-empty value.
31038	// This may be used to include null fields in Patch requests.
31039	NullFields []string `json:"-"`
31040}
31041
31042func (s *RbacPolicy) MarshalJSON() ([]byte, error) {
31043	type NoMethod RbacPolicy
31044	raw := NoMethod(*s)
31045	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31046}
31047
31048// Reference: Represents a reference to a resource.
31049type Reference struct {
31050	// Kind: [Output Only] Type of the resource. Always compute#reference
31051	// for references.
31052	Kind string `json:"kind,omitempty"`
31053
31054	// ReferenceType: A description of the reference type with no implied
31055	// semantics. Possible values include:
31056	// - MEMBER_OF
31057	ReferenceType string `json:"referenceType,omitempty"`
31058
31059	// Referrer: URL of the resource which refers to the target.
31060	Referrer string `json:"referrer,omitempty"`
31061
31062	// Target: URL of the resource to which this reference points.
31063	Target string `json:"target,omitempty"`
31064
31065	// ForceSendFields is a list of field names (e.g. "Kind") to
31066	// unconditionally include in API requests. By default, fields with
31067	// empty values are omitted from API requests. However, any non-pointer,
31068	// non-interface field appearing in ForceSendFields will be sent to the
31069	// server regardless of whether the field is empty or not. This may be
31070	// used to include empty fields in Patch requests.
31071	ForceSendFields []string `json:"-"`
31072
31073	// NullFields is a list of field names (e.g. "Kind") to include in API
31074	// requests with the JSON null value. By default, fields with empty
31075	// values are omitted from API requests. However, any field with an
31076	// empty value appearing in NullFields will be sent to the server as
31077	// null. It is an error if a field in this list has a non-empty value.
31078	// This may be used to include null fields in Patch requests.
31079	NullFields []string `json:"-"`
31080}
31081
31082func (s *Reference) MarshalJSON() ([]byte, error) {
31083	type NoMethod Reference
31084	raw := NoMethod(*s)
31085	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31086}
31087
31088// Region: Represents a Region resource.
31089//
31090// A region is a geographical area where a resource is located. For more
31091// information, read Regions and Zones. (== resource_for
31092// {$api_version}.regions ==)
31093type Region struct {
31094	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
31095	// format.
31096	CreationTimestamp string `json:"creationTimestamp,omitempty"`
31097
31098	// Deprecated: [Output Only] The deprecation status associated with this
31099	// region.
31100	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
31101
31102	// Description: [Output Only] Textual description of the resource.
31103	Description string `json:"description,omitempty"`
31104
31105	// Id: [Output Only] The unique identifier for the resource. This
31106	// identifier is defined by the server.
31107	Id uint64 `json:"id,omitempty,string"`
31108
31109	// Kind: [Output Only] Type of the resource. Always compute#region for
31110	// regions.
31111	Kind string `json:"kind,omitempty"`
31112
31113	// Name: [Output Only] Name of the resource.
31114	Name string `json:"name,omitempty"`
31115
31116	// Quotas: [Output Only] Quotas assigned to this region.
31117	Quotas []*Quota `json:"quotas,omitempty"`
31118
31119	// SelfLink: [Output Only] Server-defined URL for the resource.
31120	SelfLink string `json:"selfLink,omitempty"`
31121
31122	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
31123	// with the resource id.
31124	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
31125
31126	// Status: [Output Only] Status of the region, either UP or DOWN.
31127	//
31128	// Possible values:
31129	//   "DOWN"
31130	//   "UP"
31131	Status string `json:"status,omitempty"`
31132
31133	// Zones: [Output Only] A list of zones available in this region, in the
31134	// form of resource URLs.
31135	Zones []string `json:"zones,omitempty"`
31136
31137	// ServerResponse contains the HTTP response code and headers from the
31138	// server.
31139	googleapi.ServerResponse `json:"-"`
31140
31141	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
31142	// to unconditionally include in API requests. By default, fields with
31143	// empty values are omitted from API requests. However, any non-pointer,
31144	// non-interface field appearing in ForceSendFields will be sent to the
31145	// server regardless of whether the field is empty or not. This may be
31146	// used to include empty fields in Patch requests.
31147	ForceSendFields []string `json:"-"`
31148
31149	// NullFields is a list of field names (e.g. "CreationTimestamp") to
31150	// include in API requests with the JSON null value. By default, fields
31151	// with empty values are omitted from API requests. However, any field
31152	// with an empty value appearing in NullFields will be sent to the
31153	// server as null. It is an error if a field in this list has a
31154	// non-empty value. This may be used to include null fields in Patch
31155	// requests.
31156	NullFields []string `json:"-"`
31157}
31158
31159func (s *Region) MarshalJSON() ([]byte, error) {
31160	type NoMethod Region
31161	raw := NoMethod(*s)
31162	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31163}
31164
31165// RegionAutoscalerList: Contains a list of autoscalers.
31166type RegionAutoscalerList struct {
31167	// Id: [Output Only] Unique identifier for the resource; defined by the
31168	// server.
31169	Id string `json:"id,omitempty"`
31170
31171	// Items: A list of Autoscaler resources.
31172	Items []*Autoscaler `json:"items,omitempty"`
31173
31174	// Kind: Type of resource.
31175	Kind string `json:"kind,omitempty"`
31176
31177	// NextPageToken: [Output Only] This token allows you to get the next
31178	// page of results for list requests. If the number of results is larger
31179	// than maxResults, use the nextPageToken as a value for the query
31180	// parameter pageToken in the next list request. Subsequent list
31181	// requests will have their own nextPageToken to continue paging through
31182	// the results.
31183	NextPageToken string `json:"nextPageToken,omitempty"`
31184
31185	// SelfLink: [Output Only] Server-defined URL for this resource.
31186	SelfLink string `json:"selfLink,omitempty"`
31187
31188	// Warning: [Output Only] Informational warning message.
31189	Warning *RegionAutoscalerListWarning `json:"warning,omitempty"`
31190
31191	// ServerResponse contains the HTTP response code and headers from the
31192	// server.
31193	googleapi.ServerResponse `json:"-"`
31194
31195	// ForceSendFields is a list of field names (e.g. "Id") to
31196	// unconditionally include in API requests. By default, fields with
31197	// empty values are omitted from API requests. However, any non-pointer,
31198	// non-interface field appearing in ForceSendFields will be sent to the
31199	// server regardless of whether the field is empty or not. This may be
31200	// used to include empty fields in Patch requests.
31201	ForceSendFields []string `json:"-"`
31202
31203	// NullFields is a list of field names (e.g. "Id") to include in API
31204	// requests with the JSON null value. By default, fields with empty
31205	// values are omitted from API requests. However, any field with an
31206	// empty value appearing in NullFields will be sent to the server as
31207	// null. It is an error if a field in this list has a non-empty value.
31208	// This may be used to include null fields in Patch requests.
31209	NullFields []string `json:"-"`
31210}
31211
31212func (s *RegionAutoscalerList) MarshalJSON() ([]byte, error) {
31213	type NoMethod RegionAutoscalerList
31214	raw := NoMethod(*s)
31215	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31216}
31217
31218// RegionAutoscalerListWarning: [Output Only] Informational warning
31219// message.
31220type RegionAutoscalerListWarning struct {
31221	// Code: [Output Only] A warning code, if applicable. For example,
31222	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31223	// the response.
31224	//
31225	// Possible values:
31226	//   "CLEANUP_FAILED"
31227	//   "DEPRECATED_RESOURCE_USED"
31228	//   "DEPRECATED_TYPE_USED"
31229	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31230	//   "EXPERIMENTAL_TYPE_USED"
31231	//   "EXTERNAL_API_WARNING"
31232	//   "FIELD_VALUE_OVERRIDEN"
31233	//   "INJECTED_KERNELS_DEPRECATED"
31234	//   "MISSING_TYPE_DEPENDENCY"
31235	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31236	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31237	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31238	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31239	//   "NEXT_HOP_NOT_RUNNING"
31240	//   "NOT_CRITICAL_ERROR"
31241	//   "NO_RESULTS_ON_PAGE"
31242	//   "REQUIRED_TOS_AGREEMENT"
31243	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31244	//   "RESOURCE_NOT_DELETED"
31245	//   "SCHEMA_VALIDATION_IGNORED"
31246	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31247	//   "UNDECLARED_PROPERTIES"
31248	//   "UNREACHABLE"
31249	Code string `json:"code,omitempty"`
31250
31251	// Data: [Output Only] Metadata about this warning in key: value format.
31252	// For example:
31253	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31254	Data []*RegionAutoscalerListWarningData `json:"data,omitempty"`
31255
31256	// Message: [Output Only] A human-readable description of the warning
31257	// code.
31258	Message string `json:"message,omitempty"`
31259
31260	// ForceSendFields is a list of field names (e.g. "Code") to
31261	// unconditionally include in API requests. By default, fields with
31262	// empty values are omitted from API requests. However, any non-pointer,
31263	// non-interface field appearing in ForceSendFields will be sent to the
31264	// server regardless of whether the field is empty or not. This may be
31265	// used to include empty fields in Patch requests.
31266	ForceSendFields []string `json:"-"`
31267
31268	// NullFields is a list of field names (e.g. "Code") to include in API
31269	// requests with the JSON null value. By default, fields with empty
31270	// values are omitted from API requests. However, any field with an
31271	// empty value appearing in NullFields will be sent to the server as
31272	// null. It is an error if a field in this list has a non-empty value.
31273	// This may be used to include null fields in Patch requests.
31274	NullFields []string `json:"-"`
31275}
31276
31277func (s *RegionAutoscalerListWarning) MarshalJSON() ([]byte, error) {
31278	type NoMethod RegionAutoscalerListWarning
31279	raw := NoMethod(*s)
31280	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31281}
31282
31283type RegionAutoscalerListWarningData struct {
31284	// Key: [Output Only] A key that provides more detail on the warning
31285	// being returned. For example, for warnings where there are no results
31286	// in a list request for a particular zone, this key might be scope and
31287	// the key value might be the zone name. Other examples might be a key
31288	// indicating a deprecated resource and a suggested replacement, or a
31289	// warning about invalid network settings (for example, if an instance
31290	// attempts to perform IP forwarding but is not enabled for IP
31291	// forwarding).
31292	Key string `json:"key,omitempty"`
31293
31294	// Value: [Output Only] A warning data value corresponding to the key.
31295	Value string `json:"value,omitempty"`
31296
31297	// ForceSendFields is a list of field names (e.g. "Key") to
31298	// 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. "Key") to include in API
31306	// requests with the JSON null value. By default, fields with empty
31307	// values are omitted from API requests. However, any field with an
31308	// empty value appearing in NullFields will be sent to the server as
31309	// null. It is an error if a field in this list has a non-empty value.
31310	// This may be used to include null fields in Patch requests.
31311	NullFields []string `json:"-"`
31312}
31313
31314func (s *RegionAutoscalerListWarningData) MarshalJSON() ([]byte, error) {
31315	type NoMethod RegionAutoscalerListWarningData
31316	raw := NoMethod(*s)
31317	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31318}
31319
31320type RegionCommitmentsUpdateReservationsRequest struct {
31321	// Reservations: A list of two reservations to transfer GPUs and local
31322	// SSD between.
31323	Reservations []*Reservation `json:"reservations,omitempty"`
31324
31325	// ForceSendFields is a list of field names (e.g. "Reservations") to
31326	// unconditionally include in API requests. By default, fields with
31327	// empty values are omitted from API requests. However, any non-pointer,
31328	// non-interface field appearing in ForceSendFields will be sent to the
31329	// server regardless of whether the field is empty or not. This may be
31330	// used to include empty fields in Patch requests.
31331	ForceSendFields []string `json:"-"`
31332
31333	// NullFields is a list of field names (e.g. "Reservations") to include
31334	// in API requests with the JSON null value. By default, fields with
31335	// empty values are omitted from API requests. However, any field with
31336	// an empty value appearing in NullFields will be sent to the server as
31337	// null. It is an error if a field in this list has a non-empty value.
31338	// This may be used to include null fields in Patch requests.
31339	NullFields []string `json:"-"`
31340}
31341
31342func (s *RegionCommitmentsUpdateReservationsRequest) MarshalJSON() ([]byte, error) {
31343	type NoMethod RegionCommitmentsUpdateReservationsRequest
31344	raw := NoMethod(*s)
31345	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31346}
31347
31348type RegionDiskTypeList struct {
31349	// Id: [Output Only] Unique identifier for the resource; defined by the
31350	// server.
31351	Id string `json:"id,omitempty"`
31352
31353	// Items: A list of DiskType resources.
31354	Items []*DiskType `json:"items,omitempty"`
31355
31356	// Kind: [Output Only] Type of resource. Always
31357	// compute#regionDiskTypeList for region disk types.
31358	Kind string `json:"kind,omitempty"`
31359
31360	// NextPageToken: [Output Only] This token allows you to get the next
31361	// page of results for list requests. If the number of results is larger
31362	// than maxResults, use the nextPageToken as a value for the query
31363	// parameter pageToken in the next list request. Subsequent list
31364	// requests will have their own nextPageToken to continue paging through
31365	// the results.
31366	NextPageToken string `json:"nextPageToken,omitempty"`
31367
31368	// SelfLink: [Output Only] Server-defined URL for this resource.
31369	SelfLink string `json:"selfLink,omitempty"`
31370
31371	// Warning: [Output Only] Informational warning message.
31372	Warning *RegionDiskTypeListWarning `json:"warning,omitempty"`
31373
31374	// ServerResponse contains the HTTP response code and headers from the
31375	// server.
31376	googleapi.ServerResponse `json:"-"`
31377
31378	// ForceSendFields is a list of field names (e.g. "Id") to
31379	// unconditionally include in API requests. By default, fields with
31380	// empty values are omitted from API requests. However, any non-pointer,
31381	// non-interface field appearing in ForceSendFields will be sent to the
31382	// server regardless of whether the field is empty or not. This may be
31383	// used to include empty fields in Patch requests.
31384	ForceSendFields []string `json:"-"`
31385
31386	// NullFields is a list of field names (e.g. "Id") to include in API
31387	// requests with the JSON null value. By default, fields with empty
31388	// values are omitted from API requests. However, any field with an
31389	// empty value appearing in NullFields will be sent to the server as
31390	// null. It is an error if a field in this list has a non-empty value.
31391	// This may be used to include null fields in Patch requests.
31392	NullFields []string `json:"-"`
31393}
31394
31395func (s *RegionDiskTypeList) MarshalJSON() ([]byte, error) {
31396	type NoMethod RegionDiskTypeList
31397	raw := NoMethod(*s)
31398	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31399}
31400
31401// RegionDiskTypeListWarning: [Output Only] Informational warning
31402// message.
31403type RegionDiskTypeListWarning struct {
31404	// Code: [Output Only] A warning code, if applicable. For example,
31405	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31406	// the response.
31407	//
31408	// Possible values:
31409	//   "CLEANUP_FAILED"
31410	//   "DEPRECATED_RESOURCE_USED"
31411	//   "DEPRECATED_TYPE_USED"
31412	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31413	//   "EXPERIMENTAL_TYPE_USED"
31414	//   "EXTERNAL_API_WARNING"
31415	//   "FIELD_VALUE_OVERRIDEN"
31416	//   "INJECTED_KERNELS_DEPRECATED"
31417	//   "MISSING_TYPE_DEPENDENCY"
31418	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31419	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31420	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31421	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31422	//   "NEXT_HOP_NOT_RUNNING"
31423	//   "NOT_CRITICAL_ERROR"
31424	//   "NO_RESULTS_ON_PAGE"
31425	//   "REQUIRED_TOS_AGREEMENT"
31426	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31427	//   "RESOURCE_NOT_DELETED"
31428	//   "SCHEMA_VALIDATION_IGNORED"
31429	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31430	//   "UNDECLARED_PROPERTIES"
31431	//   "UNREACHABLE"
31432	Code string `json:"code,omitempty"`
31433
31434	// Data: [Output Only] Metadata about this warning in key: value format.
31435	// For example:
31436	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31437	Data []*RegionDiskTypeListWarningData `json:"data,omitempty"`
31438
31439	// Message: [Output Only] A human-readable description of the warning
31440	// code.
31441	Message string `json:"message,omitempty"`
31442
31443	// ForceSendFields is a list of field names (e.g. "Code") to
31444	// unconditionally include in API requests. By default, fields with
31445	// empty values are omitted from API requests. However, any non-pointer,
31446	// non-interface field appearing in ForceSendFields will be sent to the
31447	// server regardless of whether the field is empty or not. This may be
31448	// used to include empty fields in Patch requests.
31449	ForceSendFields []string `json:"-"`
31450
31451	// NullFields is a list of field names (e.g. "Code") to include in API
31452	// requests with the JSON null value. By default, fields with empty
31453	// values are omitted from API requests. However, any field with an
31454	// empty value appearing in NullFields will be sent to the server as
31455	// null. It is an error if a field in this list has a non-empty value.
31456	// This may be used to include null fields in Patch requests.
31457	NullFields []string `json:"-"`
31458}
31459
31460func (s *RegionDiskTypeListWarning) MarshalJSON() ([]byte, error) {
31461	type NoMethod RegionDiskTypeListWarning
31462	raw := NoMethod(*s)
31463	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31464}
31465
31466type RegionDiskTypeListWarningData struct {
31467	// Key: [Output Only] A key that provides more detail on the warning
31468	// being returned. For example, for warnings where there are no results
31469	// in a list request for a particular zone, this key might be scope and
31470	// the key value might be the zone name. Other examples might be a key
31471	// indicating a deprecated resource and a suggested replacement, or a
31472	// warning about invalid network settings (for example, if an instance
31473	// attempts to perform IP forwarding but is not enabled for IP
31474	// forwarding).
31475	Key string `json:"key,omitempty"`
31476
31477	// Value: [Output Only] A warning data value corresponding to the key.
31478	Value string `json:"value,omitempty"`
31479
31480	// ForceSendFields is a list of field names (e.g. "Key") to
31481	// unconditionally include in API requests. By default, fields with
31482	// empty values are omitted from API requests. However, any non-pointer,
31483	// non-interface field appearing in ForceSendFields will be sent to the
31484	// server regardless of whether the field is empty or not. This may be
31485	// used to include empty fields in Patch requests.
31486	ForceSendFields []string `json:"-"`
31487
31488	// NullFields is a list of field names (e.g. "Key") to include in API
31489	// requests with the JSON null value. By default, fields with empty
31490	// values are omitted from API requests. However, any field with an
31491	// empty value appearing in NullFields will be sent to the server as
31492	// null. It is an error if a field in this list has a non-empty value.
31493	// This may be used to include null fields in Patch requests.
31494	NullFields []string `json:"-"`
31495}
31496
31497func (s *RegionDiskTypeListWarningData) MarshalJSON() ([]byte, error) {
31498	type NoMethod RegionDiskTypeListWarningData
31499	raw := NoMethod(*s)
31500	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31501}
31502
31503type RegionDisksAddResourcePoliciesRequest struct {
31504	// ResourcePolicies: Resource policies to be added to this disk.
31505	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
31506
31507	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
31508	// unconditionally include in API requests. By default, fields with
31509	// empty values are omitted from API requests. However, any non-pointer,
31510	// non-interface field appearing in ForceSendFields will be sent to the
31511	// server regardless of whether the field is empty or not. This may be
31512	// used to include empty fields in Patch requests.
31513	ForceSendFields []string `json:"-"`
31514
31515	// NullFields is a list of field names (e.g. "ResourcePolicies") to
31516	// include in API requests with the JSON null value. By default, fields
31517	// with empty values are omitted from API requests. However, any field
31518	// with an empty value appearing in NullFields will be sent to the
31519	// server as null. It is an error if a field in this list has a
31520	// non-empty value. This may be used to include null fields in Patch
31521	// requests.
31522	NullFields []string `json:"-"`
31523}
31524
31525func (s *RegionDisksAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
31526	type NoMethod RegionDisksAddResourcePoliciesRequest
31527	raw := NoMethod(*s)
31528	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31529}
31530
31531type RegionDisksRemoveResourcePoliciesRequest struct {
31532	// ResourcePolicies: Resource policies to be removed from this disk.
31533	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
31534
31535	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
31536	// unconditionally include in API requests. By default, fields with
31537	// empty values are omitted from API requests. However, any non-pointer,
31538	// non-interface field appearing in ForceSendFields will be sent to the
31539	// server regardless of whether the field is empty or not. This may be
31540	// used to include empty fields in Patch requests.
31541	ForceSendFields []string `json:"-"`
31542
31543	// NullFields is a list of field names (e.g. "ResourcePolicies") to
31544	// include in API requests with the JSON null value. By default, fields
31545	// with empty values are omitted from API requests. However, any field
31546	// with an empty value appearing in NullFields will be sent to the
31547	// server as null. It is an error if a field in this list has a
31548	// non-empty value. This may be used to include null fields in Patch
31549	// requests.
31550	NullFields []string `json:"-"`
31551}
31552
31553func (s *RegionDisksRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
31554	type NoMethod RegionDisksRemoveResourcePoliciesRequest
31555	raw := NoMethod(*s)
31556	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31557}
31558
31559type RegionDisksResizeRequest struct {
31560	// SizeGb: The new size of the regional persistent disk, which is
31561	// specified in GB.
31562	SizeGb int64 `json:"sizeGb,omitempty,string"`
31563
31564	// ForceSendFields is a list of field names (e.g. "SizeGb") to
31565	// unconditionally include in API requests. By default, fields with
31566	// empty values are omitted from API requests. However, any non-pointer,
31567	// non-interface field appearing in ForceSendFields will be sent to the
31568	// server regardless of whether the field is empty or not. This may be
31569	// used to include empty fields in Patch requests.
31570	ForceSendFields []string `json:"-"`
31571
31572	// NullFields is a list of field names (e.g. "SizeGb") to include in API
31573	// requests with the JSON null value. By default, fields with empty
31574	// values are omitted from API requests. However, any field with an
31575	// empty value appearing in NullFields will be sent to the server as
31576	// null. It is an error if a field in this list has a non-empty value.
31577	// This may be used to include null fields in Patch requests.
31578	NullFields []string `json:"-"`
31579}
31580
31581func (s *RegionDisksResizeRequest) MarshalJSON() ([]byte, error) {
31582	type NoMethod RegionDisksResizeRequest
31583	raw := NoMethod(*s)
31584	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31585}
31586
31587// RegionInstanceGroupList: Contains a list of InstanceGroup resources.
31588type RegionInstanceGroupList struct {
31589	// Id: [Output Only] Unique identifier for the resource; defined by the
31590	// server.
31591	Id string `json:"id,omitempty"`
31592
31593	// Items: A list of InstanceGroup resources.
31594	Items []*InstanceGroup `json:"items,omitempty"`
31595
31596	// Kind: The resource type.
31597	Kind string `json:"kind,omitempty"`
31598
31599	// NextPageToken: [Output Only] This token allows you to get the next
31600	// page of results for list requests. If the number of results is larger
31601	// than maxResults, use the nextPageToken as a value for the query
31602	// parameter pageToken in the next list request. Subsequent list
31603	// requests will have their own nextPageToken to continue paging through
31604	// the results.
31605	NextPageToken string `json:"nextPageToken,omitempty"`
31606
31607	// SelfLink: [Output Only] Server-defined URL for this resource.
31608	SelfLink string `json:"selfLink,omitempty"`
31609
31610	// Warning: [Output Only] Informational warning message.
31611	Warning *RegionInstanceGroupListWarning `json:"warning,omitempty"`
31612
31613	// ServerResponse contains the HTTP response code and headers from the
31614	// server.
31615	googleapi.ServerResponse `json:"-"`
31616
31617	// ForceSendFields is a list of field names (e.g. "Id") to
31618	// unconditionally include in API requests. By default, fields with
31619	// empty values are omitted from API requests. However, any non-pointer,
31620	// non-interface field appearing in ForceSendFields will be sent to the
31621	// server regardless of whether the field is empty or not. This may be
31622	// used to include empty fields in Patch requests.
31623	ForceSendFields []string `json:"-"`
31624
31625	// NullFields is a list of field names (e.g. "Id") to include in API
31626	// requests with the JSON null value. By default, fields with empty
31627	// values are omitted from API requests. However, any field with an
31628	// empty value appearing in NullFields will be sent to the server as
31629	// null. It is an error if a field in this list has a non-empty value.
31630	// This may be used to include null fields in Patch requests.
31631	NullFields []string `json:"-"`
31632}
31633
31634func (s *RegionInstanceGroupList) MarshalJSON() ([]byte, error) {
31635	type NoMethod RegionInstanceGroupList
31636	raw := NoMethod(*s)
31637	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31638}
31639
31640// RegionInstanceGroupListWarning: [Output Only] Informational warning
31641// message.
31642type RegionInstanceGroupListWarning struct {
31643	// Code: [Output Only] A warning code, if applicable. For example,
31644	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31645	// the response.
31646	//
31647	// Possible values:
31648	//   "CLEANUP_FAILED"
31649	//   "DEPRECATED_RESOURCE_USED"
31650	//   "DEPRECATED_TYPE_USED"
31651	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31652	//   "EXPERIMENTAL_TYPE_USED"
31653	//   "EXTERNAL_API_WARNING"
31654	//   "FIELD_VALUE_OVERRIDEN"
31655	//   "INJECTED_KERNELS_DEPRECATED"
31656	//   "MISSING_TYPE_DEPENDENCY"
31657	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31658	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31659	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31660	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31661	//   "NEXT_HOP_NOT_RUNNING"
31662	//   "NOT_CRITICAL_ERROR"
31663	//   "NO_RESULTS_ON_PAGE"
31664	//   "REQUIRED_TOS_AGREEMENT"
31665	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31666	//   "RESOURCE_NOT_DELETED"
31667	//   "SCHEMA_VALIDATION_IGNORED"
31668	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31669	//   "UNDECLARED_PROPERTIES"
31670	//   "UNREACHABLE"
31671	Code string `json:"code,omitempty"`
31672
31673	// Data: [Output Only] Metadata about this warning in key: value format.
31674	// For example:
31675	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31676	Data []*RegionInstanceGroupListWarningData `json:"data,omitempty"`
31677
31678	// Message: [Output Only] A human-readable description of the warning
31679	// code.
31680	Message string `json:"message,omitempty"`
31681
31682	// ForceSendFields is a list of field names (e.g. "Code") to
31683	// unconditionally include in API requests. By default, fields with
31684	// empty values are omitted from API requests. However, any non-pointer,
31685	// non-interface field appearing in ForceSendFields will be sent to the
31686	// server regardless of whether the field is empty or not. This may be
31687	// used to include empty fields in Patch requests.
31688	ForceSendFields []string `json:"-"`
31689
31690	// NullFields is a list of field names (e.g. "Code") to include in API
31691	// requests with the JSON null value. By default, fields with empty
31692	// values are omitted from API requests. However, any field with an
31693	// empty value appearing in NullFields will be sent to the server as
31694	// null. It is an error if a field in this list has a non-empty value.
31695	// This may be used to include null fields in Patch requests.
31696	NullFields []string `json:"-"`
31697}
31698
31699func (s *RegionInstanceGroupListWarning) MarshalJSON() ([]byte, error) {
31700	type NoMethod RegionInstanceGroupListWarning
31701	raw := NoMethod(*s)
31702	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31703}
31704
31705type RegionInstanceGroupListWarningData struct {
31706	// Key: [Output Only] A key that provides more detail on the warning
31707	// being returned. For example, for warnings where there are no results
31708	// in a list request for a particular zone, this key might be scope and
31709	// the key value might be the zone name. Other examples might be a key
31710	// indicating a deprecated resource and a suggested replacement, or a
31711	// warning about invalid network settings (for example, if an instance
31712	// attempts to perform IP forwarding but is not enabled for IP
31713	// forwarding).
31714	Key string `json:"key,omitempty"`
31715
31716	// Value: [Output Only] A warning data value corresponding to the key.
31717	Value string `json:"value,omitempty"`
31718
31719	// ForceSendFields is a list of field names (e.g. "Key") to
31720	// unconditionally include in API requests. By default, fields with
31721	// empty values are omitted from API requests. However, any non-pointer,
31722	// non-interface field appearing in ForceSendFields will be sent to the
31723	// server regardless of whether the field is empty or not. This may be
31724	// used to include empty fields in Patch requests.
31725	ForceSendFields []string `json:"-"`
31726
31727	// NullFields is a list of field names (e.g. "Key") to include in API
31728	// requests with the JSON null value. By default, fields with empty
31729	// values are omitted from API requests. However, any field with an
31730	// empty value appearing in NullFields will be sent to the server as
31731	// null. It is an error if a field in this list has a non-empty value.
31732	// This may be used to include null fields in Patch requests.
31733	NullFields []string `json:"-"`
31734}
31735
31736func (s *RegionInstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
31737	type NoMethod RegionInstanceGroupListWarningData
31738	raw := NoMethod(*s)
31739	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31740}
31741
31742// RegionInstanceGroupManagerDeleteInstanceConfigReq:
31743// RegionInstanceGroupManagers.deletePerInstanceConfigs
31744type RegionInstanceGroupManagerDeleteInstanceConfigReq struct {
31745	// Names: The list of instance names for which we want to delete
31746	// per-instance configs on this managed instance group.
31747	Names []string `json:"names,omitempty"`
31748
31749	// ForceSendFields is a list of field names (e.g. "Names") to
31750	// unconditionally include in API requests. By default, fields with
31751	// empty values are omitted from API requests. However, any non-pointer,
31752	// non-interface field appearing in ForceSendFields will be sent to the
31753	// server regardless of whether the field is empty or not. This may be
31754	// used to include empty fields in Patch requests.
31755	ForceSendFields []string `json:"-"`
31756
31757	// NullFields is a list of field names (e.g. "Names") to include in API
31758	// requests with the JSON null value. By default, fields with empty
31759	// values are omitted from API requests. However, any field with an
31760	// empty value appearing in NullFields will be sent to the server as
31761	// null. It is an error if a field in this list has a non-empty value.
31762	// This may be used to include null fields in Patch requests.
31763	NullFields []string `json:"-"`
31764}
31765
31766func (s *RegionInstanceGroupManagerDeleteInstanceConfigReq) MarshalJSON() ([]byte, error) {
31767	type NoMethod RegionInstanceGroupManagerDeleteInstanceConfigReq
31768	raw := NoMethod(*s)
31769	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31770}
31771
31772// RegionInstanceGroupManagerList: Contains a list of managed instance
31773// groups.
31774type RegionInstanceGroupManagerList struct {
31775	// Id: [Output Only] Unique identifier for the resource; defined by the
31776	// server.
31777	Id string `json:"id,omitempty"`
31778
31779	// Items: A list of InstanceGroupManager resources.
31780	Items []*InstanceGroupManager `json:"items,omitempty"`
31781
31782	// Kind: [Output Only] The resource type, which is always
31783	// compute#instanceGroupManagerList for a list of managed instance
31784	// groups that exist in th regional scope.
31785	Kind string `json:"kind,omitempty"`
31786
31787	// NextPageToken: [Output Only] This token allows you to get the next
31788	// page of results for list requests. If the number of results is larger
31789	// than maxResults, use the nextPageToken as a value for the query
31790	// parameter pageToken in the next list request. Subsequent list
31791	// requests will have their own nextPageToken to continue paging through
31792	// the results.
31793	NextPageToken string `json:"nextPageToken,omitempty"`
31794
31795	// SelfLink: [Output Only] Server-defined URL for this resource.
31796	SelfLink string `json:"selfLink,omitempty"`
31797
31798	// Warning: [Output Only] Informational warning message.
31799	Warning *RegionInstanceGroupManagerListWarning `json:"warning,omitempty"`
31800
31801	// ServerResponse contains the HTTP response code and headers from the
31802	// server.
31803	googleapi.ServerResponse `json:"-"`
31804
31805	// ForceSendFields is a list of field names (e.g. "Id") to
31806	// unconditionally include in API requests. By default, fields with
31807	// empty values are omitted from API requests. However, any non-pointer,
31808	// non-interface field appearing in ForceSendFields will be sent to the
31809	// server regardless of whether the field is empty or not. This may be
31810	// used to include empty fields in Patch requests.
31811	ForceSendFields []string `json:"-"`
31812
31813	// NullFields is a list of field names (e.g. "Id") to include in API
31814	// requests with the JSON null value. By default, fields with empty
31815	// values are omitted from API requests. However, any field with an
31816	// empty value appearing in NullFields will be sent to the server as
31817	// null. It is an error if a field in this list has a non-empty value.
31818	// This may be used to include null fields in Patch requests.
31819	NullFields []string `json:"-"`
31820}
31821
31822func (s *RegionInstanceGroupManagerList) MarshalJSON() ([]byte, error) {
31823	type NoMethod RegionInstanceGroupManagerList
31824	raw := NoMethod(*s)
31825	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31826}
31827
31828// RegionInstanceGroupManagerListWarning: [Output Only] Informational
31829// warning message.
31830type RegionInstanceGroupManagerListWarning struct {
31831	// Code: [Output Only] A warning code, if applicable. For example,
31832	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31833	// the response.
31834	//
31835	// Possible values:
31836	//   "CLEANUP_FAILED"
31837	//   "DEPRECATED_RESOURCE_USED"
31838	//   "DEPRECATED_TYPE_USED"
31839	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31840	//   "EXPERIMENTAL_TYPE_USED"
31841	//   "EXTERNAL_API_WARNING"
31842	//   "FIELD_VALUE_OVERRIDEN"
31843	//   "INJECTED_KERNELS_DEPRECATED"
31844	//   "MISSING_TYPE_DEPENDENCY"
31845	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31846	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31847	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31848	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31849	//   "NEXT_HOP_NOT_RUNNING"
31850	//   "NOT_CRITICAL_ERROR"
31851	//   "NO_RESULTS_ON_PAGE"
31852	//   "REQUIRED_TOS_AGREEMENT"
31853	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31854	//   "RESOURCE_NOT_DELETED"
31855	//   "SCHEMA_VALIDATION_IGNORED"
31856	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31857	//   "UNDECLARED_PROPERTIES"
31858	//   "UNREACHABLE"
31859	Code string `json:"code,omitempty"`
31860
31861	// Data: [Output Only] Metadata about this warning in key: value format.
31862	// For example:
31863	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31864	Data []*RegionInstanceGroupManagerListWarningData `json:"data,omitempty"`
31865
31866	// Message: [Output Only] A human-readable description of the warning
31867	// code.
31868	Message string `json:"message,omitempty"`
31869
31870	// ForceSendFields is a list of field names (e.g. "Code") to
31871	// unconditionally include in API requests. By default, fields with
31872	// empty values are omitted from API requests. However, any non-pointer,
31873	// non-interface field appearing in ForceSendFields will be sent to the
31874	// server regardless of whether the field is empty or not. This may be
31875	// used to include empty fields in Patch requests.
31876	ForceSendFields []string `json:"-"`
31877
31878	// NullFields is a list of field names (e.g. "Code") to include in API
31879	// requests with the JSON null value. By default, fields with empty
31880	// values are omitted from API requests. However, any field with an
31881	// empty value appearing in NullFields will be sent to the server as
31882	// null. It is an error if a field in this list has a non-empty value.
31883	// This may be used to include null fields in Patch requests.
31884	NullFields []string `json:"-"`
31885}
31886
31887func (s *RegionInstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
31888	type NoMethod RegionInstanceGroupManagerListWarning
31889	raw := NoMethod(*s)
31890	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31891}
31892
31893type RegionInstanceGroupManagerListWarningData struct {
31894	// Key: [Output Only] A key that provides more detail on the warning
31895	// being returned. For example, for warnings where there are no results
31896	// in a list request for a particular zone, this key might be scope and
31897	// the key value might be the zone name. Other examples might be a key
31898	// indicating a deprecated resource and a suggested replacement, or a
31899	// warning about invalid network settings (for example, if an instance
31900	// attempts to perform IP forwarding but is not enabled for IP
31901	// forwarding).
31902	Key string `json:"key,omitempty"`
31903
31904	// Value: [Output Only] A warning data value corresponding to the key.
31905	Value string `json:"value,omitempty"`
31906
31907	// ForceSendFields is a list of field names (e.g. "Key") to
31908	// unconditionally include in API requests. By default, fields with
31909	// empty values are omitted from API requests. However, any non-pointer,
31910	// non-interface field appearing in ForceSendFields will be sent to the
31911	// server regardless of whether the field is empty or not. This may be
31912	// used to include empty fields in Patch requests.
31913	ForceSendFields []string `json:"-"`
31914
31915	// NullFields is a list of field names (e.g. "Key") to include in API
31916	// requests with the JSON null value. By default, fields with empty
31917	// values are omitted from API requests. However, any field with an
31918	// empty value appearing in NullFields will be sent to the server as
31919	// null. It is an error if a field in this list has a non-empty value.
31920	// This may be used to include null fields in Patch requests.
31921	NullFields []string `json:"-"`
31922}
31923
31924func (s *RegionInstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
31925	type NoMethod RegionInstanceGroupManagerListWarningData
31926	raw := NoMethod(*s)
31927	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31928}
31929
31930// RegionInstanceGroupManagerPatchInstanceConfigReq:
31931// RegionInstanceGroupManagers.patchPerInstanceConfigs
31932type RegionInstanceGroupManagerPatchInstanceConfigReq struct {
31933	// PerInstanceConfigs: The list of per-instance configs to insert or
31934	// patch on this managed instance group.
31935	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
31936
31937	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
31938	// to unconditionally include in API requests. By default, fields with
31939	// empty values are omitted from API requests. However, any non-pointer,
31940	// non-interface field appearing in ForceSendFields will be sent to the
31941	// server regardless of whether the field is empty or not. This may be
31942	// used to include empty fields in Patch requests.
31943	ForceSendFields []string `json:"-"`
31944
31945	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
31946	// include in API requests with the JSON null value. By default, fields
31947	// with empty values are omitted from API requests. However, any field
31948	// with an empty value appearing in NullFields will be sent to the
31949	// server as null. It is an error if a field in this list has a
31950	// non-empty value. This may be used to include null fields in Patch
31951	// requests.
31952	NullFields []string `json:"-"`
31953}
31954
31955func (s *RegionInstanceGroupManagerPatchInstanceConfigReq) MarshalJSON() ([]byte, error) {
31956	type NoMethod RegionInstanceGroupManagerPatchInstanceConfigReq
31957	raw := NoMethod(*s)
31958	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31959}
31960
31961// RegionInstanceGroupManagerUpdateInstanceConfigReq:
31962// RegionInstanceGroupManagers.updatePerInstanceConfigs
31963type RegionInstanceGroupManagerUpdateInstanceConfigReq struct {
31964	// PerInstanceConfigs: The list of per-instance configs to insert or
31965	// patch on this managed instance group.
31966	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
31967
31968	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
31969	// to unconditionally include in API requests. By default, fields with
31970	// empty values are omitted from API requests. However, any non-pointer,
31971	// non-interface field appearing in ForceSendFields will be sent to the
31972	// server regardless of whether the field is empty or not. This may be
31973	// used to include empty fields in Patch requests.
31974	ForceSendFields []string `json:"-"`
31975
31976	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
31977	// include in API requests with the JSON null value. By default, fields
31978	// with empty values are omitted from API requests. However, any field
31979	// with an empty value appearing in NullFields will be sent to the
31980	// server as null. It is an error if a field in this list has a
31981	// non-empty value. This may be used to include null fields in Patch
31982	// requests.
31983	NullFields []string `json:"-"`
31984}
31985
31986func (s *RegionInstanceGroupManagerUpdateInstanceConfigReq) MarshalJSON() ([]byte, error) {
31987	type NoMethod RegionInstanceGroupManagerUpdateInstanceConfigReq
31988	raw := NoMethod(*s)
31989	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31990}
31991
31992type RegionInstanceGroupManagersAbandonInstancesRequest struct {
31993	// Instances: The URLs of one or more instances to abandon. This can be
31994	// a full URL or a partial URL, such as
31995	// zones/[ZONE]/instances/[INSTANCE_NAME].
31996	Instances []string `json:"instances,omitempty"`
31997
31998	// ForceSendFields is a list of field names (e.g. "Instances") to
31999	// unconditionally include in API requests. By default, fields with
32000	// empty values are omitted from API requests. However, any non-pointer,
32001	// non-interface field appearing in ForceSendFields will be sent to the
32002	// server regardless of whether the field is empty or not. This may be
32003	// used to include empty fields in Patch requests.
32004	ForceSendFields []string `json:"-"`
32005
32006	// NullFields is a list of field names (e.g. "Instances") to include in
32007	// API requests with the JSON null value. By default, fields with empty
32008	// values are omitted from API requests. However, any field with an
32009	// empty value appearing in NullFields will be sent to the server as
32010	// null. It is an error if a field in this list has a non-empty value.
32011	// This may be used to include null fields in Patch requests.
32012	NullFields []string `json:"-"`
32013}
32014
32015func (s *RegionInstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
32016	type NoMethod RegionInstanceGroupManagersAbandonInstancesRequest
32017	raw := NoMethod(*s)
32018	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32019}
32020
32021// RegionInstanceGroupManagersApplyUpdatesRequest:
32022// InstanceGroupManagers.applyUpdatesToInstances
32023type RegionInstanceGroupManagersApplyUpdatesRequest struct {
32024	// Instances: The list of URLs of one or more instances for which you
32025	// want to apply updates. Each URL can be a full URL or a partial URL,
32026	// such as zones/[ZONE]/instances/[INSTANCE_NAME].
32027	Instances []string `json:"instances,omitempty"`
32028
32029	// MaximalAction: The maximal action that should be performed on the
32030	// instances. By default REPLACE. This field is deprecated, please use
32031	// most_disruptive_allowed_action.
32032	//
32033	// Possible values:
32034	//   "NONE"
32035	//   "REFRESH"
32036	//   "REPLACE"
32037	//   "RESTART"
32038	MaximalAction string `json:"maximalAction,omitempty"`
32039
32040	// MinimalAction: The minimal action that you want to perform on each
32041	// instance during the update:
32042	// - REPLACE: At minimum, delete the instance and create it again.
32043	// - RESTART: Stop the instance and start it again.
32044	// - REFRESH: Do not stop the instance.
32045	// - NONE: Do not disrupt the instance at all.  By default, the minimum
32046	// action is NONE. If your update requires a more disruptive action than
32047	// you set with this flag, the necessary action is performed to execute
32048	// the update.
32049	//
32050	// Possible values:
32051	//   "NONE"
32052	//   "REFRESH"
32053	//   "REPLACE"
32054	//   "RESTART"
32055	MinimalAction string `json:"minimalAction,omitempty"`
32056
32057	// MostDisruptiveAllowedAction: The most disruptive action that you want
32058	// to perform on each instance during the update:
32059	// - REPLACE: Delete the instance and create it again.
32060	// - RESTART: Stop the instance and start it again.
32061	// - REFRESH: Do not stop the instance.
32062	// - NONE: Do not disrupt the instance at all.  By default, the most
32063	// disruptive allowed action is REPLACE. If your update requires a more
32064	// disruptive action than you set with this flag, the update request
32065	// will fail.
32066	//
32067	// Possible values:
32068	//   "NONE"
32069	//   "REFRESH"
32070	//   "REPLACE"
32071	//   "RESTART"
32072	MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"`
32073
32074	// ForceSendFields is a list of field names (e.g. "Instances") to
32075	// unconditionally include in API requests. By default, fields with
32076	// empty values are omitted from API requests. However, any non-pointer,
32077	// non-interface field appearing in ForceSendFields will be sent to the
32078	// server regardless of whether the field is empty or not. This may be
32079	// used to include empty fields in Patch requests.
32080	ForceSendFields []string `json:"-"`
32081
32082	// NullFields is a list of field names (e.g. "Instances") to include in
32083	// API requests with the JSON null value. By default, fields with empty
32084	// values are omitted from API requests. However, any field with an
32085	// empty value appearing in NullFields will be sent to the server as
32086	// null. It is an error if a field in this list has a non-empty value.
32087	// This may be used to include null fields in Patch requests.
32088	NullFields []string `json:"-"`
32089}
32090
32091func (s *RegionInstanceGroupManagersApplyUpdatesRequest) MarshalJSON() ([]byte, error) {
32092	type NoMethod RegionInstanceGroupManagersApplyUpdatesRequest
32093	raw := NoMethod(*s)
32094	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32095}
32096
32097// RegionInstanceGroupManagersCreateInstancesRequest:
32098// RegionInstanceGroupManagers.createInstances
32099type RegionInstanceGroupManagersCreateInstancesRequest struct {
32100	// Instances: [Required] List of specifications of per-instance configs.
32101	Instances []*PerInstanceConfig `json:"instances,omitempty"`
32102
32103	// ForceSendFields is a list of field names (e.g. "Instances") to
32104	// unconditionally include in API requests. By default, fields with
32105	// empty values are omitted from API requests. However, any non-pointer,
32106	// non-interface field appearing in ForceSendFields will be sent to the
32107	// server regardless of whether the field is empty or not. This may be
32108	// used to include empty fields in Patch requests.
32109	ForceSendFields []string `json:"-"`
32110
32111	// NullFields is a list of field names (e.g. "Instances") to include in
32112	// API requests with the JSON null value. By default, fields with empty
32113	// values are omitted from API requests. However, any field with an
32114	// empty value appearing in NullFields will be sent to the server as
32115	// null. It is an error if a field in this list has a non-empty value.
32116	// This may be used to include null fields in Patch requests.
32117	NullFields []string `json:"-"`
32118}
32119
32120func (s *RegionInstanceGroupManagersCreateInstancesRequest) MarshalJSON() ([]byte, error) {
32121	type NoMethod RegionInstanceGroupManagersCreateInstancesRequest
32122	raw := NoMethod(*s)
32123	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32124}
32125
32126type RegionInstanceGroupManagersDeleteInstancesRequest struct {
32127	// Instances: The URLs of one or more instances to delete. This can be a
32128	// full URL or a partial URL, such as
32129	// zones/[ZONE]/instances/[INSTANCE_NAME].
32130	Instances []string `json:"instances,omitempty"`
32131
32132	// ForceSendFields is a list of field names (e.g. "Instances") to
32133	// unconditionally include in API requests. By default, fields with
32134	// empty values are omitted from API requests. However, any non-pointer,
32135	// non-interface field appearing in ForceSendFields will be sent to the
32136	// server regardless of whether the field is empty or not. This may be
32137	// used to include empty fields in Patch requests.
32138	ForceSendFields []string `json:"-"`
32139
32140	// NullFields is a list of field names (e.g. "Instances") to include in
32141	// API requests with the JSON null value. By default, fields with empty
32142	// values are omitted from API requests. However, any field with an
32143	// empty value appearing in NullFields will be sent to the server as
32144	// null. It is an error if a field in this list has a non-empty value.
32145	// This may be used to include null fields in Patch requests.
32146	NullFields []string `json:"-"`
32147}
32148
32149func (s *RegionInstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
32150	type NoMethod RegionInstanceGroupManagersDeleteInstancesRequest
32151	raw := NoMethod(*s)
32152	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32153}
32154
32155type RegionInstanceGroupManagersListErrorsResponse struct {
32156	// Items: [Output Only] The list of errors of the managed instance
32157	// group.
32158	Items []*InstanceManagedByIgmError `json:"items,omitempty"`
32159
32160	// NextPageToken: [Output Only] This token allows you to get the next
32161	// page of results for list requests. If the number of results is larger
32162	// than maxResults, use the nextPageToken as a value for the query
32163	// parameter pageToken in the next list request. Subsequent list
32164	// requests will have their own nextPageToken to continue paging through
32165	// the results.
32166	NextPageToken string `json:"nextPageToken,omitempty"`
32167
32168	// ServerResponse contains the HTTP response code and headers from the
32169	// server.
32170	googleapi.ServerResponse `json:"-"`
32171
32172	// ForceSendFields is a list of field names (e.g. "Items") to
32173	// unconditionally include in API requests. By default, fields with
32174	// empty values are omitted from API requests. However, any non-pointer,
32175	// non-interface field appearing in ForceSendFields will be sent to the
32176	// server regardless of whether the field is empty or not. This may be
32177	// used to include empty fields in Patch requests.
32178	ForceSendFields []string `json:"-"`
32179
32180	// NullFields is a list of field names (e.g. "Items") to include in API
32181	// requests with the JSON null value. By default, fields with empty
32182	// values are omitted from API requests. However, any field with an
32183	// empty value appearing in NullFields will be sent to the server as
32184	// null. It is an error if a field in this list has a non-empty value.
32185	// This may be used to include null fields in Patch requests.
32186	NullFields []string `json:"-"`
32187}
32188
32189func (s *RegionInstanceGroupManagersListErrorsResponse) MarshalJSON() ([]byte, error) {
32190	type NoMethod RegionInstanceGroupManagersListErrorsResponse
32191	raw := NoMethod(*s)
32192	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32193}
32194
32195type RegionInstanceGroupManagersListInstanceConfigsResp struct {
32196	// Items: [Output Only] The list of PerInstanceConfig.
32197	Items []*PerInstanceConfig `json:"items,omitempty"`
32198
32199	// NextPageToken: [Output Only] This token allows you to get the next
32200	// page of results for list requests. If the number of results is larger
32201	// than maxResults, use the nextPageToken as a value for the query
32202	// parameter pageToken in the next list request. Subsequent list
32203	// requests will have their own nextPageToken to continue paging through
32204	// the results.
32205	NextPageToken string `json:"nextPageToken,omitempty"`
32206
32207	// Warning: [Output Only] Informational warning message.
32208	Warning *RegionInstanceGroupManagersListInstanceConfigsRespWarning `json:"warning,omitempty"`
32209
32210	// ServerResponse contains the HTTP response code and headers from the
32211	// server.
32212	googleapi.ServerResponse `json:"-"`
32213
32214	// ForceSendFields is a list of field names (e.g. "Items") to
32215	// unconditionally include in API requests. By default, fields with
32216	// empty values are omitted from API requests. However, any non-pointer,
32217	// non-interface field appearing in ForceSendFields will be sent to the
32218	// server regardless of whether the field is empty or not. This may be
32219	// used to include empty fields in Patch requests.
32220	ForceSendFields []string `json:"-"`
32221
32222	// NullFields is a list of field names (e.g. "Items") to include in API
32223	// requests with the JSON null value. By default, fields with empty
32224	// values are omitted from API requests. However, any field with an
32225	// empty value appearing in NullFields will be sent to the server as
32226	// null. It is an error if a field in this list has a non-empty value.
32227	// This may be used to include null fields in Patch requests.
32228	NullFields []string `json:"-"`
32229}
32230
32231func (s *RegionInstanceGroupManagersListInstanceConfigsResp) MarshalJSON() ([]byte, error) {
32232	type NoMethod RegionInstanceGroupManagersListInstanceConfigsResp
32233	raw := NoMethod(*s)
32234	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32235}
32236
32237// RegionInstanceGroupManagersListInstanceConfigsRespWarning: [Output
32238// Only] Informational warning message.
32239type RegionInstanceGroupManagersListInstanceConfigsRespWarning struct {
32240	// Code: [Output Only] A warning code, if applicable. For example,
32241	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32242	// the response.
32243	//
32244	// Possible values:
32245	//   "CLEANUP_FAILED"
32246	//   "DEPRECATED_RESOURCE_USED"
32247	//   "DEPRECATED_TYPE_USED"
32248	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32249	//   "EXPERIMENTAL_TYPE_USED"
32250	//   "EXTERNAL_API_WARNING"
32251	//   "FIELD_VALUE_OVERRIDEN"
32252	//   "INJECTED_KERNELS_DEPRECATED"
32253	//   "MISSING_TYPE_DEPENDENCY"
32254	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32255	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32256	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32257	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32258	//   "NEXT_HOP_NOT_RUNNING"
32259	//   "NOT_CRITICAL_ERROR"
32260	//   "NO_RESULTS_ON_PAGE"
32261	//   "REQUIRED_TOS_AGREEMENT"
32262	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32263	//   "RESOURCE_NOT_DELETED"
32264	//   "SCHEMA_VALIDATION_IGNORED"
32265	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32266	//   "UNDECLARED_PROPERTIES"
32267	//   "UNREACHABLE"
32268	Code string `json:"code,omitempty"`
32269
32270	// Data: [Output Only] Metadata about this warning in key: value format.
32271	// For example:
32272	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32273	Data []*RegionInstanceGroupManagersListInstanceConfigsRespWarningData `json:"data,omitempty"`
32274
32275	// Message: [Output Only] A human-readable description of the warning
32276	// code.
32277	Message string `json:"message,omitempty"`
32278
32279	// ForceSendFields is a list of field names (e.g. "Code") to
32280	// unconditionally include in API requests. By default, fields with
32281	// empty values are omitted from API requests. However, any non-pointer,
32282	// non-interface field appearing in ForceSendFields will be sent to the
32283	// server regardless of whether the field is empty or not. This may be
32284	// used to include empty fields in Patch requests.
32285	ForceSendFields []string `json:"-"`
32286
32287	// NullFields is a list of field names (e.g. "Code") to include in API
32288	// requests with the JSON null value. By default, fields with empty
32289	// values are omitted from API requests. However, any field with an
32290	// empty value appearing in NullFields will be sent to the server as
32291	// null. It is an error if a field in this list has a non-empty value.
32292	// This may be used to include null fields in Patch requests.
32293	NullFields []string `json:"-"`
32294}
32295
32296func (s *RegionInstanceGroupManagersListInstanceConfigsRespWarning) MarshalJSON() ([]byte, error) {
32297	type NoMethod RegionInstanceGroupManagersListInstanceConfigsRespWarning
32298	raw := NoMethod(*s)
32299	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32300}
32301
32302type RegionInstanceGroupManagersListInstanceConfigsRespWarningData struct {
32303	// Key: [Output Only] A key that provides more detail on the warning
32304	// being returned. For example, for warnings where there are no results
32305	// in a list request for a particular zone, this key might be scope and
32306	// the key value might be the zone name. Other examples might be a key
32307	// indicating a deprecated resource and a suggested replacement, or a
32308	// warning about invalid network settings (for example, if an instance
32309	// attempts to perform IP forwarding but is not enabled for IP
32310	// forwarding).
32311	Key string `json:"key,omitempty"`
32312
32313	// Value: [Output Only] A warning data value corresponding to the key.
32314	Value string `json:"value,omitempty"`
32315
32316	// ForceSendFields is a list of field names (e.g. "Key") to
32317	// unconditionally include in API requests. By default, fields with
32318	// empty values are omitted from API requests. However, any non-pointer,
32319	// non-interface field appearing in ForceSendFields will be sent to the
32320	// server regardless of whether the field is empty or not. This may be
32321	// used to include empty fields in Patch requests.
32322	ForceSendFields []string `json:"-"`
32323
32324	// NullFields is a list of field names (e.g. "Key") to include in API
32325	// requests with the JSON null value. By default, fields with empty
32326	// values are omitted from API requests. However, any field with an
32327	// empty value appearing in NullFields will be sent to the server as
32328	// null. It is an error if a field in this list has a non-empty value.
32329	// This may be used to include null fields in Patch requests.
32330	NullFields []string `json:"-"`
32331}
32332
32333func (s *RegionInstanceGroupManagersListInstanceConfigsRespWarningData) MarshalJSON() ([]byte, error) {
32334	type NoMethod RegionInstanceGroupManagersListInstanceConfigsRespWarningData
32335	raw := NoMethod(*s)
32336	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32337}
32338
32339type RegionInstanceGroupManagersListInstancesResponse struct {
32340	// ManagedInstances: A list of managed instances.
32341	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
32342
32343	// NextPageToken: [Output Only] This token allows you to get the next
32344	// page of results for list requests. If the number of results is larger
32345	// than maxResults, use the nextPageToken as a value for the query
32346	// parameter pageToken in the next list request. Subsequent list
32347	// requests will have their own nextPageToken to continue paging through
32348	// the results.
32349	NextPageToken string `json:"nextPageToken,omitempty"`
32350
32351	// ServerResponse contains the HTTP response code and headers from the
32352	// server.
32353	googleapi.ServerResponse `json:"-"`
32354
32355	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
32356	// unconditionally include in API requests. By default, fields with
32357	// empty values are omitted from API requests. However, any non-pointer,
32358	// non-interface field appearing in ForceSendFields will be sent to the
32359	// server regardless of whether the field is empty or not. This may be
32360	// used to include empty fields in Patch requests.
32361	ForceSendFields []string `json:"-"`
32362
32363	// NullFields is a list of field names (e.g. "ManagedInstances") to
32364	// include in API requests with the JSON null value. By default, fields
32365	// with empty values are omitted from API requests. However, any field
32366	// with an empty value appearing in NullFields will be sent to the
32367	// server as null. It is an error if a field in this list has a
32368	// non-empty value. This may be used to include null fields in Patch
32369	// requests.
32370	NullFields []string `json:"-"`
32371}
32372
32373func (s *RegionInstanceGroupManagersListInstancesResponse) MarshalJSON() ([]byte, error) {
32374	type NoMethod RegionInstanceGroupManagersListInstancesResponse
32375	raw := NoMethod(*s)
32376	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32377}
32378
32379type RegionInstanceGroupManagersRecreateRequest struct {
32380	// Instances: The URLs of one or more instances to recreate. This can be
32381	// a full URL or a partial URL, such as
32382	// zones/[ZONE]/instances/[INSTANCE_NAME].
32383	Instances []string `json:"instances,omitempty"`
32384
32385	// ForceSendFields is a list of field names (e.g. "Instances") to
32386	// unconditionally include in API requests. By default, fields with
32387	// empty values are omitted from API requests. However, any non-pointer,
32388	// non-interface field appearing in ForceSendFields will be sent to the
32389	// server regardless of whether the field is empty or not. This may be
32390	// used to include empty fields in Patch requests.
32391	ForceSendFields []string `json:"-"`
32392
32393	// NullFields is a list of field names (e.g. "Instances") to include in
32394	// API requests with the JSON null value. By default, fields with empty
32395	// values are omitted from API requests. However, any field with an
32396	// empty value appearing in NullFields will be sent to the server as
32397	// null. It is an error if a field in this list has a non-empty value.
32398	// This may be used to include null fields in Patch requests.
32399	NullFields []string `json:"-"`
32400}
32401
32402func (s *RegionInstanceGroupManagersRecreateRequest) MarshalJSON() ([]byte, error) {
32403	type NoMethod RegionInstanceGroupManagersRecreateRequest
32404	raw := NoMethod(*s)
32405	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32406}
32407
32408type RegionInstanceGroupManagersSetAutoHealingRequest struct {
32409	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
32410
32411	// ForceSendFields is a list of field names (e.g. "AutoHealingPolicies")
32412	// to unconditionally include in API requests. By default, fields with
32413	// empty values are omitted from API requests. However, any non-pointer,
32414	// non-interface field appearing in ForceSendFields will be sent to the
32415	// server regardless of whether the field is empty or not. This may be
32416	// used to include empty fields in Patch requests.
32417	ForceSendFields []string `json:"-"`
32418
32419	// NullFields is a list of field names (e.g. "AutoHealingPolicies") to
32420	// include in API requests with the JSON null value. By default, fields
32421	// with empty values are omitted from API requests. However, any field
32422	// with an empty value appearing in NullFields will be sent to the
32423	// server as null. It is an error if a field in this list has a
32424	// non-empty value. This may be used to include null fields in Patch
32425	// requests.
32426	NullFields []string `json:"-"`
32427}
32428
32429func (s *RegionInstanceGroupManagersSetAutoHealingRequest) MarshalJSON() ([]byte, error) {
32430	type NoMethod RegionInstanceGroupManagersSetAutoHealingRequest
32431	raw := NoMethod(*s)
32432	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32433}
32434
32435type RegionInstanceGroupManagersSetTargetPoolsRequest struct {
32436	// Fingerprint: Fingerprint of the target pools information, which is a
32437	// hash of the contents. This field is used for optimistic locking when
32438	// you update the target pool entries. This field is optional.
32439	Fingerprint string `json:"fingerprint,omitempty"`
32440
32441	// TargetPools: The URL of all TargetPool resources to which instances
32442	// in the instanceGroup field are added. The target pools automatically
32443	// apply to all of the instances in the managed instance group.
32444	TargetPools []string `json:"targetPools,omitempty"`
32445
32446	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
32447	// unconditionally include in API requests. By default, fields with
32448	// empty values are omitted from API requests. However, any non-pointer,
32449	// non-interface field appearing in ForceSendFields will be sent to the
32450	// server regardless of whether the field is empty or not. This may be
32451	// used to include empty fields in Patch requests.
32452	ForceSendFields []string `json:"-"`
32453
32454	// NullFields is a list of field names (e.g. "Fingerprint") to include
32455	// in API requests with the JSON null value. By default, fields with
32456	// empty values are omitted from API requests. However, any field with
32457	// an empty value appearing in NullFields will be sent to the server as
32458	// null. It is an error if a field in this list has a non-empty value.
32459	// This may be used to include null fields in Patch requests.
32460	NullFields []string `json:"-"`
32461}
32462
32463func (s *RegionInstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
32464	type NoMethod RegionInstanceGroupManagersSetTargetPoolsRequest
32465	raw := NoMethod(*s)
32466	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32467}
32468
32469type RegionInstanceGroupManagersSetTemplateRequest struct {
32470	// InstanceTemplate: URL of the InstanceTemplate resource from which all
32471	// new instances will be created.
32472	InstanceTemplate string `json:"instanceTemplate,omitempty"`
32473
32474	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
32475	// unconditionally include in API requests. By default, fields with
32476	// empty values are omitted from API requests. However, any non-pointer,
32477	// non-interface field appearing in ForceSendFields will be sent to the
32478	// server regardless of whether the field is empty or not. This may be
32479	// used to include empty fields in Patch requests.
32480	ForceSendFields []string `json:"-"`
32481
32482	// NullFields is a list of field names (e.g. "InstanceTemplate") to
32483	// include in API requests with the JSON null value. By default, fields
32484	// with empty values are omitted from API requests. However, any field
32485	// with an empty value appearing in NullFields will be sent to the
32486	// server as null. It is an error if a field in this list has a
32487	// non-empty value. This may be used to include null fields in Patch
32488	// requests.
32489	NullFields []string `json:"-"`
32490}
32491
32492func (s *RegionInstanceGroupManagersSetTemplateRequest) MarshalJSON() ([]byte, error) {
32493	type NoMethod RegionInstanceGroupManagersSetTemplateRequest
32494	raw := NoMethod(*s)
32495	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32496}
32497
32498type RegionInstanceGroupsListInstances struct {
32499	// Id: [Output Only] Unique identifier for the resource; defined by the
32500	// server.
32501	Id string `json:"id,omitempty"`
32502
32503	// Items: A list of InstanceWithNamedPorts resources.
32504	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
32505
32506	// Kind: The resource type.
32507	Kind string `json:"kind,omitempty"`
32508
32509	// NextPageToken: [Output Only] This token allows you to get the next
32510	// page of results for list requests. If the number of results is larger
32511	// than maxResults, use the nextPageToken as a value for the query
32512	// parameter pageToken in the next list request. Subsequent list
32513	// requests will have their own nextPageToken to continue paging through
32514	// the results.
32515	NextPageToken string `json:"nextPageToken,omitempty"`
32516
32517	// SelfLink: [Output Only] Server-defined URL for this resource.
32518	SelfLink string `json:"selfLink,omitempty"`
32519
32520	// Warning: [Output Only] Informational warning message.
32521	Warning *RegionInstanceGroupsListInstancesWarning `json:"warning,omitempty"`
32522
32523	// ServerResponse contains the HTTP response code and headers from the
32524	// server.
32525	googleapi.ServerResponse `json:"-"`
32526
32527	// ForceSendFields is a list of field names (e.g. "Id") to
32528	// unconditionally include in API requests. By default, fields with
32529	// empty values are omitted from API requests. However, any non-pointer,
32530	// non-interface field appearing in ForceSendFields will be sent to the
32531	// server regardless of whether the field is empty or not. This may be
32532	// used to include empty fields in Patch requests.
32533	ForceSendFields []string `json:"-"`
32534
32535	// NullFields is a list of field names (e.g. "Id") to include in API
32536	// requests with the JSON null value. By default, fields with empty
32537	// values are omitted from API requests. However, any field with an
32538	// empty value appearing in NullFields will be sent to the server as
32539	// null. It is an error if a field in this list has a non-empty value.
32540	// This may be used to include null fields in Patch requests.
32541	NullFields []string `json:"-"`
32542}
32543
32544func (s *RegionInstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
32545	type NoMethod RegionInstanceGroupsListInstances
32546	raw := NoMethod(*s)
32547	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32548}
32549
32550// RegionInstanceGroupsListInstancesWarning: [Output Only] Informational
32551// warning message.
32552type RegionInstanceGroupsListInstancesWarning struct {
32553	// Code: [Output Only] A warning code, if applicable. For example,
32554	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32555	// the response.
32556	//
32557	// Possible values:
32558	//   "CLEANUP_FAILED"
32559	//   "DEPRECATED_RESOURCE_USED"
32560	//   "DEPRECATED_TYPE_USED"
32561	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32562	//   "EXPERIMENTAL_TYPE_USED"
32563	//   "EXTERNAL_API_WARNING"
32564	//   "FIELD_VALUE_OVERRIDEN"
32565	//   "INJECTED_KERNELS_DEPRECATED"
32566	//   "MISSING_TYPE_DEPENDENCY"
32567	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32568	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32569	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32570	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32571	//   "NEXT_HOP_NOT_RUNNING"
32572	//   "NOT_CRITICAL_ERROR"
32573	//   "NO_RESULTS_ON_PAGE"
32574	//   "REQUIRED_TOS_AGREEMENT"
32575	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32576	//   "RESOURCE_NOT_DELETED"
32577	//   "SCHEMA_VALIDATION_IGNORED"
32578	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32579	//   "UNDECLARED_PROPERTIES"
32580	//   "UNREACHABLE"
32581	Code string `json:"code,omitempty"`
32582
32583	// Data: [Output Only] Metadata about this warning in key: value format.
32584	// For example:
32585	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32586	Data []*RegionInstanceGroupsListInstancesWarningData `json:"data,omitempty"`
32587
32588	// Message: [Output Only] A human-readable description of the warning
32589	// code.
32590	Message string `json:"message,omitempty"`
32591
32592	// ForceSendFields is a list of field names (e.g. "Code") to
32593	// unconditionally include in API requests. By default, fields with
32594	// empty values are omitted from API requests. However, any non-pointer,
32595	// non-interface field appearing in ForceSendFields will be sent to the
32596	// server regardless of whether the field is empty or not. This may be
32597	// used to include empty fields in Patch requests.
32598	ForceSendFields []string `json:"-"`
32599
32600	// NullFields is a list of field names (e.g. "Code") to include in API
32601	// requests with the JSON null value. By default, fields with empty
32602	// values are omitted from API requests. However, any field with an
32603	// empty value appearing in NullFields will be sent to the server as
32604	// null. It is an error if a field in this list has a non-empty value.
32605	// This may be used to include null fields in Patch requests.
32606	NullFields []string `json:"-"`
32607}
32608
32609func (s *RegionInstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
32610	type NoMethod RegionInstanceGroupsListInstancesWarning
32611	raw := NoMethod(*s)
32612	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32613}
32614
32615type RegionInstanceGroupsListInstancesWarningData struct {
32616	// Key: [Output Only] A key that provides more detail on the warning
32617	// being returned. For example, for warnings where there are no results
32618	// in a list request for a particular zone, this key might be scope and
32619	// the key value might be the zone name. Other examples might be a key
32620	// indicating a deprecated resource and a suggested replacement, or a
32621	// warning about invalid network settings (for example, if an instance
32622	// attempts to perform IP forwarding but is not enabled for IP
32623	// forwarding).
32624	Key string `json:"key,omitempty"`
32625
32626	// Value: [Output Only] A warning data value corresponding to the key.
32627	Value string `json:"value,omitempty"`
32628
32629	// ForceSendFields is a list of field names (e.g. "Key") to
32630	// unconditionally include in API requests. By default, fields with
32631	// empty values are omitted from API requests. However, any non-pointer,
32632	// non-interface field appearing in ForceSendFields will be sent to the
32633	// server regardless of whether the field is empty or not. This may be
32634	// used to include empty fields in Patch requests.
32635	ForceSendFields []string `json:"-"`
32636
32637	// NullFields is a list of field names (e.g. "Key") to include in API
32638	// requests with the JSON null value. By default, fields with empty
32639	// values are omitted from API requests. However, any field with an
32640	// empty value appearing in NullFields will be sent to the server as
32641	// null. It is an error if a field in this list has a non-empty value.
32642	// This may be used to include null fields in Patch requests.
32643	NullFields []string `json:"-"`
32644}
32645
32646func (s *RegionInstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
32647	type NoMethod RegionInstanceGroupsListInstancesWarningData
32648	raw := NoMethod(*s)
32649	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32650}
32651
32652type RegionInstanceGroupsListInstancesRequest struct {
32653	// InstanceState: Instances in which state should be returned. Valid
32654	// options are: 'ALL', 'RUNNING'. By default, it lists all instances.
32655	//
32656	// Possible values:
32657	//   "ALL"
32658	//   "RUNNING"
32659	InstanceState string `json:"instanceState,omitempty"`
32660
32661	// PortName: Name of port user is interested in. It is optional. If it
32662	// is set, only information about this ports will be returned. If it is
32663	// not set, all the named ports will be returned. Always lists all
32664	// instances.
32665	PortName string `json:"portName,omitempty"`
32666
32667	// ForceSendFields is a list of field names (e.g. "InstanceState") to
32668	// unconditionally include in API requests. By default, fields with
32669	// empty values are omitted from API requests. However, any non-pointer,
32670	// non-interface field appearing in ForceSendFields will be sent to the
32671	// server regardless of whether the field is empty or not. This may be
32672	// used to include empty fields in Patch requests.
32673	ForceSendFields []string `json:"-"`
32674
32675	// NullFields is a list of field names (e.g. "InstanceState") to include
32676	// in API requests with the JSON null value. By default, fields with
32677	// empty values are omitted from API requests. However, any field with
32678	// an empty value appearing in NullFields will be sent to the server as
32679	// null. It is an error if a field in this list has a non-empty value.
32680	// This may be used to include null fields in Patch requests.
32681	NullFields []string `json:"-"`
32682}
32683
32684func (s *RegionInstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
32685	type NoMethod RegionInstanceGroupsListInstancesRequest
32686	raw := NoMethod(*s)
32687	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32688}
32689
32690type RegionInstanceGroupsSetNamedPortsRequest struct {
32691	// Fingerprint: The fingerprint of the named ports information for this
32692	// instance group. Use this optional property to prevent conflicts when
32693	// multiple users change the named ports settings concurrently. Obtain
32694	// the fingerprint with the instanceGroups.get method. Then, include the
32695	// fingerprint in your request to ensure that you do not overwrite
32696	// changes that were applied from another concurrent request.
32697	Fingerprint string `json:"fingerprint,omitempty"`
32698
32699	// NamedPorts: The list of named ports to set for this instance group.
32700	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
32701
32702	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
32703	// unconditionally include in API requests. By default, fields with
32704	// empty values are omitted from API requests. However, any non-pointer,
32705	// non-interface field appearing in ForceSendFields will be sent to the
32706	// server regardless of whether the field is empty or not. This may be
32707	// used to include empty fields in Patch requests.
32708	ForceSendFields []string `json:"-"`
32709
32710	// NullFields is a list of field names (e.g. "Fingerprint") to include
32711	// in API requests with the JSON null value. By default, fields with
32712	// empty values are omitted from API requests. However, any field with
32713	// an empty value appearing in NullFields will be sent to the server as
32714	// null. It is an error if a field in this list has a non-empty value.
32715	// This may be used to include null fields in Patch requests.
32716	NullFields []string `json:"-"`
32717}
32718
32719func (s *RegionInstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
32720	type NoMethod RegionInstanceGroupsSetNamedPortsRequest
32721	raw := NoMethod(*s)
32722	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32723}
32724
32725// RegionList: Contains a list of region resources.
32726type RegionList struct {
32727	// Id: [Output Only] Unique identifier for the resource; defined by the
32728	// server.
32729	Id string `json:"id,omitempty"`
32730
32731	// Items: A list of Region resources.
32732	Items []*Region `json:"items,omitempty"`
32733
32734	// Kind: [Output Only] Type of resource. Always compute#regionList for
32735	// lists of regions.
32736	Kind string `json:"kind,omitempty"`
32737
32738	// NextPageToken: [Output Only] This token allows you to get the next
32739	// page of results for list requests. If the number of results is larger
32740	// than maxResults, use the nextPageToken as a value for the query
32741	// parameter pageToken in the next list request. Subsequent list
32742	// requests will have their own nextPageToken to continue paging through
32743	// the results.
32744	NextPageToken string `json:"nextPageToken,omitempty"`
32745
32746	// SelfLink: [Output Only] Server-defined URL for this resource.
32747	SelfLink string `json:"selfLink,omitempty"`
32748
32749	// Warning: [Output Only] Informational warning message.
32750	Warning *RegionListWarning `json:"warning,omitempty"`
32751
32752	// ServerResponse contains the HTTP response code and headers from the
32753	// server.
32754	googleapi.ServerResponse `json:"-"`
32755
32756	// ForceSendFields is a list of field names (e.g. "Id") to
32757	// unconditionally include in API requests. By default, fields with
32758	// empty values are omitted from API requests. However, any non-pointer,
32759	// non-interface field appearing in ForceSendFields will be sent to the
32760	// server regardless of whether the field is empty or not. This may be
32761	// used to include empty fields in Patch requests.
32762	ForceSendFields []string `json:"-"`
32763
32764	// NullFields is a list of field names (e.g. "Id") to include in API
32765	// requests with the JSON null value. By default, fields with empty
32766	// values are omitted from API requests. However, any field with an
32767	// empty value appearing in NullFields will be sent to the server as
32768	// null. It is an error if a field in this list has a non-empty value.
32769	// This may be used to include null fields in Patch requests.
32770	NullFields []string `json:"-"`
32771}
32772
32773func (s *RegionList) MarshalJSON() ([]byte, error) {
32774	type NoMethod RegionList
32775	raw := NoMethod(*s)
32776	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32777}
32778
32779// RegionListWarning: [Output Only] Informational warning message.
32780type RegionListWarning struct {
32781	// Code: [Output Only] A warning code, if applicable. For example,
32782	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32783	// the response.
32784	//
32785	// Possible values:
32786	//   "CLEANUP_FAILED"
32787	//   "DEPRECATED_RESOURCE_USED"
32788	//   "DEPRECATED_TYPE_USED"
32789	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32790	//   "EXPERIMENTAL_TYPE_USED"
32791	//   "EXTERNAL_API_WARNING"
32792	//   "FIELD_VALUE_OVERRIDEN"
32793	//   "INJECTED_KERNELS_DEPRECATED"
32794	//   "MISSING_TYPE_DEPENDENCY"
32795	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32796	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32797	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32798	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32799	//   "NEXT_HOP_NOT_RUNNING"
32800	//   "NOT_CRITICAL_ERROR"
32801	//   "NO_RESULTS_ON_PAGE"
32802	//   "REQUIRED_TOS_AGREEMENT"
32803	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32804	//   "RESOURCE_NOT_DELETED"
32805	//   "SCHEMA_VALIDATION_IGNORED"
32806	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32807	//   "UNDECLARED_PROPERTIES"
32808	//   "UNREACHABLE"
32809	Code string `json:"code,omitempty"`
32810
32811	// Data: [Output Only] Metadata about this warning in key: value format.
32812	// For example:
32813	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32814	Data []*RegionListWarningData `json:"data,omitempty"`
32815
32816	// Message: [Output Only] A human-readable description of the warning
32817	// code.
32818	Message string `json:"message,omitempty"`
32819
32820	// ForceSendFields is a list of field names (e.g. "Code") to
32821	// unconditionally include in API requests. By default, fields with
32822	// empty values are omitted from API requests. However, any non-pointer,
32823	// non-interface field appearing in ForceSendFields will be sent to the
32824	// server regardless of whether the field is empty or not. This may be
32825	// used to include empty fields in Patch requests.
32826	ForceSendFields []string `json:"-"`
32827
32828	// NullFields is a list of field names (e.g. "Code") to include in API
32829	// requests with the JSON null value. By default, fields with empty
32830	// values are omitted from API requests. However, any field with an
32831	// empty value appearing in NullFields will be sent to the server as
32832	// null. It is an error if a field in this list has a non-empty value.
32833	// This may be used to include null fields in Patch requests.
32834	NullFields []string `json:"-"`
32835}
32836
32837func (s *RegionListWarning) MarshalJSON() ([]byte, error) {
32838	type NoMethod RegionListWarning
32839	raw := NoMethod(*s)
32840	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32841}
32842
32843type RegionListWarningData struct {
32844	// Key: [Output Only] A key that provides more detail on the warning
32845	// being returned. For example, for warnings where there are no results
32846	// in a list request for a particular zone, this key might be scope and
32847	// the key value might be the zone name. Other examples might be a key
32848	// indicating a deprecated resource and a suggested replacement, or a
32849	// warning about invalid network settings (for example, if an instance
32850	// attempts to perform IP forwarding but is not enabled for IP
32851	// forwarding).
32852	Key string `json:"key,omitempty"`
32853
32854	// Value: [Output Only] A warning data value corresponding to the key.
32855	Value string `json:"value,omitempty"`
32856
32857	// ForceSendFields is a list of field names (e.g. "Key") to
32858	// unconditionally include in API requests. By default, fields with
32859	// empty values are omitted from API requests. However, any non-pointer,
32860	// non-interface field appearing in ForceSendFields will be sent to the
32861	// server regardless of whether the field is empty or not. This may be
32862	// used to include empty fields in Patch requests.
32863	ForceSendFields []string `json:"-"`
32864
32865	// NullFields is a list of field names (e.g. "Key") to include in API
32866	// requests with the JSON null value. By default, fields with empty
32867	// values are omitted from API requests. However, any field with an
32868	// empty value appearing in NullFields will be sent to the server as
32869	// null. It is an error if a field in this list has a non-empty value.
32870	// This may be used to include null fields in Patch requests.
32871	NullFields []string `json:"-"`
32872}
32873
32874func (s *RegionListWarningData) MarshalJSON() ([]byte, error) {
32875	type NoMethod RegionListWarningData
32876	raw := NoMethod(*s)
32877	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32878}
32879
32880type RegionSetLabelsRequest struct {
32881	// LabelFingerprint: The fingerprint of the previous set of labels for
32882	// this resource, used to detect conflicts. The fingerprint is initially
32883	// generated by Compute Engine and changes after every request to modify
32884	// or update labels. You must always provide an up-to-date fingerprint
32885	// hash in order to update or change labels. Make a get() request to the
32886	// resource to get the latest fingerprint.
32887	LabelFingerprint string `json:"labelFingerprint,omitempty"`
32888
32889	// Labels: The labels to set for this resource.
32890	Labels map[string]string `json:"labels,omitempty"`
32891
32892	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
32893	// unconditionally include in API requests. By default, fields with
32894	// empty values are omitted from API requests. However, any non-pointer,
32895	// non-interface field appearing in ForceSendFields will be sent to the
32896	// server regardless of whether the field is empty or not. This may be
32897	// used to include empty fields in Patch requests.
32898	ForceSendFields []string `json:"-"`
32899
32900	// NullFields is a list of field names (e.g. "LabelFingerprint") to
32901	// include in API requests with the JSON null value. By default, fields
32902	// with empty values are omitted from API requests. However, any field
32903	// with an empty value appearing in NullFields will be sent to the
32904	// server as null. It is an error if a field in this list has a
32905	// non-empty value. This may be used to include null fields in Patch
32906	// requests.
32907	NullFields []string `json:"-"`
32908}
32909
32910func (s *RegionSetLabelsRequest) MarshalJSON() ([]byte, error) {
32911	type NoMethod RegionSetLabelsRequest
32912	raw := NoMethod(*s)
32913	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32914}
32915
32916type RegionSetPolicyRequest struct {
32917	// Bindings: Flatten Policy to create a backwacd compatible wire-format.
32918	// Deprecated. Use 'policy' to specify bindings.
32919	Bindings []*Binding `json:"bindings,omitempty"`
32920
32921	// Etag: Flatten Policy to create a backward compatible wire-format.
32922	// Deprecated. Use 'policy' to specify the etag.
32923	Etag string `json:"etag,omitempty"`
32924
32925	// Policy: REQUIRED: The complete policy to be applied to the
32926	// 'resource'. The size of the policy is limited to a few 10s of KB. An
32927	// empty policy is in general a valid policy but certain services (like
32928	// Projects) might reject them.
32929	Policy *Policy `json:"policy,omitempty"`
32930
32931	// ForceSendFields is a list of field names (e.g. "Bindings") to
32932	// unconditionally include in API requests. By default, fields with
32933	// empty values are omitted from API requests. However, any non-pointer,
32934	// non-interface field appearing in ForceSendFields will be sent to the
32935	// server regardless of whether the field is empty or not. This may be
32936	// used to include empty fields in Patch requests.
32937	ForceSendFields []string `json:"-"`
32938
32939	// NullFields is a list of field names (e.g. "Bindings") to include in
32940	// API requests with the JSON null value. By default, fields with empty
32941	// values are omitted from API requests. However, any field with an
32942	// empty value appearing in NullFields will be sent to the server as
32943	// null. It is an error if a field in this list has a non-empty value.
32944	// This may be used to include null fields in Patch requests.
32945	NullFields []string `json:"-"`
32946}
32947
32948func (s *RegionSetPolicyRequest) MarshalJSON() ([]byte, error) {
32949	type NoMethod RegionSetPolicyRequest
32950	raw := NoMethod(*s)
32951	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32952}
32953
32954type RegionTargetHttpsProxiesSetSslCertificatesRequest struct {
32955	// SslCertificates: New set of SslCertificate resources to associate
32956	// with this TargetHttpsProxy resource. Currently exactly one
32957	// SslCertificate resource must be specified.
32958	SslCertificates []string `json:"sslCertificates,omitempty"`
32959
32960	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
32961	// unconditionally include in API requests. By default, fields with
32962	// empty values are omitted from API requests. However, any non-pointer,
32963	// non-interface field appearing in ForceSendFields will be sent to the
32964	// server regardless of whether the field is empty or not. This may be
32965	// used to include empty fields in Patch requests.
32966	ForceSendFields []string `json:"-"`
32967
32968	// NullFields is a list of field names (e.g. "SslCertificates") to
32969	// include in API requests with the JSON null value. By default, fields
32970	// with empty values are omitted from API requests. However, any field
32971	// with an empty value appearing in NullFields will be sent to the
32972	// server as null. It is an error if a field in this list has a
32973	// non-empty value. This may be used to include null fields in Patch
32974	// requests.
32975	NullFields []string `json:"-"`
32976}
32977
32978func (s *RegionTargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
32979	type NoMethod RegionTargetHttpsProxiesSetSslCertificatesRequest
32980	raw := NoMethod(*s)
32981	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32982}
32983
32984type RegionUrlMapsValidateRequest struct {
32985	// Resource: Content of the UrlMap to be validated.
32986	Resource *UrlMap `json:"resource,omitempty"`
32987
32988	// ForceSendFields is a list of field names (e.g. "Resource") to
32989	// unconditionally include in API requests. By default, fields with
32990	// empty values are omitted from API requests. However, any non-pointer,
32991	// non-interface field appearing in ForceSendFields will be sent to the
32992	// server regardless of whether the field is empty or not. This may be
32993	// used to include empty fields in Patch requests.
32994	ForceSendFields []string `json:"-"`
32995
32996	// NullFields is a list of field names (e.g. "Resource") to include in
32997	// API requests with the JSON null value. By default, fields with empty
32998	// values are omitted from API requests. However, any field with an
32999	// empty value appearing in NullFields will be sent to the server as
33000	// null. It is an error if a field in this list has a non-empty value.
33001	// This may be used to include null fields in Patch requests.
33002	NullFields []string `json:"-"`
33003}
33004
33005func (s *RegionUrlMapsValidateRequest) MarshalJSON() ([]byte, error) {
33006	type NoMethod RegionUrlMapsValidateRequest
33007	raw := NoMethod(*s)
33008	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33009}
33010
33011// RequestMirrorPolicy: A policy that specifies how requests intended
33012// for the route's backends are shadowed to a separate mirrored backend
33013// service. Loadbalancer does not wait for responses from the shadow
33014// service. Prior to sending traffic to the shadow service, the host /
33015// authority header is suffixed with -shadow.
33016type RequestMirrorPolicy struct {
33017	// BackendService: The full or partial URL to the BackendService
33018	// resource being mirrored to.
33019	BackendService string `json:"backendService,omitempty"`
33020
33021	// ForceSendFields is a list of field names (e.g. "BackendService") to
33022	// unconditionally include in API requests. By default, fields with
33023	// empty values are omitted from API requests. However, any non-pointer,
33024	// non-interface field appearing in ForceSendFields will be sent to the
33025	// server regardless of whether the field is empty or not. This may be
33026	// used to include empty fields in Patch requests.
33027	ForceSendFields []string `json:"-"`
33028
33029	// NullFields is a list of field names (e.g. "BackendService") to
33030	// include in API requests with the JSON null value. By default, fields
33031	// with empty values are omitted from API requests. However, any field
33032	// with an empty value appearing in NullFields will be sent to the
33033	// server as null. It is an error if a field in this list has a
33034	// non-empty value. This may be used to include null fields in Patch
33035	// requests.
33036	NullFields []string `json:"-"`
33037}
33038
33039func (s *RequestMirrorPolicy) MarshalJSON() ([]byte, error) {
33040	type NoMethod RequestMirrorPolicy
33041	raw := NoMethod(*s)
33042	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33043}
33044
33045// Reservation: Represents a reservation resource. A reservation ensures
33046// that capacity is held in a specific zone even if the reserved VMs are
33047// not running. For more information, read  Reserving zonal resources.
33048// (== resource_for {$api_version}.reservations ==)
33049type Reservation struct {
33050	// Commitment: [Output Only] Full or partial URL to a parent commitment.
33051	// This field displays for reservations that are tied to a commitment.
33052	Commitment string `json:"commitment,omitempty"`
33053
33054	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
33055	// format.
33056	CreationTimestamp string `json:"creationTimestamp,omitempty"`
33057
33058	// Description: An optional description of this resource. Provide this
33059	// property when you create the resource.
33060	Description string `json:"description,omitempty"`
33061
33062	// Id: [Output Only] The unique identifier for the resource. This
33063	// identifier is defined by the server.
33064	Id uint64 `json:"id,omitempty,string"`
33065
33066	// Kind: [Output Only] Type of the resource. Always compute#reservations
33067	// for reservations.
33068	Kind string `json:"kind,omitempty"`
33069
33070	// Name: The name of the resource, provided by the client when initially
33071	// creating the resource. The resource name must be 1-63 characters
33072	// long, and comply with RFC1035. Specifically, the name must be 1-63
33073	// characters long and match the regular expression
33074	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
33075	// a lowercase letter, and all following characters must be a dash,
33076	// lowercase letter, or digit, except the last character, which cannot
33077	// be a dash.
33078	Name string `json:"name,omitempty"`
33079
33080	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
33081	// resource.
33082	SelfLink string `json:"selfLink,omitempty"`
33083
33084	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
33085	// with the resource id.
33086	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
33087
33088	// SpecificReservation: Reservation for instances with specific machine
33089	// shapes.
33090	SpecificReservation *AllocationSpecificSKUReservation `json:"specificReservation,omitempty"`
33091
33092	// SpecificReservationRequired: Indicates whether the reservation can be
33093	// consumed by VMs with affinity for "any" reservation. If the field is
33094	// set, then only VMs that target the reservation by name can consume
33095	// from this reservation.
33096	SpecificReservationRequired bool `json:"specificReservationRequired,omitempty"`
33097
33098	// Status: [Output Only] The status of the reservation.
33099	//
33100	// Possible values:
33101	//   "CREATING"
33102	//   "DELETING"
33103	//   "INVALID"
33104	//   "READY"
33105	//   "UPDATING"
33106	Status string `json:"status,omitempty"`
33107
33108	// Zone: Zone in which the reservation resides. A zone must be provided
33109	// if the reservation is created within a commitment.
33110	Zone string `json:"zone,omitempty"`
33111
33112	// ServerResponse contains the HTTP response code and headers from the
33113	// server.
33114	googleapi.ServerResponse `json:"-"`
33115
33116	// ForceSendFields is a list of field names (e.g. "Commitment") to
33117	// unconditionally include in API requests. By default, fields with
33118	// empty values are omitted from API requests. However, any non-pointer,
33119	// non-interface field appearing in ForceSendFields will be sent to the
33120	// server regardless of whether the field is empty or not. This may be
33121	// used to include empty fields in Patch requests.
33122	ForceSendFields []string `json:"-"`
33123
33124	// NullFields is a list of field names (e.g. "Commitment") to include in
33125	// API requests with the JSON null value. By default, fields with empty
33126	// values are omitted from API requests. However, any field with an
33127	// empty value appearing in NullFields will be sent to the server as
33128	// null. It is an error if a field in this list has a non-empty value.
33129	// This may be used to include null fields in Patch requests.
33130	NullFields []string `json:"-"`
33131}
33132
33133func (s *Reservation) MarshalJSON() ([]byte, error) {
33134	type NoMethod Reservation
33135	raw := NoMethod(*s)
33136	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33137}
33138
33139// ReservationAffinity: Specifies the reservations that this instance
33140// can consume from.
33141type ReservationAffinity struct {
33142	// ConsumeReservationType: Specifies the type of reservation from which
33143	// this instance can consume resources: ANY_RESERVATION (default),
33144	// SPECIFIC_RESERVATION, or NO_RESERVATION. See  Consuming reserved
33145	// instances for examples.
33146	//
33147	// Possible values:
33148	//   "ANY_RESERVATION"
33149	//   "NO_RESERVATION"
33150	//   "SPECIFIC_RESERVATION"
33151	//   "SPECIFIC_THEN_ANY_RESERVATION"
33152	//   "UNSPECIFIED"
33153	ConsumeReservationType string `json:"consumeReservationType,omitempty"`
33154
33155	// Key: Corresponds to the label key of a reservation resource. To
33156	// target a SPECIFIC_RESERVATION by name, specify
33157	// googleapis.com/reservation-name as the key and specify the name of
33158	// your reservation as its value.
33159	Key string `json:"key,omitempty"`
33160
33161	// Values: Corresponds to the label values of a reservation resource.
33162	Values []string `json:"values,omitempty"`
33163
33164	// ForceSendFields is a list of field names (e.g.
33165	// "ConsumeReservationType") to unconditionally include in API requests.
33166	// By default, fields with empty values are omitted from API requests.
33167	// However, any non-pointer, non-interface field appearing in
33168	// ForceSendFields will be sent to the server regardless of whether the
33169	// field is empty or not. This may be used to include empty fields in
33170	// Patch requests.
33171	ForceSendFields []string `json:"-"`
33172
33173	// NullFields is a list of field names (e.g. "ConsumeReservationType")
33174	// to include in API requests with the JSON null value. By default,
33175	// fields with empty values are omitted from API requests. However, any
33176	// field with an empty value appearing in NullFields will be sent to the
33177	// server as null. It is an error if a field in this list has a
33178	// non-empty value. This may be used to include null fields in Patch
33179	// requests.
33180	NullFields []string `json:"-"`
33181}
33182
33183func (s *ReservationAffinity) MarshalJSON() ([]byte, error) {
33184	type NoMethod ReservationAffinity
33185	raw := NoMethod(*s)
33186	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33187}
33188
33189// ReservationAggregatedList: Contains a list of reservations.
33190type ReservationAggregatedList struct {
33191	// Id: [Output Only] Unique identifier for the resource; defined by the
33192	// server.
33193	Id string `json:"id,omitempty"`
33194
33195	// Items: A list of Allocation resources.
33196	Items map[string]ReservationsScopedList `json:"items,omitempty"`
33197
33198	// Kind: Type of resource.
33199	Kind string `json:"kind,omitempty"`
33200
33201	// NextPageToken: [Output Only] This token allows you to get the next
33202	// page of results for list requests. If the number of results is larger
33203	// than maxResults, use the nextPageToken as a value for the query
33204	// parameter pageToken in the next list request. Subsequent list
33205	// requests will have their own nextPageToken to continue paging through
33206	// the results.
33207	NextPageToken string `json:"nextPageToken,omitempty"`
33208
33209	// SelfLink: [Output Only] Server-defined URL for this resource.
33210	SelfLink string `json:"selfLink,omitempty"`
33211
33212	// Warning: [Output Only] Informational warning message.
33213	Warning *ReservationAggregatedListWarning `json:"warning,omitempty"`
33214
33215	// ServerResponse contains the HTTP response code and headers from the
33216	// server.
33217	googleapi.ServerResponse `json:"-"`
33218
33219	// ForceSendFields is a list of field names (e.g. "Id") to
33220	// unconditionally include in API requests. By default, fields with
33221	// empty values are omitted from API requests. However, any non-pointer,
33222	// non-interface field appearing in ForceSendFields will be sent to the
33223	// server regardless of whether the field is empty or not. This may be
33224	// used to include empty fields in Patch requests.
33225	ForceSendFields []string `json:"-"`
33226
33227	// NullFields is a list of field names (e.g. "Id") to include in API
33228	// requests with the JSON null value. By default, fields with empty
33229	// values are omitted from API requests. However, any field with an
33230	// empty value appearing in NullFields will be sent to the server as
33231	// null. It is an error if a field in this list has a non-empty value.
33232	// This may be used to include null fields in Patch requests.
33233	NullFields []string `json:"-"`
33234}
33235
33236func (s *ReservationAggregatedList) MarshalJSON() ([]byte, error) {
33237	type NoMethod ReservationAggregatedList
33238	raw := NoMethod(*s)
33239	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33240}
33241
33242// ReservationAggregatedListWarning: [Output Only] Informational warning
33243// message.
33244type ReservationAggregatedListWarning struct {
33245	// Code: [Output Only] A warning code, if applicable. For example,
33246	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33247	// the response.
33248	//
33249	// Possible values:
33250	//   "CLEANUP_FAILED"
33251	//   "DEPRECATED_RESOURCE_USED"
33252	//   "DEPRECATED_TYPE_USED"
33253	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33254	//   "EXPERIMENTAL_TYPE_USED"
33255	//   "EXTERNAL_API_WARNING"
33256	//   "FIELD_VALUE_OVERRIDEN"
33257	//   "INJECTED_KERNELS_DEPRECATED"
33258	//   "MISSING_TYPE_DEPENDENCY"
33259	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33260	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33261	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33262	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33263	//   "NEXT_HOP_NOT_RUNNING"
33264	//   "NOT_CRITICAL_ERROR"
33265	//   "NO_RESULTS_ON_PAGE"
33266	//   "REQUIRED_TOS_AGREEMENT"
33267	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33268	//   "RESOURCE_NOT_DELETED"
33269	//   "SCHEMA_VALIDATION_IGNORED"
33270	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33271	//   "UNDECLARED_PROPERTIES"
33272	//   "UNREACHABLE"
33273	Code string `json:"code,omitempty"`
33274
33275	// Data: [Output Only] Metadata about this warning in key: value format.
33276	// For example:
33277	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33278	Data []*ReservationAggregatedListWarningData `json:"data,omitempty"`
33279
33280	// Message: [Output Only] A human-readable description of the warning
33281	// code.
33282	Message string `json:"message,omitempty"`
33283
33284	// ForceSendFields is a list of field names (e.g. "Code") to
33285	// unconditionally include in API requests. By default, fields with
33286	// empty values are omitted from API requests. However, any non-pointer,
33287	// non-interface field appearing in ForceSendFields will be sent to the
33288	// server regardless of whether the field is empty or not. This may be
33289	// used to include empty fields in Patch requests.
33290	ForceSendFields []string `json:"-"`
33291
33292	// NullFields is a list of field names (e.g. "Code") to include in API
33293	// requests with the JSON null value. By default, fields with empty
33294	// values are omitted from API requests. However, any field with an
33295	// empty value appearing in NullFields will be sent to the server as
33296	// null. It is an error if a field in this list has a non-empty value.
33297	// This may be used to include null fields in Patch requests.
33298	NullFields []string `json:"-"`
33299}
33300
33301func (s *ReservationAggregatedListWarning) MarshalJSON() ([]byte, error) {
33302	type NoMethod ReservationAggregatedListWarning
33303	raw := NoMethod(*s)
33304	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33305}
33306
33307type ReservationAggregatedListWarningData struct {
33308	// Key: [Output Only] A key that provides more detail on the warning
33309	// being returned. For example, for warnings where there are no results
33310	// in a list request for a particular zone, this key might be scope and
33311	// the key value might be the zone name. Other examples might be a key
33312	// indicating a deprecated resource and a suggested replacement, or a
33313	// warning about invalid network settings (for example, if an instance
33314	// attempts to perform IP forwarding but is not enabled for IP
33315	// forwarding).
33316	Key string `json:"key,omitempty"`
33317
33318	// Value: [Output Only] A warning data value corresponding to the key.
33319	Value string `json:"value,omitempty"`
33320
33321	// ForceSendFields is a list of field names (e.g. "Key") to
33322	// unconditionally include in API requests. By default, fields with
33323	// empty values are omitted from API requests. However, any non-pointer,
33324	// non-interface field appearing in ForceSendFields will be sent to the
33325	// server regardless of whether the field is empty or not. This may be
33326	// used to include empty fields in Patch requests.
33327	ForceSendFields []string `json:"-"`
33328
33329	// NullFields is a list of field names (e.g. "Key") to include in API
33330	// requests with the JSON null value. By default, fields with empty
33331	// values are omitted from API requests. However, any field with an
33332	// empty value appearing in NullFields will be sent to the server as
33333	// null. It is an error if a field in this list has a non-empty value.
33334	// This may be used to include null fields in Patch requests.
33335	NullFields []string `json:"-"`
33336}
33337
33338func (s *ReservationAggregatedListWarningData) MarshalJSON() ([]byte, error) {
33339	type NoMethod ReservationAggregatedListWarningData
33340	raw := NoMethod(*s)
33341	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33342}
33343
33344type ReservationList struct {
33345	// Id: [Output Only] The unique identifier for the resource. This
33346	// identifier is defined by the server.
33347	Id string `json:"id,omitempty"`
33348
33349	// Items: [Output Only] A list of Allocation resources.
33350	Items []*Reservation `json:"items,omitempty"`
33351
33352	// Kind: [Output Only] Type of resource.Always compute#reservationsList
33353	// for listsof reservations
33354	Kind string `json:"kind,omitempty"`
33355
33356	// NextPageToken: [Output Only] This token allows you to get the next
33357	// page of results for list requests. If the number of results is larger
33358	// than maxResults, use the nextPageToken as a value for the query
33359	// parameter pageToken in the next list request. Subsequent list
33360	// requests will have their own nextPageToken to continue paging through
33361	// the results.
33362	NextPageToken string `json:"nextPageToken,omitempty"`
33363
33364	// SelfLink: [Output Only] Server-defined URL for this resource.
33365	SelfLink string `json:"selfLink,omitempty"`
33366
33367	// Warning: [Output Only] Informational warning message.
33368	Warning *ReservationListWarning `json:"warning,omitempty"`
33369
33370	// ServerResponse contains the HTTP response code and headers from the
33371	// server.
33372	googleapi.ServerResponse `json:"-"`
33373
33374	// ForceSendFields is a list of field names (e.g. "Id") to
33375	// unconditionally include in API requests. By default, fields with
33376	// empty values are omitted from API requests. However, any non-pointer,
33377	// non-interface field appearing in ForceSendFields will be sent to the
33378	// server regardless of whether the field is empty or not. This may be
33379	// used to include empty fields in Patch requests.
33380	ForceSendFields []string `json:"-"`
33381
33382	// NullFields is a list of field names (e.g. "Id") to include in API
33383	// requests with the JSON null value. By default, fields with empty
33384	// values are omitted from API requests. However, any field with an
33385	// empty value appearing in NullFields will be sent to the server as
33386	// null. It is an error if a field in this list has a non-empty value.
33387	// This may be used to include null fields in Patch requests.
33388	NullFields []string `json:"-"`
33389}
33390
33391func (s *ReservationList) MarshalJSON() ([]byte, error) {
33392	type NoMethod ReservationList
33393	raw := NoMethod(*s)
33394	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33395}
33396
33397// ReservationListWarning: [Output Only] Informational warning message.
33398type ReservationListWarning struct {
33399	// Code: [Output Only] A warning code, if applicable. For example,
33400	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33401	// the response.
33402	//
33403	// Possible values:
33404	//   "CLEANUP_FAILED"
33405	//   "DEPRECATED_RESOURCE_USED"
33406	//   "DEPRECATED_TYPE_USED"
33407	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33408	//   "EXPERIMENTAL_TYPE_USED"
33409	//   "EXTERNAL_API_WARNING"
33410	//   "FIELD_VALUE_OVERRIDEN"
33411	//   "INJECTED_KERNELS_DEPRECATED"
33412	//   "MISSING_TYPE_DEPENDENCY"
33413	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33414	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33415	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33416	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33417	//   "NEXT_HOP_NOT_RUNNING"
33418	//   "NOT_CRITICAL_ERROR"
33419	//   "NO_RESULTS_ON_PAGE"
33420	//   "REQUIRED_TOS_AGREEMENT"
33421	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33422	//   "RESOURCE_NOT_DELETED"
33423	//   "SCHEMA_VALIDATION_IGNORED"
33424	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33425	//   "UNDECLARED_PROPERTIES"
33426	//   "UNREACHABLE"
33427	Code string `json:"code,omitempty"`
33428
33429	// Data: [Output Only] Metadata about this warning in key: value format.
33430	// For example:
33431	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33432	Data []*ReservationListWarningData `json:"data,omitempty"`
33433
33434	// Message: [Output Only] A human-readable description of the warning
33435	// code.
33436	Message string `json:"message,omitempty"`
33437
33438	// ForceSendFields is a list of field names (e.g. "Code") to
33439	// unconditionally include in API requests. By default, fields with
33440	// empty values are omitted from API requests. However, any non-pointer,
33441	// non-interface field appearing in ForceSendFields will be sent to the
33442	// server regardless of whether the field is empty or not. This may be
33443	// used to include empty fields in Patch requests.
33444	ForceSendFields []string `json:"-"`
33445
33446	// NullFields is a list of field names (e.g. "Code") to include in API
33447	// requests with the JSON null value. By default, fields with empty
33448	// values are omitted from API requests. However, any field with an
33449	// empty value appearing in NullFields will be sent to the server as
33450	// null. It is an error if a field in this list has a non-empty value.
33451	// This may be used to include null fields in Patch requests.
33452	NullFields []string `json:"-"`
33453}
33454
33455func (s *ReservationListWarning) MarshalJSON() ([]byte, error) {
33456	type NoMethod ReservationListWarning
33457	raw := NoMethod(*s)
33458	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33459}
33460
33461type ReservationListWarningData struct {
33462	// Key: [Output Only] A key that provides more detail on the warning
33463	// being returned. For example, for warnings where there are no results
33464	// in a list request for a particular zone, this key might be scope and
33465	// the key value might be the zone name. Other examples might be a key
33466	// indicating a deprecated resource and a suggested replacement, or a
33467	// warning about invalid network settings (for example, if an instance
33468	// attempts to perform IP forwarding but is not enabled for IP
33469	// forwarding).
33470	Key string `json:"key,omitempty"`
33471
33472	// Value: [Output Only] A warning data value corresponding to the key.
33473	Value string `json:"value,omitempty"`
33474
33475	// ForceSendFields is a list of field names (e.g. "Key") to
33476	// unconditionally include in API requests. By default, fields with
33477	// empty values are omitted from API requests. However, any non-pointer,
33478	// non-interface field appearing in ForceSendFields will be sent to the
33479	// server regardless of whether the field is empty or not. This may be
33480	// used to include empty fields in Patch requests.
33481	ForceSendFields []string `json:"-"`
33482
33483	// NullFields is a list of field names (e.g. "Key") to include in API
33484	// requests with the JSON null value. By default, fields with empty
33485	// values are omitted from API requests. However, any field with an
33486	// empty value appearing in NullFields will be sent to the server as
33487	// null. It is an error if a field in this list has a non-empty value.
33488	// This may be used to include null fields in Patch requests.
33489	NullFields []string `json:"-"`
33490}
33491
33492func (s *ReservationListWarningData) MarshalJSON() ([]byte, error) {
33493	type NoMethod ReservationListWarningData
33494	raw := NoMethod(*s)
33495	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33496}
33497
33498type ReservationsResizeRequest struct {
33499	// SpecificSkuCount: Number of allocated resources can be resized with
33500	// minimum = 1 and maximum = 1000.
33501	SpecificSkuCount int64 `json:"specificSkuCount,omitempty,string"`
33502
33503	// ForceSendFields is a list of field names (e.g. "SpecificSkuCount") to
33504	// unconditionally include in API requests. By default, fields with
33505	// empty values are omitted from API requests. However, any non-pointer,
33506	// non-interface field appearing in ForceSendFields will be sent to the
33507	// server regardless of whether the field is empty or not. This may be
33508	// used to include empty fields in Patch requests.
33509	ForceSendFields []string `json:"-"`
33510
33511	// NullFields is a list of field names (e.g. "SpecificSkuCount") to
33512	// include in API requests with the JSON null value. By default, fields
33513	// with empty values are omitted from API requests. However, any field
33514	// with an empty value appearing in NullFields will be sent to the
33515	// server as null. It is an error if a field in this list has a
33516	// non-empty value. This may be used to include null fields in Patch
33517	// requests.
33518	NullFields []string `json:"-"`
33519}
33520
33521func (s *ReservationsResizeRequest) MarshalJSON() ([]byte, error) {
33522	type NoMethod ReservationsResizeRequest
33523	raw := NoMethod(*s)
33524	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33525}
33526
33527type ReservationsScopedList struct {
33528	// Reservations: A list of reservations contained in this scope.
33529	Reservations []*Reservation `json:"reservations,omitempty"`
33530
33531	// Warning: Informational warning which replaces the list of
33532	// reservations when the list is empty.
33533	Warning *ReservationsScopedListWarning `json:"warning,omitempty"`
33534
33535	// ForceSendFields is a list of field names (e.g. "Reservations") to
33536	// unconditionally include in API requests. By default, fields with
33537	// empty values are omitted from API requests. However, any non-pointer,
33538	// non-interface field appearing in ForceSendFields will be sent to the
33539	// server regardless of whether the field is empty or not. This may be
33540	// used to include empty fields in Patch requests.
33541	ForceSendFields []string `json:"-"`
33542
33543	// NullFields is a list of field names (e.g. "Reservations") to include
33544	// in API requests with the JSON null value. By default, fields with
33545	// empty values are omitted from API requests. However, any field with
33546	// an empty value appearing in NullFields will be sent to the server as
33547	// null. It is an error if a field in this list has a non-empty value.
33548	// This may be used to include null fields in Patch requests.
33549	NullFields []string `json:"-"`
33550}
33551
33552func (s *ReservationsScopedList) MarshalJSON() ([]byte, error) {
33553	type NoMethod ReservationsScopedList
33554	raw := NoMethod(*s)
33555	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33556}
33557
33558// ReservationsScopedListWarning: Informational warning which replaces
33559// the list of reservations when the list is empty.
33560type ReservationsScopedListWarning struct {
33561	// Code: [Output Only] A warning code, if applicable. For example,
33562	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33563	// the response.
33564	//
33565	// Possible values:
33566	//   "CLEANUP_FAILED"
33567	//   "DEPRECATED_RESOURCE_USED"
33568	//   "DEPRECATED_TYPE_USED"
33569	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33570	//   "EXPERIMENTAL_TYPE_USED"
33571	//   "EXTERNAL_API_WARNING"
33572	//   "FIELD_VALUE_OVERRIDEN"
33573	//   "INJECTED_KERNELS_DEPRECATED"
33574	//   "MISSING_TYPE_DEPENDENCY"
33575	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33576	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33577	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33578	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33579	//   "NEXT_HOP_NOT_RUNNING"
33580	//   "NOT_CRITICAL_ERROR"
33581	//   "NO_RESULTS_ON_PAGE"
33582	//   "REQUIRED_TOS_AGREEMENT"
33583	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33584	//   "RESOURCE_NOT_DELETED"
33585	//   "SCHEMA_VALIDATION_IGNORED"
33586	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33587	//   "UNDECLARED_PROPERTIES"
33588	//   "UNREACHABLE"
33589	Code string `json:"code,omitempty"`
33590
33591	// Data: [Output Only] Metadata about this warning in key: value format.
33592	// For example:
33593	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33594	Data []*ReservationsScopedListWarningData `json:"data,omitempty"`
33595
33596	// Message: [Output Only] A human-readable description of the warning
33597	// code.
33598	Message string `json:"message,omitempty"`
33599
33600	// ForceSendFields is a list of field names (e.g. "Code") to
33601	// unconditionally include in API requests. By default, fields with
33602	// empty values are omitted from API requests. However, any non-pointer,
33603	// non-interface field appearing in ForceSendFields will be sent to the
33604	// server regardless of whether the field is empty or not. This may be
33605	// used to include empty fields in Patch requests.
33606	ForceSendFields []string `json:"-"`
33607
33608	// NullFields is a list of field names (e.g. "Code") to include in API
33609	// requests with the JSON null value. By default, fields with empty
33610	// values are omitted from API requests. However, any field with an
33611	// empty value appearing in NullFields will be sent to the server as
33612	// null. It is an error if a field in this list has a non-empty value.
33613	// This may be used to include null fields in Patch requests.
33614	NullFields []string `json:"-"`
33615}
33616
33617func (s *ReservationsScopedListWarning) MarshalJSON() ([]byte, error) {
33618	type NoMethod ReservationsScopedListWarning
33619	raw := NoMethod(*s)
33620	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33621}
33622
33623type ReservationsScopedListWarningData struct {
33624	// Key: [Output Only] A key that provides more detail on the warning
33625	// being returned. For example, for warnings where there are no results
33626	// in a list request for a particular zone, this key might be scope and
33627	// the key value might be the zone name. Other examples might be a key
33628	// indicating a deprecated resource and a suggested replacement, or a
33629	// warning about invalid network settings (for example, if an instance
33630	// attempts to perform IP forwarding but is not enabled for IP
33631	// forwarding).
33632	Key string `json:"key,omitempty"`
33633
33634	// Value: [Output Only] A warning data value corresponding to the key.
33635	Value string `json:"value,omitempty"`
33636
33637	// ForceSendFields is a list of field names (e.g. "Key") to
33638	// unconditionally include in API requests. By default, fields with
33639	// empty values are omitted from API requests. However, any non-pointer,
33640	// non-interface field appearing in ForceSendFields will be sent to the
33641	// server regardless of whether the field is empty or not. This may be
33642	// used to include empty fields in Patch requests.
33643	ForceSendFields []string `json:"-"`
33644
33645	// NullFields is a list of field names (e.g. "Key") to include in API
33646	// requests with the JSON null value. By default, fields with empty
33647	// values are omitted from API requests. However, any field with an
33648	// empty value appearing in NullFields will be sent to the server as
33649	// null. It is an error if a field in this list has a non-empty value.
33650	// This may be used to include null fields in Patch requests.
33651	NullFields []string `json:"-"`
33652}
33653
33654func (s *ReservationsScopedListWarningData) MarshalJSON() ([]byte, error) {
33655	type NoMethod ReservationsScopedListWarningData
33656	raw := NoMethod(*s)
33657	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33658}
33659
33660// ResourceCommitment: Commitment for a particular resource (a
33661// Commitment is composed of one or more of these).
33662type ResourceCommitment struct {
33663	// AcceleratorType: Name of the accelerator type resource. Applicable
33664	// only when the type is ACCELERATOR.
33665	AcceleratorType string `json:"acceleratorType,omitempty"`
33666
33667	// Amount: The amount of the resource purchased (in a type-dependent
33668	// unit, such as bytes). For vCPUs, this can just be an integer. For
33669	// memory, this must be provided in MB. Memory must be a multiple of 256
33670	// MB, with up to 6.5GB of memory per every vCPU.
33671	Amount int64 `json:"amount,omitempty,string"`
33672
33673	// Type: Type of resource for which this commitment applies. Possible
33674	// values are VCPU and MEMORY
33675	//
33676	// Possible values:
33677	//   "ACCELERATOR"
33678	//   "LOCAL_SSD"
33679	//   "MEMORY"
33680	//   "UNSPECIFIED"
33681	//   "VCPU"
33682	Type string `json:"type,omitempty"`
33683
33684	// ForceSendFields is a list of field names (e.g. "AcceleratorType") to
33685	// unconditionally include in API requests. By default, fields with
33686	// empty values are omitted from API requests. However, any non-pointer,
33687	// non-interface field appearing in ForceSendFields will be sent to the
33688	// server regardless of whether the field is empty or not. This may be
33689	// used to include empty fields in Patch requests.
33690	ForceSendFields []string `json:"-"`
33691
33692	// NullFields is a list of field names (e.g. "AcceleratorType") to
33693	// include in API requests with the JSON null value. By default, fields
33694	// with empty values are omitted from API requests. However, any field
33695	// with an empty value appearing in NullFields will be sent to the
33696	// server as null. It is an error if a field in this list has a
33697	// non-empty value. This may be used to include null fields in Patch
33698	// requests.
33699	NullFields []string `json:"-"`
33700}
33701
33702func (s *ResourceCommitment) MarshalJSON() ([]byte, error) {
33703	type NoMethod ResourceCommitment
33704	raw := NoMethod(*s)
33705	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33706}
33707
33708type ResourceGroupReference struct {
33709	// Group: A URI referencing one of the instance groups or network
33710	// endpoint groups listed in the backend service.
33711	Group string `json:"group,omitempty"`
33712
33713	// ForceSendFields is a list of field names (e.g. "Group") to
33714	// unconditionally include in API requests. By default, fields with
33715	// empty values are omitted from API requests. However, any non-pointer,
33716	// non-interface field appearing in ForceSendFields will be sent to the
33717	// server regardless of whether the field is empty or not. This may be
33718	// used to include empty fields in Patch requests.
33719	ForceSendFields []string `json:"-"`
33720
33721	// NullFields is a list of field names (e.g. "Group") to include in API
33722	// requests with the JSON null value. By default, fields with empty
33723	// values are omitted from API requests. However, any field with an
33724	// empty value appearing in NullFields will be sent to the server as
33725	// null. It is an error if a field in this list has a non-empty value.
33726	// This may be used to include null fields in Patch requests.
33727	NullFields []string `json:"-"`
33728}
33729
33730func (s *ResourceGroupReference) MarshalJSON() ([]byte, error) {
33731	type NoMethod ResourceGroupReference
33732	raw := NoMethod(*s)
33733	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33734}
33735
33736type ResourcePoliciesScopedList struct {
33737	// ResourcePolicies: A list of resourcePolicies contained in this scope.
33738	ResourcePolicies []*ResourcePolicy `json:"resourcePolicies,omitempty"`
33739
33740	// Warning: Informational warning which replaces the list of
33741	// resourcePolicies when the list is empty.
33742	Warning *ResourcePoliciesScopedListWarning `json:"warning,omitempty"`
33743
33744	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
33745	// unconditionally include in API requests. By default, fields with
33746	// empty values are omitted from API requests. However, any non-pointer,
33747	// non-interface field appearing in ForceSendFields will be sent to the
33748	// server regardless of whether the field is empty or not. This may be
33749	// used to include empty fields in Patch requests.
33750	ForceSendFields []string `json:"-"`
33751
33752	// NullFields is a list of field names (e.g. "ResourcePolicies") to
33753	// include in API requests with the JSON null value. By default, fields
33754	// with empty values are omitted from API requests. However, any field
33755	// with an empty value appearing in NullFields will be sent to the
33756	// server as null. It is an error if a field in this list has a
33757	// non-empty value. This may be used to include null fields in Patch
33758	// requests.
33759	NullFields []string `json:"-"`
33760}
33761
33762func (s *ResourcePoliciesScopedList) MarshalJSON() ([]byte, error) {
33763	type NoMethod ResourcePoliciesScopedList
33764	raw := NoMethod(*s)
33765	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33766}
33767
33768// ResourcePoliciesScopedListWarning: Informational warning which
33769// replaces the list of resourcePolicies when the list is empty.
33770type ResourcePoliciesScopedListWarning struct {
33771	// Code: [Output Only] A warning code, if applicable. For example,
33772	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33773	// the response.
33774	//
33775	// Possible values:
33776	//   "CLEANUP_FAILED"
33777	//   "DEPRECATED_RESOURCE_USED"
33778	//   "DEPRECATED_TYPE_USED"
33779	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33780	//   "EXPERIMENTAL_TYPE_USED"
33781	//   "EXTERNAL_API_WARNING"
33782	//   "FIELD_VALUE_OVERRIDEN"
33783	//   "INJECTED_KERNELS_DEPRECATED"
33784	//   "MISSING_TYPE_DEPENDENCY"
33785	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33786	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33787	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33788	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33789	//   "NEXT_HOP_NOT_RUNNING"
33790	//   "NOT_CRITICAL_ERROR"
33791	//   "NO_RESULTS_ON_PAGE"
33792	//   "REQUIRED_TOS_AGREEMENT"
33793	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33794	//   "RESOURCE_NOT_DELETED"
33795	//   "SCHEMA_VALIDATION_IGNORED"
33796	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33797	//   "UNDECLARED_PROPERTIES"
33798	//   "UNREACHABLE"
33799	Code string `json:"code,omitempty"`
33800
33801	// Data: [Output Only] Metadata about this warning in key: value format.
33802	// For example:
33803	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33804	Data []*ResourcePoliciesScopedListWarningData `json:"data,omitempty"`
33805
33806	// Message: [Output Only] A human-readable description of the warning
33807	// code.
33808	Message string `json:"message,omitempty"`
33809
33810	// ForceSendFields is a list of field names (e.g. "Code") to
33811	// unconditionally include in API requests. By default, fields with
33812	// empty values are omitted from API requests. However, any non-pointer,
33813	// non-interface field appearing in ForceSendFields will be sent to the
33814	// server regardless of whether the field is empty or not. This may be
33815	// used to include empty fields in Patch requests.
33816	ForceSendFields []string `json:"-"`
33817
33818	// NullFields is a list of field names (e.g. "Code") to include in API
33819	// requests with the JSON null value. By default, fields with empty
33820	// values are omitted from API requests. However, any field with an
33821	// empty value appearing in NullFields will be sent to the server as
33822	// null. It is an error if a field in this list has a non-empty value.
33823	// This may be used to include null fields in Patch requests.
33824	NullFields []string `json:"-"`
33825}
33826
33827func (s *ResourcePoliciesScopedListWarning) MarshalJSON() ([]byte, error) {
33828	type NoMethod ResourcePoliciesScopedListWarning
33829	raw := NoMethod(*s)
33830	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33831}
33832
33833type ResourcePoliciesScopedListWarningData struct {
33834	// Key: [Output Only] A key that provides more detail on the warning
33835	// being returned. For example, for warnings where there are no results
33836	// in a list request for a particular zone, this key might be scope and
33837	// the key value might be the zone name. Other examples might be a key
33838	// indicating a deprecated resource and a suggested replacement, or a
33839	// warning about invalid network settings (for example, if an instance
33840	// attempts to perform IP forwarding but is not enabled for IP
33841	// forwarding).
33842	Key string `json:"key,omitempty"`
33843
33844	// Value: [Output Only] A warning data value corresponding to the key.
33845	Value string `json:"value,omitempty"`
33846
33847	// ForceSendFields is a list of field names (e.g. "Key") to
33848	// unconditionally include in API requests. By default, fields with
33849	// empty values are omitted from API requests. However, any non-pointer,
33850	// non-interface field appearing in ForceSendFields will be sent to the
33851	// server regardless of whether the field is empty or not. This may be
33852	// used to include empty fields in Patch requests.
33853	ForceSendFields []string `json:"-"`
33854
33855	// NullFields is a list of field names (e.g. "Key") to include in API
33856	// requests with the JSON null value. By default, fields with empty
33857	// values are omitted from API requests. However, any field with an
33858	// empty value appearing in NullFields will be sent to the server as
33859	// null. It is an error if a field in this list has a non-empty value.
33860	// This may be used to include null fields in Patch requests.
33861	NullFields []string `json:"-"`
33862}
33863
33864func (s *ResourcePoliciesScopedListWarningData) MarshalJSON() ([]byte, error) {
33865	type NoMethod ResourcePoliciesScopedListWarningData
33866	raw := NoMethod(*s)
33867	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33868}
33869
33870type ResourcePolicy struct {
33871	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
33872	// format.
33873	CreationTimestamp string `json:"creationTimestamp,omitempty"`
33874
33875	Description string `json:"description,omitempty"`
33876
33877	// GroupPlacementPolicy: Resource policy for instacnes for placement
33878	// configuration.
33879	GroupPlacementPolicy *ResourcePolicyGroupPlacementPolicy `json:"groupPlacementPolicy,omitempty"`
33880
33881	// Id: [Output Only] The unique identifier for the resource. This
33882	// identifier is defined by the server.
33883	Id uint64 `json:"id,omitempty,string"`
33884
33885	// Kind: [Output Only] Type of the resource. Always
33886	// compute#resource_policies for resource policies.
33887	Kind string `json:"kind,omitempty"`
33888
33889	// Name: The name of the resource, provided by the client when initially
33890	// creating the resource. The resource name must be 1-63 characters
33891	// long, and comply with RFC1035. Specifically, the name must be 1-63
33892	// characters long and match the regular expression
33893	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
33894	// a lowercase letter, and all following characters must be a dash,
33895	// lowercase letter, or digit, except the last character, which cannot
33896	// be a dash.
33897	Name string `json:"name,omitempty"`
33898
33899	Region string `json:"region,omitempty"`
33900
33901	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
33902	// resource.
33903	SelfLink string `json:"selfLink,omitempty"`
33904
33905	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
33906	// with the resource id.
33907	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
33908
33909	// SnapshotSchedulePolicy: Resource policy for persistent disks for
33910	// creating snapshots.
33911	SnapshotSchedulePolicy *ResourcePolicySnapshotSchedulePolicy `json:"snapshotSchedulePolicy,omitempty"`
33912
33913	// Status: [Output Only] The status of resource policy creation.
33914	//
33915	// Possible values:
33916	//   "CREATING"
33917	//   "DELETING"
33918	//   "INVALID"
33919	//   "READY"
33920	Status string `json:"status,omitempty"`
33921
33922	// VmMaintenancePolicy: Resource policy applicable to VMs for
33923	// infrastructure maintenance.
33924	VmMaintenancePolicy *ResourcePolicyVmMaintenancePolicy `json:"vmMaintenancePolicy,omitempty"`
33925
33926	// ServerResponse contains the HTTP response code and headers from the
33927	// server.
33928	googleapi.ServerResponse `json:"-"`
33929
33930	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
33931	// to unconditionally include in API requests. By default, fields with
33932	// empty values are omitted from API requests. However, any non-pointer,
33933	// non-interface field appearing in ForceSendFields will be sent to the
33934	// server regardless of whether the field is empty or not. This may be
33935	// used to include empty fields in Patch requests.
33936	ForceSendFields []string `json:"-"`
33937
33938	// NullFields is a list of field names (e.g. "CreationTimestamp") to
33939	// include in API requests with the JSON null value. By default, fields
33940	// with empty values are omitted from API requests. However, any field
33941	// with an empty value appearing in NullFields will be sent to the
33942	// server as null. It is an error if a field in this list has a
33943	// non-empty value. This may be used to include null fields in Patch
33944	// requests.
33945	NullFields []string `json:"-"`
33946}
33947
33948func (s *ResourcePolicy) MarshalJSON() ([]byte, error) {
33949	type NoMethod ResourcePolicy
33950	raw := NoMethod(*s)
33951	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33952}
33953
33954// ResourcePolicyAggregatedList: Contains a list of resourcePolicies.
33955type ResourcePolicyAggregatedList struct {
33956	Etag string `json:"etag,omitempty"`
33957
33958	// Id: [Output Only] Unique identifier for the resource; defined by the
33959	// server.
33960	Id string `json:"id,omitempty"`
33961
33962	// Items: A list of ResourcePolicy resources.
33963	Items map[string]ResourcePoliciesScopedList `json:"items,omitempty"`
33964
33965	// Kind: Type of resource.
33966	Kind string `json:"kind,omitempty"`
33967
33968	// NextPageToken: [Output Only] This token allows you to get the next
33969	// page of results for list requests. If the number of results is larger
33970	// than maxResults, use the nextPageToken as a value for the query
33971	// parameter pageToken in the next list request. Subsequent list
33972	// requests will have their own nextPageToken to continue paging through
33973	// the results.
33974	NextPageToken string `json:"nextPageToken,omitempty"`
33975
33976	// SelfLink: [Output Only] Server-defined URL for this resource.
33977	SelfLink string `json:"selfLink,omitempty"`
33978
33979	// Warning: [Output Only] Informational warning message.
33980	Warning *ResourcePolicyAggregatedListWarning `json:"warning,omitempty"`
33981
33982	// ServerResponse contains the HTTP response code and headers from the
33983	// server.
33984	googleapi.ServerResponse `json:"-"`
33985
33986	// ForceSendFields is a list of field names (e.g. "Etag") to
33987	// unconditionally include in API requests. By default, fields with
33988	// empty values are omitted from API requests. However, any non-pointer,
33989	// non-interface field appearing in ForceSendFields will be sent to the
33990	// server regardless of whether the field is empty or not. This may be
33991	// used to include empty fields in Patch requests.
33992	ForceSendFields []string `json:"-"`
33993
33994	// NullFields is a list of field names (e.g. "Etag") to include in API
33995	// requests with the JSON null value. By default, fields with empty
33996	// values are omitted from API requests. However, any field with an
33997	// empty value appearing in NullFields will be sent to the server as
33998	// null. It is an error if a field in this list has a non-empty value.
33999	// This may be used to include null fields in Patch requests.
34000	NullFields []string `json:"-"`
34001}
34002
34003func (s *ResourcePolicyAggregatedList) MarshalJSON() ([]byte, error) {
34004	type NoMethod ResourcePolicyAggregatedList
34005	raw := NoMethod(*s)
34006	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34007}
34008
34009// ResourcePolicyAggregatedListWarning: [Output Only] Informational
34010// warning message.
34011type ResourcePolicyAggregatedListWarning struct {
34012	// Code: [Output Only] A warning code, if applicable. For example,
34013	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34014	// the response.
34015	//
34016	// Possible values:
34017	//   "CLEANUP_FAILED"
34018	//   "DEPRECATED_RESOURCE_USED"
34019	//   "DEPRECATED_TYPE_USED"
34020	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34021	//   "EXPERIMENTAL_TYPE_USED"
34022	//   "EXTERNAL_API_WARNING"
34023	//   "FIELD_VALUE_OVERRIDEN"
34024	//   "INJECTED_KERNELS_DEPRECATED"
34025	//   "MISSING_TYPE_DEPENDENCY"
34026	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34027	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34028	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34029	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34030	//   "NEXT_HOP_NOT_RUNNING"
34031	//   "NOT_CRITICAL_ERROR"
34032	//   "NO_RESULTS_ON_PAGE"
34033	//   "REQUIRED_TOS_AGREEMENT"
34034	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34035	//   "RESOURCE_NOT_DELETED"
34036	//   "SCHEMA_VALIDATION_IGNORED"
34037	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34038	//   "UNDECLARED_PROPERTIES"
34039	//   "UNREACHABLE"
34040	Code string `json:"code,omitempty"`
34041
34042	// Data: [Output Only] Metadata about this warning in key: value format.
34043	// For example:
34044	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34045	Data []*ResourcePolicyAggregatedListWarningData `json:"data,omitempty"`
34046
34047	// Message: [Output Only] A human-readable description of the warning
34048	// code.
34049	Message string `json:"message,omitempty"`
34050
34051	// ForceSendFields is a list of field names (e.g. "Code") to
34052	// unconditionally include in API requests. By default, fields with
34053	// empty values are omitted from API requests. However, any non-pointer,
34054	// non-interface field appearing in ForceSendFields will be sent to the
34055	// server regardless of whether the field is empty or not. This may be
34056	// used to include empty fields in Patch requests.
34057	ForceSendFields []string `json:"-"`
34058
34059	// NullFields is a list of field names (e.g. "Code") to include in API
34060	// requests with the JSON null value. By default, fields with empty
34061	// values are omitted from API requests. However, any field with an
34062	// empty value appearing in NullFields will be sent to the server as
34063	// null. It is an error if a field in this list has a non-empty value.
34064	// This may be used to include null fields in Patch requests.
34065	NullFields []string `json:"-"`
34066}
34067
34068func (s *ResourcePolicyAggregatedListWarning) MarshalJSON() ([]byte, error) {
34069	type NoMethod ResourcePolicyAggregatedListWarning
34070	raw := NoMethod(*s)
34071	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34072}
34073
34074type ResourcePolicyAggregatedListWarningData struct {
34075	// Key: [Output Only] A key that provides more detail on the warning
34076	// being returned. For example, for warnings where there are no results
34077	// in a list request for a particular zone, this key might be scope and
34078	// the key value might be the zone name. Other examples might be a key
34079	// indicating a deprecated resource and a suggested replacement, or a
34080	// warning about invalid network settings (for example, if an instance
34081	// attempts to perform IP forwarding but is not enabled for IP
34082	// forwarding).
34083	Key string `json:"key,omitempty"`
34084
34085	// Value: [Output Only] A warning data value corresponding to the key.
34086	Value string `json:"value,omitempty"`
34087
34088	// ForceSendFields is a list of field names (e.g. "Key") to
34089	// unconditionally include in API requests. By default, fields with
34090	// empty values are omitted from API requests. However, any non-pointer,
34091	// non-interface field appearing in ForceSendFields will be sent to the
34092	// server regardless of whether the field is empty or not. This may be
34093	// used to include empty fields in Patch requests.
34094	ForceSendFields []string `json:"-"`
34095
34096	// NullFields is a list of field names (e.g. "Key") to include in API
34097	// requests with the JSON null value. By default, fields with empty
34098	// values are omitted from API requests. However, any field with an
34099	// empty value appearing in NullFields will be sent to the server as
34100	// null. It is an error if a field in this list has a non-empty value.
34101	// This may be used to include null fields in Patch requests.
34102	NullFields []string `json:"-"`
34103}
34104
34105func (s *ResourcePolicyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
34106	type NoMethod ResourcePolicyAggregatedListWarningData
34107	raw := NoMethod(*s)
34108	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34109}
34110
34111// ResourcePolicyDailyCycle: Time window specified for daily operations.
34112type ResourcePolicyDailyCycle struct {
34113	// DaysInCycle: Defines a schedule that runs every nth day of the month.
34114	DaysInCycle int64 `json:"daysInCycle,omitempty"`
34115
34116	// Duration: [Output only] A predetermined duration for the window,
34117	// automatically chosen to be the smallest possible in the given
34118	// scenario.
34119	Duration string `json:"duration,omitempty"`
34120
34121	// StartTime: Start time of the window. This must be in UTC format that
34122	// resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For
34123	// example, both 13:00-5 and 08:00 are valid.
34124	StartTime string `json:"startTime,omitempty"`
34125
34126	// ForceSendFields is a list of field names (e.g. "DaysInCycle") to
34127	// unconditionally include in API requests. By default, fields with
34128	// empty values are omitted from API requests. However, any non-pointer,
34129	// non-interface field appearing in ForceSendFields will be sent to the
34130	// server regardless of whether the field is empty or not. This may be
34131	// used to include empty fields in Patch requests.
34132	ForceSendFields []string `json:"-"`
34133
34134	// NullFields is a list of field names (e.g. "DaysInCycle") to include
34135	// in API requests with the JSON null value. By default, fields with
34136	// empty values are omitted from API requests. However, any field with
34137	// an empty value appearing in NullFields will be sent to the server as
34138	// null. It is an error if a field in this list has a non-empty value.
34139	// This may be used to include null fields in Patch requests.
34140	NullFields []string `json:"-"`
34141}
34142
34143func (s *ResourcePolicyDailyCycle) MarshalJSON() ([]byte, error) {
34144	type NoMethod ResourcePolicyDailyCycle
34145	raw := NoMethod(*s)
34146	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34147}
34148
34149// ResourcePolicyGroupPlacementPolicy: A GroupPlacementPolicy specifies
34150// resource placement configuration. It specifies the failure bucket
34151// separation as well as network locality
34152type ResourcePolicyGroupPlacementPolicy struct {
34153	// AvailabilityDomainCount: The number of availability domains instances
34154	// will be spread across. If two instances are in different availability
34155	// domain, they will not be put in the same low latency network
34156	AvailabilityDomainCount int64 `json:"availabilityDomainCount,omitempty"`
34157
34158	// Collocation: Specifies network collocation
34159	//
34160	// Possible values:
34161	//   "COLLOCATED"
34162	//   "UNSPECIFIED_COLLOCATION"
34163	Collocation string `json:"collocation,omitempty"`
34164
34165	// Locality: Specifies network locality
34166	//
34167	// Possible values:
34168	//   "BEST_EFFORT"
34169	//   "STRICT"
34170	//   "UNSPECIFIED_LOCALITY"
34171	Locality string `json:"locality,omitempty"`
34172
34173	// Style: Specifies instances to hosts placement relationship
34174	//
34175	// Possible values:
34176	//   "COMPACT"
34177	//   "FULLY_SPREAD"
34178	//   "UNSPECIFIED_PLACEMENT_TYPE"
34179	Style string `json:"style,omitempty"`
34180
34181	// VmCount: Number of vms in this placement group
34182	VmCount int64 `json:"vmCount,omitempty"`
34183
34184	// ForceSendFields is a list of field names (e.g.
34185	// "AvailabilityDomainCount") to unconditionally include in API
34186	// requests. By default, fields with empty values are omitted from API
34187	// requests. However, any non-pointer, non-interface field appearing in
34188	// ForceSendFields will be sent to the server regardless of whether the
34189	// field is empty or not. This may be used to include empty fields in
34190	// Patch requests.
34191	ForceSendFields []string `json:"-"`
34192
34193	// NullFields is a list of field names (e.g. "AvailabilityDomainCount")
34194	// to include in API requests with the JSON null value. By default,
34195	// fields with empty values are omitted from API requests. However, any
34196	// field with an empty value appearing in NullFields will be sent to the
34197	// server as null. It is an error if a field in this list has a
34198	// non-empty value. This may be used to include null fields in Patch
34199	// requests.
34200	NullFields []string `json:"-"`
34201}
34202
34203func (s *ResourcePolicyGroupPlacementPolicy) MarshalJSON() ([]byte, error) {
34204	type NoMethod ResourcePolicyGroupPlacementPolicy
34205	raw := NoMethod(*s)
34206	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34207}
34208
34209// ResourcePolicyHourlyCycle: Time window specified for hourly
34210// operations.
34211type ResourcePolicyHourlyCycle struct {
34212	// Duration: [Output only] Duration of the time window, automatically
34213	// chosen to be smallest possible in the given scenario.
34214	Duration string `json:"duration,omitempty"`
34215
34216	// HoursInCycle: Allows to define schedule that runs every nth hour.
34217	HoursInCycle int64 `json:"hoursInCycle,omitempty"`
34218
34219	// StartTime: Time within the window to start the operations. It must be
34220	// in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT.
34221	StartTime string `json:"startTime,omitempty"`
34222
34223	// ForceSendFields is a list of field names (e.g. "Duration") to
34224	// unconditionally include in API requests. By default, fields with
34225	// empty values are omitted from API requests. However, any non-pointer,
34226	// non-interface field appearing in ForceSendFields will be sent to the
34227	// server regardless of whether the field is empty or not. This may be
34228	// used to include empty fields in Patch requests.
34229	ForceSendFields []string `json:"-"`
34230
34231	// NullFields is a list of field names (e.g. "Duration") to include in
34232	// API requests with the JSON null value. By default, fields with empty
34233	// values are omitted from API requests. However, any field with an
34234	// empty value appearing in NullFields will be sent to the server as
34235	// null. It is an error if a field in this list has a non-empty value.
34236	// This may be used to include null fields in Patch requests.
34237	NullFields []string `json:"-"`
34238}
34239
34240func (s *ResourcePolicyHourlyCycle) MarshalJSON() ([]byte, error) {
34241	type NoMethod ResourcePolicyHourlyCycle
34242	raw := NoMethod(*s)
34243	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34244}
34245
34246type ResourcePolicyList struct {
34247	Etag string `json:"etag,omitempty"`
34248
34249	// Id: [Output Only] The unique identifier for the resource. This
34250	// identifier is defined by the server.
34251	Id string `json:"id,omitempty"`
34252
34253	// Items: [Output Only] A list of ResourcePolicy resources.
34254	Items []*ResourcePolicy `json:"items,omitempty"`
34255
34256	// Kind: [Output Only] Type of resource.Always
34257	// compute#resourcePoliciesList for listsof resourcePolicies
34258	Kind string `json:"kind,omitempty"`
34259
34260	// NextPageToken: [Output Only] This token allows you to get the next
34261	// page of results for list requests. If the number of results is larger
34262	// than maxResults, use the nextPageToken as a value for the query
34263	// parameter pageToken in the next list request. Subsequent list
34264	// requests will have their own nextPageToken to continue paging through
34265	// the results.
34266	NextPageToken string `json:"nextPageToken,omitempty"`
34267
34268	// SelfLink: [Output Only] Server-defined URL for this resource.
34269	SelfLink string `json:"selfLink,omitempty"`
34270
34271	// Warning: [Output Only] Informational warning message.
34272	Warning *ResourcePolicyListWarning `json:"warning,omitempty"`
34273
34274	// ServerResponse contains the HTTP response code and headers from the
34275	// server.
34276	googleapi.ServerResponse `json:"-"`
34277
34278	// ForceSendFields is a list of field names (e.g. "Etag") to
34279	// unconditionally include in API requests. By default, fields with
34280	// empty values are omitted from API requests. However, any non-pointer,
34281	// non-interface field appearing in ForceSendFields will be sent to the
34282	// server regardless of whether the field is empty or not. This may be
34283	// used to include empty fields in Patch requests.
34284	ForceSendFields []string `json:"-"`
34285
34286	// NullFields is a list of field names (e.g. "Etag") to include in API
34287	// requests with the JSON null value. By default, fields with empty
34288	// values are omitted from API requests. However, any field with an
34289	// empty value appearing in NullFields will be sent to the server as
34290	// null. It is an error if a field in this list has a non-empty value.
34291	// This may be used to include null fields in Patch requests.
34292	NullFields []string `json:"-"`
34293}
34294
34295func (s *ResourcePolicyList) MarshalJSON() ([]byte, error) {
34296	type NoMethod ResourcePolicyList
34297	raw := NoMethod(*s)
34298	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34299}
34300
34301// ResourcePolicyListWarning: [Output Only] Informational warning
34302// message.
34303type ResourcePolicyListWarning struct {
34304	// Code: [Output Only] A warning code, if applicable. For example,
34305	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34306	// the response.
34307	//
34308	// Possible values:
34309	//   "CLEANUP_FAILED"
34310	//   "DEPRECATED_RESOURCE_USED"
34311	//   "DEPRECATED_TYPE_USED"
34312	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34313	//   "EXPERIMENTAL_TYPE_USED"
34314	//   "EXTERNAL_API_WARNING"
34315	//   "FIELD_VALUE_OVERRIDEN"
34316	//   "INJECTED_KERNELS_DEPRECATED"
34317	//   "MISSING_TYPE_DEPENDENCY"
34318	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34319	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34320	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34321	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34322	//   "NEXT_HOP_NOT_RUNNING"
34323	//   "NOT_CRITICAL_ERROR"
34324	//   "NO_RESULTS_ON_PAGE"
34325	//   "REQUIRED_TOS_AGREEMENT"
34326	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34327	//   "RESOURCE_NOT_DELETED"
34328	//   "SCHEMA_VALIDATION_IGNORED"
34329	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34330	//   "UNDECLARED_PROPERTIES"
34331	//   "UNREACHABLE"
34332	Code string `json:"code,omitempty"`
34333
34334	// Data: [Output Only] Metadata about this warning in key: value format.
34335	// For example:
34336	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34337	Data []*ResourcePolicyListWarningData `json:"data,omitempty"`
34338
34339	// Message: [Output Only] A human-readable description of the warning
34340	// code.
34341	Message string `json:"message,omitempty"`
34342
34343	// ForceSendFields is a list of field names (e.g. "Code") to
34344	// unconditionally include in API requests. By default, fields with
34345	// empty values are omitted from API requests. However, any non-pointer,
34346	// non-interface field appearing in ForceSendFields will be sent to the
34347	// server regardless of whether the field is empty or not. This may be
34348	// used to include empty fields in Patch requests.
34349	ForceSendFields []string `json:"-"`
34350
34351	// NullFields is a list of field names (e.g. "Code") to include in API
34352	// requests with the JSON null value. By default, fields with empty
34353	// values are omitted from API requests. However, any field with an
34354	// empty value appearing in NullFields will be sent to the server as
34355	// null. It is an error if a field in this list has a non-empty value.
34356	// This may be used to include null fields in Patch requests.
34357	NullFields []string `json:"-"`
34358}
34359
34360func (s *ResourcePolicyListWarning) MarshalJSON() ([]byte, error) {
34361	type NoMethod ResourcePolicyListWarning
34362	raw := NoMethod(*s)
34363	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34364}
34365
34366type ResourcePolicyListWarningData struct {
34367	// Key: [Output Only] A key that provides more detail on the warning
34368	// being returned. For example, for warnings where there are no results
34369	// in a list request for a particular zone, this key might be scope and
34370	// the key value might be the zone name. Other examples might be a key
34371	// indicating a deprecated resource and a suggested replacement, or a
34372	// warning about invalid network settings (for example, if an instance
34373	// attempts to perform IP forwarding but is not enabled for IP
34374	// forwarding).
34375	Key string `json:"key,omitempty"`
34376
34377	// Value: [Output Only] A warning data value corresponding to the key.
34378	Value string `json:"value,omitempty"`
34379
34380	// ForceSendFields is a list of field names (e.g. "Key") to
34381	// unconditionally include in API requests. By default, fields with
34382	// empty values are omitted from API requests. However, any non-pointer,
34383	// non-interface field appearing in ForceSendFields will be sent to the
34384	// server regardless of whether the field is empty or not. This may be
34385	// used to include empty fields in Patch requests.
34386	ForceSendFields []string `json:"-"`
34387
34388	// NullFields is a list of field names (e.g. "Key") to include in API
34389	// requests with the JSON null value. By default, fields with empty
34390	// values are omitted from API requests. However, any field with an
34391	// empty value appearing in NullFields will be sent to the server as
34392	// null. It is an error if a field in this list has a non-empty value.
34393	// This may be used to include null fields in Patch requests.
34394	NullFields []string `json:"-"`
34395}
34396
34397func (s *ResourcePolicyListWarningData) MarshalJSON() ([]byte, error) {
34398	type NoMethod ResourcePolicyListWarningData
34399	raw := NoMethod(*s)
34400	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34401}
34402
34403// ResourcePolicySnapshotSchedulePolicy: A snapshot schedule policy
34404// specifies when and how frequently snapshots are to be created for the
34405// target disk. Also specifies how many and how long these scheduled
34406// snapshots should be retained.
34407type ResourcePolicySnapshotSchedulePolicy struct {
34408	// RetentionPolicy: Retention policy applied to snapshots created by
34409	// this resource policy.
34410	RetentionPolicy *ResourcePolicySnapshotSchedulePolicyRetentionPolicy `json:"retentionPolicy,omitempty"`
34411
34412	// Schedule: A Vm Maintenance Policy specifies what kind of
34413	// infrastructure maintenance we are allowed to perform on this VM and
34414	// when. Schedule that is applied to disks covered by this policy.
34415	Schedule *ResourcePolicySnapshotSchedulePolicySchedule `json:"schedule,omitempty"`
34416
34417	// SnapshotProperties: Properties with which snapshots are created such
34418	// as labels, encryption keys.
34419	SnapshotProperties *ResourcePolicySnapshotSchedulePolicySnapshotProperties `json:"snapshotProperties,omitempty"`
34420
34421	// ForceSendFields is a list of field names (e.g. "RetentionPolicy") to
34422	// unconditionally include in API requests. By default, fields with
34423	// empty values are omitted from API requests. However, any non-pointer,
34424	// non-interface field appearing in ForceSendFields will be sent to the
34425	// server regardless of whether the field is empty or not. This may be
34426	// used to include empty fields in Patch requests.
34427	ForceSendFields []string `json:"-"`
34428
34429	// NullFields is a list of field names (e.g. "RetentionPolicy") to
34430	// include in API requests with the JSON null value. By default, fields
34431	// with empty values are omitted from API requests. However, any field
34432	// with an empty value appearing in NullFields will be sent to the
34433	// server as null. It is an error if a field in this list has a
34434	// non-empty value. This may be used to include null fields in Patch
34435	// requests.
34436	NullFields []string `json:"-"`
34437}
34438
34439func (s *ResourcePolicySnapshotSchedulePolicy) MarshalJSON() ([]byte, error) {
34440	type NoMethod ResourcePolicySnapshotSchedulePolicy
34441	raw := NoMethod(*s)
34442	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34443}
34444
34445// ResourcePolicySnapshotSchedulePolicyRetentionPolicy: Policy for
34446// retention of scheduled snapshots.
34447type ResourcePolicySnapshotSchedulePolicyRetentionPolicy struct {
34448	// MaxRetentionDays: Maximum age of the snapshot that is allowed to be
34449	// kept.
34450	MaxRetentionDays int64 `json:"maxRetentionDays,omitempty"`
34451
34452	// OnPolicySwitch: Specifies the behavior to apply to existing,
34453	// scheduled snapshots snapshots if the policy is changed.
34454	//
34455	// Possible values:
34456	//   "DO_NOT_RETROACTIVELY_APPLY"
34457	//   "RETROACTIVELY_APPLY"
34458	//   "UNSPECIFIED_ON_POLICY_SWITCH"
34459	OnPolicySwitch string `json:"onPolicySwitch,omitempty"`
34460
34461	// OnSourceDiskDelete: Specifies the behavior to apply to scheduled
34462	// snapshots when the source disk is deleted.
34463	//
34464	// Possible values:
34465	//   "APPLY_RETENTION_POLICY"
34466	//   "KEEP_AUTO_SNAPSHOTS"
34467	//   "UNSPECIFIED_ON_SOURCE_DISK_DELETE"
34468	OnSourceDiskDelete string `json:"onSourceDiskDelete,omitempty"`
34469
34470	// ForceSendFields is a list of field names (e.g. "MaxRetentionDays") to
34471	// unconditionally include in API requests. By default, fields with
34472	// empty values are omitted from API requests. However, any non-pointer,
34473	// non-interface field appearing in ForceSendFields will be sent to the
34474	// server regardless of whether the field is empty or not. This may be
34475	// used to include empty fields in Patch requests.
34476	ForceSendFields []string `json:"-"`
34477
34478	// NullFields is a list of field names (e.g. "MaxRetentionDays") to
34479	// include in API requests with the JSON null value. By default, fields
34480	// with empty values are omitted from API requests. However, any field
34481	// with an empty value appearing in NullFields will be sent to the
34482	// server as null. It is an error if a field in this list has a
34483	// non-empty value. This may be used to include null fields in Patch
34484	// requests.
34485	NullFields []string `json:"-"`
34486}
34487
34488func (s *ResourcePolicySnapshotSchedulePolicyRetentionPolicy) MarshalJSON() ([]byte, error) {
34489	type NoMethod ResourcePolicySnapshotSchedulePolicyRetentionPolicy
34490	raw := NoMethod(*s)
34491	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34492}
34493
34494// ResourcePolicySnapshotSchedulePolicySchedule: A schedule for disks
34495// where the schedueled operations are performed.
34496type ResourcePolicySnapshotSchedulePolicySchedule struct {
34497	DailySchedule *ResourcePolicyDailyCycle `json:"dailySchedule,omitempty"`
34498
34499	HourlySchedule *ResourcePolicyHourlyCycle `json:"hourlySchedule,omitempty"`
34500
34501	WeeklySchedule *ResourcePolicyWeeklyCycle `json:"weeklySchedule,omitempty"`
34502
34503	// ForceSendFields is a list of field names (e.g. "DailySchedule") to
34504	// unconditionally include in API requests. By default, fields with
34505	// empty values are omitted from API requests. However, any non-pointer,
34506	// non-interface field appearing in ForceSendFields will be sent to the
34507	// server regardless of whether the field is empty or not. This may be
34508	// used to include empty fields in Patch requests.
34509	ForceSendFields []string `json:"-"`
34510
34511	// NullFields is a list of field names (e.g. "DailySchedule") to include
34512	// in API requests with the JSON null value. By default, fields with
34513	// empty values are omitted from API requests. However, any field with
34514	// an empty value appearing in NullFields will be sent to the server as
34515	// null. It is an error if a field in this list has a non-empty value.
34516	// This may be used to include null fields in Patch requests.
34517	NullFields []string `json:"-"`
34518}
34519
34520func (s *ResourcePolicySnapshotSchedulePolicySchedule) MarshalJSON() ([]byte, error) {
34521	type NoMethod ResourcePolicySnapshotSchedulePolicySchedule
34522	raw := NoMethod(*s)
34523	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34524}
34525
34526// ResourcePolicySnapshotSchedulePolicySnapshotProperties: Specified
34527// snapshot properties for scheduled snapshots created by this policy.
34528type ResourcePolicySnapshotSchedulePolicySnapshotProperties struct {
34529	// GuestFlush: Indication to perform a 'guest aware' snapshot.
34530	GuestFlush bool `json:"guestFlush,omitempty"`
34531
34532	// Labels: Labels to apply to scheduled snapshots. These can be later
34533	// modified by the setLabels method. Label values may be empty.
34534	Labels map[string]string `json:"labels,omitempty"`
34535
34536	// StorageLocations: Cloud Storage bucket storage location of the auto
34537	// snapshot (regional or multi-regional).
34538	StorageLocations []string `json:"storageLocations,omitempty"`
34539
34540	// ForceSendFields is a list of field names (e.g. "GuestFlush") to
34541	// unconditionally include in API requests. By default, fields with
34542	// empty values are omitted from API requests. However, any non-pointer,
34543	// non-interface field appearing in ForceSendFields will be sent to the
34544	// server regardless of whether the field is empty or not. This may be
34545	// used to include empty fields in Patch requests.
34546	ForceSendFields []string `json:"-"`
34547
34548	// NullFields is a list of field names (e.g. "GuestFlush") to include in
34549	// API requests with the JSON null value. By default, fields with empty
34550	// values are omitted from API requests. However, any field with an
34551	// empty value appearing in NullFields will be sent to the server as
34552	// null. It is an error if a field in this list has a non-empty value.
34553	// This may be used to include null fields in Patch requests.
34554	NullFields []string `json:"-"`
34555}
34556
34557func (s *ResourcePolicySnapshotSchedulePolicySnapshotProperties) MarshalJSON() ([]byte, error) {
34558	type NoMethod ResourcePolicySnapshotSchedulePolicySnapshotProperties
34559	raw := NoMethod(*s)
34560	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34561}
34562
34563type ResourcePolicyVmMaintenancePolicy struct {
34564	ConcurrencyControlGroup *ResourcePolicyVmMaintenancePolicyConcurrencyControl `json:"concurrencyControlGroup,omitempty"`
34565
34566	// MaintenanceWindow: Maintenance windows that are applied to VMs
34567	// covered by this policy.
34568	MaintenanceWindow *ResourcePolicyVmMaintenancePolicyMaintenanceWindow `json:"maintenanceWindow,omitempty"`
34569
34570	// ForceSendFields is a list of field names (e.g.
34571	// "ConcurrencyControlGroup") to unconditionally include in API
34572	// requests. By default, fields with empty values are omitted from API
34573	// requests. However, any non-pointer, non-interface field appearing in
34574	// ForceSendFields will be sent to the server regardless of whether the
34575	// field is empty or not. This may be used to include empty fields in
34576	// Patch requests.
34577	ForceSendFields []string `json:"-"`
34578
34579	// NullFields is a list of field names (e.g. "ConcurrencyControlGroup")
34580	// to include in API requests with the JSON null value. By default,
34581	// fields with empty values are omitted from API requests. However, any
34582	// field with an empty value appearing in NullFields will be sent to the
34583	// server as null. It is an error if a field in this list has a
34584	// non-empty value. This may be used to include null fields in Patch
34585	// requests.
34586	NullFields []string `json:"-"`
34587}
34588
34589func (s *ResourcePolicyVmMaintenancePolicy) MarshalJSON() ([]byte, error) {
34590	type NoMethod ResourcePolicyVmMaintenancePolicy
34591	raw := NoMethod(*s)
34592	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34593}
34594
34595// ResourcePolicyVmMaintenancePolicyConcurrencyControl: A concurrency
34596// control configuration. Defines a group config that, when attached to
34597// an instance, recognizes that instance as part of a group of instances
34598// where only up the concurrency_limit of instances in that group can
34599// undergo simultaneous maintenance. For more information:
34600// go/concurrency-control-design-doc
34601type ResourcePolicyVmMaintenancePolicyConcurrencyControl struct {
34602	ConcurrencyLimit int64 `json:"concurrencyLimit,omitempty"`
34603
34604	// ForceSendFields is a list of field names (e.g. "ConcurrencyLimit") to
34605	// unconditionally include in API requests. By default, fields with
34606	// empty values are omitted from API requests. However, any non-pointer,
34607	// non-interface field appearing in ForceSendFields will be sent to the
34608	// server regardless of whether the field is empty or not. This may be
34609	// used to include empty fields in Patch requests.
34610	ForceSendFields []string `json:"-"`
34611
34612	// NullFields is a list of field names (e.g. "ConcurrencyLimit") to
34613	// include in API requests with the JSON null value. By default, fields
34614	// with empty values are omitted from API requests. However, any field
34615	// with an empty value appearing in NullFields will be sent to the
34616	// server as null. It is an error if a field in this list has a
34617	// non-empty value. This may be used to include null fields in Patch
34618	// requests.
34619	NullFields []string `json:"-"`
34620}
34621
34622func (s *ResourcePolicyVmMaintenancePolicyConcurrencyControl) MarshalJSON() ([]byte, error) {
34623	type NoMethod ResourcePolicyVmMaintenancePolicyConcurrencyControl
34624	raw := NoMethod(*s)
34625	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34626}
34627
34628// ResourcePolicyVmMaintenancePolicyMaintenanceWindow: A maintenance
34629// window for VMs. When set, we restrict our maintenance operations to
34630// this window.
34631type ResourcePolicyVmMaintenancePolicyMaintenanceWindow struct {
34632	DailyMaintenanceWindow *ResourcePolicyDailyCycle `json:"dailyMaintenanceWindow,omitempty"`
34633
34634	// ForceSendFields is a list of field names (e.g.
34635	// "DailyMaintenanceWindow") to unconditionally include in API requests.
34636	// By default, fields with empty values are omitted from API requests.
34637	// However, any non-pointer, non-interface field appearing in
34638	// ForceSendFields will be sent to the server regardless of whether the
34639	// field is empty or not. This may be used to include empty fields in
34640	// Patch requests.
34641	ForceSendFields []string `json:"-"`
34642
34643	// NullFields is a list of field names (e.g. "DailyMaintenanceWindow")
34644	// to include in API requests with the JSON null value. By default,
34645	// fields with empty values are omitted from API requests. However, any
34646	// field with an empty value appearing in NullFields will be sent to the
34647	// server as null. It is an error if a field in this list has a
34648	// non-empty value. This may be used to include null fields in Patch
34649	// requests.
34650	NullFields []string `json:"-"`
34651}
34652
34653func (s *ResourcePolicyVmMaintenancePolicyMaintenanceWindow) MarshalJSON() ([]byte, error) {
34654	type NoMethod ResourcePolicyVmMaintenancePolicyMaintenanceWindow
34655	raw := NoMethod(*s)
34656	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34657}
34658
34659// ResourcePolicyWeeklyCycle: Time window specified for weekly
34660// operations.
34661type ResourcePolicyWeeklyCycle struct {
34662	// DayOfWeeks: Up to 7 intervals/windows, one for each day of the week.
34663	DayOfWeeks []*ResourcePolicyWeeklyCycleDayOfWeek `json:"dayOfWeeks,omitempty"`
34664
34665	// ForceSendFields is a list of field names (e.g. "DayOfWeeks") to
34666	// unconditionally include in API requests. By default, fields with
34667	// empty values are omitted from API requests. However, any non-pointer,
34668	// non-interface field appearing in ForceSendFields will be sent to the
34669	// server regardless of whether the field is empty or not. This may be
34670	// used to include empty fields in Patch requests.
34671	ForceSendFields []string `json:"-"`
34672
34673	// NullFields is a list of field names (e.g. "DayOfWeeks") to include in
34674	// API requests with the JSON null value. By default, fields with empty
34675	// values are omitted from API requests. However, any field with an
34676	// empty value appearing in NullFields will be sent to the server as
34677	// null. It is an error if a field in this list has a non-empty value.
34678	// This may be used to include null fields in Patch requests.
34679	NullFields []string `json:"-"`
34680}
34681
34682func (s *ResourcePolicyWeeklyCycle) MarshalJSON() ([]byte, error) {
34683	type NoMethod ResourcePolicyWeeklyCycle
34684	raw := NoMethod(*s)
34685	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34686}
34687
34688type ResourcePolicyWeeklyCycleDayOfWeek struct {
34689	// Day: Allows to define schedule that runs specified day of the week.
34690	//
34691	// Possible values:
34692	//   "FRIDAY"
34693	//   "INVALID"
34694	//   "MONDAY"
34695	//   "SATURDAY"
34696	//   "SUNDAY"
34697	//   "THURSDAY"
34698	//   "TUESDAY"
34699	//   "WEDNESDAY"
34700	Day string `json:"day,omitempty"`
34701
34702	// Duration: [Output only] Duration of the time window, automatically
34703	// chosen to be smallest possible in the given scenario.
34704	Duration string `json:"duration,omitempty"`
34705
34706	// StartTime: Time within the window to start the operations. It must be
34707	// in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT.
34708	StartTime string `json:"startTime,omitempty"`
34709
34710	// ForceSendFields is a list of field names (e.g. "Day") to
34711	// unconditionally include in API requests. By default, fields with
34712	// empty values are omitted from API requests. However, any non-pointer,
34713	// non-interface field appearing in ForceSendFields will be sent to the
34714	// server regardless of whether the field is empty or not. This may be
34715	// used to include empty fields in Patch requests.
34716	ForceSendFields []string `json:"-"`
34717
34718	// NullFields is a list of field names (e.g. "Day") to include in API
34719	// requests with the JSON null value. By default, fields with empty
34720	// values are omitted from API requests. However, any field with an
34721	// empty value appearing in NullFields will be sent to the server as
34722	// null. It is an error if a field in this list has a non-empty value.
34723	// This may be used to include null fields in Patch requests.
34724	NullFields []string `json:"-"`
34725}
34726
34727func (s *ResourcePolicyWeeklyCycleDayOfWeek) MarshalJSON() ([]byte, error) {
34728	type NoMethod ResourcePolicyWeeklyCycleDayOfWeek
34729	raw := NoMethod(*s)
34730	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34731}
34732
34733// Route: Represents a Route resource.
34734//
34735// A route defines a path from VM instances in the VPC network to a
34736// specific destination. This destination can be inside or outside the
34737// VPC network. For more information, read the Routes overview. (==
34738// resource_for {$api_version}.routes ==)
34739type Route struct {
34740	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
34741	// format.
34742	CreationTimestamp string `json:"creationTimestamp,omitempty"`
34743
34744	// Description: An optional description of this resource. Provide this
34745	// field when you create the resource.
34746	Description string `json:"description,omitempty"`
34747
34748	// DestRange: The destination range of outgoing packets that this route
34749	// applies to. Only IPv4 is supported.
34750	DestRange string `json:"destRange,omitempty"`
34751
34752	// Id: [Output Only] The unique identifier for the resource. This
34753	// identifier is defined by the server.
34754	Id uint64 `json:"id,omitempty,string"`
34755
34756	// Kind: [Output Only] Type of this resource. Always compute#routes for
34757	// Route resources.
34758	Kind string `json:"kind,omitempty"`
34759
34760	// Name: Name of the resource. Provided by the client when the resource
34761	// is created. The name must be 1-63 characters long, and comply with
34762	// RFC1035. Specifically, the name must be 1-63 characters long and
34763	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
34764	// character must be a lowercase letter, and all following characters
34765	// (except for the last character) must be a dash, lowercase letter, or
34766	// digit. The last character must be a lowercase letter or digit.
34767	Name string `json:"name,omitempty"`
34768
34769	// Network: Fully-qualified URL of the network that this route applies
34770	// to.
34771	Network string `json:"network,omitempty"`
34772
34773	// NextHopGateway: The URL to a gateway that should handle matching
34774	// packets. You can only specify the internet gateway using a full or
34775	// partial valid URL:
34776	// projects/project/global/gateways/default-internet-gateway
34777	NextHopGateway string `json:"nextHopGateway,omitempty"`
34778
34779	// NextHopIlb: The URL to a forwarding rule of type
34780	// loadBalancingScheme=INTERNAL that should handle matching packets. You
34781	// can only specify the forwarding rule as a partial or full URL. For
34782	// example, the following are all valid URLs:
34783	// -
34784	// https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule
34785	// - regions/region/forwardingRules/forwardingRule
34786	NextHopIlb string `json:"nextHopIlb,omitempty"`
34787
34788	// NextHopInstance: The URL to an instance that should handle matching
34789	// packets. You can specify this as a full or partial URL. For
34790	// example:
34791	// https://www.googleapis.com/compute/v1/projects/project/zones/
34792	// zone/instances/
34793	NextHopInstance string `json:"nextHopInstance,omitempty"`
34794
34795	// NextHopInterconnectAttachment: [Output Only] The URL to an
34796	// InterconnectAttachment which is the next hop for the route. This
34797	// field will only be populated for the dynamic routes generated by
34798	// Cloud Router with a linked interconnectAttachment.
34799	NextHopInterconnectAttachment string `json:"nextHopInterconnectAttachment,omitempty"`
34800
34801	// NextHopIp: The network IP address of an instance that should handle
34802	// matching packets. Only IPv4 is supported.
34803	NextHopIp string `json:"nextHopIp,omitempty"`
34804
34805	// NextHopNetwork: The URL of the local network if it should handle
34806	// matching packets.
34807	NextHopNetwork string `json:"nextHopNetwork,omitempty"`
34808
34809	// NextHopPeering: [Output Only] The network peering name that should
34810	// handle matching packets, which should conform to RFC1035.
34811	NextHopPeering string `json:"nextHopPeering,omitempty"`
34812
34813	// NextHopVpnTunnel: The URL to a VpnTunnel that should handle matching
34814	// packets.
34815	NextHopVpnTunnel string `json:"nextHopVpnTunnel,omitempty"`
34816
34817	// Priority: The priority of this route. Priority is used to break ties
34818	// in cases where there is more than one matching route of equal prefix
34819	// length. In cases where multiple routes have equal prefix length, the
34820	// one with the lowest-numbered priority value wins. The default value
34821	// is `1000`. The priority value must be from `0` to `65535`, inclusive.
34822	Priority int64 `json:"priority,omitempty"`
34823
34824	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
34825	// resource.
34826	SelfLink string `json:"selfLink,omitempty"`
34827
34828	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
34829	// with the resource id.
34830	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
34831
34832	// Tags: A list of instance tags to which this route applies.
34833	Tags []string `json:"tags,omitempty"`
34834
34835	// Warnings: [Output Only] If potential misconfigurations are detected
34836	// for this route, this field will be populated with warning messages.
34837	Warnings []*RouteWarnings `json:"warnings,omitempty"`
34838
34839	// ServerResponse contains the HTTP response code and headers from the
34840	// server.
34841	googleapi.ServerResponse `json:"-"`
34842
34843	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
34844	// to unconditionally include in API requests. By default, fields with
34845	// empty values are omitted from API requests. However, any non-pointer,
34846	// non-interface field appearing in ForceSendFields will be sent to the
34847	// server regardless of whether the field is empty or not. This may be
34848	// used to include empty fields in Patch requests.
34849	ForceSendFields []string `json:"-"`
34850
34851	// NullFields is a list of field names (e.g. "CreationTimestamp") to
34852	// include in API requests with the JSON null value. By default, fields
34853	// with empty values are omitted from API requests. However, any field
34854	// with an empty value appearing in NullFields will be sent to the
34855	// server as null. It is an error if a field in this list has a
34856	// non-empty value. This may be used to include null fields in Patch
34857	// requests.
34858	NullFields []string `json:"-"`
34859}
34860
34861func (s *Route) MarshalJSON() ([]byte, error) {
34862	type NoMethod Route
34863	raw := NoMethod(*s)
34864	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34865}
34866
34867type RouteWarnings struct {
34868	// Code: [Output Only] A warning code, if applicable. For example,
34869	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34870	// the response.
34871	//
34872	// Possible values:
34873	//   "CLEANUP_FAILED"
34874	//   "DEPRECATED_RESOURCE_USED"
34875	//   "DEPRECATED_TYPE_USED"
34876	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34877	//   "EXPERIMENTAL_TYPE_USED"
34878	//   "EXTERNAL_API_WARNING"
34879	//   "FIELD_VALUE_OVERRIDEN"
34880	//   "INJECTED_KERNELS_DEPRECATED"
34881	//   "MISSING_TYPE_DEPENDENCY"
34882	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34883	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34884	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34885	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34886	//   "NEXT_HOP_NOT_RUNNING"
34887	//   "NOT_CRITICAL_ERROR"
34888	//   "NO_RESULTS_ON_PAGE"
34889	//   "REQUIRED_TOS_AGREEMENT"
34890	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34891	//   "RESOURCE_NOT_DELETED"
34892	//   "SCHEMA_VALIDATION_IGNORED"
34893	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34894	//   "UNDECLARED_PROPERTIES"
34895	//   "UNREACHABLE"
34896	Code string `json:"code,omitempty"`
34897
34898	// Data: [Output Only] Metadata about this warning in key: value format.
34899	// For example:
34900	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34901	Data []*RouteWarningsData `json:"data,omitempty"`
34902
34903	// Message: [Output Only] A human-readable description of the warning
34904	// code.
34905	Message string `json:"message,omitempty"`
34906
34907	// ForceSendFields is a list of field names (e.g. "Code") to
34908	// unconditionally include in API requests. By default, fields with
34909	// empty values are omitted from API requests. However, any non-pointer,
34910	// non-interface field appearing in ForceSendFields will be sent to the
34911	// server regardless of whether the field is empty or not. This may be
34912	// used to include empty fields in Patch requests.
34913	ForceSendFields []string `json:"-"`
34914
34915	// NullFields is a list of field names (e.g. "Code") to include in API
34916	// requests with the JSON null value. By default, fields with empty
34917	// values are omitted from API requests. However, any field with an
34918	// empty value appearing in NullFields will be sent to the server as
34919	// null. It is an error if a field in this list has a non-empty value.
34920	// This may be used to include null fields in Patch requests.
34921	NullFields []string `json:"-"`
34922}
34923
34924func (s *RouteWarnings) MarshalJSON() ([]byte, error) {
34925	type NoMethod RouteWarnings
34926	raw := NoMethod(*s)
34927	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34928}
34929
34930type RouteWarningsData struct {
34931	// Key: [Output Only] A key that provides more detail on the warning
34932	// being returned. For example, for warnings where there are no results
34933	// in a list request for a particular zone, this key might be scope and
34934	// the key value might be the zone name. Other examples might be a key
34935	// indicating a deprecated resource and a suggested replacement, or a
34936	// warning about invalid network settings (for example, if an instance
34937	// attempts to perform IP forwarding but is not enabled for IP
34938	// forwarding).
34939	Key string `json:"key,omitempty"`
34940
34941	// Value: [Output Only] A warning data value corresponding to the key.
34942	Value string `json:"value,omitempty"`
34943
34944	// ForceSendFields is a list of field names (e.g. "Key") to
34945	// unconditionally include in API requests. By default, fields with
34946	// empty values are omitted from API requests. However, any non-pointer,
34947	// non-interface field appearing in ForceSendFields will be sent to the
34948	// server regardless of whether the field is empty or not. This may be
34949	// used to include empty fields in Patch requests.
34950	ForceSendFields []string `json:"-"`
34951
34952	// NullFields is a list of field names (e.g. "Key") to include in API
34953	// requests with the JSON null value. By default, fields with empty
34954	// values are omitted from API requests. However, any field with an
34955	// empty value appearing in NullFields will be sent to the server as
34956	// null. It is an error if a field in this list has a non-empty value.
34957	// This may be used to include null fields in Patch requests.
34958	NullFields []string `json:"-"`
34959}
34960
34961func (s *RouteWarningsData) MarshalJSON() ([]byte, error) {
34962	type NoMethod RouteWarningsData
34963	raw := NoMethod(*s)
34964	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34965}
34966
34967// RouteList: Contains a list of Route resources.
34968type RouteList struct {
34969	// Id: [Output Only] Unique identifier for the resource; defined by the
34970	// server.
34971	Id string `json:"id,omitempty"`
34972
34973	// Items: A list of Route resources.
34974	Items []*Route `json:"items,omitempty"`
34975
34976	// Kind: Type of resource.
34977	Kind string `json:"kind,omitempty"`
34978
34979	// NextPageToken: [Output Only] This token allows you to get the next
34980	// page of results for list requests. If the number of results is larger
34981	// than maxResults, use the nextPageToken as a value for the query
34982	// parameter pageToken in the next list request. Subsequent list
34983	// requests will have their own nextPageToken to continue paging through
34984	// the results.
34985	NextPageToken string `json:"nextPageToken,omitempty"`
34986
34987	// SelfLink: [Output Only] Server-defined URL for this resource.
34988	SelfLink string `json:"selfLink,omitempty"`
34989
34990	// Warning: [Output Only] Informational warning message.
34991	Warning *RouteListWarning `json:"warning,omitempty"`
34992
34993	// ServerResponse contains the HTTP response code and headers from the
34994	// server.
34995	googleapi.ServerResponse `json:"-"`
34996
34997	// ForceSendFields is a list of field names (e.g. "Id") to
34998	// unconditionally include in API requests. By default, fields with
34999	// empty values are omitted from API requests. However, any non-pointer,
35000	// non-interface field appearing in ForceSendFields will be sent to the
35001	// server regardless of whether the field is empty or not. This may be
35002	// used to include empty fields in Patch requests.
35003	ForceSendFields []string `json:"-"`
35004
35005	// NullFields is a list of field names (e.g. "Id") to include in API
35006	// requests with the JSON null value. By default, fields with empty
35007	// values are omitted from API requests. However, any field with an
35008	// empty value appearing in NullFields will be sent to the server as
35009	// null. It is an error if a field in this list has a non-empty value.
35010	// This may be used to include null fields in Patch requests.
35011	NullFields []string `json:"-"`
35012}
35013
35014func (s *RouteList) MarshalJSON() ([]byte, error) {
35015	type NoMethod RouteList
35016	raw := NoMethod(*s)
35017	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35018}
35019
35020// RouteListWarning: [Output Only] Informational warning message.
35021type RouteListWarning struct {
35022	// Code: [Output Only] A warning code, if applicable. For example,
35023	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35024	// the response.
35025	//
35026	// Possible values:
35027	//   "CLEANUP_FAILED"
35028	//   "DEPRECATED_RESOURCE_USED"
35029	//   "DEPRECATED_TYPE_USED"
35030	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
35031	//   "EXPERIMENTAL_TYPE_USED"
35032	//   "EXTERNAL_API_WARNING"
35033	//   "FIELD_VALUE_OVERRIDEN"
35034	//   "INJECTED_KERNELS_DEPRECATED"
35035	//   "MISSING_TYPE_DEPENDENCY"
35036	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
35037	//   "NEXT_HOP_CANNOT_IP_FORWARD"
35038	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
35039	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
35040	//   "NEXT_HOP_NOT_RUNNING"
35041	//   "NOT_CRITICAL_ERROR"
35042	//   "NO_RESULTS_ON_PAGE"
35043	//   "REQUIRED_TOS_AGREEMENT"
35044	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
35045	//   "RESOURCE_NOT_DELETED"
35046	//   "SCHEMA_VALIDATION_IGNORED"
35047	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
35048	//   "UNDECLARED_PROPERTIES"
35049	//   "UNREACHABLE"
35050	Code string `json:"code,omitempty"`
35051
35052	// Data: [Output Only] Metadata about this warning in key: value format.
35053	// For example:
35054	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
35055	Data []*RouteListWarningData `json:"data,omitempty"`
35056
35057	// Message: [Output Only] A human-readable description of the warning
35058	// code.
35059	Message string `json:"message,omitempty"`
35060
35061	// ForceSendFields is a list of field names (e.g. "Code") to
35062	// unconditionally include in API requests. By default, fields with
35063	// empty values are omitted from API requests. However, any non-pointer,
35064	// non-interface field appearing in ForceSendFields will be sent to the
35065	// server regardless of whether the field is empty or not. This may be
35066	// used to include empty fields in Patch requests.
35067	ForceSendFields []string `json:"-"`
35068
35069	// NullFields is a list of field names (e.g. "Code") to include in API
35070	// requests with the JSON null value. By default, fields with empty
35071	// values are omitted from API requests. However, any field with an
35072	// empty value appearing in NullFields will be sent to the server as
35073	// null. It is an error if a field in this list has a non-empty value.
35074	// This may be used to include null fields in Patch requests.
35075	NullFields []string `json:"-"`
35076}
35077
35078func (s *RouteListWarning) MarshalJSON() ([]byte, error) {
35079	type NoMethod RouteListWarning
35080	raw := NoMethod(*s)
35081	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35082}
35083
35084type RouteListWarningData struct {
35085	// Key: [Output Only] A key that provides more detail on the warning
35086	// being returned. For example, for warnings where there are no results
35087	// in a list request for a particular zone, this key might be scope and
35088	// the key value might be the zone name. Other examples might be a key
35089	// indicating a deprecated resource and a suggested replacement, or a
35090	// warning about invalid network settings (for example, if an instance
35091	// attempts to perform IP forwarding but is not enabled for IP
35092	// forwarding).
35093	Key string `json:"key,omitempty"`
35094
35095	// Value: [Output Only] A warning data value corresponding to the key.
35096	Value string `json:"value,omitempty"`
35097
35098	// ForceSendFields is a list of field names (e.g. "Key") to
35099	// unconditionally include in API requests. By default, fields with
35100	// empty values are omitted from API requests. However, any non-pointer,
35101	// non-interface field appearing in ForceSendFields will be sent to the
35102	// server regardless of whether the field is empty or not. This may be
35103	// used to include empty fields in Patch requests.
35104	ForceSendFields []string `json:"-"`
35105
35106	// NullFields is a list of field names (e.g. "Key") to include in API
35107	// requests with the JSON null value. By default, fields with empty
35108	// values are omitted from API requests. However, any field with an
35109	// empty value appearing in NullFields will be sent to the server as
35110	// null. It is an error if a field in this list has a non-empty value.
35111	// This may be used to include null fields in Patch requests.
35112	NullFields []string `json:"-"`
35113}
35114
35115func (s *RouteListWarningData) MarshalJSON() ([]byte, error) {
35116	type NoMethod RouteListWarningData
35117	raw := NoMethod(*s)
35118	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35119}
35120
35121// Router: Represents a Cloud Router resource.
35122//
35123// For more information about Cloud Router, read the the Cloud Router
35124// overview.
35125type Router struct {
35126	// Bgp: BGP information specific to this router.
35127	Bgp *RouterBgp `json:"bgp,omitempty"`
35128
35129	// BgpPeers: BGP information that must be configured into the routing
35130	// stack to establish BGP peering. This information must specify the
35131	// peer ASN and either the interface name, IP address, or peer IP
35132	// address. Please refer to RFC4273.
35133	BgpPeers []*RouterBgpPeer `json:"bgpPeers,omitempty"`
35134
35135	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
35136	// format.
35137	CreationTimestamp string `json:"creationTimestamp,omitempty"`
35138
35139	// Description: An optional description of this resource. Provide this
35140	// property when you create the resource.
35141	Description string `json:"description,omitempty"`
35142
35143	// Id: [Output Only] The unique identifier for the resource. This
35144	// identifier is defined by the server.
35145	Id uint64 `json:"id,omitempty,string"`
35146
35147	// Interfaces: Router interfaces. Each interface requires either one
35148	// linked resource, (for example, linkedVpnTunnel), or IP address and IP
35149	// address range (for example, ipRange), or both.
35150	Interfaces []*RouterInterface `json:"interfaces,omitempty"`
35151
35152	// Kind: [Output Only] Type of resource. Always compute#router for
35153	// routers.
35154	Kind string `json:"kind,omitempty"`
35155
35156	// Name: Name of the resource. Provided by the client when the resource
35157	// is created. The name must be 1-63 characters long, and comply with
35158	// RFC1035. Specifically, the name must be 1-63 characters long and
35159	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
35160	// the first character must be a lowercase letter, and all following
35161	// characters must be a dash, lowercase letter, or digit, except the
35162	// last character, which cannot be a dash.
35163	Name string `json:"name,omitempty"`
35164
35165	// Nats: A list of NAT services created in this router.
35166	Nats []*RouterNat `json:"nats,omitempty"`
35167
35168	// Network: URI of the network to which this router belongs.
35169	Network string `json:"network,omitempty"`
35170
35171	// Region: [Output Only] URI of the region where the router resides. You
35172	// must specify this field as part of the HTTP request URL. It is not
35173	// settable as a field in the request body.
35174	Region string `json:"region,omitempty"`
35175
35176	// SelfLink: [Output Only] Server-defined URL for the resource.
35177	SelfLink string `json:"selfLink,omitempty"`
35178
35179	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
35180	// with the resource id.
35181	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
35182
35183	// ServerResponse contains the HTTP response code and headers from the
35184	// server.
35185	googleapi.ServerResponse `json:"-"`
35186
35187	// ForceSendFields is a list of field names (e.g. "Bgp") to
35188	// unconditionally include in API requests. By default, fields with
35189	// empty values are omitted from API requests. However, any non-pointer,
35190	// non-interface field appearing in ForceSendFields will be sent to the
35191	// server regardless of whether the field is empty or not. This may be
35192	// used to include empty fields in Patch requests.
35193	ForceSendFields []string `json:"-"`
35194
35195	// NullFields is a list of field names (e.g. "Bgp") to include in API
35196	// requests with the JSON null value. By default, fields with empty
35197	// values are omitted from API requests. However, any field with an
35198	// empty value appearing in NullFields will be sent to the server as
35199	// null. It is an error if a field in this list has a non-empty value.
35200	// This may be used to include null fields in Patch requests.
35201	NullFields []string `json:"-"`
35202}
35203
35204func (s *Router) MarshalJSON() ([]byte, error) {
35205	type NoMethod Router
35206	raw := NoMethod(*s)
35207	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35208}
35209
35210// RouterAdvertisedIpRange: Description-tagged IP ranges for the router
35211// to advertise.
35212type RouterAdvertisedIpRange struct {
35213	// Description: User-specified description for the IP range.
35214	Description string `json:"description,omitempty"`
35215
35216	// Range: The IP range to advertise. The value must be a CIDR-formatted
35217	// string.
35218	Range string `json:"range,omitempty"`
35219
35220	// ForceSendFields is a list of field names (e.g. "Description") to
35221	// unconditionally include in API requests. By default, fields with
35222	// empty values are omitted from API requests. However, any non-pointer,
35223	// non-interface field appearing in ForceSendFields will be sent to the
35224	// server regardless of whether the field is empty or not. This may be
35225	// used to include empty fields in Patch requests.
35226	ForceSendFields []string `json:"-"`
35227
35228	// NullFields is a list of field names (e.g. "Description") to include
35229	// in API requests with the JSON null value. By default, fields with
35230	// empty values are omitted from API requests. However, any field with
35231	// an empty value appearing in NullFields will be sent to the server as
35232	// null. It is an error if a field in this list has a non-empty value.
35233	// This may be used to include null fields in Patch requests.
35234	NullFields []string `json:"-"`
35235}
35236
35237func (s *RouterAdvertisedIpRange) MarshalJSON() ([]byte, error) {
35238	type NoMethod RouterAdvertisedIpRange
35239	raw := NoMethod(*s)
35240	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35241}
35242
35243// RouterAggregatedList: Contains a list of routers.
35244type RouterAggregatedList struct {
35245	// Id: [Output Only] Unique identifier for the resource; defined by the
35246	// server.
35247	Id string `json:"id,omitempty"`
35248
35249	// Items: A list of Router resources.
35250	Items map[string]RoutersScopedList `json:"items,omitempty"`
35251
35252	// Kind: Type of resource.
35253	Kind string `json:"kind,omitempty"`
35254
35255	// NextPageToken: [Output Only] This token allows you to get the next
35256	// page of results for list requests. If the number of results is larger
35257	// than maxResults, use the nextPageToken as a value for the query
35258	// parameter pageToken in the next list request. Subsequent list
35259	// requests will have their own nextPageToken to continue paging through
35260	// the results.
35261	NextPageToken string `json:"nextPageToken,omitempty"`
35262
35263	// SelfLink: [Output Only] Server-defined URL for this resource.
35264	SelfLink string `json:"selfLink,omitempty"`
35265
35266	// Warning: [Output Only] Informational warning message.
35267	Warning *RouterAggregatedListWarning `json:"warning,omitempty"`
35268
35269	// ServerResponse contains the HTTP response code and headers from the
35270	// server.
35271	googleapi.ServerResponse `json:"-"`
35272
35273	// ForceSendFields is a list of field names (e.g. "Id") to
35274	// unconditionally include in API requests. By default, fields with
35275	// empty values are omitted from API requests. However, any non-pointer,
35276	// non-interface field appearing in ForceSendFields will be sent to the
35277	// server regardless of whether the field is empty or not. This may be
35278	// used to include empty fields in Patch requests.
35279	ForceSendFields []string `json:"-"`
35280
35281	// NullFields is a list of field names (e.g. "Id") to include in API
35282	// requests with the JSON null value. By default, fields with empty
35283	// values are omitted from API requests. However, any field with an
35284	// empty value appearing in NullFields will be sent to the server as
35285	// null. It is an error if a field in this list has a non-empty value.
35286	// This may be used to include null fields in Patch requests.
35287	NullFields []string `json:"-"`
35288}
35289
35290func (s *RouterAggregatedList) MarshalJSON() ([]byte, error) {
35291	type NoMethod RouterAggregatedList
35292	raw := NoMethod(*s)
35293	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35294}
35295
35296// RouterAggregatedListWarning: [Output Only] Informational warning
35297// message.
35298type RouterAggregatedListWarning struct {
35299	// Code: [Output Only] A warning code, if applicable. For example,
35300	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35301	// the response.
35302	//
35303	// Possible values:
35304	//   "CLEANUP_FAILED"
35305	//   "DEPRECATED_RESOURCE_USED"
35306	//   "DEPRECATED_TYPE_USED"
35307	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
35308	//   "EXPERIMENTAL_TYPE_USED"
35309	//   "EXTERNAL_API_WARNING"
35310	//   "FIELD_VALUE_OVERRIDEN"
35311	//   "INJECTED_KERNELS_DEPRECATED"
35312	//   "MISSING_TYPE_DEPENDENCY"
35313	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
35314	//   "NEXT_HOP_CANNOT_IP_FORWARD"
35315	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
35316	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
35317	//   "NEXT_HOP_NOT_RUNNING"
35318	//   "NOT_CRITICAL_ERROR"
35319	//   "NO_RESULTS_ON_PAGE"
35320	//   "REQUIRED_TOS_AGREEMENT"
35321	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
35322	//   "RESOURCE_NOT_DELETED"
35323	//   "SCHEMA_VALIDATION_IGNORED"
35324	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
35325	//   "UNDECLARED_PROPERTIES"
35326	//   "UNREACHABLE"
35327	Code string `json:"code,omitempty"`
35328
35329	// Data: [Output Only] Metadata about this warning in key: value format.
35330	// For example:
35331	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
35332	Data []*RouterAggregatedListWarningData `json:"data,omitempty"`
35333
35334	// Message: [Output Only] A human-readable description of the warning
35335	// code.
35336	Message string `json:"message,omitempty"`
35337
35338	// ForceSendFields is a list of field names (e.g. "Code") to
35339	// unconditionally include in API requests. By default, fields with
35340	// empty values are omitted from API requests. However, any non-pointer,
35341	// non-interface field appearing in ForceSendFields will be sent to the
35342	// server regardless of whether the field is empty or not. This may be
35343	// used to include empty fields in Patch requests.
35344	ForceSendFields []string `json:"-"`
35345
35346	// NullFields is a list of field names (e.g. "Code") to include in API
35347	// requests with the JSON null value. By default, fields with empty
35348	// values are omitted from API requests. However, any field with an
35349	// empty value appearing in NullFields will be sent to the server as
35350	// null. It is an error if a field in this list has a non-empty value.
35351	// This may be used to include null fields in Patch requests.
35352	NullFields []string `json:"-"`
35353}
35354
35355func (s *RouterAggregatedListWarning) MarshalJSON() ([]byte, error) {
35356	type NoMethod RouterAggregatedListWarning
35357	raw := NoMethod(*s)
35358	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35359}
35360
35361type RouterAggregatedListWarningData struct {
35362	// Key: [Output Only] A key that provides more detail on the warning
35363	// being returned. For example, for warnings where there are no results
35364	// in a list request for a particular zone, this key might be scope and
35365	// the key value might be the zone name. Other examples might be a key
35366	// indicating a deprecated resource and a suggested replacement, or a
35367	// warning about invalid network settings (for example, if an instance
35368	// attempts to perform IP forwarding but is not enabled for IP
35369	// forwarding).
35370	Key string `json:"key,omitempty"`
35371
35372	// Value: [Output Only] A warning data value corresponding to the key.
35373	Value string `json:"value,omitempty"`
35374
35375	// ForceSendFields is a list of field names (e.g. "Key") to
35376	// unconditionally include in API requests. By default, fields with
35377	// empty values are omitted from API requests. However, any non-pointer,
35378	// non-interface field appearing in ForceSendFields will be sent to the
35379	// server regardless of whether the field is empty or not. This may be
35380	// used to include empty fields in Patch requests.
35381	ForceSendFields []string `json:"-"`
35382
35383	// NullFields is a list of field names (e.g. "Key") to include in API
35384	// requests with the JSON null value. By default, fields with empty
35385	// values are omitted from API requests. However, any field with an
35386	// empty value appearing in NullFields will be sent to the server as
35387	// null. It is an error if a field in this list has a non-empty value.
35388	// This may be used to include null fields in Patch requests.
35389	NullFields []string `json:"-"`
35390}
35391
35392func (s *RouterAggregatedListWarningData) MarshalJSON() ([]byte, error) {
35393	type NoMethod RouterAggregatedListWarningData
35394	raw := NoMethod(*s)
35395	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35396}
35397
35398type RouterBgp struct {
35399	// AdvertiseMode: User-specified flag to indicate which mode to use for
35400	// advertisement. The options are DEFAULT or CUSTOM.
35401	//
35402	// Possible values:
35403	//   "CUSTOM"
35404	//   "DEFAULT"
35405	AdvertiseMode string `json:"advertiseMode,omitempty"`
35406
35407	// AdvertisedGroups: User-specified list of prefix groups to advertise
35408	// in custom mode. This field can only be populated if advertise_mode is
35409	// CUSTOM and is advertised to all peers of the router. These groups
35410	// will be advertised in addition to any specified prefixes. Leave this
35411	// field blank to advertise no custom groups.
35412	//
35413	// Possible values:
35414	//   "ALL_PEER_VPC_SUBNETS"
35415	//   "ALL_SUBNETS"
35416	//   "ALL_VPC_SUBNETS"
35417	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`
35418
35419	// AdvertisedIpRanges: User-specified list of individual IP ranges to
35420	// advertise in custom mode. This field can only be populated if
35421	// advertise_mode is CUSTOM and is advertised to all peers of the
35422	// router. These IP ranges will be advertised in addition to any
35423	// specified groups. Leave this field blank to advertise no custom IP
35424	// ranges.
35425	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"`
35426
35427	// Asn: Local BGP Autonomous System Number (ASN). Must be an RFC6996
35428	// private ASN, either 16-bit or 32-bit. The value will be fixed for
35429	// this router resource. All VPN tunnels that link to this router will
35430	// have the same local ASN.
35431	Asn int64 `json:"asn,omitempty"`
35432
35433	// KeepaliveInterval: The interval in seconds between BGP keepalive
35434	// messages that are sent to the peer. Hold time is three times the
35435	// interval at which keepalive messages are sent, and the hold time is
35436	// the maximum number of seconds allowed to elapse between successive
35437	// keepalive messages that BGP receives from a peer. BGP will use the
35438	// smaller of either the local hold time value or the peer's hold time
35439	// value as the hold time for the BGP connection between the two peers.
35440	// If set, this value must be between 1 and 120. The default is 20.
35441	KeepaliveInterval int64 `json:"keepaliveInterval,omitempty"`
35442
35443	// ForceSendFields is a list of field names (e.g. "AdvertiseMode") to
35444	// unconditionally include in API requests. By default, fields with
35445	// empty values are omitted from API requests. However, any non-pointer,
35446	// non-interface field appearing in ForceSendFields will be sent to the
35447	// server regardless of whether the field is empty or not. This may be
35448	// used to include empty fields in Patch requests.
35449	ForceSendFields []string `json:"-"`
35450
35451	// NullFields is a list of field names (e.g. "AdvertiseMode") to include
35452	// in API requests with the JSON null value. By default, fields with
35453	// empty values are omitted from API requests. However, any field with
35454	// an empty value appearing in NullFields will be sent to the server as
35455	// null. It is an error if a field in this list has a non-empty value.
35456	// This may be used to include null fields in Patch requests.
35457	NullFields []string `json:"-"`
35458}
35459
35460func (s *RouterBgp) MarshalJSON() ([]byte, error) {
35461	type NoMethod RouterBgp
35462	raw := NoMethod(*s)
35463	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35464}
35465
35466type RouterBgpPeer struct {
35467	// AdvertiseMode: User-specified flag to indicate which mode to use for
35468	// advertisement.
35469	//
35470	// Possible values:
35471	//   "CUSTOM"
35472	//   "DEFAULT"
35473	AdvertiseMode string `json:"advertiseMode,omitempty"`
35474
35475	// AdvertisedGroups: User-specified list of prefix groups to advertise
35476	// in custom mode, which can take one of the following options:
35477	// - ALL_SUBNETS: Advertises all available subnets, including peer VPC
35478	// subnets.
35479	// - ALL_VPC_SUBNETS: Advertises the router's own VPC subnets.
35480	// - ALL_PEER_VPC_SUBNETS: Advertises peer subnets of the router's VPC
35481	// network. Note that this field can only be populated if advertise_mode
35482	// is CUSTOM and overrides the list defined for the router (in the "bgp"
35483	// message). These groups are advertised in addition to any specified
35484	// prefixes. Leave this field blank to advertise no custom groups.
35485	//
35486	// Possible values:
35487	//   "ALL_PEER_VPC_SUBNETS"
35488	//   "ALL_SUBNETS"
35489	//   "ALL_VPC_SUBNETS"
35490	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`
35491
35492	// AdvertisedIpRanges: User-specified list of individual IP ranges to
35493	// advertise in custom mode. This field can only be populated if
35494	// advertise_mode is CUSTOM and overrides the list defined for the
35495	// router (in the "bgp" message). These IP ranges are advertised in
35496	// addition to any specified groups. Leave this field blank to advertise
35497	// no custom IP ranges.
35498	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"`
35499
35500	// AdvertisedRoutePriority: The priority of routes advertised to this
35501	// BGP peer. Where there is more than one matching route of maximum
35502	// length, the routes with the lowest priority value win.
35503	AdvertisedRoutePriority int64 `json:"advertisedRoutePriority,omitempty"`
35504
35505	// Bfd: BFD configuration for the BGP peering.
35506	Bfd *RouterBgpPeerBfd `json:"bfd,omitempty"`
35507
35508	// Enable: The status of the BGP peer connection. If set to FALSE, any
35509	// active session with the peer is terminated and all associated routing
35510	// information is removed. If set to TRUE, the peer connection can be
35511	// established with routing information. The default is TRUE.
35512	//
35513	// Possible values:
35514	//   "FALSE"
35515	//   "TRUE"
35516	Enable string `json:"enable,omitempty"`
35517
35518	// InterfaceName: Name of the interface the BGP peer is associated with.
35519	InterfaceName string `json:"interfaceName,omitempty"`
35520
35521	// IpAddress: IP address of the interface inside Google Cloud Platform.
35522	// Only IPv4 is supported.
35523	IpAddress string `json:"ipAddress,omitempty"`
35524
35525	// ManagementType: [Output Only] The resource that configures and
35526	// manages this BGP peer.
35527	// - MANAGED_BY_USER is the default value and can be managed by you or
35528	// other users
35529	// - MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed
35530	// by Cloud Interconnect, specifically by an InterconnectAttachment of
35531	// type PARTNER. Google automatically creates, updates, and deletes this
35532	// type of BGP peer when the PARTNER InterconnectAttachment is created,
35533	// updated, or deleted.
35534	//
35535	// Possible values:
35536	//   "MANAGED_BY_ATTACHMENT"
35537	//   "MANAGED_BY_USER"
35538	ManagementType string `json:"managementType,omitempty"`
35539
35540	// Name: Name of this BGP peer. The name must be 1-63 characters long,
35541	// and comply with RFC1035. Specifically, the name must be 1-63
35542	// characters long and match the regular expression
35543	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
35544	// a lowercase letter, and all following characters must be a dash,
35545	// lowercase letter, or digit, except the last character, which cannot
35546	// be a dash.
35547	Name string `json:"name,omitempty"`
35548
35549	// PeerAsn: Peer BGP Autonomous System Number (ASN). Each BGP interface
35550	// may use a different value.
35551	PeerAsn int64 `json:"peerAsn,omitempty"`
35552
35553	// PeerIpAddress: IP address of the BGP interface outside Google Cloud
35554	// Platform. Only IPv4 is supported.
35555	PeerIpAddress string `json:"peerIpAddress,omitempty"`
35556
35557	// ForceSendFields is a list of field names (e.g. "AdvertiseMode") to
35558	// unconditionally include in API requests. By default, fields with
35559	// empty values are omitted from API requests. However, any non-pointer,
35560	// non-interface field appearing in ForceSendFields will be sent to the
35561	// server regardless of whether the field is empty or not. This may be
35562	// used to include empty fields in Patch requests.
35563	ForceSendFields []string `json:"-"`
35564
35565	// NullFields is a list of field names (e.g. "AdvertiseMode") to include
35566	// in API requests with the JSON null value. By default, fields with
35567	// empty values are omitted from API requests. However, any field with
35568	// an empty value appearing in NullFields will be sent to the server as
35569	// null. It is an error if a field in this list has a non-empty value.
35570	// This may be used to include null fields in Patch requests.
35571	NullFields []string `json:"-"`
35572}
35573
35574func (s *RouterBgpPeer) MarshalJSON() ([]byte, error) {
35575	type NoMethod RouterBgpPeer
35576	raw := NoMethod(*s)
35577	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35578}
35579
35580type RouterBgpPeerBfd struct {
35581	// MinReceiveInterval: The minimum interval, in milliseconds, between
35582	// BFD control packets received from the peer router. The actual value
35583	// is negotiated between the two routers and is equal to the greater of
35584	// this value and the transmit interval of the other router. If set,
35585	// this value must be between 100 and 30000. The default is 300.
35586	MinReceiveInterval int64 `json:"minReceiveInterval,omitempty"`
35587
35588	// MinTransmitInterval: The minimum interval, in milliseconds, between
35589	// BFD control packets transmitted to the peer router. The actual value
35590	// is negotiated between the two routers and is equal to the greater of
35591	// this value and the corresponding receive interval of the other
35592	// router. If set, this value must be between 100 and 30000. The default
35593	// is 300.
35594	MinTransmitInterval int64 `json:"minTransmitInterval,omitempty"`
35595
35596	// Mode: The BFD session initialization mode for this BGP peer. If set
35597	// to ACTIVE, the Cloud Router will initiate the BFD session for this
35598	// BGP peer. If set to PASSIVE, the Cloud Router will wait for the peer
35599	// router to initiate the BFD session for this BGP peer. If set to
35600	// DISABLED, BFD is disabled for this BGP peer. The default is PASSIVE.
35601	//
35602	// Possible values:
35603	//   "ACTIVE"
35604	//   "DISABLED"
35605	//   "PASSIVE"
35606	Mode string `json:"mode,omitempty"`
35607
35608	// Multiplier: The number of consecutive BFD packets that must be missed
35609	// before BFD declares that a peer is unavailable. If set, the value
35610	// must be a value between 2 and 16. The default is 3.
35611	Multiplier int64 `json:"multiplier,omitempty"`
35612
35613	// PacketMode: The BFD packet mode for this BGP peer. If set to
35614	// CONTROL_AND_ECHO, BFD echo mode is enabled for this BGP peer. In this
35615	// mode, if the peer router also has BFD echo mode enabled, BFD echo
35616	// packets will be sent to the other router. If the peer router does not
35617	// have BFD echo mode enabled, only control packets will be sent. If set
35618	// to CONTROL_ONLY, BFD echo mode is disabled for this BGP peer. If this
35619	// router and the peer router have a multihop connection, this should be
35620	// set to CONTROL_ONLY as BFD echo mode is only supported on singlehop
35621	// connections. The default is CONTROL_AND_ECHO.
35622	//
35623	// Possible values:
35624	//   "CONTROL_AND_ECHO"
35625	//   "CONTROL_ONLY"
35626	PacketMode string `json:"packetMode,omitempty"`
35627
35628	// SessionInitializationMode: The BFD session initialization mode for
35629	// this BGP peer. If set to ACTIVE, the Cloud Router will initiate the
35630	// BFD session for this BGP peer. If set to PASSIVE, the Cloud Router
35631	// will wait for the peer router to initiate the BFD session for this
35632	// BGP peer. If set to DISABLED, BFD is disabled for this BGP peer. The
35633	// default is PASSIVE.
35634	//
35635	// Possible values:
35636	//   "ACTIVE"
35637	//   "DISABLED"
35638	//   "PASSIVE"
35639	SessionInitializationMode string `json:"sessionInitializationMode,omitempty"`
35640
35641	// SlowTimerInterval: The minimum interval, in milliseconds, between BFD
35642	// control packets transmitted to and received from the peer router when
35643	// BFD echo mode is enabled on both routers. The actual transmit and
35644	// receive intervals are negotiated between the two routers and are
35645	// equal to the greater of this value and the corresponding interval on
35646	// the other router. If set, this value must be between 1000 and 30000.
35647	// The default is 5000.
35648	SlowTimerInterval int64 `json:"slowTimerInterval,omitempty"`
35649
35650	// ForceSendFields is a list of field names (e.g. "MinReceiveInterval")
35651	// to unconditionally include in API requests. By default, fields with
35652	// empty values are omitted from API requests. However, any non-pointer,
35653	// non-interface field appearing in ForceSendFields will be sent to the
35654	// server regardless of whether the field is empty or not. This may be
35655	// used to include empty fields in Patch requests.
35656	ForceSendFields []string `json:"-"`
35657
35658	// NullFields is a list of field names (e.g. "MinReceiveInterval") to
35659	// include in API requests with the JSON null value. By default, fields
35660	// with empty values are omitted from API requests. However, any field
35661	// with an empty value appearing in NullFields will be sent to the
35662	// server as null. It is an error if a field in this list has a
35663	// non-empty value. This may be used to include null fields in Patch
35664	// requests.
35665	NullFields []string `json:"-"`
35666}
35667
35668func (s *RouterBgpPeerBfd) MarshalJSON() ([]byte, error) {
35669	type NoMethod RouterBgpPeerBfd
35670	raw := NoMethod(*s)
35671	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35672}
35673
35674type RouterInterface struct {
35675	// IpRange: IP address and range of the interface. The IP range must be
35676	// in the RFC3927 link-local IP address space. The value must be a
35677	// CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not
35678	// truncate the address as it represents the IP address of the
35679	// interface.
35680	IpRange string `json:"ipRange,omitempty"`
35681
35682	// LinkedInterconnectAttachment: URI of the linked Interconnect
35683	// attachment. It must be in the same region as the router. Each
35684	// interface can have one linked resource, which can be either be a VPN
35685	// tunnel or an Interconnect attachment.
35686	LinkedInterconnectAttachment string `json:"linkedInterconnectAttachment,omitempty"`
35687
35688	// LinkedVpnTunnel: URI of the linked VPN tunnel, which must be in the
35689	// same region as the router. Each interface can have one linked
35690	// resource, which can be either a VPN tunnel or an Interconnect
35691	// attachment.
35692	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
35693
35694	// ManagementType: [Output Only] The resource that configures and
35695	// manages this interface.
35696	// - MANAGED_BY_USER is the default value and can be managed directly by
35697	// users.
35698	// - MANAGED_BY_ATTACHMENT is an interface that is configured and
35699	// managed by Cloud Interconnect, specifically, by an
35700	// InterconnectAttachment of type PARTNER. Google automatically creates,
35701	// updates, and deletes this type of interface when the PARTNER
35702	// InterconnectAttachment is created, updated, or deleted.
35703	//
35704	// Possible values:
35705	//   "MANAGED_BY_ATTACHMENT"
35706	//   "MANAGED_BY_USER"
35707	ManagementType string `json:"managementType,omitempty"`
35708
35709	// Name: Name of this interface entry. The name must be 1-63 characters
35710	// long, and comply with RFC1035. Specifically, the name must be 1-63
35711	// characters long and match the regular expression
35712	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
35713	// a lowercase letter, and all following characters must be a dash,
35714	// lowercase letter, or digit, except the last character, which cannot
35715	// be a dash.
35716	Name string `json:"name,omitempty"`
35717
35718	// ForceSendFields is a list of field names (e.g. "IpRange") to
35719	// unconditionally include in API requests. By default, fields with
35720	// empty values are omitted from API requests. However, any non-pointer,
35721	// non-interface field appearing in ForceSendFields will be sent to the
35722	// server regardless of whether the field is empty or not. This may be
35723	// used to include empty fields in Patch requests.
35724	ForceSendFields []string `json:"-"`
35725
35726	// NullFields is a list of field names (e.g. "IpRange") to include in
35727	// API requests with the JSON null value. By default, fields with empty
35728	// values are omitted from API requests. However, any field with an
35729	// empty value appearing in NullFields will be sent to the server as
35730	// null. It is an error if a field in this list has a non-empty value.
35731	// This may be used to include null fields in Patch requests.
35732	NullFields []string `json:"-"`
35733}
35734
35735func (s *RouterInterface) MarshalJSON() ([]byte, error) {
35736	type NoMethod RouterInterface
35737	raw := NoMethod(*s)
35738	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35739}
35740
35741// RouterList: Contains a list of Router resources.
35742type RouterList struct {
35743	// Id: [Output Only] Unique identifier for the resource; defined by the
35744	// server.
35745	Id string `json:"id,omitempty"`
35746
35747	// Items: A list of Router resources.
35748	Items []*Router `json:"items,omitempty"`
35749
35750	// Kind: [Output Only] Type of resource. Always compute#router for
35751	// routers.
35752	Kind string `json:"kind,omitempty"`
35753
35754	// NextPageToken: [Output Only] This token allows you to get the next
35755	// page of results for list requests. If the number of results is larger
35756	// than maxResults, use the nextPageToken as a value for the query
35757	// parameter pageToken in the next list request. Subsequent list
35758	// requests will have their own nextPageToken to continue paging through
35759	// the results.
35760	NextPageToken string `json:"nextPageToken,omitempty"`
35761
35762	// SelfLink: [Output Only] Server-defined URL for this resource.
35763	SelfLink string `json:"selfLink,omitempty"`
35764
35765	// Warning: [Output Only] Informational warning message.
35766	Warning *RouterListWarning `json:"warning,omitempty"`
35767
35768	// ServerResponse contains the HTTP response code and headers from the
35769	// server.
35770	googleapi.ServerResponse `json:"-"`
35771
35772	// ForceSendFields is a list of field names (e.g. "Id") to
35773	// unconditionally include in API requests. By default, fields with
35774	// empty values are omitted from API requests. However, any non-pointer,
35775	// non-interface field appearing in ForceSendFields will be sent to the
35776	// server regardless of whether the field is empty or not. This may be
35777	// used to include empty fields in Patch requests.
35778	ForceSendFields []string `json:"-"`
35779
35780	// NullFields is a list of field names (e.g. "Id") to include in API
35781	// requests with the JSON null value. By default, fields with empty
35782	// values are omitted from API requests. However, any field with an
35783	// empty value appearing in NullFields will be sent to the server as
35784	// null. It is an error if a field in this list has a non-empty value.
35785	// This may be used to include null fields in Patch requests.
35786	NullFields []string `json:"-"`
35787}
35788
35789func (s *RouterList) MarshalJSON() ([]byte, error) {
35790	type NoMethod RouterList
35791	raw := NoMethod(*s)
35792	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35793}
35794
35795// RouterListWarning: [Output Only] Informational warning message.
35796type RouterListWarning struct {
35797	// Code: [Output Only] A warning code, if applicable. For example,
35798	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35799	// the response.
35800	//
35801	// Possible values:
35802	//   "CLEANUP_FAILED"
35803	//   "DEPRECATED_RESOURCE_USED"
35804	//   "DEPRECATED_TYPE_USED"
35805	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
35806	//   "EXPERIMENTAL_TYPE_USED"
35807	//   "EXTERNAL_API_WARNING"
35808	//   "FIELD_VALUE_OVERRIDEN"
35809	//   "INJECTED_KERNELS_DEPRECATED"
35810	//   "MISSING_TYPE_DEPENDENCY"
35811	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
35812	//   "NEXT_HOP_CANNOT_IP_FORWARD"
35813	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
35814	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
35815	//   "NEXT_HOP_NOT_RUNNING"
35816	//   "NOT_CRITICAL_ERROR"
35817	//   "NO_RESULTS_ON_PAGE"
35818	//   "REQUIRED_TOS_AGREEMENT"
35819	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
35820	//   "RESOURCE_NOT_DELETED"
35821	//   "SCHEMA_VALIDATION_IGNORED"
35822	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
35823	//   "UNDECLARED_PROPERTIES"
35824	//   "UNREACHABLE"
35825	Code string `json:"code,omitempty"`
35826
35827	// Data: [Output Only] Metadata about this warning in key: value format.
35828	// For example:
35829	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
35830	Data []*RouterListWarningData `json:"data,omitempty"`
35831
35832	// Message: [Output Only] A human-readable description of the warning
35833	// code.
35834	Message string `json:"message,omitempty"`
35835
35836	// ForceSendFields is a list of field names (e.g. "Code") to
35837	// unconditionally include in API requests. By default, fields with
35838	// empty values are omitted from API requests. However, any non-pointer,
35839	// non-interface field appearing in ForceSendFields will be sent to the
35840	// server regardless of whether the field is empty or not. This may be
35841	// used to include empty fields in Patch requests.
35842	ForceSendFields []string `json:"-"`
35843
35844	// NullFields is a list of field names (e.g. "Code") to include in API
35845	// requests with the JSON null value. By default, fields with empty
35846	// values are omitted from API requests. However, any field with an
35847	// empty value appearing in NullFields will be sent to the server as
35848	// null. It is an error if a field in this list has a non-empty value.
35849	// This may be used to include null fields in Patch requests.
35850	NullFields []string `json:"-"`
35851}
35852
35853func (s *RouterListWarning) MarshalJSON() ([]byte, error) {
35854	type NoMethod RouterListWarning
35855	raw := NoMethod(*s)
35856	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35857}
35858
35859type RouterListWarningData struct {
35860	// Key: [Output Only] A key that provides more detail on the warning
35861	// being returned. For example, for warnings where there are no results
35862	// in a list request for a particular zone, this key might be scope and
35863	// the key value might be the zone name. Other examples might be a key
35864	// indicating a deprecated resource and a suggested replacement, or a
35865	// warning about invalid network settings (for example, if an instance
35866	// attempts to perform IP forwarding but is not enabled for IP
35867	// forwarding).
35868	Key string `json:"key,omitempty"`
35869
35870	// Value: [Output Only] A warning data value corresponding to the key.
35871	Value string `json:"value,omitempty"`
35872
35873	// ForceSendFields is a list of field names (e.g. "Key") to
35874	// unconditionally include in API requests. By default, fields with
35875	// empty values are omitted from API requests. However, any non-pointer,
35876	// non-interface field appearing in ForceSendFields will be sent to the
35877	// server regardless of whether the field is empty or not. This may be
35878	// used to include empty fields in Patch requests.
35879	ForceSendFields []string `json:"-"`
35880
35881	// NullFields is a list of field names (e.g. "Key") to include in API
35882	// requests with the JSON null value. By default, fields with empty
35883	// values are omitted from API requests. However, any field with an
35884	// empty value appearing in NullFields will be sent to the server as
35885	// null. It is an error if a field in this list has a non-empty value.
35886	// This may be used to include null fields in Patch requests.
35887	NullFields []string `json:"-"`
35888}
35889
35890func (s *RouterListWarningData) MarshalJSON() ([]byte, error) {
35891	type NoMethod RouterListWarningData
35892	raw := NoMethod(*s)
35893	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35894}
35895
35896// RouterNat: Represents a Nat resource. It enables the VMs within the
35897// specified subnetworks to access Internet without external IP
35898// addresses. It specifies a list of subnetworks (and the ranges within)
35899// that want to use NAT. Customers can also provide the external IPs
35900// that would be used for NAT. GCP would auto-allocate ephemeral IPs if
35901// no external IPs are provided.
35902type RouterNat struct {
35903	// DrainNatIps: A list of URLs of the IP resources to be drained. These
35904	// IPs must be valid static external IPs that have been assigned to the
35905	// NAT. These IPs should be used for updating/patching a NAT only.
35906	DrainNatIps []string `json:"drainNatIps,omitempty"`
35907
35908	// IcmpIdleTimeoutSec: Timeout (in seconds) for ICMP connections.
35909	// Defaults to 30s if not set.
35910	IcmpIdleTimeoutSec int64 `json:"icmpIdleTimeoutSec,omitempty"`
35911
35912	// LogConfig: Configure logging on this NAT.
35913	LogConfig *RouterNatLogConfig `json:"logConfig,omitempty"`
35914
35915	// MinPortsPerVm: Minimum number of ports allocated to a VM from this
35916	// NAT config. If not set, a default number of ports is allocated to a
35917	// VM. This is rounded up to the nearest power of 2. For example, if the
35918	// value of this field is 50, at least 64 ports are allocated to a VM.
35919	MinPortsPerVm int64 `json:"minPortsPerVm,omitempty"`
35920
35921	// Name: Unique name of this Nat service. The name must be 1-63
35922	// characters long and comply with RFC1035.
35923	Name string `json:"name,omitempty"`
35924
35925	// NatIpAllocateOption: Specify the NatIpAllocateOption, which can take
35926	// one of the following values:
35927	// - MANUAL_ONLY: Uses only Nat IP addresses provided by customers. When
35928	// there are not enough specified Nat IPs, the Nat service fails for new
35929	// VMs.
35930	// - AUTO_ONLY: Nat IPs are allocated by Google Cloud Platform;
35931	// customers can't specify any Nat IPs. When choosing AUTO_ONLY, then
35932	// nat_ip should be empty.
35933	//
35934	// Possible values:
35935	//   "AUTO_ONLY"
35936	//   "MANUAL_ONLY"
35937	NatIpAllocateOption string `json:"natIpAllocateOption,omitempty"`
35938
35939	// NatIps: A list of URLs of the IP resources used for this Nat service.
35940	// These IP addresses must be valid static external IP addresses
35941	// assigned to the project.
35942	NatIps []string `json:"natIps,omitempty"`
35943
35944	// SourceSubnetworkIpRangesToNat: Specify the Nat option, which can take
35945	// one of the following values:
35946	// - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every
35947	// Subnetwork are allowed to Nat.
35948	// - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges
35949	// in every Subnetwork are allowed to Nat.
35950	// - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat
35951	// (specified in the field subnetwork below) The default is
35952	// SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this
35953	// field contains ALL_SUBNETWORKS_ALL_IP_RANGES or
35954	// ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any
35955	// other Router.Nat section in any Router for this network in this
35956	// region.
35957	//
35958	// Possible values:
35959	//   "ALL_SUBNETWORKS_ALL_IP_RANGES"
35960	//   "ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES"
35961	//   "LIST_OF_SUBNETWORKS"
35962	SourceSubnetworkIpRangesToNat string `json:"sourceSubnetworkIpRangesToNat,omitempty"`
35963
35964	// Subnetworks: A list of Subnetwork resources whose traffic should be
35965	// translated by NAT Gateway. It is used only when LIST_OF_SUBNETWORKS
35966	// is selected for the SubnetworkIpRangeToNatOption above.
35967	Subnetworks []*RouterNatSubnetworkToNat `json:"subnetworks,omitempty"`
35968
35969	// TcpEstablishedIdleTimeoutSec: Timeout (in seconds) for TCP
35970	// established connections. Defaults to 1200s if not set.
35971	TcpEstablishedIdleTimeoutSec int64 `json:"tcpEstablishedIdleTimeoutSec,omitempty"`
35972
35973	// TcpTransitoryIdleTimeoutSec: Timeout (in seconds) for TCP transitory
35974	// connections. Defaults to 30s if not set.
35975	TcpTransitoryIdleTimeoutSec int64 `json:"tcpTransitoryIdleTimeoutSec,omitempty"`
35976
35977	// UdpIdleTimeoutSec: Timeout (in seconds) for UDP connections. Defaults
35978	// to 30s if not set.
35979	UdpIdleTimeoutSec int64 `json:"udpIdleTimeoutSec,omitempty"`
35980
35981	// ForceSendFields is a list of field names (e.g. "DrainNatIps") to
35982	// unconditionally include in API requests. By default, fields with
35983	// empty values are omitted from API requests. However, any non-pointer,
35984	// non-interface field appearing in ForceSendFields will be sent to the
35985	// server regardless of whether the field is empty or not. This may be
35986	// used to include empty fields in Patch requests.
35987	ForceSendFields []string `json:"-"`
35988
35989	// NullFields is a list of field names (e.g. "DrainNatIps") to include
35990	// in API requests with the JSON null value. By default, fields with
35991	// empty values are omitted from API requests. However, any field with
35992	// an empty value appearing in NullFields will be sent to the server as
35993	// null. It is an error if a field in this list has a non-empty value.
35994	// This may be used to include null fields in Patch requests.
35995	NullFields []string `json:"-"`
35996}
35997
35998func (s *RouterNat) MarshalJSON() ([]byte, error) {
35999	type NoMethod RouterNat
36000	raw := NoMethod(*s)
36001	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36002}
36003
36004// RouterNatLogConfig: Configuration of logging on a NAT.
36005type RouterNatLogConfig struct {
36006	// Enable: Indicates whether or not to export logs. This is false by
36007	// default.
36008	Enable bool `json:"enable,omitempty"`
36009
36010	// Filter: Specify the desired filtering of logs on this NAT. If
36011	// unspecified, logs are exported for all connections handled by this
36012	// NAT. This option can take one of the following values:
36013	// - ERRORS_ONLY: Export logs only for connection failures.
36014	// - TRANSLATIONS_ONLY: Export logs only for successful connections.
36015	// - ALL: Export logs for all connections, successful and unsuccessful.
36016	//
36017	// Possible values:
36018	//   "ALL"
36019	//   "ERRORS_ONLY"
36020	//   "TRANSLATIONS_ONLY"
36021	Filter string `json:"filter,omitempty"`
36022
36023	// ForceSendFields is a list of field names (e.g. "Enable") to
36024	// unconditionally include in API requests. By default, fields with
36025	// empty values are omitted from API requests. However, any non-pointer,
36026	// non-interface field appearing in ForceSendFields will be sent to the
36027	// server regardless of whether the field is empty or not. This may be
36028	// used to include empty fields in Patch requests.
36029	ForceSendFields []string `json:"-"`
36030
36031	// NullFields is a list of field names (e.g. "Enable") to include in API
36032	// requests with the JSON null value. By default, fields with empty
36033	// values are omitted from API requests. However, any field with an
36034	// empty value appearing in NullFields will be sent to the server as
36035	// null. It is an error if a field in this list has a non-empty value.
36036	// This may be used to include null fields in Patch requests.
36037	NullFields []string `json:"-"`
36038}
36039
36040func (s *RouterNatLogConfig) MarshalJSON() ([]byte, error) {
36041	type NoMethod RouterNatLogConfig
36042	raw := NoMethod(*s)
36043	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36044}
36045
36046// RouterNatSubnetworkToNat: Defines the IP ranges that want to use NAT
36047// for a subnetwork.
36048type RouterNatSubnetworkToNat struct {
36049	// Name: URL for the subnetwork resource that will use NAT.
36050	Name string `json:"name,omitempty"`
36051
36052	// SecondaryIpRangeNames: A list of the secondary ranges of the
36053	// Subnetwork that are allowed to use NAT. This can be populated only if
36054	// "LIST_OF_SECONDARY_IP_RANGES" is one of the values in
36055	// source_ip_ranges_to_nat.
36056	SecondaryIpRangeNames []string `json:"secondaryIpRangeNames,omitempty"`
36057
36058	// SourceIpRangesToNat: Specify the options for NAT ranges in the
36059	// Subnetwork. All options of a single value are valid except
36060	// NAT_IP_RANGE_OPTION_UNSPECIFIED. The only valid option with multiple
36061	// values is: ["PRIMARY_IP_RANGE", "LIST_OF_SECONDARY_IP_RANGES"]
36062	// Default: [ALL_IP_RANGES]
36063	//
36064	// Possible values:
36065	//   "ALL_IP_RANGES"
36066	//   "LIST_OF_SECONDARY_IP_RANGES"
36067	//   "PRIMARY_IP_RANGE"
36068	SourceIpRangesToNat []string `json:"sourceIpRangesToNat,omitempty"`
36069
36070	// ForceSendFields is a list of field names (e.g. "Name") to
36071	// unconditionally include in API requests. By default, fields with
36072	// empty values are omitted from API requests. However, any non-pointer,
36073	// non-interface field appearing in ForceSendFields will be sent to the
36074	// server regardless of whether the field is empty or not. This may be
36075	// used to include empty fields in Patch requests.
36076	ForceSendFields []string `json:"-"`
36077
36078	// NullFields is a list of field names (e.g. "Name") to include in API
36079	// requests with the JSON null value. By default, fields with empty
36080	// values are omitted from API requests. However, any field with an
36081	// empty value appearing in NullFields will be sent to the server as
36082	// null. It is an error if a field in this list has a non-empty value.
36083	// This may be used to include null fields in Patch requests.
36084	NullFields []string `json:"-"`
36085}
36086
36087func (s *RouterNatSubnetworkToNat) MarshalJSON() ([]byte, error) {
36088	type NoMethod RouterNatSubnetworkToNat
36089	raw := NoMethod(*s)
36090	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36091}
36092
36093type RouterStatus struct {
36094	// BestRoutes: Best routes for this router's network.
36095	BestRoutes []*Route `json:"bestRoutes,omitempty"`
36096
36097	// BestRoutesForRouter: Best routes learned by this router.
36098	BestRoutesForRouter []*Route `json:"bestRoutesForRouter,omitempty"`
36099
36100	BgpPeerStatus []*RouterStatusBgpPeerStatus `json:"bgpPeerStatus,omitempty"`
36101
36102	NatStatus []*RouterStatusNatStatus `json:"natStatus,omitempty"`
36103
36104	// Network: URI of the network to which this router belongs.
36105	Network string `json:"network,omitempty"`
36106
36107	// ForceSendFields is a list of field names (e.g. "BestRoutes") to
36108	// unconditionally include in API requests. By default, fields with
36109	// empty values are omitted from API requests. However, any non-pointer,
36110	// non-interface field appearing in ForceSendFields will be sent to the
36111	// server regardless of whether the field is empty or not. This may be
36112	// used to include empty fields in Patch requests.
36113	ForceSendFields []string `json:"-"`
36114
36115	// NullFields is a list of field names (e.g. "BestRoutes") to include in
36116	// API requests with the JSON null value. By default, fields with empty
36117	// values are omitted from API requests. However, any field with an
36118	// empty value appearing in NullFields will be sent to the server as
36119	// null. It is an error if a field in this list has a non-empty value.
36120	// This may be used to include null fields in Patch requests.
36121	NullFields []string `json:"-"`
36122}
36123
36124func (s *RouterStatus) MarshalJSON() ([]byte, error) {
36125	type NoMethod RouterStatus
36126	raw := NoMethod(*s)
36127	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36128}
36129
36130type RouterStatusBgpPeerStatus struct {
36131	// AdvertisedRoutes: Routes that were advertised to the remote BGP peer
36132	AdvertisedRoutes []*Route `json:"advertisedRoutes,omitempty"`
36133
36134	BfdStatus *BfdStatus `json:"bfdStatus,omitempty"`
36135
36136	// IpAddress: IP address of the local BGP interface.
36137	IpAddress string `json:"ipAddress,omitempty"`
36138
36139	// LinkedVpnTunnel: URL of the VPN tunnel that this BGP peer controls.
36140	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
36141
36142	// Name: Name of this BGP peer. Unique within the Routers resource.
36143	Name string `json:"name,omitempty"`
36144
36145	// NumLearnedRoutes: Number of routes learned from the remote BGP Peer.
36146	NumLearnedRoutes int64 `json:"numLearnedRoutes,omitempty"`
36147
36148	// PeerIpAddress: IP address of the remote BGP interface.
36149	PeerIpAddress string `json:"peerIpAddress,omitempty"`
36150
36151	// State: BGP state as specified in RFC1771.
36152	State string `json:"state,omitempty"`
36153
36154	// Status: Status of the BGP peer: {UP, DOWN}
36155	//
36156	// Possible values:
36157	//   "DOWN"
36158	//   "UNKNOWN"
36159	//   "UP"
36160	Status string `json:"status,omitempty"`
36161
36162	// Uptime: Time this session has been up. Format: 14 years, 51 weeks, 6
36163	// days, 23 hours, 59 minutes, 59 seconds
36164	Uptime string `json:"uptime,omitempty"`
36165
36166	// UptimeSeconds: Time this session has been up, in seconds. Format: 145
36167	UptimeSeconds string `json:"uptimeSeconds,omitempty"`
36168
36169	// ForceSendFields is a list of field names (e.g. "AdvertisedRoutes") to
36170	// unconditionally include in API requests. By default, fields with
36171	// empty values are omitted from API requests. However, any non-pointer,
36172	// non-interface field appearing in ForceSendFields will be sent to the
36173	// server regardless of whether the field is empty or not. This may be
36174	// used to include empty fields in Patch requests.
36175	ForceSendFields []string `json:"-"`
36176
36177	// NullFields is a list of field names (e.g. "AdvertisedRoutes") to
36178	// include in API requests with the JSON null value. By default, fields
36179	// with empty values are omitted from API requests. However, any field
36180	// with an empty value appearing in NullFields will be sent to the
36181	// server as null. It is an error if a field in this list has a
36182	// non-empty value. This may be used to include null fields in Patch
36183	// requests.
36184	NullFields []string `json:"-"`
36185}
36186
36187func (s *RouterStatusBgpPeerStatus) MarshalJSON() ([]byte, error) {
36188	type NoMethod RouterStatusBgpPeerStatus
36189	raw := NoMethod(*s)
36190	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36191}
36192
36193// RouterStatusNatStatus: Status of a NAT contained in this router. Next
36194// tag: 9
36195type RouterStatusNatStatus struct {
36196	// AutoAllocatedNatIps: A list of IPs auto-allocated for NAT. Example:
36197	// ["1.1.1.1", "129.2.16.89"]
36198	AutoAllocatedNatIps []string `json:"autoAllocatedNatIps,omitempty"`
36199
36200	// DrainAutoAllocatedNatIps: A list of IPs auto-allocated for NAT that
36201	// are in drain mode. Example: ["1.1.1.1", "179.12.26.133"].
36202	DrainAutoAllocatedNatIps []string `json:"drainAutoAllocatedNatIps,omitempty"`
36203
36204	// DrainUserAllocatedNatIps: A list of IPs user-allocated for NAT that
36205	// are in drain mode. Example: ["1.1.1.1", "179.12.26.133"].
36206	DrainUserAllocatedNatIps []string `json:"drainUserAllocatedNatIps,omitempty"`
36207
36208	// MinExtraNatIpsNeeded: The number of extra IPs to allocate. This will
36209	// be greater than 0 only if user-specified IPs are NOT enough to allow
36210	// all configured VMs to use NAT. This value is meaningful only when
36211	// auto-allocation of NAT IPs is *not* used.
36212	MinExtraNatIpsNeeded int64 `json:"minExtraNatIpsNeeded,omitempty"`
36213
36214	// Name: Unique name of this NAT.
36215	Name string `json:"name,omitempty"`
36216
36217	// NumVmEndpointsWithNatMappings: Number of VM endpoints (i.e., Nics)
36218	// that can use NAT.
36219	NumVmEndpointsWithNatMappings int64 `json:"numVmEndpointsWithNatMappings,omitempty"`
36220
36221	// UserAllocatedNatIpResources: A list of fully qualified URLs of
36222	// reserved IP address resources.
36223	UserAllocatedNatIpResources []string `json:"userAllocatedNatIpResources,omitempty"`
36224
36225	// UserAllocatedNatIps: A list of IPs user-allocated for NAT. They will
36226	// be raw IP strings like "179.12.26.133".
36227	UserAllocatedNatIps []string `json:"userAllocatedNatIps,omitempty"`
36228
36229	// ForceSendFields is a list of field names (e.g. "AutoAllocatedNatIps")
36230	// to unconditionally include in API requests. By default, fields with
36231	// empty values are omitted from API requests. However, any non-pointer,
36232	// non-interface field appearing in ForceSendFields will be sent to the
36233	// server regardless of whether the field is empty or not. This may be
36234	// used to include empty fields in Patch requests.
36235	ForceSendFields []string `json:"-"`
36236
36237	// NullFields is a list of field names (e.g. "AutoAllocatedNatIps") to
36238	// include in API requests with the JSON null value. By default, fields
36239	// with empty values are omitted from API requests. However, any field
36240	// with an empty value appearing in NullFields will be sent to the
36241	// server as null. It is an error if a field in this list has a
36242	// non-empty value. This may be used to include null fields in Patch
36243	// requests.
36244	NullFields []string `json:"-"`
36245}
36246
36247func (s *RouterStatusNatStatus) MarshalJSON() ([]byte, error) {
36248	type NoMethod RouterStatusNatStatus
36249	raw := NoMethod(*s)
36250	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36251}
36252
36253type RouterStatusResponse struct {
36254	// Kind: Type of resource.
36255	Kind string `json:"kind,omitempty"`
36256
36257	Result *RouterStatus `json:"result,omitempty"`
36258
36259	// ServerResponse contains the HTTP response code and headers from the
36260	// server.
36261	googleapi.ServerResponse `json:"-"`
36262
36263	// ForceSendFields is a list of field names (e.g. "Kind") to
36264	// unconditionally include in API requests. By default, fields with
36265	// empty values are omitted from API requests. However, any non-pointer,
36266	// non-interface field appearing in ForceSendFields will be sent to the
36267	// server regardless of whether the field is empty or not. This may be
36268	// used to include empty fields in Patch requests.
36269	ForceSendFields []string `json:"-"`
36270
36271	// NullFields is a list of field names (e.g. "Kind") to include in API
36272	// requests with the JSON null value. By default, fields with empty
36273	// values are omitted from API requests. However, any field with an
36274	// empty value appearing in NullFields will be sent to the server as
36275	// null. It is an error if a field in this list has a non-empty value.
36276	// This may be used to include null fields in Patch requests.
36277	NullFields []string `json:"-"`
36278}
36279
36280func (s *RouterStatusResponse) MarshalJSON() ([]byte, error) {
36281	type NoMethod RouterStatusResponse
36282	raw := NoMethod(*s)
36283	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36284}
36285
36286type RoutersPreviewResponse struct {
36287	// Resource: Preview of given router.
36288	Resource *Router `json:"resource,omitempty"`
36289
36290	// ServerResponse contains the HTTP response code and headers from the
36291	// server.
36292	googleapi.ServerResponse `json:"-"`
36293
36294	// ForceSendFields is a list of field names (e.g. "Resource") to
36295	// unconditionally include in API requests. By default, fields with
36296	// empty values are omitted from API requests. However, any non-pointer,
36297	// non-interface field appearing in ForceSendFields will be sent to the
36298	// server regardless of whether the field is empty or not. This may be
36299	// used to include empty fields in Patch requests.
36300	ForceSendFields []string `json:"-"`
36301
36302	// NullFields is a list of field names (e.g. "Resource") to include in
36303	// API requests with the JSON null value. By default, fields with empty
36304	// values are omitted from API requests. However, any field with an
36305	// empty value appearing in NullFields will be sent to the server as
36306	// null. It is an error if a field in this list has a non-empty value.
36307	// This may be used to include null fields in Patch requests.
36308	NullFields []string `json:"-"`
36309}
36310
36311func (s *RoutersPreviewResponse) MarshalJSON() ([]byte, error) {
36312	type NoMethod RoutersPreviewResponse
36313	raw := NoMethod(*s)
36314	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36315}
36316
36317type RoutersScopedList struct {
36318	// Routers: A list of routers contained in this scope.
36319	Routers []*Router `json:"routers,omitempty"`
36320
36321	// Warning: Informational warning which replaces the list of routers
36322	// when the list is empty.
36323	Warning *RoutersScopedListWarning `json:"warning,omitempty"`
36324
36325	// ForceSendFields is a list of field names (e.g. "Routers") to
36326	// unconditionally include in API requests. By default, fields with
36327	// empty values are omitted from API requests. However, any non-pointer,
36328	// non-interface field appearing in ForceSendFields will be sent to the
36329	// server regardless of whether the field is empty or not. This may be
36330	// used to include empty fields in Patch requests.
36331	ForceSendFields []string `json:"-"`
36332
36333	// NullFields is a list of field names (e.g. "Routers") to include in
36334	// API requests with the JSON null value. By default, fields with empty
36335	// values are omitted from API requests. However, any field with an
36336	// empty value appearing in NullFields will be sent to the server as
36337	// null. It is an error if a field in this list has a non-empty value.
36338	// This may be used to include null fields in Patch requests.
36339	NullFields []string `json:"-"`
36340}
36341
36342func (s *RoutersScopedList) MarshalJSON() ([]byte, error) {
36343	type NoMethod RoutersScopedList
36344	raw := NoMethod(*s)
36345	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36346}
36347
36348// RoutersScopedListWarning: Informational warning which replaces the
36349// list of routers when the list is empty.
36350type RoutersScopedListWarning struct {
36351	// Code: [Output Only] A warning code, if applicable. For example,
36352	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36353	// the response.
36354	//
36355	// Possible values:
36356	//   "CLEANUP_FAILED"
36357	//   "DEPRECATED_RESOURCE_USED"
36358	//   "DEPRECATED_TYPE_USED"
36359	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
36360	//   "EXPERIMENTAL_TYPE_USED"
36361	//   "EXTERNAL_API_WARNING"
36362	//   "FIELD_VALUE_OVERRIDEN"
36363	//   "INJECTED_KERNELS_DEPRECATED"
36364	//   "MISSING_TYPE_DEPENDENCY"
36365	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
36366	//   "NEXT_HOP_CANNOT_IP_FORWARD"
36367	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
36368	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
36369	//   "NEXT_HOP_NOT_RUNNING"
36370	//   "NOT_CRITICAL_ERROR"
36371	//   "NO_RESULTS_ON_PAGE"
36372	//   "REQUIRED_TOS_AGREEMENT"
36373	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
36374	//   "RESOURCE_NOT_DELETED"
36375	//   "SCHEMA_VALIDATION_IGNORED"
36376	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
36377	//   "UNDECLARED_PROPERTIES"
36378	//   "UNREACHABLE"
36379	Code string `json:"code,omitempty"`
36380
36381	// Data: [Output Only] Metadata about this warning in key: value format.
36382	// For example:
36383	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
36384	Data []*RoutersScopedListWarningData `json:"data,omitempty"`
36385
36386	// Message: [Output Only] A human-readable description of the warning
36387	// code.
36388	Message string `json:"message,omitempty"`
36389
36390	// ForceSendFields is a list of field names (e.g. "Code") to
36391	// unconditionally include in API requests. By default, fields with
36392	// empty values are omitted from API requests. However, any non-pointer,
36393	// non-interface field appearing in ForceSendFields will be sent to the
36394	// server regardless of whether the field is empty or not. This may be
36395	// used to include empty fields in Patch requests.
36396	ForceSendFields []string `json:"-"`
36397
36398	// NullFields is a list of field names (e.g. "Code") to include in API
36399	// requests with the JSON null value. By default, fields with empty
36400	// values are omitted from API requests. However, any field with an
36401	// empty value appearing in NullFields will be sent to the server as
36402	// null. It is an error if a field in this list has a non-empty value.
36403	// This may be used to include null fields in Patch requests.
36404	NullFields []string `json:"-"`
36405}
36406
36407func (s *RoutersScopedListWarning) MarshalJSON() ([]byte, error) {
36408	type NoMethod RoutersScopedListWarning
36409	raw := NoMethod(*s)
36410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36411}
36412
36413type RoutersScopedListWarningData struct {
36414	// Key: [Output Only] A key that provides more detail on the warning
36415	// being returned. For example, for warnings where there are no results
36416	// in a list request for a particular zone, this key might be scope and
36417	// the key value might be the zone name. Other examples might be a key
36418	// indicating a deprecated resource and a suggested replacement, or a
36419	// warning about invalid network settings (for example, if an instance
36420	// attempts to perform IP forwarding but is not enabled for IP
36421	// forwarding).
36422	Key string `json:"key,omitempty"`
36423
36424	// Value: [Output Only] A warning data value corresponding to the key.
36425	Value string `json:"value,omitempty"`
36426
36427	// ForceSendFields is a list of field names (e.g. "Key") to
36428	// unconditionally include in API requests. By default, fields with
36429	// empty values are omitted from API requests. However, any non-pointer,
36430	// non-interface field appearing in ForceSendFields will be sent to the
36431	// server regardless of whether the field is empty or not. This may be
36432	// used to include empty fields in Patch requests.
36433	ForceSendFields []string `json:"-"`
36434
36435	// NullFields is a list of field names (e.g. "Key") to include in API
36436	// requests with the JSON null value. By default, fields with empty
36437	// values are omitted from API requests. However, any field with an
36438	// empty value appearing in NullFields will be sent to the server as
36439	// null. It is an error if a field in this list has a non-empty value.
36440	// This may be used to include null fields in Patch requests.
36441	NullFields []string `json:"-"`
36442}
36443
36444func (s *RoutersScopedListWarningData) MarshalJSON() ([]byte, error) {
36445	type NoMethod RoutersScopedListWarningData
36446	raw := NoMethod(*s)
36447	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36448}
36449
36450// Rule: A rule to be applied in a Policy.
36451type Rule struct {
36452	// Action: Required
36453	//
36454	// Possible values:
36455	//   "ALLOW"
36456	//   "ALLOW_WITH_LOG"
36457	//   "DENY"
36458	//   "DENY_WITH_LOG"
36459	//   "LOG"
36460	//   "NO_ACTION"
36461	Action string `json:"action,omitempty"`
36462
36463	// Conditions: Additional restrictions that must be met. All conditions
36464	// must pass for the rule to match.
36465	Conditions []*Condition `json:"conditions,omitempty"`
36466
36467	// Description: Human-readable description of the rule.
36468	Description string `json:"description,omitempty"`
36469
36470	// Ins: If one or more 'in' clauses are specified, the rule matches if
36471	// the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
36472	Ins []string `json:"ins,omitempty"`
36473
36474	// LogConfigs: The config returned to callers of
36475	// tech.iam.IAM.CheckPolicy for any entries that match the LOG action.
36476	LogConfigs []*LogConfig `json:"logConfigs,omitempty"`
36477
36478	// NotIns: If one or more 'not_in' clauses are specified, the rule
36479	// matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the
36480	// entries.
36481	NotIns []string `json:"notIns,omitempty"`
36482
36483	// Permissions: A permission is a string of form '..' (e.g.,
36484	// 'storage.buckets.list'). A value of '*' matches all permissions, and
36485	// a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
36486	Permissions []string `json:"permissions,omitempty"`
36487
36488	// ForceSendFields is a list of field names (e.g. "Action") to
36489	// unconditionally include in API requests. By default, fields with
36490	// empty values are omitted from API requests. However, any non-pointer,
36491	// non-interface field appearing in ForceSendFields will be sent to the
36492	// server regardless of whether the field is empty or not. This may be
36493	// used to include empty fields in Patch requests.
36494	ForceSendFields []string `json:"-"`
36495
36496	// NullFields is a list of field names (e.g. "Action") to include in API
36497	// requests with the JSON null value. By default, fields with empty
36498	// values are omitted from API requests. However, any field with an
36499	// empty value appearing in NullFields will be sent to the server as
36500	// null. It is an error if a field in this list has a non-empty value.
36501	// This may be used to include null fields in Patch requests.
36502	NullFields []string `json:"-"`
36503}
36504
36505func (s *Rule) MarshalJSON() ([]byte, error) {
36506	type NoMethod Rule
36507	raw := NoMethod(*s)
36508	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36509}
36510
36511type SSLHealthCheck struct {
36512	// Port: The TCP port number for the health check request. The default
36513	// value is 443. Valid values are 1 through 65535.
36514	Port int64 `json:"port,omitempty"`
36515
36516	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
36517	// both port and port_name are defined, port takes precedence.
36518	PortName string `json:"portName,omitempty"`
36519
36520	// PortSpecification: Specifies how port is selected for health
36521	// checking, can be one of following values:
36522	// USE_FIXED_PORT: The port number in port is used for health
36523	// checking.
36524	// USE_NAMED_PORT: The portName is used for health
36525	// checking.
36526	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
36527	// each network endpoint is used for health checking. For other
36528	// backends, the port or named port specified in the Backend Service is
36529	// used for health checking.
36530	//
36531	//
36532	// If not specified, SSL health check follows behavior specified in port
36533	// and portName fields.
36534	//
36535	// Possible values:
36536	//   "USE_FIXED_PORT"
36537	//   "USE_NAMED_PORT"
36538	//   "USE_SERVING_PORT"
36539	PortSpecification string `json:"portSpecification,omitempty"`
36540
36541	// ProxyHeader: Specifies the type of proxy header to append before
36542	// sending data to the backend, either NONE or PROXY_V1. The default is
36543	// NONE.
36544	//
36545	// Possible values:
36546	//   "NONE"
36547	//   "PROXY_V1"
36548	ProxyHeader string `json:"proxyHeader,omitempty"`
36549
36550	// Request: The application data to send once the SSL connection has
36551	// been established (default value is empty). If both request and
36552	// response are empty, the connection establishment alone will indicate
36553	// health. The request data can only be ASCII.
36554	Request string `json:"request,omitempty"`
36555
36556	// Response: The bytes to match against the beginning of the response
36557	// data. If left empty (the default value), any response will indicate
36558	// health. The response data can only be ASCII.
36559	Response string `json:"response,omitempty"`
36560
36561	// ForceSendFields is a list of field names (e.g. "Port") to
36562	// unconditionally include in API requests. By default, fields with
36563	// empty values are omitted from API requests. However, any non-pointer,
36564	// non-interface field appearing in ForceSendFields will be sent to the
36565	// server regardless of whether the field is empty or not. This may be
36566	// used to include empty fields in Patch requests.
36567	ForceSendFields []string `json:"-"`
36568
36569	// NullFields is a list of field names (e.g. "Port") to include in API
36570	// requests with the JSON null value. By default, fields with empty
36571	// values are omitted from API requests. However, any field with an
36572	// empty value appearing in NullFields will be sent to the server as
36573	// null. It is an error if a field in this list has a non-empty value.
36574	// This may be used to include null fields in Patch requests.
36575	NullFields []string `json:"-"`
36576}
36577
36578func (s *SSLHealthCheck) MarshalJSON() ([]byte, error) {
36579	type NoMethod SSLHealthCheck
36580	raw := NoMethod(*s)
36581	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36582}
36583
36584// SavedAttachedDisk: An instance-attached disk resource.
36585type SavedAttachedDisk struct {
36586	// AutoDelete: Specifies whether the disk will be auto-deleted when the
36587	// instance is deleted (but not when the disk is detached from the
36588	// instance).
36589	AutoDelete bool `json:"autoDelete,omitempty"`
36590
36591	// Boot: Indicates that this is a boot disk. The virtual machine will
36592	// use the first partition of the disk for its root filesystem.
36593	Boot bool `json:"boot,omitempty"`
36594
36595	// DeviceName: Specifies the name of the disk attached to the source
36596	// instance.
36597	DeviceName string `json:"deviceName,omitempty"`
36598
36599	// DiskEncryptionKey: The encryption key for the disk.
36600	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
36601
36602	// DiskSizeGb: The size of the disk in base-2 GB.
36603	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
36604
36605	// DiskType: [Output Only] URL of the disk type resource. For example:
36606	// projects/project/zones/zone/diskTypes/pd-standard or pd-ssd
36607	DiskType string `json:"diskType,omitempty"`
36608
36609	// GuestOsFeatures: A list of features to enable on the guest operating
36610	// system. Applicable only for bootable images. Read  Enabling guest
36611	// operating system features to see a list of available options.
36612	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
36613
36614	// Index: Specifies zero-based index of the disk that is attached to the
36615	// source instance.
36616	Index int64 `json:"index,omitempty"`
36617
36618	// Interface: Specifies the disk interface to use for attaching this
36619	// disk, which is either SCSI or NVME.
36620	//
36621	// Possible values:
36622	//   "NVDIMM"
36623	//   "NVME"
36624	//   "SCSI"
36625	Interface string `json:"interface,omitempty"`
36626
36627	// Kind: [Output Only] Type of the resource. Always compute#attachedDisk
36628	// for attached disks.
36629	Kind string `json:"kind,omitempty"`
36630
36631	// Licenses: [Output Only] Any valid publicly visible licenses.
36632	Licenses []string `json:"licenses,omitempty"`
36633
36634	// Mode: The mode in which this disk is attached to the source instance,
36635	// either READ_WRITE or READ_ONLY.
36636	//
36637	// Possible values:
36638	//   "READ_ONLY"
36639	//   "READ_WRITE"
36640	Mode string `json:"mode,omitempty"`
36641
36642	// Source: Specifies a URL of the disk attached to the source instance.
36643	Source string `json:"source,omitempty"`
36644
36645	// StorageBytes: [Output Only] A size of the storage used by the disk's
36646	// snapshot by this machine image.
36647	StorageBytes int64 `json:"storageBytes,omitempty,string"`
36648
36649	// StorageBytesStatus: [Output Only] An indicator whether storageBytes
36650	// is in a stable state or it is being adjusted as a result of shared
36651	// storage reallocation. This status can either be UPDATING, meaning the
36652	// size of the snapshot is being updated, or UP_TO_DATE, meaning the
36653	// size of the snapshot is up-to-date.
36654	//
36655	// Possible values:
36656	//   "UPDATING"
36657	//   "UP_TO_DATE"
36658	StorageBytesStatus string `json:"storageBytesStatus,omitempty"`
36659
36660	// Type: Specifies the type of the attached disk, either SCRATCH or
36661	// PERSISTENT.
36662	//
36663	// Possible values:
36664	//   "PERSISTENT"
36665	//   "SCRATCH"
36666	Type string `json:"type,omitempty"`
36667
36668	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
36669	// unconditionally include in API requests. By default, fields with
36670	// empty values are omitted from API requests. However, any non-pointer,
36671	// non-interface field appearing in ForceSendFields will be sent to the
36672	// server regardless of whether the field is empty or not. This may be
36673	// used to include empty fields in Patch requests.
36674	ForceSendFields []string `json:"-"`
36675
36676	// NullFields is a list of field names (e.g. "AutoDelete") to include in
36677	// API requests with the JSON null value. By default, fields with empty
36678	// values are omitted from API requests. However, any field with an
36679	// empty value appearing in NullFields will be sent to the server as
36680	// null. It is an error if a field in this list has a non-empty value.
36681	// This may be used to include null fields in Patch requests.
36682	NullFields []string `json:"-"`
36683}
36684
36685func (s *SavedAttachedDisk) MarshalJSON() ([]byte, error) {
36686	type NoMethod SavedAttachedDisk
36687	raw := NoMethod(*s)
36688	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36689}
36690
36691// Scheduling: Sets the scheduling options for an Instance. NextID: 9
36692type Scheduling struct {
36693	// AutomaticRestart: Specifies whether the instance should be
36694	// automatically restarted if it is terminated by Compute Engine (not
36695	// terminated by a user). You can only set the automatic restart option
36696	// for standard instances. Preemptible instances cannot be automatically
36697	// restarted.
36698	//
36699	// By default, this is set to true so an instance is automatically
36700	// restarted if it is terminated by Compute Engine.
36701	AutomaticRestart *bool `json:"automaticRestart,omitempty"`
36702
36703	// LatencyTolerant: Defines whether the instance is tolerant of higher
36704	// cpu latency. This can only be set during instance creation, or when
36705	// the instance is not currently running. It must not be set if the
36706	// preemptible option is also set.
36707	LatencyTolerant bool `json:"latencyTolerant,omitempty"`
36708
36709	// LocationHint: An opaque location hint used to place the instance
36710	// close to other resources. This field is for use by internal tools
36711	// that use the public API.
36712	LocationHint string `json:"locationHint,omitempty"`
36713
36714	// MinNodeCpus: The minimum number of virtual CPUs this instance will
36715	// consume when running on a sole-tenant node.
36716	MinNodeCpus int64 `json:"minNodeCpus,omitempty"`
36717
36718	// NodeAffinities: A set of node affinity and anti-affinity
36719	// configurations. Refer to Configuring node affinity for more
36720	// information.
36721	NodeAffinities []*SchedulingNodeAffinity `json:"nodeAffinities,omitempty"`
36722
36723	// OnHostMaintenance: Defines the maintenance behavior for this
36724	// instance. For standard instances, the default behavior is MIGRATE.
36725	// For preemptible instances, the default and only possible behavior is
36726	// TERMINATE. For more information, see Setting Instance Scheduling
36727	// Options.
36728	//
36729	// Possible values:
36730	//   "MIGRATE"
36731	//   "TERMINATE"
36732	OnHostMaintenance string `json:"onHostMaintenance,omitempty"`
36733
36734	// Preemptible: Defines whether the instance is preemptible. This can
36735	// only be set during instance creation, it cannot be set or changed
36736	// after the instance has been created.
36737	Preemptible bool `json:"preemptible,omitempty"`
36738
36739	// ForceSendFields is a list of field names (e.g. "AutomaticRestart") to
36740	// unconditionally include in API requests. By default, fields with
36741	// empty values are omitted from API requests. However, any non-pointer,
36742	// non-interface field appearing in ForceSendFields will be sent to the
36743	// server regardless of whether the field is empty or not. This may be
36744	// used to include empty fields in Patch requests.
36745	ForceSendFields []string `json:"-"`
36746
36747	// NullFields is a list of field names (e.g. "AutomaticRestart") to
36748	// include in API requests with the JSON null value. By default, fields
36749	// with empty values are omitted from API requests. However, any field
36750	// with an empty value appearing in NullFields will be sent to the
36751	// server as null. It is an error if a field in this list has a
36752	// non-empty value. This may be used to include null fields in Patch
36753	// requests.
36754	NullFields []string `json:"-"`
36755}
36756
36757func (s *Scheduling) MarshalJSON() ([]byte, error) {
36758	type NoMethod Scheduling
36759	raw := NoMethod(*s)
36760	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36761}
36762
36763// SchedulingNodeAffinity: Node Affinity: the configuration of desired
36764// nodes onto which this Instance could be scheduled.
36765type SchedulingNodeAffinity struct {
36766	// Key: Corresponds to the label key of Node resource.
36767	Key string `json:"key,omitempty"`
36768
36769	// Operator: Defines the operation of node selection. Valid operators
36770	// are IN for affinity and NOT_IN for anti-affinity.
36771	//
36772	// Possible values:
36773	//   "IN"
36774	//   "NOT_IN"
36775	//   "OPERATOR_UNSPECIFIED"
36776	Operator string `json:"operator,omitempty"`
36777
36778	// Values: Corresponds to the label values of Node resource.
36779	Values []string `json:"values,omitempty"`
36780
36781	// ForceSendFields is a list of field names (e.g. "Key") to
36782	// unconditionally include in API requests. By default, fields with
36783	// empty values are omitted from API requests. However, any non-pointer,
36784	// non-interface field appearing in ForceSendFields will be sent to the
36785	// server regardless of whether the field is empty or not. This may be
36786	// used to include empty fields in Patch requests.
36787	ForceSendFields []string `json:"-"`
36788
36789	// NullFields is a list of field names (e.g. "Key") to include in API
36790	// requests with the JSON null value. By default, fields with empty
36791	// values are omitted from API requests. However, any field with an
36792	// empty value appearing in NullFields will be sent to the server as
36793	// null. It is an error if a field in this list has a non-empty value.
36794	// This may be used to include null fields in Patch requests.
36795	NullFields []string `json:"-"`
36796}
36797
36798func (s *SchedulingNodeAffinity) MarshalJSON() ([]byte, error) {
36799	type NoMethod SchedulingNodeAffinity
36800	raw := NoMethod(*s)
36801	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36802}
36803
36804// Screenshot: An instance's screenshot.
36805type Screenshot struct {
36806	// Contents: [Output Only] The Base64-encoded screenshot data.
36807	Contents string `json:"contents,omitempty"`
36808
36809	// Kind: [Output Only] Type of the resource. Always compute#screenshot
36810	// for the screenshots.
36811	Kind string `json:"kind,omitempty"`
36812
36813	// ServerResponse contains the HTTP response code and headers from the
36814	// server.
36815	googleapi.ServerResponse `json:"-"`
36816
36817	// ForceSendFields is a list of field names (e.g. "Contents") to
36818	// unconditionally include in API requests. By default, fields with
36819	// empty values are omitted from API requests. However, any non-pointer,
36820	// non-interface field appearing in ForceSendFields will be sent to the
36821	// server regardless of whether the field is empty or not. This may be
36822	// used to include empty fields in Patch requests.
36823	ForceSendFields []string `json:"-"`
36824
36825	// NullFields is a list of field names (e.g. "Contents") to include in
36826	// API requests with the JSON null value. By default, fields with empty
36827	// values are omitted from API requests. However, any field with an
36828	// empty value appearing in NullFields will be sent to the server as
36829	// null. It is an error if a field in this list has a non-empty value.
36830	// This may be used to include null fields in Patch requests.
36831	NullFields []string `json:"-"`
36832}
36833
36834func (s *Screenshot) MarshalJSON() ([]byte, error) {
36835	type NoMethod Screenshot
36836	raw := NoMethod(*s)
36837	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36838}
36839
36840// SdsConfig: The configuration to access the SDS server.
36841type SdsConfig struct {
36842	// GrpcServiceConfig: The configuration to access the SDS server over
36843	// GRPC.
36844	GrpcServiceConfig *GrpcServiceConfig `json:"grpcServiceConfig,omitempty"`
36845
36846	// ForceSendFields is a list of field names (e.g. "GrpcServiceConfig")
36847	// to unconditionally include in API requests. By default, fields with
36848	// empty values are omitted from API requests. However, any non-pointer,
36849	// non-interface field appearing in ForceSendFields will be sent to the
36850	// server regardless of whether the field is empty or not. This may be
36851	// used to include empty fields in Patch requests.
36852	ForceSendFields []string `json:"-"`
36853
36854	// NullFields is a list of field names (e.g. "GrpcServiceConfig") to
36855	// include in API requests with the JSON null value. By default, fields
36856	// with empty values are omitted from API requests. However, any field
36857	// with an empty value appearing in NullFields will be sent to the
36858	// server as null. It is an error if a field in this list has a
36859	// non-empty value. This may be used to include null fields in Patch
36860	// requests.
36861	NullFields []string `json:"-"`
36862}
36863
36864func (s *SdsConfig) MarshalJSON() ([]byte, error) {
36865	type NoMethod SdsConfig
36866	raw := NoMethod(*s)
36867	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36868}
36869
36870type SecurityPoliciesListPreconfiguredExpressionSetsResponse struct {
36871	PreconfiguredExpressionSets *SecurityPoliciesWafConfig `json:"preconfiguredExpressionSets,omitempty"`
36872
36873	// ServerResponse contains the HTTP response code and headers from the
36874	// server.
36875	googleapi.ServerResponse `json:"-"`
36876
36877	// ForceSendFields is a list of field names (e.g.
36878	// "PreconfiguredExpressionSets") to unconditionally include in API
36879	// requests. By default, fields with empty values are omitted from API
36880	// requests. However, any non-pointer, non-interface field appearing in
36881	// ForceSendFields will be sent to the server regardless of whether the
36882	// field is empty or not. This may be used to include empty fields in
36883	// Patch requests.
36884	ForceSendFields []string `json:"-"`
36885
36886	// NullFields is a list of field names (e.g.
36887	// "PreconfiguredExpressionSets") to include in API requests with the
36888	// JSON null value. By default, fields with empty values are omitted
36889	// from API requests. However, any field with an empty value appearing
36890	// in NullFields will be sent to the server as null. It is an error if a
36891	// field in this list has a non-empty value. This may be used to include
36892	// null fields in Patch requests.
36893	NullFields []string `json:"-"`
36894}
36895
36896func (s *SecurityPoliciesListPreconfiguredExpressionSetsResponse) MarshalJSON() ([]byte, error) {
36897	type NoMethod SecurityPoliciesListPreconfiguredExpressionSetsResponse
36898	raw := NoMethod(*s)
36899	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36900}
36901
36902type SecurityPoliciesWafConfig struct {
36903	WafRules *PreconfiguredWafSet `json:"wafRules,omitempty"`
36904
36905	// ForceSendFields is a list of field names (e.g. "WafRules") to
36906	// unconditionally include in API requests. By default, fields with
36907	// empty values are omitted from API requests. However, any non-pointer,
36908	// non-interface field appearing in ForceSendFields will be sent to the
36909	// server regardless of whether the field is empty or not. This may be
36910	// used to include empty fields in Patch requests.
36911	ForceSendFields []string `json:"-"`
36912
36913	// NullFields is a list of field names (e.g. "WafRules") to include in
36914	// API requests with the JSON null value. By default, fields with empty
36915	// values are omitted from API requests. However, any field with an
36916	// empty value appearing in NullFields will be sent to the server as
36917	// null. It is an error if a field in this list has a non-empty value.
36918	// This may be used to include null fields in Patch requests.
36919	NullFields []string `json:"-"`
36920}
36921
36922func (s *SecurityPoliciesWafConfig) MarshalJSON() ([]byte, error) {
36923	type NoMethod SecurityPoliciesWafConfig
36924	raw := NoMethod(*s)
36925	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36926}
36927
36928// SecurityPolicy: Represents a Cloud Armor Security Policy
36929// resource.
36930//
36931// Only external backend services that use load balancers can reference
36932// a Security Policy. For more information, read  Cloud Armor Security
36933// Policy Concepts. (== resource_for {$api_version}.securityPolicies ==)
36934type SecurityPolicy struct {
36935	// Associations: A list of associations that belong to this policy.
36936	Associations []*SecurityPolicyAssociation `json:"associations,omitempty"`
36937
36938	CloudArmorConfig *SecurityPolicyCloudArmorConfig `json:"cloudArmorConfig,omitempty"`
36939
36940	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
36941	// format.
36942	CreationTimestamp string `json:"creationTimestamp,omitempty"`
36943
36944	// Description: An optional description of this resource. Provide this
36945	// property when you create the resource.
36946	Description string `json:"description,omitempty"`
36947
36948	// DisplayName: User-provided name of the Organization security plicy.
36949	// The name should be unique in the organization in which the security
36950	// policy is created. This should only be used when SecurityPolicyType
36951	// is FIREWALL. The name must be 1-63 characters long, and comply with
36952	// RFC1035. Specifically, the name must be 1-63 characters long and
36953	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
36954	// the first character must be a lowercase letter, and all following
36955	// characters must be a dash, lowercase letter, or digit, except the
36956	// last character, which cannot be a dash.
36957	DisplayName string `json:"displayName,omitempty"`
36958
36959	// Fingerprint: Specifies a fingerprint for this resource, which is
36960	// essentially a hash of the metadata's contents and used for optimistic
36961	// locking. The fingerprint is initially generated by Compute Engine and
36962	// changes after every request to modify or update metadata. You must
36963	// always provide an up-to-date fingerprint hash in order to update or
36964	// change metadata, otherwise the request will fail with error 412
36965	// conditionNotMet.
36966	//
36967	// To see the latest fingerprint, make get() request to the security
36968	// policy.
36969	Fingerprint string `json:"fingerprint,omitempty"`
36970
36971	// Id: [Output Only] The unique identifier for the resource. This
36972	// identifier is defined by the server.
36973	Id uint64 `json:"id,omitempty,string"`
36974
36975	// Kind: [Output only] Type of the resource. Always
36976	// compute#securityPolicyfor security policies
36977	Kind string `json:"kind,omitempty"`
36978
36979	// LabelFingerprint: A fingerprint for the labels being applied to this
36980	// security policy, which is essentially a hash of the labels set used
36981	// for optimistic locking. The fingerprint is initially generated by
36982	// Compute Engine and changes after every request to modify or update
36983	// labels. You must always provide an up-to-date fingerprint hash in
36984	// order to update or change labels.
36985	//
36986	// To see the latest fingerprint, make get() request to the security
36987	// policy.
36988	LabelFingerprint string `json:"labelFingerprint,omitempty"`
36989
36990	// Labels: Labels to apply to this security policy resource. These can
36991	// be later modified by the setLabels method. Each label key/value must
36992	// comply with RFC1035. Label values may be empty.
36993	Labels map[string]string `json:"labels,omitempty"`
36994
36995	// Name: Name of the resource. Provided by the client when the resource
36996	// is created. The name must be 1-63 characters long, and comply with
36997	// RFC1035. Specifically, the name must be 1-63 characters long and
36998	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
36999	// the first character must be a lowercase letter, and all following
37000	// characters must be a dash, lowercase letter, or digit, except the
37001	// last character, which cannot be a dash.
37002	Name string `json:"name,omitempty"`
37003
37004	// Parent: [Output Only] The parent of the security policy.
37005	Parent string `json:"parent,omitempty"`
37006
37007	// RuleTupleCount: [Output Only] Total count of all security policy rule
37008	// tuples. A security policy can not exceed a set number of tuples.
37009	RuleTupleCount int64 `json:"ruleTupleCount,omitempty"`
37010
37011	// Rules: A list of rules that belong to this policy. There must always
37012	// be a default rule (rule with priority 2147483647 and match "*"). If
37013	// no rules are provided when creating a security policy, a default rule
37014	// with action "allow" will be added.
37015	Rules []*SecurityPolicyRule `json:"rules,omitempty"`
37016
37017	// SelfLink: [Output Only] Server-defined URL for the resource.
37018	SelfLink string `json:"selfLink,omitempty"`
37019
37020	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
37021	// with the resource id.
37022	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
37023
37024	// Type: The type indicates the intended use of the security policy.
37025	// CLOUD_ARMOR policies apply to backend services. FIREWALL policies
37026	// apply to organizations.
37027	//
37028	// Possible values:
37029	//   "CLOUD_ARMOR"
37030	//   "FIREWALL"
37031	Type string `json:"type,omitempty"`
37032
37033	// ServerResponse contains the HTTP response code and headers from the
37034	// server.
37035	googleapi.ServerResponse `json:"-"`
37036
37037	// ForceSendFields is a list of field names (e.g. "Associations") to
37038	// unconditionally include in API requests. By default, fields with
37039	// empty values are omitted from API requests. However, any non-pointer,
37040	// non-interface field appearing in ForceSendFields will be sent to the
37041	// server regardless of whether the field is empty or not. This may be
37042	// used to include empty fields in Patch requests.
37043	ForceSendFields []string `json:"-"`
37044
37045	// NullFields is a list of field names (e.g. "Associations") to include
37046	// in API requests with the JSON null value. By default, fields with
37047	// empty values are omitted from API requests. However, any field with
37048	// an empty value appearing in NullFields will be sent to the server as
37049	// null. It is an error if a field in this list has a non-empty value.
37050	// This may be used to include null fields in Patch requests.
37051	NullFields []string `json:"-"`
37052}
37053
37054func (s *SecurityPolicy) MarshalJSON() ([]byte, error) {
37055	type NoMethod SecurityPolicy
37056	raw := NoMethod(*s)
37057	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37058}
37059
37060type SecurityPolicyAssociation struct {
37061	// AttachmentId: The resource that the security policy is attached to.
37062	AttachmentId string `json:"attachmentId,omitempty"`
37063
37064	// DisplayName: [Output Only] The display name of the security policy of
37065	// the association.
37066	DisplayName string `json:"displayName,omitempty"`
37067
37068	// Name: The name for an association.
37069	Name string `json:"name,omitempty"`
37070
37071	// SecurityPolicyId: [Output Only] The security policy ID of the
37072	// association.
37073	SecurityPolicyId string `json:"securityPolicyId,omitempty"`
37074
37075	// ServerResponse contains the HTTP response code and headers from the
37076	// server.
37077	googleapi.ServerResponse `json:"-"`
37078
37079	// ForceSendFields is a list of field names (e.g. "AttachmentId") to
37080	// unconditionally include in API requests. By default, fields with
37081	// empty values are omitted from API requests. However, any non-pointer,
37082	// non-interface field appearing in ForceSendFields will be sent to the
37083	// server regardless of whether the field is empty or not. This may be
37084	// used to include empty fields in Patch requests.
37085	ForceSendFields []string `json:"-"`
37086
37087	// NullFields is a list of field names (e.g. "AttachmentId") to include
37088	// in API requests with the JSON null value. By default, fields with
37089	// empty values are omitted from API requests. However, any field with
37090	// an empty value appearing in NullFields will be sent to the server as
37091	// null. It is an error if a field in this list has a non-empty value.
37092	// This may be used to include null fields in Patch requests.
37093	NullFields []string `json:"-"`
37094}
37095
37096func (s *SecurityPolicyAssociation) MarshalJSON() ([]byte, error) {
37097	type NoMethod SecurityPolicyAssociation
37098	raw := NoMethod(*s)
37099	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37100}
37101
37102// SecurityPolicyCloudArmorConfig: Configuration options for Cloud
37103// Armor.
37104type SecurityPolicyCloudArmorConfig struct {
37105	// EnableMl: If set to true, enables Cloud Armor Machine Learning.
37106	EnableMl bool `json:"enableMl,omitempty"`
37107
37108	// ForceSendFields is a list of field names (e.g. "EnableMl") to
37109	// unconditionally include in API requests. By default, fields with
37110	// empty values are omitted from API requests. However, any non-pointer,
37111	// non-interface field appearing in ForceSendFields will be sent to the
37112	// server regardless of whether the field is empty or not. This may be
37113	// used to include empty fields in Patch requests.
37114	ForceSendFields []string `json:"-"`
37115
37116	// NullFields is a list of field names (e.g. "EnableMl") to include in
37117	// API requests with the JSON null value. By default, fields with empty
37118	// values are omitted from API requests. However, any field with an
37119	// empty value appearing in NullFields will be sent to the server as
37120	// null. It is an error if a field in this list has a non-empty value.
37121	// This may be used to include null fields in Patch requests.
37122	NullFields []string `json:"-"`
37123}
37124
37125func (s *SecurityPolicyCloudArmorConfig) MarshalJSON() ([]byte, error) {
37126	type NoMethod SecurityPolicyCloudArmorConfig
37127	raw := NoMethod(*s)
37128	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37129}
37130
37131type SecurityPolicyList struct {
37132	// Id: [Output Only] Unique identifier for the resource; defined by the
37133	// server.
37134	Id string `json:"id,omitempty"`
37135
37136	// Items: A list of SecurityPolicy resources.
37137	Items []*SecurityPolicy `json:"items,omitempty"`
37138
37139	// Kind: [Output Only] Type of resource. Always
37140	// compute#securityPolicyList for listsof securityPolicies
37141	Kind string `json:"kind,omitempty"`
37142
37143	// NextPageToken: [Output Only] This token allows you to get the next
37144	// page of results for list requests. If the number of results is larger
37145	// than maxResults, use the nextPageToken as a value for the query
37146	// parameter pageToken in the next list request. Subsequent list
37147	// requests will have their own nextPageToken to continue paging through
37148	// the results.
37149	NextPageToken string `json:"nextPageToken,omitempty"`
37150
37151	// Warning: [Output Only] Informational warning message.
37152	Warning *SecurityPolicyListWarning `json:"warning,omitempty"`
37153
37154	// ServerResponse contains the HTTP response code and headers from the
37155	// server.
37156	googleapi.ServerResponse `json:"-"`
37157
37158	// ForceSendFields is a list of field names (e.g. "Id") to
37159	// unconditionally include in API requests. By default, fields with
37160	// empty values are omitted from API requests. However, any non-pointer,
37161	// non-interface field appearing in ForceSendFields will be sent to the
37162	// server regardless of whether the field is empty or not. This may be
37163	// used to include empty fields in Patch requests.
37164	ForceSendFields []string `json:"-"`
37165
37166	// NullFields is a list of field names (e.g. "Id") to include in API
37167	// requests with the JSON null value. By default, fields with empty
37168	// values are omitted from API requests. However, any field with an
37169	// empty value appearing in NullFields will be sent to the server as
37170	// null. It is an error if a field in this list has a non-empty value.
37171	// This may be used to include null fields in Patch requests.
37172	NullFields []string `json:"-"`
37173}
37174
37175func (s *SecurityPolicyList) MarshalJSON() ([]byte, error) {
37176	type NoMethod SecurityPolicyList
37177	raw := NoMethod(*s)
37178	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37179}
37180
37181// SecurityPolicyListWarning: [Output Only] Informational warning
37182// message.
37183type SecurityPolicyListWarning struct {
37184	// Code: [Output Only] A warning code, if applicable. For example,
37185	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
37186	// the response.
37187	//
37188	// Possible values:
37189	//   "CLEANUP_FAILED"
37190	//   "DEPRECATED_RESOURCE_USED"
37191	//   "DEPRECATED_TYPE_USED"
37192	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
37193	//   "EXPERIMENTAL_TYPE_USED"
37194	//   "EXTERNAL_API_WARNING"
37195	//   "FIELD_VALUE_OVERRIDEN"
37196	//   "INJECTED_KERNELS_DEPRECATED"
37197	//   "MISSING_TYPE_DEPENDENCY"
37198	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
37199	//   "NEXT_HOP_CANNOT_IP_FORWARD"
37200	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
37201	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
37202	//   "NEXT_HOP_NOT_RUNNING"
37203	//   "NOT_CRITICAL_ERROR"
37204	//   "NO_RESULTS_ON_PAGE"
37205	//   "REQUIRED_TOS_AGREEMENT"
37206	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
37207	//   "RESOURCE_NOT_DELETED"
37208	//   "SCHEMA_VALIDATION_IGNORED"
37209	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
37210	//   "UNDECLARED_PROPERTIES"
37211	//   "UNREACHABLE"
37212	Code string `json:"code,omitempty"`
37213
37214	// Data: [Output Only] Metadata about this warning in key: value format.
37215	// For example:
37216	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
37217	Data []*SecurityPolicyListWarningData `json:"data,omitempty"`
37218
37219	// Message: [Output Only] A human-readable description of the warning
37220	// code.
37221	Message string `json:"message,omitempty"`
37222
37223	// ForceSendFields is a list of field names (e.g. "Code") to
37224	// unconditionally include in API requests. By default, fields with
37225	// empty values are omitted from API requests. However, any non-pointer,
37226	// non-interface field appearing in ForceSendFields will be sent to the
37227	// server regardless of whether the field is empty or not. This may be
37228	// used to include empty fields in Patch requests.
37229	ForceSendFields []string `json:"-"`
37230
37231	// NullFields is a list of field names (e.g. "Code") to include in API
37232	// requests with the JSON null value. By default, fields with empty
37233	// values are omitted from API requests. However, any field with an
37234	// empty value appearing in NullFields will be sent to the server as
37235	// null. It is an error if a field in this list has a non-empty value.
37236	// This may be used to include null fields in Patch requests.
37237	NullFields []string `json:"-"`
37238}
37239
37240func (s *SecurityPolicyListWarning) MarshalJSON() ([]byte, error) {
37241	type NoMethod SecurityPolicyListWarning
37242	raw := NoMethod(*s)
37243	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37244}
37245
37246type SecurityPolicyListWarningData struct {
37247	// Key: [Output Only] A key that provides more detail on the warning
37248	// being returned. For example, for warnings where there are no results
37249	// in a list request for a particular zone, this key might be scope and
37250	// the key value might be the zone name. Other examples might be a key
37251	// indicating a deprecated resource and a suggested replacement, or a
37252	// warning about invalid network settings (for example, if an instance
37253	// attempts to perform IP forwarding but is not enabled for IP
37254	// forwarding).
37255	Key string `json:"key,omitempty"`
37256
37257	// Value: [Output Only] A warning data value corresponding to the key.
37258	Value string `json:"value,omitempty"`
37259
37260	// ForceSendFields is a list of field names (e.g. "Key") to
37261	// unconditionally include in API requests. By default, fields with
37262	// empty values are omitted from API requests. However, any non-pointer,
37263	// non-interface field appearing in ForceSendFields will be sent to the
37264	// server regardless of whether the field is empty or not. This may be
37265	// used to include empty fields in Patch requests.
37266	ForceSendFields []string `json:"-"`
37267
37268	// NullFields is a list of field names (e.g. "Key") to include in API
37269	// requests with the JSON null value. By default, fields with empty
37270	// values are omitted from API requests. However, any field with an
37271	// empty value appearing in NullFields will be sent to the server as
37272	// null. It is an error if a field in this list has a non-empty value.
37273	// This may be used to include null fields in Patch requests.
37274	NullFields []string `json:"-"`
37275}
37276
37277func (s *SecurityPolicyListWarningData) MarshalJSON() ([]byte, error) {
37278	type NoMethod SecurityPolicyListWarningData
37279	raw := NoMethod(*s)
37280	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37281}
37282
37283type SecurityPolicyReference struct {
37284	SecurityPolicy string `json:"securityPolicy,omitempty"`
37285
37286	// ForceSendFields is a list of field names (e.g. "SecurityPolicy") to
37287	// unconditionally include in API requests. By default, fields with
37288	// empty values are omitted from API requests. However, any non-pointer,
37289	// non-interface field appearing in ForceSendFields will be sent to the
37290	// server regardless of whether the field is empty or not. This may be
37291	// used to include empty fields in Patch requests.
37292	ForceSendFields []string `json:"-"`
37293
37294	// NullFields is a list of field names (e.g. "SecurityPolicy") to
37295	// include in API requests with the JSON null value. By default, fields
37296	// with empty values are omitted from API requests. However, any field
37297	// with an empty value appearing in NullFields will be sent to the
37298	// server as null. It is an error if a field in this list has a
37299	// non-empty value. This may be used to include null fields in Patch
37300	// requests.
37301	NullFields []string `json:"-"`
37302}
37303
37304func (s *SecurityPolicyReference) MarshalJSON() ([]byte, error) {
37305	type NoMethod SecurityPolicyReference
37306	raw := NoMethod(*s)
37307	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37308}
37309
37310// SecurityPolicyRule: Represents a rule that describes one or more
37311// match conditions along with the action to be taken when traffic
37312// matches this condition (allow or deny).
37313type SecurityPolicyRule struct {
37314	// Action: The Action to preform when the client connection triggers the
37315	// rule. Can currently be either "allow" or "deny()" where valid values
37316	// for status are 403, 404, and 502.
37317	Action string `json:"action,omitempty"`
37318
37319	// Description: An optional description of this resource. Provide this
37320	// property when you create the resource.
37321	Description string `json:"description,omitempty"`
37322
37323	// Direction: The direction in which this rule applies. This field may
37324	// only be specified when versioned_expr is set to FIREWALL.
37325	//
37326	// Possible values:
37327	//   "EGRESS"
37328	//   "INGRESS"
37329	Direction string `json:"direction,omitempty"`
37330
37331	// EnableLogging: Denotes whether to enable logging for a particular
37332	// rule. If logging is enabled, logs will be exported to the configured
37333	// export destination in Stackdriver. Logs may be exported to BigQuery
37334	// or Pub/Sub. Note: you cannot enable logging on "goto_next"
37335	// rules.
37336	//
37337	// This field may only be specified when the versioned_expr is set to
37338	// FIREWALL.
37339	EnableLogging bool `json:"enableLogging,omitempty"`
37340
37341	// Kind: [Output only] Type of the resource. Always
37342	// compute#securityPolicyRule for security policy rules
37343	Kind string `json:"kind,omitempty"`
37344
37345	// Match: A match condition that incoming traffic is evaluated against.
37346	// If it evaluates to true, the corresponding 'action' is enforced.
37347	Match *SecurityPolicyRuleMatcher `json:"match,omitempty"`
37348
37349	// Preview: If set to true, the specified action is not enforced.
37350	Preview bool `json:"preview,omitempty"`
37351
37352	// Priority: An integer indicating the priority of a rule in the list.
37353	// The priority must be a positive value between 0 and 2147483647. Rules
37354	// are evaluated from highest to lowest priority where 0 is the highest
37355	// priority and 2147483647 is the lowest prority.
37356	Priority int64 `json:"priority,omitempty"`
37357
37358	// RateLimitOptions: Must be specified if the action is
37359	// "rate_based_blacklist" or "throttle". Cannot be specified for any
37360	// other actions.
37361	RateLimitOptions *SecurityPolicyRuleRateLimitOptions `json:"rateLimitOptions,omitempty"`
37362
37363	// RuleTupleCount: [Output Only] Calculation of the complexity of a
37364	// single firewall security policy rule.
37365	RuleTupleCount int64 `json:"ruleTupleCount,omitempty"`
37366
37367	// TargetResources: A list of network resource URLs to which this rule
37368	// applies. This field allows you to control which network's VMs get
37369	// this rule. If this field is left blank, all VMs within the
37370	// organization will receive the rule.
37371	//
37372	// This field may only be specified when versioned_expr is set to
37373	// FIREWALL.
37374	TargetResources []string `json:"targetResources,omitempty"`
37375
37376	// TargetServiceAccounts: A list of service accounts indicating the sets
37377	// of instances that are applied with this rule.
37378	TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"`
37379
37380	// ServerResponse contains the HTTP response code and headers from the
37381	// server.
37382	googleapi.ServerResponse `json:"-"`
37383
37384	// ForceSendFields is a list of field names (e.g. "Action") to
37385	// unconditionally include in API requests. By default, fields with
37386	// empty values are omitted from API requests. However, any non-pointer,
37387	// non-interface field appearing in ForceSendFields will be sent to the
37388	// server regardless of whether the field is empty or not. This may be
37389	// used to include empty fields in Patch requests.
37390	ForceSendFields []string `json:"-"`
37391
37392	// NullFields is a list of field names (e.g. "Action") to include in API
37393	// requests with the JSON null value. By default, fields with empty
37394	// values are omitted from API requests. However, any field with an
37395	// empty value appearing in NullFields will be sent to the server as
37396	// null. It is an error if a field in this list has a non-empty value.
37397	// This may be used to include null fields in Patch requests.
37398	NullFields []string `json:"-"`
37399}
37400
37401func (s *SecurityPolicyRule) MarshalJSON() ([]byte, error) {
37402	type NoMethod SecurityPolicyRule
37403	raw := NoMethod(*s)
37404	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37405}
37406
37407// SecurityPolicyRuleMatcher: Represents a match condition that incoming
37408// traffic is evaluated against. Exactly one field must be specified.
37409type SecurityPolicyRuleMatcher struct {
37410	// Config: The configuration options available when specifying
37411	// versioned_expr. This field must be specified if versioned_expr is
37412	// specified and cannot be specified if versioned_expr is not specified.
37413	Config *SecurityPolicyRuleMatcherConfig `json:"config,omitempty"`
37414
37415	// Expr: User defined CEVAL expression. A CEVAL expression is used to
37416	// specify match criteria such as origin.ip, source.region_code and
37417	// contents in the request header.
37418	Expr *Expr `json:"expr,omitempty"`
37419
37420	// VersionedExpr: Preconfigured versioned expression. If this field is
37421	// specified, config must also be specified. Available preconfigured
37422	// expressions along with their requirements are: SRC_IPS_V1 - must
37423	// specify the corresponding src_ip_range field in config.
37424	//
37425	// Possible values:
37426	//   "FIREWALL"
37427	//   "SRC_IPS_V1"
37428	VersionedExpr string `json:"versionedExpr,omitempty"`
37429
37430	// ForceSendFields is a list of field names (e.g. "Config") to
37431	// unconditionally include in API requests. By default, fields with
37432	// empty values are omitted from API requests. However, any non-pointer,
37433	// non-interface field appearing in ForceSendFields will be sent to the
37434	// server regardless of whether the field is empty or not. This may be
37435	// used to include empty fields in Patch requests.
37436	ForceSendFields []string `json:"-"`
37437
37438	// NullFields is a list of field names (e.g. "Config") to include in API
37439	// requests with the JSON null value. By default, fields with empty
37440	// values are omitted from API requests. However, any field with an
37441	// empty value appearing in NullFields will be sent to the server as
37442	// null. It is an error if a field in this list has a non-empty value.
37443	// This may be used to include null fields in Patch requests.
37444	NullFields []string `json:"-"`
37445}
37446
37447func (s *SecurityPolicyRuleMatcher) MarshalJSON() ([]byte, error) {
37448	type NoMethod SecurityPolicyRuleMatcher
37449	raw := NoMethod(*s)
37450	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37451}
37452
37453type SecurityPolicyRuleMatcherConfig struct {
37454	// DestIpRanges: CIDR IP address range.
37455	//
37456	// This field may only be specified when versioned_expr is set to
37457	// FIREWALL.
37458	DestIpRanges []string `json:"destIpRanges,omitempty"`
37459
37460	// DestPorts: Pairs of IP protocols and ports that the rule should
37461	// match.
37462	//
37463	// This field may only be specified when versioned_expr is set to
37464	// FIREWALL.
37465	DestPorts []*SecurityPolicyRuleMatcherConfigDestinationPort `json:"destPorts,omitempty"`
37466
37467	// Layer4Configs: Pairs of IP protocols and ports that the rule should
37468	// match.
37469	//
37470	// This field may only be specified when versioned_expr is set to
37471	// FIREWALL.
37472	Layer4Configs []*SecurityPolicyRuleMatcherConfigLayer4Config `json:"layer4Configs,omitempty"`
37473
37474	// SrcIpRanges: CIDR IP address range.
37475	SrcIpRanges []string `json:"srcIpRanges,omitempty"`
37476
37477	// ForceSendFields is a list of field names (e.g. "DestIpRanges") to
37478	// unconditionally include in API requests. By default, fields with
37479	// empty values are omitted from API requests. However, any non-pointer,
37480	// non-interface field appearing in ForceSendFields will be sent to the
37481	// server regardless of whether the field is empty or not. This may be
37482	// used to include empty fields in Patch requests.
37483	ForceSendFields []string `json:"-"`
37484
37485	// NullFields is a list of field names (e.g. "DestIpRanges") to include
37486	// in API requests with the JSON null value. By default, fields with
37487	// empty values are omitted from API requests. However, any field with
37488	// an empty value appearing in NullFields will be sent to the server as
37489	// null. It is an error if a field in this list has a non-empty value.
37490	// This may be used to include null fields in Patch requests.
37491	NullFields []string `json:"-"`
37492}
37493
37494func (s *SecurityPolicyRuleMatcherConfig) MarshalJSON() ([]byte, error) {
37495	type NoMethod SecurityPolicyRuleMatcherConfig
37496	raw := NoMethod(*s)
37497	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37498}
37499
37500type SecurityPolicyRuleMatcherConfigDestinationPort struct {
37501	// IpProtocol: The IP protocol to which this rule applies. The protocol
37502	// type is required when creating a firewall rule. This value can either
37503	// be one of the following well known protocol strings (tcp, udp, icmp,
37504	// esp, ah, ipip, sctp), or the IP protocol number.
37505	IpProtocol string `json:"ipProtocol,omitempty"`
37506
37507	// Ports: An optional list of ports to which this rule applies. This
37508	// field is only applicable for UDP or TCP protocol. Each entry must be
37509	// either an integer or a range. If not specified, this rule applies to
37510	// connections through any port.
37511	//
37512	// Example inputs include: ["22"], ["80","443"], and
37513	// ["12345-12349"].
37514	//
37515	// This field may only be specified when versioned_expr is set to
37516	// FIREWALL.
37517	Ports []string `json:"ports,omitempty"`
37518
37519	// ForceSendFields is a list of field names (e.g. "IpProtocol") to
37520	// unconditionally include in API requests. By default, fields with
37521	// empty values are omitted from API requests. However, any non-pointer,
37522	// non-interface field appearing in ForceSendFields will be sent to the
37523	// server regardless of whether the field is empty or not. This may be
37524	// used to include empty fields in Patch requests.
37525	ForceSendFields []string `json:"-"`
37526
37527	// NullFields is a list of field names (e.g. "IpProtocol") to include in
37528	// API requests with the JSON null value. By default, fields with empty
37529	// values are omitted from API requests. However, any field with an
37530	// empty value appearing in NullFields will be sent to the server as
37531	// null. It is an error if a field in this list has a non-empty value.
37532	// This may be used to include null fields in Patch requests.
37533	NullFields []string `json:"-"`
37534}
37535
37536func (s *SecurityPolicyRuleMatcherConfigDestinationPort) MarshalJSON() ([]byte, error) {
37537	type NoMethod SecurityPolicyRuleMatcherConfigDestinationPort
37538	raw := NoMethod(*s)
37539	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37540}
37541
37542type SecurityPolicyRuleMatcherConfigLayer4Config struct {
37543	// IpProtocol: The IP protocol to which this rule applies. The protocol
37544	// type is required when creating a firewall rule. This value can either
37545	// be one of the following well known protocol strings (tcp, udp, icmp,
37546	// esp, ah, ipip, sctp), or the IP protocol number.
37547	IpProtocol string `json:"ipProtocol,omitempty"`
37548
37549	// Ports: An optional list of ports to which this rule applies. This
37550	// field is only applicable for UDP or TCP protocol. Each entry must be
37551	// either an integer or a range. If not specified, this rule applies to
37552	// connections through any port.
37553	//
37554	// Example inputs include: ["22"], ["80","443"], and
37555	// ["12345-12349"].
37556	//
37557	// This field may only be specified when versioned_expr is set to
37558	// FIREWALL.
37559	Ports []string `json:"ports,omitempty"`
37560
37561	// ForceSendFields is a list of field names (e.g. "IpProtocol") to
37562	// unconditionally include in API requests. By default, fields with
37563	// empty values are omitted from API requests. However, any non-pointer,
37564	// non-interface field appearing in ForceSendFields will be sent to the
37565	// server regardless of whether the field is empty or not. This may be
37566	// used to include empty fields in Patch requests.
37567	ForceSendFields []string `json:"-"`
37568
37569	// NullFields is a list of field names (e.g. "IpProtocol") to include in
37570	// API requests with the JSON null value. By default, fields with empty
37571	// values are omitted from API requests. However, any field with an
37572	// empty value appearing in NullFields will be sent to the server as
37573	// null. It is an error if a field in this list has a non-empty value.
37574	// This may be used to include null fields in Patch requests.
37575	NullFields []string `json:"-"`
37576}
37577
37578func (s *SecurityPolicyRuleMatcherConfigLayer4Config) MarshalJSON() ([]byte, error) {
37579	type NoMethod SecurityPolicyRuleMatcherConfigLayer4Config
37580	raw := NoMethod(*s)
37581	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37582}
37583
37584type SecurityPolicyRuleRateLimitOptions struct {
37585	// BlockDuration: Can only be specifed if the action for the rule is
37586	// "rate_based_blacklist" If specified, determines the time (in seconds)
37587	// the traffic will continue to be blocked by the rate limit after the
37588	// rate falls below the threshold. The default value is 0 seconds.
37589	BlockDuration int64 `json:"blockDuration,omitempty"`
37590
37591	// ConformAction: Action to take when requests are under the given
37592	// threshold. When requests are throttled, this is also the action for
37593	// all requests which are not dropped. Valid options are "allow",
37594	// "fairshare", and "drop_overload".
37595	ConformAction string `json:"conformAction,omitempty"`
37596
37597	// EnforceOnKey: Determines the key to enforce the threshold_rps limit
37598	// on. If key is "IP", each IP has this limit enforced separately,
37599	// whereas "ALL_IPs" means a single limit is applied to all requests
37600	// matching this rule.
37601	//
37602	// Possible values:
37603	//   "ALL_IPS"
37604	//   "IP"
37605	EnforceOnKey string `json:"enforceOnKey,omitempty"`
37606
37607	// ExceedAction: When a request is denied, returns the HTTP response
37608	// code specified. Valid options are "deny()" where valid values for
37609	// status are 403, 404, 429, and 502.
37610	ExceedAction string `json:"exceedAction,omitempty"`
37611
37612	// ThresholdRps: Rate in requests per second at which to begin
37613	// ratelimiting.
37614	ThresholdRps int64 `json:"thresholdRps,omitempty"`
37615
37616	// ForceSendFields is a list of field names (e.g. "BlockDuration") to
37617	// unconditionally include in API requests. By default, fields with
37618	// empty values are omitted from API requests. However, any non-pointer,
37619	// non-interface field appearing in ForceSendFields will be sent to the
37620	// server regardless of whether the field is empty or not. This may be
37621	// used to include empty fields in Patch requests.
37622	ForceSendFields []string `json:"-"`
37623
37624	// NullFields is a list of field names (e.g. "BlockDuration") to include
37625	// in API requests with the JSON null value. By default, fields with
37626	// empty values are omitted from API requests. However, any field with
37627	// an empty value appearing in NullFields will be sent to the server as
37628	// null. It is an error if a field in this list has a non-empty value.
37629	// This may be used to include null fields in Patch requests.
37630	NullFields []string `json:"-"`
37631}
37632
37633func (s *SecurityPolicyRuleRateLimitOptions) MarshalJSON() ([]byte, error) {
37634	type NoMethod SecurityPolicyRuleRateLimitOptions
37635	raw := NoMethod(*s)
37636	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37637}
37638
37639// SecuritySettings: The authentication and authorization settings for a
37640// BackendService.
37641type SecuritySettings struct {
37642	// AuthenticationPolicy: Authentication policy defines what
37643	// authentication methods can be accepted on backends, and if
37644	// authenticated, which method/certificate will set the request
37645	// principal.
37646	AuthenticationPolicy *AuthenticationPolicy `json:"authenticationPolicy,omitempty"`
37647
37648	// AuthorizationConfig: Authorization config defines the Role Based
37649	// Access Control (RBAC) config.
37650	AuthorizationConfig *AuthorizationConfig `json:"authorizationConfig,omitempty"`
37651
37652	// ClientTlsSettings: TLS Settings for the backend service.
37653	ClientTlsSettings *ClientTlsSettings `json:"clientTlsSettings,omitempty"`
37654
37655	// ForceSendFields is a list of field names (e.g.
37656	// "AuthenticationPolicy") to unconditionally include in API requests.
37657	// By default, fields with empty values are omitted from API requests.
37658	// However, any non-pointer, non-interface field appearing in
37659	// ForceSendFields will be sent to the server regardless of whether the
37660	// field is empty or not. This may be used to include empty fields in
37661	// Patch requests.
37662	ForceSendFields []string `json:"-"`
37663
37664	// NullFields is a list of field names (e.g. "AuthenticationPolicy") to
37665	// include in API requests with the JSON null value. By default, fields
37666	// with empty values are omitted from API requests. However, any field
37667	// with an empty value appearing in NullFields will be sent to the
37668	// server as null. It is an error if a field in this list has a
37669	// non-empty value. This may be used to include null fields in Patch
37670	// requests.
37671	NullFields []string `json:"-"`
37672}
37673
37674func (s *SecuritySettings) MarshalJSON() ([]byte, error) {
37675	type NoMethod SecuritySettings
37676	raw := NoMethod(*s)
37677	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37678}
37679
37680// SerialPortOutput: An instance's serial console output.
37681type SerialPortOutput struct {
37682	// Contents: [Output Only] The contents of the console output.
37683	Contents string `json:"contents,omitempty"`
37684
37685	// Kind: [Output Only] Type of the resource. Always
37686	// compute#serialPortOutput for serial port output.
37687	Kind string `json:"kind,omitempty"`
37688
37689	// Next: [Output Only] The position of the next byte of content from the
37690	// serial console output. Use this value in the next request as the
37691	// start parameter.
37692	Next int64 `json:"next,omitempty,string"`
37693
37694	// SelfLink: [Output Only] Server-defined URL for this resource.
37695	SelfLink string `json:"selfLink,omitempty"`
37696
37697	// Start: The starting byte position of the output that was returned.
37698	// This should match the start parameter sent with the request. If the
37699	// serial console output exceeds the size of the buffer, older output
37700	// will be overwritten by newer content and the start values will be
37701	// mismatched.
37702	Start int64 `json:"start,omitempty,string"`
37703
37704	// ServerResponse contains the HTTP response code and headers from the
37705	// server.
37706	googleapi.ServerResponse `json:"-"`
37707
37708	// ForceSendFields is a list of field names (e.g. "Contents") to
37709	// unconditionally include in API requests. By default, fields with
37710	// empty values are omitted from API requests. However, any non-pointer,
37711	// non-interface field appearing in ForceSendFields will be sent to the
37712	// server regardless of whether the field is empty or not. This may be
37713	// used to include empty fields in Patch requests.
37714	ForceSendFields []string `json:"-"`
37715
37716	// NullFields is a list of field names (e.g. "Contents") to include in
37717	// API requests with the JSON null value. By default, fields with empty
37718	// values are omitted from API requests. However, any field with an
37719	// empty value appearing in NullFields will be sent to the server as
37720	// null. It is an error if a field in this list has a non-empty value.
37721	// This may be used to include null fields in Patch requests.
37722	NullFields []string `json:"-"`
37723}
37724
37725func (s *SerialPortOutput) MarshalJSON() ([]byte, error) {
37726	type NoMethod SerialPortOutput
37727	raw := NoMethod(*s)
37728	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37729}
37730
37731type ServerBinding struct {
37732	// Possible values:
37733	//   "RESTART_NODE_ON_ANY_SERVER"
37734	//   "RESTART_NODE_ON_MINIMAL_SERVERS"
37735	//   "SERVER_BINDING_TYPE_UNSPECIFIED"
37736	Type string `json:"type,omitempty"`
37737
37738	// ForceSendFields is a list of field names (e.g. "Type") to
37739	// unconditionally include in API requests. By default, fields with
37740	// empty values are omitted from API requests. However, any non-pointer,
37741	// non-interface field appearing in ForceSendFields will be sent to the
37742	// server regardless of whether the field is empty or not. This may be
37743	// used to include empty fields in Patch requests.
37744	ForceSendFields []string `json:"-"`
37745
37746	// NullFields is a list of field names (e.g. "Type") to include in API
37747	// requests with the JSON null value. By default, fields with empty
37748	// values are omitted from API requests. However, any field with an
37749	// empty value appearing in NullFields will be sent to the server as
37750	// null. It is an error if a field in this list has a non-empty value.
37751	// This may be used to include null fields in Patch requests.
37752	NullFields []string `json:"-"`
37753}
37754
37755func (s *ServerBinding) MarshalJSON() ([]byte, error) {
37756	type NoMethod ServerBinding
37757	raw := NoMethod(*s)
37758	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37759}
37760
37761// ServerTlsSettings: The TLS settings for the server.
37762type ServerTlsSettings struct {
37763	// ProxyTlsContext: Configures the mechanism to obtain security
37764	// certificates and identity information.
37765	ProxyTlsContext *TlsContext `json:"proxyTlsContext,omitempty"`
37766
37767	// SubjectAltNames: A list of alternate names to verify the subject
37768	// identity in the certificate presented by the client.
37769	SubjectAltNames []string `json:"subjectAltNames,omitempty"`
37770
37771	// TlsMode: Indicates whether connections should be secured using TLS.
37772	// The value of this field determines how TLS is enforced. This field
37773	// can be set to one of the following:
37774	// - SIMPLE Secure connections with standard TLS semantics.
37775	// - MUTUAL Secure connections to the backends using mutual TLS by
37776	// presenting client certificates for authentication.
37777	//
37778	// Possible values:
37779	//   "INVALID"
37780	//   "MUTUAL"
37781	//   "SIMPLE"
37782	TlsMode string `json:"tlsMode,omitempty"`
37783
37784	// ForceSendFields is a list of field names (e.g. "ProxyTlsContext") to
37785	// unconditionally include in API requests. By default, fields with
37786	// empty values are omitted from API requests. However, any non-pointer,
37787	// non-interface field appearing in ForceSendFields will be sent to the
37788	// server regardless of whether the field is empty or not. This may be
37789	// used to include empty fields in Patch requests.
37790	ForceSendFields []string `json:"-"`
37791
37792	// NullFields is a list of field names (e.g. "ProxyTlsContext") to
37793	// include in API requests with the JSON null value. By default, fields
37794	// with empty values are omitted from API requests. However, any field
37795	// with an empty value appearing in NullFields will be sent to the
37796	// server as null. It is an error if a field in this list has a
37797	// non-empty value. This may be used to include null fields in Patch
37798	// requests.
37799	NullFields []string `json:"-"`
37800}
37801
37802func (s *ServerTlsSettings) MarshalJSON() ([]byte, error) {
37803	type NoMethod ServerTlsSettings
37804	raw := NoMethod(*s)
37805	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37806}
37807
37808// ServiceAccount: A service account.
37809type ServiceAccount struct {
37810	// Email: Email address of the service account.
37811	Email string `json:"email,omitempty"`
37812
37813	// Scopes: The list of scopes to be made available for this service
37814	// account.
37815	Scopes []string `json:"scopes,omitempty"`
37816
37817	// ForceSendFields is a list of field names (e.g. "Email") to
37818	// unconditionally include in API requests. By default, fields with
37819	// empty values are omitted from API requests. However, any non-pointer,
37820	// non-interface field appearing in ForceSendFields will be sent to the
37821	// server regardless of whether the field is empty or not. This may be
37822	// used to include empty fields in Patch requests.
37823	ForceSendFields []string `json:"-"`
37824
37825	// NullFields is a list of field names (e.g. "Email") to include in API
37826	// requests with the JSON null value. By default, fields with empty
37827	// values are omitted from API requests. However, any field with an
37828	// empty value appearing in NullFields will be sent to the server as
37829	// null. It is an error if a field in this list has a non-empty value.
37830	// This may be used to include null fields in Patch requests.
37831	NullFields []string `json:"-"`
37832}
37833
37834func (s *ServiceAccount) MarshalJSON() ([]byte, error) {
37835	type NoMethod ServiceAccount
37836	raw := NoMethod(*s)
37837	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37838}
37839
37840// ShieldedInstanceConfig: A set of Shielded Instance options.
37841type ShieldedInstanceConfig struct {
37842	// EnableIntegrityMonitoring: Defines whether the instance has integrity
37843	// monitoring enabled.
37844	EnableIntegrityMonitoring bool `json:"enableIntegrityMonitoring,omitempty"`
37845
37846	// EnableSecureBoot: Defines whether the instance has Secure Boot
37847	// enabled.
37848	EnableSecureBoot bool `json:"enableSecureBoot,omitempty"`
37849
37850	// EnableVtpm: Defines whether the instance has the vTPM enabled.
37851	EnableVtpm bool `json:"enableVtpm,omitempty"`
37852
37853	// ForceSendFields is a list of field names (e.g.
37854	// "EnableIntegrityMonitoring") to unconditionally include in API
37855	// requests. By default, fields with empty values are omitted from API
37856	// requests. However, any non-pointer, non-interface field appearing in
37857	// ForceSendFields will be sent to the server regardless of whether the
37858	// field is empty or not. This may be used to include empty fields in
37859	// Patch requests.
37860	ForceSendFields []string `json:"-"`
37861
37862	// NullFields is a list of field names (e.g.
37863	// "EnableIntegrityMonitoring") to include in API requests with the JSON
37864	// null value. By default, fields with empty values are omitted from API
37865	// requests. However, any field with an empty value appearing in
37866	// NullFields will be sent to the server as null. It is an error if a
37867	// field in this list has a non-empty value. This may be used to include
37868	// null fields in Patch requests.
37869	NullFields []string `json:"-"`
37870}
37871
37872func (s *ShieldedInstanceConfig) MarshalJSON() ([]byte, error) {
37873	type NoMethod ShieldedInstanceConfig
37874	raw := NoMethod(*s)
37875	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37876}
37877
37878// ShieldedInstanceIdentity: A shielded Instance identity entry.
37879type ShieldedInstanceIdentity struct {
37880	// EncryptionKey: An Endorsement Key (EK) made by the RSA 2048 algorithm
37881	// issued to the Shielded Instance's vTPM.
37882	EncryptionKey *ShieldedInstanceIdentityEntry `json:"encryptionKey,omitempty"`
37883
37884	// Kind: [Output Only] Type of the resource. Always
37885	// compute#shieldedInstanceIdentity for shielded Instance identity
37886	// entry.
37887	Kind string `json:"kind,omitempty"`
37888
37889	// SigningKey: An Attestation Key (AK) made by the RSA 2048 algorithm
37890	// issued to the Shielded Instance's vTPM.
37891	SigningKey *ShieldedInstanceIdentityEntry `json:"signingKey,omitempty"`
37892
37893	// ServerResponse contains the HTTP response code and headers from the
37894	// server.
37895	googleapi.ServerResponse `json:"-"`
37896
37897	// ForceSendFields is a list of field names (e.g. "EncryptionKey") to
37898	// unconditionally include in API requests. By default, fields with
37899	// empty values are omitted from API requests. However, any non-pointer,
37900	// non-interface field appearing in ForceSendFields will be sent to the
37901	// server regardless of whether the field is empty or not. This may be
37902	// used to include empty fields in Patch requests.
37903	ForceSendFields []string `json:"-"`
37904
37905	// NullFields is a list of field names (e.g. "EncryptionKey") to include
37906	// in API requests with the JSON null value. By default, fields with
37907	// empty values are omitted from API requests. However, any field with
37908	// an empty value appearing in NullFields will be sent to the server as
37909	// null. It is an error if a field in this list has a non-empty value.
37910	// This may be used to include null fields in Patch requests.
37911	NullFields []string `json:"-"`
37912}
37913
37914func (s *ShieldedInstanceIdentity) MarshalJSON() ([]byte, error) {
37915	type NoMethod ShieldedInstanceIdentity
37916	raw := NoMethod(*s)
37917	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37918}
37919
37920// ShieldedInstanceIdentityEntry: A Shielded Instance Identity Entry.
37921type ShieldedInstanceIdentityEntry struct {
37922	// EkCert: A PEM-encoded X.509 certificate. This field can be empty.
37923	EkCert string `json:"ekCert,omitempty"`
37924
37925	// EkPub: A PEM-encoded public key.
37926	EkPub string `json:"ekPub,omitempty"`
37927
37928	// ForceSendFields is a list of field names (e.g. "EkCert") to
37929	// unconditionally include in API requests. By default, fields with
37930	// empty values are omitted from API requests. However, any non-pointer,
37931	// non-interface field appearing in ForceSendFields will be sent to the
37932	// server regardless of whether the field is empty or not. This may be
37933	// used to include empty fields in Patch requests.
37934	ForceSendFields []string `json:"-"`
37935
37936	// NullFields is a list of field names (e.g. "EkCert") to include in API
37937	// requests with the JSON null value. By default, fields with empty
37938	// values are omitted from API requests. However, any field with an
37939	// empty value appearing in NullFields will be sent to the server as
37940	// null. It is an error if a field in this list has a non-empty value.
37941	// This may be used to include null fields in Patch requests.
37942	NullFields []string `json:"-"`
37943}
37944
37945func (s *ShieldedInstanceIdentityEntry) MarshalJSON() ([]byte, error) {
37946	type NoMethod ShieldedInstanceIdentityEntry
37947	raw := NoMethod(*s)
37948	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37949}
37950
37951// ShieldedInstanceIntegrityPolicy: The policy describes the baseline
37952// against which Instance boot integrity is measured.
37953type ShieldedInstanceIntegrityPolicy struct {
37954	// UpdateAutoLearnPolicy: Updates the integrity policy baseline using
37955	// the measurements from the VM instance's most recent boot.
37956	UpdateAutoLearnPolicy bool `json:"updateAutoLearnPolicy,omitempty"`
37957
37958	// ForceSendFields is a list of field names (e.g.
37959	// "UpdateAutoLearnPolicy") to unconditionally include in API requests.
37960	// By default, fields with empty values are omitted from API requests.
37961	// However, any non-pointer, non-interface field appearing in
37962	// ForceSendFields will be sent to the server regardless of whether the
37963	// field is empty or not. This may be used to include empty fields in
37964	// Patch requests.
37965	ForceSendFields []string `json:"-"`
37966
37967	// NullFields is a list of field names (e.g. "UpdateAutoLearnPolicy") to
37968	// include in API requests with the JSON null value. By default, fields
37969	// with empty values are omitted from API requests. However, any field
37970	// with an empty value appearing in NullFields will be sent to the
37971	// server as null. It is an error if a field in this list has a
37972	// non-empty value. This may be used to include null fields in Patch
37973	// requests.
37974	NullFields []string `json:"-"`
37975}
37976
37977func (s *ShieldedInstanceIntegrityPolicy) MarshalJSON() ([]byte, error) {
37978	type NoMethod ShieldedInstanceIntegrityPolicy
37979	raw := NoMethod(*s)
37980	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37981}
37982
37983// ShieldedVmConfig: A set of Shielded VM options.
37984type ShieldedVmConfig struct {
37985	// EnableIntegrityMonitoring: Defines whether the instance has integrity
37986	// monitoring enabled.
37987	EnableIntegrityMonitoring bool `json:"enableIntegrityMonitoring,omitempty"`
37988
37989	// EnableSecureBoot: Defines whether the instance has Secure Boot
37990	// enabled.
37991	EnableSecureBoot bool `json:"enableSecureBoot,omitempty"`
37992
37993	// EnableVtpm: Defines whether the instance has the vTPM enabled.
37994	EnableVtpm bool `json:"enableVtpm,omitempty"`
37995
37996	// ForceSendFields is a list of field names (e.g.
37997	// "EnableIntegrityMonitoring") to unconditionally include in API
37998	// requests. By default, fields with empty values are omitted from API
37999	// requests. However, any non-pointer, non-interface field appearing in
38000	// ForceSendFields will be sent to the server regardless of whether the
38001	// field is empty or not. This may be used to include empty fields in
38002	// Patch requests.
38003	ForceSendFields []string `json:"-"`
38004
38005	// NullFields is a list of field names (e.g.
38006	// "EnableIntegrityMonitoring") to include in API requests with the JSON
38007	// null value. By default, fields with empty values are omitted from API
38008	// requests. However, any field with an empty value appearing in
38009	// NullFields will be sent to the server as null. It is an error if a
38010	// field in this list has a non-empty value. This may be used to include
38011	// null fields in Patch requests.
38012	NullFields []string `json:"-"`
38013}
38014
38015func (s *ShieldedVmConfig) MarshalJSON() ([]byte, error) {
38016	type NoMethod ShieldedVmConfig
38017	raw := NoMethod(*s)
38018	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38019}
38020
38021// ShieldedVmIdentity: A shielded VM identity entry.
38022type ShieldedVmIdentity struct {
38023	// EncryptionKey: An Endorsement Key (EK) issued to the Shielded VM's
38024	// vTPM.
38025	EncryptionKey *ShieldedVmIdentityEntry `json:"encryptionKey,omitempty"`
38026
38027	// Kind: [Output Only] Type of the resource. Always
38028	// compute#shieldedVmIdentity for shielded VM identity entry.
38029	Kind string `json:"kind,omitempty"`
38030
38031	// SigningKey: An Attestation Key (AK) issued to the Shielded VM's vTPM.
38032	SigningKey *ShieldedVmIdentityEntry `json:"signingKey,omitempty"`
38033
38034	// ServerResponse contains the HTTP response code and headers from the
38035	// server.
38036	googleapi.ServerResponse `json:"-"`
38037
38038	// ForceSendFields is a list of field names (e.g. "EncryptionKey") to
38039	// unconditionally include in API requests. By default, fields with
38040	// empty values are omitted from API requests. However, any non-pointer,
38041	// non-interface field appearing in ForceSendFields will be sent to the
38042	// server regardless of whether the field is empty or not. This may be
38043	// used to include empty fields in Patch requests.
38044	ForceSendFields []string `json:"-"`
38045
38046	// NullFields is a list of field names (e.g. "EncryptionKey") to include
38047	// in API requests with the JSON null value. By default, fields with
38048	// empty values are omitted from API requests. However, any field with
38049	// an empty value appearing in NullFields will be sent to the server as
38050	// null. It is an error if a field in this list has a non-empty value.
38051	// This may be used to include null fields in Patch requests.
38052	NullFields []string `json:"-"`
38053}
38054
38055func (s *ShieldedVmIdentity) MarshalJSON() ([]byte, error) {
38056	type NoMethod ShieldedVmIdentity
38057	raw := NoMethod(*s)
38058	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38059}
38060
38061// ShieldedVmIdentityEntry: A Shielded Instance Identity Entry.
38062type ShieldedVmIdentityEntry struct {
38063	// EkCert: A PEM-encoded X.509 certificate. This field can be empty.
38064	EkCert string `json:"ekCert,omitempty"`
38065
38066	// EkPub: A PEM-encoded public key.
38067	EkPub string `json:"ekPub,omitempty"`
38068
38069	// ForceSendFields is a list of field names (e.g. "EkCert") to
38070	// unconditionally include in API requests. By default, fields with
38071	// empty values are omitted from API requests. However, any non-pointer,
38072	// non-interface field appearing in ForceSendFields will be sent to the
38073	// server regardless of whether the field is empty or not. This may be
38074	// used to include empty fields in Patch requests.
38075	ForceSendFields []string `json:"-"`
38076
38077	// NullFields is a list of field names (e.g. "EkCert") to include in API
38078	// requests with the JSON null value. By default, fields with empty
38079	// values are omitted from API requests. However, any field with an
38080	// empty value appearing in NullFields will be sent to the server as
38081	// null. It is an error if a field in this list has a non-empty value.
38082	// This may be used to include null fields in Patch requests.
38083	NullFields []string `json:"-"`
38084}
38085
38086func (s *ShieldedVmIdentityEntry) MarshalJSON() ([]byte, error) {
38087	type NoMethod ShieldedVmIdentityEntry
38088	raw := NoMethod(*s)
38089	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38090}
38091
38092// ShieldedVmIntegrityPolicy: The policy describes the baseline against
38093// which VM instance boot integrity is measured.
38094type ShieldedVmIntegrityPolicy struct {
38095	// UpdateAutoLearnPolicy: Updates the integrity policy baseline using
38096	// the measurements from the VM instance's most recent boot.
38097	UpdateAutoLearnPolicy bool `json:"updateAutoLearnPolicy,omitempty"`
38098
38099	// ForceSendFields is a list of field names (e.g.
38100	// "UpdateAutoLearnPolicy") to unconditionally include in API requests.
38101	// By default, fields with empty values are omitted from API requests.
38102	// However, any non-pointer, non-interface field appearing in
38103	// ForceSendFields will be sent to the server regardless of whether the
38104	// field is empty or not. This may be used to include empty fields in
38105	// Patch requests.
38106	ForceSendFields []string `json:"-"`
38107
38108	// NullFields is a list of field names (e.g. "UpdateAutoLearnPolicy") to
38109	// include in API requests with the JSON null value. By default, fields
38110	// with empty values are omitted from API requests. However, any field
38111	// with an empty value appearing in NullFields will be sent to the
38112	// server as null. It is an error if a field in this list has a
38113	// non-empty value. This may be used to include null fields in Patch
38114	// requests.
38115	NullFields []string `json:"-"`
38116}
38117
38118func (s *ShieldedVmIntegrityPolicy) MarshalJSON() ([]byte, error) {
38119	type NoMethod ShieldedVmIntegrityPolicy
38120	raw := NoMethod(*s)
38121	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38122}
38123
38124// SignedUrlKey: Represents a customer-supplied Signing Key used by
38125// Cloud CDN Signed URLs
38126type SignedUrlKey struct {
38127	// KeyName: Name of the key. The name must be 1-63 characters long, and
38128	// comply with RFC1035. Specifically, the name must be 1-63 characters
38129	// long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
38130	// which means the first character must be a lowercase letter, and all
38131	// following characters must be a dash, lowercase letter, or digit,
38132	// except the last character, which cannot be a dash.
38133	KeyName string `json:"keyName,omitempty"`
38134
38135	// KeyValue: 128-bit key value used for signing the URL. The key value
38136	// must be a valid RFC 4648 Section 5 base64url encoded string.
38137	KeyValue string `json:"keyValue,omitempty"`
38138
38139	// ForceSendFields is a list of field names (e.g. "KeyName") to
38140	// unconditionally include in API requests. By default, fields with
38141	// empty values are omitted from API requests. However, any non-pointer,
38142	// non-interface field appearing in ForceSendFields will be sent to the
38143	// server regardless of whether the field is empty or not. This may be
38144	// used to include empty fields in Patch requests.
38145	ForceSendFields []string `json:"-"`
38146
38147	// NullFields is a list of field names (e.g. "KeyName") to include in
38148	// API requests with the JSON null value. By default, fields with empty
38149	// values are omitted from API requests. However, any field with an
38150	// empty value appearing in NullFields will be sent to the server as
38151	// null. It is an error if a field in this list has a non-empty value.
38152	// This may be used to include null fields in Patch requests.
38153	NullFields []string `json:"-"`
38154}
38155
38156func (s *SignedUrlKey) MarshalJSON() ([]byte, error) {
38157	type NoMethod SignedUrlKey
38158	raw := NoMethod(*s)
38159	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38160}
38161
38162// Snapshot: Represents a Persistent Disk Snapshot resource.
38163//
38164// You can use snapshots to back up data on a regular interval. For more
38165// information, read  Creating persistent disk snapshots. (==
38166// resource_for {$api_version}.snapshots ==)
38167type Snapshot struct {
38168	// AutoCreated: [Output Only] Set to true if snapshots are automatically
38169	// created by applying resource policy on the target disk.
38170	AutoCreated bool `json:"autoCreated,omitempty"`
38171
38172	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
38173	// format.
38174	CreationTimestamp string `json:"creationTimestamp,omitempty"`
38175
38176	// Description: An optional description of this resource. Provide this
38177	// property when you create the resource.
38178	Description string `json:"description,omitempty"`
38179
38180	// DiskSizeGb: [Output Only] Size of the source disk, specified in GB.
38181	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
38182
38183	// DownloadBytes: [Output Only] Number of bytes downloaded to restore a
38184	// snapshot to a disk.
38185	DownloadBytes int64 `json:"downloadBytes,omitempty,string"`
38186
38187	// GuestOsFeatures: [Output Only] A list of features to enable on the
38188	// guest operating system. Applicable only for bootable images. Read
38189	// Enabling guest operating system features to see a list of available
38190	// options.
38191	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
38192
38193	// Id: [Output Only] The unique identifier for the resource. This
38194	// identifier is defined by the server.
38195	Id uint64 `json:"id,omitempty,string"`
38196
38197	// Kind: [Output Only] Type of the resource. Always compute#snapshot for
38198	// Snapshot resources.
38199	Kind string `json:"kind,omitempty"`
38200
38201	// LabelFingerprint: A fingerprint for the labels being applied to this
38202	// snapshot, which is essentially a hash of the labels set used for
38203	// optimistic locking. The fingerprint is initially generated by Compute
38204	// Engine and changes after every request to modify or update labels.
38205	// You must always provide an up-to-date fingerprint hash in order to
38206	// update or change labels, otherwise the request will fail with error
38207	// 412 conditionNotMet.
38208	//
38209	// To see the latest fingerprint, make a get() request to retrieve a
38210	// snapshot.
38211	LabelFingerprint string `json:"labelFingerprint,omitempty"`
38212
38213	// Labels: Labels to apply to this snapshot. These can be later modified
38214	// by the setLabels method. Label values may be empty.
38215	Labels map[string]string `json:"labels,omitempty"`
38216
38217	// LicenseCodes: [Output Only] Integer license codes indicating which
38218	// licenses are attached to this snapshot.
38219	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
38220
38221	// Licenses: [Output Only] A list of public visible licenses that apply
38222	// to this snapshot. This can be because the original image had licenses
38223	// attached (such as a Windows image).
38224	Licenses []string `json:"licenses,omitempty"`
38225
38226	// Name: Name of the resource; provided by the client when the resource
38227	// is created. The name must be 1-63 characters long, and comply with
38228	// RFC1035. Specifically, the name must be 1-63 characters long and
38229	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
38230	// the first character must be a lowercase letter, and all following
38231	// characters must be a dash, lowercase letter, or digit, except the
38232	// last character, which cannot be a dash.
38233	Name string `json:"name,omitempty"`
38234
38235	// SelfLink: [Output Only] Server-defined URL for the resource.
38236	SelfLink string `json:"selfLink,omitempty"`
38237
38238	// SelfLinkWithId: [Output Only] Server-defined URL for this resource's
38239	// resource id.
38240	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
38241
38242	// SnapshotEncryptionKey: Encrypts the snapshot using a
38243	// customer-supplied encryption key.
38244	//
38245	// After you encrypt a snapshot using a customer-supplied key, you must
38246	// provide the same key if you use the snapshot later. For example, you
38247	// must provide the encryption key when you create a disk from the
38248	// encrypted snapshot in a future request.
38249	//
38250	// Customer-supplied encryption keys do not protect access to metadata
38251	// of the snapshot.
38252	//
38253	// If you do not provide an encryption key when creating the snapshot,
38254	// then the snapshot will be encrypted using an automatically generated
38255	// key and you do not need to provide a key to use the snapshot later.
38256	SnapshotEncryptionKey *CustomerEncryptionKey `json:"snapshotEncryptionKey,omitempty"`
38257
38258	// SourceDisk: [Output Only] The source disk used to create this
38259	// snapshot.
38260	SourceDisk string `json:"sourceDisk,omitempty"`
38261
38262	// SourceDiskEncryptionKey: The customer-supplied encryption key of the
38263	// source disk. Required if the source disk is protected by a
38264	// customer-supplied encryption key.
38265	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
38266
38267	// SourceDiskId: [Output Only] The ID value of the disk used to create
38268	// this snapshot. This value may be used to determine whether the
38269	// snapshot was taken from the current or a previous instance of a given
38270	// disk name.
38271	SourceDiskId string `json:"sourceDiskId,omitempty"`
38272
38273	// Status: [Output Only] The status of the snapshot. This can be
38274	// CREATING, DELETING, FAILED, READY, or UPLOADING.
38275	//
38276	// Possible values:
38277	//   "CREATING"
38278	//   "DELETING"
38279	//   "FAILED"
38280	//   "READY"
38281	//   "UPLOADING"
38282	Status string `json:"status,omitempty"`
38283
38284	// StorageBytes: [Output Only] A size of the storage used by the
38285	// snapshot. As snapshots share storage, this number is expected to
38286	// change with snapshot creation/deletion.
38287	StorageBytes int64 `json:"storageBytes,omitempty,string"`
38288
38289	// StorageBytesStatus: [Output Only] An indicator whether storageBytes
38290	// is in a stable state or it is being adjusted as a result of shared
38291	// storage reallocation. This status can either be UPDATING, meaning the
38292	// size of the snapshot is being updated, or UP_TO_DATE, meaning the
38293	// size of the snapshot is up-to-date.
38294	//
38295	// Possible values:
38296	//   "UPDATING"
38297	//   "UP_TO_DATE"
38298	StorageBytesStatus string `json:"storageBytesStatus,omitempty"`
38299
38300	// StorageLocations: Cloud Storage bucket storage location of the
38301	// snapshot (regional or multi-regional).
38302	StorageLocations []string `json:"storageLocations,omitempty"`
38303
38304	// ServerResponse contains the HTTP response code and headers from the
38305	// server.
38306	googleapi.ServerResponse `json:"-"`
38307
38308	// ForceSendFields is a list of field names (e.g. "AutoCreated") to
38309	// unconditionally include in API requests. By default, fields with
38310	// empty values are omitted from API requests. However, any non-pointer,
38311	// non-interface field appearing in ForceSendFields will be sent to the
38312	// server regardless of whether the field is empty or not. This may be
38313	// used to include empty fields in Patch requests.
38314	ForceSendFields []string `json:"-"`
38315
38316	// NullFields is a list of field names (e.g. "AutoCreated") to include
38317	// in API requests with the JSON null value. By default, fields with
38318	// empty values are omitted from API requests. However, any field with
38319	// an empty value appearing in NullFields will be sent to the server as
38320	// null. It is an error if a field in this list has a non-empty value.
38321	// This may be used to include null fields in Patch requests.
38322	NullFields []string `json:"-"`
38323}
38324
38325func (s *Snapshot) MarshalJSON() ([]byte, error) {
38326	type NoMethod Snapshot
38327	raw := NoMethod(*s)
38328	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38329}
38330
38331// SnapshotList: Contains a list of Snapshot resources.
38332type SnapshotList struct {
38333	// Id: [Output Only] Unique identifier for the resource; defined by the
38334	// server.
38335	Id string `json:"id,omitempty"`
38336
38337	// Items: A list of Snapshot resources.
38338	Items []*Snapshot `json:"items,omitempty"`
38339
38340	// Kind: Type of resource.
38341	Kind string `json:"kind,omitempty"`
38342
38343	// NextPageToken: [Output Only] This token allows you to get the next
38344	// page of results for list requests. If the number of results is larger
38345	// than maxResults, use the nextPageToken as a value for the query
38346	// parameter pageToken in the next list request. Subsequent list
38347	// requests will have their own nextPageToken to continue paging through
38348	// the results.
38349	NextPageToken string `json:"nextPageToken,omitempty"`
38350
38351	// SelfLink: [Output Only] Server-defined URL for this resource.
38352	SelfLink string `json:"selfLink,omitempty"`
38353
38354	// Warning: [Output Only] Informational warning message.
38355	Warning *SnapshotListWarning `json:"warning,omitempty"`
38356
38357	// ServerResponse contains the HTTP response code and headers from the
38358	// server.
38359	googleapi.ServerResponse `json:"-"`
38360
38361	// ForceSendFields is a list of field names (e.g. "Id") to
38362	// unconditionally include in API requests. By default, fields with
38363	// empty values are omitted from API requests. However, any non-pointer,
38364	// non-interface field appearing in ForceSendFields will be sent to the
38365	// server regardless of whether the field is empty or not. This may be
38366	// used to include empty fields in Patch requests.
38367	ForceSendFields []string `json:"-"`
38368
38369	// NullFields is a list of field names (e.g. "Id") to include in API
38370	// requests with the JSON null value. By default, fields with empty
38371	// values are omitted from API requests. However, any field with an
38372	// empty value appearing in NullFields will be sent to the server as
38373	// null. It is an error if a field in this list has a non-empty value.
38374	// This may be used to include null fields in Patch requests.
38375	NullFields []string `json:"-"`
38376}
38377
38378func (s *SnapshotList) MarshalJSON() ([]byte, error) {
38379	type NoMethod SnapshotList
38380	raw := NoMethod(*s)
38381	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38382}
38383
38384// SnapshotListWarning: [Output Only] Informational warning message.
38385type SnapshotListWarning struct {
38386	// Code: [Output Only] A warning code, if applicable. For example,
38387	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38388	// the response.
38389	//
38390	// Possible values:
38391	//   "CLEANUP_FAILED"
38392	//   "DEPRECATED_RESOURCE_USED"
38393	//   "DEPRECATED_TYPE_USED"
38394	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
38395	//   "EXPERIMENTAL_TYPE_USED"
38396	//   "EXTERNAL_API_WARNING"
38397	//   "FIELD_VALUE_OVERRIDEN"
38398	//   "INJECTED_KERNELS_DEPRECATED"
38399	//   "MISSING_TYPE_DEPENDENCY"
38400	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
38401	//   "NEXT_HOP_CANNOT_IP_FORWARD"
38402	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
38403	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
38404	//   "NEXT_HOP_NOT_RUNNING"
38405	//   "NOT_CRITICAL_ERROR"
38406	//   "NO_RESULTS_ON_PAGE"
38407	//   "REQUIRED_TOS_AGREEMENT"
38408	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
38409	//   "RESOURCE_NOT_DELETED"
38410	//   "SCHEMA_VALIDATION_IGNORED"
38411	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
38412	//   "UNDECLARED_PROPERTIES"
38413	//   "UNREACHABLE"
38414	Code string `json:"code,omitempty"`
38415
38416	// Data: [Output Only] Metadata about this warning in key: value format.
38417	// For example:
38418	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
38419	Data []*SnapshotListWarningData `json:"data,omitempty"`
38420
38421	// Message: [Output Only] A human-readable description of the warning
38422	// code.
38423	Message string `json:"message,omitempty"`
38424
38425	// ForceSendFields is a list of field names (e.g. "Code") to
38426	// unconditionally include in API requests. By default, fields with
38427	// empty values are omitted from API requests. However, any non-pointer,
38428	// non-interface field appearing in ForceSendFields will be sent to the
38429	// server regardless of whether the field is empty or not. This may be
38430	// used to include empty fields in Patch requests.
38431	ForceSendFields []string `json:"-"`
38432
38433	// NullFields is a list of field names (e.g. "Code") to include in API
38434	// requests with the JSON null value. By default, fields with empty
38435	// values are omitted from API requests. However, any field with an
38436	// empty value appearing in NullFields will be sent to the server as
38437	// null. It is an error if a field in this list has a non-empty value.
38438	// This may be used to include null fields in Patch requests.
38439	NullFields []string `json:"-"`
38440}
38441
38442func (s *SnapshotListWarning) MarshalJSON() ([]byte, error) {
38443	type NoMethod SnapshotListWarning
38444	raw := NoMethod(*s)
38445	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38446}
38447
38448type SnapshotListWarningData struct {
38449	// Key: [Output Only] A key that provides more detail on the warning
38450	// being returned. For example, for warnings where there are no results
38451	// in a list request for a particular zone, this key might be scope and
38452	// the key value might be the zone name. Other examples might be a key
38453	// indicating a deprecated resource and a suggested replacement, or a
38454	// warning about invalid network settings (for example, if an instance
38455	// attempts to perform IP forwarding but is not enabled for IP
38456	// forwarding).
38457	Key string `json:"key,omitempty"`
38458
38459	// Value: [Output Only] A warning data value corresponding to the key.
38460	Value string `json:"value,omitempty"`
38461
38462	// ForceSendFields is a list of field names (e.g. "Key") to
38463	// unconditionally include in API requests. By default, fields with
38464	// empty values are omitted from API requests. However, any non-pointer,
38465	// non-interface field appearing in ForceSendFields will be sent to the
38466	// server regardless of whether the field is empty or not. This may be
38467	// used to include empty fields in Patch requests.
38468	ForceSendFields []string `json:"-"`
38469
38470	// NullFields is a list of field names (e.g. "Key") to include in API
38471	// requests with the JSON null value. By default, fields with empty
38472	// values are omitted from API requests. However, any field with an
38473	// empty value appearing in NullFields will be sent to the server as
38474	// null. It is an error if a field in this list has a non-empty value.
38475	// This may be used to include null fields in Patch requests.
38476	NullFields []string `json:"-"`
38477}
38478
38479func (s *SnapshotListWarningData) MarshalJSON() ([]byte, error) {
38480	type NoMethod SnapshotListWarningData
38481	raw := NoMethod(*s)
38482	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38483}
38484
38485type SourceDiskEncryptionKey struct {
38486	// DiskEncryptionKey: The customer-supplied encryption key of the source
38487	// disk. Required if the source disk is protected by a customer-supplied
38488	// encryption key.
38489	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
38490
38491	// SourceDisk: URL of the disk attached to the source instance. This can
38492	// be a full or valid partial URL. For example, the following are valid
38493	// values:
38494	// -
38495	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
38496	// - projects/project/zones/zone/disks/disk
38497	// - zones/zone/disks/disk
38498	SourceDisk string `json:"sourceDisk,omitempty"`
38499
38500	// ForceSendFields is a list of field names (e.g. "DiskEncryptionKey")
38501	// to unconditionally include in API requests. By default, fields with
38502	// empty values are omitted from API requests. However, any non-pointer,
38503	// non-interface field appearing in ForceSendFields will be sent to the
38504	// server regardless of whether the field is empty or not. This may be
38505	// used to include empty fields in Patch requests.
38506	ForceSendFields []string `json:"-"`
38507
38508	// NullFields is a list of field names (e.g. "DiskEncryptionKey") to
38509	// include in API requests with the JSON null value. By default, fields
38510	// with empty values are omitted from API requests. However, any field
38511	// with an empty value appearing in NullFields will be sent to the
38512	// server as null. It is an error if a field in this list has a
38513	// non-empty value. This may be used to include null fields in Patch
38514	// requests.
38515	NullFields []string `json:"-"`
38516}
38517
38518func (s *SourceDiskEncryptionKey) MarshalJSON() ([]byte, error) {
38519	type NoMethod SourceDiskEncryptionKey
38520	raw := NoMethod(*s)
38521	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38522}
38523
38524// SourceInstanceParams: A specification of the parameters to use when
38525// creating the instance template from a source instance.
38526type SourceInstanceParams struct {
38527	// DiskConfigs: Attached disks configuration. If not provided, defaults
38528	// are applied: For boot disk and any other R/W disks, new custom images
38529	// will be created from each disk. For read-only disks, they will be
38530	// attached in read-only mode. Local SSD disks will be created as blank
38531	// volumes.
38532	DiskConfigs []*DiskInstantiationConfig `json:"diskConfigs,omitempty"`
38533
38534	// ForceSendFields is a list of field names (e.g. "DiskConfigs") to
38535	// unconditionally include in API requests. By default, fields with
38536	// empty values are omitted from API requests. However, any non-pointer,
38537	// non-interface field appearing in ForceSendFields will be sent to the
38538	// server regardless of whether the field is empty or not. This may be
38539	// used to include empty fields in Patch requests.
38540	ForceSendFields []string `json:"-"`
38541
38542	// NullFields is a list of field names (e.g. "DiskConfigs") to include
38543	// in API requests with the JSON null value. By default, fields with
38544	// empty values are omitted from API requests. However, any field with
38545	// an empty value appearing in NullFields will be sent to the server as
38546	// null. It is an error if a field in this list has a non-empty value.
38547	// This may be used to include null fields in Patch requests.
38548	NullFields []string `json:"-"`
38549}
38550
38551func (s *SourceInstanceParams) MarshalJSON() ([]byte, error) {
38552	type NoMethod SourceInstanceParams
38553	raw := NoMethod(*s)
38554	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38555}
38556
38557type SourceInstanceProperties struct {
38558	// CanIpForward: Enables instances created based on this machine image
38559	// to send packets with source IP addresses other than their own and
38560	// receive packets with destination IP addresses other than their own.
38561	// If these instances will be used as an IP gateway or it will be set as
38562	// the next-hop in a Route resource, specify true. If unsure, leave this
38563	// set to false. See the Enable IP forwarding documentation for more
38564	// information.
38565	CanIpForward bool `json:"canIpForward,omitempty"`
38566
38567	// DeletionProtection: Whether the instance created from this machine
38568	// image should be protected against deletion.
38569	DeletionProtection bool `json:"deletionProtection,omitempty"`
38570
38571	// Description: An optional text description for the instances that are
38572	// created from this machine image.
38573	Description string `json:"description,omitempty"`
38574
38575	// Disks: An array of disks that are associated with the instances that
38576	// are created from this machine image.
38577	Disks []*SavedAttachedDisk `json:"disks,omitempty"`
38578
38579	// GuestAccelerators: A list of guest accelerator cards' type and count
38580	// to use for instances created from this machine image.
38581	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
38582
38583	// Labels: Labels to apply to instances that are created from this
38584	// machine image.
38585	Labels map[string]string `json:"labels,omitempty"`
38586
38587	// MachineType: The machine type to use for instances that are created
38588	// from this machine image.
38589	MachineType string `json:"machineType,omitempty"`
38590
38591	// Metadata: The metadata key/value pairs to assign to instances that
38592	// are created from this machine image. These pairs can consist of
38593	// custom metadata or predefined keys. See Project and instance metadata
38594	// for more information.
38595	Metadata *Metadata `json:"metadata,omitempty"`
38596
38597	// MinCpuPlatform: Minimum cpu/platform to be used by instances created
38598	// from this machine image. The instance may be scheduled on the
38599	// specified or newer cpu/platform. Applicable values are the friendly
38600	// names of CPU platforms, such as minCpuPlatform: "Intel Haswell" or
38601	// minCpuPlatform: "Intel Sandy Bridge". For more information, read
38602	// Specifying a Minimum CPU Platform.
38603	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
38604
38605	// NetworkInterfaces: An array of network access configurations for this
38606	// interface.
38607	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
38608
38609	// Scheduling: Specifies the scheduling options for the instances that
38610	// are created from this machine image.
38611	Scheduling *Scheduling `json:"scheduling,omitempty"`
38612
38613	// ServiceAccounts: A list of service accounts with specified scopes.
38614	// Access tokens for these service accounts are available to the
38615	// instances that are created from this machine image. Use metadata
38616	// queries to obtain the access tokens for these instances.
38617	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
38618
38619	// Tags: A list of tags to apply to the instances that are created from
38620	// this machine image. The tags identify valid sources or targets for
38621	// network firewalls. The setTags method can modify this list of tags.
38622	// Each tag within the list must comply with RFC1035.
38623	Tags *Tags `json:"tags,omitempty"`
38624
38625	// ForceSendFields is a list of field names (e.g. "CanIpForward") to
38626	// unconditionally include in API requests. By default, fields with
38627	// empty values are omitted from API requests. However, any non-pointer,
38628	// non-interface field appearing in ForceSendFields will be sent to the
38629	// server regardless of whether the field is empty or not. This may be
38630	// used to include empty fields in Patch requests.
38631	ForceSendFields []string `json:"-"`
38632
38633	// NullFields is a list of field names (e.g. "CanIpForward") to include
38634	// in API requests with the JSON null value. By default, fields with
38635	// empty values are omitted from API requests. However, any field with
38636	// an empty value appearing in NullFields will be sent to the server as
38637	// null. It is an error if a field in this list has a non-empty value.
38638	// This may be used to include null fields in Patch requests.
38639	NullFields []string `json:"-"`
38640}
38641
38642func (s *SourceInstanceProperties) MarshalJSON() ([]byte, error) {
38643	type NoMethod SourceInstanceProperties
38644	raw := NoMethod(*s)
38645	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38646}
38647
38648// SslCertificate: Represents an SSL Certificate resource.
38649//
38650// Google Compute Engine has two SSL Certificate resources:
38651//
38652// * [Global](/compute/docs/reference/rest/latest/sslCertificates) *
38653// [Regional](/compute/docs/reference/rest/latest/regionSslCertificates)
38654//
38655//
38656// - sslCertificates are used by: - external HTTPS load balancers - SSL
38657// proxy load balancers
38658//
38659// - regionSslCertificates are used by: - internal HTTPS load
38660// balancers
38661//
38662// This SSL certificate resource also contains a private key. You can
38663// use SSL keys and certificates to secure connections to a load
38664// balancer. For more information, read  Creating and Using SSL
38665// Certificates. (== resource_for {$api_version}.sslCertificates ==) (==
38666// resource_for {$api_version}.regionSslCertificates ==) Next ID: 17
38667type SslCertificate struct {
38668	// Certificate: A local certificate file. The certificate must be in PEM
38669	// format. The certificate chain must be no greater than 5 certs long.
38670	// The chain must include at least one intermediate cert.
38671	Certificate string `json:"certificate,omitempty"`
38672
38673	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
38674	// format.
38675	CreationTimestamp string `json:"creationTimestamp,omitempty"`
38676
38677	// Description: An optional description of this resource. Provide this
38678	// property when you create the resource.
38679	Description string `json:"description,omitempty"`
38680
38681	// ExpireTime: [Output Only] Expire time of the certificate. RFC3339
38682	ExpireTime string `json:"expireTime,omitempty"`
38683
38684	// Id: [Output Only] The unique identifier for the resource. This
38685	// identifier is defined by the server.
38686	Id uint64 `json:"id,omitempty,string"`
38687
38688	// Kind: [Output Only] Type of the resource. Always
38689	// compute#sslCertificate for SSL certificates.
38690	Kind string `json:"kind,omitempty"`
38691
38692	// Managed: Configuration and status of a managed SSL certificate.
38693	Managed *SslCertificateManagedSslCertificate `json:"managed,omitempty"`
38694
38695	// Name: Name of the resource. Provided by the client when the resource
38696	// is created. The name must be 1-63 characters long, and comply with
38697	// RFC1035. Specifically, the name must be 1-63 characters long and
38698	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
38699	// the first character must be a lowercase letter, and all following
38700	// characters must be a dash, lowercase letter, or digit, except the
38701	// last character, which cannot be a dash.
38702	Name string `json:"name,omitempty"`
38703
38704	// PrivateKey: A write-only private key in PEM format. Only insert
38705	// requests will include this field.
38706	PrivateKey string `json:"privateKey,omitempty"`
38707
38708	// Region: [Output Only] URL of the region where the regional SSL
38709	// Certificate resides. This field is not applicable to global SSL
38710	// Certificate.
38711	Region string `json:"region,omitempty"`
38712
38713	// SelfLink: [Output only] Server-defined URL for the resource.
38714	SelfLink string `json:"selfLink,omitempty"`
38715
38716	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
38717	// with the resource id.
38718	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
38719
38720	// SelfManaged: Configuration and status of a self-managed SSL
38721	// certificate.
38722	SelfManaged *SslCertificateSelfManagedSslCertificate `json:"selfManaged,omitempty"`
38723
38724	// SubjectAlternativeNames: [Output Only] Domains associated with the
38725	// certificate via Subject Alternative Name.
38726	SubjectAlternativeNames []string `json:"subjectAlternativeNames,omitempty"`
38727
38728	// Type: (Optional) Specifies the type of SSL certificate, either
38729	// "SELF_MANAGED" or "MANAGED". If not specified, the certificate is
38730	// self-managed and the fields certificate and private_key are used.
38731	//
38732	// Possible values:
38733	//   "MANAGED"
38734	//   "SELF_MANAGED"
38735	//   "TYPE_UNSPECIFIED"
38736	Type string `json:"type,omitempty"`
38737
38738	// ServerResponse contains the HTTP response code and headers from the
38739	// server.
38740	googleapi.ServerResponse `json:"-"`
38741
38742	// ForceSendFields is a list of field names (e.g. "Certificate") to
38743	// unconditionally include in API requests. By default, fields with
38744	// empty values are omitted from API requests. However, any non-pointer,
38745	// non-interface field appearing in ForceSendFields will be sent to the
38746	// server regardless of whether the field is empty or not. This may be
38747	// used to include empty fields in Patch requests.
38748	ForceSendFields []string `json:"-"`
38749
38750	// NullFields is a list of field names (e.g. "Certificate") to include
38751	// in API requests with the JSON null value. By default, fields with
38752	// empty values are omitted from API requests. However, any field with
38753	// an empty value appearing in NullFields will be sent to the server as
38754	// null. It is an error if a field in this list has a non-empty value.
38755	// This may be used to include null fields in Patch requests.
38756	NullFields []string `json:"-"`
38757}
38758
38759func (s *SslCertificate) MarshalJSON() ([]byte, error) {
38760	type NoMethod SslCertificate
38761	raw := NoMethod(*s)
38762	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38763}
38764
38765type SslCertificateAggregatedList struct {
38766	// Id: [Output Only] Unique identifier for the resource; defined by the
38767	// server.
38768	Id string `json:"id,omitempty"`
38769
38770	// Items: A list of SslCertificatesScopedList resources.
38771	Items map[string]SslCertificatesScopedList `json:"items,omitempty"`
38772
38773	// Kind: [Output Only] Type of resource. Always
38774	// compute#sslCertificateAggregatedList for lists of SSL Certificates.
38775	Kind string `json:"kind,omitempty"`
38776
38777	// NextPageToken: [Output Only] This token allows you to get the next
38778	// page of results for list requests. If the number of results is larger
38779	// than maxResults, use the nextPageToken as a value for the query
38780	// parameter pageToken in the next list request. Subsequent list
38781	// requests will have their own nextPageToken to continue paging through
38782	// the results.
38783	NextPageToken string `json:"nextPageToken,omitempty"`
38784
38785	// SelfLink: [Output Only] Server-defined URL for this resource.
38786	SelfLink string `json:"selfLink,omitempty"`
38787
38788	// Warning: [Output Only] Informational warning message.
38789	Warning *SslCertificateAggregatedListWarning `json:"warning,omitempty"`
38790
38791	// ServerResponse contains the HTTP response code and headers from the
38792	// server.
38793	googleapi.ServerResponse `json:"-"`
38794
38795	// ForceSendFields is a list of field names (e.g. "Id") to
38796	// unconditionally include in API requests. By default, fields with
38797	// empty values are omitted from API requests. However, any non-pointer,
38798	// non-interface field appearing in ForceSendFields will be sent to the
38799	// server regardless of whether the field is empty or not. This may be
38800	// used to include empty fields in Patch requests.
38801	ForceSendFields []string `json:"-"`
38802
38803	// NullFields is a list of field names (e.g. "Id") to include in API
38804	// requests with the JSON null value. By default, fields with empty
38805	// values are omitted from API requests. However, any field with an
38806	// empty value appearing in NullFields will be sent to the server as
38807	// null. It is an error if a field in this list has a non-empty value.
38808	// This may be used to include null fields in Patch requests.
38809	NullFields []string `json:"-"`
38810}
38811
38812func (s *SslCertificateAggregatedList) MarshalJSON() ([]byte, error) {
38813	type NoMethod SslCertificateAggregatedList
38814	raw := NoMethod(*s)
38815	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38816}
38817
38818// SslCertificateAggregatedListWarning: [Output Only] Informational
38819// warning message.
38820type SslCertificateAggregatedListWarning struct {
38821	// Code: [Output Only] A warning code, if applicable. For example,
38822	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38823	// the response.
38824	//
38825	// Possible values:
38826	//   "CLEANUP_FAILED"
38827	//   "DEPRECATED_RESOURCE_USED"
38828	//   "DEPRECATED_TYPE_USED"
38829	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
38830	//   "EXPERIMENTAL_TYPE_USED"
38831	//   "EXTERNAL_API_WARNING"
38832	//   "FIELD_VALUE_OVERRIDEN"
38833	//   "INJECTED_KERNELS_DEPRECATED"
38834	//   "MISSING_TYPE_DEPENDENCY"
38835	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
38836	//   "NEXT_HOP_CANNOT_IP_FORWARD"
38837	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
38838	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
38839	//   "NEXT_HOP_NOT_RUNNING"
38840	//   "NOT_CRITICAL_ERROR"
38841	//   "NO_RESULTS_ON_PAGE"
38842	//   "REQUIRED_TOS_AGREEMENT"
38843	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
38844	//   "RESOURCE_NOT_DELETED"
38845	//   "SCHEMA_VALIDATION_IGNORED"
38846	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
38847	//   "UNDECLARED_PROPERTIES"
38848	//   "UNREACHABLE"
38849	Code string `json:"code,omitempty"`
38850
38851	// Data: [Output Only] Metadata about this warning in key: value format.
38852	// For example:
38853	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
38854	Data []*SslCertificateAggregatedListWarningData `json:"data,omitempty"`
38855
38856	// Message: [Output Only] A human-readable description of the warning
38857	// code.
38858	Message string `json:"message,omitempty"`
38859
38860	// ForceSendFields is a list of field names (e.g. "Code") to
38861	// unconditionally include in API requests. By default, fields with
38862	// empty values are omitted from API requests. However, any non-pointer,
38863	// non-interface field appearing in ForceSendFields will be sent to the
38864	// server regardless of whether the field is empty or not. This may be
38865	// used to include empty fields in Patch requests.
38866	ForceSendFields []string `json:"-"`
38867
38868	// NullFields is a list of field names (e.g. "Code") to include in API
38869	// requests with the JSON null value. By default, fields with empty
38870	// values are omitted from API requests. However, any field with an
38871	// empty value appearing in NullFields will be sent to the server as
38872	// null. It is an error if a field in this list has a non-empty value.
38873	// This may be used to include null fields in Patch requests.
38874	NullFields []string `json:"-"`
38875}
38876
38877func (s *SslCertificateAggregatedListWarning) MarshalJSON() ([]byte, error) {
38878	type NoMethod SslCertificateAggregatedListWarning
38879	raw := NoMethod(*s)
38880	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38881}
38882
38883type SslCertificateAggregatedListWarningData struct {
38884	// Key: [Output Only] A key that provides more detail on the warning
38885	// being returned. For example, for warnings where there are no results
38886	// in a list request for a particular zone, this key might be scope and
38887	// the key value might be the zone name. Other examples might be a key
38888	// indicating a deprecated resource and a suggested replacement, or a
38889	// warning about invalid network settings (for example, if an instance
38890	// attempts to perform IP forwarding but is not enabled for IP
38891	// forwarding).
38892	Key string `json:"key,omitempty"`
38893
38894	// Value: [Output Only] A warning data value corresponding to the key.
38895	Value string `json:"value,omitempty"`
38896
38897	// ForceSendFields is a list of field names (e.g. "Key") to
38898	// unconditionally include in API requests. By default, fields with
38899	// empty values are omitted from API requests. However, any non-pointer,
38900	// non-interface field appearing in ForceSendFields will be sent to the
38901	// server regardless of whether the field is empty or not. This may be
38902	// used to include empty fields in Patch requests.
38903	ForceSendFields []string `json:"-"`
38904
38905	// NullFields is a list of field names (e.g. "Key") to include in API
38906	// requests with the JSON null value. By default, fields with empty
38907	// values are omitted from API requests. However, any field with an
38908	// empty value appearing in NullFields will be sent to the server as
38909	// null. It is an error if a field in this list has a non-empty value.
38910	// This may be used to include null fields in Patch requests.
38911	NullFields []string `json:"-"`
38912}
38913
38914func (s *SslCertificateAggregatedListWarningData) MarshalJSON() ([]byte, error) {
38915	type NoMethod SslCertificateAggregatedListWarningData
38916	raw := NoMethod(*s)
38917	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38918}
38919
38920// SslCertificateList: Contains a list of SslCertificate resources.
38921type SslCertificateList struct {
38922	// Id: [Output Only] Unique identifier for the resource; defined by the
38923	// server.
38924	Id string `json:"id,omitempty"`
38925
38926	// Items: A list of SslCertificate resources.
38927	Items []*SslCertificate `json:"items,omitempty"`
38928
38929	// Kind: Type of resource.
38930	Kind string `json:"kind,omitempty"`
38931
38932	// NextPageToken: [Output Only] This token allows you to get the next
38933	// page of results for list requests. If the number of results is larger
38934	// than maxResults, use the nextPageToken as a value for the query
38935	// parameter pageToken in the next list request. Subsequent list
38936	// requests will have their own nextPageToken to continue paging through
38937	// the results.
38938	NextPageToken string `json:"nextPageToken,omitempty"`
38939
38940	// SelfLink: [Output Only] Server-defined URL for this resource.
38941	SelfLink string `json:"selfLink,omitempty"`
38942
38943	// Warning: [Output Only] Informational warning message.
38944	Warning *SslCertificateListWarning `json:"warning,omitempty"`
38945
38946	// ServerResponse contains the HTTP response code and headers from the
38947	// server.
38948	googleapi.ServerResponse `json:"-"`
38949
38950	// ForceSendFields is a list of field names (e.g. "Id") to
38951	// unconditionally include in API requests. By default, fields with
38952	// empty values are omitted from API requests. However, any non-pointer,
38953	// non-interface field appearing in ForceSendFields will be sent to the
38954	// server regardless of whether the field is empty or not. This may be
38955	// used to include empty fields in Patch requests.
38956	ForceSendFields []string `json:"-"`
38957
38958	// NullFields is a list of field names (e.g. "Id") to include in API
38959	// requests with the JSON null value. By default, fields with empty
38960	// values are omitted from API requests. However, any field with an
38961	// empty value appearing in NullFields will be sent to the server as
38962	// null. It is an error if a field in this list has a non-empty value.
38963	// This may be used to include null fields in Patch requests.
38964	NullFields []string `json:"-"`
38965}
38966
38967func (s *SslCertificateList) MarshalJSON() ([]byte, error) {
38968	type NoMethod SslCertificateList
38969	raw := NoMethod(*s)
38970	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38971}
38972
38973// SslCertificateListWarning: [Output Only] Informational warning
38974// message.
38975type SslCertificateListWarning struct {
38976	// Code: [Output Only] A warning code, if applicable. For example,
38977	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38978	// the response.
38979	//
38980	// Possible values:
38981	//   "CLEANUP_FAILED"
38982	//   "DEPRECATED_RESOURCE_USED"
38983	//   "DEPRECATED_TYPE_USED"
38984	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
38985	//   "EXPERIMENTAL_TYPE_USED"
38986	//   "EXTERNAL_API_WARNING"
38987	//   "FIELD_VALUE_OVERRIDEN"
38988	//   "INJECTED_KERNELS_DEPRECATED"
38989	//   "MISSING_TYPE_DEPENDENCY"
38990	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
38991	//   "NEXT_HOP_CANNOT_IP_FORWARD"
38992	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
38993	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
38994	//   "NEXT_HOP_NOT_RUNNING"
38995	//   "NOT_CRITICAL_ERROR"
38996	//   "NO_RESULTS_ON_PAGE"
38997	//   "REQUIRED_TOS_AGREEMENT"
38998	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
38999	//   "RESOURCE_NOT_DELETED"
39000	//   "SCHEMA_VALIDATION_IGNORED"
39001	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39002	//   "UNDECLARED_PROPERTIES"
39003	//   "UNREACHABLE"
39004	Code string `json:"code,omitempty"`
39005
39006	// Data: [Output Only] Metadata about this warning in key: value format.
39007	// For example:
39008	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39009	Data []*SslCertificateListWarningData `json:"data,omitempty"`
39010
39011	// Message: [Output Only] A human-readable description of the warning
39012	// code.
39013	Message string `json:"message,omitempty"`
39014
39015	// ForceSendFields is a list of field names (e.g. "Code") to
39016	// unconditionally include in API requests. By default, fields with
39017	// empty values are omitted from API requests. However, any non-pointer,
39018	// non-interface field appearing in ForceSendFields will be sent to the
39019	// server regardless of whether the field is empty or not. This may be
39020	// used to include empty fields in Patch requests.
39021	ForceSendFields []string `json:"-"`
39022
39023	// NullFields is a list of field names (e.g. "Code") to include in API
39024	// requests with the JSON null value. By default, fields with empty
39025	// values are omitted from API requests. However, any field with an
39026	// empty value appearing in NullFields will be sent to the server as
39027	// null. It is an error if a field in this list has a non-empty value.
39028	// This may be used to include null fields in Patch requests.
39029	NullFields []string `json:"-"`
39030}
39031
39032func (s *SslCertificateListWarning) MarshalJSON() ([]byte, error) {
39033	type NoMethod SslCertificateListWarning
39034	raw := NoMethod(*s)
39035	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39036}
39037
39038type SslCertificateListWarningData struct {
39039	// Key: [Output Only] A key that provides more detail on the warning
39040	// being returned. For example, for warnings where there are no results
39041	// in a list request for a particular zone, this key might be scope and
39042	// the key value might be the zone name. Other examples might be a key
39043	// indicating a deprecated resource and a suggested replacement, or a
39044	// warning about invalid network settings (for example, if an instance
39045	// attempts to perform IP forwarding but is not enabled for IP
39046	// forwarding).
39047	Key string `json:"key,omitempty"`
39048
39049	// Value: [Output Only] A warning data value corresponding to the key.
39050	Value string `json:"value,omitempty"`
39051
39052	// ForceSendFields is a list of field names (e.g. "Key") to
39053	// unconditionally include in API requests. By default, fields with
39054	// empty values are omitted from API requests. However, any non-pointer,
39055	// non-interface field appearing in ForceSendFields will be sent to the
39056	// server regardless of whether the field is empty or not. This may be
39057	// used to include empty fields in Patch requests.
39058	ForceSendFields []string `json:"-"`
39059
39060	// NullFields is a list of field names (e.g. "Key") to include in API
39061	// requests with the JSON null value. By default, fields with empty
39062	// values are omitted from API requests. However, any field with an
39063	// empty value appearing in NullFields will be sent to the server as
39064	// null. It is an error if a field in this list has a non-empty value.
39065	// This may be used to include null fields in Patch requests.
39066	NullFields []string `json:"-"`
39067}
39068
39069func (s *SslCertificateListWarningData) MarshalJSON() ([]byte, error) {
39070	type NoMethod SslCertificateListWarningData
39071	raw := NoMethod(*s)
39072	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39073}
39074
39075// SslCertificateManagedSslCertificate: Configuration and status of a
39076// managed SSL certificate.
39077type SslCertificateManagedSslCertificate struct {
39078	// DomainStatus: [Output only] Detailed statuses of the domains
39079	// specified for managed certificate resource.
39080	DomainStatus map[string]string `json:"domainStatus,omitempty"`
39081
39082	// Domains: The domains for which a managed SSL certificate will be
39083	// generated. Currently only single-domain certs are supported.
39084	Domains []string `json:"domains,omitempty"`
39085
39086	// Status: [Output only] Status of the managed certificate resource.
39087	//
39088	// Possible values:
39089	//   "ACTIVE"
39090	//   "MANAGED_CERTIFICATE_STATUS_UNSPECIFIED"
39091	//   "PROVISIONING"
39092	//   "PROVISIONING_FAILED"
39093	//   "PROVISIONING_FAILED_PERMANENTLY"
39094	//   "RENEWAL_FAILED"
39095	Status string `json:"status,omitempty"`
39096
39097	// ForceSendFields is a list of field names (e.g. "DomainStatus") to
39098	// unconditionally include in API requests. By default, fields with
39099	// empty values are omitted from API requests. However, any non-pointer,
39100	// non-interface field appearing in ForceSendFields will be sent to the
39101	// server regardless of whether the field is empty or not. This may be
39102	// used to include empty fields in Patch requests.
39103	ForceSendFields []string `json:"-"`
39104
39105	// NullFields is a list of field names (e.g. "DomainStatus") to include
39106	// in API requests with the JSON null value. By default, fields with
39107	// empty values are omitted from API requests. However, any field with
39108	// an empty value appearing in NullFields will be sent to the server as
39109	// null. It is an error if a field in this list has a non-empty value.
39110	// This may be used to include null fields in Patch requests.
39111	NullFields []string `json:"-"`
39112}
39113
39114func (s *SslCertificateManagedSslCertificate) MarshalJSON() ([]byte, error) {
39115	type NoMethod SslCertificateManagedSslCertificate
39116	raw := NoMethod(*s)
39117	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39118}
39119
39120// SslCertificateSelfManagedSslCertificate: Configuration and status of
39121// a self-managed SSL certificate.
39122type SslCertificateSelfManagedSslCertificate struct {
39123	// Certificate: A local certificate file. The certificate must be in PEM
39124	// format. The certificate chain must be no greater than 5 certs long.
39125	// The chain must include at least one intermediate cert.
39126	Certificate string `json:"certificate,omitempty"`
39127
39128	// PrivateKey: A write-only private key in PEM format. Only insert
39129	// requests will include this field.
39130	PrivateKey string `json:"privateKey,omitempty"`
39131
39132	// ForceSendFields is a list of field names (e.g. "Certificate") to
39133	// unconditionally include in API requests. By default, fields with
39134	// empty values are omitted from API requests. However, any non-pointer,
39135	// non-interface field appearing in ForceSendFields will be sent to the
39136	// server regardless of whether the field is empty or not. This may be
39137	// used to include empty fields in Patch requests.
39138	ForceSendFields []string `json:"-"`
39139
39140	// NullFields is a list of field names (e.g. "Certificate") to include
39141	// in API requests with the JSON null value. By default, fields with
39142	// empty values are omitted from API requests. However, any field with
39143	// an empty value appearing in NullFields will be sent to the server as
39144	// null. It is an error if a field in this list has a non-empty value.
39145	// This may be used to include null fields in Patch requests.
39146	NullFields []string `json:"-"`
39147}
39148
39149func (s *SslCertificateSelfManagedSslCertificate) MarshalJSON() ([]byte, error) {
39150	type NoMethod SslCertificateSelfManagedSslCertificate
39151	raw := NoMethod(*s)
39152	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39153}
39154
39155type SslCertificatesScopedList struct {
39156	// SslCertificates: List of SslCertificates contained in this scope.
39157	SslCertificates []*SslCertificate `json:"sslCertificates,omitempty"`
39158
39159	// Warning: Informational warning which replaces the list of backend
39160	// services when the list is empty.
39161	Warning *SslCertificatesScopedListWarning `json:"warning,omitempty"`
39162
39163	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
39164	// unconditionally include in API requests. By default, fields with
39165	// empty values are omitted from API requests. However, any non-pointer,
39166	// non-interface field appearing in ForceSendFields will be sent to the
39167	// server regardless of whether the field is empty or not. This may be
39168	// used to include empty fields in Patch requests.
39169	ForceSendFields []string `json:"-"`
39170
39171	// NullFields is a list of field names (e.g. "SslCertificates") to
39172	// include in API requests with the JSON null value. By default, fields
39173	// with empty values are omitted from API requests. However, any field
39174	// with an empty value appearing in NullFields will be sent to the
39175	// server as null. It is an error if a field in this list has a
39176	// non-empty value. This may be used to include null fields in Patch
39177	// requests.
39178	NullFields []string `json:"-"`
39179}
39180
39181func (s *SslCertificatesScopedList) MarshalJSON() ([]byte, error) {
39182	type NoMethod SslCertificatesScopedList
39183	raw := NoMethod(*s)
39184	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39185}
39186
39187// SslCertificatesScopedListWarning: Informational warning which
39188// replaces the list of backend services when the list is empty.
39189type SslCertificatesScopedListWarning struct {
39190	// Code: [Output Only] A warning code, if applicable. For example,
39191	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39192	// the response.
39193	//
39194	// Possible values:
39195	//   "CLEANUP_FAILED"
39196	//   "DEPRECATED_RESOURCE_USED"
39197	//   "DEPRECATED_TYPE_USED"
39198	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39199	//   "EXPERIMENTAL_TYPE_USED"
39200	//   "EXTERNAL_API_WARNING"
39201	//   "FIELD_VALUE_OVERRIDEN"
39202	//   "INJECTED_KERNELS_DEPRECATED"
39203	//   "MISSING_TYPE_DEPENDENCY"
39204	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39205	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39206	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39207	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39208	//   "NEXT_HOP_NOT_RUNNING"
39209	//   "NOT_CRITICAL_ERROR"
39210	//   "NO_RESULTS_ON_PAGE"
39211	//   "REQUIRED_TOS_AGREEMENT"
39212	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39213	//   "RESOURCE_NOT_DELETED"
39214	//   "SCHEMA_VALIDATION_IGNORED"
39215	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39216	//   "UNDECLARED_PROPERTIES"
39217	//   "UNREACHABLE"
39218	Code string `json:"code,omitempty"`
39219
39220	// Data: [Output Only] Metadata about this warning in key: value format.
39221	// For example:
39222	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39223	Data []*SslCertificatesScopedListWarningData `json:"data,omitempty"`
39224
39225	// Message: [Output Only] A human-readable description of the warning
39226	// code.
39227	Message string `json:"message,omitempty"`
39228
39229	// ForceSendFields is a list of field names (e.g. "Code") to
39230	// unconditionally include in API requests. By default, fields with
39231	// empty values are omitted from API requests. However, any non-pointer,
39232	// non-interface field appearing in ForceSendFields will be sent to the
39233	// server regardless of whether the field is empty or not. This may be
39234	// used to include empty fields in Patch requests.
39235	ForceSendFields []string `json:"-"`
39236
39237	// NullFields is a list of field names (e.g. "Code") to include in API
39238	// requests with the JSON null value. By default, fields with empty
39239	// values are omitted from API requests. However, any field with an
39240	// empty value appearing in NullFields will be sent to the server as
39241	// null. It is an error if a field in this list has a non-empty value.
39242	// This may be used to include null fields in Patch requests.
39243	NullFields []string `json:"-"`
39244}
39245
39246func (s *SslCertificatesScopedListWarning) MarshalJSON() ([]byte, error) {
39247	type NoMethod SslCertificatesScopedListWarning
39248	raw := NoMethod(*s)
39249	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39250}
39251
39252type SslCertificatesScopedListWarningData struct {
39253	// Key: [Output Only] A key that provides more detail on the warning
39254	// being returned. For example, for warnings where there are no results
39255	// in a list request for a particular zone, this key might be scope and
39256	// the key value might be the zone name. Other examples might be a key
39257	// indicating a deprecated resource and a suggested replacement, or a
39258	// warning about invalid network settings (for example, if an instance
39259	// attempts to perform IP forwarding but is not enabled for IP
39260	// forwarding).
39261	Key string `json:"key,omitempty"`
39262
39263	// Value: [Output Only] A warning data value corresponding to the key.
39264	Value string `json:"value,omitempty"`
39265
39266	// ForceSendFields is a list of field names (e.g. "Key") to
39267	// unconditionally include in API requests. By default, fields with
39268	// empty values are omitted from API requests. However, any non-pointer,
39269	// non-interface field appearing in ForceSendFields will be sent to the
39270	// server regardless of whether the field is empty or not. This may be
39271	// used to include empty fields in Patch requests.
39272	ForceSendFields []string `json:"-"`
39273
39274	// NullFields is a list of field names (e.g. "Key") to include in API
39275	// requests with the JSON null value. By default, fields with empty
39276	// values are omitted from API requests. However, any field with an
39277	// empty value appearing in NullFields will be sent to the server as
39278	// null. It is an error if a field in this list has a non-empty value.
39279	// This may be used to include null fields in Patch requests.
39280	NullFields []string `json:"-"`
39281}
39282
39283func (s *SslCertificatesScopedListWarningData) MarshalJSON() ([]byte, error) {
39284	type NoMethod SslCertificatesScopedListWarningData
39285	raw := NoMethod(*s)
39286	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39287}
39288
39289type SslPoliciesList struct {
39290	// Id: [Output Only] Unique identifier for the resource; defined by the
39291	// server.
39292	Id string `json:"id,omitempty"`
39293
39294	// Items: A list of SslPolicy resources.
39295	Items []*SslPolicy `json:"items,omitempty"`
39296
39297	// Kind: [Output Only] Type of the resource. Always
39298	// compute#sslPoliciesList for lists of sslPolicies.
39299	Kind string `json:"kind,omitempty"`
39300
39301	// NextPageToken: [Output Only] This token allows you to get the next
39302	// page of results for list requests. If the number of results is larger
39303	// than maxResults, use the nextPageToken as a value for the query
39304	// parameter pageToken in the next list request. Subsequent list
39305	// requests will have their own nextPageToken to continue paging through
39306	// the results.
39307	NextPageToken string `json:"nextPageToken,omitempty"`
39308
39309	// SelfLink: [Output Only] Server-defined URL for this resource.
39310	SelfLink string `json:"selfLink,omitempty"`
39311
39312	// Warning: [Output Only] Informational warning message.
39313	Warning *SslPoliciesListWarning `json:"warning,omitempty"`
39314
39315	// ServerResponse contains the HTTP response code and headers from the
39316	// server.
39317	googleapi.ServerResponse `json:"-"`
39318
39319	// ForceSendFields is a list of field names (e.g. "Id") to
39320	// unconditionally include in API requests. By default, fields with
39321	// empty values are omitted from API requests. However, any non-pointer,
39322	// non-interface field appearing in ForceSendFields will be sent to the
39323	// server regardless of whether the field is empty or not. This may be
39324	// used to include empty fields in Patch requests.
39325	ForceSendFields []string `json:"-"`
39326
39327	// NullFields is a list of field names (e.g. "Id") to include in API
39328	// requests with the JSON null value. By default, fields with empty
39329	// values are omitted from API requests. However, any field with an
39330	// empty value appearing in NullFields will be sent to the server as
39331	// null. It is an error if a field in this list has a non-empty value.
39332	// This may be used to include null fields in Patch requests.
39333	NullFields []string `json:"-"`
39334}
39335
39336func (s *SslPoliciesList) MarshalJSON() ([]byte, error) {
39337	type NoMethod SslPoliciesList
39338	raw := NoMethod(*s)
39339	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39340}
39341
39342// SslPoliciesListWarning: [Output Only] Informational warning message.
39343type SslPoliciesListWarning struct {
39344	// Code: [Output Only] A warning code, if applicable. For example,
39345	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39346	// the response.
39347	//
39348	// Possible values:
39349	//   "CLEANUP_FAILED"
39350	//   "DEPRECATED_RESOURCE_USED"
39351	//   "DEPRECATED_TYPE_USED"
39352	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39353	//   "EXPERIMENTAL_TYPE_USED"
39354	//   "EXTERNAL_API_WARNING"
39355	//   "FIELD_VALUE_OVERRIDEN"
39356	//   "INJECTED_KERNELS_DEPRECATED"
39357	//   "MISSING_TYPE_DEPENDENCY"
39358	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39359	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39360	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39361	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39362	//   "NEXT_HOP_NOT_RUNNING"
39363	//   "NOT_CRITICAL_ERROR"
39364	//   "NO_RESULTS_ON_PAGE"
39365	//   "REQUIRED_TOS_AGREEMENT"
39366	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39367	//   "RESOURCE_NOT_DELETED"
39368	//   "SCHEMA_VALIDATION_IGNORED"
39369	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39370	//   "UNDECLARED_PROPERTIES"
39371	//   "UNREACHABLE"
39372	Code string `json:"code,omitempty"`
39373
39374	// Data: [Output Only] Metadata about this warning in key: value format.
39375	// For example:
39376	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39377	Data []*SslPoliciesListWarningData `json:"data,omitempty"`
39378
39379	// Message: [Output Only] A human-readable description of the warning
39380	// code.
39381	Message string `json:"message,omitempty"`
39382
39383	// ForceSendFields is a list of field names (e.g. "Code") to
39384	// unconditionally include in API requests. By default, fields with
39385	// empty values are omitted from API requests. However, any non-pointer,
39386	// non-interface field appearing in ForceSendFields will be sent to the
39387	// server regardless of whether the field is empty or not. This may be
39388	// used to include empty fields in Patch requests.
39389	ForceSendFields []string `json:"-"`
39390
39391	// NullFields is a list of field names (e.g. "Code") to include in API
39392	// requests with the JSON null value. By default, fields with empty
39393	// values are omitted from API requests. However, any field with an
39394	// empty value appearing in NullFields will be sent to the server as
39395	// null. It is an error if a field in this list has a non-empty value.
39396	// This may be used to include null fields in Patch requests.
39397	NullFields []string `json:"-"`
39398}
39399
39400func (s *SslPoliciesListWarning) MarshalJSON() ([]byte, error) {
39401	type NoMethod SslPoliciesListWarning
39402	raw := NoMethod(*s)
39403	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39404}
39405
39406type SslPoliciesListWarningData struct {
39407	// Key: [Output Only] A key that provides more detail on the warning
39408	// being returned. For example, for warnings where there are no results
39409	// in a list request for a particular zone, this key might be scope and
39410	// the key value might be the zone name. Other examples might be a key
39411	// indicating a deprecated resource and a suggested replacement, or a
39412	// warning about invalid network settings (for example, if an instance
39413	// attempts to perform IP forwarding but is not enabled for IP
39414	// forwarding).
39415	Key string `json:"key,omitempty"`
39416
39417	// Value: [Output Only] A warning data value corresponding to the key.
39418	Value string `json:"value,omitempty"`
39419
39420	// ForceSendFields is a list of field names (e.g. "Key") to
39421	// unconditionally include in API requests. By default, fields with
39422	// empty values are omitted from API requests. However, any non-pointer,
39423	// non-interface field appearing in ForceSendFields will be sent to the
39424	// server regardless of whether the field is empty or not. This may be
39425	// used to include empty fields in Patch requests.
39426	ForceSendFields []string `json:"-"`
39427
39428	// NullFields is a list of field names (e.g. "Key") to include in API
39429	// requests with the JSON null value. By default, fields with empty
39430	// values are omitted from API requests. However, any field with an
39431	// empty value appearing in NullFields will be sent to the server as
39432	// null. It is an error if a field in this list has a non-empty value.
39433	// This may be used to include null fields in Patch requests.
39434	NullFields []string `json:"-"`
39435}
39436
39437func (s *SslPoliciesListWarningData) MarshalJSON() ([]byte, error) {
39438	type NoMethod SslPoliciesListWarningData
39439	raw := NoMethod(*s)
39440	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39441}
39442
39443type SslPoliciesListAvailableFeaturesResponse struct {
39444	Features []string `json:"features,omitempty"`
39445
39446	// ServerResponse contains the HTTP response code and headers from the
39447	// server.
39448	googleapi.ServerResponse `json:"-"`
39449
39450	// ForceSendFields is a list of field names (e.g. "Features") to
39451	// unconditionally include in API requests. By default, fields with
39452	// empty values are omitted from API requests. However, any non-pointer,
39453	// non-interface field appearing in ForceSendFields will be sent to the
39454	// server regardless of whether the field is empty or not. This may be
39455	// used to include empty fields in Patch requests.
39456	ForceSendFields []string `json:"-"`
39457
39458	// NullFields is a list of field names (e.g. "Features") to include in
39459	// API requests with the JSON null value. By default, fields with empty
39460	// values are omitted from API requests. However, any field with an
39461	// empty value appearing in NullFields will be sent to the server as
39462	// null. It is an error if a field in this list has a non-empty value.
39463	// This may be used to include null fields in Patch requests.
39464	NullFields []string `json:"-"`
39465}
39466
39467func (s *SslPoliciesListAvailableFeaturesResponse) MarshalJSON() ([]byte, error) {
39468	type NoMethod SslPoliciesListAvailableFeaturesResponse
39469	raw := NoMethod(*s)
39470	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39471}
39472
39473// SslPolicy: Represents a Cloud Armor Security Policy resource.
39474//
39475// Only external backend services used by HTTP or HTTPS load balancers
39476// can reference a Security Policy. For more information, read read
39477// Cloud Armor Security Policy Concepts. (== resource_for
39478// {$api_version}.sslPolicies ==)
39479type SslPolicy struct {
39480	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
39481	// format.
39482	CreationTimestamp string `json:"creationTimestamp,omitempty"`
39483
39484	// CustomFeatures: A list of features enabled when the selected profile
39485	// is CUSTOM. The
39486	// - method returns the set of features that can be specified in this
39487	// list. This field must be empty if the profile is not CUSTOM.
39488	CustomFeatures []string `json:"customFeatures,omitempty"`
39489
39490	// Description: An optional description of this resource. Provide this
39491	// property when you create the resource.
39492	Description string `json:"description,omitempty"`
39493
39494	// EnabledFeatures: [Output Only] The list of features enabled in the
39495	// SSL policy.
39496	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
39497
39498	// Fingerprint: Fingerprint of this resource. A hash of the contents
39499	// stored in this object. This field is used in optimistic locking. This
39500	// field will be ignored when inserting a SslPolicy. An up-to-date
39501	// fingerprint must be provided in order to update the SslPolicy,
39502	// otherwise the request will fail with error 412 conditionNotMet.
39503	//
39504	// To see the latest fingerprint, make a get() request to retrieve an
39505	// SslPolicy.
39506	Fingerprint string `json:"fingerprint,omitempty"`
39507
39508	// Id: [Output Only] The unique identifier for the resource. This
39509	// identifier is defined by the server.
39510	Id uint64 `json:"id,omitempty,string"`
39511
39512	// Kind: [Output only] Type of the resource. Always compute#sslPolicyfor
39513	// SSL policies.
39514	Kind string `json:"kind,omitempty"`
39515
39516	// MinTlsVersion: The minimum version of SSL protocol that can be used
39517	// by the clients to establish a connection with the load balancer. This
39518	// can be one of TLS_1_0, TLS_1_1, TLS_1_2.
39519	//
39520	// Possible values:
39521	//   "TLS_1_0"
39522	//   "TLS_1_1"
39523	//   "TLS_1_2"
39524	MinTlsVersion string `json:"minTlsVersion,omitempty"`
39525
39526	// Name: Name of the resource. The name must be 1-63 characters long,
39527	// and comply with RFC1035. Specifically, the name must be 1-63
39528	// characters long and match the regular expression
39529	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
39530	// a lowercase letter, and all following characters must be a dash,
39531	// lowercase letter, or digit, except the last character, which cannot
39532	// be a dash.
39533	Name string `json:"name,omitempty"`
39534
39535	// Profile: Profile specifies the set of SSL features that can be used
39536	// by the load balancer when negotiating SSL with clients. This can be
39537	// one of COMPATIBLE, MODERN, RESTRICTED, or CUSTOM. If using CUSTOM,
39538	// the set of SSL features to enable must be specified in the
39539	// customFeatures field.
39540	//
39541	// Possible values:
39542	//   "COMPATIBLE"
39543	//   "CUSTOM"
39544	//   "MODERN"
39545	//   "RESTRICTED"
39546	Profile string `json:"profile,omitempty"`
39547
39548	// SelfLink: [Output Only] Server-defined URL for the resource.
39549	SelfLink string `json:"selfLink,omitempty"`
39550
39551	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
39552	// with the resource id.
39553	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
39554
39555	// TlsSettings: Security settings for the proxy. This field is only
39556	// applicable to a global backend service with the loadBalancingScheme
39557	// set to INTERNAL_SELF_MANAGED.
39558	TlsSettings *ServerTlsSettings `json:"tlsSettings,omitempty"`
39559
39560	// Warnings: [Output Only] If potential misconfigurations are detected
39561	// for this SSL policy, this field will be populated with warning
39562	// messages.
39563	Warnings []*SslPolicyWarnings `json:"warnings,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 *SslPolicy) MarshalJSON() ([]byte, error) {
39588	type NoMethod SslPolicy
39589	raw := NoMethod(*s)
39590	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39591}
39592
39593type SslPolicyWarnings struct {
39594	// Code: [Output Only] A warning code, if applicable. For example,
39595	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39596	// the response.
39597	//
39598	// Possible values:
39599	//   "CLEANUP_FAILED"
39600	//   "DEPRECATED_RESOURCE_USED"
39601	//   "DEPRECATED_TYPE_USED"
39602	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39603	//   "EXPERIMENTAL_TYPE_USED"
39604	//   "EXTERNAL_API_WARNING"
39605	//   "FIELD_VALUE_OVERRIDEN"
39606	//   "INJECTED_KERNELS_DEPRECATED"
39607	//   "MISSING_TYPE_DEPENDENCY"
39608	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39609	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39610	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39611	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39612	//   "NEXT_HOP_NOT_RUNNING"
39613	//   "NOT_CRITICAL_ERROR"
39614	//   "NO_RESULTS_ON_PAGE"
39615	//   "REQUIRED_TOS_AGREEMENT"
39616	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39617	//   "RESOURCE_NOT_DELETED"
39618	//   "SCHEMA_VALIDATION_IGNORED"
39619	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39620	//   "UNDECLARED_PROPERTIES"
39621	//   "UNREACHABLE"
39622	Code string `json:"code,omitempty"`
39623
39624	// Data: [Output Only] Metadata about this warning in key: value format.
39625	// For example:
39626	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39627	Data []*SslPolicyWarningsData `json:"data,omitempty"`
39628
39629	// Message: [Output Only] A human-readable description of the warning
39630	// code.
39631	Message string `json:"message,omitempty"`
39632
39633	// ForceSendFields is a list of field names (e.g. "Code") to
39634	// unconditionally include in API requests. By default, fields with
39635	// empty values are omitted from API requests. However, any non-pointer,
39636	// non-interface field appearing in ForceSendFields will be sent to the
39637	// server regardless of whether the field is empty or not. This may be
39638	// used to include empty fields in Patch requests.
39639	ForceSendFields []string `json:"-"`
39640
39641	// NullFields is a list of field names (e.g. "Code") to include in API
39642	// requests with the JSON null value. By default, fields with empty
39643	// values are omitted from API requests. However, any field with an
39644	// empty value appearing in NullFields will be sent to the server as
39645	// null. It is an error if a field in this list has a non-empty value.
39646	// This may be used to include null fields in Patch requests.
39647	NullFields []string `json:"-"`
39648}
39649
39650func (s *SslPolicyWarnings) MarshalJSON() ([]byte, error) {
39651	type NoMethod SslPolicyWarnings
39652	raw := NoMethod(*s)
39653	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39654}
39655
39656type SslPolicyWarningsData struct {
39657	// Key: [Output Only] A key that provides more detail on the warning
39658	// being returned. For example, for warnings where there are no results
39659	// in a list request for a particular zone, this key might be scope and
39660	// the key value might be the zone name. Other examples might be a key
39661	// indicating a deprecated resource and a suggested replacement, or a
39662	// warning about invalid network settings (for example, if an instance
39663	// attempts to perform IP forwarding but is not enabled for IP
39664	// forwarding).
39665	Key string `json:"key,omitempty"`
39666
39667	// Value: [Output Only] A warning data value corresponding to the key.
39668	Value string `json:"value,omitempty"`
39669
39670	// ForceSendFields is a list of field names (e.g. "Key") to
39671	// unconditionally include in API requests. By default, fields with
39672	// empty values are omitted from API requests. However, any non-pointer,
39673	// non-interface field appearing in ForceSendFields will be sent to the
39674	// server regardless of whether the field is empty or not. This may be
39675	// used to include empty fields in Patch requests.
39676	ForceSendFields []string `json:"-"`
39677
39678	// NullFields is a list of field names (e.g. "Key") to include in API
39679	// requests with the JSON null value. By default, fields with empty
39680	// values are omitted from API requests. However, any field with an
39681	// empty value appearing in NullFields will be sent to the server as
39682	// null. It is an error if a field in this list has a non-empty value.
39683	// This may be used to include null fields in Patch requests.
39684	NullFields []string `json:"-"`
39685}
39686
39687func (s *SslPolicyWarningsData) MarshalJSON() ([]byte, error) {
39688	type NoMethod SslPolicyWarningsData
39689	raw := NoMethod(*s)
39690	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39691}
39692
39693type SslPolicyReference struct {
39694	// SslPolicy: URL of the SSL policy resource. Set this to empty string
39695	// to clear any existing SSL policy associated with the target proxy
39696	// resource.
39697	SslPolicy string `json:"sslPolicy,omitempty"`
39698
39699	// ForceSendFields is a list of field names (e.g. "SslPolicy") to
39700	// unconditionally include in API requests. By default, fields with
39701	// empty values are omitted from API requests. However, any non-pointer,
39702	// non-interface field appearing in ForceSendFields will be sent to the
39703	// server regardless of whether the field is empty or not. This may be
39704	// used to include empty fields in Patch requests.
39705	ForceSendFields []string `json:"-"`
39706
39707	// NullFields is a list of field names (e.g. "SslPolicy") to include in
39708	// API requests with the JSON null value. By default, fields with empty
39709	// values are omitted from API requests. However, any field with an
39710	// empty value appearing in NullFields will be sent to the server as
39711	// null. It is an error if a field in this list has a non-empty value.
39712	// This may be used to include null fields in Patch requests.
39713	NullFields []string `json:"-"`
39714}
39715
39716func (s *SslPolicyReference) MarshalJSON() ([]byte, error) {
39717	type NoMethod SslPolicyReference
39718	raw := NoMethod(*s)
39719	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39720}
39721
39722type StatefulPolicy struct {
39723	PreservedState *StatefulPolicyPreservedState `json:"preservedState,omitempty"`
39724
39725	// ForceSendFields is a list of field names (e.g. "PreservedState") 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. "PreservedState") to
39734	// include in API requests with the JSON null value. By default, fields
39735	// with empty values are omitted from API requests. However, any field
39736	// with an empty value appearing in NullFields will be sent to the
39737	// server as null. It is an error if a field in this list has a
39738	// non-empty value. This may be used to include null fields in Patch
39739	// requests.
39740	NullFields []string `json:"-"`
39741}
39742
39743func (s *StatefulPolicy) MarshalJSON() ([]byte, error) {
39744	type NoMethod StatefulPolicy
39745	raw := NoMethod(*s)
39746	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39747}
39748
39749// StatefulPolicyPreservedState: Configuration of preserved resources.
39750type StatefulPolicyPreservedState struct {
39751	// Disks: Disks created on the instances that will be preserved on
39752	// instance delete, update, etc. This map is keyed with the device names
39753	// of the disks.
39754	Disks map[string]StatefulPolicyPreservedStateDiskDevice `json:"disks,omitempty"`
39755
39756	// ForceSendFields is a list of field names (e.g. "Disks") to
39757	// unconditionally include in API requests. By default, fields with
39758	// empty values are omitted from API requests. However, any non-pointer,
39759	// non-interface field appearing in ForceSendFields will be sent to the
39760	// server regardless of whether the field is empty or not. This may be
39761	// used to include empty fields in Patch requests.
39762	ForceSendFields []string `json:"-"`
39763
39764	// NullFields is a list of field names (e.g. "Disks") to include in API
39765	// requests with the JSON null value. By default, fields with empty
39766	// values are omitted from API requests. However, any field with an
39767	// empty value appearing in NullFields will be sent to the server as
39768	// null. It is an error if a field in this list has a non-empty value.
39769	// This may be used to include null fields in Patch requests.
39770	NullFields []string `json:"-"`
39771}
39772
39773func (s *StatefulPolicyPreservedState) MarshalJSON() ([]byte, error) {
39774	type NoMethod StatefulPolicyPreservedState
39775	raw := NoMethod(*s)
39776	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39777}
39778
39779type StatefulPolicyPreservedStateDiskDevice struct {
39780	// AutoDelete: These stateful disks will never be deleted during
39781	// autohealing, update or VM instance recreate operations. This flag is
39782	// used to configure if the disk should be deleted after it is no longer
39783	// used by the group, e.g. when the given instance or the whole group is
39784	// deleted. Note: disks attached in READ_ONLY mode cannot be
39785	// auto-deleted.
39786	//
39787	// Possible values:
39788	//   "NEVER"
39789	//   "ON_PERMANENT_INSTANCE_DELETION"
39790	AutoDelete string `json:"autoDelete,omitempty"`
39791
39792	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
39793	// unconditionally include in API requests. By default, fields with
39794	// empty values are omitted from API requests. However, any non-pointer,
39795	// non-interface field appearing in ForceSendFields will be sent to the
39796	// server regardless of whether the field is empty or not. This may be
39797	// used to include empty fields in Patch requests.
39798	ForceSendFields []string `json:"-"`
39799
39800	// NullFields is a list of field names (e.g. "AutoDelete") to include in
39801	// API requests with the JSON null value. By default, fields with empty
39802	// values are omitted from API requests. However, any field with an
39803	// empty value appearing in NullFields will be sent to the server as
39804	// null. It is an error if a field in this list has a non-empty value.
39805	// This may be used to include null fields in Patch requests.
39806	NullFields []string `json:"-"`
39807}
39808
39809func (s *StatefulPolicyPreservedStateDiskDevice) MarshalJSON() ([]byte, error) {
39810	type NoMethod StatefulPolicyPreservedStateDiskDevice
39811	raw := NoMethod(*s)
39812	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39813}
39814
39815// Subnetwork: Represents a Subnetwork resource.
39816//
39817// A subnetwork (also known as a subnet) is a logical partition of a
39818// Virtual Private Cloud network with one primary IP range and zero or
39819// more secondary IP ranges. For more information, read  Virtual Private
39820// Cloud (VPC) Network. (== resource_for {$api_version}.subnetworks ==)
39821type Subnetwork struct {
39822	// AggregationInterval: Can only be specified if VPC flow logging for
39823	// this subnetwork is enabled. Sets the aggregation interval for
39824	// collecting flow logs. Increasing the interval time reduces the amount
39825	// of generated flow logs for long-lasting connections. Default is an
39826	// interval of 5 seconds per connection. Valid values: INTERVAL_5_SEC,
39827	// INTERVAL_30_SEC, INTERVAL_1_MIN, INTERVAL_5_MIN, INTERVAL_10_MIN,
39828	// INTERVAL_15_MIN.
39829	//
39830	// Possible values:
39831	//   "INTERVAL_10_MIN"
39832	//   "INTERVAL_15_MIN"
39833	//   "INTERVAL_1_MIN"
39834	//   "INTERVAL_30_SEC"
39835	//   "INTERVAL_5_MIN"
39836	//   "INTERVAL_5_SEC"
39837	AggregationInterval string `json:"aggregationInterval,omitempty"`
39838
39839	// AllowSubnetCidrRoutesOverlap: Whether this subnetwork can conflict
39840	// with static routes. Setting this to true allows this subnetwork's
39841	// primary and secondary ranges to conflict with routes that have
39842	// already been configured on the corresponding network. Static routes
39843	// will take precedence over the subnetwork route if the route prefix
39844	// length is at least as large as the subnetwork prefix length.
39845	//
39846	// Also, packets destined to IPs within subnetwork may contain
39847	// private/sensitive data and are prevented from leaving the virtual
39848	// network. Setting this field to true will disable this feature.
39849	//
39850	// The default value is false and applies to all existing subnetworks
39851	// and automatically created subnetworks.
39852	//
39853	// This field cannot be set to true at resource creation time.
39854	AllowSubnetCidrRoutesOverlap bool `json:"allowSubnetCidrRoutesOverlap,omitempty"`
39855
39856	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
39857	// format.
39858	CreationTimestamp string `json:"creationTimestamp,omitempty"`
39859
39860	// Description: An optional description of this resource. Provide this
39861	// property when you create the resource. This field can be set only at
39862	// resource creation time.
39863	Description string `json:"description,omitempty"`
39864
39865	// EnableFlowLogs: Whether to enable flow logging for this subnetwork.
39866	// If this field is not explicitly set, it will not appear in get
39867	// listings. If not set the default behavior is to disable flow logging.
39868	EnableFlowLogs bool `json:"enableFlowLogs,omitempty"`
39869
39870	// EnablePrivateV6Access: Deprecated in favor of enable in
39871	// PrivateIpv6GoogleAccess. Whether the VMs in this subnet can directly
39872	// access Google services via internal IPv6 addresses. This field can be
39873	// both set at resource creation time and updated using patch.
39874	EnablePrivateV6Access bool `json:"enablePrivateV6Access,omitempty"`
39875
39876	// Fingerprint: Fingerprint of this resource. A hash of the contents
39877	// stored in this object. This field is used in optimistic locking. This
39878	// field will be ignored when inserting a Subnetwork. An up-to-date
39879	// fingerprint must be provided in order to update the Subnetwork,
39880	// otherwise the request will fail with error 412 conditionNotMet.
39881	//
39882	// To see the latest fingerprint, make a get() request to retrieve a
39883	// Subnetwork.
39884	Fingerprint string `json:"fingerprint,omitempty"`
39885
39886	// FlowSampling: Can only be specified if VPC flow logging for this
39887	// subnetwork is enabled. The value of the field must be in [0, 1]. Set
39888	// the sampling rate of VPC flow logs within the subnetwork where 1.0
39889	// means all collected logs are reported and 0.0 means no logs are
39890	// reported. Default is 0.5, which means half of all collected logs are
39891	// reported.
39892	FlowSampling float64 `json:"flowSampling,omitempty"`
39893
39894	// GatewayAddress: [Output Only] The gateway address for default routes
39895	// to reach destination addresses outside this subnetwork.
39896	GatewayAddress string `json:"gatewayAddress,omitempty"`
39897
39898	// Id: [Output Only] The unique identifier for the resource. This
39899	// identifier is defined by the server.
39900	Id uint64 `json:"id,omitempty,string"`
39901
39902	// IpCidrRange: The range of internal addresses that are owned by this
39903	// subnetwork. Provide this property when you create the subnetwork. For
39904	// example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and
39905	// non-overlapping within a network. Only IPv4 is supported. This field
39906	// can be set only at resource creation time.
39907	IpCidrRange string `json:"ipCidrRange,omitempty"`
39908
39909	// Ipv6CidrRange: [Output Only] The range of internal IPv6 addresses
39910	// that are owned by this subnetwork.
39911	Ipv6CidrRange string `json:"ipv6CidrRange,omitempty"`
39912
39913	// Kind: [Output Only] Type of the resource. Always compute#subnetwork
39914	// for Subnetwork resources.
39915	Kind string `json:"kind,omitempty"`
39916
39917	// LogConfig: This field denotes the VPC flow logging options for this
39918	// subnetwork. If logging is enabled, logs are exported to Stackdriver.
39919	LogConfig *SubnetworkLogConfig `json:"logConfig,omitempty"`
39920
39921	// Metadata: Can only be specified if VPC flow logging for this
39922	// subnetwork is enabled. Configures whether metadata fields should be
39923	// added to the reported VPC flow logs. Default is INCLUDE_ALL_METADATA.
39924	//
39925	// Possible values:
39926	//   "EXCLUDE_ALL_METADATA"
39927	//   "INCLUDE_ALL_METADATA"
39928	Metadata string `json:"metadata,omitempty"`
39929
39930	// Name: The name of the resource, provided by the client when initially
39931	// creating the resource. The name must be 1-63 characters long, and
39932	// comply with RFC1035. Specifically, the name must be 1-63 characters
39933	// long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
39934	// which means the first character must be a lowercase letter, and all
39935	// following characters must be a dash, lowercase letter, or digit,
39936	// except the last character, which cannot be a dash.
39937	Name string `json:"name,omitempty"`
39938
39939	// Network: The URL of the network to which this subnetwork belongs,
39940	// provided by the client when initially creating the subnetwork. Only
39941	// networks that are in the distributed mode can have subnetworks. This
39942	// field can be set only at resource creation time.
39943	Network string `json:"network,omitempty"`
39944
39945	// PrivateIpGoogleAccess: Whether the VMs in this subnet can access
39946	// Google services without assigned external IP addresses. This field
39947	// can be both set at resource creation time and updated using
39948	// setPrivateIpGoogleAccess.
39949	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
39950
39951	// PrivateIpv6GoogleAccess: The private IPv6 google access type for the
39952	// VMs in this subnet. This is an expanded field of
39953	// enablePrivateV6Access. If both fields are set,
39954	// privateIpv6GoogleAccess will take priority.
39955	//
39956	// This field can be both set at resource creation time and updated
39957	// using patch.
39958	//
39959	// Possible values:
39960	//   "DISABLE_GOOGLE_ACCESS"
39961	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE"
39962	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE"
39963	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE_FOR_SERVICE_ACCOUNTS"
39964	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
39965
39966	// PrivateIpv6GoogleAccessServiceAccounts: Deprecated in favor of enable
39967	// PrivateIpv6GoogleAccess on instance directly. The service accounts
39968	// can be used to selectively turn on Private IPv6 Google Access only on
39969	// the VMs primary service account matching the value. This value only
39970	// takes effect when PrivateIpv6GoogleAccess is
39971	// ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE_FOR_SERVICE_ACCOUNTS or
39972	// ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE_FOR_SERVICE_ACCOUNTS.
39973	PrivateIpv6GoogleAccessServiceAccounts []string `json:"privateIpv6GoogleAccessServiceAccounts,omitempty"`
39974
39975	// Purpose: The purpose of the resource. This field can be either
39976	// PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with
39977	// purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created
39978	// subnetwork that is reserved for Internal HTTP(S) Load Balancing. If
39979	// unspecified, the purpose defaults to PRIVATE_RFC_1918.
39980	//
39981	// Possible values:
39982	//   "AGGREGATE"
39983	//   "INTERNAL_HTTPS_LOAD_BALANCER"
39984	//   "PRIVATE"
39985	//   "PRIVATE_RFC_1918"
39986	Purpose string `json:"purpose,omitempty"`
39987
39988	// RangeType: The type of IP CIDR range to associate with this
39989	// subnetwork. The default is RFC_1918. When creating a subnetwork in
39990	// non-RFC 1918 range, this field must be set to NON_RFC_1918.
39991	//
39992	// Possible values:
39993	//   "NON_RFC_1918"
39994	//   "RFC_1918"
39995	RangeType string `json:"rangeType,omitempty"`
39996
39997	// Region: URL of the region where the Subnetwork resides. This field
39998	// can be set only at resource creation time.
39999	Region string `json:"region,omitempty"`
40000
40001	// Role: The role of subnetwork. Currenly, this field is only used when
40002	// purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to
40003	// ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being
40004	// used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one
40005	// that is ready to be promoted to ACTIVE or is currently draining. This
40006	// field can be updated with a patch request.
40007	//
40008	// Possible values:
40009	//   "ACTIVE"
40010	//   "BACKUP"
40011	Role string `json:"role,omitempty"`
40012
40013	// SecondaryIpRanges: An array of configurations for secondary IP ranges
40014	// for VM instances contained in this subnetwork. The primary IP of such
40015	// VM must belong to the primary ipCidrRange of the subnetwork. The
40016	// alias IPs may belong to either primary or secondary ranges. This
40017	// field can be updated with a patch request.
40018	SecondaryIpRanges []*SubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
40019
40020	// SelfLink: [Output Only] Server-defined URL for the resource.
40021	SelfLink string `json:"selfLink,omitempty"`
40022
40023	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
40024	// with the resource id.
40025	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
40026
40027	// State: [Output Only] The state of the subnetwork, which can be one of
40028	// READY or DRAINING. A subnetwork that is READY is ready to be used.
40029	// The state of DRAINING is only applicable to subnetworks that have the
40030	// purpose set to INTERNAL_HTTPS_LOAD_BALANCER and indicates that
40031	// connections to the load balancer are being drained. A subnetwork that
40032	// is draining cannot be used or modified until it reaches a status of
40033	// READY.
40034	//
40035	// Possible values:
40036	//   "DRAINING"
40037	//   "READY"
40038	State string `json:"state,omitempty"`
40039
40040	// ServerResponse contains the HTTP response code and headers from the
40041	// server.
40042	googleapi.ServerResponse `json:"-"`
40043
40044	// ForceSendFields is a list of field names (e.g. "AggregationInterval")
40045	// to unconditionally include in API requests. By default, fields with
40046	// empty values are omitted from API requests. However, any non-pointer,
40047	// non-interface field appearing in ForceSendFields will be sent to the
40048	// server regardless of whether the field is empty or not. This may be
40049	// used to include empty fields in Patch requests.
40050	ForceSendFields []string `json:"-"`
40051
40052	// NullFields is a list of field names (e.g. "AggregationInterval") to
40053	// include in API requests with the JSON null value. By default, fields
40054	// with empty values are omitted from API requests. However, any field
40055	// with an empty value appearing in NullFields will be sent to the
40056	// server as null. It is an error if a field in this list has a
40057	// non-empty value. This may be used to include null fields in Patch
40058	// requests.
40059	NullFields []string `json:"-"`
40060}
40061
40062func (s *Subnetwork) MarshalJSON() ([]byte, error) {
40063	type NoMethod Subnetwork
40064	raw := NoMethod(*s)
40065	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40066}
40067
40068func (s *Subnetwork) UnmarshalJSON(data []byte) error {
40069	type NoMethod Subnetwork
40070	var s1 struct {
40071		FlowSampling gensupport.JSONFloat64 `json:"flowSampling"`
40072		*NoMethod
40073	}
40074	s1.NoMethod = (*NoMethod)(s)
40075	if err := json.Unmarshal(data, &s1); err != nil {
40076		return err
40077	}
40078	s.FlowSampling = float64(s1.FlowSampling)
40079	return nil
40080}
40081
40082type SubnetworkAggregatedList struct {
40083	// Id: [Output Only] Unique identifier for the resource; defined by the
40084	// server.
40085	Id string `json:"id,omitempty"`
40086
40087	// Items: A list of SubnetworksScopedList resources.
40088	Items map[string]SubnetworksScopedList `json:"items,omitempty"`
40089
40090	// Kind: [Output Only] Type of resource. Always
40091	// compute#subnetworkAggregatedList for aggregated lists of subnetworks.
40092	Kind string `json:"kind,omitempty"`
40093
40094	// NextPageToken: [Output Only] This token allows you to get the next
40095	// page of results for list requests. If the number of results is larger
40096	// than maxResults, use the nextPageToken as a value for the query
40097	// parameter pageToken in the next list request. Subsequent list
40098	// requests will have their own nextPageToken to continue paging through
40099	// the results.
40100	NextPageToken string `json:"nextPageToken,omitempty"`
40101
40102	// SelfLink: [Output Only] Server-defined URL for this resource.
40103	SelfLink string `json:"selfLink,omitempty"`
40104
40105	// Warning: [Output Only] Informational warning message.
40106	Warning *SubnetworkAggregatedListWarning `json:"warning,omitempty"`
40107
40108	// ServerResponse contains the HTTP response code and headers from the
40109	// server.
40110	googleapi.ServerResponse `json:"-"`
40111
40112	// ForceSendFields is a list of field names (e.g. "Id") to
40113	// unconditionally include in API requests. By default, fields with
40114	// empty values are omitted from API requests. However, any non-pointer,
40115	// non-interface field appearing in ForceSendFields will be sent to the
40116	// server regardless of whether the field is empty or not. This may be
40117	// used to include empty fields in Patch requests.
40118	ForceSendFields []string `json:"-"`
40119
40120	// NullFields is a list of field names (e.g. "Id") to include in API
40121	// requests with the JSON null value. By default, fields with empty
40122	// values are omitted from API requests. However, any field with an
40123	// empty value appearing in NullFields will be sent to the server as
40124	// null. It is an error if a field in this list has a non-empty value.
40125	// This may be used to include null fields in Patch requests.
40126	NullFields []string `json:"-"`
40127}
40128
40129func (s *SubnetworkAggregatedList) MarshalJSON() ([]byte, error) {
40130	type NoMethod SubnetworkAggregatedList
40131	raw := NoMethod(*s)
40132	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40133}
40134
40135// SubnetworkAggregatedListWarning: [Output Only] Informational warning
40136// message.
40137type SubnetworkAggregatedListWarning struct {
40138	// Code: [Output Only] A warning code, if applicable. For example,
40139	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40140	// the response.
40141	//
40142	// Possible values:
40143	//   "CLEANUP_FAILED"
40144	//   "DEPRECATED_RESOURCE_USED"
40145	//   "DEPRECATED_TYPE_USED"
40146	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40147	//   "EXPERIMENTAL_TYPE_USED"
40148	//   "EXTERNAL_API_WARNING"
40149	//   "FIELD_VALUE_OVERRIDEN"
40150	//   "INJECTED_KERNELS_DEPRECATED"
40151	//   "MISSING_TYPE_DEPENDENCY"
40152	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40153	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40154	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40155	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40156	//   "NEXT_HOP_NOT_RUNNING"
40157	//   "NOT_CRITICAL_ERROR"
40158	//   "NO_RESULTS_ON_PAGE"
40159	//   "REQUIRED_TOS_AGREEMENT"
40160	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40161	//   "RESOURCE_NOT_DELETED"
40162	//   "SCHEMA_VALIDATION_IGNORED"
40163	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40164	//   "UNDECLARED_PROPERTIES"
40165	//   "UNREACHABLE"
40166	Code string `json:"code,omitempty"`
40167
40168	// Data: [Output Only] Metadata about this warning in key: value format.
40169	// For example:
40170	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40171	Data []*SubnetworkAggregatedListWarningData `json:"data,omitempty"`
40172
40173	// Message: [Output Only] A human-readable description of the warning
40174	// code.
40175	Message string `json:"message,omitempty"`
40176
40177	// ForceSendFields is a list of field names (e.g. "Code") to
40178	// unconditionally include in API requests. By default, fields with
40179	// empty values are omitted from API requests. However, any non-pointer,
40180	// non-interface field appearing in ForceSendFields will be sent to the
40181	// server regardless of whether the field is empty or not. This may be
40182	// used to include empty fields in Patch requests.
40183	ForceSendFields []string `json:"-"`
40184
40185	// NullFields is a list of field names (e.g. "Code") to include in API
40186	// requests with the JSON null value. By default, fields with empty
40187	// values are omitted from API requests. However, any field with an
40188	// empty value appearing in NullFields will be sent to the server as
40189	// null. It is an error if a field in this list has a non-empty value.
40190	// This may be used to include null fields in Patch requests.
40191	NullFields []string `json:"-"`
40192}
40193
40194func (s *SubnetworkAggregatedListWarning) MarshalJSON() ([]byte, error) {
40195	type NoMethod SubnetworkAggregatedListWarning
40196	raw := NoMethod(*s)
40197	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40198}
40199
40200type SubnetworkAggregatedListWarningData struct {
40201	// Key: [Output Only] A key that provides more detail on the warning
40202	// being returned. For example, for warnings where there are no results
40203	// in a list request for a particular zone, this key might be scope and
40204	// the key value might be the zone name. Other examples might be a key
40205	// indicating a deprecated resource and a suggested replacement, or a
40206	// warning about invalid network settings (for example, if an instance
40207	// attempts to perform IP forwarding but is not enabled for IP
40208	// forwarding).
40209	Key string `json:"key,omitempty"`
40210
40211	// Value: [Output Only] A warning data value corresponding to the key.
40212	Value string `json:"value,omitempty"`
40213
40214	// ForceSendFields is a list of field names (e.g. "Key") to
40215	// unconditionally include in API requests. By default, fields with
40216	// empty values are omitted from API requests. However, any non-pointer,
40217	// non-interface field appearing in ForceSendFields will be sent to the
40218	// server regardless of whether the field is empty or not. This may be
40219	// used to include empty fields in Patch requests.
40220	ForceSendFields []string `json:"-"`
40221
40222	// NullFields is a list of field names (e.g. "Key") to include in API
40223	// requests with the JSON null value. By default, fields with empty
40224	// values are omitted from API requests. However, any field with an
40225	// empty value appearing in NullFields will be sent to the server as
40226	// null. It is an error if a field in this list has a non-empty value.
40227	// This may be used to include null fields in Patch requests.
40228	NullFields []string `json:"-"`
40229}
40230
40231func (s *SubnetworkAggregatedListWarningData) MarshalJSON() ([]byte, error) {
40232	type NoMethod SubnetworkAggregatedListWarningData
40233	raw := NoMethod(*s)
40234	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40235}
40236
40237// SubnetworkList: Contains a list of Subnetwork resources.
40238type SubnetworkList struct {
40239	// Id: [Output Only] Unique identifier for the resource; defined by the
40240	// server.
40241	Id string `json:"id,omitempty"`
40242
40243	// Items: A list of Subnetwork resources.
40244	Items []*Subnetwork `json:"items,omitempty"`
40245
40246	// Kind: [Output Only] Type of resource. Always compute#subnetworkList
40247	// for lists of subnetworks.
40248	Kind string `json:"kind,omitempty"`
40249
40250	// NextPageToken: [Output Only] This token allows you to get the next
40251	// page of results for list requests. If the number of results is larger
40252	// than maxResults, use the nextPageToken as a value for the query
40253	// parameter pageToken in the next list request. Subsequent list
40254	// requests will have their own nextPageToken to continue paging through
40255	// the results.
40256	NextPageToken string `json:"nextPageToken,omitempty"`
40257
40258	// SelfLink: [Output Only] Server-defined URL for this resource.
40259	SelfLink string `json:"selfLink,omitempty"`
40260
40261	// Warning: [Output Only] Informational warning message.
40262	Warning *SubnetworkListWarning `json:"warning,omitempty"`
40263
40264	// ServerResponse contains the HTTP response code and headers from the
40265	// server.
40266	googleapi.ServerResponse `json:"-"`
40267
40268	// ForceSendFields is a list of field names (e.g. "Id") to
40269	// unconditionally include in API requests. By default, fields with
40270	// empty values are omitted from API requests. However, any non-pointer,
40271	// non-interface field appearing in ForceSendFields will be sent to the
40272	// server regardless of whether the field is empty or not. This may be
40273	// used to include empty fields in Patch requests.
40274	ForceSendFields []string `json:"-"`
40275
40276	// NullFields is a list of field names (e.g. "Id") to include in API
40277	// requests with the JSON null value. By default, fields with empty
40278	// values are omitted from API requests. However, any field with an
40279	// empty value appearing in NullFields will be sent to the server as
40280	// null. It is an error if a field in this list has a non-empty value.
40281	// This may be used to include null fields in Patch requests.
40282	NullFields []string `json:"-"`
40283}
40284
40285func (s *SubnetworkList) MarshalJSON() ([]byte, error) {
40286	type NoMethod SubnetworkList
40287	raw := NoMethod(*s)
40288	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40289}
40290
40291// SubnetworkListWarning: [Output Only] Informational warning message.
40292type SubnetworkListWarning struct {
40293	// Code: [Output Only] A warning code, if applicable. For example,
40294	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40295	// the response.
40296	//
40297	// Possible values:
40298	//   "CLEANUP_FAILED"
40299	//   "DEPRECATED_RESOURCE_USED"
40300	//   "DEPRECATED_TYPE_USED"
40301	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40302	//   "EXPERIMENTAL_TYPE_USED"
40303	//   "EXTERNAL_API_WARNING"
40304	//   "FIELD_VALUE_OVERRIDEN"
40305	//   "INJECTED_KERNELS_DEPRECATED"
40306	//   "MISSING_TYPE_DEPENDENCY"
40307	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40308	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40309	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40310	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40311	//   "NEXT_HOP_NOT_RUNNING"
40312	//   "NOT_CRITICAL_ERROR"
40313	//   "NO_RESULTS_ON_PAGE"
40314	//   "REQUIRED_TOS_AGREEMENT"
40315	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40316	//   "RESOURCE_NOT_DELETED"
40317	//   "SCHEMA_VALIDATION_IGNORED"
40318	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40319	//   "UNDECLARED_PROPERTIES"
40320	//   "UNREACHABLE"
40321	Code string `json:"code,omitempty"`
40322
40323	// Data: [Output Only] Metadata about this warning in key: value format.
40324	// For example:
40325	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40326	Data []*SubnetworkListWarningData `json:"data,omitempty"`
40327
40328	// Message: [Output Only] A human-readable description of the warning
40329	// code.
40330	Message string `json:"message,omitempty"`
40331
40332	// ForceSendFields is a list of field names (e.g. "Code") to
40333	// unconditionally include in API requests. By default, fields with
40334	// empty values are omitted from API requests. However, any non-pointer,
40335	// non-interface field appearing in ForceSendFields will be sent to the
40336	// server regardless of whether the field is empty or not. This may be
40337	// used to include empty fields in Patch requests.
40338	ForceSendFields []string `json:"-"`
40339
40340	// NullFields is a list of field names (e.g. "Code") to include in API
40341	// requests with the JSON null value. By default, fields with empty
40342	// values are omitted from API requests. However, any field with an
40343	// empty value appearing in NullFields will be sent to the server as
40344	// null. It is an error if a field in this list has a non-empty value.
40345	// This may be used to include null fields in Patch requests.
40346	NullFields []string `json:"-"`
40347}
40348
40349func (s *SubnetworkListWarning) MarshalJSON() ([]byte, error) {
40350	type NoMethod SubnetworkListWarning
40351	raw := NoMethod(*s)
40352	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40353}
40354
40355type SubnetworkListWarningData struct {
40356	// Key: [Output Only] A key that provides more detail on the warning
40357	// being returned. For example, for warnings where there are no results
40358	// in a list request for a particular zone, this key might be scope and
40359	// the key value might be the zone name. Other examples might be a key
40360	// indicating a deprecated resource and a suggested replacement, or a
40361	// warning about invalid network settings (for example, if an instance
40362	// attempts to perform IP forwarding but is not enabled for IP
40363	// forwarding).
40364	Key string `json:"key,omitempty"`
40365
40366	// Value: [Output Only] A warning data value corresponding to the key.
40367	Value string `json:"value,omitempty"`
40368
40369	// ForceSendFields is a list of field names (e.g. "Key") to
40370	// unconditionally include in API requests. By default, fields with
40371	// empty values are omitted from API requests. However, any non-pointer,
40372	// non-interface field appearing in ForceSendFields will be sent to the
40373	// server regardless of whether the field is empty or not. This may be
40374	// used to include empty fields in Patch requests.
40375	ForceSendFields []string `json:"-"`
40376
40377	// NullFields is a list of field names (e.g. "Key") to include in API
40378	// requests with the JSON null value. By default, fields with empty
40379	// values are omitted from API requests. However, any field with an
40380	// empty value appearing in NullFields will be sent to the server as
40381	// null. It is an error if a field in this list has a non-empty value.
40382	// This may be used to include null fields in Patch requests.
40383	NullFields []string `json:"-"`
40384}
40385
40386func (s *SubnetworkListWarningData) MarshalJSON() ([]byte, error) {
40387	type NoMethod SubnetworkListWarningData
40388	raw := NoMethod(*s)
40389	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40390}
40391
40392// SubnetworkLogConfig: The available logging options for this
40393// subnetwork.
40394type SubnetworkLogConfig struct {
40395	// AggregationInterval: Can only be specified if VPC flow logging for
40396	// this subnetwork is enabled. Toggles the aggregation interval for
40397	// collecting flow logs. Increasing the interval time will reduce the
40398	// amount of generated flow logs for long lasting connections. Default
40399	// is an interval of 5 seconds per connection.
40400	//
40401	// Possible values:
40402	//   "INTERVAL_10_MIN"
40403	//   "INTERVAL_15_MIN"
40404	//   "INTERVAL_1_MIN"
40405	//   "INTERVAL_30_SEC"
40406	//   "INTERVAL_5_MIN"
40407	//   "INTERVAL_5_SEC"
40408	AggregationInterval string `json:"aggregationInterval,omitempty"`
40409
40410	// Enable: Whether to enable flow logging for this subnetwork. If this
40411	// field is not explicitly set, it will not appear in get listings. If
40412	// not set the default behavior is to disable flow logging.
40413	Enable bool `json:"enable,omitempty"`
40414
40415	// FilterExpr: Can only be specified if VPC flow logs for this
40416	// subnetwork is enabled. Export filter used to define which VPC flow
40417	// logs should be logged.
40418	FilterExpr string `json:"filterExpr,omitempty"`
40419
40420	// FlowSampling: Can only be specified if VPC flow logging for this
40421	// subnetwork is enabled. The value of the field must be in [0, 1]. Set
40422	// the sampling rate of VPC flow logs within the subnetwork where 1.0
40423	// means all collected logs are reported and 0.0 means no logs are
40424	// reported. Default is 0.5, which means half of all collected logs are
40425	// reported.
40426	FlowSampling float64 `json:"flowSampling,omitempty"`
40427
40428	// Metadata: Can only be specified if VPC flow logs for this subnetwork
40429	// is enabled. Configures whether all, none or a subset of metadata
40430	// fields should be added to the reported VPC flow logs. Default is
40431	// INCLUDE_ALL_METADATA.
40432	//
40433	// Possible values:
40434	//   "CUSTOM_METADATA"
40435	//   "EXCLUDE_ALL_METADATA"
40436	//   "INCLUDE_ALL_METADATA"
40437	Metadata string `json:"metadata,omitempty"`
40438
40439	// MetadataFields: Can only be specified if VPC flow logs for this
40440	// subnetwork is enabled and "metadata" was set to CUSTOM_METADATA.
40441	MetadataFields []string `json:"metadataFields,omitempty"`
40442
40443	// ForceSendFields is a list of field names (e.g. "AggregationInterval")
40444	// to unconditionally include in API requests. By default, fields with
40445	// empty values are omitted from API requests. However, any non-pointer,
40446	// non-interface field appearing in ForceSendFields will be sent to the
40447	// server regardless of whether the field is empty or not. This may be
40448	// used to include empty fields in Patch requests.
40449	ForceSendFields []string `json:"-"`
40450
40451	// NullFields is a list of field names (e.g. "AggregationInterval") to
40452	// include in API requests with the JSON null value. By default, fields
40453	// with empty values are omitted from API requests. However, any field
40454	// with an empty value appearing in NullFields will be sent to the
40455	// server as null. It is an error if a field in this list has a
40456	// non-empty value. This may be used to include null fields in Patch
40457	// requests.
40458	NullFields []string `json:"-"`
40459}
40460
40461func (s *SubnetworkLogConfig) MarshalJSON() ([]byte, error) {
40462	type NoMethod SubnetworkLogConfig
40463	raw := NoMethod(*s)
40464	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40465}
40466
40467func (s *SubnetworkLogConfig) UnmarshalJSON(data []byte) error {
40468	type NoMethod SubnetworkLogConfig
40469	var s1 struct {
40470		FlowSampling gensupport.JSONFloat64 `json:"flowSampling"`
40471		*NoMethod
40472	}
40473	s1.NoMethod = (*NoMethod)(s)
40474	if err := json.Unmarshal(data, &s1); err != nil {
40475		return err
40476	}
40477	s.FlowSampling = float64(s1.FlowSampling)
40478	return nil
40479}
40480
40481// SubnetworkSecondaryRange: Represents a secondary IP range of a
40482// subnetwork.
40483type SubnetworkSecondaryRange struct {
40484	// IpCidrRange: The range of IP addresses belonging to this subnetwork
40485	// secondary range. Provide this property when you create the
40486	// subnetwork. Ranges must be unique and non-overlapping with all
40487	// primary and secondary IP ranges within a network. Only IPv4 is
40488	// supported.
40489	IpCidrRange string `json:"ipCidrRange,omitempty"`
40490
40491	// RangeName: The name associated with this subnetwork secondary range,
40492	// used when adding an alias IP range to a VM instance. The name must be
40493	// 1-63 characters long, and comply with RFC1035. The name must be
40494	// unique within the subnetwork.
40495	RangeName string `json:"rangeName,omitempty"`
40496
40497	// RangeType: The type of IP CIDR range to associate with this
40498	// subnetwork secondary range. The default is RFC_1918. When creating a
40499	// subnetwork in non-RFC 1918 range, this field must be set to
40500	// NON_RFC_1918.
40501	//
40502	// Possible values:
40503	//   "NON_RFC_1918"
40504	//   "RFC_1918"
40505	RangeType string `json:"rangeType,omitempty"`
40506
40507	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
40508	// unconditionally include in API requests. By default, fields with
40509	// empty values are omitted from API requests. However, any non-pointer,
40510	// non-interface field appearing in ForceSendFields will be sent to the
40511	// server regardless of whether the field is empty or not. This may be
40512	// used to include empty fields in Patch requests.
40513	ForceSendFields []string `json:"-"`
40514
40515	// NullFields is a list of field names (e.g. "IpCidrRange") to include
40516	// in API requests with the JSON null value. By default, fields with
40517	// empty values are omitted from API requests. However, any field with
40518	// an empty value appearing in NullFields will be sent to the server as
40519	// null. It is an error if a field in this list has a non-empty value.
40520	// This may be used to include null fields in Patch requests.
40521	NullFields []string `json:"-"`
40522}
40523
40524func (s *SubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
40525	type NoMethod SubnetworkSecondaryRange
40526	raw := NoMethod(*s)
40527	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40528}
40529
40530type SubnetworksExpandIpCidrRangeRequest struct {
40531	// IpCidrRange: The IP (in CIDR format or netmask) of internal addresses
40532	// that are legal on this Subnetwork. This range should be disjoint from
40533	// other subnetworks within this network. This range can only be larger
40534	// than (i.e. a superset of) the range previously defined before the
40535	// update.
40536	IpCidrRange string `json:"ipCidrRange,omitempty"`
40537
40538	// RangeType: The type of IP CIDR range to associate with this
40539	// subnetwork. The default is RFC_1918. When expanding to a non-RFC 1918
40540	// range, this field must be be set to NON_RFC_1918.
40541	//
40542	// Possible values:
40543	//   "NON_RFC_1918"
40544	//   "RFC_1918"
40545	RangeType string `json:"rangeType,omitempty"`
40546
40547	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
40548	// unconditionally include in API requests. By default, fields with
40549	// empty values are omitted from API requests. However, any non-pointer,
40550	// non-interface field appearing in ForceSendFields will be sent to the
40551	// server regardless of whether the field is empty or not. This may be
40552	// used to include empty fields in Patch requests.
40553	ForceSendFields []string `json:"-"`
40554
40555	// NullFields is a list of field names (e.g. "IpCidrRange") to include
40556	// in API requests with the JSON null value. By default, fields with
40557	// empty values are omitted from API requests. However, any field with
40558	// an empty value appearing in NullFields will be sent to the server as
40559	// null. It is an error if a field in this list has a non-empty value.
40560	// This may be used to include null fields in Patch requests.
40561	NullFields []string `json:"-"`
40562}
40563
40564func (s *SubnetworksExpandIpCidrRangeRequest) MarshalJSON() ([]byte, error) {
40565	type NoMethod SubnetworksExpandIpCidrRangeRequest
40566	raw := NoMethod(*s)
40567	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40568}
40569
40570type SubnetworksScopedList struct {
40571	// Subnetworks: A list of subnetworks contained in this scope.
40572	Subnetworks []*Subnetwork `json:"subnetworks,omitempty"`
40573
40574	// Warning: An informational warning that appears when the list of
40575	// addresses is empty.
40576	Warning *SubnetworksScopedListWarning `json:"warning,omitempty"`
40577
40578	// ForceSendFields is a list of field names (e.g. "Subnetworks") to
40579	// unconditionally include in API requests. By default, fields with
40580	// empty values are omitted from API requests. However, any non-pointer,
40581	// non-interface field appearing in ForceSendFields will be sent to the
40582	// server regardless of whether the field is empty or not. This may be
40583	// used to include empty fields in Patch requests.
40584	ForceSendFields []string `json:"-"`
40585
40586	// NullFields is a list of field names (e.g. "Subnetworks") to include
40587	// in API requests with the JSON null value. By default, fields with
40588	// empty values are omitted from API requests. However, any field with
40589	// an empty value appearing in NullFields will be sent to the server as
40590	// null. It is an error if a field in this list has a non-empty value.
40591	// This may be used to include null fields in Patch requests.
40592	NullFields []string `json:"-"`
40593}
40594
40595func (s *SubnetworksScopedList) MarshalJSON() ([]byte, error) {
40596	type NoMethod SubnetworksScopedList
40597	raw := NoMethod(*s)
40598	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40599}
40600
40601// SubnetworksScopedListWarning: An informational warning that appears
40602// when the list of addresses is empty.
40603type SubnetworksScopedListWarning struct {
40604	// Code: [Output Only] A warning code, if applicable. For example,
40605	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40606	// the response.
40607	//
40608	// Possible values:
40609	//   "CLEANUP_FAILED"
40610	//   "DEPRECATED_RESOURCE_USED"
40611	//   "DEPRECATED_TYPE_USED"
40612	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40613	//   "EXPERIMENTAL_TYPE_USED"
40614	//   "EXTERNAL_API_WARNING"
40615	//   "FIELD_VALUE_OVERRIDEN"
40616	//   "INJECTED_KERNELS_DEPRECATED"
40617	//   "MISSING_TYPE_DEPENDENCY"
40618	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40619	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40620	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40621	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40622	//   "NEXT_HOP_NOT_RUNNING"
40623	//   "NOT_CRITICAL_ERROR"
40624	//   "NO_RESULTS_ON_PAGE"
40625	//   "REQUIRED_TOS_AGREEMENT"
40626	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40627	//   "RESOURCE_NOT_DELETED"
40628	//   "SCHEMA_VALIDATION_IGNORED"
40629	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40630	//   "UNDECLARED_PROPERTIES"
40631	//   "UNREACHABLE"
40632	Code string `json:"code,omitempty"`
40633
40634	// Data: [Output Only] Metadata about this warning in key: value format.
40635	// For example:
40636	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40637	Data []*SubnetworksScopedListWarningData `json:"data,omitempty"`
40638
40639	// Message: [Output Only] A human-readable description of the warning
40640	// code.
40641	Message string `json:"message,omitempty"`
40642
40643	// ForceSendFields is a list of field names (e.g. "Code") to
40644	// unconditionally include in API requests. By default, fields with
40645	// empty values are omitted from API requests. However, any non-pointer,
40646	// non-interface field appearing in ForceSendFields will be sent to the
40647	// server regardless of whether the field is empty or not. This may be
40648	// used to include empty fields in Patch requests.
40649	ForceSendFields []string `json:"-"`
40650
40651	// NullFields is a list of field names (e.g. "Code") to include in API
40652	// requests with the JSON null value. By default, fields with empty
40653	// values are omitted from API requests. However, any field with an
40654	// empty value appearing in NullFields will be sent to the server as
40655	// null. It is an error if a field in this list has a non-empty value.
40656	// This may be used to include null fields in Patch requests.
40657	NullFields []string `json:"-"`
40658}
40659
40660func (s *SubnetworksScopedListWarning) MarshalJSON() ([]byte, error) {
40661	type NoMethod SubnetworksScopedListWarning
40662	raw := NoMethod(*s)
40663	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40664}
40665
40666type SubnetworksScopedListWarningData struct {
40667	// Key: [Output Only] A key that provides more detail on the warning
40668	// being returned. For example, for warnings where there are no results
40669	// in a list request for a particular zone, this key might be scope and
40670	// the key value might be the zone name. Other examples might be a key
40671	// indicating a deprecated resource and a suggested replacement, or a
40672	// warning about invalid network settings (for example, if an instance
40673	// attempts to perform IP forwarding but is not enabled for IP
40674	// forwarding).
40675	Key string `json:"key,omitempty"`
40676
40677	// Value: [Output Only] A warning data value corresponding to the key.
40678	Value string `json:"value,omitempty"`
40679
40680	// ForceSendFields is a list of field names (e.g. "Key") to
40681	// unconditionally include in API requests. By default, fields with
40682	// empty values are omitted from API requests. However, any non-pointer,
40683	// non-interface field appearing in ForceSendFields will be sent to the
40684	// server regardless of whether the field is empty or not. This may be
40685	// used to include empty fields in Patch requests.
40686	ForceSendFields []string `json:"-"`
40687
40688	// NullFields is a list of field names (e.g. "Key") to include in API
40689	// requests with the JSON null value. By default, fields with empty
40690	// values are omitted from API requests. However, any field with an
40691	// empty value appearing in NullFields will be sent to the server as
40692	// null. It is an error if a field in this list has a non-empty value.
40693	// This may be used to include null fields in Patch requests.
40694	NullFields []string `json:"-"`
40695}
40696
40697func (s *SubnetworksScopedListWarningData) MarshalJSON() ([]byte, error) {
40698	type NoMethod SubnetworksScopedListWarningData
40699	raw := NoMethod(*s)
40700	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40701}
40702
40703type SubnetworksSetPrivateIpGoogleAccessRequest struct {
40704	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
40705
40706	// ForceSendFields is a list of field names (e.g.
40707	// "PrivateIpGoogleAccess") to unconditionally include in API requests.
40708	// By default, fields with empty values are omitted from API requests.
40709	// However, any non-pointer, non-interface field appearing in
40710	// ForceSendFields will be sent to the server regardless of whether the
40711	// field is empty or not. This may be used to include empty fields in
40712	// Patch requests.
40713	ForceSendFields []string `json:"-"`
40714
40715	// NullFields is a list of field names (e.g. "PrivateIpGoogleAccess") to
40716	// include in API requests with the JSON null value. By default, fields
40717	// with empty values are omitted from API requests. However, any field
40718	// with an empty value appearing in NullFields will be sent to the
40719	// server as null. It is an error if a field in this list has a
40720	// non-empty value. This may be used to include null fields in Patch
40721	// requests.
40722	NullFields []string `json:"-"`
40723}
40724
40725func (s *SubnetworksSetPrivateIpGoogleAccessRequest) MarshalJSON() ([]byte, error) {
40726	type NoMethod SubnetworksSetPrivateIpGoogleAccessRequest
40727	raw := NoMethod(*s)
40728	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40729}
40730
40731type TCPHealthCheck struct {
40732	// Port: The TCP port number for the health check request. The default
40733	// value is 80. Valid values are 1 through 65535.
40734	Port int64 `json:"port,omitempty"`
40735
40736	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
40737	// both port and port_name are defined, port takes precedence.
40738	PortName string `json:"portName,omitempty"`
40739
40740	// PortSpecification: Specifies how port is selected for health
40741	// checking, can be one of following values:
40742	// USE_FIXED_PORT: The port number in port is used for health
40743	// checking.
40744	// USE_NAMED_PORT: The portName is used for health
40745	// checking.
40746	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
40747	// each network endpoint is used for health checking. For other
40748	// backends, the port or named port specified in the Backend Service is
40749	// used for health checking.
40750	//
40751	//
40752	// If not specified, TCP health check follows behavior specified in port
40753	// and portName fields.
40754	//
40755	// Possible values:
40756	//   "USE_FIXED_PORT"
40757	//   "USE_NAMED_PORT"
40758	//   "USE_SERVING_PORT"
40759	PortSpecification string `json:"portSpecification,omitempty"`
40760
40761	// ProxyHeader: Specifies the type of proxy header to append before
40762	// sending data to the backend, either NONE or PROXY_V1. The default is
40763	// NONE.
40764	//
40765	// Possible values:
40766	//   "NONE"
40767	//   "PROXY_V1"
40768	ProxyHeader string `json:"proxyHeader,omitempty"`
40769
40770	// Request: The application data to send once the TCP connection has
40771	// been established (default value is empty). If both request and
40772	// response are empty, the connection establishment alone will indicate
40773	// health. The request data can only be ASCII.
40774	Request string `json:"request,omitempty"`
40775
40776	// Response: The bytes to match against the beginning of the response
40777	// data. If left empty (the default value), any response will indicate
40778	// health. The response data can only be ASCII.
40779	Response string `json:"response,omitempty"`
40780
40781	// ForceSendFields is a list of field names (e.g. "Port") to
40782	// unconditionally include in API requests. By default, fields with
40783	// empty values are omitted from API requests. However, any non-pointer,
40784	// non-interface field appearing in ForceSendFields will be sent to the
40785	// server regardless of whether the field is empty or not. This may be
40786	// used to include empty fields in Patch requests.
40787	ForceSendFields []string `json:"-"`
40788
40789	// NullFields is a list of field names (e.g. "Port") to include in API
40790	// requests with the JSON null value. By default, fields with empty
40791	// values are omitted from API requests. However, any field with an
40792	// empty value appearing in NullFields will be sent to the server as
40793	// null. It is an error if a field in this list has a non-empty value.
40794	// This may be used to include null fields in Patch requests.
40795	NullFields []string `json:"-"`
40796}
40797
40798func (s *TCPHealthCheck) MarshalJSON() ([]byte, error) {
40799	type NoMethod TCPHealthCheck
40800	raw := NoMethod(*s)
40801	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40802}
40803
40804// Tags: A set of instance tags.
40805type Tags struct {
40806	// Fingerprint: Specifies a fingerprint for this request, which is
40807	// essentially a hash of the tags' contents and used for optimistic
40808	// locking. The fingerprint is initially generated by Compute Engine and
40809	// changes after every request to modify or update tags. You must always
40810	// provide an up-to-date fingerprint hash in order to update or change
40811	// tags.
40812	//
40813	// To see the latest fingerprint, make get() request to the instance.
40814	Fingerprint string `json:"fingerprint,omitempty"`
40815
40816	// Items: An array of tags. Each tag must be 1-63 characters long, and
40817	// comply with RFC1035.
40818	Items []string `json:"items,omitempty"`
40819
40820	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
40821	// unconditionally include in API requests. By default, fields with
40822	// empty values are omitted from API requests. However, any non-pointer,
40823	// non-interface field appearing in ForceSendFields will be sent to the
40824	// server regardless of whether the field is empty or not. This may be
40825	// used to include empty fields in Patch requests.
40826	ForceSendFields []string `json:"-"`
40827
40828	// NullFields is a list of field names (e.g. "Fingerprint") to include
40829	// in API requests with the JSON null value. By default, fields with
40830	// empty values are omitted from API requests. However, any field with
40831	// an empty value appearing in NullFields will be sent to the server as
40832	// null. It is an error if a field in this list has a non-empty value.
40833	// This may be used to include null fields in Patch requests.
40834	NullFields []string `json:"-"`
40835}
40836
40837func (s *Tags) MarshalJSON() ([]byte, error) {
40838	type NoMethod Tags
40839	raw := NoMethod(*s)
40840	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40841}
40842
40843type TargetHttpProxiesScopedList struct {
40844	// TargetHttpProxies: A list of TargetHttpProxies contained in this
40845	// scope.
40846	TargetHttpProxies []*TargetHttpProxy `json:"targetHttpProxies,omitempty"`
40847
40848	// Warning: Informational warning which replaces the list of backend
40849	// services when the list is empty.
40850	Warning *TargetHttpProxiesScopedListWarning `json:"warning,omitempty"`
40851
40852	// ForceSendFields is a list of field names (e.g. "TargetHttpProxies")
40853	// to unconditionally include in API requests. By default, fields with
40854	// empty values are omitted from API requests. However, any non-pointer,
40855	// non-interface field appearing in ForceSendFields will be sent to the
40856	// server regardless of whether the field is empty or not. This may be
40857	// used to include empty fields in Patch requests.
40858	ForceSendFields []string `json:"-"`
40859
40860	// NullFields is a list of field names (e.g. "TargetHttpProxies") to
40861	// include in API requests with the JSON null value. By default, fields
40862	// with empty values are omitted from API requests. However, any field
40863	// with an empty value appearing in NullFields will be sent to the
40864	// server as null. It is an error if a field in this list has a
40865	// non-empty value. This may be used to include null fields in Patch
40866	// requests.
40867	NullFields []string `json:"-"`
40868}
40869
40870func (s *TargetHttpProxiesScopedList) MarshalJSON() ([]byte, error) {
40871	type NoMethod TargetHttpProxiesScopedList
40872	raw := NoMethod(*s)
40873	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40874}
40875
40876// TargetHttpProxiesScopedListWarning: Informational warning which
40877// replaces the list of backend services when the list is empty.
40878type TargetHttpProxiesScopedListWarning struct {
40879	// Code: [Output Only] A warning code, if applicable. For example,
40880	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40881	// the response.
40882	//
40883	// Possible values:
40884	//   "CLEANUP_FAILED"
40885	//   "DEPRECATED_RESOURCE_USED"
40886	//   "DEPRECATED_TYPE_USED"
40887	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40888	//   "EXPERIMENTAL_TYPE_USED"
40889	//   "EXTERNAL_API_WARNING"
40890	//   "FIELD_VALUE_OVERRIDEN"
40891	//   "INJECTED_KERNELS_DEPRECATED"
40892	//   "MISSING_TYPE_DEPENDENCY"
40893	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40894	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40895	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40896	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40897	//   "NEXT_HOP_NOT_RUNNING"
40898	//   "NOT_CRITICAL_ERROR"
40899	//   "NO_RESULTS_ON_PAGE"
40900	//   "REQUIRED_TOS_AGREEMENT"
40901	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40902	//   "RESOURCE_NOT_DELETED"
40903	//   "SCHEMA_VALIDATION_IGNORED"
40904	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40905	//   "UNDECLARED_PROPERTIES"
40906	//   "UNREACHABLE"
40907	Code string `json:"code,omitempty"`
40908
40909	// Data: [Output Only] Metadata about this warning in key: value format.
40910	// For example:
40911	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40912	Data []*TargetHttpProxiesScopedListWarningData `json:"data,omitempty"`
40913
40914	// Message: [Output Only] A human-readable description of the warning
40915	// code.
40916	Message string `json:"message,omitempty"`
40917
40918	// ForceSendFields is a list of field names (e.g. "Code") to
40919	// unconditionally include in API requests. By default, fields with
40920	// empty values are omitted from API requests. However, any non-pointer,
40921	// non-interface field appearing in ForceSendFields will be sent to the
40922	// server regardless of whether the field is empty or not. This may be
40923	// used to include empty fields in Patch requests.
40924	ForceSendFields []string `json:"-"`
40925
40926	// NullFields is a list of field names (e.g. "Code") to include in API
40927	// requests with the JSON null value. By default, fields with empty
40928	// values are omitted from API requests. However, any field with an
40929	// empty value appearing in NullFields will be sent to the server as
40930	// null. It is an error if a field in this list has a non-empty value.
40931	// This may be used to include null fields in Patch requests.
40932	NullFields []string `json:"-"`
40933}
40934
40935func (s *TargetHttpProxiesScopedListWarning) MarshalJSON() ([]byte, error) {
40936	type NoMethod TargetHttpProxiesScopedListWarning
40937	raw := NoMethod(*s)
40938	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40939}
40940
40941type TargetHttpProxiesScopedListWarningData struct {
40942	// Key: [Output Only] A key that provides more detail on the warning
40943	// being returned. For example, for warnings where there are no results
40944	// in a list request for a particular zone, this key might be scope and
40945	// the key value might be the zone name. Other examples might be a key
40946	// indicating a deprecated resource and a suggested replacement, or a
40947	// warning about invalid network settings (for example, if an instance
40948	// attempts to perform IP forwarding but is not enabled for IP
40949	// forwarding).
40950	Key string `json:"key,omitempty"`
40951
40952	// Value: [Output Only] A warning data value corresponding to the key.
40953	Value string `json:"value,omitempty"`
40954
40955	// ForceSendFields is a list of field names (e.g. "Key") to
40956	// unconditionally include in API requests. By default, fields with
40957	// empty values are omitted from API requests. However, any non-pointer,
40958	// non-interface field appearing in ForceSendFields will be sent to the
40959	// server regardless of whether the field is empty or not. This may be
40960	// used to include empty fields in Patch requests.
40961	ForceSendFields []string `json:"-"`
40962
40963	// NullFields is a list of field names (e.g. "Key") to include in API
40964	// requests with the JSON null value. By default, fields with empty
40965	// values are omitted from API requests. However, any field with an
40966	// empty value appearing in NullFields will be sent to the server as
40967	// null. It is an error if a field in this list has a non-empty value.
40968	// This may be used to include null fields in Patch requests.
40969	NullFields []string `json:"-"`
40970}
40971
40972func (s *TargetHttpProxiesScopedListWarningData) MarshalJSON() ([]byte, error) {
40973	type NoMethod TargetHttpProxiesScopedListWarningData
40974	raw := NoMethod(*s)
40975	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40976}
40977
40978// TargetHttpProxy: Represents a Target HTTP Proxy resource.
40979//
40980// Google Compute Engine has two Target HTTP Proxy resources:
40981//
40982// * [Global](/compute/docs/reference/rest/latest/targetHttpProxies) *
40983// [Regional](/compute/docs/reference/rest/latest/regionTargetHttpProxies
40984// )
40985//
40986// A target HTTP proxy is a component of GCP HTTP load balancers.
40987//
40988// * targetHttpProxies are used by external HTTP load balancers and
40989// Traffic Director. * regionTargetHttpProxies are used by internal HTTP
40990// load balancers.
40991//
40992// Forwarding rules reference a target HTTP proxy, and the target proxy
40993// then references a URL map. For more information, read Using Target
40994// Proxies and  Forwarding rule concepts. (== resource_for
40995// {$api_version}.targetHttpProxies ==) (== resource_for
40996// {$api_version}.regionTargetHttpProxies ==)
40997type TargetHttpProxy struct {
40998	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
40999	// format.
41000	CreationTimestamp string `json:"creationTimestamp,omitempty"`
41001
41002	// Description: An optional description of this resource. Provide this
41003	// property when you create the resource.
41004	Description string `json:"description,omitempty"`
41005
41006	// Id: [Output Only] The unique identifier for the resource. This
41007	// identifier is defined by the server.
41008	Id uint64 `json:"id,omitempty,string"`
41009
41010	// Kind: [Output Only] Type of resource. Always compute#targetHttpProxy
41011	// for target HTTP proxies.
41012	Kind string `json:"kind,omitempty"`
41013
41014	// Name: Name of the resource. Provided by the client when the resource
41015	// is created. The name must be 1-63 characters long, and comply with
41016	// RFC1035. Specifically, the name must be 1-63 characters long and
41017	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
41018	// the first character must be a lowercase letter, and all following
41019	// characters must be a dash, lowercase letter, or digit, except the
41020	// last character, which cannot be a dash.
41021	Name string `json:"name,omitempty"`
41022
41023	// ProxyBind: This field only applies when the loadBalancingScheme is
41024	// INTERNAL_SELF_MANAGED. When set to true the Envoy binds on the IP
41025	// address specified by the forwarding rule. Default is false.
41026	ProxyBind bool `json:"proxyBind,omitempty"`
41027
41028	// Region: [Output Only] URL of the region where the regional Target
41029	// HTTP Proxy resides. This field is not applicable to global Target
41030	// HTTP Proxies.
41031	Region string `json:"region,omitempty"`
41032
41033	// SelfLink: [Output Only] Server-defined URL for the resource.
41034	SelfLink string `json:"selfLink,omitempty"`
41035
41036	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
41037	// with the resource id.
41038	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
41039
41040	// UrlMap: URL to the UrlMap resource that defines the mapping from URL
41041	// to the BackendService.
41042	UrlMap string `json:"urlMap,omitempty"`
41043
41044	// ServerResponse contains the HTTP response code and headers from the
41045	// server.
41046	googleapi.ServerResponse `json:"-"`
41047
41048	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
41049	// to unconditionally include in API requests. By default, fields with
41050	// empty values are omitted from API requests. However, any non-pointer,
41051	// non-interface field appearing in ForceSendFields will be sent to the
41052	// server regardless of whether the field is empty or not. This may be
41053	// used to include empty fields in Patch requests.
41054	ForceSendFields []string `json:"-"`
41055
41056	// NullFields is a list of field names (e.g. "CreationTimestamp") to
41057	// include in API requests with the JSON null value. By default, fields
41058	// with empty values are omitted from API requests. However, any field
41059	// with an empty value appearing in NullFields will be sent to the
41060	// server as null. It is an error if a field in this list has a
41061	// non-empty value. This may be used to include null fields in Patch
41062	// requests.
41063	NullFields []string `json:"-"`
41064}
41065
41066func (s *TargetHttpProxy) MarshalJSON() ([]byte, error) {
41067	type NoMethod TargetHttpProxy
41068	raw := NoMethod(*s)
41069	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41070}
41071
41072type TargetHttpProxyAggregatedList struct {
41073	// Id: [Output Only] Unique identifier for the resource; defined by the
41074	// server.
41075	Id string `json:"id,omitempty"`
41076
41077	// Items: A list of TargetHttpProxiesScopedList resources.
41078	Items map[string]TargetHttpProxiesScopedList `json:"items,omitempty"`
41079
41080	// Kind: [Output Only] Type of resource. Always
41081	// compute#targetHttpProxyAggregatedList for lists of Target HTTP
41082	// Proxies.
41083	Kind string `json:"kind,omitempty"`
41084
41085	// NextPageToken: [Output Only] This token allows you to get the next
41086	// page of results for list requests. If the number of results is larger
41087	// than maxResults, use the nextPageToken as a value for the query
41088	// parameter pageToken in the next list request. Subsequent list
41089	// requests will have their own nextPageToken to continue paging through
41090	// the results.
41091	NextPageToken string `json:"nextPageToken,omitempty"`
41092
41093	// SelfLink: [Output Only] Server-defined URL for this resource.
41094	SelfLink string `json:"selfLink,omitempty"`
41095
41096	// Warning: [Output Only] Informational warning message.
41097	Warning *TargetHttpProxyAggregatedListWarning `json:"warning,omitempty"`
41098
41099	// ServerResponse contains the HTTP response code and headers from the
41100	// server.
41101	googleapi.ServerResponse `json:"-"`
41102
41103	// ForceSendFields is a list of field names (e.g. "Id") to
41104	// unconditionally include in API requests. By default, fields with
41105	// empty values are omitted from API requests. However, any non-pointer,
41106	// non-interface field appearing in ForceSendFields will be sent to the
41107	// server regardless of whether the field is empty or not. This may be
41108	// used to include empty fields in Patch requests.
41109	ForceSendFields []string `json:"-"`
41110
41111	// NullFields is a list of field names (e.g. "Id") to include in API
41112	// requests with the JSON null value. By default, fields with empty
41113	// values are omitted from API requests. However, any field with an
41114	// empty value appearing in NullFields will be sent to the server as
41115	// null. It is an error if a field in this list has a non-empty value.
41116	// This may be used to include null fields in Patch requests.
41117	NullFields []string `json:"-"`
41118}
41119
41120func (s *TargetHttpProxyAggregatedList) MarshalJSON() ([]byte, error) {
41121	type NoMethod TargetHttpProxyAggregatedList
41122	raw := NoMethod(*s)
41123	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41124}
41125
41126// TargetHttpProxyAggregatedListWarning: [Output Only] Informational
41127// warning message.
41128type TargetHttpProxyAggregatedListWarning struct {
41129	// Code: [Output Only] A warning code, if applicable. For example,
41130	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41131	// the response.
41132	//
41133	// Possible values:
41134	//   "CLEANUP_FAILED"
41135	//   "DEPRECATED_RESOURCE_USED"
41136	//   "DEPRECATED_TYPE_USED"
41137	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41138	//   "EXPERIMENTAL_TYPE_USED"
41139	//   "EXTERNAL_API_WARNING"
41140	//   "FIELD_VALUE_OVERRIDEN"
41141	//   "INJECTED_KERNELS_DEPRECATED"
41142	//   "MISSING_TYPE_DEPENDENCY"
41143	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41144	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41145	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41146	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41147	//   "NEXT_HOP_NOT_RUNNING"
41148	//   "NOT_CRITICAL_ERROR"
41149	//   "NO_RESULTS_ON_PAGE"
41150	//   "REQUIRED_TOS_AGREEMENT"
41151	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41152	//   "RESOURCE_NOT_DELETED"
41153	//   "SCHEMA_VALIDATION_IGNORED"
41154	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41155	//   "UNDECLARED_PROPERTIES"
41156	//   "UNREACHABLE"
41157	Code string `json:"code,omitempty"`
41158
41159	// Data: [Output Only] Metadata about this warning in key: value format.
41160	// For example:
41161	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41162	Data []*TargetHttpProxyAggregatedListWarningData `json:"data,omitempty"`
41163
41164	// Message: [Output Only] A human-readable description of the warning
41165	// code.
41166	Message string `json:"message,omitempty"`
41167
41168	// ForceSendFields is a list of field names (e.g. "Code") to
41169	// unconditionally include in API requests. By default, fields with
41170	// empty values are omitted from API requests. However, any non-pointer,
41171	// non-interface field appearing in ForceSendFields will be sent to the
41172	// server regardless of whether the field is empty or not. This may be
41173	// used to include empty fields in Patch requests.
41174	ForceSendFields []string `json:"-"`
41175
41176	// NullFields is a list of field names (e.g. "Code") to include in API
41177	// requests with the JSON null value. By default, fields with empty
41178	// values are omitted from API requests. However, any field with an
41179	// empty value appearing in NullFields will be sent to the server as
41180	// null. It is an error if a field in this list has a non-empty value.
41181	// This may be used to include null fields in Patch requests.
41182	NullFields []string `json:"-"`
41183}
41184
41185func (s *TargetHttpProxyAggregatedListWarning) MarshalJSON() ([]byte, error) {
41186	type NoMethod TargetHttpProxyAggregatedListWarning
41187	raw := NoMethod(*s)
41188	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41189}
41190
41191type TargetHttpProxyAggregatedListWarningData struct {
41192	// Key: [Output Only] A key that provides more detail on the warning
41193	// being returned. For example, for warnings where there are no results
41194	// in a list request for a particular zone, this key might be scope and
41195	// the key value might be the zone name. Other examples might be a key
41196	// indicating a deprecated resource and a suggested replacement, or a
41197	// warning about invalid network settings (for example, if an instance
41198	// attempts to perform IP forwarding but is not enabled for IP
41199	// forwarding).
41200	Key string `json:"key,omitempty"`
41201
41202	// Value: [Output Only] A warning data value corresponding to the key.
41203	Value string `json:"value,omitempty"`
41204
41205	// ForceSendFields is a list of field names (e.g. "Key") to
41206	// unconditionally include in API requests. By default, fields with
41207	// empty values are omitted from API requests. However, any non-pointer,
41208	// non-interface field appearing in ForceSendFields will be sent to the
41209	// server regardless of whether the field is empty or not. This may be
41210	// used to include empty fields in Patch requests.
41211	ForceSendFields []string `json:"-"`
41212
41213	// NullFields is a list of field names (e.g. "Key") to include in API
41214	// requests with the JSON null value. By default, fields with empty
41215	// values are omitted from API requests. However, any field with an
41216	// empty value appearing in NullFields will be sent to the server as
41217	// null. It is an error if a field in this list has a non-empty value.
41218	// This may be used to include null fields in Patch requests.
41219	NullFields []string `json:"-"`
41220}
41221
41222func (s *TargetHttpProxyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
41223	type NoMethod TargetHttpProxyAggregatedListWarningData
41224	raw := NoMethod(*s)
41225	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41226}
41227
41228// TargetHttpProxyList: A list of TargetHttpProxy resources.
41229type TargetHttpProxyList struct {
41230	// Id: [Output Only] Unique identifier for the resource; defined by the
41231	// server.
41232	Id string `json:"id,omitempty"`
41233
41234	// Items: A list of TargetHttpProxy resources.
41235	Items []*TargetHttpProxy `json:"items,omitempty"`
41236
41237	// Kind: Type of resource. Always compute#targetHttpProxyList for lists
41238	// of target HTTP proxies.
41239	Kind string `json:"kind,omitempty"`
41240
41241	// NextPageToken: [Output Only] This token allows you to get the next
41242	// page of results for list requests. If the number of results is larger
41243	// than maxResults, use the nextPageToken as a value for the query
41244	// parameter pageToken in the next list request. Subsequent list
41245	// requests will have their own nextPageToken to continue paging through
41246	// the results.
41247	NextPageToken string `json:"nextPageToken,omitempty"`
41248
41249	// SelfLink: [Output Only] Server-defined URL for this resource.
41250	SelfLink string `json:"selfLink,omitempty"`
41251
41252	// Warning: [Output Only] Informational warning message.
41253	Warning *TargetHttpProxyListWarning `json:"warning,omitempty"`
41254
41255	// ServerResponse contains the HTTP response code and headers from the
41256	// server.
41257	googleapi.ServerResponse `json:"-"`
41258
41259	// ForceSendFields is a list of field names (e.g. "Id") to
41260	// unconditionally include in API requests. By default, fields with
41261	// empty values are omitted from API requests. However, any non-pointer,
41262	// non-interface field appearing in ForceSendFields will be sent to the
41263	// server regardless of whether the field is empty or not. This may be
41264	// used to include empty fields in Patch requests.
41265	ForceSendFields []string `json:"-"`
41266
41267	// NullFields is a list of field names (e.g. "Id") to include in API
41268	// requests with the JSON null value. By default, fields with empty
41269	// values are omitted from API requests. However, any field with an
41270	// empty value appearing in NullFields will be sent to the server as
41271	// null. It is an error if a field in this list has a non-empty value.
41272	// This may be used to include null fields in Patch requests.
41273	NullFields []string `json:"-"`
41274}
41275
41276func (s *TargetHttpProxyList) MarshalJSON() ([]byte, error) {
41277	type NoMethod TargetHttpProxyList
41278	raw := NoMethod(*s)
41279	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41280}
41281
41282// TargetHttpProxyListWarning: [Output Only] Informational warning
41283// message.
41284type TargetHttpProxyListWarning struct {
41285	// Code: [Output Only] A warning code, if applicable. For example,
41286	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41287	// the response.
41288	//
41289	// Possible values:
41290	//   "CLEANUP_FAILED"
41291	//   "DEPRECATED_RESOURCE_USED"
41292	//   "DEPRECATED_TYPE_USED"
41293	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41294	//   "EXPERIMENTAL_TYPE_USED"
41295	//   "EXTERNAL_API_WARNING"
41296	//   "FIELD_VALUE_OVERRIDEN"
41297	//   "INJECTED_KERNELS_DEPRECATED"
41298	//   "MISSING_TYPE_DEPENDENCY"
41299	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41300	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41301	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41302	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41303	//   "NEXT_HOP_NOT_RUNNING"
41304	//   "NOT_CRITICAL_ERROR"
41305	//   "NO_RESULTS_ON_PAGE"
41306	//   "REQUIRED_TOS_AGREEMENT"
41307	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41308	//   "RESOURCE_NOT_DELETED"
41309	//   "SCHEMA_VALIDATION_IGNORED"
41310	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41311	//   "UNDECLARED_PROPERTIES"
41312	//   "UNREACHABLE"
41313	Code string `json:"code,omitempty"`
41314
41315	// Data: [Output Only] Metadata about this warning in key: value format.
41316	// For example:
41317	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41318	Data []*TargetHttpProxyListWarningData `json:"data,omitempty"`
41319
41320	// Message: [Output Only] A human-readable description of the warning
41321	// code.
41322	Message string `json:"message,omitempty"`
41323
41324	// ForceSendFields is a list of field names (e.g. "Code") to
41325	// unconditionally include in API requests. By default, fields with
41326	// empty values are omitted from API requests. However, any non-pointer,
41327	// non-interface field appearing in ForceSendFields will be sent to the
41328	// server regardless of whether the field is empty or not. This may be
41329	// used to include empty fields in Patch requests.
41330	ForceSendFields []string `json:"-"`
41331
41332	// NullFields is a list of field names (e.g. "Code") to include in API
41333	// requests with the JSON null value. By default, fields with empty
41334	// values are omitted from API requests. However, any field with an
41335	// empty value appearing in NullFields will be sent to the server as
41336	// null. It is an error if a field in this list has a non-empty value.
41337	// This may be used to include null fields in Patch requests.
41338	NullFields []string `json:"-"`
41339}
41340
41341func (s *TargetHttpProxyListWarning) MarshalJSON() ([]byte, error) {
41342	type NoMethod TargetHttpProxyListWarning
41343	raw := NoMethod(*s)
41344	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41345}
41346
41347type TargetHttpProxyListWarningData struct {
41348	// Key: [Output Only] A key that provides more detail on the warning
41349	// being returned. For example, for warnings where there are no results
41350	// in a list request for a particular zone, this key might be scope and
41351	// the key value might be the zone name. Other examples might be a key
41352	// indicating a deprecated resource and a suggested replacement, or a
41353	// warning about invalid network settings (for example, if an instance
41354	// attempts to perform IP forwarding but is not enabled for IP
41355	// forwarding).
41356	Key string `json:"key,omitempty"`
41357
41358	// Value: [Output Only] A warning data value corresponding to the key.
41359	Value string `json:"value,omitempty"`
41360
41361	// ForceSendFields is a list of field names (e.g. "Key") to
41362	// unconditionally include in API requests. By default, fields with
41363	// empty values are omitted from API requests. However, any non-pointer,
41364	// non-interface field appearing in ForceSendFields will be sent to the
41365	// server regardless of whether the field is empty or not. This may be
41366	// used to include empty fields in Patch requests.
41367	ForceSendFields []string `json:"-"`
41368
41369	// NullFields is a list of field names (e.g. "Key") to include in API
41370	// requests with the JSON null value. By default, fields with empty
41371	// values are omitted from API requests. However, any field with an
41372	// empty value appearing in NullFields will be sent to the server as
41373	// null. It is an error if a field in this list has a non-empty value.
41374	// This may be used to include null fields in Patch requests.
41375	NullFields []string `json:"-"`
41376}
41377
41378func (s *TargetHttpProxyListWarningData) MarshalJSON() ([]byte, error) {
41379	type NoMethod TargetHttpProxyListWarningData
41380	raw := NoMethod(*s)
41381	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41382}
41383
41384type TargetHttpsProxiesScopedList struct {
41385	// TargetHttpsProxies: A list of TargetHttpsProxies contained in this
41386	// scope.
41387	TargetHttpsProxies []*TargetHttpsProxy `json:"targetHttpsProxies,omitempty"`
41388
41389	// Warning: Informational warning which replaces the list of backend
41390	// services when the list is empty.
41391	Warning *TargetHttpsProxiesScopedListWarning `json:"warning,omitempty"`
41392
41393	// ForceSendFields is a list of field names (e.g. "TargetHttpsProxies")
41394	// to unconditionally include in API requests. By default, fields with
41395	// empty values are omitted from API requests. However, any non-pointer,
41396	// non-interface field appearing in ForceSendFields will be sent to the
41397	// server regardless of whether the field is empty or not. This may be
41398	// used to include empty fields in Patch requests.
41399	ForceSendFields []string `json:"-"`
41400
41401	// NullFields is a list of field names (e.g. "TargetHttpsProxies") to
41402	// include in API requests with the JSON null value. By default, fields
41403	// with empty values are omitted from API requests. However, any field
41404	// with an empty value appearing in NullFields will be sent to the
41405	// server as null. It is an error if a field in this list has a
41406	// non-empty value. This may be used to include null fields in Patch
41407	// requests.
41408	NullFields []string `json:"-"`
41409}
41410
41411func (s *TargetHttpsProxiesScopedList) MarshalJSON() ([]byte, error) {
41412	type NoMethod TargetHttpsProxiesScopedList
41413	raw := NoMethod(*s)
41414	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41415}
41416
41417// TargetHttpsProxiesScopedListWarning: Informational warning which
41418// replaces the list of backend services when the list is empty.
41419type TargetHttpsProxiesScopedListWarning struct {
41420	// Code: [Output Only] A warning code, if applicable. For example,
41421	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41422	// the response.
41423	//
41424	// Possible values:
41425	//   "CLEANUP_FAILED"
41426	//   "DEPRECATED_RESOURCE_USED"
41427	//   "DEPRECATED_TYPE_USED"
41428	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41429	//   "EXPERIMENTAL_TYPE_USED"
41430	//   "EXTERNAL_API_WARNING"
41431	//   "FIELD_VALUE_OVERRIDEN"
41432	//   "INJECTED_KERNELS_DEPRECATED"
41433	//   "MISSING_TYPE_DEPENDENCY"
41434	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41435	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41436	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41437	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41438	//   "NEXT_HOP_NOT_RUNNING"
41439	//   "NOT_CRITICAL_ERROR"
41440	//   "NO_RESULTS_ON_PAGE"
41441	//   "REQUIRED_TOS_AGREEMENT"
41442	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41443	//   "RESOURCE_NOT_DELETED"
41444	//   "SCHEMA_VALIDATION_IGNORED"
41445	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41446	//   "UNDECLARED_PROPERTIES"
41447	//   "UNREACHABLE"
41448	Code string `json:"code,omitempty"`
41449
41450	// Data: [Output Only] Metadata about this warning in key: value format.
41451	// For example:
41452	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41453	Data []*TargetHttpsProxiesScopedListWarningData `json:"data,omitempty"`
41454
41455	// Message: [Output Only] A human-readable description of the warning
41456	// code.
41457	Message string `json:"message,omitempty"`
41458
41459	// ForceSendFields is a list of field names (e.g. "Code") to
41460	// unconditionally include in API requests. By default, fields with
41461	// empty values are omitted from API requests. However, any non-pointer,
41462	// non-interface field appearing in ForceSendFields will be sent to the
41463	// server regardless of whether the field is empty or not. This may be
41464	// used to include empty fields in Patch requests.
41465	ForceSendFields []string `json:"-"`
41466
41467	// NullFields is a list of field names (e.g. "Code") to include in API
41468	// requests with the JSON null value. By default, fields with empty
41469	// values are omitted from API requests. However, any field with an
41470	// empty value appearing in NullFields will be sent to the server as
41471	// null. It is an error if a field in this list has a non-empty value.
41472	// This may be used to include null fields in Patch requests.
41473	NullFields []string `json:"-"`
41474}
41475
41476func (s *TargetHttpsProxiesScopedListWarning) MarshalJSON() ([]byte, error) {
41477	type NoMethod TargetHttpsProxiesScopedListWarning
41478	raw := NoMethod(*s)
41479	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41480}
41481
41482type TargetHttpsProxiesScopedListWarningData struct {
41483	// Key: [Output Only] A key that provides more detail on the warning
41484	// being returned. For example, for warnings where there are no results
41485	// in a list request for a particular zone, this key might be scope and
41486	// the key value might be the zone name. Other examples might be a key
41487	// indicating a deprecated resource and a suggested replacement, or a
41488	// warning about invalid network settings (for example, if an instance
41489	// attempts to perform IP forwarding but is not enabled for IP
41490	// forwarding).
41491	Key string `json:"key,omitempty"`
41492
41493	// Value: [Output Only] A warning data value corresponding to the key.
41494	Value string `json:"value,omitempty"`
41495
41496	// ForceSendFields is a list of field names (e.g. "Key") to
41497	// unconditionally include in API requests. By default, fields with
41498	// empty values are omitted from API requests. However, any non-pointer,
41499	// non-interface field appearing in ForceSendFields will be sent to the
41500	// server regardless of whether the field is empty or not. This may be
41501	// used to include empty fields in Patch requests.
41502	ForceSendFields []string `json:"-"`
41503
41504	// NullFields is a list of field names (e.g. "Key") to include in API
41505	// requests with the JSON null value. By default, fields with empty
41506	// values are omitted from API requests. However, any field with an
41507	// empty value appearing in NullFields will be sent to the server as
41508	// null. It is an error if a field in this list has a non-empty value.
41509	// This may be used to include null fields in Patch requests.
41510	NullFields []string `json:"-"`
41511}
41512
41513func (s *TargetHttpsProxiesScopedListWarningData) MarshalJSON() ([]byte, error) {
41514	type NoMethod TargetHttpsProxiesScopedListWarningData
41515	raw := NoMethod(*s)
41516	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41517}
41518
41519type TargetHttpsProxiesSetQuicOverrideRequest struct {
41520	// QuicOverride: QUIC policy for the TargetHttpsProxy resource.
41521	//
41522	// Possible values:
41523	//   "DISABLE"
41524	//   "ENABLE"
41525	//   "NONE"
41526	QuicOverride string `json:"quicOverride,omitempty"`
41527
41528	// ForceSendFields is a list of field names (e.g. "QuicOverride") to
41529	// unconditionally include in API requests. By default, fields with
41530	// empty values are omitted from API requests. However, any non-pointer,
41531	// non-interface field appearing in ForceSendFields will be sent to the
41532	// server regardless of whether the field is empty or not. This may be
41533	// used to include empty fields in Patch requests.
41534	ForceSendFields []string `json:"-"`
41535
41536	// NullFields is a list of field names (e.g. "QuicOverride") to include
41537	// in API requests with the JSON null value. By default, fields with
41538	// empty values are omitted from API requests. However, any field with
41539	// an empty value appearing in NullFields will be sent to the server as
41540	// null. It is an error if a field in this list has a non-empty value.
41541	// This may be used to include null fields in Patch requests.
41542	NullFields []string `json:"-"`
41543}
41544
41545func (s *TargetHttpsProxiesSetQuicOverrideRequest) MarshalJSON() ([]byte, error) {
41546	type NoMethod TargetHttpsProxiesSetQuicOverrideRequest
41547	raw := NoMethod(*s)
41548	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41549}
41550
41551type TargetHttpsProxiesSetSslCertificatesRequest struct {
41552	// SslCertificates: New set of SslCertificate resources to associate
41553	// with this TargetHttpsProxy resource. Currently exactly one
41554	// SslCertificate resource must be specified.
41555	SslCertificates []string `json:"sslCertificates,omitempty"`
41556
41557	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
41558	// unconditionally include in API requests. By default, fields with
41559	// empty values are omitted from API requests. However, any non-pointer,
41560	// non-interface field appearing in ForceSendFields will be sent to the
41561	// server regardless of whether the field is empty or not. This may be
41562	// used to include empty fields in Patch requests.
41563	ForceSendFields []string `json:"-"`
41564
41565	// NullFields is a list of field names (e.g. "SslCertificates") to
41566	// include in API requests with the JSON null value. By default, fields
41567	// with empty values are omitted from API requests. However, any field
41568	// with an empty value appearing in NullFields will be sent to the
41569	// server as null. It is an error if a field in this list has a
41570	// non-empty value. This may be used to include null fields in Patch
41571	// requests.
41572	NullFields []string `json:"-"`
41573}
41574
41575func (s *TargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
41576	type NoMethod TargetHttpsProxiesSetSslCertificatesRequest
41577	raw := NoMethod(*s)
41578	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41579}
41580
41581// TargetHttpsProxy: Represents a Target HTTPS Proxy resource.
41582//
41583// Google Compute Engine has two Target HTTPS Proxy resources:
41584//
41585// * [Global](/compute/docs/reference/rest/latest/targetHttpsProxies) *
41586// [Regional](/compute/docs/reference/rest/latest/regionTargetHttpsProxie
41587// s)
41588//
41589// A target HTTPS proxy is a component of GCP HTTPS load balancers.
41590//
41591// * targetHttpsProxies are used by external HTTPS load balancers. *
41592// regionTargetHttpsProxies are used by internal HTTPS load
41593// balancers.
41594//
41595// Forwarding rules reference a target HTTPS proxy, and the target proxy
41596// then references a URL map. For more information, read Using Target
41597// Proxies and  Forwarding rule concepts. (== resource_for
41598// {$api_version}.targetHttpsProxies ==) (== resource_for
41599// {$api_version}.regionTargetHttpsProxies ==)
41600type TargetHttpsProxy struct {
41601	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
41602	// format.
41603	CreationTimestamp string `json:"creationTimestamp,omitempty"`
41604
41605	// Description: An optional description of this resource. Provide this
41606	// property when you create the resource.
41607	Description string `json:"description,omitempty"`
41608
41609	// Id: [Output Only] The unique identifier for the resource. This
41610	// identifier is defined by the server.
41611	Id uint64 `json:"id,omitempty,string"`
41612
41613	// Kind: [Output Only] Type of resource. Always compute#targetHttpsProxy
41614	// for target HTTPS proxies.
41615	Kind string `json:"kind,omitempty"`
41616
41617	// Name: Name of the resource. Provided by the client when the resource
41618	// is created. The name must be 1-63 characters long, and comply with
41619	// RFC1035. Specifically, the name must be 1-63 characters long and
41620	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
41621	// the first character must be a lowercase letter, and all following
41622	// characters must be a dash, lowercase letter, or digit, except the
41623	// last character, which cannot be a dash.
41624	Name string `json:"name,omitempty"`
41625
41626	// ProxyBind: This field only applies when the loadBalancingScheme is
41627	// INTERNAL_SELF_MANAGED. When set to true the Envoy binds on the IP
41628	// address specified by the forwarding rule. Default is false.
41629	ProxyBind bool `json:"proxyBind,omitempty"`
41630
41631	// QuicOverride: Specifies the QUIC override policy for this
41632	// TargetHttpsProxy resource. This setting determines whether the load
41633	// balancer attempts to negotiate QUIC with clients. You can specify
41634	// NONE, ENABLE, or DISABLE.
41635	// - When quic-override is set to NONE, Google manages whether QUIC is
41636	// used.
41637	// - When quic-override is set to ENABLE, the load balancer uses QUIC
41638	// when possible.
41639	// - When quic-override is set to DISABLE, the load balancer doesn't use
41640	// QUIC.
41641	// - If the quic-override flag is not specified, NONE is implied.
41642	// -
41643	//
41644	// Possible values:
41645	//   "DISABLE"
41646	//   "ENABLE"
41647	//   "NONE"
41648	QuicOverride string `json:"quicOverride,omitempty"`
41649
41650	// Region: [Output Only] URL of the region where the regional
41651	// TargetHttpsProxy resides. This field is not applicable to global
41652	// TargetHttpsProxies.
41653	Region string `json:"region,omitempty"`
41654
41655	// SelfLink: [Output Only] Server-defined URL for the resource.
41656	SelfLink string `json:"selfLink,omitempty"`
41657
41658	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
41659	// with the resource id.
41660	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
41661
41662	// SslCertificates: URLs to SslCertificate resources that are used to
41663	// authenticate connections between users and the load balancer. At
41664	// least one SSL certificate must be specified. Currently, you may
41665	// specify up to 15 SSL certificates.
41666	SslCertificates []string `json:"sslCertificates,omitempty"`
41667
41668	// SslPolicy: URL of SslPolicy resource that will be associated with the
41669	// TargetHttpsProxy resource. If not set, the TargetHttpsProxy resource
41670	// has no SSL policy configured.
41671	SslPolicy string `json:"sslPolicy,omitempty"`
41672
41673	// UrlMap: A fully-qualified or valid partial URL to the UrlMap resource
41674	// that defines the mapping from URL to the BackendService. For example,
41675	// the following are all valid URLs for specifying a URL map:
41676	// -
41677	// https://www.googleapis.compute/v1/projects/project/global/urlMaps/url-map
41678	// - projects/project/global/urlMaps/url-map
41679	// - global/urlMaps/url-map
41680	UrlMap string `json:"urlMap,omitempty"`
41681
41682	// ServerResponse contains the HTTP response code and headers from the
41683	// server.
41684	googleapi.ServerResponse `json:"-"`
41685
41686	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
41687	// to unconditionally include in API requests. By default, fields with
41688	// empty values are omitted from API requests. However, any non-pointer,
41689	// non-interface field appearing in ForceSendFields will be sent to the
41690	// server regardless of whether the field is empty or not. This may be
41691	// used to include empty fields in Patch requests.
41692	ForceSendFields []string `json:"-"`
41693
41694	// NullFields is a list of field names (e.g. "CreationTimestamp") to
41695	// include in API requests with the JSON null value. By default, fields
41696	// with empty values are omitted from API requests. However, any field
41697	// with an empty value appearing in NullFields will be sent to the
41698	// server as null. It is an error if a field in this list has a
41699	// non-empty value. This may be used to include null fields in Patch
41700	// requests.
41701	NullFields []string `json:"-"`
41702}
41703
41704func (s *TargetHttpsProxy) MarshalJSON() ([]byte, error) {
41705	type NoMethod TargetHttpsProxy
41706	raw := NoMethod(*s)
41707	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41708}
41709
41710type TargetHttpsProxyAggregatedList struct {
41711	// Id: [Output Only] Unique identifier for the resource; defined by the
41712	// server.
41713	Id string `json:"id,omitempty"`
41714
41715	// Items: A list of TargetHttpsProxiesScopedList resources.
41716	Items map[string]TargetHttpsProxiesScopedList `json:"items,omitempty"`
41717
41718	// Kind: [Output Only] Type of resource. Always
41719	// compute#targetHttpsProxyAggregatedList for lists of Target HTTP
41720	// Proxies.
41721	Kind string `json:"kind,omitempty"`
41722
41723	// NextPageToken: [Output Only] This token allows you to get the next
41724	// page of results for list requests. If the number of results is larger
41725	// than maxResults, use the nextPageToken as a value for the query
41726	// parameter pageToken in the next list request. Subsequent list
41727	// requests will have their own nextPageToken to continue paging through
41728	// the results.
41729	NextPageToken string `json:"nextPageToken,omitempty"`
41730
41731	// SelfLink: [Output Only] Server-defined URL for this resource.
41732	SelfLink string `json:"selfLink,omitempty"`
41733
41734	// Warning: [Output Only] Informational warning message.
41735	Warning *TargetHttpsProxyAggregatedListWarning `json:"warning,omitempty"`
41736
41737	// ServerResponse contains the HTTP response code and headers from the
41738	// server.
41739	googleapi.ServerResponse `json:"-"`
41740
41741	// ForceSendFields is a list of field names (e.g. "Id") to
41742	// unconditionally include in API requests. By default, fields with
41743	// empty values are omitted from API requests. However, any non-pointer,
41744	// non-interface field appearing in ForceSendFields will be sent to the
41745	// server regardless of whether the field is empty or not. This may be
41746	// used to include empty fields in Patch requests.
41747	ForceSendFields []string `json:"-"`
41748
41749	// NullFields is a list of field names (e.g. "Id") to include in API
41750	// requests with the JSON null value. By default, fields with empty
41751	// values are omitted from API requests. However, any field with an
41752	// empty value appearing in NullFields will be sent to the server as
41753	// null. It is an error if a field in this list has a non-empty value.
41754	// This may be used to include null fields in Patch requests.
41755	NullFields []string `json:"-"`
41756}
41757
41758func (s *TargetHttpsProxyAggregatedList) MarshalJSON() ([]byte, error) {
41759	type NoMethod TargetHttpsProxyAggregatedList
41760	raw := NoMethod(*s)
41761	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41762}
41763
41764// TargetHttpsProxyAggregatedListWarning: [Output Only] Informational
41765// warning message.
41766type TargetHttpsProxyAggregatedListWarning struct {
41767	// Code: [Output Only] A warning code, if applicable. For example,
41768	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41769	// the response.
41770	//
41771	// Possible values:
41772	//   "CLEANUP_FAILED"
41773	//   "DEPRECATED_RESOURCE_USED"
41774	//   "DEPRECATED_TYPE_USED"
41775	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41776	//   "EXPERIMENTAL_TYPE_USED"
41777	//   "EXTERNAL_API_WARNING"
41778	//   "FIELD_VALUE_OVERRIDEN"
41779	//   "INJECTED_KERNELS_DEPRECATED"
41780	//   "MISSING_TYPE_DEPENDENCY"
41781	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41782	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41783	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41784	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41785	//   "NEXT_HOP_NOT_RUNNING"
41786	//   "NOT_CRITICAL_ERROR"
41787	//   "NO_RESULTS_ON_PAGE"
41788	//   "REQUIRED_TOS_AGREEMENT"
41789	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41790	//   "RESOURCE_NOT_DELETED"
41791	//   "SCHEMA_VALIDATION_IGNORED"
41792	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41793	//   "UNDECLARED_PROPERTIES"
41794	//   "UNREACHABLE"
41795	Code string `json:"code,omitempty"`
41796
41797	// Data: [Output Only] Metadata about this warning in key: value format.
41798	// For example:
41799	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41800	Data []*TargetHttpsProxyAggregatedListWarningData `json:"data,omitempty"`
41801
41802	// Message: [Output Only] A human-readable description of the warning
41803	// code.
41804	Message string `json:"message,omitempty"`
41805
41806	// ForceSendFields is a list of field names (e.g. "Code") to
41807	// unconditionally include in API requests. By default, fields with
41808	// empty values are omitted from API requests. However, any non-pointer,
41809	// non-interface field appearing in ForceSendFields will be sent to the
41810	// server regardless of whether the field is empty or not. This may be
41811	// used to include empty fields in Patch requests.
41812	ForceSendFields []string `json:"-"`
41813
41814	// NullFields is a list of field names (e.g. "Code") to include in API
41815	// requests with the JSON null value. By default, fields with empty
41816	// values are omitted from API requests. However, any field with an
41817	// empty value appearing in NullFields will be sent to the server as
41818	// null. It is an error if a field in this list has a non-empty value.
41819	// This may be used to include null fields in Patch requests.
41820	NullFields []string `json:"-"`
41821}
41822
41823func (s *TargetHttpsProxyAggregatedListWarning) MarshalJSON() ([]byte, error) {
41824	type NoMethod TargetHttpsProxyAggregatedListWarning
41825	raw := NoMethod(*s)
41826	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41827}
41828
41829type TargetHttpsProxyAggregatedListWarningData struct {
41830	// Key: [Output Only] A key that provides more detail on the warning
41831	// being returned. For example, for warnings where there are no results
41832	// in a list request for a particular zone, this key might be scope and
41833	// the key value might be the zone name. Other examples might be a key
41834	// indicating a deprecated resource and a suggested replacement, or a
41835	// warning about invalid network settings (for example, if an instance
41836	// attempts to perform IP forwarding but is not enabled for IP
41837	// forwarding).
41838	Key string `json:"key,omitempty"`
41839
41840	// Value: [Output Only] A warning data value corresponding to the key.
41841	Value string `json:"value,omitempty"`
41842
41843	// ForceSendFields is a list of field names (e.g. "Key") to
41844	// unconditionally include in API requests. By default, fields with
41845	// empty values are omitted from API requests. However, any non-pointer,
41846	// non-interface field appearing in ForceSendFields will be sent to the
41847	// server regardless of whether the field is empty or not. This may be
41848	// used to include empty fields in Patch requests.
41849	ForceSendFields []string `json:"-"`
41850
41851	// NullFields is a list of field names (e.g. "Key") to include in API
41852	// requests with the JSON null value. By default, fields with empty
41853	// values are omitted from API requests. However, any field with an
41854	// empty value appearing in NullFields will be sent to the server as
41855	// null. It is an error if a field in this list has a non-empty value.
41856	// This may be used to include null fields in Patch requests.
41857	NullFields []string `json:"-"`
41858}
41859
41860func (s *TargetHttpsProxyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
41861	type NoMethod TargetHttpsProxyAggregatedListWarningData
41862	raw := NoMethod(*s)
41863	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41864}
41865
41866// TargetHttpsProxyList: Contains a list of TargetHttpsProxy resources.
41867type TargetHttpsProxyList struct {
41868	// Id: [Output Only] Unique identifier for the resource; defined by the
41869	// server.
41870	Id string `json:"id,omitempty"`
41871
41872	// Items: A list of TargetHttpsProxy resources.
41873	Items []*TargetHttpsProxy `json:"items,omitempty"`
41874
41875	// Kind: Type of resource. Always compute#targetHttpsProxyList for lists
41876	// of target HTTPS proxies.
41877	Kind string `json:"kind,omitempty"`
41878
41879	// NextPageToken: [Output Only] This token allows you to get the next
41880	// page of results for list requests. If the number of results is larger
41881	// than maxResults, use the nextPageToken as a value for the query
41882	// parameter pageToken in the next list request. Subsequent list
41883	// requests will have their own nextPageToken to continue paging through
41884	// the results.
41885	NextPageToken string `json:"nextPageToken,omitempty"`
41886
41887	// SelfLink: [Output Only] Server-defined URL for this resource.
41888	SelfLink string `json:"selfLink,omitempty"`
41889
41890	// Warning: [Output Only] Informational warning message.
41891	Warning *TargetHttpsProxyListWarning `json:"warning,omitempty"`
41892
41893	// ServerResponse contains the HTTP response code and headers from the
41894	// server.
41895	googleapi.ServerResponse `json:"-"`
41896
41897	// ForceSendFields is a list of field names (e.g. "Id") to
41898	// unconditionally include in API requests. By default, fields with
41899	// empty values are omitted from API requests. However, any non-pointer,
41900	// non-interface field appearing in ForceSendFields will be sent to the
41901	// server regardless of whether the field is empty or not. This may be
41902	// used to include empty fields in Patch requests.
41903	ForceSendFields []string `json:"-"`
41904
41905	// NullFields is a list of field names (e.g. "Id") to include in API
41906	// requests with the JSON null value. By default, fields with empty
41907	// values are omitted from API requests. However, any field with an
41908	// empty value appearing in NullFields will be sent to the server as
41909	// null. It is an error if a field in this list has a non-empty value.
41910	// This may be used to include null fields in Patch requests.
41911	NullFields []string `json:"-"`
41912}
41913
41914func (s *TargetHttpsProxyList) MarshalJSON() ([]byte, error) {
41915	type NoMethod TargetHttpsProxyList
41916	raw := NoMethod(*s)
41917	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41918}
41919
41920// TargetHttpsProxyListWarning: [Output Only] Informational warning
41921// message.
41922type TargetHttpsProxyListWarning struct {
41923	// Code: [Output Only] A warning code, if applicable. For example,
41924	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41925	// the response.
41926	//
41927	// Possible values:
41928	//   "CLEANUP_FAILED"
41929	//   "DEPRECATED_RESOURCE_USED"
41930	//   "DEPRECATED_TYPE_USED"
41931	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41932	//   "EXPERIMENTAL_TYPE_USED"
41933	//   "EXTERNAL_API_WARNING"
41934	//   "FIELD_VALUE_OVERRIDEN"
41935	//   "INJECTED_KERNELS_DEPRECATED"
41936	//   "MISSING_TYPE_DEPENDENCY"
41937	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41938	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41939	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41940	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41941	//   "NEXT_HOP_NOT_RUNNING"
41942	//   "NOT_CRITICAL_ERROR"
41943	//   "NO_RESULTS_ON_PAGE"
41944	//   "REQUIRED_TOS_AGREEMENT"
41945	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41946	//   "RESOURCE_NOT_DELETED"
41947	//   "SCHEMA_VALIDATION_IGNORED"
41948	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41949	//   "UNDECLARED_PROPERTIES"
41950	//   "UNREACHABLE"
41951	Code string `json:"code,omitempty"`
41952
41953	// Data: [Output Only] Metadata about this warning in key: value format.
41954	// For example:
41955	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41956	Data []*TargetHttpsProxyListWarningData `json:"data,omitempty"`
41957
41958	// Message: [Output Only] A human-readable description of the warning
41959	// code.
41960	Message string `json:"message,omitempty"`
41961
41962	// ForceSendFields is a list of field names (e.g. "Code") to
41963	// unconditionally include in API requests. By default, fields with
41964	// empty values are omitted from API requests. However, any non-pointer,
41965	// non-interface field appearing in ForceSendFields will be sent to the
41966	// server regardless of whether the field is empty or not. This may be
41967	// used to include empty fields in Patch requests.
41968	ForceSendFields []string `json:"-"`
41969
41970	// NullFields is a list of field names (e.g. "Code") to include in API
41971	// requests with the JSON null value. By default, fields with empty
41972	// values are omitted from API requests. However, any field with an
41973	// empty value appearing in NullFields will be sent to the server as
41974	// null. It is an error if a field in this list has a non-empty value.
41975	// This may be used to include null fields in Patch requests.
41976	NullFields []string `json:"-"`
41977}
41978
41979func (s *TargetHttpsProxyListWarning) MarshalJSON() ([]byte, error) {
41980	type NoMethod TargetHttpsProxyListWarning
41981	raw := NoMethod(*s)
41982	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41983}
41984
41985type TargetHttpsProxyListWarningData struct {
41986	// Key: [Output Only] A key that provides more detail on the warning
41987	// being returned. For example, for warnings where there are no results
41988	// in a list request for a particular zone, this key might be scope and
41989	// the key value might be the zone name. Other examples might be a key
41990	// indicating a deprecated resource and a suggested replacement, or a
41991	// warning about invalid network settings (for example, if an instance
41992	// attempts to perform IP forwarding but is not enabled for IP
41993	// forwarding).
41994	Key string `json:"key,omitempty"`
41995
41996	// Value: [Output Only] A warning data value corresponding to the key.
41997	Value string `json:"value,omitempty"`
41998
41999	// ForceSendFields is a list of field names (e.g. "Key") to
42000	// unconditionally include in API requests. By default, fields with
42001	// empty values are omitted from API requests. However, any non-pointer,
42002	// non-interface field appearing in ForceSendFields will be sent to the
42003	// server regardless of whether the field is empty or not. This may be
42004	// used to include empty fields in Patch requests.
42005	ForceSendFields []string `json:"-"`
42006
42007	// NullFields is a list of field names (e.g. "Key") to include in API
42008	// requests with the JSON null value. By default, fields with empty
42009	// values are omitted from API requests. However, any field with an
42010	// empty value appearing in NullFields will be sent to the server as
42011	// null. It is an error if a field in this list has a non-empty value.
42012	// This may be used to include null fields in Patch requests.
42013	NullFields []string `json:"-"`
42014}
42015
42016func (s *TargetHttpsProxyListWarningData) MarshalJSON() ([]byte, error) {
42017	type NoMethod TargetHttpsProxyListWarningData
42018	raw := NoMethod(*s)
42019	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42020}
42021
42022// TargetInstance: Represents a Target Instance resource.
42023//
42024// You can use a target instance to handle traffic for one or more
42025// forwarding rules, which is ideal for forwarding protocol traffic that
42026// is managed by a single source. For example, ESP, AH, TCP, or UDP. For
42027// more information, read Target instances. (== resource_for
42028// {$api_version}.targetInstances ==)
42029type TargetInstance struct {
42030	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
42031	// format.
42032	CreationTimestamp string `json:"creationTimestamp,omitempty"`
42033
42034	// Description: An optional description of this resource. Provide this
42035	// property when you create the resource.
42036	Description string `json:"description,omitempty"`
42037
42038	// Id: [Output Only] The unique identifier for the resource. This
42039	// identifier is defined by the server.
42040	Id uint64 `json:"id,omitempty,string"`
42041
42042	// Instance: A URL to the virtual machine instance that handles traffic
42043	// for this target instance. When creating a target instance, you can
42044	// provide the fully-qualified URL or a valid partial URL to the desired
42045	// virtual machine. For example, the following are all valid URLs:
42046	// -
42047	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
42048	// - projects/project/zones/zone/instances/instance
42049	// - zones/zone/instances/instance
42050	Instance string `json:"instance,omitempty"`
42051
42052	// Kind: [Output Only] The type of the resource. Always
42053	// compute#targetInstance for target instances.
42054	Kind string `json:"kind,omitempty"`
42055
42056	// Name: Name of the resource. Provided by the client when the resource
42057	// is created. The name must be 1-63 characters long, and comply with
42058	// RFC1035. Specifically, the name must be 1-63 characters long and
42059	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
42060	// the first character must be a lowercase letter, and all following
42061	// characters must be a dash, lowercase letter, or digit, except the
42062	// last character, which cannot be a dash.
42063	Name string `json:"name,omitempty"`
42064
42065	// NatPolicy: NAT option controlling how IPs are NAT'ed to the instance.
42066	// Currently only NO_NAT (default value) is supported.
42067	//
42068	// Possible values:
42069	//   "NO_NAT"
42070	NatPolicy string `json:"natPolicy,omitempty"`
42071
42072	// Network: The URL of the network this target instance uses to forward
42073	// traffic. If not specified, the traffic will be forwarded to the
42074	// network that the default network interface belongs to.
42075	Network string `json:"network,omitempty"`
42076
42077	// SelfLink: [Output Only] Server-defined URL for the resource.
42078	SelfLink string `json:"selfLink,omitempty"`
42079
42080	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
42081	// with the resource id.
42082	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
42083
42084	// Zone: [Output Only] URL of the zone where the target instance
42085	// resides. You must specify this field as part of the HTTP request URL.
42086	// It is not settable as a field in the request body.
42087	Zone string `json:"zone,omitempty"`
42088
42089	// ServerResponse contains the HTTP response code and headers from the
42090	// server.
42091	googleapi.ServerResponse `json:"-"`
42092
42093	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
42094	// to unconditionally include in API requests. By default, fields with
42095	// empty values are omitted from API requests. However, any non-pointer,
42096	// non-interface field appearing in ForceSendFields will be sent to the
42097	// server regardless of whether the field is empty or not. This may be
42098	// used to include empty fields in Patch requests.
42099	ForceSendFields []string `json:"-"`
42100
42101	// NullFields is a list of field names (e.g. "CreationTimestamp") to
42102	// include in API requests with the JSON null value. By default, fields
42103	// with empty values are omitted from API requests. However, any field
42104	// with an empty value appearing in NullFields will be sent to the
42105	// server as null. It is an error if a field in this list has a
42106	// non-empty value. This may be used to include null fields in Patch
42107	// requests.
42108	NullFields []string `json:"-"`
42109}
42110
42111func (s *TargetInstance) MarshalJSON() ([]byte, error) {
42112	type NoMethod TargetInstance
42113	raw := NoMethod(*s)
42114	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42115}
42116
42117type TargetInstanceAggregatedList struct {
42118	// Id: [Output Only] Unique identifier for the resource; defined by the
42119	// server.
42120	Id string `json:"id,omitempty"`
42121
42122	// Items: A list of TargetInstance resources.
42123	Items map[string]TargetInstancesScopedList `json:"items,omitempty"`
42124
42125	// Kind: Type of resource.
42126	Kind string `json:"kind,omitempty"`
42127
42128	// NextPageToken: [Output Only] This token allows you to get the next
42129	// page of results for list requests. If the number of results is larger
42130	// than maxResults, use the nextPageToken as a value for the query
42131	// parameter pageToken in the next list request. Subsequent list
42132	// requests will have their own nextPageToken to continue paging through
42133	// the results.
42134	NextPageToken string `json:"nextPageToken,omitempty"`
42135
42136	// SelfLink: [Output Only] Server-defined URL for this resource.
42137	SelfLink string `json:"selfLink,omitempty"`
42138
42139	// Warning: [Output Only] Informational warning message.
42140	Warning *TargetInstanceAggregatedListWarning `json:"warning,omitempty"`
42141
42142	// ServerResponse contains the HTTP response code and headers from the
42143	// server.
42144	googleapi.ServerResponse `json:"-"`
42145
42146	// ForceSendFields is a list of field names (e.g. "Id") to
42147	// unconditionally include in API requests. By default, fields with
42148	// empty values are omitted from API requests. However, any non-pointer,
42149	// non-interface field appearing in ForceSendFields will be sent to the
42150	// server regardless of whether the field is empty or not. This may be
42151	// used to include empty fields in Patch requests.
42152	ForceSendFields []string `json:"-"`
42153
42154	// NullFields is a list of field names (e.g. "Id") to include in API
42155	// requests with the JSON null value. By default, fields with empty
42156	// values are omitted from API requests. However, any field with an
42157	// empty value appearing in NullFields will be sent to the server as
42158	// null. It is an error if a field in this list has a non-empty value.
42159	// This may be used to include null fields in Patch requests.
42160	NullFields []string `json:"-"`
42161}
42162
42163func (s *TargetInstanceAggregatedList) MarshalJSON() ([]byte, error) {
42164	type NoMethod TargetInstanceAggregatedList
42165	raw := NoMethod(*s)
42166	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42167}
42168
42169// TargetInstanceAggregatedListWarning: [Output Only] Informational
42170// warning message.
42171type TargetInstanceAggregatedListWarning struct {
42172	// Code: [Output Only] A warning code, if applicable. For example,
42173	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42174	// the response.
42175	//
42176	// Possible values:
42177	//   "CLEANUP_FAILED"
42178	//   "DEPRECATED_RESOURCE_USED"
42179	//   "DEPRECATED_TYPE_USED"
42180	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42181	//   "EXPERIMENTAL_TYPE_USED"
42182	//   "EXTERNAL_API_WARNING"
42183	//   "FIELD_VALUE_OVERRIDEN"
42184	//   "INJECTED_KERNELS_DEPRECATED"
42185	//   "MISSING_TYPE_DEPENDENCY"
42186	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42187	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42188	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42189	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42190	//   "NEXT_HOP_NOT_RUNNING"
42191	//   "NOT_CRITICAL_ERROR"
42192	//   "NO_RESULTS_ON_PAGE"
42193	//   "REQUIRED_TOS_AGREEMENT"
42194	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42195	//   "RESOURCE_NOT_DELETED"
42196	//   "SCHEMA_VALIDATION_IGNORED"
42197	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42198	//   "UNDECLARED_PROPERTIES"
42199	//   "UNREACHABLE"
42200	Code string `json:"code,omitempty"`
42201
42202	// Data: [Output Only] Metadata about this warning in key: value format.
42203	// For example:
42204	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42205	Data []*TargetInstanceAggregatedListWarningData `json:"data,omitempty"`
42206
42207	// Message: [Output Only] A human-readable description of the warning
42208	// code.
42209	Message string `json:"message,omitempty"`
42210
42211	// ForceSendFields is a list of field names (e.g. "Code") to
42212	// unconditionally include in API requests. By default, fields with
42213	// empty values are omitted from API requests. However, any non-pointer,
42214	// non-interface field appearing in ForceSendFields will be sent to the
42215	// server regardless of whether the field is empty or not. This may be
42216	// used to include empty fields in Patch requests.
42217	ForceSendFields []string `json:"-"`
42218
42219	// NullFields is a list of field names (e.g. "Code") to include in API
42220	// requests with the JSON null value. By default, fields with empty
42221	// values are omitted from API requests. However, any field with an
42222	// empty value appearing in NullFields will be sent to the server as
42223	// null. It is an error if a field in this list has a non-empty value.
42224	// This may be used to include null fields in Patch requests.
42225	NullFields []string `json:"-"`
42226}
42227
42228func (s *TargetInstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
42229	type NoMethod TargetInstanceAggregatedListWarning
42230	raw := NoMethod(*s)
42231	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42232}
42233
42234type TargetInstanceAggregatedListWarningData struct {
42235	// Key: [Output Only] A key that provides more detail on the warning
42236	// being returned. For example, for warnings where there are no results
42237	// in a list request for a particular zone, this key might be scope and
42238	// the key value might be the zone name. Other examples might be a key
42239	// indicating a deprecated resource and a suggested replacement, or a
42240	// warning about invalid network settings (for example, if an instance
42241	// attempts to perform IP forwarding but is not enabled for IP
42242	// forwarding).
42243	Key string `json:"key,omitempty"`
42244
42245	// Value: [Output Only] A warning data value corresponding to the key.
42246	Value string `json:"value,omitempty"`
42247
42248	// ForceSendFields is a list of field names (e.g. "Key") to
42249	// unconditionally include in API requests. By default, fields with
42250	// empty values are omitted from API requests. However, any non-pointer,
42251	// non-interface field appearing in ForceSendFields will be sent to the
42252	// server regardless of whether the field is empty or not. This may be
42253	// used to include empty fields in Patch requests.
42254	ForceSendFields []string `json:"-"`
42255
42256	// NullFields is a list of field names (e.g. "Key") to include in API
42257	// requests with the JSON null value. By default, fields with empty
42258	// values are omitted from API requests. However, any field with an
42259	// empty value appearing in NullFields will be sent to the server as
42260	// null. It is an error if a field in this list has a non-empty value.
42261	// This may be used to include null fields in Patch requests.
42262	NullFields []string `json:"-"`
42263}
42264
42265func (s *TargetInstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
42266	type NoMethod TargetInstanceAggregatedListWarningData
42267	raw := NoMethod(*s)
42268	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42269}
42270
42271// TargetInstanceList: Contains a list of TargetInstance resources.
42272type TargetInstanceList struct {
42273	// Id: [Output Only] Unique identifier for the resource; defined by the
42274	// server.
42275	Id string `json:"id,omitempty"`
42276
42277	// Items: A list of TargetInstance resources.
42278	Items []*TargetInstance `json:"items,omitempty"`
42279
42280	// Kind: Type of resource.
42281	Kind string `json:"kind,omitempty"`
42282
42283	// NextPageToken: [Output Only] This token allows you to get the next
42284	// page of results for list requests. If the number of results is larger
42285	// than maxResults, use the nextPageToken as a value for the query
42286	// parameter pageToken in the next list request. Subsequent list
42287	// requests will have their own nextPageToken to continue paging through
42288	// the results.
42289	NextPageToken string `json:"nextPageToken,omitempty"`
42290
42291	// SelfLink: [Output Only] Server-defined URL for this resource.
42292	SelfLink string `json:"selfLink,omitempty"`
42293
42294	// Warning: [Output Only] Informational warning message.
42295	Warning *TargetInstanceListWarning `json:"warning,omitempty"`
42296
42297	// ServerResponse contains the HTTP response code and headers from the
42298	// server.
42299	googleapi.ServerResponse `json:"-"`
42300
42301	// ForceSendFields is a list of field names (e.g. "Id") to
42302	// unconditionally include in API requests. By default, fields with
42303	// empty values are omitted from API requests. However, any non-pointer,
42304	// non-interface field appearing in ForceSendFields will be sent to the
42305	// server regardless of whether the field is empty or not. This may be
42306	// used to include empty fields in Patch requests.
42307	ForceSendFields []string `json:"-"`
42308
42309	// NullFields is a list of field names (e.g. "Id") to include in API
42310	// requests with the JSON null value. By default, fields with empty
42311	// values are omitted from API requests. However, any field with an
42312	// empty value appearing in NullFields will be sent to the server as
42313	// null. It is an error if a field in this list has a non-empty value.
42314	// This may be used to include null fields in Patch requests.
42315	NullFields []string `json:"-"`
42316}
42317
42318func (s *TargetInstanceList) MarshalJSON() ([]byte, error) {
42319	type NoMethod TargetInstanceList
42320	raw := NoMethod(*s)
42321	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42322}
42323
42324// TargetInstanceListWarning: [Output Only] Informational warning
42325// message.
42326type TargetInstanceListWarning struct {
42327	// Code: [Output Only] A warning code, if applicable. For example,
42328	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42329	// the response.
42330	//
42331	// Possible values:
42332	//   "CLEANUP_FAILED"
42333	//   "DEPRECATED_RESOURCE_USED"
42334	//   "DEPRECATED_TYPE_USED"
42335	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42336	//   "EXPERIMENTAL_TYPE_USED"
42337	//   "EXTERNAL_API_WARNING"
42338	//   "FIELD_VALUE_OVERRIDEN"
42339	//   "INJECTED_KERNELS_DEPRECATED"
42340	//   "MISSING_TYPE_DEPENDENCY"
42341	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42342	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42343	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42344	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42345	//   "NEXT_HOP_NOT_RUNNING"
42346	//   "NOT_CRITICAL_ERROR"
42347	//   "NO_RESULTS_ON_PAGE"
42348	//   "REQUIRED_TOS_AGREEMENT"
42349	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42350	//   "RESOURCE_NOT_DELETED"
42351	//   "SCHEMA_VALIDATION_IGNORED"
42352	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42353	//   "UNDECLARED_PROPERTIES"
42354	//   "UNREACHABLE"
42355	Code string `json:"code,omitempty"`
42356
42357	// Data: [Output Only] Metadata about this warning in key: value format.
42358	// For example:
42359	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42360	Data []*TargetInstanceListWarningData `json:"data,omitempty"`
42361
42362	// Message: [Output Only] A human-readable description of the warning
42363	// code.
42364	Message string `json:"message,omitempty"`
42365
42366	// ForceSendFields is a list of field names (e.g. "Code") to
42367	// unconditionally include in API requests. By default, fields with
42368	// empty values are omitted from API requests. However, any non-pointer,
42369	// non-interface field appearing in ForceSendFields will be sent to the
42370	// server regardless of whether the field is empty or not. This may be
42371	// used to include empty fields in Patch requests.
42372	ForceSendFields []string `json:"-"`
42373
42374	// NullFields is a list of field names (e.g. "Code") to include in API
42375	// requests with the JSON null value. By default, fields with empty
42376	// values are omitted from API requests. However, any field with an
42377	// empty value appearing in NullFields will be sent to the server as
42378	// null. It is an error if a field in this list has a non-empty value.
42379	// This may be used to include null fields in Patch requests.
42380	NullFields []string `json:"-"`
42381}
42382
42383func (s *TargetInstanceListWarning) MarshalJSON() ([]byte, error) {
42384	type NoMethod TargetInstanceListWarning
42385	raw := NoMethod(*s)
42386	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42387}
42388
42389type TargetInstanceListWarningData struct {
42390	// Key: [Output Only] A key that provides more detail on the warning
42391	// being returned. For example, for warnings where there are no results
42392	// in a list request for a particular zone, this key might be scope and
42393	// the key value might be the zone name. Other examples might be a key
42394	// indicating a deprecated resource and a suggested replacement, or a
42395	// warning about invalid network settings (for example, if an instance
42396	// attempts to perform IP forwarding but is not enabled for IP
42397	// forwarding).
42398	Key string `json:"key,omitempty"`
42399
42400	// Value: [Output Only] A warning data value corresponding to the key.
42401	Value string `json:"value,omitempty"`
42402
42403	// ForceSendFields is a list of field names (e.g. "Key") to
42404	// unconditionally include in API requests. By default, fields with
42405	// empty values are omitted from API requests. However, any non-pointer,
42406	// non-interface field appearing in ForceSendFields will be sent to the
42407	// server regardless of whether the field is empty or not. This may be
42408	// used to include empty fields in Patch requests.
42409	ForceSendFields []string `json:"-"`
42410
42411	// NullFields is a list of field names (e.g. "Key") to include in API
42412	// requests with the JSON null value. By default, fields with empty
42413	// values are omitted from API requests. However, any field with an
42414	// empty value appearing in NullFields will be sent to the server as
42415	// null. It is an error if a field in this list has a non-empty value.
42416	// This may be used to include null fields in Patch requests.
42417	NullFields []string `json:"-"`
42418}
42419
42420func (s *TargetInstanceListWarningData) MarshalJSON() ([]byte, error) {
42421	type NoMethod TargetInstanceListWarningData
42422	raw := NoMethod(*s)
42423	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42424}
42425
42426type TargetInstancesScopedList struct {
42427	// TargetInstances: A list of target instances contained in this scope.
42428	TargetInstances []*TargetInstance `json:"targetInstances,omitempty"`
42429
42430	// Warning: Informational warning which replaces the list of addresses
42431	// when the list is empty.
42432	Warning *TargetInstancesScopedListWarning `json:"warning,omitempty"`
42433
42434	// ForceSendFields is a list of field names (e.g. "TargetInstances") to
42435	// unconditionally include in API requests. By default, fields with
42436	// empty values are omitted from API requests. However, any non-pointer,
42437	// non-interface field appearing in ForceSendFields will be sent to the
42438	// server regardless of whether the field is empty or not. This may be
42439	// used to include empty fields in Patch requests.
42440	ForceSendFields []string `json:"-"`
42441
42442	// NullFields is a list of field names (e.g. "TargetInstances") to
42443	// include in API requests with the JSON null value. By default, fields
42444	// with empty values are omitted from API requests. However, any field
42445	// with an empty value appearing in NullFields will be sent to the
42446	// server as null. It is an error if a field in this list has a
42447	// non-empty value. This may be used to include null fields in Patch
42448	// requests.
42449	NullFields []string `json:"-"`
42450}
42451
42452func (s *TargetInstancesScopedList) MarshalJSON() ([]byte, error) {
42453	type NoMethod TargetInstancesScopedList
42454	raw := NoMethod(*s)
42455	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42456}
42457
42458// TargetInstancesScopedListWarning: Informational warning which
42459// replaces the list of addresses when the list is empty.
42460type TargetInstancesScopedListWarning struct {
42461	// Code: [Output Only] A warning code, if applicable. For example,
42462	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42463	// the response.
42464	//
42465	// Possible values:
42466	//   "CLEANUP_FAILED"
42467	//   "DEPRECATED_RESOURCE_USED"
42468	//   "DEPRECATED_TYPE_USED"
42469	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42470	//   "EXPERIMENTAL_TYPE_USED"
42471	//   "EXTERNAL_API_WARNING"
42472	//   "FIELD_VALUE_OVERRIDEN"
42473	//   "INJECTED_KERNELS_DEPRECATED"
42474	//   "MISSING_TYPE_DEPENDENCY"
42475	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42476	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42477	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42478	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42479	//   "NEXT_HOP_NOT_RUNNING"
42480	//   "NOT_CRITICAL_ERROR"
42481	//   "NO_RESULTS_ON_PAGE"
42482	//   "REQUIRED_TOS_AGREEMENT"
42483	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42484	//   "RESOURCE_NOT_DELETED"
42485	//   "SCHEMA_VALIDATION_IGNORED"
42486	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42487	//   "UNDECLARED_PROPERTIES"
42488	//   "UNREACHABLE"
42489	Code string `json:"code,omitempty"`
42490
42491	// Data: [Output Only] Metadata about this warning in key: value format.
42492	// For example:
42493	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42494	Data []*TargetInstancesScopedListWarningData `json:"data,omitempty"`
42495
42496	// Message: [Output Only] A human-readable description of the warning
42497	// code.
42498	Message string `json:"message,omitempty"`
42499
42500	// ForceSendFields is a list of field names (e.g. "Code") to
42501	// unconditionally include in API requests. By default, fields with
42502	// empty values are omitted from API requests. However, any non-pointer,
42503	// non-interface field appearing in ForceSendFields will be sent to the
42504	// server regardless of whether the field is empty or not. This may be
42505	// used to include empty fields in Patch requests.
42506	ForceSendFields []string `json:"-"`
42507
42508	// NullFields is a list of field names (e.g. "Code") to include in API
42509	// requests with the JSON null value. By default, fields with empty
42510	// values are omitted from API requests. However, any field with an
42511	// empty value appearing in NullFields will be sent to the server as
42512	// null. It is an error if a field in this list has a non-empty value.
42513	// This may be used to include null fields in Patch requests.
42514	NullFields []string `json:"-"`
42515}
42516
42517func (s *TargetInstancesScopedListWarning) MarshalJSON() ([]byte, error) {
42518	type NoMethod TargetInstancesScopedListWarning
42519	raw := NoMethod(*s)
42520	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42521}
42522
42523type TargetInstancesScopedListWarningData struct {
42524	// Key: [Output Only] A key that provides more detail on the warning
42525	// being returned. For example, for warnings where there are no results
42526	// in a list request for a particular zone, this key might be scope and
42527	// the key value might be the zone name. Other examples might be a key
42528	// indicating a deprecated resource and a suggested replacement, or a
42529	// warning about invalid network settings (for example, if an instance
42530	// attempts to perform IP forwarding but is not enabled for IP
42531	// forwarding).
42532	Key string `json:"key,omitempty"`
42533
42534	// Value: [Output Only] A warning data value corresponding to the key.
42535	Value string `json:"value,omitempty"`
42536
42537	// ForceSendFields is a list of field names (e.g. "Key") to
42538	// unconditionally include in API requests. By default, fields with
42539	// empty values are omitted from API requests. However, any non-pointer,
42540	// non-interface field appearing in ForceSendFields will be sent to the
42541	// server regardless of whether the field is empty or not. This may be
42542	// used to include empty fields in Patch requests.
42543	ForceSendFields []string `json:"-"`
42544
42545	// NullFields is a list of field names (e.g. "Key") to include in API
42546	// requests with the JSON null value. By default, fields with empty
42547	// values are omitted from API requests. However, any field with an
42548	// empty value appearing in NullFields will be sent to the server as
42549	// null. It is an error if a field in this list has a non-empty value.
42550	// This may be used to include null fields in Patch requests.
42551	NullFields []string `json:"-"`
42552}
42553
42554func (s *TargetInstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
42555	type NoMethod TargetInstancesScopedListWarningData
42556	raw := NoMethod(*s)
42557	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42558}
42559
42560// TargetPool: Represents a Target Pool resource.
42561//
42562// Target pools are used for network TCP/UDP load balancing. A target
42563// pool references member instances, an associated legacy
42564// HttpHealthCheck resource, and, optionally, a backup target pool. For
42565// more information, read Using target pools. (== resource_for
42566// {$api_version}.targetPools ==)
42567type TargetPool struct {
42568	// BackupPool: This field is applicable only when the containing target
42569	// pool is serving a forwarding rule as the primary pool, and its
42570	// failoverRatio field is properly set to a value between [0,
42571	// 1].
42572	//
42573	// backupPool and failoverRatio together define the fallback behavior of
42574	// the primary target pool: if the ratio of the healthy instances in the
42575	// primary pool is at or below failoverRatio, traffic arriving at the
42576	// load-balanced IP will be directed to the backup pool.
42577	//
42578	// In case where failoverRatio and backupPool are not set, or all the
42579	// instances in the backup pool are unhealthy, the traffic will be
42580	// directed back to the primary pool in the "force" mode, where traffic
42581	// will be spread to the healthy instances with the best effort, or to
42582	// all instances when no instance is healthy.
42583	BackupPool string `json:"backupPool,omitempty"`
42584
42585	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
42586	// format.
42587	CreationTimestamp string `json:"creationTimestamp,omitempty"`
42588
42589	// Description: An optional description of this resource. Provide this
42590	// property when you create the resource.
42591	Description string `json:"description,omitempty"`
42592
42593	// FailoverRatio: This field is applicable only when the containing
42594	// target pool is serving a forwarding rule as the primary pool (i.e.,
42595	// not as a backup pool to some other target pool). The value of the
42596	// field must be in [0, 1].
42597	//
42598	// If set, backupPool must also be set. They together define the
42599	// fallback behavior of the primary target pool: if the ratio of the
42600	// healthy instances in the primary pool is at or below this number,
42601	// traffic arriving at the load-balanced IP will be directed to the
42602	// backup pool.
42603	//
42604	// In case where failoverRatio is not set or all the instances in the
42605	// backup pool are unhealthy, the traffic will be directed back to the
42606	// primary pool in the "force" mode, where traffic will be spread to the
42607	// healthy instances with the best effort, or to all instances when no
42608	// instance is healthy.
42609	FailoverRatio float64 `json:"failoverRatio,omitempty"`
42610
42611	// HealthChecks: The URL of the HttpHealthCheck resource. A member
42612	// instance in this pool is considered healthy if and only if the health
42613	// checks pass. An empty list means all member instances will be
42614	// considered healthy at all times. Only HttpHealthChecks are supported.
42615	// Only one health check may be specified.
42616	HealthChecks []string `json:"healthChecks,omitempty"`
42617
42618	// Id: [Output Only] The unique identifier for the resource. This
42619	// identifier is defined by the server.
42620	Id uint64 `json:"id,omitempty,string"`
42621
42622	// Instances: A list of resource URLs to the virtual machine instances
42623	// serving this pool. They must live in zones contained in the same
42624	// region as this pool.
42625	Instances []string `json:"instances,omitempty"`
42626
42627	// Kind: [Output Only] Type of the resource. Always compute#targetPool
42628	// for target pools.
42629	Kind string `json:"kind,omitempty"`
42630
42631	// Name: Name of the resource. Provided by the client when the resource
42632	// is created. The name must be 1-63 characters long, and comply with
42633	// RFC1035. Specifically, the name must be 1-63 characters long and
42634	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
42635	// the first character must be a lowercase letter, and all following
42636	// characters must be a dash, lowercase letter, or digit, except the
42637	// last character, which cannot be a dash.
42638	Name string `json:"name,omitempty"`
42639
42640	// Region: [Output Only] URL of the region where the target pool
42641	// resides.
42642	Region string `json:"region,omitempty"`
42643
42644	// SelfLink: [Output Only] Server-defined URL for the resource.
42645	SelfLink string `json:"selfLink,omitempty"`
42646
42647	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
42648	// with the resource id.
42649	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
42650
42651	// SessionAffinity: Session affinity option, must be one of the
42652	// following values:
42653	// NONE: Connections from the same client IP may go to any instance in
42654	// the pool.
42655	// CLIENT_IP: Connections from the same client IP will go to the same
42656	// instance in the pool while that instance remains
42657	// healthy.
42658	// CLIENT_IP_PROTO: Connections from the same client IP with the same IP
42659	// protocol will go to the same instance in the pool while that instance
42660	// remains healthy.
42661	//
42662	// Possible values:
42663	//   "CLIENT_IP"
42664	//   "CLIENT_IP_NO_DESTINATION"
42665	//   "CLIENT_IP_PORT_PROTO"
42666	//   "CLIENT_IP_PROTO"
42667	//   "GENERATED_COOKIE"
42668	//   "HEADER_FIELD"
42669	//   "HTTP_COOKIE"
42670	//   "NONE"
42671	SessionAffinity string `json:"sessionAffinity,omitempty"`
42672
42673	// ServerResponse contains the HTTP response code and headers from the
42674	// server.
42675	googleapi.ServerResponse `json:"-"`
42676
42677	// ForceSendFields is a list of field names (e.g. "BackupPool") to
42678	// unconditionally include in API requests. By default, fields with
42679	// empty values are omitted from API requests. However, any non-pointer,
42680	// non-interface field appearing in ForceSendFields will be sent to the
42681	// server regardless of whether the field is empty or not. This may be
42682	// used to include empty fields in Patch requests.
42683	ForceSendFields []string `json:"-"`
42684
42685	// NullFields is a list of field names (e.g. "BackupPool") to include in
42686	// API requests with the JSON null value. By default, fields with empty
42687	// values are omitted from API requests. However, any field with an
42688	// empty value appearing in NullFields will be sent to the server as
42689	// null. It is an error if a field in this list has a non-empty value.
42690	// This may be used to include null fields in Patch requests.
42691	NullFields []string `json:"-"`
42692}
42693
42694func (s *TargetPool) MarshalJSON() ([]byte, error) {
42695	type NoMethod TargetPool
42696	raw := NoMethod(*s)
42697	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42698}
42699
42700func (s *TargetPool) UnmarshalJSON(data []byte) error {
42701	type NoMethod TargetPool
42702	var s1 struct {
42703		FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"`
42704		*NoMethod
42705	}
42706	s1.NoMethod = (*NoMethod)(s)
42707	if err := json.Unmarshal(data, &s1); err != nil {
42708		return err
42709	}
42710	s.FailoverRatio = float64(s1.FailoverRatio)
42711	return nil
42712}
42713
42714type TargetPoolAggregatedList struct {
42715	// Id: [Output Only] Unique identifier for the resource; defined by the
42716	// server.
42717	Id string `json:"id,omitempty"`
42718
42719	// Items: A list of TargetPool resources.
42720	Items map[string]TargetPoolsScopedList `json:"items,omitempty"`
42721
42722	// Kind: [Output Only] Type of resource. Always
42723	// compute#targetPoolAggregatedList for aggregated lists of target
42724	// pools.
42725	Kind string `json:"kind,omitempty"`
42726
42727	// NextPageToken: [Output Only] This token allows you to get the next
42728	// page of results for list requests. If the number of results is larger
42729	// than maxResults, use the nextPageToken as a value for the query
42730	// parameter pageToken in the next list request. Subsequent list
42731	// requests will have their own nextPageToken to continue paging through
42732	// the results.
42733	NextPageToken string `json:"nextPageToken,omitempty"`
42734
42735	// SelfLink: [Output Only] Server-defined URL for this resource.
42736	SelfLink string `json:"selfLink,omitempty"`
42737
42738	// Warning: [Output Only] Informational warning message.
42739	Warning *TargetPoolAggregatedListWarning `json:"warning,omitempty"`
42740
42741	// ServerResponse contains the HTTP response code and headers from the
42742	// server.
42743	googleapi.ServerResponse `json:"-"`
42744
42745	// ForceSendFields is a list of field names (e.g. "Id") to
42746	// unconditionally include in API requests. By default, fields with
42747	// empty values are omitted from API requests. However, any non-pointer,
42748	// non-interface field appearing in ForceSendFields will be sent to the
42749	// server regardless of whether the field is empty or not. This may be
42750	// used to include empty fields in Patch requests.
42751	ForceSendFields []string `json:"-"`
42752
42753	// NullFields is a list of field names (e.g. "Id") to include in API
42754	// requests with the JSON null value. By default, fields with empty
42755	// values are omitted from API requests. However, any field with an
42756	// empty value appearing in NullFields will be sent to the server as
42757	// null. It is an error if a field in this list has a non-empty value.
42758	// This may be used to include null fields in Patch requests.
42759	NullFields []string `json:"-"`
42760}
42761
42762func (s *TargetPoolAggregatedList) MarshalJSON() ([]byte, error) {
42763	type NoMethod TargetPoolAggregatedList
42764	raw := NoMethod(*s)
42765	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42766}
42767
42768// TargetPoolAggregatedListWarning: [Output Only] Informational warning
42769// message.
42770type TargetPoolAggregatedListWarning struct {
42771	// Code: [Output Only] A warning code, if applicable. For example,
42772	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42773	// the response.
42774	//
42775	// Possible values:
42776	//   "CLEANUP_FAILED"
42777	//   "DEPRECATED_RESOURCE_USED"
42778	//   "DEPRECATED_TYPE_USED"
42779	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42780	//   "EXPERIMENTAL_TYPE_USED"
42781	//   "EXTERNAL_API_WARNING"
42782	//   "FIELD_VALUE_OVERRIDEN"
42783	//   "INJECTED_KERNELS_DEPRECATED"
42784	//   "MISSING_TYPE_DEPENDENCY"
42785	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42786	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42787	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42788	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42789	//   "NEXT_HOP_NOT_RUNNING"
42790	//   "NOT_CRITICAL_ERROR"
42791	//   "NO_RESULTS_ON_PAGE"
42792	//   "REQUIRED_TOS_AGREEMENT"
42793	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42794	//   "RESOURCE_NOT_DELETED"
42795	//   "SCHEMA_VALIDATION_IGNORED"
42796	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42797	//   "UNDECLARED_PROPERTIES"
42798	//   "UNREACHABLE"
42799	Code string `json:"code,omitempty"`
42800
42801	// Data: [Output Only] Metadata about this warning in key: value format.
42802	// For example:
42803	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42804	Data []*TargetPoolAggregatedListWarningData `json:"data,omitempty"`
42805
42806	// Message: [Output Only] A human-readable description of the warning
42807	// code.
42808	Message string `json:"message,omitempty"`
42809
42810	// ForceSendFields is a list of field names (e.g. "Code") to
42811	// unconditionally include in API requests. By default, fields with
42812	// empty values are omitted from API requests. However, any non-pointer,
42813	// non-interface field appearing in ForceSendFields will be sent to the
42814	// server regardless of whether the field is empty or not. This may be
42815	// used to include empty fields in Patch requests.
42816	ForceSendFields []string `json:"-"`
42817
42818	// NullFields is a list of field names (e.g. "Code") to include in API
42819	// requests with the JSON null value. By default, fields with empty
42820	// values are omitted from API requests. However, any field with an
42821	// empty value appearing in NullFields will be sent to the server as
42822	// null. It is an error if a field in this list has a non-empty value.
42823	// This may be used to include null fields in Patch requests.
42824	NullFields []string `json:"-"`
42825}
42826
42827func (s *TargetPoolAggregatedListWarning) MarshalJSON() ([]byte, error) {
42828	type NoMethod TargetPoolAggregatedListWarning
42829	raw := NoMethod(*s)
42830	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42831}
42832
42833type TargetPoolAggregatedListWarningData struct {
42834	// Key: [Output Only] A key that provides more detail on the warning
42835	// being returned. For example, for warnings where there are no results
42836	// in a list request for a particular zone, this key might be scope and
42837	// the key value might be the zone name. Other examples might be a key
42838	// indicating a deprecated resource and a suggested replacement, or a
42839	// warning about invalid network settings (for example, if an instance
42840	// attempts to perform IP forwarding but is not enabled for IP
42841	// forwarding).
42842	Key string `json:"key,omitempty"`
42843
42844	// Value: [Output Only] A warning data value corresponding to the key.
42845	Value string `json:"value,omitempty"`
42846
42847	// ForceSendFields is a list of field names (e.g. "Key") to
42848	// unconditionally include in API requests. By default, fields with
42849	// empty values are omitted from API requests. However, any non-pointer,
42850	// non-interface field appearing in ForceSendFields will be sent to the
42851	// server regardless of whether the field is empty or not. This may be
42852	// used to include empty fields in Patch requests.
42853	ForceSendFields []string `json:"-"`
42854
42855	// NullFields is a list of field names (e.g. "Key") to include in API
42856	// requests with the JSON null value. By default, fields with empty
42857	// values are omitted from API requests. However, any field with an
42858	// empty value appearing in NullFields will be sent to the server as
42859	// null. It is an error if a field in this list has a non-empty value.
42860	// This may be used to include null fields in Patch requests.
42861	NullFields []string `json:"-"`
42862}
42863
42864func (s *TargetPoolAggregatedListWarningData) MarshalJSON() ([]byte, error) {
42865	type NoMethod TargetPoolAggregatedListWarningData
42866	raw := NoMethod(*s)
42867	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42868}
42869
42870type TargetPoolInstanceHealth struct {
42871	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
42872
42873	// Kind: [Output Only] Type of resource. Always
42874	// compute#targetPoolInstanceHealth when checking the health of an
42875	// instance.
42876	Kind string `json:"kind,omitempty"`
42877
42878	// ServerResponse contains the HTTP response code and headers from the
42879	// server.
42880	googleapi.ServerResponse `json:"-"`
42881
42882	// ForceSendFields is a list of field names (e.g. "HealthStatus") to
42883	// unconditionally include in API requests. By default, fields with
42884	// empty values are omitted from API requests. However, any non-pointer,
42885	// non-interface field appearing in ForceSendFields will be sent to the
42886	// server regardless of whether the field is empty or not. This may be
42887	// used to include empty fields in Patch requests.
42888	ForceSendFields []string `json:"-"`
42889
42890	// NullFields is a list of field names (e.g. "HealthStatus") to include
42891	// in API requests with the JSON null value. By default, fields with
42892	// empty values are omitted from API requests. However, any field with
42893	// an empty value appearing in NullFields will be sent to the server as
42894	// null. It is an error if a field in this list has a non-empty value.
42895	// This may be used to include null fields in Patch requests.
42896	NullFields []string `json:"-"`
42897}
42898
42899func (s *TargetPoolInstanceHealth) MarshalJSON() ([]byte, error) {
42900	type NoMethod TargetPoolInstanceHealth
42901	raw := NoMethod(*s)
42902	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42903}
42904
42905// TargetPoolList: Contains a list of TargetPool resources.
42906type TargetPoolList struct {
42907	// Id: [Output Only] Unique identifier for the resource; defined by the
42908	// server.
42909	Id string `json:"id,omitempty"`
42910
42911	// Items: A list of TargetPool resources.
42912	Items []*TargetPool `json:"items,omitempty"`
42913
42914	// Kind: [Output Only] Type of resource. Always compute#targetPoolList
42915	// for lists of target pools.
42916	Kind string `json:"kind,omitempty"`
42917
42918	// NextPageToken: [Output Only] This token allows you to get the next
42919	// page of results for list requests. If the number of results is larger
42920	// than maxResults, use the nextPageToken as a value for the query
42921	// parameter pageToken in the next list request. Subsequent list
42922	// requests will have their own nextPageToken to continue paging through
42923	// the results.
42924	NextPageToken string `json:"nextPageToken,omitempty"`
42925
42926	// SelfLink: [Output Only] Server-defined URL for this resource.
42927	SelfLink string `json:"selfLink,omitempty"`
42928
42929	// Warning: [Output Only] Informational warning message.
42930	Warning *TargetPoolListWarning `json:"warning,omitempty"`
42931
42932	// ServerResponse contains the HTTP response code and headers from the
42933	// server.
42934	googleapi.ServerResponse `json:"-"`
42935
42936	// ForceSendFields is a list of field names (e.g. "Id") to
42937	// unconditionally include in API requests. By default, fields with
42938	// empty values are omitted from API requests. However, any non-pointer,
42939	// non-interface field appearing in ForceSendFields will be sent to the
42940	// server regardless of whether the field is empty or not. This may be
42941	// used to include empty fields in Patch requests.
42942	ForceSendFields []string `json:"-"`
42943
42944	// NullFields is a list of field names (e.g. "Id") to include in API
42945	// requests with the JSON null value. By default, fields with empty
42946	// values are omitted from API requests. However, any field with an
42947	// empty value appearing in NullFields will be sent to the server as
42948	// null. It is an error if a field in this list has a non-empty value.
42949	// This may be used to include null fields in Patch requests.
42950	NullFields []string `json:"-"`
42951}
42952
42953func (s *TargetPoolList) MarshalJSON() ([]byte, error) {
42954	type NoMethod TargetPoolList
42955	raw := NoMethod(*s)
42956	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42957}
42958
42959// TargetPoolListWarning: [Output Only] Informational warning message.
42960type TargetPoolListWarning struct {
42961	// Code: [Output Only] A warning code, if applicable. For example,
42962	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42963	// the response.
42964	//
42965	// Possible values:
42966	//   "CLEANUP_FAILED"
42967	//   "DEPRECATED_RESOURCE_USED"
42968	//   "DEPRECATED_TYPE_USED"
42969	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42970	//   "EXPERIMENTAL_TYPE_USED"
42971	//   "EXTERNAL_API_WARNING"
42972	//   "FIELD_VALUE_OVERRIDEN"
42973	//   "INJECTED_KERNELS_DEPRECATED"
42974	//   "MISSING_TYPE_DEPENDENCY"
42975	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42976	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42977	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42978	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42979	//   "NEXT_HOP_NOT_RUNNING"
42980	//   "NOT_CRITICAL_ERROR"
42981	//   "NO_RESULTS_ON_PAGE"
42982	//   "REQUIRED_TOS_AGREEMENT"
42983	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42984	//   "RESOURCE_NOT_DELETED"
42985	//   "SCHEMA_VALIDATION_IGNORED"
42986	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42987	//   "UNDECLARED_PROPERTIES"
42988	//   "UNREACHABLE"
42989	Code string `json:"code,omitempty"`
42990
42991	// Data: [Output Only] Metadata about this warning in key: value format.
42992	// For example:
42993	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42994	Data []*TargetPoolListWarningData `json:"data,omitempty"`
42995
42996	// Message: [Output Only] A human-readable description of the warning
42997	// code.
42998	Message string `json:"message,omitempty"`
42999
43000	// ForceSendFields is a list of field names (e.g. "Code") to
43001	// unconditionally include in API requests. By default, fields with
43002	// empty values are omitted from API requests. However, any non-pointer,
43003	// non-interface field appearing in ForceSendFields will be sent to the
43004	// server regardless of whether the field is empty or not. This may be
43005	// used to include empty fields in Patch requests.
43006	ForceSendFields []string `json:"-"`
43007
43008	// NullFields is a list of field names (e.g. "Code") to include in API
43009	// requests with the JSON null value. By default, fields with empty
43010	// values are omitted from API requests. However, any field with an
43011	// empty value appearing in NullFields will be sent to the server as
43012	// null. It is an error if a field in this list has a non-empty value.
43013	// This may be used to include null fields in Patch requests.
43014	NullFields []string `json:"-"`
43015}
43016
43017func (s *TargetPoolListWarning) MarshalJSON() ([]byte, error) {
43018	type NoMethod TargetPoolListWarning
43019	raw := NoMethod(*s)
43020	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43021}
43022
43023type TargetPoolListWarningData struct {
43024	// Key: [Output Only] A key that provides more detail on the warning
43025	// being returned. For example, for warnings where there are no results
43026	// in a list request for a particular zone, this key might be scope and
43027	// the key value might be the zone name. Other examples might be a key
43028	// indicating a deprecated resource and a suggested replacement, or a
43029	// warning about invalid network settings (for example, if an instance
43030	// attempts to perform IP forwarding but is not enabled for IP
43031	// forwarding).
43032	Key string `json:"key,omitempty"`
43033
43034	// Value: [Output Only] A warning data value corresponding to the key.
43035	Value string `json:"value,omitempty"`
43036
43037	// ForceSendFields is a list of field names (e.g. "Key") to
43038	// unconditionally include in API requests. By default, fields with
43039	// empty values are omitted from API requests. However, any non-pointer,
43040	// non-interface field appearing in ForceSendFields will be sent to the
43041	// server regardless of whether the field is empty or not. This may be
43042	// used to include empty fields in Patch requests.
43043	ForceSendFields []string `json:"-"`
43044
43045	// NullFields is a list of field names (e.g. "Key") to include in API
43046	// requests with the JSON null value. By default, fields with empty
43047	// values are omitted from API requests. However, any field with an
43048	// empty value appearing in NullFields will be sent to the server as
43049	// null. It is an error if a field in this list has a non-empty value.
43050	// This may be used to include null fields in Patch requests.
43051	NullFields []string `json:"-"`
43052}
43053
43054func (s *TargetPoolListWarningData) MarshalJSON() ([]byte, error) {
43055	type NoMethod TargetPoolListWarningData
43056	raw := NoMethod(*s)
43057	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43058}
43059
43060type TargetPoolsAddHealthCheckRequest struct {
43061	// HealthChecks: The HttpHealthCheck to add to the target pool.
43062	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
43063
43064	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
43065	// unconditionally include in API requests. By default, fields with
43066	// empty values are omitted from API requests. However, any non-pointer,
43067	// non-interface field appearing in ForceSendFields will be sent to the
43068	// server regardless of whether the field is empty or not. This may be
43069	// used to include empty fields in Patch requests.
43070	ForceSendFields []string `json:"-"`
43071
43072	// NullFields is a list of field names (e.g. "HealthChecks") to include
43073	// in API requests with the JSON null value. By default, fields with
43074	// empty values are omitted from API requests. However, any field with
43075	// an empty value appearing in NullFields will be sent to the server as
43076	// null. It is an error if a field in this list has a non-empty value.
43077	// This may be used to include null fields in Patch requests.
43078	NullFields []string `json:"-"`
43079}
43080
43081func (s *TargetPoolsAddHealthCheckRequest) MarshalJSON() ([]byte, error) {
43082	type NoMethod TargetPoolsAddHealthCheckRequest
43083	raw := NoMethod(*s)
43084	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43085}
43086
43087type TargetPoolsAddInstanceRequest struct {
43088	// Instances: A full or partial URL to an instance to add to this target
43089	// pool. This can be a full or partial URL. For example, the following
43090	// are valid URLs:
43091	// -
43092	// https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-name
43093	// - projects/project-id/zones/zone/instances/instance-name
43094	// - zones/zone/instances/instance-name
43095	Instances []*InstanceReference `json:"instances,omitempty"`
43096
43097	// ForceSendFields is a list of field names (e.g. "Instances") to
43098	// unconditionally include in API requests. By default, fields with
43099	// empty values are omitted from API requests. However, any non-pointer,
43100	// non-interface field appearing in ForceSendFields will be sent to the
43101	// server regardless of whether the field is empty or not. This may be
43102	// used to include empty fields in Patch requests.
43103	ForceSendFields []string `json:"-"`
43104
43105	// NullFields is a list of field names (e.g. "Instances") to include in
43106	// API requests with the JSON null value. By default, fields with empty
43107	// values are omitted from API requests. However, any field with an
43108	// empty value appearing in NullFields will be sent to the server as
43109	// null. It is an error if a field in this list has a non-empty value.
43110	// This may be used to include null fields in Patch requests.
43111	NullFields []string `json:"-"`
43112}
43113
43114func (s *TargetPoolsAddInstanceRequest) MarshalJSON() ([]byte, error) {
43115	type NoMethod TargetPoolsAddInstanceRequest
43116	raw := NoMethod(*s)
43117	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43118}
43119
43120type TargetPoolsRemoveHealthCheckRequest struct {
43121	// HealthChecks: Health check URL to be removed. This can be a full or
43122	// valid partial URL. For example, the following are valid URLs:
43123	// -
43124	// https://www.googleapis.com/compute/beta/projects/project/global/httpHealthChecks/health-check
43125	// - projects/project/global/httpHealthChecks/health-check
43126	// - global/httpHealthChecks/health-check
43127	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
43128
43129	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
43130	// unconditionally include in API requests. By default, fields with
43131	// empty values are omitted from API requests. However, any non-pointer,
43132	// non-interface field appearing in ForceSendFields will be sent to the
43133	// server regardless of whether the field is empty or not. This may be
43134	// used to include empty fields in Patch requests.
43135	ForceSendFields []string `json:"-"`
43136
43137	// NullFields is a list of field names (e.g. "HealthChecks") to include
43138	// in API requests with the JSON null value. By default, fields with
43139	// empty values are omitted from API requests. However, any field with
43140	// an empty value appearing in NullFields will be sent to the server as
43141	// null. It is an error if a field in this list has a non-empty value.
43142	// This may be used to include null fields in Patch requests.
43143	NullFields []string `json:"-"`
43144}
43145
43146func (s *TargetPoolsRemoveHealthCheckRequest) MarshalJSON() ([]byte, error) {
43147	type NoMethod TargetPoolsRemoveHealthCheckRequest
43148	raw := NoMethod(*s)
43149	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43150}
43151
43152type TargetPoolsRemoveInstanceRequest struct {
43153	// Instances: URLs of the instances to be removed from target pool.
43154	Instances []*InstanceReference `json:"instances,omitempty"`
43155
43156	// ForceSendFields is a list of field names (e.g. "Instances") to
43157	// unconditionally include in API requests. By default, fields with
43158	// empty values are omitted from API requests. However, any non-pointer,
43159	// non-interface field appearing in ForceSendFields will be sent to the
43160	// server regardless of whether the field is empty or not. This may be
43161	// used to include empty fields in Patch requests.
43162	ForceSendFields []string `json:"-"`
43163
43164	// NullFields is a list of field names (e.g. "Instances") to include in
43165	// API requests with the JSON null value. By default, fields with empty
43166	// values are omitted from API requests. However, any field with an
43167	// empty value appearing in NullFields will be sent to the server as
43168	// null. It is an error if a field in this list has a non-empty value.
43169	// This may be used to include null fields in Patch requests.
43170	NullFields []string `json:"-"`
43171}
43172
43173func (s *TargetPoolsRemoveInstanceRequest) MarshalJSON() ([]byte, error) {
43174	type NoMethod TargetPoolsRemoveInstanceRequest
43175	raw := NoMethod(*s)
43176	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43177}
43178
43179type TargetPoolsScopedList struct {
43180	// TargetPools: A list of target pools contained in this scope.
43181	TargetPools []*TargetPool `json:"targetPools,omitempty"`
43182
43183	// Warning: Informational warning which replaces the list of addresses
43184	// when the list is empty.
43185	Warning *TargetPoolsScopedListWarning `json:"warning,omitempty"`
43186
43187	// ForceSendFields is a list of field names (e.g. "TargetPools") to
43188	// unconditionally include in API requests. By default, fields with
43189	// empty values are omitted from API requests. However, any non-pointer,
43190	// non-interface field appearing in ForceSendFields will be sent to the
43191	// server regardless of whether the field is empty or not. This may be
43192	// used to include empty fields in Patch requests.
43193	ForceSendFields []string `json:"-"`
43194
43195	// NullFields is a list of field names (e.g. "TargetPools") to include
43196	// in API requests with the JSON null value. By default, fields with
43197	// empty values are omitted from API requests. However, any field with
43198	// an empty value appearing in NullFields will be sent to the server as
43199	// null. It is an error if a field in this list has a non-empty value.
43200	// This may be used to include null fields in Patch requests.
43201	NullFields []string `json:"-"`
43202}
43203
43204func (s *TargetPoolsScopedList) MarshalJSON() ([]byte, error) {
43205	type NoMethod TargetPoolsScopedList
43206	raw := NoMethod(*s)
43207	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43208}
43209
43210// TargetPoolsScopedListWarning: Informational warning which replaces
43211// the list of addresses when the list is empty.
43212type TargetPoolsScopedListWarning struct {
43213	// Code: [Output Only] A warning code, if applicable. For example,
43214	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43215	// the response.
43216	//
43217	// Possible values:
43218	//   "CLEANUP_FAILED"
43219	//   "DEPRECATED_RESOURCE_USED"
43220	//   "DEPRECATED_TYPE_USED"
43221	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
43222	//   "EXPERIMENTAL_TYPE_USED"
43223	//   "EXTERNAL_API_WARNING"
43224	//   "FIELD_VALUE_OVERRIDEN"
43225	//   "INJECTED_KERNELS_DEPRECATED"
43226	//   "MISSING_TYPE_DEPENDENCY"
43227	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
43228	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43229	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43230	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43231	//   "NEXT_HOP_NOT_RUNNING"
43232	//   "NOT_CRITICAL_ERROR"
43233	//   "NO_RESULTS_ON_PAGE"
43234	//   "REQUIRED_TOS_AGREEMENT"
43235	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
43236	//   "RESOURCE_NOT_DELETED"
43237	//   "SCHEMA_VALIDATION_IGNORED"
43238	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43239	//   "UNDECLARED_PROPERTIES"
43240	//   "UNREACHABLE"
43241	Code string `json:"code,omitempty"`
43242
43243	// Data: [Output Only] Metadata about this warning in key: value format.
43244	// For example:
43245	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43246	Data []*TargetPoolsScopedListWarningData `json:"data,omitempty"`
43247
43248	// Message: [Output Only] A human-readable description of the warning
43249	// code.
43250	Message string `json:"message,omitempty"`
43251
43252	// ForceSendFields is a list of field names (e.g. "Code") to
43253	// unconditionally include in API requests. By default, fields with
43254	// empty values are omitted from API requests. However, any non-pointer,
43255	// non-interface field appearing in ForceSendFields will be sent to the
43256	// server regardless of whether the field is empty or not. This may be
43257	// used to include empty fields in Patch requests.
43258	ForceSendFields []string `json:"-"`
43259
43260	// NullFields is a list of field names (e.g. "Code") to include in API
43261	// requests with the JSON null value. By default, fields with empty
43262	// values are omitted from API requests. However, any field with an
43263	// empty value appearing in NullFields will be sent to the server as
43264	// null. It is an error if a field in this list has a non-empty value.
43265	// This may be used to include null fields in Patch requests.
43266	NullFields []string `json:"-"`
43267}
43268
43269func (s *TargetPoolsScopedListWarning) MarshalJSON() ([]byte, error) {
43270	type NoMethod TargetPoolsScopedListWarning
43271	raw := NoMethod(*s)
43272	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43273}
43274
43275type TargetPoolsScopedListWarningData struct {
43276	// Key: [Output Only] A key that provides more detail on the warning
43277	// being returned. For example, for warnings where there are no results
43278	// in a list request for a particular zone, this key might be scope and
43279	// the key value might be the zone name. Other examples might be a key
43280	// indicating a deprecated resource and a suggested replacement, or a
43281	// warning about invalid network settings (for example, if an instance
43282	// attempts to perform IP forwarding but is not enabled for IP
43283	// forwarding).
43284	Key string `json:"key,omitempty"`
43285
43286	// Value: [Output Only] A warning data value corresponding to the key.
43287	Value string `json:"value,omitempty"`
43288
43289	// ForceSendFields is a list of field names (e.g. "Key") to
43290	// unconditionally include in API requests. By default, fields with
43291	// empty values are omitted from API requests. However, any non-pointer,
43292	// non-interface field appearing in ForceSendFields will be sent to the
43293	// server regardless of whether the field is empty or not. This may be
43294	// used to include empty fields in Patch requests.
43295	ForceSendFields []string `json:"-"`
43296
43297	// NullFields is a list of field names (e.g. "Key") to include in API
43298	// requests with the JSON null value. By default, fields with empty
43299	// values are omitted from API requests. However, any field with an
43300	// empty value appearing in NullFields will be sent to the server as
43301	// null. It is an error if a field in this list has a non-empty value.
43302	// This may be used to include null fields in Patch requests.
43303	NullFields []string `json:"-"`
43304}
43305
43306func (s *TargetPoolsScopedListWarningData) MarshalJSON() ([]byte, error) {
43307	type NoMethod TargetPoolsScopedListWarningData
43308	raw := NoMethod(*s)
43309	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43310}
43311
43312type TargetReference struct {
43313	Target string `json:"target,omitempty"`
43314
43315	// ForceSendFields is a list of field names (e.g. "Target") to
43316	// unconditionally include in API requests. By default, fields with
43317	// empty values are omitted from API requests. However, any non-pointer,
43318	// non-interface field appearing in ForceSendFields will be sent to the
43319	// server regardless of whether the field is empty or not. This may be
43320	// used to include empty fields in Patch requests.
43321	ForceSendFields []string `json:"-"`
43322
43323	// NullFields is a list of field names (e.g. "Target") to include in API
43324	// requests with the JSON null value. By default, fields with empty
43325	// values are omitted from API requests. However, any field with an
43326	// empty value appearing in NullFields will be sent to the server as
43327	// null. It is an error if a field in this list has a non-empty value.
43328	// This may be used to include null fields in Patch requests.
43329	NullFields []string `json:"-"`
43330}
43331
43332func (s *TargetReference) MarshalJSON() ([]byte, error) {
43333	type NoMethod TargetReference
43334	raw := NoMethod(*s)
43335	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43336}
43337
43338type TargetSslProxiesSetBackendServiceRequest struct {
43339	// Service: The URL of the new BackendService resource for the
43340	// targetSslProxy.
43341	Service string `json:"service,omitempty"`
43342
43343	// ForceSendFields is a list of field names (e.g. "Service") to
43344	// unconditionally include in API requests. By default, fields with
43345	// empty values are omitted from API requests. However, any non-pointer,
43346	// non-interface field appearing in ForceSendFields will be sent to the
43347	// server regardless of whether the field is empty or not. This may be
43348	// used to include empty fields in Patch requests.
43349	ForceSendFields []string `json:"-"`
43350
43351	// NullFields is a list of field names (e.g. "Service") to include in
43352	// API requests with the JSON null value. By default, fields with empty
43353	// values are omitted from API requests. However, any field with an
43354	// empty value appearing in NullFields will be sent to the server as
43355	// null. It is an error if a field in this list has a non-empty value.
43356	// This may be used to include null fields in Patch requests.
43357	NullFields []string `json:"-"`
43358}
43359
43360func (s *TargetSslProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
43361	type NoMethod TargetSslProxiesSetBackendServiceRequest
43362	raw := NoMethod(*s)
43363	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43364}
43365
43366type TargetSslProxiesSetProxyHeaderRequest struct {
43367	// ProxyHeader: The new type of proxy header to append before sending
43368	// data to the backend. NONE or PROXY_V1 are allowed.
43369	//
43370	// Possible values:
43371	//   "NONE"
43372	//   "PROXY_V1"
43373	ProxyHeader string `json:"proxyHeader,omitempty"`
43374
43375	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
43376	// unconditionally include in API requests. By default, fields with
43377	// empty values are omitted from API requests. However, any non-pointer,
43378	// non-interface field appearing in ForceSendFields will be sent to the
43379	// server regardless of whether the field is empty or not. This may be
43380	// used to include empty fields in Patch requests.
43381	ForceSendFields []string `json:"-"`
43382
43383	// NullFields is a list of field names (e.g. "ProxyHeader") to include
43384	// in API requests with the JSON null value. By default, fields with
43385	// empty values are omitted from API requests. However, any field with
43386	// an empty value appearing in NullFields will be sent to the server as
43387	// null. It is an error if a field in this list has a non-empty value.
43388	// This may be used to include null fields in Patch requests.
43389	NullFields []string `json:"-"`
43390}
43391
43392func (s *TargetSslProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
43393	type NoMethod TargetSslProxiesSetProxyHeaderRequest
43394	raw := NoMethod(*s)
43395	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43396}
43397
43398type TargetSslProxiesSetSslCertificatesRequest struct {
43399	// SslCertificates: New set of URLs to SslCertificate resources to
43400	// associate with this TargetSslProxy. Currently exactly one ssl
43401	// certificate must be specified.
43402	SslCertificates []string `json:"sslCertificates,omitempty"`
43403
43404	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
43405	// unconditionally include in API requests. By default, fields with
43406	// empty values are omitted from API requests. However, any non-pointer,
43407	// non-interface field appearing in ForceSendFields will be sent to the
43408	// server regardless of whether the field is empty or not. This may be
43409	// used to include empty fields in Patch requests.
43410	ForceSendFields []string `json:"-"`
43411
43412	// NullFields is a list of field names (e.g. "SslCertificates") to
43413	// include in API requests with the JSON null value. By default, fields
43414	// with empty values are omitted from API requests. However, any field
43415	// with an empty value appearing in NullFields will be sent to the
43416	// server as null. It is an error if a field in this list has a
43417	// non-empty value. This may be used to include null fields in Patch
43418	// requests.
43419	NullFields []string `json:"-"`
43420}
43421
43422func (s *TargetSslProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
43423	type NoMethod TargetSslProxiesSetSslCertificatesRequest
43424	raw := NoMethod(*s)
43425	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43426}
43427
43428// TargetSslProxy: Represents a Target SSL Proxy resource.
43429//
43430// A target SSL proxy is a component of a SSL Proxy load balancer.
43431// Global forwarding rules reference a target SSL proxy, and the target
43432// proxy then references an external backend service. For more
43433// information, read Using Target Proxies. (== resource_for
43434// {$api_version}.targetSslProxies ==)
43435type TargetSslProxy struct {
43436	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
43437	// format.
43438	CreationTimestamp string `json:"creationTimestamp,omitempty"`
43439
43440	// Description: An optional description of this resource. Provide this
43441	// property when you create the resource.
43442	Description string `json:"description,omitempty"`
43443
43444	// Id: [Output Only] The unique identifier for the resource. This
43445	// identifier is defined by the server.
43446	Id uint64 `json:"id,omitempty,string"`
43447
43448	// Kind: [Output Only] Type of the resource. Always
43449	// compute#targetSslProxy for target SSL proxies.
43450	Kind string `json:"kind,omitempty"`
43451
43452	// Name: Name of the resource. Provided by the client when the resource
43453	// is created. The name must be 1-63 characters long, and comply with
43454	// RFC1035. Specifically, the name must be 1-63 characters long and
43455	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
43456	// the first character must be a lowercase letter, and all following
43457	// characters must be a dash, lowercase letter, or digit, except the
43458	// last character, which cannot be a dash.
43459	Name string `json:"name,omitempty"`
43460
43461	// ProxyHeader: Specifies the type of proxy header to append before
43462	// sending data to the backend, either NONE or PROXY_V1. The default is
43463	// NONE.
43464	//
43465	// Possible values:
43466	//   "NONE"
43467	//   "PROXY_V1"
43468	ProxyHeader string `json:"proxyHeader,omitempty"`
43469
43470	// SelfLink: [Output Only] Server-defined URL for the resource.
43471	SelfLink string `json:"selfLink,omitempty"`
43472
43473	// Service: URL to the BackendService resource.
43474	Service string `json:"service,omitempty"`
43475
43476	// SslCertificates: URLs to SslCertificate resources that are used to
43477	// authenticate connections to Backends. At least one SSL certificate
43478	// must be specified. Currently, you may specify up to 15 SSL
43479	// certificates.
43480	SslCertificates []string `json:"sslCertificates,omitempty"`
43481
43482	// SslPolicy: URL of SslPolicy resource that will be associated with the
43483	// TargetSslProxy resource. If not set, the TargetSslProxy resource will
43484	// not have any SSL policy configured.
43485	SslPolicy string `json:"sslPolicy,omitempty"`
43486
43487	// ServerResponse contains the HTTP response code and headers from the
43488	// server.
43489	googleapi.ServerResponse `json:"-"`
43490
43491	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
43492	// to unconditionally include in API requests. By default, fields with
43493	// empty values are omitted from API requests. However, any non-pointer,
43494	// non-interface field appearing in ForceSendFields will be sent to the
43495	// server regardless of whether the field is empty or not. This may be
43496	// used to include empty fields in Patch requests.
43497	ForceSendFields []string `json:"-"`
43498
43499	// NullFields is a list of field names (e.g. "CreationTimestamp") to
43500	// include in API requests with the JSON null value. By default, fields
43501	// with empty values are omitted from API requests. However, any field
43502	// with an empty value appearing in NullFields will be sent to the
43503	// server as null. It is an error if a field in this list has a
43504	// non-empty value. This may be used to include null fields in Patch
43505	// requests.
43506	NullFields []string `json:"-"`
43507}
43508
43509func (s *TargetSslProxy) MarshalJSON() ([]byte, error) {
43510	type NoMethod TargetSslProxy
43511	raw := NoMethod(*s)
43512	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43513}
43514
43515// TargetSslProxyList: Contains a list of TargetSslProxy resources.
43516type TargetSslProxyList struct {
43517	// Id: [Output Only] Unique identifier for the resource; defined by the
43518	// server.
43519	Id string `json:"id,omitempty"`
43520
43521	// Items: A list of TargetSslProxy resources.
43522	Items []*TargetSslProxy `json:"items,omitempty"`
43523
43524	// Kind: Type of resource.
43525	Kind string `json:"kind,omitempty"`
43526
43527	// NextPageToken: [Output Only] This token allows you to get the next
43528	// page of results for list requests. If the number of results is larger
43529	// than maxResults, use the nextPageToken as a value for the query
43530	// parameter pageToken in the next list request. Subsequent list
43531	// requests will have their own nextPageToken to continue paging through
43532	// the results.
43533	NextPageToken string `json:"nextPageToken,omitempty"`
43534
43535	// SelfLink: [Output Only] Server-defined URL for this resource.
43536	SelfLink string `json:"selfLink,omitempty"`
43537
43538	// Warning: [Output Only] Informational warning message.
43539	Warning *TargetSslProxyListWarning `json:"warning,omitempty"`
43540
43541	// ServerResponse contains the HTTP response code and headers from the
43542	// server.
43543	googleapi.ServerResponse `json:"-"`
43544
43545	// ForceSendFields is a list of field names (e.g. "Id") to
43546	// unconditionally include in API requests. By default, fields with
43547	// empty values are omitted from API requests. However, any non-pointer,
43548	// non-interface field appearing in ForceSendFields will be sent to the
43549	// server regardless of whether the field is empty or not. This may be
43550	// used to include empty fields in Patch requests.
43551	ForceSendFields []string `json:"-"`
43552
43553	// NullFields is a list of field names (e.g. "Id") to include in API
43554	// requests with the JSON null value. By default, fields with empty
43555	// values are omitted from API requests. However, any field with an
43556	// empty value appearing in NullFields will be sent to the server as
43557	// null. It is an error if a field in this list has a non-empty value.
43558	// This may be used to include null fields in Patch requests.
43559	NullFields []string `json:"-"`
43560}
43561
43562func (s *TargetSslProxyList) MarshalJSON() ([]byte, error) {
43563	type NoMethod TargetSslProxyList
43564	raw := NoMethod(*s)
43565	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43566}
43567
43568// TargetSslProxyListWarning: [Output Only] Informational warning
43569// message.
43570type TargetSslProxyListWarning struct {
43571	// Code: [Output Only] A warning code, if applicable. For example,
43572	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43573	// the response.
43574	//
43575	// Possible values:
43576	//   "CLEANUP_FAILED"
43577	//   "DEPRECATED_RESOURCE_USED"
43578	//   "DEPRECATED_TYPE_USED"
43579	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
43580	//   "EXPERIMENTAL_TYPE_USED"
43581	//   "EXTERNAL_API_WARNING"
43582	//   "FIELD_VALUE_OVERRIDEN"
43583	//   "INJECTED_KERNELS_DEPRECATED"
43584	//   "MISSING_TYPE_DEPENDENCY"
43585	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
43586	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43587	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43588	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43589	//   "NEXT_HOP_NOT_RUNNING"
43590	//   "NOT_CRITICAL_ERROR"
43591	//   "NO_RESULTS_ON_PAGE"
43592	//   "REQUIRED_TOS_AGREEMENT"
43593	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
43594	//   "RESOURCE_NOT_DELETED"
43595	//   "SCHEMA_VALIDATION_IGNORED"
43596	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43597	//   "UNDECLARED_PROPERTIES"
43598	//   "UNREACHABLE"
43599	Code string `json:"code,omitempty"`
43600
43601	// Data: [Output Only] Metadata about this warning in key: value format.
43602	// For example:
43603	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43604	Data []*TargetSslProxyListWarningData `json:"data,omitempty"`
43605
43606	// Message: [Output Only] A human-readable description of the warning
43607	// code.
43608	Message string `json:"message,omitempty"`
43609
43610	// ForceSendFields is a list of field names (e.g. "Code") to
43611	// unconditionally include in API requests. By default, fields with
43612	// empty values are omitted from API requests. However, any non-pointer,
43613	// non-interface field appearing in ForceSendFields will be sent to the
43614	// server regardless of whether the field is empty or not. This may be
43615	// used to include empty fields in Patch requests.
43616	ForceSendFields []string `json:"-"`
43617
43618	// NullFields is a list of field names (e.g. "Code") to include in API
43619	// requests with the JSON null value. By default, fields with empty
43620	// values are omitted from API requests. However, any field with an
43621	// empty value appearing in NullFields will be sent to the server as
43622	// null. It is an error if a field in this list has a non-empty value.
43623	// This may be used to include null fields in Patch requests.
43624	NullFields []string `json:"-"`
43625}
43626
43627func (s *TargetSslProxyListWarning) MarshalJSON() ([]byte, error) {
43628	type NoMethod TargetSslProxyListWarning
43629	raw := NoMethod(*s)
43630	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43631}
43632
43633type TargetSslProxyListWarningData struct {
43634	// Key: [Output Only] A key that provides more detail on the warning
43635	// being returned. For example, for warnings where there are no results
43636	// in a list request for a particular zone, this key might be scope and
43637	// the key value might be the zone name. Other examples might be a key
43638	// indicating a deprecated resource and a suggested replacement, or a
43639	// warning about invalid network settings (for example, if an instance
43640	// attempts to perform IP forwarding but is not enabled for IP
43641	// forwarding).
43642	Key string `json:"key,omitempty"`
43643
43644	// Value: [Output Only] A warning data value corresponding to the key.
43645	Value string `json:"value,omitempty"`
43646
43647	// ForceSendFields is a list of field names (e.g. "Key") to
43648	// unconditionally include in API requests. By default, fields with
43649	// empty values are omitted from API requests. However, any non-pointer,
43650	// non-interface field appearing in ForceSendFields will be sent to the
43651	// server regardless of whether the field is empty or not. This may be
43652	// used to include empty fields in Patch requests.
43653	ForceSendFields []string `json:"-"`
43654
43655	// NullFields is a list of field names (e.g. "Key") to include in API
43656	// requests with the JSON null value. By default, fields with empty
43657	// values are omitted from API requests. However, any field with an
43658	// empty value appearing in NullFields will be sent to the server as
43659	// null. It is an error if a field in this list has a non-empty value.
43660	// This may be used to include null fields in Patch requests.
43661	NullFields []string `json:"-"`
43662}
43663
43664func (s *TargetSslProxyListWarningData) MarshalJSON() ([]byte, error) {
43665	type NoMethod TargetSslProxyListWarningData
43666	raw := NoMethod(*s)
43667	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43668}
43669
43670type TargetTcpProxiesSetBackendServiceRequest struct {
43671	// Service: The URL of the new BackendService resource for the
43672	// targetTcpProxy.
43673	Service string `json:"service,omitempty"`
43674
43675	// ForceSendFields is a list of field names (e.g. "Service") to
43676	// unconditionally include in API requests. By default, fields with
43677	// empty values are omitted from API requests. However, any non-pointer,
43678	// non-interface field appearing in ForceSendFields will be sent to the
43679	// server regardless of whether the field is empty or not. This may be
43680	// used to include empty fields in Patch requests.
43681	ForceSendFields []string `json:"-"`
43682
43683	// NullFields is a list of field names (e.g. "Service") to include in
43684	// API requests with the JSON null value. By default, fields with empty
43685	// values are omitted from API requests. However, any field with an
43686	// empty value appearing in NullFields will be sent to the server as
43687	// null. It is an error if a field in this list has a non-empty value.
43688	// This may be used to include null fields in Patch requests.
43689	NullFields []string `json:"-"`
43690}
43691
43692func (s *TargetTcpProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
43693	type NoMethod TargetTcpProxiesSetBackendServiceRequest
43694	raw := NoMethod(*s)
43695	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43696}
43697
43698type TargetTcpProxiesSetProxyHeaderRequest struct {
43699	// ProxyHeader: The new type of proxy header to append before sending
43700	// data to the backend. NONE or PROXY_V1 are allowed.
43701	//
43702	// Possible values:
43703	//   "NONE"
43704	//   "PROXY_V1"
43705	ProxyHeader string `json:"proxyHeader,omitempty"`
43706
43707	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
43708	// unconditionally include in API requests. By default, fields with
43709	// empty values are omitted from API requests. However, any non-pointer,
43710	// non-interface field appearing in ForceSendFields will be sent to the
43711	// server regardless of whether the field is empty or not. This may be
43712	// used to include empty fields in Patch requests.
43713	ForceSendFields []string `json:"-"`
43714
43715	// NullFields is a list of field names (e.g. "ProxyHeader") to include
43716	// in API requests with the JSON null value. By default, fields with
43717	// empty values are omitted from API requests. However, any field with
43718	// an empty value appearing in NullFields will be sent to the server as
43719	// null. It is an error if a field in this list has a non-empty value.
43720	// This may be used to include null fields in Patch requests.
43721	NullFields []string `json:"-"`
43722}
43723
43724func (s *TargetTcpProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
43725	type NoMethod TargetTcpProxiesSetProxyHeaderRequest
43726	raw := NoMethod(*s)
43727	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43728}
43729
43730// TargetTcpProxy: Represents a Target TCP Proxy resource.
43731//
43732// A target TCP proxy is a component of a TCP Proxy load balancer.
43733// Global forwarding rules reference target TCP proxy, and the target
43734// proxy then references an external backend service. For more
43735// information, read TCP Proxy Load Balancing Concepts. (== resource_for
43736// {$api_version}.targetTcpProxies ==)
43737type TargetTcpProxy struct {
43738	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
43739	// format.
43740	CreationTimestamp string `json:"creationTimestamp,omitempty"`
43741
43742	// Description: An optional description of this resource. Provide this
43743	// property when you create the resource.
43744	Description string `json:"description,omitempty"`
43745
43746	// Id: [Output Only] The unique identifier for the resource. This
43747	// identifier is defined by the server.
43748	Id uint64 `json:"id,omitempty,string"`
43749
43750	// Kind: [Output Only] Type of the resource. Always
43751	// compute#targetTcpProxy for target TCP proxies.
43752	Kind string `json:"kind,omitempty"`
43753
43754	// Name: Name of the resource. Provided by the client when the resource
43755	// is created. The name must be 1-63 characters long, and comply with
43756	// RFC1035. Specifically, the name must be 1-63 characters long and
43757	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
43758	// the first character must be a lowercase letter, and all following
43759	// characters must be a dash, lowercase letter, or digit, except the
43760	// last character, which cannot be a dash.
43761	Name string `json:"name,omitempty"`
43762
43763	// ProxyHeader: Specifies the type of proxy header to append before
43764	// sending data to the backend, either NONE or PROXY_V1. The default is
43765	// NONE.
43766	//
43767	// Possible values:
43768	//   "NONE"
43769	//   "PROXY_V1"
43770	ProxyHeader string `json:"proxyHeader,omitempty"`
43771
43772	// SelfLink: [Output Only] Server-defined URL for the resource.
43773	SelfLink string `json:"selfLink,omitempty"`
43774
43775	// Service: URL to the BackendService resource.
43776	Service string `json:"service,omitempty"`
43777
43778	// ServerResponse contains the HTTP response code and headers from the
43779	// server.
43780	googleapi.ServerResponse `json:"-"`
43781
43782	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
43783	// to unconditionally include in API requests. By default, fields with
43784	// empty values are omitted from API requests. However, any non-pointer,
43785	// non-interface field appearing in ForceSendFields will be sent to the
43786	// server regardless of whether the field is empty or not. This may be
43787	// used to include empty fields in Patch requests.
43788	ForceSendFields []string `json:"-"`
43789
43790	// NullFields is a list of field names (e.g. "CreationTimestamp") to
43791	// include in API requests with the JSON null value. By default, fields
43792	// with empty values are omitted from API requests. However, any field
43793	// with an empty value appearing in NullFields will be sent to the
43794	// server as null. It is an error if a field in this list has a
43795	// non-empty value. This may be used to include null fields in Patch
43796	// requests.
43797	NullFields []string `json:"-"`
43798}
43799
43800func (s *TargetTcpProxy) MarshalJSON() ([]byte, error) {
43801	type NoMethod TargetTcpProxy
43802	raw := NoMethod(*s)
43803	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43804}
43805
43806// TargetTcpProxyList: Contains a list of TargetTcpProxy resources.
43807type TargetTcpProxyList struct {
43808	// Id: [Output Only] Unique identifier for the resource; defined by the
43809	// server.
43810	Id string `json:"id,omitempty"`
43811
43812	// Items: A list of TargetTcpProxy resources.
43813	Items []*TargetTcpProxy `json:"items,omitempty"`
43814
43815	// Kind: Type of resource.
43816	Kind string `json:"kind,omitempty"`
43817
43818	// NextPageToken: [Output Only] This token allows you to get the next
43819	// page of results for list requests. If the number of results is larger
43820	// than maxResults, use the nextPageToken as a value for the query
43821	// parameter pageToken in the next list request. Subsequent list
43822	// requests will have their own nextPageToken to continue paging through
43823	// the results.
43824	NextPageToken string `json:"nextPageToken,omitempty"`
43825
43826	// SelfLink: [Output Only] Server-defined URL for this resource.
43827	SelfLink string `json:"selfLink,omitempty"`
43828
43829	// Warning: [Output Only] Informational warning message.
43830	Warning *TargetTcpProxyListWarning `json:"warning,omitempty"`
43831
43832	// ServerResponse contains the HTTP response code and headers from the
43833	// server.
43834	googleapi.ServerResponse `json:"-"`
43835
43836	// ForceSendFields is a list of field names (e.g. "Id") to
43837	// unconditionally include in API requests. By default, fields with
43838	// empty values are omitted from API requests. However, any non-pointer,
43839	// non-interface field appearing in ForceSendFields will be sent to the
43840	// server regardless of whether the field is empty or not. This may be
43841	// used to include empty fields in Patch requests.
43842	ForceSendFields []string `json:"-"`
43843
43844	// NullFields is a list of field names (e.g. "Id") to include in API
43845	// requests with the JSON null value. By default, fields with empty
43846	// values are omitted from API requests. However, any field with an
43847	// empty value appearing in NullFields will be sent to the server as
43848	// null. It is an error if a field in this list has a non-empty value.
43849	// This may be used to include null fields in Patch requests.
43850	NullFields []string `json:"-"`
43851}
43852
43853func (s *TargetTcpProxyList) MarshalJSON() ([]byte, error) {
43854	type NoMethod TargetTcpProxyList
43855	raw := NoMethod(*s)
43856	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43857}
43858
43859// TargetTcpProxyListWarning: [Output Only] Informational warning
43860// message.
43861type TargetTcpProxyListWarning struct {
43862	// Code: [Output Only] A warning code, if applicable. For example,
43863	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43864	// the response.
43865	//
43866	// Possible values:
43867	//   "CLEANUP_FAILED"
43868	//   "DEPRECATED_RESOURCE_USED"
43869	//   "DEPRECATED_TYPE_USED"
43870	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
43871	//   "EXPERIMENTAL_TYPE_USED"
43872	//   "EXTERNAL_API_WARNING"
43873	//   "FIELD_VALUE_OVERRIDEN"
43874	//   "INJECTED_KERNELS_DEPRECATED"
43875	//   "MISSING_TYPE_DEPENDENCY"
43876	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
43877	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43878	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43879	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43880	//   "NEXT_HOP_NOT_RUNNING"
43881	//   "NOT_CRITICAL_ERROR"
43882	//   "NO_RESULTS_ON_PAGE"
43883	//   "REQUIRED_TOS_AGREEMENT"
43884	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
43885	//   "RESOURCE_NOT_DELETED"
43886	//   "SCHEMA_VALIDATION_IGNORED"
43887	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43888	//   "UNDECLARED_PROPERTIES"
43889	//   "UNREACHABLE"
43890	Code string `json:"code,omitempty"`
43891
43892	// Data: [Output Only] Metadata about this warning in key: value format.
43893	// For example:
43894	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43895	Data []*TargetTcpProxyListWarningData `json:"data,omitempty"`
43896
43897	// Message: [Output Only] A human-readable description of the warning
43898	// code.
43899	Message string `json:"message,omitempty"`
43900
43901	// ForceSendFields is a list of field names (e.g. "Code") to
43902	// unconditionally include in API requests. By default, fields with
43903	// empty values are omitted from API requests. However, any non-pointer,
43904	// non-interface field appearing in ForceSendFields will be sent to the
43905	// server regardless of whether the field is empty or not. This may be
43906	// used to include empty fields in Patch requests.
43907	ForceSendFields []string `json:"-"`
43908
43909	// NullFields is a list of field names (e.g. "Code") to include in API
43910	// requests with the JSON null value. By default, fields with empty
43911	// values are omitted from API requests. However, any field with an
43912	// empty value appearing in NullFields will be sent to the server as
43913	// null. It is an error if a field in this list has a non-empty value.
43914	// This may be used to include null fields in Patch requests.
43915	NullFields []string `json:"-"`
43916}
43917
43918func (s *TargetTcpProxyListWarning) MarshalJSON() ([]byte, error) {
43919	type NoMethod TargetTcpProxyListWarning
43920	raw := NoMethod(*s)
43921	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43922}
43923
43924type TargetTcpProxyListWarningData struct {
43925	// Key: [Output Only] A key that provides more detail on the warning
43926	// being returned. For example, for warnings where there are no results
43927	// in a list request for a particular zone, this key might be scope and
43928	// the key value might be the zone name. Other examples might be a key
43929	// indicating a deprecated resource and a suggested replacement, or a
43930	// warning about invalid network settings (for example, if an instance
43931	// attempts to perform IP forwarding but is not enabled for IP
43932	// forwarding).
43933	Key string `json:"key,omitempty"`
43934
43935	// Value: [Output Only] A warning data value corresponding to the key.
43936	Value string `json:"value,omitempty"`
43937
43938	// ForceSendFields is a list of field names (e.g. "Key") to
43939	// unconditionally include in API requests. By default, fields with
43940	// empty values are omitted from API requests. However, any non-pointer,
43941	// non-interface field appearing in ForceSendFields will be sent to the
43942	// server regardless of whether the field is empty or not. This may be
43943	// used to include empty fields in Patch requests.
43944	ForceSendFields []string `json:"-"`
43945
43946	// NullFields is a list of field names (e.g. "Key") to include in API
43947	// requests with the JSON null value. By default, fields with empty
43948	// values are omitted from API requests. However, any field with an
43949	// empty value appearing in NullFields will be sent to the server as
43950	// null. It is an error if a field in this list has a non-empty value.
43951	// This may be used to include null fields in Patch requests.
43952	NullFields []string `json:"-"`
43953}
43954
43955func (s *TargetTcpProxyListWarningData) MarshalJSON() ([]byte, error) {
43956	type NoMethod TargetTcpProxyListWarningData
43957	raw := NoMethod(*s)
43958	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43959}
43960
43961// TargetVpnGateway: Represents a Target VPN Gateway resource.
43962//
43963// The target VPN gateway resource represents a Classic Cloud VPN
43964// gateway. For more information, read the the Cloud VPN Overview. (==
43965// resource_for {$api_version}.targetVpnGateways ==)
43966type TargetVpnGateway struct {
43967	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
43968	// format.
43969	CreationTimestamp string `json:"creationTimestamp,omitempty"`
43970
43971	// Description: An optional description of this resource. Provide this
43972	// property when you create the resource.
43973	Description string `json:"description,omitempty"`
43974
43975	// ForwardingRules: [Output Only] A list of URLs to the ForwardingRule
43976	// resources. ForwardingRules are created using
43977	// compute.forwardingRules.insert and associated with a VPN gateway.
43978	ForwardingRules []string `json:"forwardingRules,omitempty"`
43979
43980	// Id: [Output Only] The unique identifier for the resource. This
43981	// identifier is defined by the server.
43982	Id uint64 `json:"id,omitempty,string"`
43983
43984	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
43985	// for target VPN gateways.
43986	Kind string `json:"kind,omitempty"`
43987
43988	// LabelFingerprint: A fingerprint for the labels being applied to this
43989	// TargetVpnGateway, which is essentially a hash of the labels set used
43990	// for optimistic locking. The fingerprint is initially generated by
43991	// Compute Engine and changes after every request to modify or update
43992	// labels. You must always provide an up-to-date fingerprint hash in
43993	// order to update or change labels, otherwise the request will fail
43994	// with error 412 conditionNotMet.
43995	//
43996	// To see the latest fingerprint, make a get() request to retrieve a
43997	// TargetVpnGateway.
43998	LabelFingerprint string `json:"labelFingerprint,omitempty"`
43999
44000	// Labels: Labels to apply to this TargetVpnGateway resource. These can
44001	// be later modified by the setLabels method. Each label key/value must
44002	// comply with RFC1035. Label values may be empty.
44003	Labels map[string]string `json:"labels,omitempty"`
44004
44005	// Name: Name of the resource. Provided by the client when the resource
44006	// is created. The name must be 1-63 characters long, and comply with
44007	// RFC1035. Specifically, the name must be 1-63 characters long and
44008	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
44009	// the first character must be a lowercase letter, and all following
44010	// characters must be a dash, lowercase letter, or digit, except the
44011	// last character, which cannot be a dash.
44012	Name string `json:"name,omitempty"`
44013
44014	// Network: URL of the network to which this VPN gateway is attached.
44015	// Provided by the client when the VPN gateway is created.
44016	Network string `json:"network,omitempty"`
44017
44018	// Region: [Output Only] URL of the region where the target VPN gateway
44019	// resides. You must specify this field as part of the HTTP request URL.
44020	// It is not settable as a field in the request body.
44021	Region string `json:"region,omitempty"`
44022
44023	// SelfLink: [Output Only] Server-defined URL for the resource.
44024	SelfLink string `json:"selfLink,omitempty"`
44025
44026	// Status: [Output Only] The status of the VPN gateway, which can be one
44027	// of the following: CREATING, READY, FAILED, or DELETING.
44028	//
44029	// Possible values:
44030	//   "CREATING"
44031	//   "DELETING"
44032	//   "FAILED"
44033	//   "READY"
44034	Status string `json:"status,omitempty"`
44035
44036	// Tunnels: [Output Only] A list of URLs to VpnTunnel resources.
44037	// VpnTunnels are created using the compute.vpntunnels.insert method and
44038	// associated with a VPN gateway.
44039	Tunnels []string `json:"tunnels,omitempty"`
44040
44041	// ServerResponse contains the HTTP response code and headers from the
44042	// server.
44043	googleapi.ServerResponse `json:"-"`
44044
44045	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
44046	// to unconditionally include in API requests. By default, fields with
44047	// empty values are omitted from API requests. However, any non-pointer,
44048	// non-interface field appearing in ForceSendFields will be sent to the
44049	// server regardless of whether the field is empty or not. This may be
44050	// used to include empty fields in Patch requests.
44051	ForceSendFields []string `json:"-"`
44052
44053	// NullFields is a list of field names (e.g. "CreationTimestamp") to
44054	// include in API requests with the JSON null value. By default, fields
44055	// with empty values are omitted from API requests. However, any field
44056	// with an empty value appearing in NullFields will be sent to the
44057	// server as null. It is an error if a field in this list has a
44058	// non-empty value. This may be used to include null fields in Patch
44059	// requests.
44060	NullFields []string `json:"-"`
44061}
44062
44063func (s *TargetVpnGateway) MarshalJSON() ([]byte, error) {
44064	type NoMethod TargetVpnGateway
44065	raw := NoMethod(*s)
44066	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44067}
44068
44069type TargetVpnGatewayAggregatedList struct {
44070	// Id: [Output Only] Unique identifier for the resource; defined by the
44071	// server.
44072	Id string `json:"id,omitempty"`
44073
44074	// Items: A list of TargetVpnGateway resources.
44075	Items map[string]TargetVpnGatewaysScopedList `json:"items,omitempty"`
44076
44077	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
44078	// for target VPN gateways.
44079	Kind string `json:"kind,omitempty"`
44080
44081	// NextPageToken: [Output Only] This token allows you to get the next
44082	// page of results for list requests. If the number of results is larger
44083	// than maxResults, use the nextPageToken as a value for the query
44084	// parameter pageToken in the next list request. Subsequent list
44085	// requests will have their own nextPageToken to continue paging through
44086	// the results.
44087	NextPageToken string `json:"nextPageToken,omitempty"`
44088
44089	// SelfLink: [Output Only] Server-defined URL for this resource.
44090	SelfLink string `json:"selfLink,omitempty"`
44091
44092	// Warning: [Output Only] Informational warning message.
44093	Warning *TargetVpnGatewayAggregatedListWarning `json:"warning,omitempty"`
44094
44095	// ServerResponse contains the HTTP response code and headers from the
44096	// server.
44097	googleapi.ServerResponse `json:"-"`
44098
44099	// ForceSendFields is a list of field names (e.g. "Id") to
44100	// unconditionally include in API requests. By default, fields with
44101	// empty values are omitted from API requests. However, any non-pointer,
44102	// non-interface field appearing in ForceSendFields will be sent to the
44103	// server regardless of whether the field is empty or not. This may be
44104	// used to include empty fields in Patch requests.
44105	ForceSendFields []string `json:"-"`
44106
44107	// NullFields is a list of field names (e.g. "Id") to include in API
44108	// requests with the JSON null value. By default, fields with empty
44109	// values are omitted from API requests. However, any field with an
44110	// empty value appearing in NullFields will be sent to the server as
44111	// null. It is an error if a field in this list has a non-empty value.
44112	// This may be used to include null fields in Patch requests.
44113	NullFields []string `json:"-"`
44114}
44115
44116func (s *TargetVpnGatewayAggregatedList) MarshalJSON() ([]byte, error) {
44117	type NoMethod TargetVpnGatewayAggregatedList
44118	raw := NoMethod(*s)
44119	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44120}
44121
44122// TargetVpnGatewayAggregatedListWarning: [Output Only] Informational
44123// warning message.
44124type TargetVpnGatewayAggregatedListWarning struct {
44125	// Code: [Output Only] A warning code, if applicable. For example,
44126	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44127	// the response.
44128	//
44129	// Possible values:
44130	//   "CLEANUP_FAILED"
44131	//   "DEPRECATED_RESOURCE_USED"
44132	//   "DEPRECATED_TYPE_USED"
44133	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44134	//   "EXPERIMENTAL_TYPE_USED"
44135	//   "EXTERNAL_API_WARNING"
44136	//   "FIELD_VALUE_OVERRIDEN"
44137	//   "INJECTED_KERNELS_DEPRECATED"
44138	//   "MISSING_TYPE_DEPENDENCY"
44139	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44140	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44141	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44142	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
44143	//   "NEXT_HOP_NOT_RUNNING"
44144	//   "NOT_CRITICAL_ERROR"
44145	//   "NO_RESULTS_ON_PAGE"
44146	//   "REQUIRED_TOS_AGREEMENT"
44147	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
44148	//   "RESOURCE_NOT_DELETED"
44149	//   "SCHEMA_VALIDATION_IGNORED"
44150	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
44151	//   "UNDECLARED_PROPERTIES"
44152	//   "UNREACHABLE"
44153	Code string `json:"code,omitempty"`
44154
44155	// Data: [Output Only] Metadata about this warning in key: value format.
44156	// For example:
44157	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44158	Data []*TargetVpnGatewayAggregatedListWarningData `json:"data,omitempty"`
44159
44160	// Message: [Output Only] A human-readable description of the warning
44161	// code.
44162	Message string `json:"message,omitempty"`
44163
44164	// ForceSendFields is a list of field names (e.g. "Code") to
44165	// unconditionally include in API requests. By default, fields with
44166	// empty values are omitted from API requests. However, any non-pointer,
44167	// non-interface field appearing in ForceSendFields will be sent to the
44168	// server regardless of whether the field is empty or not. This may be
44169	// used to include empty fields in Patch requests.
44170	ForceSendFields []string `json:"-"`
44171
44172	// NullFields is a list of field names (e.g. "Code") to include in API
44173	// requests with the JSON null value. By default, fields with empty
44174	// values are omitted from API requests. However, any field with an
44175	// empty value appearing in NullFields will be sent to the server as
44176	// null. It is an error if a field in this list has a non-empty value.
44177	// This may be used to include null fields in Patch requests.
44178	NullFields []string `json:"-"`
44179}
44180
44181func (s *TargetVpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) {
44182	type NoMethod TargetVpnGatewayAggregatedListWarning
44183	raw := NoMethod(*s)
44184	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44185}
44186
44187type TargetVpnGatewayAggregatedListWarningData struct {
44188	// Key: [Output Only] A key that provides more detail on the warning
44189	// being returned. For example, for warnings where there are no results
44190	// in a list request for a particular zone, this key might be scope and
44191	// the key value might be the zone name. Other examples might be a key
44192	// indicating a deprecated resource and a suggested replacement, or a
44193	// warning about invalid network settings (for example, if an instance
44194	// attempts to perform IP forwarding but is not enabled for IP
44195	// forwarding).
44196	Key string `json:"key,omitempty"`
44197
44198	// Value: [Output Only] A warning data value corresponding to the key.
44199	Value string `json:"value,omitempty"`
44200
44201	// ForceSendFields is a list of field names (e.g. "Key") to
44202	// unconditionally include in API requests. By default, fields with
44203	// empty values are omitted from API requests. However, any non-pointer,
44204	// non-interface field appearing in ForceSendFields will be sent to the
44205	// server regardless of whether the field is empty or not. This may be
44206	// used to include empty fields in Patch requests.
44207	ForceSendFields []string `json:"-"`
44208
44209	// NullFields is a list of field names (e.g. "Key") to include in API
44210	// requests with the JSON null value. By default, fields with empty
44211	// values are omitted from API requests. However, any field with an
44212	// empty value appearing in NullFields will be sent to the server as
44213	// null. It is an error if a field in this list has a non-empty value.
44214	// This may be used to include null fields in Patch requests.
44215	NullFields []string `json:"-"`
44216}
44217
44218func (s *TargetVpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) {
44219	type NoMethod TargetVpnGatewayAggregatedListWarningData
44220	raw := NoMethod(*s)
44221	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44222}
44223
44224// TargetVpnGatewayList: Contains a list of TargetVpnGateway resources.
44225type TargetVpnGatewayList struct {
44226	// Id: [Output Only] Unique identifier for the resource; defined by the
44227	// server.
44228	Id string `json:"id,omitempty"`
44229
44230	// Items: A list of TargetVpnGateway resources.
44231	Items []*TargetVpnGateway `json:"items,omitempty"`
44232
44233	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
44234	// for target VPN gateways.
44235	Kind string `json:"kind,omitempty"`
44236
44237	// NextPageToken: [Output Only] This token allows you to get the next
44238	// page of results for list requests. If the number of results is larger
44239	// than maxResults, use the nextPageToken as a value for the query
44240	// parameter pageToken in the next list request. Subsequent list
44241	// requests will have their own nextPageToken to continue paging through
44242	// the results.
44243	NextPageToken string `json:"nextPageToken,omitempty"`
44244
44245	// SelfLink: [Output Only] Server-defined URL for this resource.
44246	SelfLink string `json:"selfLink,omitempty"`
44247
44248	// Warning: [Output Only] Informational warning message.
44249	Warning *TargetVpnGatewayListWarning `json:"warning,omitempty"`
44250
44251	// ServerResponse contains the HTTP response code and headers from the
44252	// server.
44253	googleapi.ServerResponse `json:"-"`
44254
44255	// ForceSendFields is a list of field names (e.g. "Id") to
44256	// unconditionally include in API requests. By default, fields with
44257	// empty values are omitted from API requests. However, any non-pointer,
44258	// non-interface field appearing in ForceSendFields will be sent to the
44259	// server regardless of whether the field is empty or not. This may be
44260	// used to include empty fields in Patch requests.
44261	ForceSendFields []string `json:"-"`
44262
44263	// NullFields is a list of field names (e.g. "Id") to include in API
44264	// requests with the JSON null value. By default, fields with empty
44265	// values are omitted from API requests. However, any field with an
44266	// empty value appearing in NullFields will be sent to the server as
44267	// null. It is an error if a field in this list has a non-empty value.
44268	// This may be used to include null fields in Patch requests.
44269	NullFields []string `json:"-"`
44270}
44271
44272func (s *TargetVpnGatewayList) MarshalJSON() ([]byte, error) {
44273	type NoMethod TargetVpnGatewayList
44274	raw := NoMethod(*s)
44275	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44276}
44277
44278// TargetVpnGatewayListWarning: [Output Only] Informational warning
44279// message.
44280type TargetVpnGatewayListWarning struct {
44281	// Code: [Output Only] A warning code, if applicable. For example,
44282	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44283	// the response.
44284	//
44285	// Possible values:
44286	//   "CLEANUP_FAILED"
44287	//   "DEPRECATED_RESOURCE_USED"
44288	//   "DEPRECATED_TYPE_USED"
44289	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44290	//   "EXPERIMENTAL_TYPE_USED"
44291	//   "EXTERNAL_API_WARNING"
44292	//   "FIELD_VALUE_OVERRIDEN"
44293	//   "INJECTED_KERNELS_DEPRECATED"
44294	//   "MISSING_TYPE_DEPENDENCY"
44295	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44296	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44297	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44298	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
44299	//   "NEXT_HOP_NOT_RUNNING"
44300	//   "NOT_CRITICAL_ERROR"
44301	//   "NO_RESULTS_ON_PAGE"
44302	//   "REQUIRED_TOS_AGREEMENT"
44303	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
44304	//   "RESOURCE_NOT_DELETED"
44305	//   "SCHEMA_VALIDATION_IGNORED"
44306	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
44307	//   "UNDECLARED_PROPERTIES"
44308	//   "UNREACHABLE"
44309	Code string `json:"code,omitempty"`
44310
44311	// Data: [Output Only] Metadata about this warning in key: value format.
44312	// For example:
44313	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44314	Data []*TargetVpnGatewayListWarningData `json:"data,omitempty"`
44315
44316	// Message: [Output Only] A human-readable description of the warning
44317	// code.
44318	Message string `json:"message,omitempty"`
44319
44320	// ForceSendFields is a list of field names (e.g. "Code") to
44321	// unconditionally include in API requests. By default, fields with
44322	// empty values are omitted from API requests. However, any non-pointer,
44323	// non-interface field appearing in ForceSendFields will be sent to the
44324	// server regardless of whether the field is empty or not. This may be
44325	// used to include empty fields in Patch requests.
44326	ForceSendFields []string `json:"-"`
44327
44328	// NullFields is a list of field names (e.g. "Code") to include in API
44329	// requests with the JSON null value. By default, fields with empty
44330	// values are omitted from API requests. However, any field with an
44331	// empty value appearing in NullFields will be sent to the server as
44332	// null. It is an error if a field in this list has a non-empty value.
44333	// This may be used to include null fields in Patch requests.
44334	NullFields []string `json:"-"`
44335}
44336
44337func (s *TargetVpnGatewayListWarning) MarshalJSON() ([]byte, error) {
44338	type NoMethod TargetVpnGatewayListWarning
44339	raw := NoMethod(*s)
44340	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44341}
44342
44343type TargetVpnGatewayListWarningData struct {
44344	// Key: [Output Only] A key that provides more detail on the warning
44345	// being returned. For example, for warnings where there are no results
44346	// in a list request for a particular zone, this key might be scope and
44347	// the key value might be the zone name. Other examples might be a key
44348	// indicating a deprecated resource and a suggested replacement, or a
44349	// warning about invalid network settings (for example, if an instance
44350	// attempts to perform IP forwarding but is not enabled for IP
44351	// forwarding).
44352	Key string `json:"key,omitempty"`
44353
44354	// Value: [Output Only] A warning data value corresponding to the key.
44355	Value string `json:"value,omitempty"`
44356
44357	// ForceSendFields is a list of field names (e.g. "Key") to
44358	// unconditionally include in API requests. By default, fields with
44359	// empty values are omitted from API requests. However, any non-pointer,
44360	// non-interface field appearing in ForceSendFields will be sent to the
44361	// server regardless of whether the field is empty or not. This may be
44362	// used to include empty fields in Patch requests.
44363	ForceSendFields []string `json:"-"`
44364
44365	// NullFields is a list of field names (e.g. "Key") to include in API
44366	// requests with the JSON null value. By default, fields with empty
44367	// values are omitted from API requests. However, any field with an
44368	// empty value appearing in NullFields will be sent to the server as
44369	// null. It is an error if a field in this list has a non-empty value.
44370	// This may be used to include null fields in Patch requests.
44371	NullFields []string `json:"-"`
44372}
44373
44374func (s *TargetVpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
44375	type NoMethod TargetVpnGatewayListWarningData
44376	raw := NoMethod(*s)
44377	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44378}
44379
44380type TargetVpnGatewaysScopedList struct {
44381	// TargetVpnGateways: [Output Only] A list of target VPN gateways
44382	// contained in this scope.
44383	TargetVpnGateways []*TargetVpnGateway `json:"targetVpnGateways,omitempty"`
44384
44385	// Warning: [Output Only] Informational warning which replaces the list
44386	// of addresses when the list is empty.
44387	Warning *TargetVpnGatewaysScopedListWarning `json:"warning,omitempty"`
44388
44389	// ForceSendFields is a list of field names (e.g. "TargetVpnGateways")
44390	// to unconditionally include in API requests. By default, fields with
44391	// empty values are omitted from API requests. However, any non-pointer,
44392	// non-interface field appearing in ForceSendFields will be sent to the
44393	// server regardless of whether the field is empty or not. This may be
44394	// used to include empty fields in Patch requests.
44395	ForceSendFields []string `json:"-"`
44396
44397	// NullFields is a list of field names (e.g. "TargetVpnGateways") to
44398	// include in API requests with the JSON null value. By default, fields
44399	// with empty values are omitted from API requests. However, any field
44400	// with an empty value appearing in NullFields will be sent to the
44401	// server as null. It is an error if a field in this list has a
44402	// non-empty value. This may be used to include null fields in Patch
44403	// requests.
44404	NullFields []string `json:"-"`
44405}
44406
44407func (s *TargetVpnGatewaysScopedList) MarshalJSON() ([]byte, error) {
44408	type NoMethod TargetVpnGatewaysScopedList
44409	raw := NoMethod(*s)
44410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44411}
44412
44413// TargetVpnGatewaysScopedListWarning: [Output Only] Informational
44414// warning which replaces the list of addresses when the list is empty.
44415type TargetVpnGatewaysScopedListWarning struct {
44416	// Code: [Output Only] A warning code, if applicable. For example,
44417	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44418	// the response.
44419	//
44420	// Possible values:
44421	//   "CLEANUP_FAILED"
44422	//   "DEPRECATED_RESOURCE_USED"
44423	//   "DEPRECATED_TYPE_USED"
44424	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44425	//   "EXPERIMENTAL_TYPE_USED"
44426	//   "EXTERNAL_API_WARNING"
44427	//   "FIELD_VALUE_OVERRIDEN"
44428	//   "INJECTED_KERNELS_DEPRECATED"
44429	//   "MISSING_TYPE_DEPENDENCY"
44430	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44431	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44432	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44433	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
44434	//   "NEXT_HOP_NOT_RUNNING"
44435	//   "NOT_CRITICAL_ERROR"
44436	//   "NO_RESULTS_ON_PAGE"
44437	//   "REQUIRED_TOS_AGREEMENT"
44438	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
44439	//   "RESOURCE_NOT_DELETED"
44440	//   "SCHEMA_VALIDATION_IGNORED"
44441	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
44442	//   "UNDECLARED_PROPERTIES"
44443	//   "UNREACHABLE"
44444	Code string `json:"code,omitempty"`
44445
44446	// Data: [Output Only] Metadata about this warning in key: value format.
44447	// For example:
44448	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44449	Data []*TargetVpnGatewaysScopedListWarningData `json:"data,omitempty"`
44450
44451	// Message: [Output Only] A human-readable description of the warning
44452	// code.
44453	Message string `json:"message,omitempty"`
44454
44455	// ForceSendFields is a list of field names (e.g. "Code") to
44456	// unconditionally include in API requests. By default, fields with
44457	// empty values are omitted from API requests. However, any non-pointer,
44458	// non-interface field appearing in ForceSendFields will be sent to the
44459	// server regardless of whether the field is empty or not. This may be
44460	// used to include empty fields in Patch requests.
44461	ForceSendFields []string `json:"-"`
44462
44463	// NullFields is a list of field names (e.g. "Code") to include in API
44464	// requests with the JSON null value. By default, fields with empty
44465	// values are omitted from API requests. However, any field with an
44466	// empty value appearing in NullFields will be sent to the server as
44467	// null. It is an error if a field in this list has a non-empty value.
44468	// This may be used to include null fields in Patch requests.
44469	NullFields []string `json:"-"`
44470}
44471
44472func (s *TargetVpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) {
44473	type NoMethod TargetVpnGatewaysScopedListWarning
44474	raw := NoMethod(*s)
44475	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44476}
44477
44478type TargetVpnGatewaysScopedListWarningData struct {
44479	// Key: [Output Only] A key that provides more detail on the warning
44480	// being returned. For example, for warnings where there are no results
44481	// in a list request for a particular zone, this key might be scope and
44482	// the key value might be the zone name. Other examples might be a key
44483	// indicating a deprecated resource and a suggested replacement, or a
44484	// warning about invalid network settings (for example, if an instance
44485	// attempts to perform IP forwarding but is not enabled for IP
44486	// forwarding).
44487	Key string `json:"key,omitempty"`
44488
44489	// Value: [Output Only] A warning data value corresponding to the key.
44490	Value string `json:"value,omitempty"`
44491
44492	// ForceSendFields is a list of field names (e.g. "Key") to
44493	// unconditionally include in API requests. By default, fields with
44494	// empty values are omitted from API requests. However, any non-pointer,
44495	// non-interface field appearing in ForceSendFields will be sent to the
44496	// server regardless of whether the field is empty or not. This may be
44497	// used to include empty fields in Patch requests.
44498	ForceSendFields []string `json:"-"`
44499
44500	// NullFields is a list of field names (e.g. "Key") to include in API
44501	// requests with the JSON null value. By default, fields with empty
44502	// values are omitted from API requests. However, any field with an
44503	// empty value appearing in NullFields will be sent to the server as
44504	// null. It is an error if a field in this list has a non-empty value.
44505	// This may be used to include null fields in Patch requests.
44506	NullFields []string `json:"-"`
44507}
44508
44509func (s *TargetVpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) {
44510	type NoMethod TargetVpnGatewaysScopedListWarningData
44511	raw := NoMethod(*s)
44512	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44513}
44514
44515type TestFailure struct {
44516	ActualService string `json:"actualService,omitempty"`
44517
44518	ExpectedService string `json:"expectedService,omitempty"`
44519
44520	Host string `json:"host,omitempty"`
44521
44522	Path string `json:"path,omitempty"`
44523
44524	// ForceSendFields is a list of field names (e.g. "ActualService") to
44525	// unconditionally include in API requests. By default, fields with
44526	// empty values are omitted from API requests. However, any non-pointer,
44527	// non-interface field appearing in ForceSendFields will be sent to the
44528	// server regardless of whether the field is empty or not. This may be
44529	// used to include empty fields in Patch requests.
44530	ForceSendFields []string `json:"-"`
44531
44532	// NullFields is a list of field names (e.g. "ActualService") to include
44533	// in API requests with the JSON null value. By default, fields with
44534	// empty values are omitted from API requests. However, any field with
44535	// an empty value appearing in NullFields will be sent to the server as
44536	// null. It is an error if a field in this list has a non-empty value.
44537	// This may be used to include null fields in Patch requests.
44538	NullFields []string `json:"-"`
44539}
44540
44541func (s *TestFailure) MarshalJSON() ([]byte, error) {
44542	type NoMethod TestFailure
44543	raw := NoMethod(*s)
44544	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44545}
44546
44547type TestPermissionsRequest struct {
44548	// Permissions: The set of permissions to check for the 'resource'.
44549	// Permissions with wildcards (such as '*' or 'storage.*') are not
44550	// allowed.
44551	Permissions []string `json:"permissions,omitempty"`
44552
44553	// ForceSendFields is a list of field names (e.g. "Permissions") to
44554	// unconditionally include in API requests. By default, fields with
44555	// empty values are omitted from API requests. However, any non-pointer,
44556	// non-interface field appearing in ForceSendFields will be sent to the
44557	// server regardless of whether the field is empty or not. This may be
44558	// used to include empty fields in Patch requests.
44559	ForceSendFields []string `json:"-"`
44560
44561	// NullFields is a list of field names (e.g. "Permissions") to include
44562	// in API requests with the JSON null value. By default, fields with
44563	// empty values are omitted from API requests. However, any field with
44564	// an empty value appearing in NullFields will be sent to the server as
44565	// null. It is an error if a field in this list has a non-empty value.
44566	// This may be used to include null fields in Patch requests.
44567	NullFields []string `json:"-"`
44568}
44569
44570func (s *TestPermissionsRequest) MarshalJSON() ([]byte, error) {
44571	type NoMethod TestPermissionsRequest
44572	raw := NoMethod(*s)
44573	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44574}
44575
44576type TestPermissionsResponse struct {
44577	// Permissions: A subset of `TestPermissionsRequest.permissions` that
44578	// the caller is allowed.
44579	Permissions []string `json:"permissions,omitempty"`
44580
44581	// ServerResponse contains the HTTP response code and headers from the
44582	// server.
44583	googleapi.ServerResponse `json:"-"`
44584
44585	// ForceSendFields is a list of field names (e.g. "Permissions") to
44586	// unconditionally include in API requests. By default, fields with
44587	// empty values are omitted from API requests. However, any non-pointer,
44588	// non-interface field appearing in ForceSendFields will be sent to the
44589	// server regardless of whether the field is empty or not. This may be
44590	// used to include empty fields in Patch requests.
44591	ForceSendFields []string `json:"-"`
44592
44593	// NullFields is a list of field names (e.g. "Permissions") to include
44594	// in API requests with the JSON null value. By default, fields with
44595	// empty values are omitted from API requests. However, any field with
44596	// an empty value appearing in NullFields will be sent to the server as
44597	// null. It is an error if a field in this list has a non-empty value.
44598	// This may be used to include null fields in Patch requests.
44599	NullFields []string `json:"-"`
44600}
44601
44602func (s *TestPermissionsResponse) MarshalJSON() ([]byte, error) {
44603	type NoMethod TestPermissionsResponse
44604	raw := NoMethod(*s)
44605	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44606}
44607
44608// TlsCertificateContext: Defines the mechanism to obtain the client or
44609// server certificate.
44610type TlsCertificateContext struct {
44611	// CertificatePaths: Specifies the certificate and private key paths.
44612	// This field is applicable only if tlsCertificateSource is set to
44613	// USE_PATH.
44614	CertificatePaths *TlsCertificatePaths `json:"certificatePaths,omitempty"`
44615
44616	// CertificateSource: Defines how TLS certificates are obtained.
44617	//
44618	// Possible values:
44619	//   "INVALID"
44620	//   "USE_PATH"
44621	//   "USE_SDS"
44622	CertificateSource string `json:"certificateSource,omitempty"`
44623
44624	// SdsConfig: Specifies the config to retrieve certificates through SDS.
44625	// This field is applicable only if tlsCertificateSource is set to
44626	// USE_SDS.
44627	SdsConfig *SdsConfig `json:"sdsConfig,omitempty"`
44628
44629	// ForceSendFields is a list of field names (e.g. "CertificatePaths") to
44630	// unconditionally include in API requests. By default, fields with
44631	// empty values are omitted from API requests. However, any non-pointer,
44632	// non-interface field appearing in ForceSendFields will be sent to the
44633	// server regardless of whether the field is empty or not. This may be
44634	// used to include empty fields in Patch requests.
44635	ForceSendFields []string `json:"-"`
44636
44637	// NullFields is a list of field names (e.g. "CertificatePaths") to
44638	// include in API requests with the JSON null value. By default, fields
44639	// with empty values are omitted from API requests. However, any field
44640	// with an empty value appearing in NullFields will be sent to the
44641	// server as null. It is an error if a field in this list has a
44642	// non-empty value. This may be used to include null fields in Patch
44643	// requests.
44644	NullFields []string `json:"-"`
44645}
44646
44647func (s *TlsCertificateContext) MarshalJSON() ([]byte, error) {
44648	type NoMethod TlsCertificateContext
44649	raw := NoMethod(*s)
44650	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44651}
44652
44653// TlsCertificatePaths: The paths to the mounted TLS Certificates and
44654// private key.
44655type TlsCertificatePaths struct {
44656	// CertificatePath: The path to the file holding the client or server
44657	// TLS certificate to use.
44658	CertificatePath string `json:"certificatePath,omitempty"`
44659
44660	// PrivateKeyPath: The path to the file holding the client or server
44661	// private key.
44662	PrivateKeyPath string `json:"privateKeyPath,omitempty"`
44663
44664	// ForceSendFields is a list of field names (e.g. "CertificatePath") to
44665	// unconditionally include in API requests. By default, fields with
44666	// empty values are omitted from API requests. However, any non-pointer,
44667	// non-interface field appearing in ForceSendFields will be sent to the
44668	// server regardless of whether the field is empty or not. This may be
44669	// used to include empty fields in Patch requests.
44670	ForceSendFields []string `json:"-"`
44671
44672	// NullFields is a list of field names (e.g. "CertificatePath") to
44673	// include in API requests with the JSON null value. By default, fields
44674	// with empty values are omitted from API requests. However, any field
44675	// with an empty value appearing in NullFields will be sent to the
44676	// server as null. It is an error if a field in this list has a
44677	// non-empty value. This may be used to include null fields in Patch
44678	// requests.
44679	NullFields []string `json:"-"`
44680}
44681
44682func (s *TlsCertificatePaths) MarshalJSON() ([]byte, error) {
44683	type NoMethod TlsCertificatePaths
44684	raw := NoMethod(*s)
44685	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44686}
44687
44688// TlsContext: The TLS settings for the client or server.
44689type TlsContext struct {
44690	// CertificateContext: Defines the mechanism to obtain the client or
44691	// server certificate.
44692	CertificateContext *TlsCertificateContext `json:"certificateContext,omitempty"`
44693
44694	// ValidationContext: Defines the mechanism to obtain the Certificate
44695	// Authority certificate to validate the client/server certificate. If
44696	// omitted, the proxy will not validate the server or client
44697	// certificate.
44698	ValidationContext *TlsValidationContext `json:"validationContext,omitempty"`
44699
44700	// ForceSendFields is a list of field names (e.g. "CertificateContext")
44701	// to unconditionally include in API requests. By default, fields with
44702	// empty values are omitted from API requests. However, any non-pointer,
44703	// non-interface field appearing in ForceSendFields will be sent to the
44704	// server regardless of whether the field is empty or not. This may be
44705	// used to include empty fields in Patch requests.
44706	ForceSendFields []string `json:"-"`
44707
44708	// NullFields is a list of field names (e.g. "CertificateContext") to
44709	// include in API requests with the JSON null value. By default, fields
44710	// with empty values are omitted from API requests. However, any field
44711	// with an empty value appearing in NullFields will be sent to the
44712	// server as null. It is an error if a field in this list has a
44713	// non-empty value. This may be used to include null fields in Patch
44714	// requests.
44715	NullFields []string `json:"-"`
44716}
44717
44718func (s *TlsContext) MarshalJSON() ([]byte, error) {
44719	type NoMethod TlsContext
44720	raw := NoMethod(*s)
44721	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44722}
44723
44724// TlsValidationContext: Defines the mechanism to obtain the Certificate
44725// Authority certificate to validate the client/server certificate.
44726type TlsValidationContext struct {
44727	// CertificatePath: The path to the file holding the CA certificate to
44728	// validate the client or server certificate.
44729	CertificatePath string `json:"certificatePath,omitempty"`
44730
44731	// SdsConfig: Specifies the config to retrieve certificates through SDS.
44732	// This field is applicable only if tlsCertificateSource is set to
44733	// USE_SDS.
44734	SdsConfig *SdsConfig `json:"sdsConfig,omitempty"`
44735
44736	// ValidationSource: Defines how TLS certificates are obtained.
44737	//
44738	// Possible values:
44739	//   "INVALID"
44740	//   "USE_PATH"
44741	//   "USE_SDS"
44742	ValidationSource string `json:"validationSource,omitempty"`
44743
44744	// ForceSendFields is a list of field names (e.g. "CertificatePath") to
44745	// unconditionally include in API requests. By default, fields with
44746	// empty values are omitted from API requests. However, any non-pointer,
44747	// non-interface field appearing in ForceSendFields will be sent to the
44748	// server regardless of whether the field is empty or not. This may be
44749	// used to include empty fields in Patch requests.
44750	ForceSendFields []string `json:"-"`
44751
44752	// NullFields is a list of field names (e.g. "CertificatePath") to
44753	// include in API requests with the JSON null value. By default, fields
44754	// with empty values are omitted from API requests. However, any field
44755	// with an empty value appearing in NullFields will be sent to the
44756	// server as null. It is an error if a field in this list has a
44757	// non-empty value. This may be used to include null fields in Patch
44758	// requests.
44759	NullFields []string `json:"-"`
44760}
44761
44762func (s *TlsValidationContext) MarshalJSON() ([]byte, error) {
44763	type NoMethod TlsValidationContext
44764	raw := NoMethod(*s)
44765	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44766}
44767
44768type UDPHealthCheck struct {
44769	// Port: The UDP port number for the health check request. Valid values
44770	// are 1 through 65535.
44771	Port int64 `json:"port,omitempty"`
44772
44773	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
44774	// both port and port_name are defined, port takes precedence.
44775	PortName string `json:"portName,omitempty"`
44776
44777	// Request: Raw data of request to send in payload of UDP packet. It is
44778	// an error if this is empty. The request data can only be ASCII.
44779	Request string `json:"request,omitempty"`
44780
44781	// Response: The bytes to match against the beginning of the response
44782	// data. It is an error if this is empty. The response data can only be
44783	// ASCII.
44784	Response string `json:"response,omitempty"`
44785
44786	// ForceSendFields is a list of field names (e.g. "Port") to
44787	// unconditionally include in API requests. By default, fields with
44788	// empty values are omitted from API requests. However, any non-pointer,
44789	// non-interface field appearing in ForceSendFields will be sent to the
44790	// server regardless of whether the field is empty or not. This may be
44791	// used to include empty fields in Patch requests.
44792	ForceSendFields []string `json:"-"`
44793
44794	// NullFields is a list of field names (e.g. "Port") to include in API
44795	// requests with the JSON null value. By default, fields with empty
44796	// values are omitted from API requests. However, any field with an
44797	// empty value appearing in NullFields will be sent to the server as
44798	// null. It is an error if a field in this list has a non-empty value.
44799	// This may be used to include null fields in Patch requests.
44800	NullFields []string `json:"-"`
44801}
44802
44803func (s *UDPHealthCheck) MarshalJSON() ([]byte, error) {
44804	type NoMethod UDPHealthCheck
44805	raw := NoMethod(*s)
44806	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44807}
44808
44809// UpcomingMaintenance: Upcoming Maintenance notification information.
44810type UpcomingMaintenance struct {
44811	// Date: [Output Only] The date when the maintenance will take place.
44812	// This value is in RFC3339 text format.
44813	Date string `json:"date,omitempty"`
44814
44815	// Time: [Output Only] The time when the maintenance will take place.
44816	// This value is in RFC3339 text format.
44817	Time string `json:"time,omitempty"`
44818
44819	// Type: Defines the type of maintenance.
44820	//
44821	// Possible values:
44822	//   "SCHEDULED"
44823	//   "UNKNOWN_TYPE"
44824	//   "UNSCHEDULED"
44825	Type string `json:"type,omitempty"`
44826
44827	// ForceSendFields is a list of field names (e.g. "Date") to
44828	// unconditionally include in API requests. By default, fields with
44829	// empty values are omitted from API requests. However, any non-pointer,
44830	// non-interface field appearing in ForceSendFields will be sent to the
44831	// server regardless of whether the field is empty or not. This may be
44832	// used to include empty fields in Patch requests.
44833	ForceSendFields []string `json:"-"`
44834
44835	// NullFields is a list of field names (e.g. "Date") to include in API
44836	// requests with the JSON null value. By default, fields with empty
44837	// values are omitted from API requests. However, any field with an
44838	// empty value appearing in NullFields will be sent to the server as
44839	// null. It is an error if a field in this list has a non-empty value.
44840	// This may be used to include null fields in Patch requests.
44841	NullFields []string `json:"-"`
44842}
44843
44844func (s *UpcomingMaintenance) MarshalJSON() ([]byte, error) {
44845	type NoMethod UpcomingMaintenance
44846	raw := NoMethod(*s)
44847	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44848}
44849
44850// UrlMap: Represents a URL Map resource.
44851//
44852// Google Compute Engine has two URL Map resources:
44853//
44854// * [Global](/compute/docs/reference/rest/latest/urlMaps) *
44855// [Regional](/compute/docs/reference/rest/latest/regionUrlMaps)
44856//
44857// A URL map resource is a component of certain types of GCP load
44858// balancers and Traffic Director.
44859//
44860// * urlMaps are used by external HTTP(S) load balancers and Traffic
44861// Director. * regionUrlMaps are used by internal HTTP(S) load
44862// balancers.
44863//
44864// This resource defines mappings from host names and URL paths to
44865// either a backend service or a backend bucket.
44866//
44867// To use the global urlMaps resource, the backend service must have a
44868// loadBalancingScheme of either EXTERNAL or INTERNAL_SELF_MANAGED. To
44869// use the regionUrlMaps resource, the backend service must have a
44870// loadBalancingScheme of INTERNAL_MANAGED. For more information, read
44871// URL Map Concepts.
44872type UrlMap struct {
44873	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
44874	// format.
44875	CreationTimestamp string `json:"creationTimestamp,omitempty"`
44876
44877	// DefaultRouteAction: defaultRouteAction takes effect when none of the
44878	// hostRules match. The load balancer performs advanced routing actions
44879	// like URL rewrites, header transformations, etc. prior to forwarding
44880	// the request to the selected backend. If defaultRouteAction specifies
44881	// any weightedBackendServices, defaultService must not be set.
44882	// Conversely if defaultService is set, defaultRouteAction cannot
44883	// contain any  weightedBackendServices.
44884	// Only one of defaultRouteAction or defaultUrlRedirect must be set.
44885	DefaultRouteAction *HttpRouteAction `json:"defaultRouteAction,omitempty"`
44886
44887	// DefaultService: The full or partial URL of the defaultService
44888	// resource to which traffic is directed if none of the hostRules match.
44889	// If defaultRouteAction is additionally specified, advanced routing
44890	// actions like URL Rewrites, etc. take effect prior to sending the
44891	// request to the backend. However, if defaultService is specified,
44892	// defaultRouteAction cannot contain any weightedBackendServices.
44893	// Conversely, if routeAction specifies any weightedBackendServices,
44894	// service must not be specified.
44895	// Only one of defaultService, defaultUrlRedirect  or
44896	// defaultRouteAction.weightedBackendService must be set.
44897	DefaultService string `json:"defaultService,omitempty"`
44898
44899	// DefaultUrlRedirect: When none of the specified hostRules match, the
44900	// request is redirected to a URL specified by defaultUrlRedirect.
44901	// If defaultUrlRedirect is specified, defaultService or
44902	// defaultRouteAction must not be set.
44903	DefaultUrlRedirect *HttpRedirectAction `json:"defaultUrlRedirect,omitempty"`
44904
44905	// Description: An optional description of this resource. Provide this
44906	// property when you create the resource.
44907	Description string `json:"description,omitempty"`
44908
44909	// Fingerprint: Fingerprint of this resource. A hash of the contents
44910	// stored in this object. This field is used in optimistic locking. This
44911	// field will be ignored when inserting a UrlMap. An up-to-date
44912	// fingerprint must be provided in order to update the UrlMap, otherwise
44913	// the request will fail with error 412 conditionNotMet.
44914	//
44915	// To see the latest fingerprint, make a get() request to retrieve a
44916	// UrlMap.
44917	Fingerprint string `json:"fingerprint,omitempty"`
44918
44919	// HeaderAction: Specifies changes to request and response headers that
44920	// need to take effect for the selected backendService.
44921	// The headerAction specified here take effect after headerAction
44922	// specified under pathMatcher.
44923	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
44924
44925	// HostRules: The list of HostRules to use against the URL.
44926	HostRules []*HostRule `json:"hostRules,omitempty"`
44927
44928	// Id: [Output Only] The unique identifier for the resource. This
44929	// identifier is defined by the server.
44930	Id uint64 `json:"id,omitempty,string"`
44931
44932	// Kind: [Output Only] Type of the resource. Always compute#urlMaps for
44933	// url maps.
44934	Kind string `json:"kind,omitempty"`
44935
44936	// Name: Name of the resource. Provided by the client when the resource
44937	// is created. The name must be 1-63 characters long, and comply with
44938	// RFC1035. Specifically, the name must be 1-63 characters long and
44939	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
44940	// the first character must be a lowercase letter, and all following
44941	// characters must be a dash, lowercase letter, or digit, except the
44942	// last character, which cannot be a dash.
44943	Name string `json:"name,omitempty"`
44944
44945	// PathMatchers: The list of named PathMatchers to use against the URL.
44946	PathMatchers []*PathMatcher `json:"pathMatchers,omitempty"`
44947
44948	// Region: [Output Only] URL of the region where the regional URL map
44949	// resides. This field is not applicable to global URL maps. You must
44950	// specify this field as part of the HTTP request URL. It is not
44951	// settable as a field in the request body.
44952	Region string `json:"region,omitempty"`
44953
44954	// SelfLink: [Output Only] Server-defined URL for the resource.
44955	SelfLink string `json:"selfLink,omitempty"`
44956
44957	// Tests: The list of expected URL mapping tests. Request to update this
44958	// UrlMap will succeed only if all of the test cases pass. You can
44959	// specify a maximum of 100 tests per UrlMap.
44960	Tests []*UrlMapTest `json:"tests,omitempty"`
44961
44962	// ServerResponse contains the HTTP response code and headers from the
44963	// server.
44964	googleapi.ServerResponse `json:"-"`
44965
44966	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
44967	// to unconditionally include in API requests. By default, fields with
44968	// empty values are omitted from API requests. However, any non-pointer,
44969	// non-interface field appearing in ForceSendFields will be sent to the
44970	// server regardless of whether the field is empty or not. This may be
44971	// used to include empty fields in Patch requests.
44972	ForceSendFields []string `json:"-"`
44973
44974	// NullFields is a list of field names (e.g. "CreationTimestamp") to
44975	// include in API requests with the JSON null value. By default, fields
44976	// with empty values are omitted from API requests. However, any field
44977	// with an empty value appearing in NullFields will be sent to the
44978	// server as null. It is an error if a field in this list has a
44979	// non-empty value. This may be used to include null fields in Patch
44980	// requests.
44981	NullFields []string `json:"-"`
44982}
44983
44984func (s *UrlMap) MarshalJSON() ([]byte, error) {
44985	type NoMethod UrlMap
44986	raw := NoMethod(*s)
44987	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44988}
44989
44990// UrlMapList: Contains a list of UrlMap resources.
44991type UrlMapList struct {
44992	// Id: [Output Only] Unique identifier for the resource; defined by the
44993	// server.
44994	Id string `json:"id,omitempty"`
44995
44996	// Items: A list of UrlMap resources.
44997	Items []*UrlMap `json:"items,omitempty"`
44998
44999	// Kind: Type of resource.
45000	Kind string `json:"kind,omitempty"`
45001
45002	// NextPageToken: [Output Only] This token allows you to get the next
45003	// page of results for list requests. If the number of results is larger
45004	// than maxResults, use the nextPageToken as a value for the query
45005	// parameter pageToken in the next list request. Subsequent list
45006	// requests will have their own nextPageToken to continue paging through
45007	// the results.
45008	NextPageToken string `json:"nextPageToken,omitempty"`
45009
45010	// SelfLink: [Output Only] Server-defined URL for this resource.
45011	SelfLink string `json:"selfLink,omitempty"`
45012
45013	// Warning: [Output Only] Informational warning message.
45014	Warning *UrlMapListWarning `json:"warning,omitempty"`
45015
45016	// ServerResponse contains the HTTP response code and headers from the
45017	// server.
45018	googleapi.ServerResponse `json:"-"`
45019
45020	// ForceSendFields is a list of field names (e.g. "Id") to
45021	// unconditionally include in API requests. By default, fields with
45022	// empty values are omitted from API requests. However, any non-pointer,
45023	// non-interface field appearing in ForceSendFields will be sent to the
45024	// server regardless of whether the field is empty or not. This may be
45025	// used to include empty fields in Patch requests.
45026	ForceSendFields []string `json:"-"`
45027
45028	// NullFields is a list of field names (e.g. "Id") to include in API
45029	// requests with the JSON null value. By default, fields with empty
45030	// values are omitted from API requests. However, any field with an
45031	// empty value appearing in NullFields will be sent to the server as
45032	// null. It is an error if a field in this list has a non-empty value.
45033	// This may be used to include null fields in Patch requests.
45034	NullFields []string `json:"-"`
45035}
45036
45037func (s *UrlMapList) MarshalJSON() ([]byte, error) {
45038	type NoMethod UrlMapList
45039	raw := NoMethod(*s)
45040	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45041}
45042
45043// UrlMapListWarning: [Output Only] Informational warning message.
45044type UrlMapListWarning struct {
45045	// Code: [Output Only] A warning code, if applicable. For example,
45046	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45047	// the response.
45048	//
45049	// Possible values:
45050	//   "CLEANUP_FAILED"
45051	//   "DEPRECATED_RESOURCE_USED"
45052	//   "DEPRECATED_TYPE_USED"
45053	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
45054	//   "EXPERIMENTAL_TYPE_USED"
45055	//   "EXTERNAL_API_WARNING"
45056	//   "FIELD_VALUE_OVERRIDEN"
45057	//   "INJECTED_KERNELS_DEPRECATED"
45058	//   "MISSING_TYPE_DEPENDENCY"
45059	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
45060	//   "NEXT_HOP_CANNOT_IP_FORWARD"
45061	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
45062	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
45063	//   "NEXT_HOP_NOT_RUNNING"
45064	//   "NOT_CRITICAL_ERROR"
45065	//   "NO_RESULTS_ON_PAGE"
45066	//   "REQUIRED_TOS_AGREEMENT"
45067	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
45068	//   "RESOURCE_NOT_DELETED"
45069	//   "SCHEMA_VALIDATION_IGNORED"
45070	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
45071	//   "UNDECLARED_PROPERTIES"
45072	//   "UNREACHABLE"
45073	Code string `json:"code,omitempty"`
45074
45075	// Data: [Output Only] Metadata about this warning in key: value format.
45076	// For example:
45077	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
45078	Data []*UrlMapListWarningData `json:"data,omitempty"`
45079
45080	// Message: [Output Only] A human-readable description of the warning
45081	// code.
45082	Message string `json:"message,omitempty"`
45083
45084	// ForceSendFields is a list of field names (e.g. "Code") to
45085	// unconditionally include in API requests. By default, fields with
45086	// empty values are omitted from API requests. However, any non-pointer,
45087	// non-interface field appearing in ForceSendFields will be sent to the
45088	// server regardless of whether the field is empty or not. This may be
45089	// used to include empty fields in Patch requests.
45090	ForceSendFields []string `json:"-"`
45091
45092	// NullFields is a list of field names (e.g. "Code") to include in API
45093	// requests with the JSON null value. By default, fields with empty
45094	// values are omitted from API requests. However, any field with an
45095	// empty value appearing in NullFields will be sent to the server as
45096	// null. It is an error if a field in this list has a non-empty value.
45097	// This may be used to include null fields in Patch requests.
45098	NullFields []string `json:"-"`
45099}
45100
45101func (s *UrlMapListWarning) MarshalJSON() ([]byte, error) {
45102	type NoMethod UrlMapListWarning
45103	raw := NoMethod(*s)
45104	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45105}
45106
45107type UrlMapListWarningData struct {
45108	// Key: [Output Only] A key that provides more detail on the warning
45109	// being returned. For example, for warnings where there are no results
45110	// in a list request for a particular zone, this key might be scope and
45111	// the key value might be the zone name. Other examples might be a key
45112	// indicating a deprecated resource and a suggested replacement, or a
45113	// warning about invalid network settings (for example, if an instance
45114	// attempts to perform IP forwarding but is not enabled for IP
45115	// forwarding).
45116	Key string `json:"key,omitempty"`
45117
45118	// Value: [Output Only] A warning data value corresponding to the key.
45119	Value string `json:"value,omitempty"`
45120
45121	// ForceSendFields is a list of field names (e.g. "Key") to
45122	// unconditionally include in API requests. By default, fields with
45123	// empty values are omitted from API requests. However, any non-pointer,
45124	// non-interface field appearing in ForceSendFields will be sent to the
45125	// server regardless of whether the field is empty or not. This may be
45126	// used to include empty fields in Patch requests.
45127	ForceSendFields []string `json:"-"`
45128
45129	// NullFields is a list of field names (e.g. "Key") to include in API
45130	// requests with the JSON null value. By default, fields with empty
45131	// values are omitted from API requests. However, any field with an
45132	// empty value appearing in NullFields will be sent to the server as
45133	// null. It is an error if a field in this list has a non-empty value.
45134	// This may be used to include null fields in Patch requests.
45135	NullFields []string `json:"-"`
45136}
45137
45138func (s *UrlMapListWarningData) MarshalJSON() ([]byte, error) {
45139	type NoMethod UrlMapListWarningData
45140	raw := NoMethod(*s)
45141	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45142}
45143
45144type UrlMapReference struct {
45145	UrlMap string `json:"urlMap,omitempty"`
45146
45147	// ForceSendFields is a list of field names (e.g. "UrlMap") to
45148	// unconditionally include in API requests. By default, fields with
45149	// empty values are omitted from API requests. However, any non-pointer,
45150	// non-interface field appearing in ForceSendFields will be sent to the
45151	// server regardless of whether the field is empty or not. This may be
45152	// used to include empty fields in Patch requests.
45153	ForceSendFields []string `json:"-"`
45154
45155	// NullFields is a list of field names (e.g. "UrlMap") to include in API
45156	// requests with the JSON null value. By default, fields with empty
45157	// values are omitted from API requests. However, any field with an
45158	// empty value appearing in NullFields will be sent to the server as
45159	// null. It is an error if a field in this list has a non-empty value.
45160	// This may be used to include null fields in Patch requests.
45161	NullFields []string `json:"-"`
45162}
45163
45164func (s *UrlMapReference) MarshalJSON() ([]byte, error) {
45165	type NoMethod UrlMapReference
45166	raw := NoMethod(*s)
45167	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45168}
45169
45170// UrlMapTest: Message for the expected URL mappings.
45171type UrlMapTest struct {
45172	// BackendServiceWeight: The weight to use for the supplied host and
45173	// path when using advanced routing rules that involve traffic
45174	// splitting.
45175	BackendServiceWeight int64 `json:"backendServiceWeight,omitempty"`
45176
45177	// Description: Description of this test case.
45178	Description string `json:"description,omitempty"`
45179
45180	// ExpectedUrlRedirect: The expected URL that should be redirected to
45181	// for the host and path being tested.
45182	ExpectedUrlRedirect string `json:"expectedUrlRedirect,omitempty"`
45183
45184	// Host: Host portion of the URL.
45185	Host string `json:"host,omitempty"`
45186
45187	// Path: Path portion of the URL.
45188	Path string `json:"path,omitempty"`
45189
45190	// Service: Expected BackendService resource the given URL should be
45191	// mapped to.
45192	Service string `json:"service,omitempty"`
45193
45194	// ForceSendFields is a list of field names (e.g.
45195	// "BackendServiceWeight") to unconditionally include in API requests.
45196	// By default, fields with empty values are omitted from API requests.
45197	// However, any non-pointer, non-interface field appearing in
45198	// ForceSendFields will be sent to the server regardless of whether the
45199	// field is empty or not. This may be used to include empty fields in
45200	// Patch requests.
45201	ForceSendFields []string `json:"-"`
45202
45203	// NullFields is a list of field names (e.g. "BackendServiceWeight") to
45204	// include in API requests with the JSON null value. By default, fields
45205	// with empty values are omitted from API requests. However, any field
45206	// with an empty value appearing in NullFields will be sent to the
45207	// server as null. It is an error if a field in this list has a
45208	// non-empty value. This may be used to include null fields in Patch
45209	// requests.
45210	NullFields []string `json:"-"`
45211}
45212
45213func (s *UrlMapTest) MarshalJSON() ([]byte, error) {
45214	type NoMethod UrlMapTest
45215	raw := NoMethod(*s)
45216	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45217}
45218
45219// UrlMapValidationResult: Message representing the validation result
45220// for a UrlMap.
45221type UrlMapValidationResult struct {
45222	LoadErrors []string `json:"loadErrors,omitempty"`
45223
45224	// LoadSucceeded: Whether the given UrlMap can be successfully loaded.
45225	// If false, 'loadErrors' indicates the reasons.
45226	LoadSucceeded bool `json:"loadSucceeded,omitempty"`
45227
45228	TestFailures []*TestFailure `json:"testFailures,omitempty"`
45229
45230	// TestPassed: If successfully loaded, this field indicates whether the
45231	// test passed. If false, 'testFailures's indicate the reason of
45232	// failure.
45233	TestPassed bool `json:"testPassed,omitempty"`
45234
45235	// ForceSendFields is a list of field names (e.g. "LoadErrors") to
45236	// unconditionally include in API requests. By default, fields with
45237	// empty values are omitted from API requests. However, any non-pointer,
45238	// non-interface field appearing in ForceSendFields will be sent to the
45239	// server regardless of whether the field is empty or not. This may be
45240	// used to include empty fields in Patch requests.
45241	ForceSendFields []string `json:"-"`
45242
45243	// NullFields is a list of field names (e.g. "LoadErrors") to include in
45244	// API requests with the JSON null value. By default, fields with empty
45245	// values are omitted from API requests. However, any field with an
45246	// empty value appearing in NullFields will be sent to the server as
45247	// null. It is an error if a field in this list has a non-empty value.
45248	// This may be used to include null fields in Patch requests.
45249	NullFields []string `json:"-"`
45250}
45251
45252func (s *UrlMapValidationResult) MarshalJSON() ([]byte, error) {
45253	type NoMethod UrlMapValidationResult
45254	raw := NoMethod(*s)
45255	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45256}
45257
45258type UrlMapsAggregatedList struct {
45259	// Id: [Output Only] Unique identifier for the resource; defined by the
45260	// server.
45261	Id string `json:"id,omitempty"`
45262
45263	// Items: A list of UrlMapsScopedList resources.
45264	Items map[string]UrlMapsScopedList `json:"items,omitempty"`
45265
45266	// Kind: Type of resource.
45267	Kind string `json:"kind,omitempty"`
45268
45269	// NextPageToken: [Output Only] This token allows you to get the next
45270	// page of results for list requests. If the number of results is larger
45271	// than maxResults, use the nextPageToken as a value for the query
45272	// parameter pageToken in the next list request. Subsequent list
45273	// requests will have their own nextPageToken to continue paging through
45274	// the results.
45275	NextPageToken string `json:"nextPageToken,omitempty"`
45276
45277	// SelfLink: [Output Only] Server-defined URL for this resource.
45278	SelfLink string `json:"selfLink,omitempty"`
45279
45280	// Warning: [Output Only] Informational warning message.
45281	Warning *UrlMapsAggregatedListWarning `json:"warning,omitempty"`
45282
45283	// ServerResponse contains the HTTP response code and headers from the
45284	// server.
45285	googleapi.ServerResponse `json:"-"`
45286
45287	// ForceSendFields is a list of field names (e.g. "Id") to
45288	// unconditionally include in API requests. By default, fields with
45289	// empty values are omitted from API requests. However, any non-pointer,
45290	// non-interface field appearing in ForceSendFields will be sent to the
45291	// server regardless of whether the field is empty or not. This may be
45292	// used to include empty fields in Patch requests.
45293	ForceSendFields []string `json:"-"`
45294
45295	// NullFields is a list of field names (e.g. "Id") to include in API
45296	// requests with the JSON null value. By default, fields with empty
45297	// values are omitted from API requests. However, any field with an
45298	// empty value appearing in NullFields will be sent to the server as
45299	// null. It is an error if a field in this list has a non-empty value.
45300	// This may be used to include null fields in Patch requests.
45301	NullFields []string `json:"-"`
45302}
45303
45304func (s *UrlMapsAggregatedList) MarshalJSON() ([]byte, error) {
45305	type NoMethod UrlMapsAggregatedList
45306	raw := NoMethod(*s)
45307	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45308}
45309
45310// UrlMapsAggregatedListWarning: [Output Only] Informational warning
45311// message.
45312type UrlMapsAggregatedListWarning struct {
45313	// Code: [Output Only] A warning code, if applicable. For example,
45314	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45315	// the response.
45316	//
45317	// Possible values:
45318	//   "CLEANUP_FAILED"
45319	//   "DEPRECATED_RESOURCE_USED"
45320	//   "DEPRECATED_TYPE_USED"
45321	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
45322	//   "EXPERIMENTAL_TYPE_USED"
45323	//   "EXTERNAL_API_WARNING"
45324	//   "FIELD_VALUE_OVERRIDEN"
45325	//   "INJECTED_KERNELS_DEPRECATED"
45326	//   "MISSING_TYPE_DEPENDENCY"
45327	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
45328	//   "NEXT_HOP_CANNOT_IP_FORWARD"
45329	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
45330	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
45331	//   "NEXT_HOP_NOT_RUNNING"
45332	//   "NOT_CRITICAL_ERROR"
45333	//   "NO_RESULTS_ON_PAGE"
45334	//   "REQUIRED_TOS_AGREEMENT"
45335	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
45336	//   "RESOURCE_NOT_DELETED"
45337	//   "SCHEMA_VALIDATION_IGNORED"
45338	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
45339	//   "UNDECLARED_PROPERTIES"
45340	//   "UNREACHABLE"
45341	Code string `json:"code,omitempty"`
45342
45343	// Data: [Output Only] Metadata about this warning in key: value format.
45344	// For example:
45345	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
45346	Data []*UrlMapsAggregatedListWarningData `json:"data,omitempty"`
45347
45348	// Message: [Output Only] A human-readable description of the warning
45349	// code.
45350	Message string `json:"message,omitempty"`
45351
45352	// ForceSendFields is a list of field names (e.g. "Code") to
45353	// unconditionally include in API requests. By default, fields with
45354	// empty values are omitted from API requests. However, any non-pointer,
45355	// non-interface field appearing in ForceSendFields will be sent to the
45356	// server regardless of whether the field is empty or not. This may be
45357	// used to include empty fields in Patch requests.
45358	ForceSendFields []string `json:"-"`
45359
45360	// NullFields is a list of field names (e.g. "Code") to include in API
45361	// requests with the JSON null value. By default, fields with empty
45362	// values are omitted from API requests. However, any field with an
45363	// empty value appearing in NullFields will be sent to the server as
45364	// null. It is an error if a field in this list has a non-empty value.
45365	// This may be used to include null fields in Patch requests.
45366	NullFields []string `json:"-"`
45367}
45368
45369func (s *UrlMapsAggregatedListWarning) MarshalJSON() ([]byte, error) {
45370	type NoMethod UrlMapsAggregatedListWarning
45371	raw := NoMethod(*s)
45372	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45373}
45374
45375type UrlMapsAggregatedListWarningData struct {
45376	// Key: [Output Only] A key that provides more detail on the warning
45377	// being returned. For example, for warnings where there are no results
45378	// in a list request for a particular zone, this key might be scope and
45379	// the key value might be the zone name. Other examples might be a key
45380	// indicating a deprecated resource and a suggested replacement, or a
45381	// warning about invalid network settings (for example, if an instance
45382	// attempts to perform IP forwarding but is not enabled for IP
45383	// forwarding).
45384	Key string `json:"key,omitempty"`
45385
45386	// Value: [Output Only] A warning data value corresponding to the key.
45387	Value string `json:"value,omitempty"`
45388
45389	// ForceSendFields is a list of field names (e.g. "Key") to
45390	// unconditionally include in API requests. By default, fields with
45391	// empty values are omitted from API requests. However, any non-pointer,
45392	// non-interface field appearing in ForceSendFields will be sent to the
45393	// server regardless of whether the field is empty or not. This may be
45394	// used to include empty fields in Patch requests.
45395	ForceSendFields []string `json:"-"`
45396
45397	// NullFields is a list of field names (e.g. "Key") to include in API
45398	// requests with the JSON null value. By default, fields with empty
45399	// values are omitted from API requests. However, any field with an
45400	// empty value appearing in NullFields will be sent to the server as
45401	// null. It is an error if a field in this list has a non-empty value.
45402	// This may be used to include null fields in Patch requests.
45403	NullFields []string `json:"-"`
45404}
45405
45406func (s *UrlMapsAggregatedListWarningData) MarshalJSON() ([]byte, error) {
45407	type NoMethod UrlMapsAggregatedListWarningData
45408	raw := NoMethod(*s)
45409	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45410}
45411
45412type UrlMapsScopedList struct {
45413	// UrlMaps: A list of UrlMaps contained in this scope.
45414	UrlMaps []*UrlMap `json:"urlMaps,omitempty"`
45415
45416	// Warning: Informational warning which replaces the list of backend
45417	// services when the list is empty.
45418	Warning *UrlMapsScopedListWarning `json:"warning,omitempty"`
45419
45420	// ForceSendFields is a list of field names (e.g. "UrlMaps") to
45421	// unconditionally include in API requests. By default, fields with
45422	// empty values are omitted from API requests. However, any non-pointer,
45423	// non-interface field appearing in ForceSendFields will be sent to the
45424	// server regardless of whether the field is empty or not. This may be
45425	// used to include empty fields in Patch requests.
45426	ForceSendFields []string `json:"-"`
45427
45428	// NullFields is a list of field names (e.g. "UrlMaps") to include in
45429	// API requests with the JSON null value. By default, fields with empty
45430	// values are omitted from API requests. However, any field with an
45431	// empty value appearing in NullFields will be sent to the server as
45432	// null. It is an error if a field in this list has a non-empty value.
45433	// This may be used to include null fields in Patch requests.
45434	NullFields []string `json:"-"`
45435}
45436
45437func (s *UrlMapsScopedList) MarshalJSON() ([]byte, error) {
45438	type NoMethod UrlMapsScopedList
45439	raw := NoMethod(*s)
45440	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45441}
45442
45443// UrlMapsScopedListWarning: Informational warning which replaces the
45444// list of backend services when the list is empty.
45445type UrlMapsScopedListWarning struct {
45446	// Code: [Output Only] A warning code, if applicable. For example,
45447	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45448	// the response.
45449	//
45450	// Possible values:
45451	//   "CLEANUP_FAILED"
45452	//   "DEPRECATED_RESOURCE_USED"
45453	//   "DEPRECATED_TYPE_USED"
45454	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
45455	//   "EXPERIMENTAL_TYPE_USED"
45456	//   "EXTERNAL_API_WARNING"
45457	//   "FIELD_VALUE_OVERRIDEN"
45458	//   "INJECTED_KERNELS_DEPRECATED"
45459	//   "MISSING_TYPE_DEPENDENCY"
45460	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
45461	//   "NEXT_HOP_CANNOT_IP_FORWARD"
45462	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
45463	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
45464	//   "NEXT_HOP_NOT_RUNNING"
45465	//   "NOT_CRITICAL_ERROR"
45466	//   "NO_RESULTS_ON_PAGE"
45467	//   "REQUIRED_TOS_AGREEMENT"
45468	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
45469	//   "RESOURCE_NOT_DELETED"
45470	//   "SCHEMA_VALIDATION_IGNORED"
45471	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
45472	//   "UNDECLARED_PROPERTIES"
45473	//   "UNREACHABLE"
45474	Code string `json:"code,omitempty"`
45475
45476	// Data: [Output Only] Metadata about this warning in key: value format.
45477	// For example:
45478	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
45479	Data []*UrlMapsScopedListWarningData `json:"data,omitempty"`
45480
45481	// Message: [Output Only] A human-readable description of the warning
45482	// code.
45483	Message string `json:"message,omitempty"`
45484
45485	// ForceSendFields is a list of field names (e.g. "Code") to
45486	// unconditionally include in API requests. By default, fields with
45487	// empty values are omitted from API requests. However, any non-pointer,
45488	// non-interface field appearing in ForceSendFields will be sent to the
45489	// server regardless of whether the field is empty or not. This may be
45490	// used to include empty fields in Patch requests.
45491	ForceSendFields []string `json:"-"`
45492
45493	// NullFields is a list of field names (e.g. "Code") to include in API
45494	// requests with the JSON null value. By default, fields with empty
45495	// values are omitted from API requests. However, any field with an
45496	// empty value appearing in NullFields will be sent to the server as
45497	// null. It is an error if a field in this list has a non-empty value.
45498	// This may be used to include null fields in Patch requests.
45499	NullFields []string `json:"-"`
45500}
45501
45502func (s *UrlMapsScopedListWarning) MarshalJSON() ([]byte, error) {
45503	type NoMethod UrlMapsScopedListWarning
45504	raw := NoMethod(*s)
45505	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45506}
45507
45508type UrlMapsScopedListWarningData struct {
45509	// Key: [Output Only] A key that provides more detail on the warning
45510	// being returned. For example, for warnings where there are no results
45511	// in a list request for a particular zone, this key might be scope and
45512	// the key value might be the zone name. Other examples might be a key
45513	// indicating a deprecated resource and a suggested replacement, or a
45514	// warning about invalid network settings (for example, if an instance
45515	// attempts to perform IP forwarding but is not enabled for IP
45516	// forwarding).
45517	Key string `json:"key,omitempty"`
45518
45519	// Value: [Output Only] A warning data value corresponding to the key.
45520	Value string `json:"value,omitempty"`
45521
45522	// ForceSendFields is a list of field names (e.g. "Key") to
45523	// unconditionally include in API requests. By default, fields with
45524	// empty values are omitted from API requests. However, any non-pointer,
45525	// non-interface field appearing in ForceSendFields will be sent to the
45526	// server regardless of whether the field is empty or not. This may be
45527	// used to include empty fields in Patch requests.
45528	ForceSendFields []string `json:"-"`
45529
45530	// NullFields is a list of field names (e.g. "Key") to include in API
45531	// requests with the JSON null value. By default, fields with empty
45532	// values are omitted from API requests. However, any field with an
45533	// empty value appearing in NullFields will be sent to the server as
45534	// null. It is an error if a field in this list has a non-empty value.
45535	// This may be used to include null fields in Patch requests.
45536	NullFields []string `json:"-"`
45537}
45538
45539func (s *UrlMapsScopedListWarningData) MarshalJSON() ([]byte, error) {
45540	type NoMethod UrlMapsScopedListWarningData
45541	raw := NoMethod(*s)
45542	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45543}
45544
45545type UrlMapsValidateRequest struct {
45546	// Resource: Content of the UrlMap to be validated.
45547	Resource *UrlMap `json:"resource,omitempty"`
45548
45549	// ForceSendFields is a list of field names (e.g. "Resource") to
45550	// unconditionally include in API requests. By default, fields with
45551	// empty values are omitted from API requests. However, any non-pointer,
45552	// non-interface field appearing in ForceSendFields will be sent to the
45553	// server regardless of whether the field is empty or not. This may be
45554	// used to include empty fields in Patch requests.
45555	ForceSendFields []string `json:"-"`
45556
45557	// NullFields is a list of field names (e.g. "Resource") to include in
45558	// API requests with the JSON null value. By default, fields with empty
45559	// values are omitted from API requests. However, any field with an
45560	// empty value appearing in NullFields will be sent to the server as
45561	// null. It is an error if a field in this list has a non-empty value.
45562	// This may be used to include null fields in Patch requests.
45563	NullFields []string `json:"-"`
45564}
45565
45566func (s *UrlMapsValidateRequest) MarshalJSON() ([]byte, error) {
45567	type NoMethod UrlMapsValidateRequest
45568	raw := NoMethod(*s)
45569	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45570}
45571
45572type UrlMapsValidateResponse struct {
45573	Result *UrlMapValidationResult `json:"result,omitempty"`
45574
45575	// ServerResponse contains the HTTP response code and headers from the
45576	// server.
45577	googleapi.ServerResponse `json:"-"`
45578
45579	// ForceSendFields is a list of field names (e.g. "Result") to
45580	// unconditionally include in API requests. By default, fields with
45581	// empty values are omitted from API requests. However, any non-pointer,
45582	// non-interface field appearing in ForceSendFields will be sent to the
45583	// server regardless of whether the field is empty or not. This may be
45584	// used to include empty fields in Patch requests.
45585	ForceSendFields []string `json:"-"`
45586
45587	// NullFields is a list of field names (e.g. "Result") to include in API
45588	// requests with the JSON null value. By default, fields with empty
45589	// values are omitted from API requests. However, any field with an
45590	// empty value appearing in NullFields will be sent to the server as
45591	// null. It is an error if a field in this list has a non-empty value.
45592	// This may be used to include null fields in Patch requests.
45593	NullFields []string `json:"-"`
45594}
45595
45596func (s *UrlMapsValidateResponse) MarshalJSON() ([]byte, error) {
45597	type NoMethod UrlMapsValidateResponse
45598	raw := NoMethod(*s)
45599	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45600}
45601
45602// UrlRewrite: The spec for modifying the path before sending the
45603// request to the matched backend service.
45604type UrlRewrite struct {
45605	// HostRewrite: Prior to forwarding the request to the selected service,
45606	// the request's host header is replaced with contents of
45607	// hostRewrite.
45608	// The value must be between 1 and 255 characters.
45609	HostRewrite string `json:"hostRewrite,omitempty"`
45610
45611	// PathPrefixRewrite: Prior to forwarding the request to the selected
45612	// backend service, the matching portion of the request's path is
45613	// replaced by pathPrefixRewrite.
45614	// The value must be between 1 and 1024 characters.
45615	PathPrefixRewrite string `json:"pathPrefixRewrite,omitempty"`
45616
45617	// ForceSendFields is a list of field names (e.g. "HostRewrite") to
45618	// unconditionally include in API requests. By default, fields with
45619	// empty values are omitted from API requests. However, any non-pointer,
45620	// non-interface field appearing in ForceSendFields will be sent to the
45621	// server regardless of whether the field is empty or not. This may be
45622	// used to include empty fields in Patch requests.
45623	ForceSendFields []string `json:"-"`
45624
45625	// NullFields is a list of field names (e.g. "HostRewrite") to include
45626	// in API requests with the JSON null value. By default, fields with
45627	// empty values are omitted from API requests. However, any field with
45628	// an empty value appearing in NullFields will be sent to the server as
45629	// null. It is an error if a field in this list has a non-empty value.
45630	// This may be used to include null fields in Patch requests.
45631	NullFields []string `json:"-"`
45632}
45633
45634func (s *UrlRewrite) MarshalJSON() ([]byte, error) {
45635	type NoMethod UrlRewrite
45636	raw := NoMethod(*s)
45637	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45638}
45639
45640// UsableSubnetwork: Subnetwork which the current user has
45641// compute.subnetworks.use permission on.
45642type UsableSubnetwork struct {
45643	// IpCidrRange: The range of internal addresses that are owned by this
45644	// subnetwork.
45645	IpCidrRange string `json:"ipCidrRange,omitempty"`
45646
45647	// Network: Network URL.
45648	Network string `json:"network,omitempty"`
45649
45650	// SecondaryIpRanges: Secondary IP ranges.
45651	SecondaryIpRanges []*UsableSubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
45652
45653	// Subnetwork: Subnetwork URL.
45654	Subnetwork string `json:"subnetwork,omitempty"`
45655
45656	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
45657	// unconditionally include in API requests. By default, fields with
45658	// empty values are omitted from API requests. However, any non-pointer,
45659	// non-interface field appearing in ForceSendFields will be sent to the
45660	// server regardless of whether the field is empty or not. This may be
45661	// used to include empty fields in Patch requests.
45662	ForceSendFields []string `json:"-"`
45663
45664	// NullFields is a list of field names (e.g. "IpCidrRange") to include
45665	// in API requests with the JSON null value. By default, fields with
45666	// empty values are omitted from API requests. However, any field with
45667	// an empty value appearing in NullFields will be sent to the server as
45668	// null. It is an error if a field in this list has a non-empty value.
45669	// This may be used to include null fields in Patch requests.
45670	NullFields []string `json:"-"`
45671}
45672
45673func (s *UsableSubnetwork) MarshalJSON() ([]byte, error) {
45674	type NoMethod UsableSubnetwork
45675	raw := NoMethod(*s)
45676	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45677}
45678
45679// UsableSubnetworkSecondaryRange: Secondary IP range of a usable
45680// subnetwork.
45681type UsableSubnetworkSecondaryRange struct {
45682	// IpCidrRange: The range of IP addresses belonging to this subnetwork
45683	// secondary range.
45684	IpCidrRange string `json:"ipCidrRange,omitempty"`
45685
45686	// RangeName: The name associated with this subnetwork secondary range,
45687	// used when adding an alias IP range to a VM instance. The name must be
45688	// 1-63 characters long, and comply with RFC1035. The name must be
45689	// unique within the subnetwork.
45690	RangeName string `json:"rangeName,omitempty"`
45691
45692	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
45693	// unconditionally include in API requests. By default, fields with
45694	// empty values are omitted from API requests. However, any non-pointer,
45695	// non-interface field appearing in ForceSendFields will be sent to the
45696	// server regardless of whether the field is empty or not. This may be
45697	// used to include empty fields in Patch requests.
45698	ForceSendFields []string `json:"-"`
45699
45700	// NullFields is a list of field names (e.g. "IpCidrRange") to include
45701	// in API requests with the JSON null value. By default, fields with
45702	// empty values are omitted from API requests. However, any field with
45703	// an empty value appearing in NullFields will be sent to the server as
45704	// null. It is an error if a field in this list has a non-empty value.
45705	// This may be used to include null fields in Patch requests.
45706	NullFields []string `json:"-"`
45707}
45708
45709func (s *UsableSubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
45710	type NoMethod UsableSubnetworkSecondaryRange
45711	raw := NoMethod(*s)
45712	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45713}
45714
45715type UsableSubnetworksAggregatedList struct {
45716	// Id: [Output Only] The unique identifier for the resource. This
45717	// identifier is defined by the server.
45718	Id string `json:"id,omitempty"`
45719
45720	// Items: [Output] A list of usable subnetwork URLs.
45721	Items []*UsableSubnetwork `json:"items,omitempty"`
45722
45723	// Kind: [Output Only] Type of resource. Always
45724	// compute#usableSubnetworksAggregatedList for aggregated lists of
45725	// usable subnetworks.
45726	Kind string `json:"kind,omitempty"`
45727
45728	// NextPageToken: [Output Only] This token allows you to get the next
45729	// page of results for list requests. If the number of results is larger
45730	// than maxResults, use the nextPageToken as a value for the query
45731	// parameter pageToken in the next list request. Subsequent list
45732	// requests will have their own nextPageToken to continue paging through
45733	// the results.
45734	NextPageToken string `json:"nextPageToken,omitempty"`
45735
45736	// SelfLink: [Output Only] Server-defined URL for this resource.
45737	SelfLink string `json:"selfLink,omitempty"`
45738
45739	// Warning: [Output Only] Informational warning message.
45740	Warning *UsableSubnetworksAggregatedListWarning `json:"warning,omitempty"`
45741
45742	// ServerResponse contains the HTTP response code and headers from the
45743	// server.
45744	googleapi.ServerResponse `json:"-"`
45745
45746	// ForceSendFields is a list of field names (e.g. "Id") to
45747	// unconditionally include in API requests. By default, fields with
45748	// empty values are omitted from API requests. However, any non-pointer,
45749	// non-interface field appearing in ForceSendFields will be sent to the
45750	// server regardless of whether the field is empty or not. This may be
45751	// used to include empty fields in Patch requests.
45752	ForceSendFields []string `json:"-"`
45753
45754	// NullFields is a list of field names (e.g. "Id") to include in API
45755	// requests with the JSON null value. By default, fields with empty
45756	// values are omitted from API requests. However, any field with an
45757	// empty value appearing in NullFields will be sent to the server as
45758	// null. It is an error if a field in this list has a non-empty value.
45759	// This may be used to include null fields in Patch requests.
45760	NullFields []string `json:"-"`
45761}
45762
45763func (s *UsableSubnetworksAggregatedList) MarshalJSON() ([]byte, error) {
45764	type NoMethod UsableSubnetworksAggregatedList
45765	raw := NoMethod(*s)
45766	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45767}
45768
45769// UsableSubnetworksAggregatedListWarning: [Output Only] Informational
45770// warning message.
45771type UsableSubnetworksAggregatedListWarning struct {
45772	// Code: [Output Only] A warning code, if applicable. For example,
45773	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45774	// the response.
45775	//
45776	// Possible values:
45777	//   "CLEANUP_FAILED"
45778	//   "DEPRECATED_RESOURCE_USED"
45779	//   "DEPRECATED_TYPE_USED"
45780	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
45781	//   "EXPERIMENTAL_TYPE_USED"
45782	//   "EXTERNAL_API_WARNING"
45783	//   "FIELD_VALUE_OVERRIDEN"
45784	//   "INJECTED_KERNELS_DEPRECATED"
45785	//   "MISSING_TYPE_DEPENDENCY"
45786	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
45787	//   "NEXT_HOP_CANNOT_IP_FORWARD"
45788	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
45789	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
45790	//   "NEXT_HOP_NOT_RUNNING"
45791	//   "NOT_CRITICAL_ERROR"
45792	//   "NO_RESULTS_ON_PAGE"
45793	//   "REQUIRED_TOS_AGREEMENT"
45794	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
45795	//   "RESOURCE_NOT_DELETED"
45796	//   "SCHEMA_VALIDATION_IGNORED"
45797	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
45798	//   "UNDECLARED_PROPERTIES"
45799	//   "UNREACHABLE"
45800	Code string `json:"code,omitempty"`
45801
45802	// Data: [Output Only] Metadata about this warning in key: value format.
45803	// For example:
45804	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
45805	Data []*UsableSubnetworksAggregatedListWarningData `json:"data,omitempty"`
45806
45807	// Message: [Output Only] A human-readable description of the warning
45808	// code.
45809	Message string `json:"message,omitempty"`
45810
45811	// ForceSendFields is a list of field names (e.g. "Code") to
45812	// unconditionally include in API requests. By default, fields with
45813	// empty values are omitted from API requests. However, any non-pointer,
45814	// non-interface field appearing in ForceSendFields will be sent to the
45815	// server regardless of whether the field is empty or not. This may be
45816	// used to include empty fields in Patch requests.
45817	ForceSendFields []string `json:"-"`
45818
45819	// NullFields is a list of field names (e.g. "Code") to include in API
45820	// requests with the JSON null value. By default, fields with empty
45821	// values are omitted from API requests. However, any field with an
45822	// empty value appearing in NullFields will be sent to the server as
45823	// null. It is an error if a field in this list has a non-empty value.
45824	// This may be used to include null fields in Patch requests.
45825	NullFields []string `json:"-"`
45826}
45827
45828func (s *UsableSubnetworksAggregatedListWarning) MarshalJSON() ([]byte, error) {
45829	type NoMethod UsableSubnetworksAggregatedListWarning
45830	raw := NoMethod(*s)
45831	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45832}
45833
45834type UsableSubnetworksAggregatedListWarningData struct {
45835	// Key: [Output Only] A key that provides more detail on the warning
45836	// being returned. For example, for warnings where there are no results
45837	// in a list request for a particular zone, this key might be scope and
45838	// the key value might be the zone name. Other examples might be a key
45839	// indicating a deprecated resource and a suggested replacement, or a
45840	// warning about invalid network settings (for example, if an instance
45841	// attempts to perform IP forwarding but is not enabled for IP
45842	// forwarding).
45843	Key string `json:"key,omitempty"`
45844
45845	// Value: [Output Only] A warning data value corresponding to the key.
45846	Value string `json:"value,omitempty"`
45847
45848	// ForceSendFields is a list of field names (e.g. "Key") to
45849	// unconditionally include in API requests. By default, fields with
45850	// empty values are omitted from API requests. However, any non-pointer,
45851	// non-interface field appearing in ForceSendFields will be sent to the
45852	// server regardless of whether the field is empty or not. This may be
45853	// used to include empty fields in Patch requests.
45854	ForceSendFields []string `json:"-"`
45855
45856	// NullFields is a list of field names (e.g. "Key") to include in API
45857	// requests with the JSON null value. By default, fields with empty
45858	// values are omitted from API requests. However, any field with an
45859	// empty value appearing in NullFields will be sent to the server as
45860	// null. It is an error if a field in this list has a non-empty value.
45861	// This may be used to include null fields in Patch requests.
45862	NullFields []string `json:"-"`
45863}
45864
45865func (s *UsableSubnetworksAggregatedListWarningData) MarshalJSON() ([]byte, error) {
45866	type NoMethod UsableSubnetworksAggregatedListWarningData
45867	raw := NoMethod(*s)
45868	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45869}
45870
45871// UsageExportLocation: The location in Cloud Storage and naming method
45872// of the daily usage report. Contains bucket_name and report_name
45873// prefix.
45874type UsageExportLocation struct {
45875	// BucketName: The name of an existing bucket in Cloud Storage where the
45876	// usage report object is stored. The Google Service Account is granted
45877	// write access to this bucket. This can either be the bucket name by
45878	// itself, such as example-bucket, or the bucket name with gs:// or
45879	// https://storage.googleapis.com/ in front of it, such as
45880	// gs://example-bucket.
45881	BucketName string `json:"bucketName,omitempty"`
45882
45883	// ReportNamePrefix: An optional prefix for the name of the usage report
45884	// object stored in bucketName. If not supplied, defaults to usage. The
45885	// report is stored as a CSV file named
45886	// report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day of the
45887	// usage according to Pacific Time. If you supply a prefix, it should
45888	// conform to Cloud Storage object naming conventions.
45889	ReportNamePrefix string `json:"reportNamePrefix,omitempty"`
45890
45891	// ForceSendFields is a list of field names (e.g. "BucketName") to
45892	// unconditionally include in API requests. By default, fields with
45893	// empty values are omitted from API requests. However, any non-pointer,
45894	// non-interface field appearing in ForceSendFields will be sent to the
45895	// server regardless of whether the field is empty or not. This may be
45896	// used to include empty fields in Patch requests.
45897	ForceSendFields []string `json:"-"`
45898
45899	// NullFields is a list of field names (e.g. "BucketName") to include in
45900	// API requests with the JSON null value. By default, fields with empty
45901	// values are omitted from API requests. However, any field with an
45902	// empty value appearing in NullFields will be sent to the server as
45903	// null. It is an error if a field in this list has a non-empty value.
45904	// This may be used to include null fields in Patch requests.
45905	NullFields []string `json:"-"`
45906}
45907
45908func (s *UsageExportLocation) MarshalJSON() ([]byte, error) {
45909	type NoMethod UsageExportLocation
45910	raw := NoMethod(*s)
45911	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45912}
45913
45914// VmEndpointNatMappings: Contain information of Nat mapping for a VM
45915// endpoint (i.e., NIC).
45916type VmEndpointNatMappings struct {
45917	// InstanceName: Name of the VM instance which the endpoint belongs to
45918	InstanceName string `json:"instanceName,omitempty"`
45919
45920	InterfaceNatMappings []*VmEndpointNatMappingsInterfaceNatMappings `json:"interfaceNatMappings,omitempty"`
45921
45922	// ForceSendFields is a list of field names (e.g. "InstanceName") to
45923	// unconditionally include in API requests. By default, fields with
45924	// empty values are omitted from API requests. However, any non-pointer,
45925	// non-interface field appearing in ForceSendFields will be sent to the
45926	// server regardless of whether the field is empty or not. This may be
45927	// used to include empty fields in Patch requests.
45928	ForceSendFields []string `json:"-"`
45929
45930	// NullFields is a list of field names (e.g. "InstanceName") to include
45931	// in API requests with the JSON null value. By default, fields with
45932	// empty values are omitted from API requests. However, any field with
45933	// an empty value appearing in NullFields will be sent to the server as
45934	// null. It is an error if a field in this list has a non-empty value.
45935	// This may be used to include null fields in Patch requests.
45936	NullFields []string `json:"-"`
45937}
45938
45939func (s *VmEndpointNatMappings) MarshalJSON() ([]byte, error) {
45940	type NoMethod VmEndpointNatMappings
45941	raw := NoMethod(*s)
45942	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45943}
45944
45945// VmEndpointNatMappingsInterfaceNatMappings: Contain information of Nat
45946// mapping for an interface of this endpoint.
45947type VmEndpointNatMappingsInterfaceNatMappings struct {
45948	// DrainNatIpPortRanges: List of all drain IP:port-range mappings
45949	// assigned to this interface. These ranges are inclusive, that is, both
45950	// the first and the last ports can be used for NAT. Example:
45951	// ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
45952	DrainNatIpPortRanges []string `json:"drainNatIpPortRanges,omitempty"`
45953
45954	// NatIpPortRanges: A list of all IP:port-range mappings assigned to
45955	// this interface. These ranges are inclusive, that is, both the first
45956	// and the last ports can be used for NAT. Example:
45957	// ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
45958	NatIpPortRanges []string `json:"natIpPortRanges,omitempty"`
45959
45960	// NumTotalDrainNatPorts: Total number of drain ports across all NAT IPs
45961	// allocated to this interface. It equals to the aggregated port number
45962	// in the field drain_nat_ip_port_ranges.
45963	NumTotalDrainNatPorts int64 `json:"numTotalDrainNatPorts,omitempty"`
45964
45965	// NumTotalNatPorts: Total number of ports across all NAT IPs allocated
45966	// to this interface. It equals to the aggregated port number in the
45967	// field nat_ip_port_ranges.
45968	NumTotalNatPorts int64 `json:"numTotalNatPorts,omitempty"`
45969
45970	// SourceAliasIpRange: Alias IP range for this interface endpoint. It
45971	// will be a private (RFC 1918) IP range. Examples: "10.33.4.55/32", or
45972	// "192.168.5.0/24".
45973	SourceAliasIpRange string `json:"sourceAliasIpRange,omitempty"`
45974
45975	// SourceVirtualIp: Primary IP of the VM for this NIC.
45976	SourceVirtualIp string `json:"sourceVirtualIp,omitempty"`
45977
45978	// ForceSendFields is a list of field names (e.g.
45979	// "DrainNatIpPortRanges") to unconditionally include in API requests.
45980	// By default, fields with empty values are omitted from API requests.
45981	// However, any non-pointer, non-interface field appearing in
45982	// ForceSendFields will be sent to the server regardless of whether the
45983	// field is empty or not. This may be used to include empty fields in
45984	// Patch requests.
45985	ForceSendFields []string `json:"-"`
45986
45987	// NullFields is a list of field names (e.g. "DrainNatIpPortRanges") to
45988	// include in API requests with the JSON null value. By default, fields
45989	// with empty values are omitted from API requests. However, any field
45990	// with an empty value appearing in NullFields will be sent to the
45991	// server as null. It is an error if a field in this list has a
45992	// non-empty value. This may be used to include null fields in Patch
45993	// requests.
45994	NullFields []string `json:"-"`
45995}
45996
45997func (s *VmEndpointNatMappingsInterfaceNatMappings) MarshalJSON() ([]byte, error) {
45998	type NoMethod VmEndpointNatMappingsInterfaceNatMappings
45999	raw := NoMethod(*s)
46000	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46001}
46002
46003// VmEndpointNatMappingsList: Contains a list of VmEndpointNatMappings.
46004type VmEndpointNatMappingsList struct {
46005	// Id: [Output Only] The unique identifier for the resource. This
46006	// identifier is defined by the server.
46007	Id string `json:"id,omitempty"`
46008
46009	// Kind: [Output Only] Type of resource. Always
46010	// compute#vmEndpointNatMappingsList for lists of Nat mappings of VM
46011	// endpoints.
46012	Kind string `json:"kind,omitempty"`
46013
46014	// NextPageToken: [Output Only] This token allows you to get the next
46015	// page of results for list requests. If the number of results is larger
46016	// than maxResults, use the nextPageToken as a value for the query
46017	// parameter pageToken in the next list request. Subsequent list
46018	// requests will have their own nextPageToken to continue paging through
46019	// the results.
46020	NextPageToken string `json:"nextPageToken,omitempty"`
46021
46022	// Result: [Output Only] A list of Nat mapping information of VM
46023	// endpoints.
46024	Result []*VmEndpointNatMappings `json:"result,omitempty"`
46025
46026	// SelfLink: [Output Only] Server-defined URL for this resource.
46027	SelfLink string `json:"selfLink,omitempty"`
46028
46029	// Warning: [Output Only] Informational warning message.
46030	Warning *VmEndpointNatMappingsListWarning `json:"warning,omitempty"`
46031
46032	// ServerResponse contains the HTTP response code and headers from the
46033	// server.
46034	googleapi.ServerResponse `json:"-"`
46035
46036	// ForceSendFields is a list of field names (e.g. "Id") to
46037	// unconditionally include in API requests. By default, fields with
46038	// empty values are omitted from API requests. However, any non-pointer,
46039	// non-interface field appearing in ForceSendFields will be sent to the
46040	// server regardless of whether the field is empty or not. This may be
46041	// used to include empty fields in Patch requests.
46042	ForceSendFields []string `json:"-"`
46043
46044	// NullFields is a list of field names (e.g. "Id") to include in API
46045	// requests with the JSON null value. By default, fields with empty
46046	// values are omitted from API requests. However, any field with an
46047	// empty value appearing in NullFields will be sent to the server as
46048	// null. It is an error if a field in this list has a non-empty value.
46049	// This may be used to include null fields in Patch requests.
46050	NullFields []string `json:"-"`
46051}
46052
46053func (s *VmEndpointNatMappingsList) MarshalJSON() ([]byte, error) {
46054	type NoMethod VmEndpointNatMappingsList
46055	raw := NoMethod(*s)
46056	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46057}
46058
46059// VmEndpointNatMappingsListWarning: [Output Only] Informational warning
46060// message.
46061type VmEndpointNatMappingsListWarning struct {
46062	// Code: [Output Only] A warning code, if applicable. For example,
46063	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46064	// the response.
46065	//
46066	// Possible values:
46067	//   "CLEANUP_FAILED"
46068	//   "DEPRECATED_RESOURCE_USED"
46069	//   "DEPRECATED_TYPE_USED"
46070	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
46071	//   "EXPERIMENTAL_TYPE_USED"
46072	//   "EXTERNAL_API_WARNING"
46073	//   "FIELD_VALUE_OVERRIDEN"
46074	//   "INJECTED_KERNELS_DEPRECATED"
46075	//   "MISSING_TYPE_DEPENDENCY"
46076	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
46077	//   "NEXT_HOP_CANNOT_IP_FORWARD"
46078	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
46079	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
46080	//   "NEXT_HOP_NOT_RUNNING"
46081	//   "NOT_CRITICAL_ERROR"
46082	//   "NO_RESULTS_ON_PAGE"
46083	//   "REQUIRED_TOS_AGREEMENT"
46084	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
46085	//   "RESOURCE_NOT_DELETED"
46086	//   "SCHEMA_VALIDATION_IGNORED"
46087	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
46088	//   "UNDECLARED_PROPERTIES"
46089	//   "UNREACHABLE"
46090	Code string `json:"code,omitempty"`
46091
46092	// Data: [Output Only] Metadata about this warning in key: value format.
46093	// For example:
46094	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
46095	Data []*VmEndpointNatMappingsListWarningData `json:"data,omitempty"`
46096
46097	// Message: [Output Only] A human-readable description of the warning
46098	// code.
46099	Message string `json:"message,omitempty"`
46100
46101	// ForceSendFields is a list of field names (e.g. "Code") to
46102	// unconditionally include in API requests. By default, fields with
46103	// empty values are omitted from API requests. However, any non-pointer,
46104	// non-interface field appearing in ForceSendFields will be sent to the
46105	// server regardless of whether the field is empty or not. This may be
46106	// used to include empty fields in Patch requests.
46107	ForceSendFields []string `json:"-"`
46108
46109	// NullFields is a list of field names (e.g. "Code") to include in API
46110	// requests with the JSON null value. By default, fields with empty
46111	// values are omitted from API requests. However, any field with an
46112	// empty value appearing in NullFields will be sent to the server as
46113	// null. It is an error if a field in this list has a non-empty value.
46114	// This may be used to include null fields in Patch requests.
46115	NullFields []string `json:"-"`
46116}
46117
46118func (s *VmEndpointNatMappingsListWarning) MarshalJSON() ([]byte, error) {
46119	type NoMethod VmEndpointNatMappingsListWarning
46120	raw := NoMethod(*s)
46121	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46122}
46123
46124type VmEndpointNatMappingsListWarningData struct {
46125	// Key: [Output Only] A key that provides more detail on the warning
46126	// being returned. For example, for warnings where there are no results
46127	// in a list request for a particular zone, this key might be scope and
46128	// the key value might be the zone name. Other examples might be a key
46129	// indicating a deprecated resource and a suggested replacement, or a
46130	// warning about invalid network settings (for example, if an instance
46131	// attempts to perform IP forwarding but is not enabled for IP
46132	// forwarding).
46133	Key string `json:"key,omitempty"`
46134
46135	// Value: [Output Only] A warning data value corresponding to the key.
46136	Value string `json:"value,omitempty"`
46137
46138	// ForceSendFields is a list of field names (e.g. "Key") to
46139	// unconditionally include in API requests. By default, fields with
46140	// empty values are omitted from API requests. However, any non-pointer,
46141	// non-interface field appearing in ForceSendFields will be sent to the
46142	// server regardless of whether the field is empty or not. This may be
46143	// used to include empty fields in Patch requests.
46144	ForceSendFields []string `json:"-"`
46145
46146	// NullFields is a list of field names (e.g. "Key") to include in API
46147	// requests with the JSON null value. By default, fields with empty
46148	// values are omitted from API requests. However, any field with an
46149	// empty value appearing in NullFields will be sent to the server as
46150	// null. It is an error if a field in this list has a non-empty value.
46151	// This may be used to include null fields in Patch requests.
46152	NullFields []string `json:"-"`
46153}
46154
46155func (s *VmEndpointNatMappingsListWarningData) MarshalJSON() ([]byte, error) {
46156	type NoMethod VmEndpointNatMappingsListWarningData
46157	raw := NoMethod(*s)
46158	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46159}
46160
46161// VpnGateway: Represents a VPN gateway resource. Next ID: 13
46162type VpnGateway struct {
46163	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
46164	// format.
46165	CreationTimestamp string `json:"creationTimestamp,omitempty"`
46166
46167	// Description: An optional description of this resource. Provide this
46168	// property when you create the resource.
46169	Description string `json:"description,omitempty"`
46170
46171	// Id: [Output Only] The unique identifier for the resource. This
46172	// identifier is defined by the server.
46173	Id uint64 `json:"id,omitempty,string"`
46174
46175	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
46176	// VPN gateways.
46177	Kind string `json:"kind,omitempty"`
46178
46179	// LabelFingerprint: A fingerprint for the labels being applied to this
46180	// VpnGateway, which is essentially a hash of the labels set used for
46181	// optimistic locking. The fingerprint is initially generated by Compute
46182	// Engine and changes after every request to modify or update labels.
46183	// You must always provide an up-to-date fingerprint hash in order to
46184	// update or change labels, otherwise the request will fail with error
46185	// 412 conditionNotMet.
46186	//
46187	// To see the latest fingerprint, make a get() request to retrieve an
46188	// VpnGateway.
46189	LabelFingerprint string `json:"labelFingerprint,omitempty"`
46190
46191	// Labels: Labels to apply to this VpnGateway resource. These can be
46192	// later modified by the setLabels method. Each label key/value must
46193	// comply with RFC1035. Label values may be empty.
46194	Labels map[string]string `json:"labels,omitempty"`
46195
46196	// Name: Name of the resource. Provided by the client when the resource
46197	// is created. The name must be 1-63 characters long, and comply with
46198	// RFC1035. Specifically, the name must be 1-63 characters long and
46199	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
46200	// the first character must be a lowercase letter, and all following
46201	// characters must be a dash, lowercase letter, or digit, except the
46202	// last character, which cannot be a dash.
46203	Name string `json:"name,omitempty"`
46204
46205	// Network: URL of the network to which this VPN gateway is attached.
46206	// Provided by the client when the VPN gateway is created.
46207	Network string `json:"network,omitempty"`
46208
46209	// Region: [Output Only] URL of the region where the VPN gateway
46210	// resides.
46211	Region string `json:"region,omitempty"`
46212
46213	// SelfLink: [Output Only] Server-defined URL for the resource.
46214	SelfLink string `json:"selfLink,omitempty"`
46215
46216	// VpnInterfaces: [Output Only] A list of interfaces on this VPN
46217	// gateway.
46218	VpnInterfaces []*VpnGatewayVpnGatewayInterface `json:"vpnInterfaces,omitempty"`
46219
46220	// ServerResponse contains the HTTP response code and headers from the
46221	// server.
46222	googleapi.ServerResponse `json:"-"`
46223
46224	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
46225	// to unconditionally include in API requests. By default, fields with
46226	// empty values are omitted from API requests. However, any non-pointer,
46227	// non-interface field appearing in ForceSendFields will be sent to the
46228	// server regardless of whether the field is empty or not. This may be
46229	// used to include empty fields in Patch requests.
46230	ForceSendFields []string `json:"-"`
46231
46232	// NullFields is a list of field names (e.g. "CreationTimestamp") to
46233	// include in API requests with the JSON null value. By default, fields
46234	// with empty values are omitted from API requests. However, any field
46235	// with an empty value appearing in NullFields will be sent to the
46236	// server as null. It is an error if a field in this list has a
46237	// non-empty value. This may be used to include null fields in Patch
46238	// requests.
46239	NullFields []string `json:"-"`
46240}
46241
46242func (s *VpnGateway) MarshalJSON() ([]byte, error) {
46243	type NoMethod VpnGateway
46244	raw := NoMethod(*s)
46245	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46246}
46247
46248type VpnGatewayAggregatedList struct {
46249	// Id: [Output Only] Unique identifier for the resource; defined by the
46250	// server.
46251	Id string `json:"id,omitempty"`
46252
46253	// Items: A list of VpnGateway resources.
46254	Items map[string]VpnGatewaysScopedList `json:"items,omitempty"`
46255
46256	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
46257	// VPN gateways.
46258	Kind string `json:"kind,omitempty"`
46259
46260	// NextPageToken: [Output Only] This token allows you to get the next
46261	// page of results for list requests. If the number of results is larger
46262	// than maxResults, use the nextPageToken as a value for the query
46263	// parameter pageToken in the next list request. Subsequent list
46264	// requests will have their own nextPageToken to continue paging through
46265	// the results.
46266	NextPageToken string `json:"nextPageToken,omitempty"`
46267
46268	// SelfLink: [Output Only] Server-defined URL for this resource.
46269	SelfLink string `json:"selfLink,omitempty"`
46270
46271	// Warning: [Output Only] Informational warning message.
46272	Warning *VpnGatewayAggregatedListWarning `json:"warning,omitempty"`
46273
46274	// ServerResponse contains the HTTP response code and headers from the
46275	// server.
46276	googleapi.ServerResponse `json:"-"`
46277
46278	// ForceSendFields is a list of field names (e.g. "Id") to
46279	// unconditionally include in API requests. By default, fields with
46280	// empty values are omitted from API requests. However, any non-pointer,
46281	// non-interface field appearing in ForceSendFields will be sent to the
46282	// server regardless of whether the field is empty or not. This may be
46283	// used to include empty fields in Patch requests.
46284	ForceSendFields []string `json:"-"`
46285
46286	// NullFields is a list of field names (e.g. "Id") to include in API
46287	// requests with the JSON null value. By default, fields with empty
46288	// values are omitted from API requests. However, any field with an
46289	// empty value appearing in NullFields will be sent to the server as
46290	// null. It is an error if a field in this list has a non-empty value.
46291	// This may be used to include null fields in Patch requests.
46292	NullFields []string `json:"-"`
46293}
46294
46295func (s *VpnGatewayAggregatedList) MarshalJSON() ([]byte, error) {
46296	type NoMethod VpnGatewayAggregatedList
46297	raw := NoMethod(*s)
46298	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46299}
46300
46301// VpnGatewayAggregatedListWarning: [Output Only] Informational warning
46302// message.
46303type VpnGatewayAggregatedListWarning struct {
46304	// Code: [Output Only] A warning code, if applicable. For example,
46305	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46306	// the response.
46307	//
46308	// Possible values:
46309	//   "CLEANUP_FAILED"
46310	//   "DEPRECATED_RESOURCE_USED"
46311	//   "DEPRECATED_TYPE_USED"
46312	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
46313	//   "EXPERIMENTAL_TYPE_USED"
46314	//   "EXTERNAL_API_WARNING"
46315	//   "FIELD_VALUE_OVERRIDEN"
46316	//   "INJECTED_KERNELS_DEPRECATED"
46317	//   "MISSING_TYPE_DEPENDENCY"
46318	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
46319	//   "NEXT_HOP_CANNOT_IP_FORWARD"
46320	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
46321	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
46322	//   "NEXT_HOP_NOT_RUNNING"
46323	//   "NOT_CRITICAL_ERROR"
46324	//   "NO_RESULTS_ON_PAGE"
46325	//   "REQUIRED_TOS_AGREEMENT"
46326	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
46327	//   "RESOURCE_NOT_DELETED"
46328	//   "SCHEMA_VALIDATION_IGNORED"
46329	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
46330	//   "UNDECLARED_PROPERTIES"
46331	//   "UNREACHABLE"
46332	Code string `json:"code,omitempty"`
46333
46334	// Data: [Output Only] Metadata about this warning in key: value format.
46335	// For example:
46336	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
46337	Data []*VpnGatewayAggregatedListWarningData `json:"data,omitempty"`
46338
46339	// Message: [Output Only] A human-readable description of the warning
46340	// code.
46341	Message string `json:"message,omitempty"`
46342
46343	// ForceSendFields is a list of field names (e.g. "Code") to
46344	// unconditionally include in API requests. By default, fields with
46345	// empty values are omitted from API requests. However, any non-pointer,
46346	// non-interface field appearing in ForceSendFields will be sent to the
46347	// server regardless of whether the field is empty or not. This may be
46348	// used to include empty fields in Patch requests.
46349	ForceSendFields []string `json:"-"`
46350
46351	// NullFields is a list of field names (e.g. "Code") to include in API
46352	// requests with the JSON null value. By default, fields with empty
46353	// values are omitted from API requests. However, any field with an
46354	// empty value appearing in NullFields will be sent to the server as
46355	// null. It is an error if a field in this list has a non-empty value.
46356	// This may be used to include null fields in Patch requests.
46357	NullFields []string `json:"-"`
46358}
46359
46360func (s *VpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) {
46361	type NoMethod VpnGatewayAggregatedListWarning
46362	raw := NoMethod(*s)
46363	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46364}
46365
46366type VpnGatewayAggregatedListWarningData struct {
46367	// Key: [Output Only] A key that provides more detail on the warning
46368	// being returned. For example, for warnings where there are no results
46369	// in a list request for a particular zone, this key might be scope and
46370	// the key value might be the zone name. Other examples might be a key
46371	// indicating a deprecated resource and a suggested replacement, or a
46372	// warning about invalid network settings (for example, if an instance
46373	// attempts to perform IP forwarding but is not enabled for IP
46374	// forwarding).
46375	Key string `json:"key,omitempty"`
46376
46377	// Value: [Output Only] A warning data value corresponding to the key.
46378	Value string `json:"value,omitempty"`
46379
46380	// ForceSendFields is a list of field names (e.g. "Key") to
46381	// unconditionally include in API requests. By default, fields with
46382	// empty values are omitted from API requests. However, any non-pointer,
46383	// non-interface field appearing in ForceSendFields will be sent to the
46384	// server regardless of whether the field is empty or not. This may be
46385	// used to include empty fields in Patch requests.
46386	ForceSendFields []string `json:"-"`
46387
46388	// NullFields is a list of field names (e.g. "Key") to include in API
46389	// requests with the JSON null value. By default, fields with empty
46390	// values are omitted from API requests. However, any field with an
46391	// empty value appearing in NullFields will be sent to the server as
46392	// null. It is an error if a field in this list has a non-empty value.
46393	// This may be used to include null fields in Patch requests.
46394	NullFields []string `json:"-"`
46395}
46396
46397func (s *VpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) {
46398	type NoMethod VpnGatewayAggregatedListWarningData
46399	raw := NoMethod(*s)
46400	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46401}
46402
46403// VpnGatewayList: Contains a list of VpnGateway resources.
46404type VpnGatewayList struct {
46405	// Id: [Output Only] Unique identifier for the resource; defined by the
46406	// server.
46407	Id string `json:"id,omitempty"`
46408
46409	// Items: A list of VpnGateway resources.
46410	Items []*VpnGateway `json:"items,omitempty"`
46411
46412	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
46413	// VPN gateways.
46414	Kind string `json:"kind,omitempty"`
46415
46416	// NextPageToken: [Output Only] This token allows you to get the next
46417	// page of results for list requests. If the number of results is larger
46418	// than maxResults, use the nextPageToken as a value for the query
46419	// parameter pageToken in the next list request. Subsequent list
46420	// requests will have their own nextPageToken to continue paging through
46421	// the results.
46422	NextPageToken string `json:"nextPageToken,omitempty"`
46423
46424	// SelfLink: [Output Only] Server-defined URL for this resource.
46425	SelfLink string `json:"selfLink,omitempty"`
46426
46427	// Warning: [Output Only] Informational warning message.
46428	Warning *VpnGatewayListWarning `json:"warning,omitempty"`
46429
46430	// ServerResponse contains the HTTP response code and headers from the
46431	// server.
46432	googleapi.ServerResponse `json:"-"`
46433
46434	// ForceSendFields is a list of field names (e.g. "Id") to
46435	// unconditionally include in API requests. By default, fields with
46436	// empty values are omitted from API requests. However, any non-pointer,
46437	// non-interface field appearing in ForceSendFields will be sent to the
46438	// server regardless of whether the field is empty or not. This may be
46439	// used to include empty fields in Patch requests.
46440	ForceSendFields []string `json:"-"`
46441
46442	// NullFields is a list of field names (e.g. "Id") to include in API
46443	// requests with the JSON null value. By default, fields with empty
46444	// values are omitted from API requests. However, any field with an
46445	// empty value appearing in NullFields will be sent to the server as
46446	// null. It is an error if a field in this list has a non-empty value.
46447	// This may be used to include null fields in Patch requests.
46448	NullFields []string `json:"-"`
46449}
46450
46451func (s *VpnGatewayList) MarshalJSON() ([]byte, error) {
46452	type NoMethod VpnGatewayList
46453	raw := NoMethod(*s)
46454	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46455}
46456
46457// VpnGatewayListWarning: [Output Only] Informational warning message.
46458type VpnGatewayListWarning struct {
46459	// Code: [Output Only] A warning code, if applicable. For example,
46460	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46461	// the response.
46462	//
46463	// Possible values:
46464	//   "CLEANUP_FAILED"
46465	//   "DEPRECATED_RESOURCE_USED"
46466	//   "DEPRECATED_TYPE_USED"
46467	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
46468	//   "EXPERIMENTAL_TYPE_USED"
46469	//   "EXTERNAL_API_WARNING"
46470	//   "FIELD_VALUE_OVERRIDEN"
46471	//   "INJECTED_KERNELS_DEPRECATED"
46472	//   "MISSING_TYPE_DEPENDENCY"
46473	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
46474	//   "NEXT_HOP_CANNOT_IP_FORWARD"
46475	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
46476	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
46477	//   "NEXT_HOP_NOT_RUNNING"
46478	//   "NOT_CRITICAL_ERROR"
46479	//   "NO_RESULTS_ON_PAGE"
46480	//   "REQUIRED_TOS_AGREEMENT"
46481	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
46482	//   "RESOURCE_NOT_DELETED"
46483	//   "SCHEMA_VALIDATION_IGNORED"
46484	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
46485	//   "UNDECLARED_PROPERTIES"
46486	//   "UNREACHABLE"
46487	Code string `json:"code,omitempty"`
46488
46489	// Data: [Output Only] Metadata about this warning in key: value format.
46490	// For example:
46491	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
46492	Data []*VpnGatewayListWarningData `json:"data,omitempty"`
46493
46494	// Message: [Output Only] A human-readable description of the warning
46495	// code.
46496	Message string `json:"message,omitempty"`
46497
46498	// ForceSendFields is a list of field names (e.g. "Code") to
46499	// unconditionally include in API requests. By default, fields with
46500	// empty values are omitted from API requests. However, any non-pointer,
46501	// non-interface field appearing in ForceSendFields will be sent to the
46502	// server regardless of whether the field is empty or not. This may be
46503	// used to include empty fields in Patch requests.
46504	ForceSendFields []string `json:"-"`
46505
46506	// NullFields is a list of field names (e.g. "Code") to include in API
46507	// requests with the JSON null value. By default, fields with empty
46508	// values are omitted from API requests. However, any field with an
46509	// empty value appearing in NullFields will be sent to the server as
46510	// null. It is an error if a field in this list has a non-empty value.
46511	// This may be used to include null fields in Patch requests.
46512	NullFields []string `json:"-"`
46513}
46514
46515func (s *VpnGatewayListWarning) MarshalJSON() ([]byte, error) {
46516	type NoMethod VpnGatewayListWarning
46517	raw := NoMethod(*s)
46518	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46519}
46520
46521type VpnGatewayListWarningData struct {
46522	// Key: [Output Only] A key that provides more detail on the warning
46523	// being returned. For example, for warnings where there are no results
46524	// in a list request for a particular zone, this key might be scope and
46525	// the key value might be the zone name. Other examples might be a key
46526	// indicating a deprecated resource and a suggested replacement, or a
46527	// warning about invalid network settings (for example, if an instance
46528	// attempts to perform IP forwarding but is not enabled for IP
46529	// forwarding).
46530	Key string `json:"key,omitempty"`
46531
46532	// Value: [Output Only] A warning data value corresponding to the key.
46533	Value string `json:"value,omitempty"`
46534
46535	// ForceSendFields is a list of field names (e.g. "Key") to
46536	// unconditionally include in API requests. By default, fields with
46537	// empty values are omitted from API requests. However, any non-pointer,
46538	// non-interface field appearing in ForceSendFields will be sent to the
46539	// server regardless of whether the field is empty or not. This may be
46540	// used to include empty fields in Patch requests.
46541	ForceSendFields []string `json:"-"`
46542
46543	// NullFields is a list of field names (e.g. "Key") to include in API
46544	// requests with the JSON null value. By default, fields with empty
46545	// values are omitted from API requests. However, any field with an
46546	// empty value appearing in NullFields will be sent to the server as
46547	// null. It is an error if a field in this list has a non-empty value.
46548	// This may be used to include null fields in Patch requests.
46549	NullFields []string `json:"-"`
46550}
46551
46552func (s *VpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
46553	type NoMethod VpnGatewayListWarningData
46554	raw := NoMethod(*s)
46555	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46556}
46557
46558type VpnGatewayStatus struct {
46559	// VpnConnections: List of VPN connection for this VpnGateway.
46560	VpnConnections []*VpnGatewayStatusVpnConnection `json:"vpnConnections,omitempty"`
46561
46562	// ForceSendFields is a list of field names (e.g. "VpnConnections") to
46563	// unconditionally include in API requests. By default, fields with
46564	// empty values are omitted from API requests. However, any non-pointer,
46565	// non-interface field appearing in ForceSendFields will be sent to the
46566	// server regardless of whether the field is empty or not. This may be
46567	// used to include empty fields in Patch requests.
46568	ForceSendFields []string `json:"-"`
46569
46570	// NullFields is a list of field names (e.g. "VpnConnections") to
46571	// include in API requests with the JSON null value. By default, fields
46572	// with empty values are omitted from API requests. However, any field
46573	// with an empty value appearing in NullFields will be sent to the
46574	// server as null. It is an error if a field in this list has a
46575	// non-empty value. This may be used to include null fields in Patch
46576	// requests.
46577	NullFields []string `json:"-"`
46578}
46579
46580func (s *VpnGatewayStatus) MarshalJSON() ([]byte, error) {
46581	type NoMethod VpnGatewayStatus
46582	raw := NoMethod(*s)
46583	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46584}
46585
46586// VpnGatewayStatusHighAvailabilityRequirementState: Describes the high
46587// availability requirement state for the VPN connection between this
46588// Cloud VPN gateway and a peer gateway.
46589type VpnGatewayStatusHighAvailabilityRequirementState struct {
46590	// State: Indicates the high availability requirement state for the VPN
46591	// connection. Valid values are CONNECTION_REDUNDANCY_MET,
46592	// CONNECTION_REDUNDANCY_NOT_MET.
46593	//
46594	// Possible values:
46595	//   "CONNECTION_REDUNDANCY_MET"
46596	//   "CONNECTION_REDUNDANCY_NOT_MET"
46597	State string `json:"state,omitempty"`
46598
46599	// UnsatisfiedReason: Indicates the reason why the VPN connection does
46600	// not meet the high availability redundancy criteria/requirement. Valid
46601	// values is INCOMPLETE_TUNNELS_COVERAGE.
46602	//
46603	// Possible values:
46604	//   "INCOMPLETE_TUNNELS_COVERAGE"
46605	UnsatisfiedReason string `json:"unsatisfiedReason,omitempty"`
46606
46607	// ForceSendFields is a list of field names (e.g. "State") to
46608	// unconditionally include in API requests. By default, fields with
46609	// empty values are omitted from API requests. However, any non-pointer,
46610	// non-interface field appearing in ForceSendFields will be sent to the
46611	// server regardless of whether the field is empty or not. This may be
46612	// used to include empty fields in Patch requests.
46613	ForceSendFields []string `json:"-"`
46614
46615	// NullFields is a list of field names (e.g. "State") to include in API
46616	// requests with the JSON null value. By default, fields with empty
46617	// values are omitted from API requests. However, any field with an
46618	// empty value appearing in NullFields will be sent to the server as
46619	// null. It is an error if a field in this list has a non-empty value.
46620	// This may be used to include null fields in Patch requests.
46621	NullFields []string `json:"-"`
46622}
46623
46624func (s *VpnGatewayStatusHighAvailabilityRequirementState) MarshalJSON() ([]byte, error) {
46625	type NoMethod VpnGatewayStatusHighAvailabilityRequirementState
46626	raw := NoMethod(*s)
46627	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46628}
46629
46630// VpnGatewayStatusTunnel: Contains some information about a VPN tunnel.
46631type VpnGatewayStatusTunnel struct {
46632	// LocalGatewayInterface: The VPN gateway interface this VPN tunnel is
46633	// associated with.
46634	LocalGatewayInterface int64 `json:"localGatewayInterface,omitempty"`
46635
46636	// PeerGatewayInterface: The peer gateway interface this VPN tunnel is
46637	// connected to, the peer gateway could either be an external VPN
46638	// gateway or GCP VPN gateway.
46639	PeerGatewayInterface int64 `json:"peerGatewayInterface,omitempty"`
46640
46641	// TunnelUrl: URL reference to the VPN tunnel.
46642	TunnelUrl string `json:"tunnelUrl,omitempty"`
46643
46644	// ForceSendFields is a list of field names (e.g.
46645	// "LocalGatewayInterface") to unconditionally include in API requests.
46646	// By default, fields with empty values are omitted from API requests.
46647	// However, any non-pointer, non-interface field appearing in
46648	// ForceSendFields will be sent to the server regardless of whether the
46649	// field is empty or not. This may be used to include empty fields in
46650	// Patch requests.
46651	ForceSendFields []string `json:"-"`
46652
46653	// NullFields is a list of field names (e.g. "LocalGatewayInterface") to
46654	// include in API requests with the JSON null value. By default, fields
46655	// with empty values are omitted from API requests. However, any field
46656	// with an empty value appearing in NullFields will be sent to the
46657	// server as null. It is an error if a field in this list has a
46658	// non-empty value. This may be used to include null fields in Patch
46659	// requests.
46660	NullFields []string `json:"-"`
46661}
46662
46663func (s *VpnGatewayStatusTunnel) MarshalJSON() ([]byte, error) {
46664	type NoMethod VpnGatewayStatusTunnel
46665	raw := NoMethod(*s)
46666	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46667}
46668
46669// VpnGatewayStatusVpnConnection: A VPN connection contains all VPN
46670// tunnels connected from this VpnGateway to the same peer gateway. The
46671// peer gateway could either be a external VPN gateway or GCP VPN
46672// gateway.
46673type VpnGatewayStatusVpnConnection struct {
46674	// PeerExternalGateway: URL reference to the peer external VPN gateways
46675	// to which the VPN tunnels in this VPN connection are connected. This
46676	// field is mutually exclusive with peer_gcp_gateway.
46677	PeerExternalGateway string `json:"peerExternalGateway,omitempty"`
46678
46679	// PeerGcpGateway: URL reference to the peer side VPN gateways to which
46680	// the VPN tunnels in this VPN connection are connected. This field is
46681	// mutually exclusive with peer_gcp_gateway.
46682	PeerGcpGateway string `json:"peerGcpGateway,omitempty"`
46683
46684	// State: HighAvailabilityRequirementState for the VPN connection.
46685	State *VpnGatewayStatusHighAvailabilityRequirementState `json:"state,omitempty"`
46686
46687	// Tunnels: List of VPN tunnels that are in this VPN connection.
46688	Tunnels []*VpnGatewayStatusTunnel `json:"tunnels,omitempty"`
46689
46690	// ForceSendFields is a list of field names (e.g. "PeerExternalGateway")
46691	// to unconditionally include in API requests. By default, fields with
46692	// empty values are omitted from API requests. However, any non-pointer,
46693	// non-interface field appearing in ForceSendFields will be sent to the
46694	// server regardless of whether the field is empty or not. This may be
46695	// used to include empty fields in Patch requests.
46696	ForceSendFields []string `json:"-"`
46697
46698	// NullFields is a list of field names (e.g. "PeerExternalGateway") to
46699	// include in API requests with the JSON null value. By default, fields
46700	// with empty values are omitted from API requests. However, any field
46701	// with an empty value appearing in NullFields will be sent to the
46702	// server as null. It is an error if a field in this list has a
46703	// non-empty value. This may be used to include null fields in Patch
46704	// requests.
46705	NullFields []string `json:"-"`
46706}
46707
46708func (s *VpnGatewayStatusVpnConnection) MarshalJSON() ([]byte, error) {
46709	type NoMethod VpnGatewayStatusVpnConnection
46710	raw := NoMethod(*s)
46711	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46712}
46713
46714// VpnGatewayVpnGatewayInterface: A VPN gateway interface.
46715type VpnGatewayVpnGatewayInterface struct {
46716	// Id: The numeric ID of this VPN gateway interface.
46717	Id int64 `json:"id,omitempty"`
46718
46719	// IpAddress: The external IP address for this VPN gateway interface.
46720	IpAddress string `json:"ipAddress,omitempty"`
46721
46722	// ForceSendFields is a list of field names (e.g. "Id") to
46723	// unconditionally include in API requests. By default, fields with
46724	// empty values are omitted from API requests. However, any non-pointer,
46725	// non-interface field appearing in ForceSendFields will be sent to the
46726	// server regardless of whether the field is empty or not. This may be
46727	// used to include empty fields in Patch requests.
46728	ForceSendFields []string `json:"-"`
46729
46730	// NullFields is a list of field names (e.g. "Id") to include in API
46731	// requests with the JSON null value. By default, fields with empty
46732	// values are omitted from API requests. However, any field with an
46733	// empty value appearing in NullFields will be sent to the server as
46734	// null. It is an error if a field in this list has a non-empty value.
46735	// This may be used to include null fields in Patch requests.
46736	NullFields []string `json:"-"`
46737}
46738
46739func (s *VpnGatewayVpnGatewayInterface) MarshalJSON() ([]byte, error) {
46740	type NoMethod VpnGatewayVpnGatewayInterface
46741	raw := NoMethod(*s)
46742	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46743}
46744
46745type VpnGatewaysGetStatusResponse struct {
46746	Result *VpnGatewayStatus `json:"result,omitempty"`
46747
46748	// ServerResponse contains the HTTP response code and headers from the
46749	// server.
46750	googleapi.ServerResponse `json:"-"`
46751
46752	// ForceSendFields is a list of field names (e.g. "Result") to
46753	// unconditionally include in API requests. By default, fields with
46754	// empty values are omitted from API requests. However, any non-pointer,
46755	// non-interface field appearing in ForceSendFields will be sent to the
46756	// server regardless of whether the field is empty or not. This may be
46757	// used to include empty fields in Patch requests.
46758	ForceSendFields []string `json:"-"`
46759
46760	// NullFields is a list of field names (e.g. "Result") to include in API
46761	// requests with the JSON null value. By default, fields with empty
46762	// values are omitted from API requests. However, any field with an
46763	// empty value appearing in NullFields will be sent to the server as
46764	// null. It is an error if a field in this list has a non-empty value.
46765	// This may be used to include null fields in Patch requests.
46766	NullFields []string `json:"-"`
46767}
46768
46769func (s *VpnGatewaysGetStatusResponse) MarshalJSON() ([]byte, error) {
46770	type NoMethod VpnGatewaysGetStatusResponse
46771	raw := NoMethod(*s)
46772	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46773}
46774
46775type VpnGatewaysScopedList struct {
46776	// VpnGateways: [Output Only] A list of VPN gateways contained in this
46777	// scope.
46778	VpnGateways []*VpnGateway `json:"vpnGateways,omitempty"`
46779
46780	// Warning: [Output Only] Informational warning which replaces the list
46781	// of addresses when the list is empty.
46782	Warning *VpnGatewaysScopedListWarning `json:"warning,omitempty"`
46783
46784	// ForceSendFields is a list of field names (e.g. "VpnGateways") to
46785	// unconditionally include in API requests. By default, fields with
46786	// empty values are omitted from API requests. However, any non-pointer,
46787	// non-interface field appearing in ForceSendFields will be sent to the
46788	// server regardless of whether the field is empty or not. This may be
46789	// used to include empty fields in Patch requests.
46790	ForceSendFields []string `json:"-"`
46791
46792	// NullFields is a list of field names (e.g. "VpnGateways") to include
46793	// in API requests with the JSON null value. By default, fields with
46794	// empty values are omitted from API requests. However, any field with
46795	// an empty value appearing in NullFields will be sent to the server as
46796	// null. It is an error if a field in this list has a non-empty value.
46797	// This may be used to include null fields in Patch requests.
46798	NullFields []string `json:"-"`
46799}
46800
46801func (s *VpnGatewaysScopedList) MarshalJSON() ([]byte, error) {
46802	type NoMethod VpnGatewaysScopedList
46803	raw := NoMethod(*s)
46804	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46805}
46806
46807// VpnGatewaysScopedListWarning: [Output Only] Informational warning
46808// which replaces the list of addresses when the list is empty.
46809type VpnGatewaysScopedListWarning struct {
46810	// Code: [Output Only] A warning code, if applicable. For example,
46811	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46812	// the response.
46813	//
46814	// Possible values:
46815	//   "CLEANUP_FAILED"
46816	//   "DEPRECATED_RESOURCE_USED"
46817	//   "DEPRECATED_TYPE_USED"
46818	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
46819	//   "EXPERIMENTAL_TYPE_USED"
46820	//   "EXTERNAL_API_WARNING"
46821	//   "FIELD_VALUE_OVERRIDEN"
46822	//   "INJECTED_KERNELS_DEPRECATED"
46823	//   "MISSING_TYPE_DEPENDENCY"
46824	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
46825	//   "NEXT_HOP_CANNOT_IP_FORWARD"
46826	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
46827	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
46828	//   "NEXT_HOP_NOT_RUNNING"
46829	//   "NOT_CRITICAL_ERROR"
46830	//   "NO_RESULTS_ON_PAGE"
46831	//   "REQUIRED_TOS_AGREEMENT"
46832	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
46833	//   "RESOURCE_NOT_DELETED"
46834	//   "SCHEMA_VALIDATION_IGNORED"
46835	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
46836	//   "UNDECLARED_PROPERTIES"
46837	//   "UNREACHABLE"
46838	Code string `json:"code,omitempty"`
46839
46840	// Data: [Output Only] Metadata about this warning in key: value format.
46841	// For example:
46842	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
46843	Data []*VpnGatewaysScopedListWarningData `json:"data,omitempty"`
46844
46845	// Message: [Output Only] A human-readable description of the warning
46846	// code.
46847	Message string `json:"message,omitempty"`
46848
46849	// ForceSendFields is a list of field names (e.g. "Code") to
46850	// unconditionally include in API requests. By default, fields with
46851	// empty values are omitted from API requests. However, any non-pointer,
46852	// non-interface field appearing in ForceSendFields will be sent to the
46853	// server regardless of whether the field is empty or not. This may be
46854	// used to include empty fields in Patch requests.
46855	ForceSendFields []string `json:"-"`
46856
46857	// NullFields is a list of field names (e.g. "Code") to include in API
46858	// requests with the JSON null value. By default, fields with empty
46859	// values are omitted from API requests. However, any field with an
46860	// empty value appearing in NullFields will be sent to the server as
46861	// null. It is an error if a field in this list has a non-empty value.
46862	// This may be used to include null fields in Patch requests.
46863	NullFields []string `json:"-"`
46864}
46865
46866func (s *VpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) {
46867	type NoMethod VpnGatewaysScopedListWarning
46868	raw := NoMethod(*s)
46869	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46870}
46871
46872type VpnGatewaysScopedListWarningData struct {
46873	// Key: [Output Only] A key that provides more detail on the warning
46874	// being returned. For example, for warnings where there are no results
46875	// in a list request for a particular zone, this key might be scope and
46876	// the key value might be the zone name. Other examples might be a key
46877	// indicating a deprecated resource and a suggested replacement, or a
46878	// warning about invalid network settings (for example, if an instance
46879	// attempts to perform IP forwarding but is not enabled for IP
46880	// forwarding).
46881	Key string `json:"key,omitempty"`
46882
46883	// Value: [Output Only] A warning data value corresponding to the key.
46884	Value string `json:"value,omitempty"`
46885
46886	// ForceSendFields is a list of field names (e.g. "Key") to
46887	// unconditionally include in API requests. By default, fields with
46888	// empty values are omitted from API requests. However, any non-pointer,
46889	// non-interface field appearing in ForceSendFields will be sent to the
46890	// server regardless of whether the field is empty or not. This may be
46891	// used to include empty fields in Patch requests.
46892	ForceSendFields []string `json:"-"`
46893
46894	// NullFields is a list of field names (e.g. "Key") to include in API
46895	// requests with the JSON null value. By default, fields with empty
46896	// values are omitted from API requests. However, any field with an
46897	// empty value appearing in NullFields will be sent to the server as
46898	// null. It is an error if a field in this list has a non-empty value.
46899	// This may be used to include null fields in Patch requests.
46900	NullFields []string `json:"-"`
46901}
46902
46903func (s *VpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) {
46904	type NoMethod VpnGatewaysScopedListWarningData
46905	raw := NoMethod(*s)
46906	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46907}
46908
46909// VpnTunnel: Represents a Cloud VPN Tunnel resource.
46910//
46911// For more information about VPN, read the the Cloud VPN Overview. (==
46912// resource_for {$api_version}.vpnTunnels ==)
46913type VpnTunnel struct {
46914	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
46915	// format.
46916	CreationTimestamp string `json:"creationTimestamp,omitempty"`
46917
46918	// Description: An optional description of this resource. Provide this
46919	// property when you create the resource.
46920	Description string `json:"description,omitempty"`
46921
46922	// DetailedStatus: [Output Only] Detailed status message for the VPN
46923	// tunnel.
46924	DetailedStatus string `json:"detailedStatus,omitempty"`
46925
46926	// Id: [Output Only] The unique identifier for the resource. This
46927	// identifier is defined by the server.
46928	Id uint64 `json:"id,omitempty,string"`
46929
46930	// IkeVersion: IKE protocol version to use when establishing the VPN
46931	// tunnel with the peer VPN gateway. Acceptable IKE versions are 1 or 2.
46932	// The default version is 2.
46933	IkeVersion int64 `json:"ikeVersion,omitempty"`
46934
46935	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
46936	// VPN tunnels.
46937	Kind string `json:"kind,omitempty"`
46938
46939	// LabelFingerprint: A fingerprint for the labels being applied to this
46940	// VpnTunnel, which is essentially a hash of the labels set used for
46941	// optimistic locking. The fingerprint is initially generated by Compute
46942	// Engine and changes after every request to modify or update labels.
46943	// You must always provide an up-to-date fingerprint hash in order to
46944	// update or change labels, otherwise the request will fail with error
46945	// 412 conditionNotMet.
46946	//
46947	// To see the latest fingerprint, make a get() request to retrieve a
46948	// VpnTunnel.
46949	LabelFingerprint string `json:"labelFingerprint,omitempty"`
46950
46951	// Labels: Labels to apply to this VpnTunnel. These can be later
46952	// modified by the setLabels method. Each label key/value pair must
46953	// comply with RFC1035. Label values may be empty.
46954	Labels map[string]string `json:"labels,omitempty"`
46955
46956	// LocalTrafficSelector: Local traffic selector to use when establishing
46957	// the VPN tunnel with the peer VPN gateway. The value should be a CIDR
46958	// formatted string, for example: 192.168.0.0/16. The ranges must be
46959	// disjoint. Only IPv4 is supported.
46960	LocalTrafficSelector []string `json:"localTrafficSelector,omitempty"`
46961
46962	// Name: Name of the resource. Provided by the client when the resource
46963	// is created. The name must be 1-63 characters long, and comply with
46964	// RFC1035. Specifically, the name must be 1-63 characters long and
46965	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
46966	// the first character must be a lowercase letter, and all following
46967	// characters must be a dash, lowercase letter, or digit, except the
46968	// last character, which cannot be a dash.
46969	Name string `json:"name,omitempty"`
46970
46971	// PeerExternalGateway: URL of the peer side external VPN gateway to
46972	// which this VPN tunnel is connected. Provided by the client when the
46973	// VPN tunnel is created. This field is exclusive with the field
46974	// peerGcpGateway.
46975	PeerExternalGateway string `json:"peerExternalGateway,omitempty"`
46976
46977	// PeerExternalGatewayInterface: The interface ID of the external VPN
46978	// gateway to which this VPN tunnel is connected. Provided by the client
46979	// when the VPN tunnel is created.
46980	PeerExternalGatewayInterface int64 `json:"peerExternalGatewayInterface,omitempty"`
46981
46982	// PeerGcpGateway: URL of the peer side HA GCP VPN gateway to which this
46983	// VPN tunnel is connected. Provided by the client when the VPN tunnel
46984	// is created. This field can be used when creating highly available VPN
46985	// from VPC network to VPC network, the field is exclusive with the
46986	// field peerExternalGateway. If provided, the VPN tunnel will
46987	// automatically use the same vpnGatewayInterface ID in the peer GCP VPN
46988	// gateway.
46989	PeerGcpGateway string `json:"peerGcpGateway,omitempty"`
46990
46991	// PeerIp: IP address of the peer VPN gateway. Only IPv4 is supported.
46992	PeerIp string `json:"peerIp,omitempty"`
46993
46994	// Region: [Output Only] URL of the region where the VPN tunnel resides.
46995	// You must specify this field as part of the HTTP request URL. It is
46996	// not settable as a field in the request body.
46997	Region string `json:"region,omitempty"`
46998
46999	// RemoteTrafficSelector: Remote traffic selectors to use when
47000	// establishing the VPN tunnel with the peer VPN gateway. The value
47001	// should be a CIDR formatted string, for example: 192.168.0.0/16. The
47002	// ranges should be disjoint. Only IPv4 is supported.
47003	RemoteTrafficSelector []string `json:"remoteTrafficSelector,omitempty"`
47004
47005	// Router: URL of the router resource to be used for dynamic routing.
47006	Router string `json:"router,omitempty"`
47007
47008	// SelfLink: [Output Only] Server-defined URL for the resource.
47009	SelfLink string `json:"selfLink,omitempty"`
47010
47011	// SharedSecret: Shared secret used to set the secure session between
47012	// the Cloud VPN gateway and the peer VPN gateway.
47013	SharedSecret string `json:"sharedSecret,omitempty"`
47014
47015	// SharedSecretHash: Hash of the shared secret.
47016	SharedSecretHash string `json:"sharedSecretHash,omitempty"`
47017
47018	// Status: [Output Only] The status of the VPN tunnel, which can be one
47019	// of the following:
47020	// - PROVISIONING: Resource is being allocated for the VPN tunnel.
47021	// - WAITING_FOR_FULL_CONFIG: Waiting to receive all VPN-related configs
47022	// from the user. Network, TargetVpnGateway, VpnTunnel, ForwardingRule,
47023	// and Route resources are needed to setup the VPN tunnel.
47024	// - FIRST_HANDSHAKE: Successful first handshake with the peer VPN.
47025	// - ESTABLISHED: Secure session is successfully established with the
47026	// peer VPN.
47027	// - NETWORK_ERROR: Deprecated, replaced by NO_INCOMING_PACKETS
47028	// - AUTHORIZATION_ERROR: Auth error (for example, bad shared secret).
47029	//
47030	// - NEGOTIATION_FAILURE: Handshake failed.
47031	// - DEPROVISIONING: Resources are being deallocated for the VPN tunnel.
47032	//
47033	// - FAILED: Tunnel creation has failed and the tunnel is not ready to
47034	// be used.
47035	// - NO_INCOMING_PACKETS: No incoming packets from peer.
47036	// - REJECTED: Tunnel configuration was rejected, can be result of being
47037	// blacklisted.
47038	// - ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all
47039	// required resources.
47040	// - STOPPED: Tunnel is stopped due to its Forwarding Rules being
47041	// deleted for Classic VPN tunnels or the project is in frozen state.
47042	// - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP,
47043	// probably behind NAT.
47044	// - TS_NARROWING_NOT_ALLOWED: Traffic selector narrowing not allowed
47045	// for an HA-VPN tunnel.
47046	//
47047	// Possible values:
47048	//   "ALLOCATING_RESOURCES"
47049	//   "AUTHORIZATION_ERROR"
47050	//   "DEPROVISIONING"
47051	//   "ESTABLISHED"
47052	//   "FAILED"
47053	//   "FIRST_HANDSHAKE"
47054	//   "NEGOTIATION_FAILURE"
47055	//   "NETWORK_ERROR"
47056	//   "NO_INCOMING_PACKETS"
47057	//   "PROVISIONING"
47058	//   "REJECTED"
47059	//   "STOPPED"
47060	//   "WAITING_FOR_FULL_CONFIG"
47061	Status string `json:"status,omitempty"`
47062
47063	// TargetVpnGateway: URL of the Target VPN gateway with which this VPN
47064	// tunnel is associated. Provided by the client when the VPN tunnel is
47065	// created.
47066	TargetVpnGateway string `json:"targetVpnGateway,omitempty"`
47067
47068	// VpnGateway: URL of the VPN gateway with which this VPN tunnel is
47069	// associated. Provided by the client when the VPN tunnel is created.
47070	// This must be used (instead of target_vpn_gateway) if a High
47071	// Availability VPN gateway resource is created.
47072	VpnGateway string `json:"vpnGateway,omitempty"`
47073
47074	// VpnGatewayInterface: The interface ID of the VPN gateway with which
47075	// this VPN tunnel is associated.
47076	VpnGatewayInterface int64 `json:"vpnGatewayInterface,omitempty"`
47077
47078	// ServerResponse contains the HTTP response code and headers from the
47079	// server.
47080	googleapi.ServerResponse `json:"-"`
47081
47082	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
47083	// to unconditionally include in API requests. By default, fields with
47084	// empty values are omitted from API requests. However, any non-pointer,
47085	// non-interface field appearing in ForceSendFields will be sent to the
47086	// server regardless of whether the field is empty or not. This may be
47087	// used to include empty fields in Patch requests.
47088	ForceSendFields []string `json:"-"`
47089
47090	// NullFields is a list of field names (e.g. "CreationTimestamp") to
47091	// include in API requests with the JSON null value. By default, fields
47092	// with empty values are omitted from API requests. However, any field
47093	// with an empty value appearing in NullFields will be sent to the
47094	// server as null. It is an error if a field in this list has a
47095	// non-empty value. This may be used to include null fields in Patch
47096	// requests.
47097	NullFields []string `json:"-"`
47098}
47099
47100func (s *VpnTunnel) MarshalJSON() ([]byte, error) {
47101	type NoMethod VpnTunnel
47102	raw := NoMethod(*s)
47103	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47104}
47105
47106type VpnTunnelAggregatedList struct {
47107	// Id: [Output Only] Unique identifier for the resource; defined by the
47108	// server.
47109	Id string `json:"id,omitempty"`
47110
47111	// Items: A list of VpnTunnelsScopedList resources.
47112	Items map[string]VpnTunnelsScopedList `json:"items,omitempty"`
47113
47114	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
47115	// VPN tunnels.
47116	Kind string `json:"kind,omitempty"`
47117
47118	// NextPageToken: [Output Only] This token allows you to get the next
47119	// page of results for list requests. If the number of results is larger
47120	// than maxResults, use the nextPageToken as a value for the query
47121	// parameter pageToken in the next list request. Subsequent list
47122	// requests will have their own nextPageToken to continue paging through
47123	// the results.
47124	NextPageToken string `json:"nextPageToken,omitempty"`
47125
47126	// SelfLink: [Output Only] Server-defined URL for this resource.
47127	SelfLink string `json:"selfLink,omitempty"`
47128
47129	// Warning: [Output Only] Informational warning message.
47130	Warning *VpnTunnelAggregatedListWarning `json:"warning,omitempty"`
47131
47132	// ServerResponse contains the HTTP response code and headers from the
47133	// server.
47134	googleapi.ServerResponse `json:"-"`
47135
47136	// ForceSendFields is a list of field names (e.g. "Id") to
47137	// unconditionally include in API requests. By default, fields with
47138	// empty values are omitted from API requests. However, any non-pointer,
47139	// non-interface field appearing in ForceSendFields will be sent to the
47140	// server regardless of whether the field is empty or not. This may be
47141	// used to include empty fields in Patch requests.
47142	ForceSendFields []string `json:"-"`
47143
47144	// NullFields is a list of field names (e.g. "Id") to include in API
47145	// requests with the JSON null value. By default, fields with empty
47146	// values are omitted from API requests. However, any field with an
47147	// empty value appearing in NullFields will be sent to the server as
47148	// null. It is an error if a field in this list has a non-empty value.
47149	// This may be used to include null fields in Patch requests.
47150	NullFields []string `json:"-"`
47151}
47152
47153func (s *VpnTunnelAggregatedList) MarshalJSON() ([]byte, error) {
47154	type NoMethod VpnTunnelAggregatedList
47155	raw := NoMethod(*s)
47156	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47157}
47158
47159// VpnTunnelAggregatedListWarning: [Output Only] Informational warning
47160// message.
47161type VpnTunnelAggregatedListWarning struct {
47162	// Code: [Output Only] A warning code, if applicable. For example,
47163	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
47164	// the response.
47165	//
47166	// Possible values:
47167	//   "CLEANUP_FAILED"
47168	//   "DEPRECATED_RESOURCE_USED"
47169	//   "DEPRECATED_TYPE_USED"
47170	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
47171	//   "EXPERIMENTAL_TYPE_USED"
47172	//   "EXTERNAL_API_WARNING"
47173	//   "FIELD_VALUE_OVERRIDEN"
47174	//   "INJECTED_KERNELS_DEPRECATED"
47175	//   "MISSING_TYPE_DEPENDENCY"
47176	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
47177	//   "NEXT_HOP_CANNOT_IP_FORWARD"
47178	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
47179	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
47180	//   "NEXT_HOP_NOT_RUNNING"
47181	//   "NOT_CRITICAL_ERROR"
47182	//   "NO_RESULTS_ON_PAGE"
47183	//   "REQUIRED_TOS_AGREEMENT"
47184	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
47185	//   "RESOURCE_NOT_DELETED"
47186	//   "SCHEMA_VALIDATION_IGNORED"
47187	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
47188	//   "UNDECLARED_PROPERTIES"
47189	//   "UNREACHABLE"
47190	Code string `json:"code,omitempty"`
47191
47192	// Data: [Output Only] Metadata about this warning in key: value format.
47193	// For example:
47194	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
47195	Data []*VpnTunnelAggregatedListWarningData `json:"data,omitempty"`
47196
47197	// Message: [Output Only] A human-readable description of the warning
47198	// code.
47199	Message string `json:"message,omitempty"`
47200
47201	// ForceSendFields is a list of field names (e.g. "Code") to
47202	// unconditionally include in API requests. By default, fields with
47203	// empty values are omitted from API requests. However, any non-pointer,
47204	// non-interface field appearing in ForceSendFields will be sent to the
47205	// server regardless of whether the field is empty or not. This may be
47206	// used to include empty fields in Patch requests.
47207	ForceSendFields []string `json:"-"`
47208
47209	// NullFields is a list of field names (e.g. "Code") to include in API
47210	// requests with the JSON null value. By default, fields with empty
47211	// values are omitted from API requests. However, any field with an
47212	// empty value appearing in NullFields will be sent to the server as
47213	// null. It is an error if a field in this list has a non-empty value.
47214	// This may be used to include null fields in Patch requests.
47215	NullFields []string `json:"-"`
47216}
47217
47218func (s *VpnTunnelAggregatedListWarning) MarshalJSON() ([]byte, error) {
47219	type NoMethod VpnTunnelAggregatedListWarning
47220	raw := NoMethod(*s)
47221	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47222}
47223
47224type VpnTunnelAggregatedListWarningData struct {
47225	// Key: [Output Only] A key that provides more detail on the warning
47226	// being returned. For example, for warnings where there are no results
47227	// in a list request for a particular zone, this key might be scope and
47228	// the key value might be the zone name. Other examples might be a key
47229	// indicating a deprecated resource and a suggested replacement, or a
47230	// warning about invalid network settings (for example, if an instance
47231	// attempts to perform IP forwarding but is not enabled for IP
47232	// forwarding).
47233	Key string `json:"key,omitempty"`
47234
47235	// Value: [Output Only] A warning data value corresponding to the key.
47236	Value string `json:"value,omitempty"`
47237
47238	// ForceSendFields is a list of field names (e.g. "Key") to
47239	// unconditionally include in API requests. By default, fields with
47240	// empty values are omitted from API requests. However, any non-pointer,
47241	// non-interface field appearing in ForceSendFields will be sent to the
47242	// server regardless of whether the field is empty or not. This may be
47243	// used to include empty fields in Patch requests.
47244	ForceSendFields []string `json:"-"`
47245
47246	// NullFields is a list of field names (e.g. "Key") to include in API
47247	// requests with the JSON null value. By default, fields with empty
47248	// values are omitted from API requests. However, any field with an
47249	// empty value appearing in NullFields will be sent to the server as
47250	// null. It is an error if a field in this list has a non-empty value.
47251	// This may be used to include null fields in Patch requests.
47252	NullFields []string `json:"-"`
47253}
47254
47255func (s *VpnTunnelAggregatedListWarningData) MarshalJSON() ([]byte, error) {
47256	type NoMethod VpnTunnelAggregatedListWarningData
47257	raw := NoMethod(*s)
47258	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47259}
47260
47261// VpnTunnelList: Contains a list of VpnTunnel resources.
47262type VpnTunnelList struct {
47263	// Id: [Output Only] Unique identifier for the resource; defined by the
47264	// server.
47265	Id string `json:"id,omitempty"`
47266
47267	// Items: A list of VpnTunnel resources.
47268	Items []*VpnTunnel `json:"items,omitempty"`
47269
47270	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
47271	// VPN tunnels.
47272	Kind string `json:"kind,omitempty"`
47273
47274	// NextPageToken: [Output Only] This token allows you to get the next
47275	// page of results for list requests. If the number of results is larger
47276	// than maxResults, use the nextPageToken as a value for the query
47277	// parameter pageToken in the next list request. Subsequent list
47278	// requests will have their own nextPageToken to continue paging through
47279	// the results.
47280	NextPageToken string `json:"nextPageToken,omitempty"`
47281
47282	// SelfLink: [Output Only] Server-defined URL for this resource.
47283	SelfLink string `json:"selfLink,omitempty"`
47284
47285	// Warning: [Output Only] Informational warning message.
47286	Warning *VpnTunnelListWarning `json:"warning,omitempty"`
47287
47288	// ServerResponse contains the HTTP response code and headers from the
47289	// server.
47290	googleapi.ServerResponse `json:"-"`
47291
47292	// ForceSendFields is a list of field names (e.g. "Id") to
47293	// unconditionally include in API requests. By default, fields with
47294	// empty values are omitted from API requests. However, any non-pointer,
47295	// non-interface field appearing in ForceSendFields will be sent to the
47296	// server regardless of whether the field is empty or not. This may be
47297	// used to include empty fields in Patch requests.
47298	ForceSendFields []string `json:"-"`
47299
47300	// NullFields is a list of field names (e.g. "Id") to include in API
47301	// requests with the JSON null value. By default, fields with empty
47302	// values are omitted from API requests. However, any field with an
47303	// empty value appearing in NullFields will be sent to the server as
47304	// null. It is an error if a field in this list has a non-empty value.
47305	// This may be used to include null fields in Patch requests.
47306	NullFields []string `json:"-"`
47307}
47308
47309func (s *VpnTunnelList) MarshalJSON() ([]byte, error) {
47310	type NoMethod VpnTunnelList
47311	raw := NoMethod(*s)
47312	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47313}
47314
47315// VpnTunnelListWarning: [Output Only] Informational warning message.
47316type VpnTunnelListWarning struct {
47317	// Code: [Output Only] A warning code, if applicable. For example,
47318	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
47319	// the response.
47320	//
47321	// Possible values:
47322	//   "CLEANUP_FAILED"
47323	//   "DEPRECATED_RESOURCE_USED"
47324	//   "DEPRECATED_TYPE_USED"
47325	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
47326	//   "EXPERIMENTAL_TYPE_USED"
47327	//   "EXTERNAL_API_WARNING"
47328	//   "FIELD_VALUE_OVERRIDEN"
47329	//   "INJECTED_KERNELS_DEPRECATED"
47330	//   "MISSING_TYPE_DEPENDENCY"
47331	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
47332	//   "NEXT_HOP_CANNOT_IP_FORWARD"
47333	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
47334	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
47335	//   "NEXT_HOP_NOT_RUNNING"
47336	//   "NOT_CRITICAL_ERROR"
47337	//   "NO_RESULTS_ON_PAGE"
47338	//   "REQUIRED_TOS_AGREEMENT"
47339	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
47340	//   "RESOURCE_NOT_DELETED"
47341	//   "SCHEMA_VALIDATION_IGNORED"
47342	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
47343	//   "UNDECLARED_PROPERTIES"
47344	//   "UNREACHABLE"
47345	Code string `json:"code,omitempty"`
47346
47347	// Data: [Output Only] Metadata about this warning in key: value format.
47348	// For example:
47349	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
47350	Data []*VpnTunnelListWarningData `json:"data,omitempty"`
47351
47352	// Message: [Output Only] A human-readable description of the warning
47353	// code.
47354	Message string `json:"message,omitempty"`
47355
47356	// ForceSendFields is a list of field names (e.g. "Code") to
47357	// unconditionally include in API requests. By default, fields with
47358	// empty values are omitted from API requests. However, any non-pointer,
47359	// non-interface field appearing in ForceSendFields will be sent to the
47360	// server regardless of whether the field is empty or not. This may be
47361	// used to include empty fields in Patch requests.
47362	ForceSendFields []string `json:"-"`
47363
47364	// NullFields is a list of field names (e.g. "Code") to include in API
47365	// requests with the JSON null value. By default, fields with empty
47366	// values are omitted from API requests. However, any field with an
47367	// empty value appearing in NullFields will be sent to the server as
47368	// null. It is an error if a field in this list has a non-empty value.
47369	// This may be used to include null fields in Patch requests.
47370	NullFields []string `json:"-"`
47371}
47372
47373func (s *VpnTunnelListWarning) MarshalJSON() ([]byte, error) {
47374	type NoMethod VpnTunnelListWarning
47375	raw := NoMethod(*s)
47376	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47377}
47378
47379type VpnTunnelListWarningData struct {
47380	// Key: [Output Only] A key that provides more detail on the warning
47381	// being returned. For example, for warnings where there are no results
47382	// in a list request for a particular zone, this key might be scope and
47383	// the key value might be the zone name. Other examples might be a key
47384	// indicating a deprecated resource and a suggested replacement, or a
47385	// warning about invalid network settings (for example, if an instance
47386	// attempts to perform IP forwarding but is not enabled for IP
47387	// forwarding).
47388	Key string `json:"key,omitempty"`
47389
47390	// Value: [Output Only] A warning data value corresponding to the key.
47391	Value string `json:"value,omitempty"`
47392
47393	// ForceSendFields is a list of field names (e.g. "Key") to
47394	// unconditionally include in API requests. By default, fields with
47395	// empty values are omitted from API requests. However, any non-pointer,
47396	// non-interface field appearing in ForceSendFields will be sent to the
47397	// server regardless of whether the field is empty or not. This may be
47398	// used to include empty fields in Patch requests.
47399	ForceSendFields []string `json:"-"`
47400
47401	// NullFields is a list of field names (e.g. "Key") to include in API
47402	// requests with the JSON null value. By default, fields with empty
47403	// values are omitted from API requests. However, any field with an
47404	// empty value appearing in NullFields will be sent to the server as
47405	// null. It is an error if a field in this list has a non-empty value.
47406	// This may be used to include null fields in Patch requests.
47407	NullFields []string `json:"-"`
47408}
47409
47410func (s *VpnTunnelListWarningData) MarshalJSON() ([]byte, error) {
47411	type NoMethod VpnTunnelListWarningData
47412	raw := NoMethod(*s)
47413	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47414}
47415
47416type VpnTunnelsScopedList struct {
47417	// VpnTunnels: A list of VPN tunnels contained in this scope.
47418	VpnTunnels []*VpnTunnel `json:"vpnTunnels,omitempty"`
47419
47420	// Warning: Informational warning which replaces the list of addresses
47421	// when the list is empty.
47422	Warning *VpnTunnelsScopedListWarning `json:"warning,omitempty"`
47423
47424	// ForceSendFields is a list of field names (e.g. "VpnTunnels") to
47425	// unconditionally include in API requests. By default, fields with
47426	// empty values are omitted from API requests. However, any non-pointer,
47427	// non-interface field appearing in ForceSendFields will be sent to the
47428	// server regardless of whether the field is empty or not. This may be
47429	// used to include empty fields in Patch requests.
47430	ForceSendFields []string `json:"-"`
47431
47432	// NullFields is a list of field names (e.g. "VpnTunnels") to include in
47433	// API requests with the JSON null value. By default, fields with empty
47434	// values are omitted from API requests. However, any field with an
47435	// empty value appearing in NullFields will be sent to the server as
47436	// null. It is an error if a field in this list has a non-empty value.
47437	// This may be used to include null fields in Patch requests.
47438	NullFields []string `json:"-"`
47439}
47440
47441func (s *VpnTunnelsScopedList) MarshalJSON() ([]byte, error) {
47442	type NoMethod VpnTunnelsScopedList
47443	raw := NoMethod(*s)
47444	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47445}
47446
47447// VpnTunnelsScopedListWarning: Informational warning which replaces the
47448// list of addresses when the list is empty.
47449type VpnTunnelsScopedListWarning struct {
47450	// Code: [Output Only] A warning code, if applicable. For example,
47451	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
47452	// the response.
47453	//
47454	// Possible values:
47455	//   "CLEANUP_FAILED"
47456	//   "DEPRECATED_RESOURCE_USED"
47457	//   "DEPRECATED_TYPE_USED"
47458	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
47459	//   "EXPERIMENTAL_TYPE_USED"
47460	//   "EXTERNAL_API_WARNING"
47461	//   "FIELD_VALUE_OVERRIDEN"
47462	//   "INJECTED_KERNELS_DEPRECATED"
47463	//   "MISSING_TYPE_DEPENDENCY"
47464	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
47465	//   "NEXT_HOP_CANNOT_IP_FORWARD"
47466	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
47467	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
47468	//   "NEXT_HOP_NOT_RUNNING"
47469	//   "NOT_CRITICAL_ERROR"
47470	//   "NO_RESULTS_ON_PAGE"
47471	//   "REQUIRED_TOS_AGREEMENT"
47472	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
47473	//   "RESOURCE_NOT_DELETED"
47474	//   "SCHEMA_VALIDATION_IGNORED"
47475	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
47476	//   "UNDECLARED_PROPERTIES"
47477	//   "UNREACHABLE"
47478	Code string `json:"code,omitempty"`
47479
47480	// Data: [Output Only] Metadata about this warning in key: value format.
47481	// For example:
47482	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
47483	Data []*VpnTunnelsScopedListWarningData `json:"data,omitempty"`
47484
47485	// Message: [Output Only] A human-readable description of the warning
47486	// code.
47487	Message string `json:"message,omitempty"`
47488
47489	// ForceSendFields is a list of field names (e.g. "Code") to
47490	// unconditionally include in API requests. By default, fields with
47491	// empty values are omitted from API requests. However, any non-pointer,
47492	// non-interface field appearing in ForceSendFields will be sent to the
47493	// server regardless of whether the field is empty or not. This may be
47494	// used to include empty fields in Patch requests.
47495	ForceSendFields []string `json:"-"`
47496
47497	// NullFields is a list of field names (e.g. "Code") to include in API
47498	// requests with the JSON null value. By default, fields with empty
47499	// values are omitted from API requests. However, any field with an
47500	// empty value appearing in NullFields will be sent to the server as
47501	// null. It is an error if a field in this list has a non-empty value.
47502	// This may be used to include null fields in Patch requests.
47503	NullFields []string `json:"-"`
47504}
47505
47506func (s *VpnTunnelsScopedListWarning) MarshalJSON() ([]byte, error) {
47507	type NoMethod VpnTunnelsScopedListWarning
47508	raw := NoMethod(*s)
47509	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47510}
47511
47512type VpnTunnelsScopedListWarningData struct {
47513	// Key: [Output Only] A key that provides more detail on the warning
47514	// being returned. For example, for warnings where there are no results
47515	// in a list request for a particular zone, this key might be scope and
47516	// the key value might be the zone name. Other examples might be a key
47517	// indicating a deprecated resource and a suggested replacement, or a
47518	// warning about invalid network settings (for example, if an instance
47519	// attempts to perform IP forwarding but is not enabled for IP
47520	// forwarding).
47521	Key string `json:"key,omitempty"`
47522
47523	// Value: [Output Only] A warning data value corresponding to the key.
47524	Value string `json:"value,omitempty"`
47525
47526	// ForceSendFields is a list of field names (e.g. "Key") to
47527	// unconditionally include in API requests. By default, fields with
47528	// empty values are omitted from API requests. However, any non-pointer,
47529	// non-interface field appearing in ForceSendFields will be sent to the
47530	// server regardless of whether the field is empty or not. This may be
47531	// used to include empty fields in Patch requests.
47532	ForceSendFields []string `json:"-"`
47533
47534	// NullFields is a list of field names (e.g. "Key") to include in API
47535	// requests with the JSON null value. By default, fields with empty
47536	// values are omitted from API requests. However, any field with an
47537	// empty value appearing in NullFields will be sent to the server as
47538	// null. It is an error if a field in this list has a non-empty value.
47539	// This may be used to include null fields in Patch requests.
47540	NullFields []string `json:"-"`
47541}
47542
47543func (s *VpnTunnelsScopedListWarningData) MarshalJSON() ([]byte, error) {
47544	type NoMethod VpnTunnelsScopedListWarningData
47545	raw := NoMethod(*s)
47546	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47547}
47548
47549type WafExpressionSet struct {
47550	// Aliases: A list of alternate IDs. The format should be: - E.g.
47551	// XSS-stable Generic suffix like "stable" is particularly useful if a
47552	// policy likes to avail newer set of expressions without having to
47553	// change the policy. A given alias name can't be used for more than one
47554	// entity set.
47555	Aliases []string `json:"aliases,omitempty"`
47556
47557	// Expressions: List of available expressions.
47558	Expressions []*WafExpressionSetExpression `json:"expressions,omitempty"`
47559
47560	// Id: Google specified expression set ID. The format should be: - E.g.
47561	// XSS-20170329
47562	Id string `json:"id,omitempty"`
47563
47564	// ForceSendFields is a list of field names (e.g. "Aliases") to
47565	// unconditionally include in API requests. By default, fields with
47566	// empty values are omitted from API requests. However, any non-pointer,
47567	// non-interface field appearing in ForceSendFields will be sent to the
47568	// server regardless of whether the field is empty or not. This may be
47569	// used to include empty fields in Patch requests.
47570	ForceSendFields []string `json:"-"`
47571
47572	// NullFields is a list of field names (e.g. "Aliases") to include in
47573	// API requests with the JSON null value. By default, fields with empty
47574	// values are omitted from API requests. However, any field with an
47575	// empty value appearing in NullFields will be sent to the server as
47576	// null. It is an error if a field in this list has a non-empty value.
47577	// This may be used to include null fields in Patch requests.
47578	NullFields []string `json:"-"`
47579}
47580
47581func (s *WafExpressionSet) MarshalJSON() ([]byte, error) {
47582	type NoMethod WafExpressionSet
47583	raw := NoMethod(*s)
47584	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47585}
47586
47587type WafExpressionSetExpression struct {
47588	// Id: Expression ID should uniquely identify the origin of the
47589	// expression. E.g. owasp-crs-v020901-id973337 identifies Owasp core
47590	// rule set version 2.9.1 rule id 973337. The ID could be used to
47591	// determine the individual attack definition that has been detected. It
47592	// could also be used to exclude it from the policy in case of false
47593	// positive.
47594	Id string `json:"id,omitempty"`
47595
47596	// ForceSendFields is a list of field names (e.g. "Id") to
47597	// unconditionally include in API requests. By default, fields with
47598	// empty values are omitted from API requests. However, any non-pointer,
47599	// non-interface field appearing in ForceSendFields will be sent to the
47600	// server regardless of whether the field is empty or not. This may be
47601	// used to include empty fields in Patch requests.
47602	ForceSendFields []string `json:"-"`
47603
47604	// NullFields is a list of field names (e.g. "Id") to include in API
47605	// requests with the JSON null value. By default, fields with empty
47606	// values are omitted from API requests. However, any field with an
47607	// empty value appearing in NullFields will be sent to the server as
47608	// null. It is an error if a field in this list has a non-empty value.
47609	// This may be used to include null fields in Patch requests.
47610	NullFields []string `json:"-"`
47611}
47612
47613func (s *WafExpressionSetExpression) MarshalJSON() ([]byte, error) {
47614	type NoMethod WafExpressionSetExpression
47615	raw := NoMethod(*s)
47616	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47617}
47618
47619// WeightedBackendService: In contrast to a single BackendService in
47620// HttpRouteAction to which all matching traffic is directed to,
47621// WeightedBackendService allows traffic to be split across multiple
47622// BackendServices. The volume of traffic for each BackendService is
47623// proportional to the weight specified in each WeightedBackendService
47624type WeightedBackendService struct {
47625	// BackendService: The full or partial URL to the default BackendService
47626	// resource. Before forwarding the request to backendService, the
47627	// loadbalancer applies any relevant headerActions specified as part of
47628	// this backendServiceWeight.
47629	BackendService string `json:"backendService,omitempty"`
47630
47631	// HeaderAction: Specifies changes to request and response headers that
47632	// need to take effect for the selected backendService.
47633	// headerAction specified here take effect before headerAction in the
47634	// enclosing HttpRouteRule, PathMatcher and UrlMap.
47635	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
47636
47637	// Weight: Specifies the fraction of traffic sent to backendService,
47638	// computed as weight / (sum of all weightedBackendService weights in
47639	// routeAction) .
47640	// The selection of a backend service is determined only for new
47641	// traffic. Once a user's request has been directed to a backendService,
47642	// subsequent requests will be sent to the same backendService as
47643	// determined by the BackendService's session affinity policy.
47644	// The value must be between 0 and 1000
47645	Weight int64 `json:"weight,omitempty"`
47646
47647	// ForceSendFields is a list of field names (e.g. "BackendService") to
47648	// unconditionally include in API requests. By default, fields with
47649	// empty values are omitted from API requests. However, any non-pointer,
47650	// non-interface field appearing in ForceSendFields will be sent to the
47651	// server regardless of whether the field is empty or not. This may be
47652	// used to include empty fields in Patch requests.
47653	ForceSendFields []string `json:"-"`
47654
47655	// NullFields is a list of field names (e.g. "BackendService") to
47656	// include in API requests with the JSON null value. By default, fields
47657	// with empty values are omitted from API requests. However, any field
47658	// with an empty value appearing in NullFields will be sent to the
47659	// server as null. It is an error if a field in this list has a
47660	// non-empty value. This may be used to include null fields in Patch
47661	// requests.
47662	NullFields []string `json:"-"`
47663}
47664
47665func (s *WeightedBackendService) MarshalJSON() ([]byte, error) {
47666	type NoMethod WeightedBackendService
47667	raw := NoMethod(*s)
47668	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47669}
47670
47671type XpnHostList struct {
47672	// Id: [Output Only] Unique identifier for the resource; defined by the
47673	// server.
47674	Id string `json:"id,omitempty"`
47675
47676	// Items: [Output Only] A list of shared VPC host project URLs.
47677	Items []*Project `json:"items,omitempty"`
47678
47679	// Kind: [Output Only] Type of resource. Always compute#xpnHostList for
47680	// lists of shared VPC hosts.
47681	Kind string `json:"kind,omitempty"`
47682
47683	// NextPageToken: [Output Only] This token allows you to get the next
47684	// page of results for list requests. If the number of results is larger
47685	// than maxResults, use the nextPageToken as a value for the query
47686	// parameter pageToken in the next list request. Subsequent list
47687	// requests will have their own nextPageToken to continue paging through
47688	// the results.
47689	NextPageToken string `json:"nextPageToken,omitempty"`
47690
47691	// SelfLink: [Output Only] Server-defined URL for this resource.
47692	SelfLink string `json:"selfLink,omitempty"`
47693
47694	// Warning: [Output Only] Informational warning message.
47695	Warning *XpnHostListWarning `json:"warning,omitempty"`
47696
47697	// ServerResponse contains the HTTP response code and headers from the
47698	// server.
47699	googleapi.ServerResponse `json:"-"`
47700
47701	// ForceSendFields is a list of field names (e.g. "Id") to
47702	// unconditionally include in API requests. By default, fields with
47703	// empty values are omitted from API requests. However, any non-pointer,
47704	// non-interface field appearing in ForceSendFields will be sent to the
47705	// server regardless of whether the field is empty or not. This may be
47706	// used to include empty fields in Patch requests.
47707	ForceSendFields []string `json:"-"`
47708
47709	// NullFields is a list of field names (e.g. "Id") to include in API
47710	// requests with the JSON null value. By default, fields with empty
47711	// values are omitted from API requests. However, any field with an
47712	// empty value appearing in NullFields will be sent to the server as
47713	// null. It is an error if a field in this list has a non-empty value.
47714	// This may be used to include null fields in Patch requests.
47715	NullFields []string `json:"-"`
47716}
47717
47718func (s *XpnHostList) MarshalJSON() ([]byte, error) {
47719	type NoMethod XpnHostList
47720	raw := NoMethod(*s)
47721	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47722}
47723
47724// XpnHostListWarning: [Output Only] Informational warning message.
47725type XpnHostListWarning struct {
47726	// Code: [Output Only] A warning code, if applicable. For example,
47727	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
47728	// the response.
47729	//
47730	// Possible values:
47731	//   "CLEANUP_FAILED"
47732	//   "DEPRECATED_RESOURCE_USED"
47733	//   "DEPRECATED_TYPE_USED"
47734	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
47735	//   "EXPERIMENTAL_TYPE_USED"
47736	//   "EXTERNAL_API_WARNING"
47737	//   "FIELD_VALUE_OVERRIDEN"
47738	//   "INJECTED_KERNELS_DEPRECATED"
47739	//   "MISSING_TYPE_DEPENDENCY"
47740	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
47741	//   "NEXT_HOP_CANNOT_IP_FORWARD"
47742	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
47743	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
47744	//   "NEXT_HOP_NOT_RUNNING"
47745	//   "NOT_CRITICAL_ERROR"
47746	//   "NO_RESULTS_ON_PAGE"
47747	//   "REQUIRED_TOS_AGREEMENT"
47748	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
47749	//   "RESOURCE_NOT_DELETED"
47750	//   "SCHEMA_VALIDATION_IGNORED"
47751	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
47752	//   "UNDECLARED_PROPERTIES"
47753	//   "UNREACHABLE"
47754	Code string `json:"code,omitempty"`
47755
47756	// Data: [Output Only] Metadata about this warning in key: value format.
47757	// For example:
47758	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
47759	Data []*XpnHostListWarningData `json:"data,omitempty"`
47760
47761	// Message: [Output Only] A human-readable description of the warning
47762	// code.
47763	Message string `json:"message,omitempty"`
47764
47765	// ForceSendFields is a list of field names (e.g. "Code") to
47766	// unconditionally include in API requests. By default, fields with
47767	// empty values are omitted from API requests. However, any non-pointer,
47768	// non-interface field appearing in ForceSendFields will be sent to the
47769	// server regardless of whether the field is empty or not. This may be
47770	// used to include empty fields in Patch requests.
47771	ForceSendFields []string `json:"-"`
47772
47773	// NullFields is a list of field names (e.g. "Code") to include in API
47774	// requests with the JSON null value. By default, fields with empty
47775	// values are omitted from API requests. However, any field with an
47776	// empty value appearing in NullFields will be sent to the server as
47777	// null. It is an error if a field in this list has a non-empty value.
47778	// This may be used to include null fields in Patch requests.
47779	NullFields []string `json:"-"`
47780}
47781
47782func (s *XpnHostListWarning) MarshalJSON() ([]byte, error) {
47783	type NoMethod XpnHostListWarning
47784	raw := NoMethod(*s)
47785	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47786}
47787
47788type XpnHostListWarningData struct {
47789	// Key: [Output Only] A key that provides more detail on the warning
47790	// being returned. For example, for warnings where there are no results
47791	// in a list request for a particular zone, this key might be scope and
47792	// the key value might be the zone name. Other examples might be a key
47793	// indicating a deprecated resource and a suggested replacement, or a
47794	// warning about invalid network settings (for example, if an instance
47795	// attempts to perform IP forwarding but is not enabled for IP
47796	// forwarding).
47797	Key string `json:"key,omitempty"`
47798
47799	// Value: [Output Only] A warning data value corresponding to the key.
47800	Value string `json:"value,omitempty"`
47801
47802	// ForceSendFields is a list of field names (e.g. "Key") to
47803	// unconditionally include in API requests. By default, fields with
47804	// empty values are omitted from API requests. However, any non-pointer,
47805	// non-interface field appearing in ForceSendFields will be sent to the
47806	// server regardless of whether the field is empty or not. This may be
47807	// used to include empty fields in Patch requests.
47808	ForceSendFields []string `json:"-"`
47809
47810	// NullFields is a list of field names (e.g. "Key") to include in API
47811	// requests with the JSON null value. By default, fields with empty
47812	// values are omitted from API requests. However, any field with an
47813	// empty value appearing in NullFields will be sent to the server as
47814	// null. It is an error if a field in this list has a non-empty value.
47815	// This may be used to include null fields in Patch requests.
47816	NullFields []string `json:"-"`
47817}
47818
47819func (s *XpnHostListWarningData) MarshalJSON() ([]byte, error) {
47820	type NoMethod XpnHostListWarningData
47821	raw := NoMethod(*s)
47822	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47823}
47824
47825// XpnResourceId: Service resource (a.k.a service project) ID.
47826type XpnResourceId struct {
47827	// Id: The ID of the service resource. In the case of projects, this
47828	// field supports project id (e.g., my-project-123) and project number
47829	// (e.g. 12345678).
47830	Id string `json:"id,omitempty"`
47831
47832	// Type: The type of the service resource.
47833	//
47834	// Possible values:
47835	//   "PROJECT"
47836	//   "XPN_RESOURCE_TYPE_UNSPECIFIED"
47837	Type string `json:"type,omitempty"`
47838
47839	// ForceSendFields is a list of field names (e.g. "Id") to
47840	// unconditionally include in API requests. By default, fields with
47841	// empty values are omitted from API requests. However, any non-pointer,
47842	// non-interface field appearing in ForceSendFields will be sent to the
47843	// server regardless of whether the field is empty or not. This may be
47844	// used to include empty fields in Patch requests.
47845	ForceSendFields []string `json:"-"`
47846
47847	// NullFields is a list of field names (e.g. "Id") to include in API
47848	// requests with the JSON null value. By default, fields with empty
47849	// values are omitted from API requests. However, any field with an
47850	// empty value appearing in NullFields will be sent to the server as
47851	// null. It is an error if a field in this list has a non-empty value.
47852	// This may be used to include null fields in Patch requests.
47853	NullFields []string `json:"-"`
47854}
47855
47856func (s *XpnResourceId) MarshalJSON() ([]byte, error) {
47857	type NoMethod XpnResourceId
47858	raw := NoMethod(*s)
47859	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47860}
47861
47862// Zone: Represents a Zone resource.
47863//
47864// A zone is a deployment area. These deployment areas are subsets of a
47865// region. For example the zone us-east1-a is located in the us-east1
47866// region. For more information, read Regions and Zones. (==
47867// resource_for {$api_version}.zones ==)
47868type Zone struct {
47869	// AvailableCpuPlatforms: [Output Only] Available cpu/platform
47870	// selections for the zone.
47871	AvailableCpuPlatforms []string `json:"availableCpuPlatforms,omitempty"`
47872
47873	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
47874	// format.
47875	CreationTimestamp string `json:"creationTimestamp,omitempty"`
47876
47877	// Deprecated: [Output Only] The deprecation status associated with this
47878	// zone.
47879	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
47880
47881	// Description: [Output Only] Textual description of the resource.
47882	Description string `json:"description,omitempty"`
47883
47884	// Id: [Output Only] The unique identifier for the resource. This
47885	// identifier is defined by the server.
47886	Id uint64 `json:"id,omitempty,string"`
47887
47888	// Kind: [Output Only] Type of the resource. Always compute#zone for
47889	// zones.
47890	Kind string `json:"kind,omitempty"`
47891
47892	// Name: [Output Only] Name of the resource.
47893	Name string `json:"name,omitempty"`
47894
47895	// Region: [Output Only] Full URL reference to the region which hosts
47896	// the zone.
47897	Region string `json:"region,omitempty"`
47898
47899	// SelfLink: [Output Only] Server-defined URL for the resource.
47900	SelfLink string `json:"selfLink,omitempty"`
47901
47902	// Status: [Output Only] Status of the zone, either UP or DOWN.
47903	//
47904	// Possible values:
47905	//   "DOWN"
47906	//   "UP"
47907	Status string `json:"status,omitempty"`
47908
47909	// ServerResponse contains the HTTP response code and headers from the
47910	// server.
47911	googleapi.ServerResponse `json:"-"`
47912
47913	// ForceSendFields is a list of field names (e.g.
47914	// "AvailableCpuPlatforms") to unconditionally include in API requests.
47915	// By default, fields with empty values are omitted from API requests.
47916	// However, any non-pointer, non-interface field appearing in
47917	// ForceSendFields will be sent to the server regardless of whether the
47918	// field is empty or not. This may be used to include empty fields in
47919	// Patch requests.
47920	ForceSendFields []string `json:"-"`
47921
47922	// NullFields is a list of field names (e.g. "AvailableCpuPlatforms") to
47923	// include in API requests with the JSON null value. By default, fields
47924	// with empty values are omitted from API requests. However, any field
47925	// with an empty value appearing in NullFields will be sent to the
47926	// server as null. It is an error if a field in this list has a
47927	// non-empty value. This may be used to include null fields in Patch
47928	// requests.
47929	NullFields []string `json:"-"`
47930}
47931
47932func (s *Zone) MarshalJSON() ([]byte, error) {
47933	type NoMethod Zone
47934	raw := NoMethod(*s)
47935	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47936}
47937
47938// ZoneList: Contains a list of zone resources.
47939type ZoneList struct {
47940	// Id: [Output Only] Unique identifier for the resource; defined by the
47941	// server.
47942	Id string `json:"id,omitempty"`
47943
47944	// Items: A list of Zone resources.
47945	Items []*Zone `json:"items,omitempty"`
47946
47947	// Kind: Type of resource.
47948	Kind string `json:"kind,omitempty"`
47949
47950	// NextPageToken: [Output Only] This token allows you to get the next
47951	// page of results for list requests. If the number of results is larger
47952	// than maxResults, use the nextPageToken as a value for the query
47953	// parameter pageToken in the next list request. Subsequent list
47954	// requests will have their own nextPageToken to continue paging through
47955	// the results.
47956	NextPageToken string `json:"nextPageToken,omitempty"`
47957
47958	// SelfLink: [Output Only] Server-defined URL for this resource.
47959	SelfLink string `json:"selfLink,omitempty"`
47960
47961	// Warning: [Output Only] Informational warning message.
47962	Warning *ZoneListWarning `json:"warning,omitempty"`
47963
47964	// ServerResponse contains the HTTP response code and headers from the
47965	// server.
47966	googleapi.ServerResponse `json:"-"`
47967
47968	// ForceSendFields is a list of field names (e.g. "Id") to
47969	// unconditionally include in API requests. By default, fields with
47970	// empty values are omitted from API requests. However, any non-pointer,
47971	// non-interface field appearing in ForceSendFields will be sent to the
47972	// server regardless of whether the field is empty or not. This may be
47973	// used to include empty fields in Patch requests.
47974	ForceSendFields []string `json:"-"`
47975
47976	// NullFields is a list of field names (e.g. "Id") to include in API
47977	// requests with the JSON null value. By default, fields with empty
47978	// values are omitted from API requests. However, any field with an
47979	// empty value appearing in NullFields will be sent to the server as
47980	// null. It is an error if a field in this list has a non-empty value.
47981	// This may be used to include null fields in Patch requests.
47982	NullFields []string `json:"-"`
47983}
47984
47985func (s *ZoneList) MarshalJSON() ([]byte, error) {
47986	type NoMethod ZoneList
47987	raw := NoMethod(*s)
47988	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47989}
47990
47991// ZoneListWarning: [Output Only] Informational warning message.
47992type ZoneListWarning struct {
47993	// Code: [Output Only] A warning code, if applicable. For example,
47994	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
47995	// the response.
47996	//
47997	// Possible values:
47998	//   "CLEANUP_FAILED"
47999	//   "DEPRECATED_RESOURCE_USED"
48000	//   "DEPRECATED_TYPE_USED"
48001	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
48002	//   "EXPERIMENTAL_TYPE_USED"
48003	//   "EXTERNAL_API_WARNING"
48004	//   "FIELD_VALUE_OVERRIDEN"
48005	//   "INJECTED_KERNELS_DEPRECATED"
48006	//   "MISSING_TYPE_DEPENDENCY"
48007	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
48008	//   "NEXT_HOP_CANNOT_IP_FORWARD"
48009	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
48010	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
48011	//   "NEXT_HOP_NOT_RUNNING"
48012	//   "NOT_CRITICAL_ERROR"
48013	//   "NO_RESULTS_ON_PAGE"
48014	//   "REQUIRED_TOS_AGREEMENT"
48015	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
48016	//   "RESOURCE_NOT_DELETED"
48017	//   "SCHEMA_VALIDATION_IGNORED"
48018	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
48019	//   "UNDECLARED_PROPERTIES"
48020	//   "UNREACHABLE"
48021	Code string `json:"code,omitempty"`
48022
48023	// Data: [Output Only] Metadata about this warning in key: value format.
48024	// For example:
48025	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
48026	Data []*ZoneListWarningData `json:"data,omitempty"`
48027
48028	// Message: [Output Only] A human-readable description of the warning
48029	// code.
48030	Message string `json:"message,omitempty"`
48031
48032	// ForceSendFields is a list of field names (e.g. "Code") to
48033	// unconditionally include in API requests. By default, fields with
48034	// empty values are omitted from API requests. However, any non-pointer,
48035	// non-interface field appearing in ForceSendFields will be sent to the
48036	// server regardless of whether the field is empty or not. This may be
48037	// used to include empty fields in Patch requests.
48038	ForceSendFields []string `json:"-"`
48039
48040	// NullFields is a list of field names (e.g. "Code") to include in API
48041	// requests with the JSON null value. By default, fields with empty
48042	// values are omitted from API requests. However, any field with an
48043	// empty value appearing in NullFields will be sent to the server as
48044	// null. It is an error if a field in this list has a non-empty value.
48045	// This may be used to include null fields in Patch requests.
48046	NullFields []string `json:"-"`
48047}
48048
48049func (s *ZoneListWarning) MarshalJSON() ([]byte, error) {
48050	type NoMethod ZoneListWarning
48051	raw := NoMethod(*s)
48052	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48053}
48054
48055type ZoneListWarningData struct {
48056	// Key: [Output Only] A key that provides more detail on the warning
48057	// being returned. For example, for warnings where there are no results
48058	// in a list request for a particular zone, this key might be scope and
48059	// the key value might be the zone name. Other examples might be a key
48060	// indicating a deprecated resource and a suggested replacement, or a
48061	// warning about invalid network settings (for example, if an instance
48062	// attempts to perform IP forwarding but is not enabled for IP
48063	// forwarding).
48064	Key string `json:"key,omitempty"`
48065
48066	// Value: [Output Only] A warning data value corresponding to the key.
48067	Value string `json:"value,omitempty"`
48068
48069	// ForceSendFields is a list of field names (e.g. "Key") to
48070	// unconditionally include in API requests. By default, fields with
48071	// empty values are omitted from API requests. However, any non-pointer,
48072	// non-interface field appearing in ForceSendFields will be sent to the
48073	// server regardless of whether the field is empty or not. This may be
48074	// used to include empty fields in Patch requests.
48075	ForceSendFields []string `json:"-"`
48076
48077	// NullFields is a list of field names (e.g. "Key") to include in API
48078	// requests with the JSON null value. By default, fields with empty
48079	// values are omitted from API requests. However, any field with an
48080	// empty value appearing in NullFields will be sent to the server as
48081	// null. It is an error if a field in this list has a non-empty value.
48082	// This may be used to include null fields in Patch requests.
48083	NullFields []string `json:"-"`
48084}
48085
48086func (s *ZoneListWarningData) MarshalJSON() ([]byte, error) {
48087	type NoMethod ZoneListWarningData
48088	raw := NoMethod(*s)
48089	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48090}
48091
48092type ZoneSetLabelsRequest struct {
48093	// LabelFingerprint: The fingerprint of the previous set of labels for
48094	// this resource, used to detect conflicts. The fingerprint is initially
48095	// generated by Compute Engine and changes after every request to modify
48096	// or update labels. You must always provide an up-to-date fingerprint
48097	// hash in order to update or change labels. Make a get() request to the
48098	// resource to get the latest fingerprint.
48099	LabelFingerprint string `json:"labelFingerprint,omitempty"`
48100
48101	// Labels: The labels to set for this resource.
48102	Labels map[string]string `json:"labels,omitempty"`
48103
48104	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
48105	// unconditionally include in API requests. By default, fields with
48106	// empty values are omitted from API requests. However, any non-pointer,
48107	// non-interface field appearing in ForceSendFields will be sent to the
48108	// server regardless of whether the field is empty or not. This may be
48109	// used to include empty fields in Patch requests.
48110	ForceSendFields []string `json:"-"`
48111
48112	// NullFields is a list of field names (e.g. "LabelFingerprint") to
48113	// include in API requests with the JSON null value. By default, fields
48114	// with empty values are omitted from API requests. However, any field
48115	// with an empty value appearing in NullFields will be sent to the
48116	// server as null. It is an error if a field in this list has a
48117	// non-empty value. This may be used to include null fields in Patch
48118	// requests.
48119	NullFields []string `json:"-"`
48120}
48121
48122func (s *ZoneSetLabelsRequest) MarshalJSON() ([]byte, error) {
48123	type NoMethod ZoneSetLabelsRequest
48124	raw := NoMethod(*s)
48125	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48126}
48127
48128type ZoneSetPolicyRequest struct {
48129	// Bindings: Flatten Policy to create a backwacd compatible wire-format.
48130	// Deprecated. Use 'policy' to specify bindings.
48131	Bindings []*Binding `json:"bindings,omitempty"`
48132
48133	// Etag: Flatten Policy to create a backward compatible wire-format.
48134	// Deprecated. Use 'policy' to specify the etag.
48135	Etag string `json:"etag,omitempty"`
48136
48137	// Policy: REQUIRED: The complete policy to be applied to the
48138	// 'resource'. The size of the policy is limited to a few 10s of KB. An
48139	// empty policy is in general a valid policy but certain services (like
48140	// Projects) might reject them.
48141	Policy *Policy `json:"policy,omitempty"`
48142
48143	// ForceSendFields is a list of field names (e.g. "Bindings") to
48144	// unconditionally include in API requests. By default, fields with
48145	// empty values are omitted from API requests. However, any non-pointer,
48146	// non-interface field appearing in ForceSendFields will be sent to the
48147	// server regardless of whether the field is empty or not. This may be
48148	// used to include empty fields in Patch requests.
48149	ForceSendFields []string `json:"-"`
48150
48151	// NullFields is a list of field names (e.g. "Bindings") to include in
48152	// API requests with the JSON null value. By default, fields with empty
48153	// values are omitted from API requests. However, any field with an
48154	// empty value appearing in NullFields will be sent to the server as
48155	// null. It is an error if a field in this list has a non-empty value.
48156	// This may be used to include null fields in Patch requests.
48157	NullFields []string `json:"-"`
48158}
48159
48160func (s *ZoneSetPolicyRequest) MarshalJSON() ([]byte, error) {
48161	type NoMethod ZoneSetPolicyRequest
48162	raw := NoMethod(*s)
48163	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48164}
48165
48166// method id "compute.acceleratorTypes.aggregatedList":
48167
48168type AcceleratorTypesAggregatedListCall struct {
48169	s            *Service
48170	project      string
48171	urlParams_   gensupport.URLParams
48172	ifNoneMatch_ string
48173	ctx_         context.Context
48174	header_      http.Header
48175}
48176
48177// AggregatedList: Retrieves an aggregated list of accelerator types.
48178func (r *AcceleratorTypesService) AggregatedList(project string) *AcceleratorTypesAggregatedListCall {
48179	c := &AcceleratorTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48180	c.project = project
48181	return c
48182}
48183
48184// Filter sets the optional parameter "filter": A filter expression that
48185// filters resources listed in the response. The expression must specify
48186// the field name, a comparison operator, and the value that you want to
48187// use for filtering. The value must be a string, a number, or a
48188// boolean. The comparison operator must be either =, !=, >, or <.
48189//
48190// For example, if you are filtering Compute Engine instances, you can
48191// exclude instances named example-instance by specifying name !=
48192// example-instance.
48193//
48194// You can also filter nested fields. For example, you could specify
48195// scheduling.automaticRestart = false to include instances only if they
48196// are not scheduled for automatic restarts. You can use filtering on
48197// nested fields to filter based on resource labels.
48198//
48199// To filter on multiple expressions, provide each separate expression
48200// within parentheses. For example, (scheduling.automaticRestart = true)
48201// (cpuPlatform = "Intel Skylake"). By default, each expression is an
48202// AND expression. However, you can include AND and OR expressions
48203// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
48204// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
48205// true).
48206func (c *AcceleratorTypesAggregatedListCall) Filter(filter string) *AcceleratorTypesAggregatedListCall {
48207	c.urlParams_.Set("filter", filter)
48208	return c
48209}
48210
48211// IncludeAllScopes sets the optional parameter "includeAllScopes":
48212// Indicates whether every visible scope for each scope type (zone,
48213// region, global) should be included in the response. For new resource
48214// types added after this field, the flag has no effect as new resource
48215// types will always include every visible scope for each scope type in
48216// response. For resource types which predate this field, if this flag
48217// is omitted or false, only scopes of the scope types where the
48218// resource type is expected to be found will be included.
48219func (c *AcceleratorTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AcceleratorTypesAggregatedListCall {
48220	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
48221	return c
48222}
48223
48224// MaxResults sets the optional parameter "maxResults": The maximum
48225// number of results per page that should be returned. If the number of
48226// available results is larger than maxResults, Compute Engine returns a
48227// nextPageToken that can be used to get the next page of results in
48228// subsequent list requests. Acceptable values are 0 to 500, inclusive.
48229// (Default: 500)
48230func (c *AcceleratorTypesAggregatedListCall) MaxResults(maxResults int64) *AcceleratorTypesAggregatedListCall {
48231	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
48232	return c
48233}
48234
48235// OrderBy sets the optional parameter "orderBy": Sorts list results by
48236// a certain order. By default, results are returned in alphanumerical
48237// order based on the resource name.
48238//
48239// You can also sort results in descending order based on the creation
48240// timestamp using orderBy="creationTimestamp desc". This sorts results
48241// based on the creationTimestamp field in reverse chronological order
48242// (newest result first). Use this to sort resources like operations so
48243// that the newest operation is returned first.
48244//
48245// Currently, only sorting by name or creationTimestamp desc is
48246// supported.
48247func (c *AcceleratorTypesAggregatedListCall) OrderBy(orderBy string) *AcceleratorTypesAggregatedListCall {
48248	c.urlParams_.Set("orderBy", orderBy)
48249	return c
48250}
48251
48252// PageToken sets the optional parameter "pageToken": Specifies a page
48253// token to use. Set pageToken to the nextPageToken returned by a
48254// previous list request to get the next page of results.
48255func (c *AcceleratorTypesAggregatedListCall) PageToken(pageToken string) *AcceleratorTypesAggregatedListCall {
48256	c.urlParams_.Set("pageToken", pageToken)
48257	return c
48258}
48259
48260// Fields allows partial responses to be retrieved. See
48261// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48262// for more information.
48263func (c *AcceleratorTypesAggregatedListCall) Fields(s ...googleapi.Field) *AcceleratorTypesAggregatedListCall {
48264	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48265	return c
48266}
48267
48268// IfNoneMatch sets the optional parameter which makes the operation
48269// fail if the object's ETag matches the given value. This is useful for
48270// getting updates only after the object has changed since the last
48271// request. Use googleapi.IsNotModified to check whether the response
48272// error from Do is the result of In-None-Match.
48273func (c *AcceleratorTypesAggregatedListCall) IfNoneMatch(entityTag string) *AcceleratorTypesAggregatedListCall {
48274	c.ifNoneMatch_ = entityTag
48275	return c
48276}
48277
48278// Context sets the context to be used in this call's Do method. Any
48279// pending HTTP request will be aborted if the provided context is
48280// canceled.
48281func (c *AcceleratorTypesAggregatedListCall) Context(ctx context.Context) *AcceleratorTypesAggregatedListCall {
48282	c.ctx_ = ctx
48283	return c
48284}
48285
48286// Header returns an http.Header that can be modified by the caller to
48287// add HTTP headers to the request.
48288func (c *AcceleratorTypesAggregatedListCall) Header() http.Header {
48289	if c.header_ == nil {
48290		c.header_ = make(http.Header)
48291	}
48292	return c.header_
48293}
48294
48295func (c *AcceleratorTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
48296	reqHeaders := make(http.Header)
48297	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
48298	for k, v := range c.header_ {
48299		reqHeaders[k] = v
48300	}
48301	reqHeaders.Set("User-Agent", c.s.userAgent())
48302	if c.ifNoneMatch_ != "" {
48303		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
48304	}
48305	var body io.Reader = nil
48306	c.urlParams_.Set("alt", alt)
48307	c.urlParams_.Set("prettyPrint", "false")
48308	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/acceleratorTypes")
48309	urls += "?" + c.urlParams_.Encode()
48310	req, err := http.NewRequest("GET", urls, body)
48311	if err != nil {
48312		return nil, err
48313	}
48314	req.Header = reqHeaders
48315	googleapi.Expand(req.URL, map[string]string{
48316		"project": c.project,
48317	})
48318	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48319}
48320
48321// Do executes the "compute.acceleratorTypes.aggregatedList" call.
48322// Exactly one of *AcceleratorTypeAggregatedList or error will be
48323// non-nil. Any non-2xx status code is an error. Response headers are in
48324// either *AcceleratorTypeAggregatedList.ServerResponse.Header or (if a
48325// response was returned at all) in error.(*googleapi.Error).Header. Use
48326// googleapi.IsNotModified to check whether the returned error was
48327// because http.StatusNotModified was returned.
48328func (c *AcceleratorTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*AcceleratorTypeAggregatedList, error) {
48329	gensupport.SetOptions(c.urlParams_, opts...)
48330	res, err := c.doRequest("json")
48331	if res != nil && res.StatusCode == http.StatusNotModified {
48332		if res.Body != nil {
48333			res.Body.Close()
48334		}
48335		return nil, &googleapi.Error{
48336			Code:   res.StatusCode,
48337			Header: res.Header,
48338		}
48339	}
48340	if err != nil {
48341		return nil, err
48342	}
48343	defer googleapi.CloseBody(res)
48344	if err := googleapi.CheckResponse(res); err != nil {
48345		return nil, err
48346	}
48347	ret := &AcceleratorTypeAggregatedList{
48348		ServerResponse: googleapi.ServerResponse{
48349			Header:         res.Header,
48350			HTTPStatusCode: res.StatusCode,
48351		},
48352	}
48353	target := &ret
48354	if err := gensupport.DecodeResponse(target, res); err != nil {
48355		return nil, err
48356	}
48357	return ret, nil
48358	// {
48359	//   "description": "Retrieves an aggregated list of accelerator types.",
48360	//   "httpMethod": "GET",
48361	//   "id": "compute.acceleratorTypes.aggregatedList",
48362	//   "parameterOrder": [
48363	//     "project"
48364	//   ],
48365	//   "parameters": {
48366	//     "filter": {
48367	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
48368	//       "location": "query",
48369	//       "type": "string"
48370	//     },
48371	//     "includeAllScopes": {
48372	//       "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.",
48373	//       "location": "query",
48374	//       "type": "boolean"
48375	//     },
48376	//     "maxResults": {
48377	//       "default": "500",
48378	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
48379	//       "format": "uint32",
48380	//       "location": "query",
48381	//       "minimum": "0",
48382	//       "type": "integer"
48383	//     },
48384	//     "orderBy": {
48385	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
48386	//       "location": "query",
48387	//       "type": "string"
48388	//     },
48389	//     "pageToken": {
48390	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
48391	//       "location": "query",
48392	//       "type": "string"
48393	//     },
48394	//     "project": {
48395	//       "description": "Project ID for this request.",
48396	//       "location": "path",
48397	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48398	//       "required": true,
48399	//       "type": "string"
48400	//     }
48401	//   },
48402	//   "path": "{project}/aggregated/acceleratorTypes",
48403	//   "response": {
48404	//     "$ref": "AcceleratorTypeAggregatedList"
48405	//   },
48406	//   "scopes": [
48407	//     "https://www.googleapis.com/auth/cloud-platform",
48408	//     "https://www.googleapis.com/auth/compute",
48409	//     "https://www.googleapis.com/auth/compute.readonly"
48410	//   ]
48411	// }
48412
48413}
48414
48415// Pages invokes f for each page of results.
48416// A non-nil error returned from f will halt the iteration.
48417// The provided context supersedes any context provided to the Context method.
48418func (c *AcceleratorTypesAggregatedListCall) Pages(ctx context.Context, f func(*AcceleratorTypeAggregatedList) error) error {
48419	c.ctx_ = ctx
48420	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
48421	for {
48422		x, err := c.Do()
48423		if err != nil {
48424			return err
48425		}
48426		if err := f(x); err != nil {
48427			return err
48428		}
48429		if x.NextPageToken == "" {
48430			return nil
48431		}
48432		c.PageToken(x.NextPageToken)
48433	}
48434}
48435
48436// method id "compute.acceleratorTypes.get":
48437
48438type AcceleratorTypesGetCall struct {
48439	s               *Service
48440	project         string
48441	zone            string
48442	acceleratorType string
48443	urlParams_      gensupport.URLParams
48444	ifNoneMatch_    string
48445	ctx_            context.Context
48446	header_         http.Header
48447}
48448
48449// Get: Returns the specified accelerator type.
48450func (r *AcceleratorTypesService) Get(project string, zone string, acceleratorType string) *AcceleratorTypesGetCall {
48451	c := &AcceleratorTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48452	c.project = project
48453	c.zone = zone
48454	c.acceleratorType = acceleratorType
48455	return c
48456}
48457
48458// Fields allows partial responses to be retrieved. See
48459// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48460// for more information.
48461func (c *AcceleratorTypesGetCall) Fields(s ...googleapi.Field) *AcceleratorTypesGetCall {
48462	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48463	return c
48464}
48465
48466// IfNoneMatch sets the optional parameter which makes the operation
48467// fail if the object's ETag matches the given value. This is useful for
48468// getting updates only after the object has changed since the last
48469// request. Use googleapi.IsNotModified to check whether the response
48470// error from Do is the result of In-None-Match.
48471func (c *AcceleratorTypesGetCall) IfNoneMatch(entityTag string) *AcceleratorTypesGetCall {
48472	c.ifNoneMatch_ = entityTag
48473	return c
48474}
48475
48476// Context sets the context to be used in this call's Do method. Any
48477// pending HTTP request will be aborted if the provided context is
48478// canceled.
48479func (c *AcceleratorTypesGetCall) Context(ctx context.Context) *AcceleratorTypesGetCall {
48480	c.ctx_ = ctx
48481	return c
48482}
48483
48484// Header returns an http.Header that can be modified by the caller to
48485// add HTTP headers to the request.
48486func (c *AcceleratorTypesGetCall) Header() http.Header {
48487	if c.header_ == nil {
48488		c.header_ = make(http.Header)
48489	}
48490	return c.header_
48491}
48492
48493func (c *AcceleratorTypesGetCall) doRequest(alt string) (*http.Response, error) {
48494	reqHeaders := make(http.Header)
48495	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
48496	for k, v := range c.header_ {
48497		reqHeaders[k] = v
48498	}
48499	reqHeaders.Set("User-Agent", c.s.userAgent())
48500	if c.ifNoneMatch_ != "" {
48501		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
48502	}
48503	var body io.Reader = nil
48504	c.urlParams_.Set("alt", alt)
48505	c.urlParams_.Set("prettyPrint", "false")
48506	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/acceleratorTypes/{acceleratorType}")
48507	urls += "?" + c.urlParams_.Encode()
48508	req, err := http.NewRequest("GET", urls, body)
48509	if err != nil {
48510		return nil, err
48511	}
48512	req.Header = reqHeaders
48513	googleapi.Expand(req.URL, map[string]string{
48514		"project":         c.project,
48515		"zone":            c.zone,
48516		"acceleratorType": c.acceleratorType,
48517	})
48518	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48519}
48520
48521// Do executes the "compute.acceleratorTypes.get" call.
48522// Exactly one of *AcceleratorType or error will be non-nil. Any non-2xx
48523// status code is an error. Response headers are in either
48524// *AcceleratorType.ServerResponse.Header or (if a response was returned
48525// at all) in error.(*googleapi.Error).Header. Use
48526// googleapi.IsNotModified to check whether the returned error was
48527// because http.StatusNotModified was returned.
48528func (c *AcceleratorTypesGetCall) Do(opts ...googleapi.CallOption) (*AcceleratorType, error) {
48529	gensupport.SetOptions(c.urlParams_, opts...)
48530	res, err := c.doRequest("json")
48531	if res != nil && res.StatusCode == http.StatusNotModified {
48532		if res.Body != nil {
48533			res.Body.Close()
48534		}
48535		return nil, &googleapi.Error{
48536			Code:   res.StatusCode,
48537			Header: res.Header,
48538		}
48539	}
48540	if err != nil {
48541		return nil, err
48542	}
48543	defer googleapi.CloseBody(res)
48544	if err := googleapi.CheckResponse(res); err != nil {
48545		return nil, err
48546	}
48547	ret := &AcceleratorType{
48548		ServerResponse: googleapi.ServerResponse{
48549			Header:         res.Header,
48550			HTTPStatusCode: res.StatusCode,
48551		},
48552	}
48553	target := &ret
48554	if err := gensupport.DecodeResponse(target, res); err != nil {
48555		return nil, err
48556	}
48557	return ret, nil
48558	// {
48559	//   "description": "Returns the specified accelerator type.",
48560	//   "httpMethod": "GET",
48561	//   "id": "compute.acceleratorTypes.get",
48562	//   "parameterOrder": [
48563	//     "project",
48564	//     "zone",
48565	//     "acceleratorType"
48566	//   ],
48567	//   "parameters": {
48568	//     "acceleratorType": {
48569	//       "description": "Name of the accelerator type to return.",
48570	//       "location": "path",
48571	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
48572	//       "required": true,
48573	//       "type": "string"
48574	//     },
48575	//     "project": {
48576	//       "description": "Project ID for this request.",
48577	//       "location": "path",
48578	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48579	//       "required": true,
48580	//       "type": "string"
48581	//     },
48582	//     "zone": {
48583	//       "description": "The name of the zone for this request.",
48584	//       "location": "path",
48585	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48586	//       "required": true,
48587	//       "type": "string"
48588	//     }
48589	//   },
48590	//   "path": "{project}/zones/{zone}/acceleratorTypes/{acceleratorType}",
48591	//   "response": {
48592	//     "$ref": "AcceleratorType"
48593	//   },
48594	//   "scopes": [
48595	//     "https://www.googleapis.com/auth/cloud-platform",
48596	//     "https://www.googleapis.com/auth/compute",
48597	//     "https://www.googleapis.com/auth/compute.readonly"
48598	//   ]
48599	// }
48600
48601}
48602
48603// method id "compute.acceleratorTypes.list":
48604
48605type AcceleratorTypesListCall struct {
48606	s            *Service
48607	project      string
48608	zone         string
48609	urlParams_   gensupport.URLParams
48610	ifNoneMatch_ string
48611	ctx_         context.Context
48612	header_      http.Header
48613}
48614
48615// List: Retrieves a list of accelerator types available to the
48616// specified project.
48617func (r *AcceleratorTypesService) List(project string, zone string) *AcceleratorTypesListCall {
48618	c := &AcceleratorTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48619	c.project = project
48620	c.zone = zone
48621	return c
48622}
48623
48624// Filter sets the optional parameter "filter": A filter expression that
48625// filters resources listed in the response. The expression must specify
48626// the field name, a comparison operator, and the value that you want to
48627// use for filtering. The value must be a string, a number, or a
48628// boolean. The comparison operator must be either =, !=, >, or <.
48629//
48630// For example, if you are filtering Compute Engine instances, you can
48631// exclude instances named example-instance by specifying name !=
48632// example-instance.
48633//
48634// You can also filter nested fields. For example, you could specify
48635// scheduling.automaticRestart = false to include instances only if they
48636// are not scheduled for automatic restarts. You can use filtering on
48637// nested fields to filter based on resource labels.
48638//
48639// To filter on multiple expressions, provide each separate expression
48640// within parentheses. For example, (scheduling.automaticRestart = true)
48641// (cpuPlatform = "Intel Skylake"). By default, each expression is an
48642// AND expression. However, you can include AND and OR expressions
48643// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
48644// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
48645// true).
48646func (c *AcceleratorTypesListCall) Filter(filter string) *AcceleratorTypesListCall {
48647	c.urlParams_.Set("filter", filter)
48648	return c
48649}
48650
48651// MaxResults sets the optional parameter "maxResults": The maximum
48652// number of results per page that should be returned. If the number of
48653// available results is larger than maxResults, Compute Engine returns a
48654// nextPageToken that can be used to get the next page of results in
48655// subsequent list requests. Acceptable values are 0 to 500, inclusive.
48656// (Default: 500)
48657func (c *AcceleratorTypesListCall) MaxResults(maxResults int64) *AcceleratorTypesListCall {
48658	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
48659	return c
48660}
48661
48662// OrderBy sets the optional parameter "orderBy": Sorts list results by
48663// a certain order. By default, results are returned in alphanumerical
48664// order based on the resource name.
48665//
48666// You can also sort results in descending order based on the creation
48667// timestamp using orderBy="creationTimestamp desc". This sorts results
48668// based on the creationTimestamp field in reverse chronological order
48669// (newest result first). Use this to sort resources like operations so
48670// that the newest operation is returned first.
48671//
48672// Currently, only sorting by name or creationTimestamp desc is
48673// supported.
48674func (c *AcceleratorTypesListCall) OrderBy(orderBy string) *AcceleratorTypesListCall {
48675	c.urlParams_.Set("orderBy", orderBy)
48676	return c
48677}
48678
48679// PageToken sets the optional parameter "pageToken": Specifies a page
48680// token to use. Set pageToken to the nextPageToken returned by a
48681// previous list request to get the next page of results.
48682func (c *AcceleratorTypesListCall) PageToken(pageToken string) *AcceleratorTypesListCall {
48683	c.urlParams_.Set("pageToken", pageToken)
48684	return c
48685}
48686
48687// Fields allows partial responses to be retrieved. See
48688// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48689// for more information.
48690func (c *AcceleratorTypesListCall) Fields(s ...googleapi.Field) *AcceleratorTypesListCall {
48691	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48692	return c
48693}
48694
48695// IfNoneMatch sets the optional parameter which makes the operation
48696// fail if the object's ETag matches the given value. This is useful for
48697// getting updates only after the object has changed since the last
48698// request. Use googleapi.IsNotModified to check whether the response
48699// error from Do is the result of In-None-Match.
48700func (c *AcceleratorTypesListCall) IfNoneMatch(entityTag string) *AcceleratorTypesListCall {
48701	c.ifNoneMatch_ = entityTag
48702	return c
48703}
48704
48705// Context sets the context to be used in this call's Do method. Any
48706// pending HTTP request will be aborted if the provided context is
48707// canceled.
48708func (c *AcceleratorTypesListCall) Context(ctx context.Context) *AcceleratorTypesListCall {
48709	c.ctx_ = ctx
48710	return c
48711}
48712
48713// Header returns an http.Header that can be modified by the caller to
48714// add HTTP headers to the request.
48715func (c *AcceleratorTypesListCall) Header() http.Header {
48716	if c.header_ == nil {
48717		c.header_ = make(http.Header)
48718	}
48719	return c.header_
48720}
48721
48722func (c *AcceleratorTypesListCall) doRequest(alt string) (*http.Response, error) {
48723	reqHeaders := make(http.Header)
48724	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
48725	for k, v := range c.header_ {
48726		reqHeaders[k] = v
48727	}
48728	reqHeaders.Set("User-Agent", c.s.userAgent())
48729	if c.ifNoneMatch_ != "" {
48730		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
48731	}
48732	var body io.Reader = nil
48733	c.urlParams_.Set("alt", alt)
48734	c.urlParams_.Set("prettyPrint", "false")
48735	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/acceleratorTypes")
48736	urls += "?" + c.urlParams_.Encode()
48737	req, err := http.NewRequest("GET", urls, body)
48738	if err != nil {
48739		return nil, err
48740	}
48741	req.Header = reqHeaders
48742	googleapi.Expand(req.URL, map[string]string{
48743		"project": c.project,
48744		"zone":    c.zone,
48745	})
48746	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48747}
48748
48749// Do executes the "compute.acceleratorTypes.list" call.
48750// Exactly one of *AcceleratorTypeList or error will be non-nil. Any
48751// non-2xx status code is an error. Response headers are in either
48752// *AcceleratorTypeList.ServerResponse.Header or (if a response was
48753// returned at all) in error.(*googleapi.Error).Header. Use
48754// googleapi.IsNotModified to check whether the returned error was
48755// because http.StatusNotModified was returned.
48756func (c *AcceleratorTypesListCall) Do(opts ...googleapi.CallOption) (*AcceleratorTypeList, error) {
48757	gensupport.SetOptions(c.urlParams_, opts...)
48758	res, err := c.doRequest("json")
48759	if res != nil && res.StatusCode == http.StatusNotModified {
48760		if res.Body != nil {
48761			res.Body.Close()
48762		}
48763		return nil, &googleapi.Error{
48764			Code:   res.StatusCode,
48765			Header: res.Header,
48766		}
48767	}
48768	if err != nil {
48769		return nil, err
48770	}
48771	defer googleapi.CloseBody(res)
48772	if err := googleapi.CheckResponse(res); err != nil {
48773		return nil, err
48774	}
48775	ret := &AcceleratorTypeList{
48776		ServerResponse: googleapi.ServerResponse{
48777			Header:         res.Header,
48778			HTTPStatusCode: res.StatusCode,
48779		},
48780	}
48781	target := &ret
48782	if err := gensupport.DecodeResponse(target, res); err != nil {
48783		return nil, err
48784	}
48785	return ret, nil
48786	// {
48787	//   "description": "Retrieves a list of accelerator types available to the specified project.",
48788	//   "httpMethod": "GET",
48789	//   "id": "compute.acceleratorTypes.list",
48790	//   "parameterOrder": [
48791	//     "project",
48792	//     "zone"
48793	//   ],
48794	//   "parameters": {
48795	//     "filter": {
48796	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
48797	//       "location": "query",
48798	//       "type": "string"
48799	//     },
48800	//     "maxResults": {
48801	//       "default": "500",
48802	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
48803	//       "format": "uint32",
48804	//       "location": "query",
48805	//       "minimum": "0",
48806	//       "type": "integer"
48807	//     },
48808	//     "orderBy": {
48809	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
48810	//       "location": "query",
48811	//       "type": "string"
48812	//     },
48813	//     "pageToken": {
48814	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
48815	//       "location": "query",
48816	//       "type": "string"
48817	//     },
48818	//     "project": {
48819	//       "description": "Project ID for this request.",
48820	//       "location": "path",
48821	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48822	//       "required": true,
48823	//       "type": "string"
48824	//     },
48825	//     "zone": {
48826	//       "description": "The name of the zone for this request.",
48827	//       "location": "path",
48828	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48829	//       "required": true,
48830	//       "type": "string"
48831	//     }
48832	//   },
48833	//   "path": "{project}/zones/{zone}/acceleratorTypes",
48834	//   "response": {
48835	//     "$ref": "AcceleratorTypeList"
48836	//   },
48837	//   "scopes": [
48838	//     "https://www.googleapis.com/auth/cloud-platform",
48839	//     "https://www.googleapis.com/auth/compute",
48840	//     "https://www.googleapis.com/auth/compute.readonly"
48841	//   ]
48842	// }
48843
48844}
48845
48846// Pages invokes f for each page of results.
48847// A non-nil error returned from f will halt the iteration.
48848// The provided context supersedes any context provided to the Context method.
48849func (c *AcceleratorTypesListCall) Pages(ctx context.Context, f func(*AcceleratorTypeList) error) error {
48850	c.ctx_ = ctx
48851	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
48852	for {
48853		x, err := c.Do()
48854		if err != nil {
48855			return err
48856		}
48857		if err := f(x); err != nil {
48858			return err
48859		}
48860		if x.NextPageToken == "" {
48861			return nil
48862		}
48863		c.PageToken(x.NextPageToken)
48864	}
48865}
48866
48867// method id "compute.addresses.aggregatedList":
48868
48869type AddressesAggregatedListCall struct {
48870	s            *Service
48871	project      string
48872	urlParams_   gensupport.URLParams
48873	ifNoneMatch_ string
48874	ctx_         context.Context
48875	header_      http.Header
48876}
48877
48878// AggregatedList: Retrieves an aggregated list of addresses.
48879// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/aggregatedList
48880func (r *AddressesService) AggregatedList(project string) *AddressesAggregatedListCall {
48881	c := &AddressesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48882	c.project = project
48883	return c
48884}
48885
48886// Filter sets the optional parameter "filter": A filter expression that
48887// filters resources listed in the response. The expression must specify
48888// the field name, a comparison operator, and the value that you want to
48889// use for filtering. The value must be a string, a number, or a
48890// boolean. The comparison operator must be either =, !=, >, or <.
48891//
48892// For example, if you are filtering Compute Engine instances, you can
48893// exclude instances named example-instance by specifying name !=
48894// example-instance.
48895//
48896// You can also filter nested fields. For example, you could specify
48897// scheduling.automaticRestart = false to include instances only if they
48898// are not scheduled for automatic restarts. You can use filtering on
48899// nested fields to filter based on resource labels.
48900//
48901// To filter on multiple expressions, provide each separate expression
48902// within parentheses. For example, (scheduling.automaticRestart = true)
48903// (cpuPlatform = "Intel Skylake"). By default, each expression is an
48904// AND expression. However, you can include AND and OR expressions
48905// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
48906// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
48907// true).
48908func (c *AddressesAggregatedListCall) Filter(filter string) *AddressesAggregatedListCall {
48909	c.urlParams_.Set("filter", filter)
48910	return c
48911}
48912
48913// IncludeAllScopes sets the optional parameter "includeAllScopes":
48914// Indicates whether every visible scope for each scope type (zone,
48915// region, global) should be included in the response. For new resource
48916// types added after this field, the flag has no effect as new resource
48917// types will always include every visible scope for each scope type in
48918// response. For resource types which predate this field, if this flag
48919// is omitted or false, only scopes of the scope types where the
48920// resource type is expected to be found will be included.
48921func (c *AddressesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AddressesAggregatedListCall {
48922	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
48923	return c
48924}
48925
48926// MaxResults sets the optional parameter "maxResults": The maximum
48927// number of results per page that should be returned. If the number of
48928// available results is larger than maxResults, Compute Engine returns a
48929// nextPageToken that can be used to get the next page of results in
48930// subsequent list requests. Acceptable values are 0 to 500, inclusive.
48931// (Default: 500)
48932func (c *AddressesAggregatedListCall) MaxResults(maxResults int64) *AddressesAggregatedListCall {
48933	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
48934	return c
48935}
48936
48937// OrderBy sets the optional parameter "orderBy": Sorts list results by
48938// a certain order. By default, results are returned in alphanumerical
48939// order based on the resource name.
48940//
48941// You can also sort results in descending order based on the creation
48942// timestamp using orderBy="creationTimestamp desc". This sorts results
48943// based on the creationTimestamp field in reverse chronological order
48944// (newest result first). Use this to sort resources like operations so
48945// that the newest operation is returned first.
48946//
48947// Currently, only sorting by name or creationTimestamp desc is
48948// supported.
48949func (c *AddressesAggregatedListCall) OrderBy(orderBy string) *AddressesAggregatedListCall {
48950	c.urlParams_.Set("orderBy", orderBy)
48951	return c
48952}
48953
48954// PageToken sets the optional parameter "pageToken": Specifies a page
48955// token to use. Set pageToken to the nextPageToken returned by a
48956// previous list request to get the next page of results.
48957func (c *AddressesAggregatedListCall) PageToken(pageToken string) *AddressesAggregatedListCall {
48958	c.urlParams_.Set("pageToken", pageToken)
48959	return c
48960}
48961
48962// Fields allows partial responses to be retrieved. See
48963// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48964// for more information.
48965func (c *AddressesAggregatedListCall) Fields(s ...googleapi.Field) *AddressesAggregatedListCall {
48966	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48967	return c
48968}
48969
48970// IfNoneMatch sets the optional parameter which makes the operation
48971// fail if the object's ETag matches the given value. This is useful for
48972// getting updates only after the object has changed since the last
48973// request. Use googleapi.IsNotModified to check whether the response
48974// error from Do is the result of In-None-Match.
48975func (c *AddressesAggregatedListCall) IfNoneMatch(entityTag string) *AddressesAggregatedListCall {
48976	c.ifNoneMatch_ = entityTag
48977	return c
48978}
48979
48980// Context sets the context to be used in this call's Do method. Any
48981// pending HTTP request will be aborted if the provided context is
48982// canceled.
48983func (c *AddressesAggregatedListCall) Context(ctx context.Context) *AddressesAggregatedListCall {
48984	c.ctx_ = ctx
48985	return c
48986}
48987
48988// Header returns an http.Header that can be modified by the caller to
48989// add HTTP headers to the request.
48990func (c *AddressesAggregatedListCall) Header() http.Header {
48991	if c.header_ == nil {
48992		c.header_ = make(http.Header)
48993	}
48994	return c.header_
48995}
48996
48997func (c *AddressesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
48998	reqHeaders := make(http.Header)
48999	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
49000	for k, v := range c.header_ {
49001		reqHeaders[k] = v
49002	}
49003	reqHeaders.Set("User-Agent", c.s.userAgent())
49004	if c.ifNoneMatch_ != "" {
49005		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
49006	}
49007	var body io.Reader = nil
49008	c.urlParams_.Set("alt", alt)
49009	c.urlParams_.Set("prettyPrint", "false")
49010	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/addresses")
49011	urls += "?" + c.urlParams_.Encode()
49012	req, err := http.NewRequest("GET", urls, body)
49013	if err != nil {
49014		return nil, err
49015	}
49016	req.Header = reqHeaders
49017	googleapi.Expand(req.URL, map[string]string{
49018		"project": c.project,
49019	})
49020	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49021}
49022
49023// Do executes the "compute.addresses.aggregatedList" call.
49024// Exactly one of *AddressAggregatedList or error will be non-nil. Any
49025// non-2xx status code is an error. Response headers are in either
49026// *AddressAggregatedList.ServerResponse.Header or (if a response was
49027// returned at all) in error.(*googleapi.Error).Header. Use
49028// googleapi.IsNotModified to check whether the returned error was
49029// because http.StatusNotModified was returned.
49030func (c *AddressesAggregatedListCall) Do(opts ...googleapi.CallOption) (*AddressAggregatedList, error) {
49031	gensupport.SetOptions(c.urlParams_, opts...)
49032	res, err := c.doRequest("json")
49033	if res != nil && res.StatusCode == http.StatusNotModified {
49034		if res.Body != nil {
49035			res.Body.Close()
49036		}
49037		return nil, &googleapi.Error{
49038			Code:   res.StatusCode,
49039			Header: res.Header,
49040		}
49041	}
49042	if err != nil {
49043		return nil, err
49044	}
49045	defer googleapi.CloseBody(res)
49046	if err := googleapi.CheckResponse(res); err != nil {
49047		return nil, err
49048	}
49049	ret := &AddressAggregatedList{
49050		ServerResponse: googleapi.ServerResponse{
49051			Header:         res.Header,
49052			HTTPStatusCode: res.StatusCode,
49053		},
49054	}
49055	target := &ret
49056	if err := gensupport.DecodeResponse(target, res); err != nil {
49057		return nil, err
49058	}
49059	return ret, nil
49060	// {
49061	//   "description": "Retrieves an aggregated list of addresses.",
49062	//   "httpMethod": "GET",
49063	//   "id": "compute.addresses.aggregatedList",
49064	//   "parameterOrder": [
49065	//     "project"
49066	//   ],
49067	//   "parameters": {
49068	//     "filter": {
49069	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
49070	//       "location": "query",
49071	//       "type": "string"
49072	//     },
49073	//     "includeAllScopes": {
49074	//       "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.",
49075	//       "location": "query",
49076	//       "type": "boolean"
49077	//     },
49078	//     "maxResults": {
49079	//       "default": "500",
49080	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
49081	//       "format": "uint32",
49082	//       "location": "query",
49083	//       "minimum": "0",
49084	//       "type": "integer"
49085	//     },
49086	//     "orderBy": {
49087	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
49088	//       "location": "query",
49089	//       "type": "string"
49090	//     },
49091	//     "pageToken": {
49092	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
49093	//       "location": "query",
49094	//       "type": "string"
49095	//     },
49096	//     "project": {
49097	//       "description": "Project ID for this request.",
49098	//       "location": "path",
49099	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49100	//       "required": true,
49101	//       "type": "string"
49102	//     }
49103	//   },
49104	//   "path": "{project}/aggregated/addresses",
49105	//   "response": {
49106	//     "$ref": "AddressAggregatedList"
49107	//   },
49108	//   "scopes": [
49109	//     "https://www.googleapis.com/auth/cloud-platform",
49110	//     "https://www.googleapis.com/auth/compute",
49111	//     "https://www.googleapis.com/auth/compute.readonly"
49112	//   ]
49113	// }
49114
49115}
49116
49117// Pages invokes f for each page of results.
49118// A non-nil error returned from f will halt the iteration.
49119// The provided context supersedes any context provided to the Context method.
49120func (c *AddressesAggregatedListCall) Pages(ctx context.Context, f func(*AddressAggregatedList) error) error {
49121	c.ctx_ = ctx
49122	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
49123	for {
49124		x, err := c.Do()
49125		if err != nil {
49126			return err
49127		}
49128		if err := f(x); err != nil {
49129			return err
49130		}
49131		if x.NextPageToken == "" {
49132			return nil
49133		}
49134		c.PageToken(x.NextPageToken)
49135	}
49136}
49137
49138// method id "compute.addresses.delete":
49139
49140type AddressesDeleteCall struct {
49141	s          *Service
49142	project    string
49143	region     string
49144	address    string
49145	urlParams_ gensupport.URLParams
49146	ctx_       context.Context
49147	header_    http.Header
49148}
49149
49150// Delete: Deletes the specified address resource.
49151// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/delete
49152func (r *AddressesService) Delete(project string, region string, address string) *AddressesDeleteCall {
49153	c := &AddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49154	c.project = project
49155	c.region = region
49156	c.address = address
49157	return c
49158}
49159
49160// RequestId sets the optional parameter "requestId": An optional
49161// request ID to identify requests. Specify a unique request ID so that
49162// if you must retry your request, the server will know to ignore the
49163// request if it has already been completed.
49164//
49165// For example, consider a situation where you make an initial request
49166// and the request times out. If you make the request again with the
49167// same request ID, the server can check if original operation with the
49168// same request ID was received, and if so, will ignore the second
49169// request. This prevents clients from accidentally creating duplicate
49170// commitments.
49171//
49172// The request ID must be a valid UUID with the exception that zero UUID
49173// is not supported (00000000-0000-0000-0000-000000000000).
49174func (c *AddressesDeleteCall) RequestId(requestId string) *AddressesDeleteCall {
49175	c.urlParams_.Set("requestId", requestId)
49176	return c
49177}
49178
49179// Fields allows partial responses to be retrieved. See
49180// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49181// for more information.
49182func (c *AddressesDeleteCall) Fields(s ...googleapi.Field) *AddressesDeleteCall {
49183	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49184	return c
49185}
49186
49187// Context sets the context to be used in this call's Do method. Any
49188// pending HTTP request will be aborted if the provided context is
49189// canceled.
49190func (c *AddressesDeleteCall) Context(ctx context.Context) *AddressesDeleteCall {
49191	c.ctx_ = ctx
49192	return c
49193}
49194
49195// Header returns an http.Header that can be modified by the caller to
49196// add HTTP headers to the request.
49197func (c *AddressesDeleteCall) Header() http.Header {
49198	if c.header_ == nil {
49199		c.header_ = make(http.Header)
49200	}
49201	return c.header_
49202}
49203
49204func (c *AddressesDeleteCall) doRequest(alt string) (*http.Response, error) {
49205	reqHeaders := make(http.Header)
49206	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
49207	for k, v := range c.header_ {
49208		reqHeaders[k] = v
49209	}
49210	reqHeaders.Set("User-Agent", c.s.userAgent())
49211	var body io.Reader = nil
49212	c.urlParams_.Set("alt", alt)
49213	c.urlParams_.Set("prettyPrint", "false")
49214	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses/{address}")
49215	urls += "?" + c.urlParams_.Encode()
49216	req, err := http.NewRequest("DELETE", urls, body)
49217	if err != nil {
49218		return nil, err
49219	}
49220	req.Header = reqHeaders
49221	googleapi.Expand(req.URL, map[string]string{
49222		"project": c.project,
49223		"region":  c.region,
49224		"address": c.address,
49225	})
49226	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49227}
49228
49229// Do executes the "compute.addresses.delete" call.
49230// Exactly one of *Operation or error will be non-nil. Any non-2xx
49231// status code is an error. Response headers are in either
49232// *Operation.ServerResponse.Header or (if a response was returned at
49233// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49234// to check whether the returned error was because
49235// http.StatusNotModified was returned.
49236func (c *AddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
49237	gensupport.SetOptions(c.urlParams_, opts...)
49238	res, err := c.doRequest("json")
49239	if res != nil && res.StatusCode == http.StatusNotModified {
49240		if res.Body != nil {
49241			res.Body.Close()
49242		}
49243		return nil, &googleapi.Error{
49244			Code:   res.StatusCode,
49245			Header: res.Header,
49246		}
49247	}
49248	if err != nil {
49249		return nil, err
49250	}
49251	defer googleapi.CloseBody(res)
49252	if err := googleapi.CheckResponse(res); err != nil {
49253		return nil, err
49254	}
49255	ret := &Operation{
49256		ServerResponse: googleapi.ServerResponse{
49257			Header:         res.Header,
49258			HTTPStatusCode: res.StatusCode,
49259		},
49260	}
49261	target := &ret
49262	if err := gensupport.DecodeResponse(target, res); err != nil {
49263		return nil, err
49264	}
49265	return ret, nil
49266	// {
49267	//   "description": "Deletes the specified address resource.",
49268	//   "httpMethod": "DELETE",
49269	//   "id": "compute.addresses.delete",
49270	//   "parameterOrder": [
49271	//     "project",
49272	//     "region",
49273	//     "address"
49274	//   ],
49275	//   "parameters": {
49276	//     "address": {
49277	//       "description": "Name of the address resource to delete.",
49278	//       "location": "path",
49279	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
49280	//       "required": true,
49281	//       "type": "string"
49282	//     },
49283	//     "project": {
49284	//       "description": "Project ID for this request.",
49285	//       "location": "path",
49286	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49287	//       "required": true,
49288	//       "type": "string"
49289	//     },
49290	//     "region": {
49291	//       "description": "Name of the region for this request.",
49292	//       "location": "path",
49293	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49294	//       "required": true,
49295	//       "type": "string"
49296	//     },
49297	//     "requestId": {
49298	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
49299	//       "location": "query",
49300	//       "type": "string"
49301	//     }
49302	//   },
49303	//   "path": "{project}/regions/{region}/addresses/{address}",
49304	//   "response": {
49305	//     "$ref": "Operation"
49306	//   },
49307	//   "scopes": [
49308	//     "https://www.googleapis.com/auth/cloud-platform",
49309	//     "https://www.googleapis.com/auth/compute"
49310	//   ]
49311	// }
49312
49313}
49314
49315// method id "compute.addresses.get":
49316
49317type AddressesGetCall struct {
49318	s            *Service
49319	project      string
49320	region       string
49321	address      string
49322	urlParams_   gensupport.URLParams
49323	ifNoneMatch_ string
49324	ctx_         context.Context
49325	header_      http.Header
49326}
49327
49328// Get: Returns the specified address resource.
49329// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/get
49330func (r *AddressesService) Get(project string, region string, address string) *AddressesGetCall {
49331	c := &AddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49332	c.project = project
49333	c.region = region
49334	c.address = address
49335	return c
49336}
49337
49338// Fields allows partial responses to be retrieved. See
49339// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49340// for more information.
49341func (c *AddressesGetCall) Fields(s ...googleapi.Field) *AddressesGetCall {
49342	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49343	return c
49344}
49345
49346// IfNoneMatch sets the optional parameter which makes the operation
49347// fail if the object's ETag matches the given value. This is useful for
49348// getting updates only after the object has changed since the last
49349// request. Use googleapi.IsNotModified to check whether the response
49350// error from Do is the result of In-None-Match.
49351func (c *AddressesGetCall) IfNoneMatch(entityTag string) *AddressesGetCall {
49352	c.ifNoneMatch_ = entityTag
49353	return c
49354}
49355
49356// Context sets the context to be used in this call's Do method. Any
49357// pending HTTP request will be aborted if the provided context is
49358// canceled.
49359func (c *AddressesGetCall) Context(ctx context.Context) *AddressesGetCall {
49360	c.ctx_ = ctx
49361	return c
49362}
49363
49364// Header returns an http.Header that can be modified by the caller to
49365// add HTTP headers to the request.
49366func (c *AddressesGetCall) Header() http.Header {
49367	if c.header_ == nil {
49368		c.header_ = make(http.Header)
49369	}
49370	return c.header_
49371}
49372
49373func (c *AddressesGetCall) doRequest(alt string) (*http.Response, error) {
49374	reqHeaders := make(http.Header)
49375	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
49376	for k, v := range c.header_ {
49377		reqHeaders[k] = v
49378	}
49379	reqHeaders.Set("User-Agent", c.s.userAgent())
49380	if c.ifNoneMatch_ != "" {
49381		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
49382	}
49383	var body io.Reader = nil
49384	c.urlParams_.Set("alt", alt)
49385	c.urlParams_.Set("prettyPrint", "false")
49386	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses/{address}")
49387	urls += "?" + c.urlParams_.Encode()
49388	req, err := http.NewRequest("GET", urls, body)
49389	if err != nil {
49390		return nil, err
49391	}
49392	req.Header = reqHeaders
49393	googleapi.Expand(req.URL, map[string]string{
49394		"project": c.project,
49395		"region":  c.region,
49396		"address": c.address,
49397	})
49398	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49399}
49400
49401// Do executes the "compute.addresses.get" call.
49402// Exactly one of *Address or error will be non-nil. Any non-2xx status
49403// code is an error. Response headers are in either
49404// *Address.ServerResponse.Header or (if a response was returned at all)
49405// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
49406// check whether the returned error was because http.StatusNotModified
49407// was returned.
49408func (c *AddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) {
49409	gensupport.SetOptions(c.urlParams_, opts...)
49410	res, err := c.doRequest("json")
49411	if res != nil && res.StatusCode == http.StatusNotModified {
49412		if res.Body != nil {
49413			res.Body.Close()
49414		}
49415		return nil, &googleapi.Error{
49416			Code:   res.StatusCode,
49417			Header: res.Header,
49418		}
49419	}
49420	if err != nil {
49421		return nil, err
49422	}
49423	defer googleapi.CloseBody(res)
49424	if err := googleapi.CheckResponse(res); err != nil {
49425		return nil, err
49426	}
49427	ret := &Address{
49428		ServerResponse: googleapi.ServerResponse{
49429			Header:         res.Header,
49430			HTTPStatusCode: res.StatusCode,
49431		},
49432	}
49433	target := &ret
49434	if err := gensupport.DecodeResponse(target, res); err != nil {
49435		return nil, err
49436	}
49437	return ret, nil
49438	// {
49439	//   "description": "Returns the specified address resource.",
49440	//   "httpMethod": "GET",
49441	//   "id": "compute.addresses.get",
49442	//   "parameterOrder": [
49443	//     "project",
49444	//     "region",
49445	//     "address"
49446	//   ],
49447	//   "parameters": {
49448	//     "address": {
49449	//       "description": "Name of the address resource to return.",
49450	//       "location": "path",
49451	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
49452	//       "required": true,
49453	//       "type": "string"
49454	//     },
49455	//     "project": {
49456	//       "description": "Project ID for this request.",
49457	//       "location": "path",
49458	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49459	//       "required": true,
49460	//       "type": "string"
49461	//     },
49462	//     "region": {
49463	//       "description": "Name of the region for this request.",
49464	//       "location": "path",
49465	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49466	//       "required": true,
49467	//       "type": "string"
49468	//     }
49469	//   },
49470	//   "path": "{project}/regions/{region}/addresses/{address}",
49471	//   "response": {
49472	//     "$ref": "Address"
49473	//   },
49474	//   "scopes": [
49475	//     "https://www.googleapis.com/auth/cloud-platform",
49476	//     "https://www.googleapis.com/auth/compute",
49477	//     "https://www.googleapis.com/auth/compute.readonly"
49478	//   ]
49479	// }
49480
49481}
49482
49483// method id "compute.addresses.insert":
49484
49485type AddressesInsertCall struct {
49486	s          *Service
49487	project    string
49488	region     string
49489	address    *Address
49490	urlParams_ gensupport.URLParams
49491	ctx_       context.Context
49492	header_    http.Header
49493}
49494
49495// Insert: Creates an address resource in the specified project by using
49496// the data included in the request.
49497// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/insert
49498func (r *AddressesService) Insert(project string, region string, address *Address) *AddressesInsertCall {
49499	c := &AddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49500	c.project = project
49501	c.region = region
49502	c.address = address
49503	return c
49504}
49505
49506// RequestId sets the optional parameter "requestId": An optional
49507// request ID to identify requests. Specify a unique request ID so that
49508// if you must retry your request, the server will know to ignore the
49509// request if it has already been completed.
49510//
49511// For example, consider a situation where you make an initial request
49512// and the request times out. If you make the request again with the
49513// same request ID, the server can check if original operation with the
49514// same request ID was received, and if so, will ignore the second
49515// request. This prevents clients from accidentally creating duplicate
49516// commitments.
49517//
49518// The request ID must be a valid UUID with the exception that zero UUID
49519// is not supported (00000000-0000-0000-0000-000000000000).
49520func (c *AddressesInsertCall) RequestId(requestId string) *AddressesInsertCall {
49521	c.urlParams_.Set("requestId", requestId)
49522	return c
49523}
49524
49525// Fields allows partial responses to be retrieved. See
49526// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49527// for more information.
49528func (c *AddressesInsertCall) Fields(s ...googleapi.Field) *AddressesInsertCall {
49529	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49530	return c
49531}
49532
49533// Context sets the context to be used in this call's Do method. Any
49534// pending HTTP request will be aborted if the provided context is
49535// canceled.
49536func (c *AddressesInsertCall) Context(ctx context.Context) *AddressesInsertCall {
49537	c.ctx_ = ctx
49538	return c
49539}
49540
49541// Header returns an http.Header that can be modified by the caller to
49542// add HTTP headers to the request.
49543func (c *AddressesInsertCall) Header() http.Header {
49544	if c.header_ == nil {
49545		c.header_ = make(http.Header)
49546	}
49547	return c.header_
49548}
49549
49550func (c *AddressesInsertCall) doRequest(alt string) (*http.Response, error) {
49551	reqHeaders := make(http.Header)
49552	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
49553	for k, v := range c.header_ {
49554		reqHeaders[k] = v
49555	}
49556	reqHeaders.Set("User-Agent", c.s.userAgent())
49557	var body io.Reader = nil
49558	body, err := googleapi.WithoutDataWrapper.JSONReader(c.address)
49559	if err != nil {
49560		return nil, err
49561	}
49562	reqHeaders.Set("Content-Type", "application/json")
49563	c.urlParams_.Set("alt", alt)
49564	c.urlParams_.Set("prettyPrint", "false")
49565	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses")
49566	urls += "?" + c.urlParams_.Encode()
49567	req, err := http.NewRequest("POST", urls, body)
49568	if err != nil {
49569		return nil, err
49570	}
49571	req.Header = reqHeaders
49572	googleapi.Expand(req.URL, map[string]string{
49573		"project": c.project,
49574		"region":  c.region,
49575	})
49576	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49577}
49578
49579// Do executes the "compute.addresses.insert" call.
49580// Exactly one of *Operation or error will be non-nil. Any non-2xx
49581// status code is an error. Response headers are in either
49582// *Operation.ServerResponse.Header or (if a response was returned at
49583// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49584// to check whether the returned error was because
49585// http.StatusNotModified was returned.
49586func (c *AddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
49587	gensupport.SetOptions(c.urlParams_, opts...)
49588	res, err := c.doRequest("json")
49589	if res != nil && res.StatusCode == http.StatusNotModified {
49590		if res.Body != nil {
49591			res.Body.Close()
49592		}
49593		return nil, &googleapi.Error{
49594			Code:   res.StatusCode,
49595			Header: res.Header,
49596		}
49597	}
49598	if err != nil {
49599		return nil, err
49600	}
49601	defer googleapi.CloseBody(res)
49602	if err := googleapi.CheckResponse(res); err != nil {
49603		return nil, err
49604	}
49605	ret := &Operation{
49606		ServerResponse: googleapi.ServerResponse{
49607			Header:         res.Header,
49608			HTTPStatusCode: res.StatusCode,
49609		},
49610	}
49611	target := &ret
49612	if err := gensupport.DecodeResponse(target, res); err != nil {
49613		return nil, err
49614	}
49615	return ret, nil
49616	// {
49617	//   "description": "Creates an address resource in the specified project by using the data included in the request.",
49618	//   "httpMethod": "POST",
49619	//   "id": "compute.addresses.insert",
49620	//   "parameterOrder": [
49621	//     "project",
49622	//     "region"
49623	//   ],
49624	//   "parameters": {
49625	//     "project": {
49626	//       "description": "Project ID for this request.",
49627	//       "location": "path",
49628	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49629	//       "required": true,
49630	//       "type": "string"
49631	//     },
49632	//     "region": {
49633	//       "description": "Name of the region for this request.",
49634	//       "location": "path",
49635	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49636	//       "required": true,
49637	//       "type": "string"
49638	//     },
49639	//     "requestId": {
49640	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
49641	//       "location": "query",
49642	//       "type": "string"
49643	//     }
49644	//   },
49645	//   "path": "{project}/regions/{region}/addresses",
49646	//   "request": {
49647	//     "$ref": "Address"
49648	//   },
49649	//   "response": {
49650	//     "$ref": "Operation"
49651	//   },
49652	//   "scopes": [
49653	//     "https://www.googleapis.com/auth/cloud-platform",
49654	//     "https://www.googleapis.com/auth/compute"
49655	//   ]
49656	// }
49657
49658}
49659
49660// method id "compute.addresses.list":
49661
49662type AddressesListCall struct {
49663	s            *Service
49664	project      string
49665	region       string
49666	urlParams_   gensupport.URLParams
49667	ifNoneMatch_ string
49668	ctx_         context.Context
49669	header_      http.Header
49670}
49671
49672// List: Retrieves a list of addresses contained within the specified
49673// region.
49674// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/list
49675func (r *AddressesService) List(project string, region string) *AddressesListCall {
49676	c := &AddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49677	c.project = project
49678	c.region = region
49679	return c
49680}
49681
49682// Filter sets the optional parameter "filter": A filter expression that
49683// filters resources listed in the response. The expression must specify
49684// the field name, a comparison operator, and the value that you want to
49685// use for filtering. The value must be a string, a number, or a
49686// boolean. The comparison operator must be either =, !=, >, or <.
49687//
49688// For example, if you are filtering Compute Engine instances, you can
49689// exclude instances named example-instance by specifying name !=
49690// example-instance.
49691//
49692// You can also filter nested fields. For example, you could specify
49693// scheduling.automaticRestart = false to include instances only if they
49694// are not scheduled for automatic restarts. You can use filtering on
49695// nested fields to filter based on resource labels.
49696//
49697// To filter on multiple expressions, provide each separate expression
49698// within parentheses. For example, (scheduling.automaticRestart = true)
49699// (cpuPlatform = "Intel Skylake"). By default, each expression is an
49700// AND expression. However, you can include AND and OR expressions
49701// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
49702// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
49703// true).
49704func (c *AddressesListCall) Filter(filter string) *AddressesListCall {
49705	c.urlParams_.Set("filter", filter)
49706	return c
49707}
49708
49709// MaxResults sets the optional parameter "maxResults": The maximum
49710// number of results per page that should be returned. If the number of
49711// available results is larger than maxResults, Compute Engine returns a
49712// nextPageToken that can be used to get the next page of results in
49713// subsequent list requests. Acceptable values are 0 to 500, inclusive.
49714// (Default: 500)
49715func (c *AddressesListCall) MaxResults(maxResults int64) *AddressesListCall {
49716	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
49717	return c
49718}
49719
49720// OrderBy sets the optional parameter "orderBy": Sorts list results by
49721// a certain order. By default, results are returned in alphanumerical
49722// order based on the resource name.
49723//
49724// You can also sort results in descending order based on the creation
49725// timestamp using orderBy="creationTimestamp desc". This sorts results
49726// based on the creationTimestamp field in reverse chronological order
49727// (newest result first). Use this to sort resources like operations so
49728// that the newest operation is returned first.
49729//
49730// Currently, only sorting by name or creationTimestamp desc is
49731// supported.
49732func (c *AddressesListCall) OrderBy(orderBy string) *AddressesListCall {
49733	c.urlParams_.Set("orderBy", orderBy)
49734	return c
49735}
49736
49737// PageToken sets the optional parameter "pageToken": Specifies a page
49738// token to use. Set pageToken to the nextPageToken returned by a
49739// previous list request to get the next page of results.
49740func (c *AddressesListCall) PageToken(pageToken string) *AddressesListCall {
49741	c.urlParams_.Set("pageToken", pageToken)
49742	return c
49743}
49744
49745// Fields allows partial responses to be retrieved. See
49746// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49747// for more information.
49748func (c *AddressesListCall) Fields(s ...googleapi.Field) *AddressesListCall {
49749	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49750	return c
49751}
49752
49753// IfNoneMatch sets the optional parameter which makes the operation
49754// fail if the object's ETag matches the given value. This is useful for
49755// getting updates only after the object has changed since the last
49756// request. Use googleapi.IsNotModified to check whether the response
49757// error from Do is the result of In-None-Match.
49758func (c *AddressesListCall) IfNoneMatch(entityTag string) *AddressesListCall {
49759	c.ifNoneMatch_ = entityTag
49760	return c
49761}
49762
49763// Context sets the context to be used in this call's Do method. Any
49764// pending HTTP request will be aborted if the provided context is
49765// canceled.
49766func (c *AddressesListCall) Context(ctx context.Context) *AddressesListCall {
49767	c.ctx_ = ctx
49768	return c
49769}
49770
49771// Header returns an http.Header that can be modified by the caller to
49772// add HTTP headers to the request.
49773func (c *AddressesListCall) Header() http.Header {
49774	if c.header_ == nil {
49775		c.header_ = make(http.Header)
49776	}
49777	return c.header_
49778}
49779
49780func (c *AddressesListCall) doRequest(alt string) (*http.Response, error) {
49781	reqHeaders := make(http.Header)
49782	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
49783	for k, v := range c.header_ {
49784		reqHeaders[k] = v
49785	}
49786	reqHeaders.Set("User-Agent", c.s.userAgent())
49787	if c.ifNoneMatch_ != "" {
49788		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
49789	}
49790	var body io.Reader = nil
49791	c.urlParams_.Set("alt", alt)
49792	c.urlParams_.Set("prettyPrint", "false")
49793	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses")
49794	urls += "?" + c.urlParams_.Encode()
49795	req, err := http.NewRequest("GET", urls, body)
49796	if err != nil {
49797		return nil, err
49798	}
49799	req.Header = reqHeaders
49800	googleapi.Expand(req.URL, map[string]string{
49801		"project": c.project,
49802		"region":  c.region,
49803	})
49804	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49805}
49806
49807// Do executes the "compute.addresses.list" call.
49808// Exactly one of *AddressList or error will be non-nil. Any non-2xx
49809// status code is an error. Response headers are in either
49810// *AddressList.ServerResponse.Header or (if a response was returned at
49811// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49812// to check whether the returned error was because
49813// http.StatusNotModified was returned.
49814func (c *AddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) {
49815	gensupport.SetOptions(c.urlParams_, opts...)
49816	res, err := c.doRequest("json")
49817	if res != nil && res.StatusCode == http.StatusNotModified {
49818		if res.Body != nil {
49819			res.Body.Close()
49820		}
49821		return nil, &googleapi.Error{
49822			Code:   res.StatusCode,
49823			Header: res.Header,
49824		}
49825	}
49826	if err != nil {
49827		return nil, err
49828	}
49829	defer googleapi.CloseBody(res)
49830	if err := googleapi.CheckResponse(res); err != nil {
49831		return nil, err
49832	}
49833	ret := &AddressList{
49834		ServerResponse: googleapi.ServerResponse{
49835			Header:         res.Header,
49836			HTTPStatusCode: res.StatusCode,
49837		},
49838	}
49839	target := &ret
49840	if err := gensupport.DecodeResponse(target, res); err != nil {
49841		return nil, err
49842	}
49843	return ret, nil
49844	// {
49845	//   "description": "Retrieves a list of addresses contained within the specified region.",
49846	//   "httpMethod": "GET",
49847	//   "id": "compute.addresses.list",
49848	//   "parameterOrder": [
49849	//     "project",
49850	//     "region"
49851	//   ],
49852	//   "parameters": {
49853	//     "filter": {
49854	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
49855	//       "location": "query",
49856	//       "type": "string"
49857	//     },
49858	//     "maxResults": {
49859	//       "default": "500",
49860	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
49861	//       "format": "uint32",
49862	//       "location": "query",
49863	//       "minimum": "0",
49864	//       "type": "integer"
49865	//     },
49866	//     "orderBy": {
49867	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
49868	//       "location": "query",
49869	//       "type": "string"
49870	//     },
49871	//     "pageToken": {
49872	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
49873	//       "location": "query",
49874	//       "type": "string"
49875	//     },
49876	//     "project": {
49877	//       "description": "Project ID for this request.",
49878	//       "location": "path",
49879	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49880	//       "required": true,
49881	//       "type": "string"
49882	//     },
49883	//     "region": {
49884	//       "description": "Name of the region for this request.",
49885	//       "location": "path",
49886	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49887	//       "required": true,
49888	//       "type": "string"
49889	//     }
49890	//   },
49891	//   "path": "{project}/regions/{region}/addresses",
49892	//   "response": {
49893	//     "$ref": "AddressList"
49894	//   },
49895	//   "scopes": [
49896	//     "https://www.googleapis.com/auth/cloud-platform",
49897	//     "https://www.googleapis.com/auth/compute",
49898	//     "https://www.googleapis.com/auth/compute.readonly"
49899	//   ]
49900	// }
49901
49902}
49903
49904// Pages invokes f for each page of results.
49905// A non-nil error returned from f will halt the iteration.
49906// The provided context supersedes any context provided to the Context method.
49907func (c *AddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error {
49908	c.ctx_ = ctx
49909	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
49910	for {
49911		x, err := c.Do()
49912		if err != nil {
49913			return err
49914		}
49915		if err := f(x); err != nil {
49916			return err
49917		}
49918		if x.NextPageToken == "" {
49919			return nil
49920		}
49921		c.PageToken(x.NextPageToken)
49922	}
49923}
49924
49925// method id "compute.addresses.setLabels":
49926
49927type AddressesSetLabelsCall struct {
49928	s                      *Service
49929	project                string
49930	region                 string
49931	resource               string
49932	regionsetlabelsrequest *RegionSetLabelsRequest
49933	urlParams_             gensupport.URLParams
49934	ctx_                   context.Context
49935	header_                http.Header
49936}
49937
49938// SetLabels: Sets the labels on an Address. To learn more about labels,
49939// read the Labeling Resources documentation.
49940func (r *AddressesService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *AddressesSetLabelsCall {
49941	c := &AddressesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49942	c.project = project
49943	c.region = region
49944	c.resource = resource
49945	c.regionsetlabelsrequest = regionsetlabelsrequest
49946	return c
49947}
49948
49949// RequestId sets the optional parameter "requestId": An optional
49950// request ID to identify requests. Specify a unique request ID so that
49951// if you must retry your request, the server will know to ignore the
49952// request if it has already been completed.
49953//
49954// For example, consider a situation where you make an initial request
49955// and the request times out. If you make the request again with the
49956// same request ID, the server can check if original operation with the
49957// same request ID was received, and if so, will ignore the second
49958// request. This prevents clients from accidentally creating duplicate
49959// commitments.
49960//
49961// The request ID must be a valid UUID with the exception that zero UUID
49962// is not supported (00000000-0000-0000-0000-000000000000).
49963func (c *AddressesSetLabelsCall) RequestId(requestId string) *AddressesSetLabelsCall {
49964	c.urlParams_.Set("requestId", requestId)
49965	return c
49966}
49967
49968// Fields allows partial responses to be retrieved. See
49969// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49970// for more information.
49971func (c *AddressesSetLabelsCall) Fields(s ...googleapi.Field) *AddressesSetLabelsCall {
49972	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49973	return c
49974}
49975
49976// Context sets the context to be used in this call's Do method. Any
49977// pending HTTP request will be aborted if the provided context is
49978// canceled.
49979func (c *AddressesSetLabelsCall) Context(ctx context.Context) *AddressesSetLabelsCall {
49980	c.ctx_ = ctx
49981	return c
49982}
49983
49984// Header returns an http.Header that can be modified by the caller to
49985// add HTTP headers to the request.
49986func (c *AddressesSetLabelsCall) Header() http.Header {
49987	if c.header_ == nil {
49988		c.header_ = make(http.Header)
49989	}
49990	return c.header_
49991}
49992
49993func (c *AddressesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
49994	reqHeaders := make(http.Header)
49995	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
49996	for k, v := range c.header_ {
49997		reqHeaders[k] = v
49998	}
49999	reqHeaders.Set("User-Agent", c.s.userAgent())
50000	var body io.Reader = nil
50001	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
50002	if err != nil {
50003		return nil, err
50004	}
50005	reqHeaders.Set("Content-Type", "application/json")
50006	c.urlParams_.Set("alt", alt)
50007	c.urlParams_.Set("prettyPrint", "false")
50008	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses/{resource}/setLabels")
50009	urls += "?" + c.urlParams_.Encode()
50010	req, err := http.NewRequest("POST", urls, body)
50011	if err != nil {
50012		return nil, err
50013	}
50014	req.Header = reqHeaders
50015	googleapi.Expand(req.URL, map[string]string{
50016		"project":  c.project,
50017		"region":   c.region,
50018		"resource": c.resource,
50019	})
50020	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50021}
50022
50023// Do executes the "compute.addresses.setLabels" call.
50024// Exactly one of *Operation or error will be non-nil. Any non-2xx
50025// status code is an error. Response headers are in either
50026// *Operation.ServerResponse.Header or (if a response was returned at
50027// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50028// to check whether the returned error was because
50029// http.StatusNotModified was returned.
50030func (c *AddressesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50031	gensupport.SetOptions(c.urlParams_, opts...)
50032	res, err := c.doRequest("json")
50033	if res != nil && res.StatusCode == http.StatusNotModified {
50034		if res.Body != nil {
50035			res.Body.Close()
50036		}
50037		return nil, &googleapi.Error{
50038			Code:   res.StatusCode,
50039			Header: res.Header,
50040		}
50041	}
50042	if err != nil {
50043		return nil, err
50044	}
50045	defer googleapi.CloseBody(res)
50046	if err := googleapi.CheckResponse(res); err != nil {
50047		return nil, err
50048	}
50049	ret := &Operation{
50050		ServerResponse: googleapi.ServerResponse{
50051			Header:         res.Header,
50052			HTTPStatusCode: res.StatusCode,
50053		},
50054	}
50055	target := &ret
50056	if err := gensupport.DecodeResponse(target, res); err != nil {
50057		return nil, err
50058	}
50059	return ret, nil
50060	// {
50061	//   "description": "Sets the labels on an Address. To learn more about labels, read the Labeling Resources documentation.",
50062	//   "httpMethod": "POST",
50063	//   "id": "compute.addresses.setLabels",
50064	//   "parameterOrder": [
50065	//     "project",
50066	//     "region",
50067	//     "resource"
50068	//   ],
50069	//   "parameters": {
50070	//     "project": {
50071	//       "description": "Project ID for this request.",
50072	//       "location": "path",
50073	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50074	//       "required": true,
50075	//       "type": "string"
50076	//     },
50077	//     "region": {
50078	//       "description": "The region for this request.",
50079	//       "location": "path",
50080	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50081	//       "required": true,
50082	//       "type": "string"
50083	//     },
50084	//     "requestId": {
50085	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50086	//       "location": "query",
50087	//       "type": "string"
50088	//     },
50089	//     "resource": {
50090	//       "description": "Name or id of the resource for this request.",
50091	//       "location": "path",
50092	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
50093	//       "required": true,
50094	//       "type": "string"
50095	//     }
50096	//   },
50097	//   "path": "{project}/regions/{region}/addresses/{resource}/setLabels",
50098	//   "request": {
50099	//     "$ref": "RegionSetLabelsRequest"
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.addresses.testIamPermissions":
50113
50114type AddressesTestIamPermissionsCall struct {
50115	s                      *Service
50116	project                string
50117	region                 string
50118	resource               string
50119	testpermissionsrequest *TestPermissionsRequest
50120	urlParams_             gensupport.URLParams
50121	ctx_                   context.Context
50122	header_                http.Header
50123}
50124
50125// TestIamPermissions: Returns permissions that a caller has on the
50126// specified resource.
50127func (r *AddressesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *AddressesTestIamPermissionsCall {
50128	c := &AddressesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50129	c.project = project
50130	c.region = region
50131	c.resource = resource
50132	c.testpermissionsrequest = testpermissionsrequest
50133	return c
50134}
50135
50136// Fields allows partial responses to be retrieved. See
50137// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50138// for more information.
50139func (c *AddressesTestIamPermissionsCall) Fields(s ...googleapi.Field) *AddressesTestIamPermissionsCall {
50140	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50141	return c
50142}
50143
50144// Context sets the context to be used in this call's Do method. Any
50145// pending HTTP request will be aborted if the provided context is
50146// canceled.
50147func (c *AddressesTestIamPermissionsCall) Context(ctx context.Context) *AddressesTestIamPermissionsCall {
50148	c.ctx_ = ctx
50149	return c
50150}
50151
50152// Header returns an http.Header that can be modified by the caller to
50153// add HTTP headers to the request.
50154func (c *AddressesTestIamPermissionsCall) Header() http.Header {
50155	if c.header_ == nil {
50156		c.header_ = make(http.Header)
50157	}
50158	return c.header_
50159}
50160
50161func (c *AddressesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
50162	reqHeaders := make(http.Header)
50163	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
50164	for k, v := range c.header_ {
50165		reqHeaders[k] = v
50166	}
50167	reqHeaders.Set("User-Agent", c.s.userAgent())
50168	var body io.Reader = nil
50169	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
50170	if err != nil {
50171		return nil, err
50172	}
50173	reqHeaders.Set("Content-Type", "application/json")
50174	c.urlParams_.Set("alt", alt)
50175	c.urlParams_.Set("prettyPrint", "false")
50176	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses/{resource}/testIamPermissions")
50177	urls += "?" + c.urlParams_.Encode()
50178	req, err := http.NewRequest("POST", urls, body)
50179	if err != nil {
50180		return nil, err
50181	}
50182	req.Header = reqHeaders
50183	googleapi.Expand(req.URL, map[string]string{
50184		"project":  c.project,
50185		"region":   c.region,
50186		"resource": c.resource,
50187	})
50188	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50189}
50190
50191// Do executes the "compute.addresses.testIamPermissions" call.
50192// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
50193// non-2xx status code is an error. Response headers are in either
50194// *TestPermissionsResponse.ServerResponse.Header or (if a response was
50195// returned at all) in error.(*googleapi.Error).Header. Use
50196// googleapi.IsNotModified to check whether the returned error was
50197// because http.StatusNotModified was returned.
50198func (c *AddressesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
50199	gensupport.SetOptions(c.urlParams_, opts...)
50200	res, err := c.doRequest("json")
50201	if res != nil && res.StatusCode == http.StatusNotModified {
50202		if res.Body != nil {
50203			res.Body.Close()
50204		}
50205		return nil, &googleapi.Error{
50206			Code:   res.StatusCode,
50207			Header: res.Header,
50208		}
50209	}
50210	if err != nil {
50211		return nil, err
50212	}
50213	defer googleapi.CloseBody(res)
50214	if err := googleapi.CheckResponse(res); err != nil {
50215		return nil, err
50216	}
50217	ret := &TestPermissionsResponse{
50218		ServerResponse: googleapi.ServerResponse{
50219			Header:         res.Header,
50220			HTTPStatusCode: res.StatusCode,
50221		},
50222	}
50223	target := &ret
50224	if err := gensupport.DecodeResponse(target, res); err != nil {
50225		return nil, err
50226	}
50227	return ret, nil
50228	// {
50229	//   "description": "Returns permissions that a caller has on the specified resource.",
50230	//   "httpMethod": "POST",
50231	//   "id": "compute.addresses.testIamPermissions",
50232	//   "parameterOrder": [
50233	//     "project",
50234	//     "region",
50235	//     "resource"
50236	//   ],
50237	//   "parameters": {
50238	//     "project": {
50239	//       "description": "Project ID for this request.",
50240	//       "location": "path",
50241	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50242	//       "required": true,
50243	//       "type": "string"
50244	//     },
50245	//     "region": {
50246	//       "description": "The name of the region for this request.",
50247	//       "location": "path",
50248	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50249	//       "required": true,
50250	//       "type": "string"
50251	//     },
50252	//     "resource": {
50253	//       "description": "Name or id of the resource for this request.",
50254	//       "location": "path",
50255	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
50256	//       "required": true,
50257	//       "type": "string"
50258	//     }
50259	//   },
50260	//   "path": "{project}/regions/{region}/addresses/{resource}/testIamPermissions",
50261	//   "request": {
50262	//     "$ref": "TestPermissionsRequest"
50263	//   },
50264	//   "response": {
50265	//     "$ref": "TestPermissionsResponse"
50266	//   },
50267	//   "scopes": [
50268	//     "https://www.googleapis.com/auth/cloud-platform",
50269	//     "https://www.googleapis.com/auth/compute",
50270	//     "https://www.googleapis.com/auth/compute.readonly"
50271	//   ]
50272	// }
50273
50274}
50275
50276// method id "compute.autoscalers.aggregatedList":
50277
50278type AutoscalersAggregatedListCall struct {
50279	s            *Service
50280	project      string
50281	urlParams_   gensupport.URLParams
50282	ifNoneMatch_ string
50283	ctx_         context.Context
50284	header_      http.Header
50285}
50286
50287// AggregatedList: Retrieves an aggregated list of autoscalers.
50288func (r *AutoscalersService) AggregatedList(project string) *AutoscalersAggregatedListCall {
50289	c := &AutoscalersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50290	c.project = project
50291	return c
50292}
50293
50294// Filter sets the optional parameter "filter": A filter expression that
50295// filters resources listed in the response. The expression must specify
50296// the field name, a comparison operator, and the value that you want to
50297// use for filtering. The value must be a string, a number, or a
50298// boolean. The comparison operator must be either =, !=, >, or <.
50299//
50300// For example, if you are filtering Compute Engine instances, you can
50301// exclude instances named example-instance by specifying name !=
50302// example-instance.
50303//
50304// You can also filter nested fields. For example, you could specify
50305// scheduling.automaticRestart = false to include instances only if they
50306// are not scheduled for automatic restarts. You can use filtering on
50307// nested fields to filter based on resource labels.
50308//
50309// To filter on multiple expressions, provide each separate expression
50310// within parentheses. For example, (scheduling.automaticRestart = true)
50311// (cpuPlatform = "Intel Skylake"). By default, each expression is an
50312// AND expression. However, you can include AND and OR expressions
50313// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
50314// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
50315// true).
50316func (c *AutoscalersAggregatedListCall) Filter(filter string) *AutoscalersAggregatedListCall {
50317	c.urlParams_.Set("filter", filter)
50318	return c
50319}
50320
50321// IncludeAllScopes sets the optional parameter "includeAllScopes":
50322// Indicates whether every visible scope for each scope type (zone,
50323// region, global) should be included in the response. For new resource
50324// types added after this field, the flag has no effect as new resource
50325// types will always include every visible scope for each scope type in
50326// response. For resource types which predate this field, if this flag
50327// is omitted or false, only scopes of the scope types where the
50328// resource type is expected to be found will be included.
50329func (c *AutoscalersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AutoscalersAggregatedListCall {
50330	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
50331	return c
50332}
50333
50334// MaxResults sets the optional parameter "maxResults": The maximum
50335// number of results per page that should be returned. If the number of
50336// available results is larger than maxResults, Compute Engine returns a
50337// nextPageToken that can be used to get the next page of results in
50338// subsequent list requests. Acceptable values are 0 to 500, inclusive.
50339// (Default: 500)
50340func (c *AutoscalersAggregatedListCall) MaxResults(maxResults int64) *AutoscalersAggregatedListCall {
50341	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
50342	return c
50343}
50344
50345// OrderBy sets the optional parameter "orderBy": Sorts list results by
50346// a certain order. By default, results are returned in alphanumerical
50347// order based on the resource name.
50348//
50349// You can also sort results in descending order based on the creation
50350// timestamp using orderBy="creationTimestamp desc". This sorts results
50351// based on the creationTimestamp field in reverse chronological order
50352// (newest result first). Use this to sort resources like operations so
50353// that the newest operation is returned first.
50354//
50355// Currently, only sorting by name or creationTimestamp desc is
50356// supported.
50357func (c *AutoscalersAggregatedListCall) OrderBy(orderBy string) *AutoscalersAggregatedListCall {
50358	c.urlParams_.Set("orderBy", orderBy)
50359	return c
50360}
50361
50362// PageToken sets the optional parameter "pageToken": Specifies a page
50363// token to use. Set pageToken to the nextPageToken returned by a
50364// previous list request to get the next page of results.
50365func (c *AutoscalersAggregatedListCall) PageToken(pageToken string) *AutoscalersAggregatedListCall {
50366	c.urlParams_.Set("pageToken", pageToken)
50367	return c
50368}
50369
50370// Fields allows partial responses to be retrieved. See
50371// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50372// for more information.
50373func (c *AutoscalersAggregatedListCall) Fields(s ...googleapi.Field) *AutoscalersAggregatedListCall {
50374	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50375	return c
50376}
50377
50378// IfNoneMatch sets the optional parameter which makes the operation
50379// fail if the object's ETag matches the given value. This is useful for
50380// getting updates only after the object has changed since the last
50381// request. Use googleapi.IsNotModified to check whether the response
50382// error from Do is the result of In-None-Match.
50383func (c *AutoscalersAggregatedListCall) IfNoneMatch(entityTag string) *AutoscalersAggregatedListCall {
50384	c.ifNoneMatch_ = entityTag
50385	return c
50386}
50387
50388// Context sets the context to be used in this call's Do method. Any
50389// pending HTTP request will be aborted if the provided context is
50390// canceled.
50391func (c *AutoscalersAggregatedListCall) Context(ctx context.Context) *AutoscalersAggregatedListCall {
50392	c.ctx_ = ctx
50393	return c
50394}
50395
50396// Header returns an http.Header that can be modified by the caller to
50397// add HTTP headers to the request.
50398func (c *AutoscalersAggregatedListCall) Header() http.Header {
50399	if c.header_ == nil {
50400		c.header_ = make(http.Header)
50401	}
50402	return c.header_
50403}
50404
50405func (c *AutoscalersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
50406	reqHeaders := make(http.Header)
50407	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
50408	for k, v := range c.header_ {
50409		reqHeaders[k] = v
50410	}
50411	reqHeaders.Set("User-Agent", c.s.userAgent())
50412	if c.ifNoneMatch_ != "" {
50413		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
50414	}
50415	var body io.Reader = nil
50416	c.urlParams_.Set("alt", alt)
50417	c.urlParams_.Set("prettyPrint", "false")
50418	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/autoscalers")
50419	urls += "?" + c.urlParams_.Encode()
50420	req, err := http.NewRequest("GET", urls, body)
50421	if err != nil {
50422		return nil, err
50423	}
50424	req.Header = reqHeaders
50425	googleapi.Expand(req.URL, map[string]string{
50426		"project": c.project,
50427	})
50428	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50429}
50430
50431// Do executes the "compute.autoscalers.aggregatedList" call.
50432// Exactly one of *AutoscalerAggregatedList or error will be non-nil.
50433// Any non-2xx status code is an error. Response headers are in either
50434// *AutoscalerAggregatedList.ServerResponse.Header or (if a response was
50435// returned at all) in error.(*googleapi.Error).Header. Use
50436// googleapi.IsNotModified to check whether the returned error was
50437// because http.StatusNotModified was returned.
50438func (c *AutoscalersAggregatedListCall) Do(opts ...googleapi.CallOption) (*AutoscalerAggregatedList, error) {
50439	gensupport.SetOptions(c.urlParams_, opts...)
50440	res, err := c.doRequest("json")
50441	if res != nil && res.StatusCode == http.StatusNotModified {
50442		if res.Body != nil {
50443			res.Body.Close()
50444		}
50445		return nil, &googleapi.Error{
50446			Code:   res.StatusCode,
50447			Header: res.Header,
50448		}
50449	}
50450	if err != nil {
50451		return nil, err
50452	}
50453	defer googleapi.CloseBody(res)
50454	if err := googleapi.CheckResponse(res); err != nil {
50455		return nil, err
50456	}
50457	ret := &AutoscalerAggregatedList{
50458		ServerResponse: googleapi.ServerResponse{
50459			Header:         res.Header,
50460			HTTPStatusCode: res.StatusCode,
50461		},
50462	}
50463	target := &ret
50464	if err := gensupport.DecodeResponse(target, res); err != nil {
50465		return nil, err
50466	}
50467	return ret, nil
50468	// {
50469	//   "description": "Retrieves an aggregated list of autoscalers.",
50470	//   "httpMethod": "GET",
50471	//   "id": "compute.autoscalers.aggregatedList",
50472	//   "parameterOrder": [
50473	//     "project"
50474	//   ],
50475	//   "parameters": {
50476	//     "filter": {
50477	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
50478	//       "location": "query",
50479	//       "type": "string"
50480	//     },
50481	//     "includeAllScopes": {
50482	//       "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.",
50483	//       "location": "query",
50484	//       "type": "boolean"
50485	//     },
50486	//     "maxResults": {
50487	//       "default": "500",
50488	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
50489	//       "format": "uint32",
50490	//       "location": "query",
50491	//       "minimum": "0",
50492	//       "type": "integer"
50493	//     },
50494	//     "orderBy": {
50495	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
50496	//       "location": "query",
50497	//       "type": "string"
50498	//     },
50499	//     "pageToken": {
50500	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
50501	//       "location": "query",
50502	//       "type": "string"
50503	//     },
50504	//     "project": {
50505	//       "description": "Project ID for this request.",
50506	//       "location": "path",
50507	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50508	//       "required": true,
50509	//       "type": "string"
50510	//     }
50511	//   },
50512	//   "path": "{project}/aggregated/autoscalers",
50513	//   "response": {
50514	//     "$ref": "AutoscalerAggregatedList"
50515	//   },
50516	//   "scopes": [
50517	//     "https://www.googleapis.com/auth/cloud-platform",
50518	//     "https://www.googleapis.com/auth/compute",
50519	//     "https://www.googleapis.com/auth/compute.readonly"
50520	//   ]
50521	// }
50522
50523}
50524
50525// Pages invokes f for each page of results.
50526// A non-nil error returned from f will halt the iteration.
50527// The provided context supersedes any context provided to the Context method.
50528func (c *AutoscalersAggregatedListCall) Pages(ctx context.Context, f func(*AutoscalerAggregatedList) error) error {
50529	c.ctx_ = ctx
50530	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
50531	for {
50532		x, err := c.Do()
50533		if err != nil {
50534			return err
50535		}
50536		if err := f(x); err != nil {
50537			return err
50538		}
50539		if x.NextPageToken == "" {
50540			return nil
50541		}
50542		c.PageToken(x.NextPageToken)
50543	}
50544}
50545
50546// method id "compute.autoscalers.delete":
50547
50548type AutoscalersDeleteCall struct {
50549	s          *Service
50550	project    string
50551	zone       string
50552	autoscaler string
50553	urlParams_ gensupport.URLParams
50554	ctx_       context.Context
50555	header_    http.Header
50556}
50557
50558// Delete: Deletes the specified autoscaler.
50559func (r *AutoscalersService) Delete(project string, zone string, autoscaler string) *AutoscalersDeleteCall {
50560	c := &AutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50561	c.project = project
50562	c.zone = zone
50563	c.autoscaler = autoscaler
50564	return c
50565}
50566
50567// RequestId sets the optional parameter "requestId": An optional
50568// request ID to identify requests. Specify a unique request ID so that
50569// if you must retry your request, the server will know to ignore the
50570// request if it has already been completed.
50571//
50572// For example, consider a situation where you make an initial request
50573// and the request times out. If you make the request again with the
50574// same request ID, the server can check if original operation with the
50575// same request ID was received, and if so, will ignore the second
50576// request. This prevents clients from accidentally creating duplicate
50577// commitments.
50578//
50579// The request ID must be a valid UUID with the exception that zero UUID
50580// is not supported (00000000-0000-0000-0000-000000000000).
50581func (c *AutoscalersDeleteCall) RequestId(requestId string) *AutoscalersDeleteCall {
50582	c.urlParams_.Set("requestId", requestId)
50583	return c
50584}
50585
50586// Fields allows partial responses to be retrieved. See
50587// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50588// for more information.
50589func (c *AutoscalersDeleteCall) Fields(s ...googleapi.Field) *AutoscalersDeleteCall {
50590	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50591	return c
50592}
50593
50594// Context sets the context to be used in this call's Do method. Any
50595// pending HTTP request will be aborted if the provided context is
50596// canceled.
50597func (c *AutoscalersDeleteCall) Context(ctx context.Context) *AutoscalersDeleteCall {
50598	c.ctx_ = ctx
50599	return c
50600}
50601
50602// Header returns an http.Header that can be modified by the caller to
50603// add HTTP headers to the request.
50604func (c *AutoscalersDeleteCall) Header() http.Header {
50605	if c.header_ == nil {
50606		c.header_ = make(http.Header)
50607	}
50608	return c.header_
50609}
50610
50611func (c *AutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) {
50612	reqHeaders := make(http.Header)
50613	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
50614	for k, v := range c.header_ {
50615		reqHeaders[k] = v
50616	}
50617	reqHeaders.Set("User-Agent", c.s.userAgent())
50618	var body io.Reader = nil
50619	c.urlParams_.Set("alt", alt)
50620	c.urlParams_.Set("prettyPrint", "false")
50621	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers/{autoscaler}")
50622	urls += "?" + c.urlParams_.Encode()
50623	req, err := http.NewRequest("DELETE", urls, body)
50624	if err != nil {
50625		return nil, err
50626	}
50627	req.Header = reqHeaders
50628	googleapi.Expand(req.URL, map[string]string{
50629		"project":    c.project,
50630		"zone":       c.zone,
50631		"autoscaler": c.autoscaler,
50632	})
50633	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50634}
50635
50636// Do executes the "compute.autoscalers.delete" call.
50637// Exactly one of *Operation or error will be non-nil. Any non-2xx
50638// status code is an error. Response headers are in either
50639// *Operation.ServerResponse.Header or (if a response was returned at
50640// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50641// to check whether the returned error was because
50642// http.StatusNotModified was returned.
50643func (c *AutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50644	gensupport.SetOptions(c.urlParams_, opts...)
50645	res, err := c.doRequest("json")
50646	if res != nil && res.StatusCode == http.StatusNotModified {
50647		if res.Body != nil {
50648			res.Body.Close()
50649		}
50650		return nil, &googleapi.Error{
50651			Code:   res.StatusCode,
50652			Header: res.Header,
50653		}
50654	}
50655	if err != nil {
50656		return nil, err
50657	}
50658	defer googleapi.CloseBody(res)
50659	if err := googleapi.CheckResponse(res); err != nil {
50660		return nil, err
50661	}
50662	ret := &Operation{
50663		ServerResponse: googleapi.ServerResponse{
50664			Header:         res.Header,
50665			HTTPStatusCode: res.StatusCode,
50666		},
50667	}
50668	target := &ret
50669	if err := gensupport.DecodeResponse(target, res); err != nil {
50670		return nil, err
50671	}
50672	return ret, nil
50673	// {
50674	//   "description": "Deletes the specified autoscaler.",
50675	//   "httpMethod": "DELETE",
50676	//   "id": "compute.autoscalers.delete",
50677	//   "parameterOrder": [
50678	//     "project",
50679	//     "zone",
50680	//     "autoscaler"
50681	//   ],
50682	//   "parameters": {
50683	//     "autoscaler": {
50684	//       "description": "Name of the autoscaler to delete.",
50685	//       "location": "path",
50686	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
50687	//       "required": true,
50688	//       "type": "string"
50689	//     },
50690	//     "project": {
50691	//       "description": "Project ID for this request.",
50692	//       "location": "path",
50693	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50694	//       "required": true,
50695	//       "type": "string"
50696	//     },
50697	//     "requestId": {
50698	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50699	//       "location": "query",
50700	//       "type": "string"
50701	//     },
50702	//     "zone": {
50703	//       "description": "Name of the zone for this request.",
50704	//       "location": "path",
50705	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50706	//       "required": true,
50707	//       "type": "string"
50708	//     }
50709	//   },
50710	//   "path": "{project}/zones/{zone}/autoscalers/{autoscaler}",
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.autoscalers.get":
50723
50724type AutoscalersGetCall struct {
50725	s            *Service
50726	project      string
50727	zone         string
50728	autoscaler   string
50729	urlParams_   gensupport.URLParams
50730	ifNoneMatch_ string
50731	ctx_         context.Context
50732	header_      http.Header
50733}
50734
50735// Get: Returns the specified autoscaler resource. Gets a list of
50736// available autoscalers by making a list() request.
50737func (r *AutoscalersService) Get(project string, zone string, autoscaler string) *AutoscalersGetCall {
50738	c := &AutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50739	c.project = project
50740	c.zone = zone
50741	c.autoscaler = autoscaler
50742	return c
50743}
50744
50745// Fields allows partial responses to be retrieved. See
50746// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50747// for more information.
50748func (c *AutoscalersGetCall) Fields(s ...googleapi.Field) *AutoscalersGetCall {
50749	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50750	return c
50751}
50752
50753// IfNoneMatch sets the optional parameter which makes the operation
50754// fail if the object's ETag matches the given value. This is useful for
50755// getting updates only after the object has changed since the last
50756// request. Use googleapi.IsNotModified to check whether the response
50757// error from Do is the result of In-None-Match.
50758func (c *AutoscalersGetCall) IfNoneMatch(entityTag string) *AutoscalersGetCall {
50759	c.ifNoneMatch_ = entityTag
50760	return c
50761}
50762
50763// Context sets the context to be used in this call's Do method. Any
50764// pending HTTP request will be aborted if the provided context is
50765// canceled.
50766func (c *AutoscalersGetCall) Context(ctx context.Context) *AutoscalersGetCall {
50767	c.ctx_ = ctx
50768	return c
50769}
50770
50771// Header returns an http.Header that can be modified by the caller to
50772// add HTTP headers to the request.
50773func (c *AutoscalersGetCall) Header() http.Header {
50774	if c.header_ == nil {
50775		c.header_ = make(http.Header)
50776	}
50777	return c.header_
50778}
50779
50780func (c *AutoscalersGetCall) doRequest(alt string) (*http.Response, error) {
50781	reqHeaders := make(http.Header)
50782	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
50783	for k, v := range c.header_ {
50784		reqHeaders[k] = v
50785	}
50786	reqHeaders.Set("User-Agent", c.s.userAgent())
50787	if c.ifNoneMatch_ != "" {
50788		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
50789	}
50790	var body io.Reader = nil
50791	c.urlParams_.Set("alt", alt)
50792	c.urlParams_.Set("prettyPrint", "false")
50793	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers/{autoscaler}")
50794	urls += "?" + c.urlParams_.Encode()
50795	req, err := http.NewRequest("GET", urls, body)
50796	if err != nil {
50797		return nil, err
50798	}
50799	req.Header = reqHeaders
50800	googleapi.Expand(req.URL, map[string]string{
50801		"project":    c.project,
50802		"zone":       c.zone,
50803		"autoscaler": c.autoscaler,
50804	})
50805	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50806}
50807
50808// Do executes the "compute.autoscalers.get" call.
50809// Exactly one of *Autoscaler or error will be non-nil. Any non-2xx
50810// status code is an error. Response headers are in either
50811// *Autoscaler.ServerResponse.Header or (if a response was returned at
50812// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50813// to check whether the returned error was because
50814// http.StatusNotModified was returned.
50815func (c *AutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) {
50816	gensupport.SetOptions(c.urlParams_, opts...)
50817	res, err := c.doRequest("json")
50818	if res != nil && res.StatusCode == http.StatusNotModified {
50819		if res.Body != nil {
50820			res.Body.Close()
50821		}
50822		return nil, &googleapi.Error{
50823			Code:   res.StatusCode,
50824			Header: res.Header,
50825		}
50826	}
50827	if err != nil {
50828		return nil, err
50829	}
50830	defer googleapi.CloseBody(res)
50831	if err := googleapi.CheckResponse(res); err != nil {
50832		return nil, err
50833	}
50834	ret := &Autoscaler{
50835		ServerResponse: googleapi.ServerResponse{
50836			Header:         res.Header,
50837			HTTPStatusCode: res.StatusCode,
50838		},
50839	}
50840	target := &ret
50841	if err := gensupport.DecodeResponse(target, res); err != nil {
50842		return nil, err
50843	}
50844	return ret, nil
50845	// {
50846	//   "description": "Returns the specified autoscaler resource. Gets a list of available autoscalers by making a list() request.",
50847	//   "httpMethod": "GET",
50848	//   "id": "compute.autoscalers.get",
50849	//   "parameterOrder": [
50850	//     "project",
50851	//     "zone",
50852	//     "autoscaler"
50853	//   ],
50854	//   "parameters": {
50855	//     "autoscaler": {
50856	//       "description": "Name of the autoscaler to return.",
50857	//       "location": "path",
50858	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
50859	//       "required": true,
50860	//       "type": "string"
50861	//     },
50862	//     "project": {
50863	//       "description": "Project ID for this request.",
50864	//       "location": "path",
50865	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50866	//       "required": true,
50867	//       "type": "string"
50868	//     },
50869	//     "zone": {
50870	//       "description": "Name of the zone for this request.",
50871	//       "location": "path",
50872	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50873	//       "required": true,
50874	//       "type": "string"
50875	//     }
50876	//   },
50877	//   "path": "{project}/zones/{zone}/autoscalers/{autoscaler}",
50878	//   "response": {
50879	//     "$ref": "Autoscaler"
50880	//   },
50881	//   "scopes": [
50882	//     "https://www.googleapis.com/auth/cloud-platform",
50883	//     "https://www.googleapis.com/auth/compute",
50884	//     "https://www.googleapis.com/auth/compute.readonly"
50885	//   ]
50886	// }
50887
50888}
50889
50890// method id "compute.autoscalers.insert":
50891
50892type AutoscalersInsertCall struct {
50893	s          *Service
50894	project    string
50895	zone       string
50896	autoscaler *Autoscaler
50897	urlParams_ gensupport.URLParams
50898	ctx_       context.Context
50899	header_    http.Header
50900}
50901
50902// Insert: Creates an autoscaler in the specified project using the data
50903// included in the request.
50904func (r *AutoscalersService) Insert(project string, zone string, autoscaler *Autoscaler) *AutoscalersInsertCall {
50905	c := &AutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50906	c.project = project
50907	c.zone = zone
50908	c.autoscaler = autoscaler
50909	return c
50910}
50911
50912// RequestId sets the optional parameter "requestId": An optional
50913// request ID to identify requests. Specify a unique request ID so that
50914// if you must retry your request, the server will know to ignore the
50915// request if it has already been completed.
50916//
50917// For example, consider a situation where you make an initial request
50918// and the request times out. If you make the request again with the
50919// same request ID, the server can check if original operation with the
50920// same request ID was received, and if so, will ignore the second
50921// request. This prevents clients from accidentally creating duplicate
50922// commitments.
50923//
50924// The request ID must be a valid UUID with the exception that zero UUID
50925// is not supported (00000000-0000-0000-0000-000000000000).
50926func (c *AutoscalersInsertCall) RequestId(requestId string) *AutoscalersInsertCall {
50927	c.urlParams_.Set("requestId", requestId)
50928	return c
50929}
50930
50931// Fields allows partial responses to be retrieved. See
50932// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50933// for more information.
50934func (c *AutoscalersInsertCall) Fields(s ...googleapi.Field) *AutoscalersInsertCall {
50935	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50936	return c
50937}
50938
50939// Context sets the context to be used in this call's Do method. Any
50940// pending HTTP request will be aborted if the provided context is
50941// canceled.
50942func (c *AutoscalersInsertCall) Context(ctx context.Context) *AutoscalersInsertCall {
50943	c.ctx_ = ctx
50944	return c
50945}
50946
50947// Header returns an http.Header that can be modified by the caller to
50948// add HTTP headers to the request.
50949func (c *AutoscalersInsertCall) Header() http.Header {
50950	if c.header_ == nil {
50951		c.header_ = make(http.Header)
50952	}
50953	return c.header_
50954}
50955
50956func (c *AutoscalersInsertCall) doRequest(alt string) (*http.Response, error) {
50957	reqHeaders := make(http.Header)
50958	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
50959	for k, v := range c.header_ {
50960		reqHeaders[k] = v
50961	}
50962	reqHeaders.Set("User-Agent", c.s.userAgent())
50963	var body io.Reader = nil
50964	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
50965	if err != nil {
50966		return nil, err
50967	}
50968	reqHeaders.Set("Content-Type", "application/json")
50969	c.urlParams_.Set("alt", alt)
50970	c.urlParams_.Set("prettyPrint", "false")
50971	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
50972	urls += "?" + c.urlParams_.Encode()
50973	req, err := http.NewRequest("POST", urls, body)
50974	if err != nil {
50975		return nil, err
50976	}
50977	req.Header = reqHeaders
50978	googleapi.Expand(req.URL, map[string]string{
50979		"project": c.project,
50980		"zone":    c.zone,
50981	})
50982	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50983}
50984
50985// Do executes the "compute.autoscalers.insert" call.
50986// Exactly one of *Operation or error will be non-nil. Any non-2xx
50987// status code is an error. Response headers are in either
50988// *Operation.ServerResponse.Header or (if a response was returned at
50989// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50990// to check whether the returned error was because
50991// http.StatusNotModified was returned.
50992func (c *AutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50993	gensupport.SetOptions(c.urlParams_, opts...)
50994	res, err := c.doRequest("json")
50995	if res != nil && res.StatusCode == http.StatusNotModified {
50996		if res.Body != nil {
50997			res.Body.Close()
50998		}
50999		return nil, &googleapi.Error{
51000			Code:   res.StatusCode,
51001			Header: res.Header,
51002		}
51003	}
51004	if err != nil {
51005		return nil, err
51006	}
51007	defer googleapi.CloseBody(res)
51008	if err := googleapi.CheckResponse(res); err != nil {
51009		return nil, err
51010	}
51011	ret := &Operation{
51012		ServerResponse: googleapi.ServerResponse{
51013			Header:         res.Header,
51014			HTTPStatusCode: res.StatusCode,
51015		},
51016	}
51017	target := &ret
51018	if err := gensupport.DecodeResponse(target, res); err != nil {
51019		return nil, err
51020	}
51021	return ret, nil
51022	// {
51023	//   "description": "Creates an autoscaler in the specified project using the data included in the request.",
51024	//   "httpMethod": "POST",
51025	//   "id": "compute.autoscalers.insert",
51026	//   "parameterOrder": [
51027	//     "project",
51028	//     "zone"
51029	//   ],
51030	//   "parameters": {
51031	//     "project": {
51032	//       "description": "Project ID for this request.",
51033	//       "location": "path",
51034	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51035	//       "required": true,
51036	//       "type": "string"
51037	//     },
51038	//     "requestId": {
51039	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51040	//       "location": "query",
51041	//       "type": "string"
51042	//     },
51043	//     "zone": {
51044	//       "description": "Name of the zone for this request.",
51045	//       "location": "path",
51046	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51047	//       "required": true,
51048	//       "type": "string"
51049	//     }
51050	//   },
51051	//   "path": "{project}/zones/{zone}/autoscalers",
51052	//   "request": {
51053	//     "$ref": "Autoscaler"
51054	//   },
51055	//   "response": {
51056	//     "$ref": "Operation"
51057	//   },
51058	//   "scopes": [
51059	//     "https://www.googleapis.com/auth/cloud-platform",
51060	//     "https://www.googleapis.com/auth/compute"
51061	//   ]
51062	// }
51063
51064}
51065
51066// method id "compute.autoscalers.list":
51067
51068type AutoscalersListCall struct {
51069	s            *Service
51070	project      string
51071	zone         string
51072	urlParams_   gensupport.URLParams
51073	ifNoneMatch_ string
51074	ctx_         context.Context
51075	header_      http.Header
51076}
51077
51078// List: Retrieves a list of autoscalers contained within the specified
51079// zone.
51080func (r *AutoscalersService) List(project string, zone string) *AutoscalersListCall {
51081	c := &AutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51082	c.project = project
51083	c.zone = zone
51084	return c
51085}
51086
51087// Filter sets the optional parameter "filter": A filter expression that
51088// filters resources listed in the response. The expression must specify
51089// the field name, a comparison operator, and the value that you want to
51090// use for filtering. The value must be a string, a number, or a
51091// boolean. The comparison operator must be either =, !=, >, or <.
51092//
51093// For example, if you are filtering Compute Engine instances, you can
51094// exclude instances named example-instance by specifying name !=
51095// example-instance.
51096//
51097// You can also filter nested fields. For example, you could specify
51098// scheduling.automaticRestart = false to include instances only if they
51099// are not scheduled for automatic restarts. You can use filtering on
51100// nested fields to filter based on resource labels.
51101//
51102// To filter on multiple expressions, provide each separate expression
51103// within parentheses. For example, (scheduling.automaticRestart = true)
51104// (cpuPlatform = "Intel Skylake"). By default, each expression is an
51105// AND expression. However, you can include AND and OR expressions
51106// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
51107// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
51108// true).
51109func (c *AutoscalersListCall) Filter(filter string) *AutoscalersListCall {
51110	c.urlParams_.Set("filter", filter)
51111	return c
51112}
51113
51114// MaxResults sets the optional parameter "maxResults": The maximum
51115// number of results per page that should be returned. If the number of
51116// available results is larger than maxResults, Compute Engine returns a
51117// nextPageToken that can be used to get the next page of results in
51118// subsequent list requests. Acceptable values are 0 to 500, inclusive.
51119// (Default: 500)
51120func (c *AutoscalersListCall) MaxResults(maxResults int64) *AutoscalersListCall {
51121	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
51122	return c
51123}
51124
51125// OrderBy sets the optional parameter "orderBy": Sorts list results by
51126// a certain order. By default, results are returned in alphanumerical
51127// order based on the resource name.
51128//
51129// You can also sort results in descending order based on the creation
51130// timestamp using orderBy="creationTimestamp desc". This sorts results
51131// based on the creationTimestamp field in reverse chronological order
51132// (newest result first). Use this to sort resources like operations so
51133// that the newest operation is returned first.
51134//
51135// Currently, only sorting by name or creationTimestamp desc is
51136// supported.
51137func (c *AutoscalersListCall) OrderBy(orderBy string) *AutoscalersListCall {
51138	c.urlParams_.Set("orderBy", orderBy)
51139	return c
51140}
51141
51142// PageToken sets the optional parameter "pageToken": Specifies a page
51143// token to use. Set pageToken to the nextPageToken returned by a
51144// previous list request to get the next page of results.
51145func (c *AutoscalersListCall) PageToken(pageToken string) *AutoscalersListCall {
51146	c.urlParams_.Set("pageToken", pageToken)
51147	return c
51148}
51149
51150// Fields allows partial responses to be retrieved. See
51151// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51152// for more information.
51153func (c *AutoscalersListCall) Fields(s ...googleapi.Field) *AutoscalersListCall {
51154	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51155	return c
51156}
51157
51158// IfNoneMatch sets the optional parameter which makes the operation
51159// fail if the object's ETag matches the given value. This is useful for
51160// getting updates only after the object has changed since the last
51161// request. Use googleapi.IsNotModified to check whether the response
51162// error from Do is the result of In-None-Match.
51163func (c *AutoscalersListCall) IfNoneMatch(entityTag string) *AutoscalersListCall {
51164	c.ifNoneMatch_ = entityTag
51165	return c
51166}
51167
51168// Context sets the context to be used in this call's Do method. Any
51169// pending HTTP request will be aborted if the provided context is
51170// canceled.
51171func (c *AutoscalersListCall) Context(ctx context.Context) *AutoscalersListCall {
51172	c.ctx_ = ctx
51173	return c
51174}
51175
51176// Header returns an http.Header that can be modified by the caller to
51177// add HTTP headers to the request.
51178func (c *AutoscalersListCall) Header() http.Header {
51179	if c.header_ == nil {
51180		c.header_ = make(http.Header)
51181	}
51182	return c.header_
51183}
51184
51185func (c *AutoscalersListCall) doRequest(alt string) (*http.Response, error) {
51186	reqHeaders := make(http.Header)
51187	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
51188	for k, v := range c.header_ {
51189		reqHeaders[k] = v
51190	}
51191	reqHeaders.Set("User-Agent", c.s.userAgent())
51192	if c.ifNoneMatch_ != "" {
51193		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
51194	}
51195	var body io.Reader = nil
51196	c.urlParams_.Set("alt", alt)
51197	c.urlParams_.Set("prettyPrint", "false")
51198	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
51199	urls += "?" + c.urlParams_.Encode()
51200	req, err := http.NewRequest("GET", urls, body)
51201	if err != nil {
51202		return nil, err
51203	}
51204	req.Header = reqHeaders
51205	googleapi.Expand(req.URL, map[string]string{
51206		"project": c.project,
51207		"zone":    c.zone,
51208	})
51209	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51210}
51211
51212// Do executes the "compute.autoscalers.list" call.
51213// Exactly one of *AutoscalerList or error will be non-nil. Any non-2xx
51214// status code is an error. Response headers are in either
51215// *AutoscalerList.ServerResponse.Header or (if a response was returned
51216// at all) in error.(*googleapi.Error).Header. Use
51217// googleapi.IsNotModified to check whether the returned error was
51218// because http.StatusNotModified was returned.
51219func (c *AutoscalersListCall) Do(opts ...googleapi.CallOption) (*AutoscalerList, error) {
51220	gensupport.SetOptions(c.urlParams_, opts...)
51221	res, err := c.doRequest("json")
51222	if res != nil && res.StatusCode == http.StatusNotModified {
51223		if res.Body != nil {
51224			res.Body.Close()
51225		}
51226		return nil, &googleapi.Error{
51227			Code:   res.StatusCode,
51228			Header: res.Header,
51229		}
51230	}
51231	if err != nil {
51232		return nil, err
51233	}
51234	defer googleapi.CloseBody(res)
51235	if err := googleapi.CheckResponse(res); err != nil {
51236		return nil, err
51237	}
51238	ret := &AutoscalerList{
51239		ServerResponse: googleapi.ServerResponse{
51240			Header:         res.Header,
51241			HTTPStatusCode: res.StatusCode,
51242		},
51243	}
51244	target := &ret
51245	if err := gensupport.DecodeResponse(target, res); err != nil {
51246		return nil, err
51247	}
51248	return ret, nil
51249	// {
51250	//   "description": "Retrieves a list of autoscalers contained within the specified zone.",
51251	//   "httpMethod": "GET",
51252	//   "id": "compute.autoscalers.list",
51253	//   "parameterOrder": [
51254	//     "project",
51255	//     "zone"
51256	//   ],
51257	//   "parameters": {
51258	//     "filter": {
51259	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
51260	//       "location": "query",
51261	//       "type": "string"
51262	//     },
51263	//     "maxResults": {
51264	//       "default": "500",
51265	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
51266	//       "format": "uint32",
51267	//       "location": "query",
51268	//       "minimum": "0",
51269	//       "type": "integer"
51270	//     },
51271	//     "orderBy": {
51272	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
51273	//       "location": "query",
51274	//       "type": "string"
51275	//     },
51276	//     "pageToken": {
51277	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
51278	//       "location": "query",
51279	//       "type": "string"
51280	//     },
51281	//     "project": {
51282	//       "description": "Project ID for this request.",
51283	//       "location": "path",
51284	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51285	//       "required": true,
51286	//       "type": "string"
51287	//     },
51288	//     "zone": {
51289	//       "description": "Name of the zone for this request.",
51290	//       "location": "path",
51291	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51292	//       "required": true,
51293	//       "type": "string"
51294	//     }
51295	//   },
51296	//   "path": "{project}/zones/{zone}/autoscalers",
51297	//   "response": {
51298	//     "$ref": "AutoscalerList"
51299	//   },
51300	//   "scopes": [
51301	//     "https://www.googleapis.com/auth/cloud-platform",
51302	//     "https://www.googleapis.com/auth/compute",
51303	//     "https://www.googleapis.com/auth/compute.readonly"
51304	//   ]
51305	// }
51306
51307}
51308
51309// Pages invokes f for each page of results.
51310// A non-nil error returned from f will halt the iteration.
51311// The provided context supersedes any context provided to the Context method.
51312func (c *AutoscalersListCall) Pages(ctx context.Context, f func(*AutoscalerList) error) error {
51313	c.ctx_ = ctx
51314	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
51315	for {
51316		x, err := c.Do()
51317		if err != nil {
51318			return err
51319		}
51320		if err := f(x); err != nil {
51321			return err
51322		}
51323		if x.NextPageToken == "" {
51324			return nil
51325		}
51326		c.PageToken(x.NextPageToken)
51327	}
51328}
51329
51330// method id "compute.autoscalers.patch":
51331
51332type AutoscalersPatchCall struct {
51333	s          *Service
51334	project    string
51335	zone       string
51336	autoscaler *Autoscaler
51337	urlParams_ gensupport.URLParams
51338	ctx_       context.Context
51339	header_    http.Header
51340}
51341
51342// Patch: Updates an autoscaler in the specified project using the data
51343// included in the request. This method supports PATCH semantics and
51344// uses the JSON merge patch format and processing rules.
51345func (r *AutoscalersService) Patch(project string, zone string, autoscaler *Autoscaler) *AutoscalersPatchCall {
51346	c := &AutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51347	c.project = project
51348	c.zone = zone
51349	c.autoscaler = autoscaler
51350	return c
51351}
51352
51353// Autoscaler sets the optional parameter "autoscaler": Name of the
51354// autoscaler to patch.
51355func (c *AutoscalersPatchCall) Autoscaler(autoscaler string) *AutoscalersPatchCall {
51356	c.urlParams_.Set("autoscaler", autoscaler)
51357	return c
51358}
51359
51360// RequestId sets the optional parameter "requestId": An optional
51361// request ID to identify requests. Specify a unique request ID so that
51362// if you must retry your request, the server will know to ignore the
51363// request if it has already been completed.
51364//
51365// For example, consider a situation where you make an initial request
51366// and the request times out. If you make the request again with the
51367// same request ID, the server can check if original operation with the
51368// same request ID was received, and if so, will ignore the second
51369// request. This prevents clients from accidentally creating duplicate
51370// commitments.
51371//
51372// The request ID must be a valid UUID with the exception that zero UUID
51373// is not supported (00000000-0000-0000-0000-000000000000).
51374func (c *AutoscalersPatchCall) RequestId(requestId string) *AutoscalersPatchCall {
51375	c.urlParams_.Set("requestId", requestId)
51376	return c
51377}
51378
51379// Fields allows partial responses to be retrieved. See
51380// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51381// for more information.
51382func (c *AutoscalersPatchCall) Fields(s ...googleapi.Field) *AutoscalersPatchCall {
51383	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51384	return c
51385}
51386
51387// Context sets the context to be used in this call's Do method. Any
51388// pending HTTP request will be aborted if the provided context is
51389// canceled.
51390func (c *AutoscalersPatchCall) Context(ctx context.Context) *AutoscalersPatchCall {
51391	c.ctx_ = ctx
51392	return c
51393}
51394
51395// Header returns an http.Header that can be modified by the caller to
51396// add HTTP headers to the request.
51397func (c *AutoscalersPatchCall) Header() http.Header {
51398	if c.header_ == nil {
51399		c.header_ = make(http.Header)
51400	}
51401	return c.header_
51402}
51403
51404func (c *AutoscalersPatchCall) doRequest(alt string) (*http.Response, error) {
51405	reqHeaders := make(http.Header)
51406	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
51407	for k, v := range c.header_ {
51408		reqHeaders[k] = v
51409	}
51410	reqHeaders.Set("User-Agent", c.s.userAgent())
51411	var body io.Reader = nil
51412	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
51413	if err != nil {
51414		return nil, err
51415	}
51416	reqHeaders.Set("Content-Type", "application/json")
51417	c.urlParams_.Set("alt", alt)
51418	c.urlParams_.Set("prettyPrint", "false")
51419	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
51420	urls += "?" + c.urlParams_.Encode()
51421	req, err := http.NewRequest("PATCH", urls, body)
51422	if err != nil {
51423		return nil, err
51424	}
51425	req.Header = reqHeaders
51426	googleapi.Expand(req.URL, map[string]string{
51427		"project": c.project,
51428		"zone":    c.zone,
51429	})
51430	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51431}
51432
51433// Do executes the "compute.autoscalers.patch" call.
51434// Exactly one of *Operation or error will be non-nil. Any non-2xx
51435// status code is an error. Response headers are in either
51436// *Operation.ServerResponse.Header or (if a response was returned at
51437// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51438// to check whether the returned error was because
51439// http.StatusNotModified was returned.
51440func (c *AutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51441	gensupport.SetOptions(c.urlParams_, opts...)
51442	res, err := c.doRequest("json")
51443	if res != nil && res.StatusCode == http.StatusNotModified {
51444		if res.Body != nil {
51445			res.Body.Close()
51446		}
51447		return nil, &googleapi.Error{
51448			Code:   res.StatusCode,
51449			Header: res.Header,
51450		}
51451	}
51452	if err != nil {
51453		return nil, err
51454	}
51455	defer googleapi.CloseBody(res)
51456	if err := googleapi.CheckResponse(res); err != nil {
51457		return nil, err
51458	}
51459	ret := &Operation{
51460		ServerResponse: googleapi.ServerResponse{
51461			Header:         res.Header,
51462			HTTPStatusCode: res.StatusCode,
51463		},
51464	}
51465	target := &ret
51466	if err := gensupport.DecodeResponse(target, res); err != nil {
51467		return nil, err
51468	}
51469	return ret, nil
51470	// {
51471	//   "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.",
51472	//   "httpMethod": "PATCH",
51473	//   "id": "compute.autoscalers.patch",
51474	//   "parameterOrder": [
51475	//     "project",
51476	//     "zone"
51477	//   ],
51478	//   "parameters": {
51479	//     "autoscaler": {
51480	//       "description": "Name of the autoscaler to patch.",
51481	//       "location": "query",
51482	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
51483	//       "type": "string"
51484	//     },
51485	//     "project": {
51486	//       "description": "Project ID for this request.",
51487	//       "location": "path",
51488	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51489	//       "required": true,
51490	//       "type": "string"
51491	//     },
51492	//     "requestId": {
51493	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51494	//       "location": "query",
51495	//       "type": "string"
51496	//     },
51497	//     "zone": {
51498	//       "description": "Name of the zone for this request.",
51499	//       "location": "path",
51500	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51501	//       "required": true,
51502	//       "type": "string"
51503	//     }
51504	//   },
51505	//   "path": "{project}/zones/{zone}/autoscalers",
51506	//   "request": {
51507	//     "$ref": "Autoscaler"
51508	//   },
51509	//   "response": {
51510	//     "$ref": "Operation"
51511	//   },
51512	//   "scopes": [
51513	//     "https://www.googleapis.com/auth/cloud-platform",
51514	//     "https://www.googleapis.com/auth/compute"
51515	//   ]
51516	// }
51517
51518}
51519
51520// method id "compute.autoscalers.testIamPermissions":
51521
51522type AutoscalersTestIamPermissionsCall struct {
51523	s                      *Service
51524	project                string
51525	zone                   string
51526	resource               string
51527	testpermissionsrequest *TestPermissionsRequest
51528	urlParams_             gensupport.URLParams
51529	ctx_                   context.Context
51530	header_                http.Header
51531}
51532
51533// TestIamPermissions: Returns permissions that a caller has on the
51534// specified resource.
51535func (r *AutoscalersService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *AutoscalersTestIamPermissionsCall {
51536	c := &AutoscalersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51537	c.project = project
51538	c.zone = zone
51539	c.resource = resource
51540	c.testpermissionsrequest = testpermissionsrequest
51541	return c
51542}
51543
51544// Fields allows partial responses to be retrieved. See
51545// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51546// for more information.
51547func (c *AutoscalersTestIamPermissionsCall) Fields(s ...googleapi.Field) *AutoscalersTestIamPermissionsCall {
51548	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51549	return c
51550}
51551
51552// Context sets the context to be used in this call's Do method. Any
51553// pending HTTP request will be aborted if the provided context is
51554// canceled.
51555func (c *AutoscalersTestIamPermissionsCall) Context(ctx context.Context) *AutoscalersTestIamPermissionsCall {
51556	c.ctx_ = ctx
51557	return c
51558}
51559
51560// Header returns an http.Header that can be modified by the caller to
51561// add HTTP headers to the request.
51562func (c *AutoscalersTestIamPermissionsCall) Header() http.Header {
51563	if c.header_ == nil {
51564		c.header_ = make(http.Header)
51565	}
51566	return c.header_
51567}
51568
51569func (c *AutoscalersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
51570	reqHeaders := make(http.Header)
51571	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
51572	for k, v := range c.header_ {
51573		reqHeaders[k] = v
51574	}
51575	reqHeaders.Set("User-Agent", c.s.userAgent())
51576	var body io.Reader = nil
51577	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
51578	if err != nil {
51579		return nil, err
51580	}
51581	reqHeaders.Set("Content-Type", "application/json")
51582	c.urlParams_.Set("alt", alt)
51583	c.urlParams_.Set("prettyPrint", "false")
51584	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers/{resource}/testIamPermissions")
51585	urls += "?" + c.urlParams_.Encode()
51586	req, err := http.NewRequest("POST", urls, body)
51587	if err != nil {
51588		return nil, err
51589	}
51590	req.Header = reqHeaders
51591	googleapi.Expand(req.URL, map[string]string{
51592		"project":  c.project,
51593		"zone":     c.zone,
51594		"resource": c.resource,
51595	})
51596	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51597}
51598
51599// Do executes the "compute.autoscalers.testIamPermissions" call.
51600// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
51601// non-2xx status code is an error. Response headers are in either
51602// *TestPermissionsResponse.ServerResponse.Header or (if a response was
51603// returned at all) in error.(*googleapi.Error).Header. Use
51604// googleapi.IsNotModified to check whether the returned error was
51605// because http.StatusNotModified was returned.
51606func (c *AutoscalersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
51607	gensupport.SetOptions(c.urlParams_, opts...)
51608	res, err := c.doRequest("json")
51609	if res != nil && res.StatusCode == http.StatusNotModified {
51610		if res.Body != nil {
51611			res.Body.Close()
51612		}
51613		return nil, &googleapi.Error{
51614			Code:   res.StatusCode,
51615			Header: res.Header,
51616		}
51617	}
51618	if err != nil {
51619		return nil, err
51620	}
51621	defer googleapi.CloseBody(res)
51622	if err := googleapi.CheckResponse(res); err != nil {
51623		return nil, err
51624	}
51625	ret := &TestPermissionsResponse{
51626		ServerResponse: googleapi.ServerResponse{
51627			Header:         res.Header,
51628			HTTPStatusCode: res.StatusCode,
51629		},
51630	}
51631	target := &ret
51632	if err := gensupport.DecodeResponse(target, res); err != nil {
51633		return nil, err
51634	}
51635	return ret, nil
51636	// {
51637	//   "description": "Returns permissions that a caller has on the specified resource.",
51638	//   "httpMethod": "POST",
51639	//   "id": "compute.autoscalers.testIamPermissions",
51640	//   "parameterOrder": [
51641	//     "project",
51642	//     "zone",
51643	//     "resource"
51644	//   ],
51645	//   "parameters": {
51646	//     "project": {
51647	//       "description": "Project ID for this request.",
51648	//       "location": "path",
51649	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51650	//       "required": true,
51651	//       "type": "string"
51652	//     },
51653	//     "resource": {
51654	//       "description": "Name or id of the resource for this request.",
51655	//       "location": "path",
51656	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
51657	//       "required": true,
51658	//       "type": "string"
51659	//     },
51660	//     "zone": {
51661	//       "description": "The name of the zone for this request.",
51662	//       "location": "path",
51663	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51664	//       "required": true,
51665	//       "type": "string"
51666	//     }
51667	//   },
51668	//   "path": "{project}/zones/{zone}/autoscalers/{resource}/testIamPermissions",
51669	//   "request": {
51670	//     "$ref": "TestPermissionsRequest"
51671	//   },
51672	//   "response": {
51673	//     "$ref": "TestPermissionsResponse"
51674	//   },
51675	//   "scopes": [
51676	//     "https://www.googleapis.com/auth/cloud-platform",
51677	//     "https://www.googleapis.com/auth/compute",
51678	//     "https://www.googleapis.com/auth/compute.readonly"
51679	//   ]
51680	// }
51681
51682}
51683
51684// method id "compute.autoscalers.update":
51685
51686type AutoscalersUpdateCall struct {
51687	s          *Service
51688	project    string
51689	zone       string
51690	autoscaler *Autoscaler
51691	urlParams_ gensupport.URLParams
51692	ctx_       context.Context
51693	header_    http.Header
51694}
51695
51696// Update: Updates an autoscaler in the specified project using the data
51697// included in the request.
51698func (r *AutoscalersService) Update(project string, zone string, autoscaler *Autoscaler) *AutoscalersUpdateCall {
51699	c := &AutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51700	c.project = project
51701	c.zone = zone
51702	c.autoscaler = autoscaler
51703	return c
51704}
51705
51706// Autoscaler sets the optional parameter "autoscaler": Name of the
51707// autoscaler to update.
51708func (c *AutoscalersUpdateCall) Autoscaler(autoscaler string) *AutoscalersUpdateCall {
51709	c.urlParams_.Set("autoscaler", autoscaler)
51710	return c
51711}
51712
51713// RequestId sets the optional parameter "requestId": An optional
51714// request ID to identify requests. Specify a unique request ID so that
51715// if you must retry your request, the server will know to ignore the
51716// request if it has already been completed.
51717//
51718// For example, consider a situation where you make an initial request
51719// and the request times out. If you make the request again with the
51720// same request ID, the server can check if original operation with the
51721// same request ID was received, and if so, will ignore the second
51722// request. This prevents clients from accidentally creating duplicate
51723// commitments.
51724//
51725// The request ID must be a valid UUID with the exception that zero UUID
51726// is not supported (00000000-0000-0000-0000-000000000000).
51727func (c *AutoscalersUpdateCall) RequestId(requestId string) *AutoscalersUpdateCall {
51728	c.urlParams_.Set("requestId", requestId)
51729	return c
51730}
51731
51732// Fields allows partial responses to be retrieved. See
51733// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51734// for more information.
51735func (c *AutoscalersUpdateCall) Fields(s ...googleapi.Field) *AutoscalersUpdateCall {
51736	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51737	return c
51738}
51739
51740// Context sets the context to be used in this call's Do method. Any
51741// pending HTTP request will be aborted if the provided context is
51742// canceled.
51743func (c *AutoscalersUpdateCall) Context(ctx context.Context) *AutoscalersUpdateCall {
51744	c.ctx_ = ctx
51745	return c
51746}
51747
51748// Header returns an http.Header that can be modified by the caller to
51749// add HTTP headers to the request.
51750func (c *AutoscalersUpdateCall) Header() http.Header {
51751	if c.header_ == nil {
51752		c.header_ = make(http.Header)
51753	}
51754	return c.header_
51755}
51756
51757func (c *AutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) {
51758	reqHeaders := make(http.Header)
51759	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
51760	for k, v := range c.header_ {
51761		reqHeaders[k] = v
51762	}
51763	reqHeaders.Set("User-Agent", c.s.userAgent())
51764	var body io.Reader = nil
51765	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
51766	if err != nil {
51767		return nil, err
51768	}
51769	reqHeaders.Set("Content-Type", "application/json")
51770	c.urlParams_.Set("alt", alt)
51771	c.urlParams_.Set("prettyPrint", "false")
51772	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
51773	urls += "?" + c.urlParams_.Encode()
51774	req, err := http.NewRequest("PUT", urls, body)
51775	if err != nil {
51776		return nil, err
51777	}
51778	req.Header = reqHeaders
51779	googleapi.Expand(req.URL, map[string]string{
51780		"project": c.project,
51781		"zone":    c.zone,
51782	})
51783	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51784}
51785
51786// Do executes the "compute.autoscalers.update" call.
51787// Exactly one of *Operation or error will be non-nil. Any non-2xx
51788// status code is an error. Response headers are in either
51789// *Operation.ServerResponse.Header or (if a response was returned at
51790// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51791// to check whether the returned error was because
51792// http.StatusNotModified was returned.
51793func (c *AutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51794	gensupport.SetOptions(c.urlParams_, opts...)
51795	res, err := c.doRequest("json")
51796	if res != nil && res.StatusCode == http.StatusNotModified {
51797		if res.Body != nil {
51798			res.Body.Close()
51799		}
51800		return nil, &googleapi.Error{
51801			Code:   res.StatusCode,
51802			Header: res.Header,
51803		}
51804	}
51805	if err != nil {
51806		return nil, err
51807	}
51808	defer googleapi.CloseBody(res)
51809	if err := googleapi.CheckResponse(res); err != nil {
51810		return nil, err
51811	}
51812	ret := &Operation{
51813		ServerResponse: googleapi.ServerResponse{
51814			Header:         res.Header,
51815			HTTPStatusCode: res.StatusCode,
51816		},
51817	}
51818	target := &ret
51819	if err := gensupport.DecodeResponse(target, res); err != nil {
51820		return nil, err
51821	}
51822	return ret, nil
51823	// {
51824	//   "description": "Updates an autoscaler in the specified project using the data included in the request.",
51825	//   "httpMethod": "PUT",
51826	//   "id": "compute.autoscalers.update",
51827	//   "parameterOrder": [
51828	//     "project",
51829	//     "zone"
51830	//   ],
51831	//   "parameters": {
51832	//     "autoscaler": {
51833	//       "description": "Name of the autoscaler to update.",
51834	//       "location": "query",
51835	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
51836	//       "type": "string"
51837	//     },
51838	//     "project": {
51839	//       "description": "Project ID for this request.",
51840	//       "location": "path",
51841	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51842	//       "required": true,
51843	//       "type": "string"
51844	//     },
51845	//     "requestId": {
51846	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51847	//       "location": "query",
51848	//       "type": "string"
51849	//     },
51850	//     "zone": {
51851	//       "description": "Name of the zone for this request.",
51852	//       "location": "path",
51853	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51854	//       "required": true,
51855	//       "type": "string"
51856	//     }
51857	//   },
51858	//   "path": "{project}/zones/{zone}/autoscalers",
51859	//   "request": {
51860	//     "$ref": "Autoscaler"
51861	//   },
51862	//   "response": {
51863	//     "$ref": "Operation"
51864	//   },
51865	//   "scopes": [
51866	//     "https://www.googleapis.com/auth/cloud-platform",
51867	//     "https://www.googleapis.com/auth/compute"
51868	//   ]
51869	// }
51870
51871}
51872
51873// method id "compute.backendBuckets.addSignedUrlKey":
51874
51875type BackendBucketsAddSignedUrlKeyCall struct {
51876	s             *Service
51877	project       string
51878	backendBucket string
51879	signedurlkey  *SignedUrlKey
51880	urlParams_    gensupport.URLParams
51881	ctx_          context.Context
51882	header_       http.Header
51883}
51884
51885// AddSignedUrlKey: Adds a key for validating requests with signed URLs
51886// for this backend bucket.
51887func (r *BackendBucketsService) AddSignedUrlKey(project string, backendBucket string, signedurlkey *SignedUrlKey) *BackendBucketsAddSignedUrlKeyCall {
51888	c := &BackendBucketsAddSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51889	c.project = project
51890	c.backendBucket = backendBucket
51891	c.signedurlkey = signedurlkey
51892	return c
51893}
51894
51895// RequestId sets the optional parameter "requestId": An optional
51896// request ID to identify requests. Specify a unique request ID so that
51897// if you must retry your request, the server will know to ignore the
51898// request if it has already been completed.
51899//
51900// For example, consider a situation where you make an initial request
51901// and the request times out. If you make the request again with the
51902// same request ID, the server can check if original operation with the
51903// same request ID was received, and if so, will ignore the second
51904// request. This prevents clients from accidentally creating duplicate
51905// commitments.
51906//
51907// The request ID must be a valid UUID with the exception that zero UUID
51908// is not supported (00000000-0000-0000-0000-000000000000).
51909func (c *BackendBucketsAddSignedUrlKeyCall) RequestId(requestId string) *BackendBucketsAddSignedUrlKeyCall {
51910	c.urlParams_.Set("requestId", requestId)
51911	return c
51912}
51913
51914// Fields allows partial responses to be retrieved. See
51915// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51916// for more information.
51917func (c *BackendBucketsAddSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendBucketsAddSignedUrlKeyCall {
51918	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51919	return c
51920}
51921
51922// Context sets the context to be used in this call's Do method. Any
51923// pending HTTP request will be aborted if the provided context is
51924// canceled.
51925func (c *BackendBucketsAddSignedUrlKeyCall) Context(ctx context.Context) *BackendBucketsAddSignedUrlKeyCall {
51926	c.ctx_ = ctx
51927	return c
51928}
51929
51930// Header returns an http.Header that can be modified by the caller to
51931// add HTTP headers to the request.
51932func (c *BackendBucketsAddSignedUrlKeyCall) Header() http.Header {
51933	if c.header_ == nil {
51934		c.header_ = make(http.Header)
51935	}
51936	return c.header_
51937}
51938
51939func (c *BackendBucketsAddSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
51940	reqHeaders := make(http.Header)
51941	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
51942	for k, v := range c.header_ {
51943		reqHeaders[k] = v
51944	}
51945	reqHeaders.Set("User-Agent", c.s.userAgent())
51946	var body io.Reader = nil
51947	body, err := googleapi.WithoutDataWrapper.JSONReader(c.signedurlkey)
51948	if err != nil {
51949		return nil, err
51950	}
51951	reqHeaders.Set("Content-Type", "application/json")
51952	c.urlParams_.Set("alt", alt)
51953	c.urlParams_.Set("prettyPrint", "false")
51954	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey")
51955	urls += "?" + c.urlParams_.Encode()
51956	req, err := http.NewRequest("POST", urls, body)
51957	if err != nil {
51958		return nil, err
51959	}
51960	req.Header = reqHeaders
51961	googleapi.Expand(req.URL, map[string]string{
51962		"project":       c.project,
51963		"backendBucket": c.backendBucket,
51964	})
51965	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51966}
51967
51968// Do executes the "compute.backendBuckets.addSignedUrlKey" call.
51969// Exactly one of *Operation or error will be non-nil. Any non-2xx
51970// status code is an error. Response headers are in either
51971// *Operation.ServerResponse.Header or (if a response was returned at
51972// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51973// to check whether the returned error was because
51974// http.StatusNotModified was returned.
51975func (c *BackendBucketsAddSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51976	gensupport.SetOptions(c.urlParams_, opts...)
51977	res, err := c.doRequest("json")
51978	if res != nil && res.StatusCode == http.StatusNotModified {
51979		if res.Body != nil {
51980			res.Body.Close()
51981		}
51982		return nil, &googleapi.Error{
51983			Code:   res.StatusCode,
51984			Header: res.Header,
51985		}
51986	}
51987	if err != nil {
51988		return nil, err
51989	}
51990	defer googleapi.CloseBody(res)
51991	if err := googleapi.CheckResponse(res); err != nil {
51992		return nil, err
51993	}
51994	ret := &Operation{
51995		ServerResponse: googleapi.ServerResponse{
51996			Header:         res.Header,
51997			HTTPStatusCode: res.StatusCode,
51998		},
51999	}
52000	target := &ret
52001	if err := gensupport.DecodeResponse(target, res); err != nil {
52002		return nil, err
52003	}
52004	return ret, nil
52005	// {
52006	//   "description": "Adds a key for validating requests with signed URLs for this backend bucket.",
52007	//   "httpMethod": "POST",
52008	//   "id": "compute.backendBuckets.addSignedUrlKey",
52009	//   "parameterOrder": [
52010	//     "project",
52011	//     "backendBucket"
52012	//   ],
52013	//   "parameters": {
52014	//     "backendBucket": {
52015	//       "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
52016	//       "location": "path",
52017	//       "required": true,
52018	//       "type": "string"
52019	//     },
52020	//     "project": {
52021	//       "description": "Project ID for this request.",
52022	//       "location": "path",
52023	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52024	//       "required": true,
52025	//       "type": "string"
52026	//     },
52027	//     "requestId": {
52028	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
52029	//       "location": "query",
52030	//       "type": "string"
52031	//     }
52032	//   },
52033	//   "path": "{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey",
52034	//   "request": {
52035	//     "$ref": "SignedUrlKey"
52036	//   },
52037	//   "response": {
52038	//     "$ref": "Operation"
52039	//   },
52040	//   "scopes": [
52041	//     "https://www.googleapis.com/auth/cloud-platform",
52042	//     "https://www.googleapis.com/auth/compute"
52043	//   ]
52044	// }
52045
52046}
52047
52048// method id "compute.backendBuckets.delete":
52049
52050type BackendBucketsDeleteCall struct {
52051	s             *Service
52052	project       string
52053	backendBucket string
52054	urlParams_    gensupport.URLParams
52055	ctx_          context.Context
52056	header_       http.Header
52057}
52058
52059// Delete: Deletes the specified BackendBucket resource.
52060func (r *BackendBucketsService) Delete(project string, backendBucket string) *BackendBucketsDeleteCall {
52061	c := &BackendBucketsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52062	c.project = project
52063	c.backendBucket = backendBucket
52064	return c
52065}
52066
52067// RequestId sets the optional parameter "requestId": An optional
52068// request ID to identify requests. Specify a unique request ID so that
52069// if you must retry your request, the server will know to ignore the
52070// request if it has already been completed.
52071//
52072// For example, consider a situation where you make an initial request
52073// and the request times out. If you make the request again with the
52074// same request ID, the server can check if original operation with the
52075// same request ID was received, and if so, will ignore the second
52076// request. This prevents clients from accidentally creating duplicate
52077// commitments.
52078//
52079// The request ID must be a valid UUID with the exception that zero UUID
52080// is not supported (00000000-0000-0000-0000-000000000000).
52081func (c *BackendBucketsDeleteCall) RequestId(requestId string) *BackendBucketsDeleteCall {
52082	c.urlParams_.Set("requestId", requestId)
52083	return c
52084}
52085
52086// Fields allows partial responses to be retrieved. See
52087// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52088// for more information.
52089func (c *BackendBucketsDeleteCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteCall {
52090	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52091	return c
52092}
52093
52094// Context sets the context to be used in this call's Do method. Any
52095// pending HTTP request will be aborted if the provided context is
52096// canceled.
52097func (c *BackendBucketsDeleteCall) Context(ctx context.Context) *BackendBucketsDeleteCall {
52098	c.ctx_ = ctx
52099	return c
52100}
52101
52102// Header returns an http.Header that can be modified by the caller to
52103// add HTTP headers to the request.
52104func (c *BackendBucketsDeleteCall) Header() http.Header {
52105	if c.header_ == nil {
52106		c.header_ = make(http.Header)
52107	}
52108	return c.header_
52109}
52110
52111func (c *BackendBucketsDeleteCall) doRequest(alt string) (*http.Response, error) {
52112	reqHeaders := make(http.Header)
52113	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
52114	for k, v := range c.header_ {
52115		reqHeaders[k] = v
52116	}
52117	reqHeaders.Set("User-Agent", c.s.userAgent())
52118	var body io.Reader = nil
52119	c.urlParams_.Set("alt", alt)
52120	c.urlParams_.Set("prettyPrint", "false")
52121	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
52122	urls += "?" + c.urlParams_.Encode()
52123	req, err := http.NewRequest("DELETE", urls, body)
52124	if err != nil {
52125		return nil, err
52126	}
52127	req.Header = reqHeaders
52128	googleapi.Expand(req.URL, map[string]string{
52129		"project":       c.project,
52130		"backendBucket": c.backendBucket,
52131	})
52132	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52133}
52134
52135// Do executes the "compute.backendBuckets.delete" call.
52136// Exactly one of *Operation or error will be non-nil. Any non-2xx
52137// status code is an error. Response headers are in either
52138// *Operation.ServerResponse.Header or (if a response was returned at
52139// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52140// to check whether the returned error was because
52141// http.StatusNotModified was returned.
52142func (c *BackendBucketsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52143	gensupport.SetOptions(c.urlParams_, opts...)
52144	res, err := c.doRequest("json")
52145	if res != nil && res.StatusCode == http.StatusNotModified {
52146		if res.Body != nil {
52147			res.Body.Close()
52148		}
52149		return nil, &googleapi.Error{
52150			Code:   res.StatusCode,
52151			Header: res.Header,
52152		}
52153	}
52154	if err != nil {
52155		return nil, err
52156	}
52157	defer googleapi.CloseBody(res)
52158	if err := googleapi.CheckResponse(res); err != nil {
52159		return nil, err
52160	}
52161	ret := &Operation{
52162		ServerResponse: googleapi.ServerResponse{
52163			Header:         res.Header,
52164			HTTPStatusCode: res.StatusCode,
52165		},
52166	}
52167	target := &ret
52168	if err := gensupport.DecodeResponse(target, res); err != nil {
52169		return nil, err
52170	}
52171	return ret, nil
52172	// {
52173	//   "description": "Deletes the specified BackendBucket resource.",
52174	//   "httpMethod": "DELETE",
52175	//   "id": "compute.backendBuckets.delete",
52176	//   "parameterOrder": [
52177	//     "project",
52178	//     "backendBucket"
52179	//   ],
52180	//   "parameters": {
52181	//     "backendBucket": {
52182	//       "description": "Name of the BackendBucket resource to delete.",
52183	//       "location": "path",
52184	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52185	//       "required": true,
52186	//       "type": "string"
52187	//     },
52188	//     "project": {
52189	//       "description": "Project ID for this request.",
52190	//       "location": "path",
52191	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52192	//       "required": true,
52193	//       "type": "string"
52194	//     },
52195	//     "requestId": {
52196	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
52197	//       "location": "query",
52198	//       "type": "string"
52199	//     }
52200	//   },
52201	//   "path": "{project}/global/backendBuckets/{backendBucket}",
52202	//   "response": {
52203	//     "$ref": "Operation"
52204	//   },
52205	//   "scopes": [
52206	//     "https://www.googleapis.com/auth/cloud-platform",
52207	//     "https://www.googleapis.com/auth/compute"
52208	//   ]
52209	// }
52210
52211}
52212
52213// method id "compute.backendBuckets.deleteSignedUrlKey":
52214
52215type BackendBucketsDeleteSignedUrlKeyCall struct {
52216	s             *Service
52217	project       string
52218	backendBucket string
52219	urlParams_    gensupport.URLParams
52220	ctx_          context.Context
52221	header_       http.Header
52222}
52223
52224// DeleteSignedUrlKey: Deletes a key for validating requests with signed
52225// URLs for this backend bucket.
52226func (r *BackendBucketsService) DeleteSignedUrlKey(project string, backendBucket string, keyName string) *BackendBucketsDeleteSignedUrlKeyCall {
52227	c := &BackendBucketsDeleteSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52228	c.project = project
52229	c.backendBucket = backendBucket
52230	c.urlParams_.Set("keyName", keyName)
52231	return c
52232}
52233
52234// RequestId sets the optional parameter "requestId": An optional
52235// request ID to identify requests. Specify a unique request ID so that
52236// if you must retry your request, the server will know to ignore the
52237// request if it has already been completed.
52238//
52239// For example, consider a situation where you make an initial request
52240// and the request times out. If you make the request again with the
52241// same request ID, the server can check if original operation with the
52242// same request ID was received, and if so, will ignore the second
52243// request. This prevents clients from accidentally creating duplicate
52244// commitments.
52245//
52246// The request ID must be a valid UUID with the exception that zero UUID
52247// is not supported (00000000-0000-0000-0000-000000000000).
52248func (c *BackendBucketsDeleteSignedUrlKeyCall) RequestId(requestId string) *BackendBucketsDeleteSignedUrlKeyCall {
52249	c.urlParams_.Set("requestId", requestId)
52250	return c
52251}
52252
52253// Fields allows partial responses to be retrieved. See
52254// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52255// for more information.
52256func (c *BackendBucketsDeleteSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteSignedUrlKeyCall {
52257	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52258	return c
52259}
52260
52261// Context sets the context to be used in this call's Do method. Any
52262// pending HTTP request will be aborted if the provided context is
52263// canceled.
52264func (c *BackendBucketsDeleteSignedUrlKeyCall) Context(ctx context.Context) *BackendBucketsDeleteSignedUrlKeyCall {
52265	c.ctx_ = ctx
52266	return c
52267}
52268
52269// Header returns an http.Header that can be modified by the caller to
52270// add HTTP headers to the request.
52271func (c *BackendBucketsDeleteSignedUrlKeyCall) Header() http.Header {
52272	if c.header_ == nil {
52273		c.header_ = make(http.Header)
52274	}
52275	return c.header_
52276}
52277
52278func (c *BackendBucketsDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
52279	reqHeaders := make(http.Header)
52280	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
52281	for k, v := range c.header_ {
52282		reqHeaders[k] = v
52283	}
52284	reqHeaders.Set("User-Agent", c.s.userAgent())
52285	var body io.Reader = nil
52286	c.urlParams_.Set("alt", alt)
52287	c.urlParams_.Set("prettyPrint", "false")
52288	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey")
52289	urls += "?" + c.urlParams_.Encode()
52290	req, err := http.NewRequest("POST", urls, body)
52291	if err != nil {
52292		return nil, err
52293	}
52294	req.Header = reqHeaders
52295	googleapi.Expand(req.URL, map[string]string{
52296		"project":       c.project,
52297		"backendBucket": c.backendBucket,
52298	})
52299	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52300}
52301
52302// Do executes the "compute.backendBuckets.deleteSignedUrlKey" call.
52303// Exactly one of *Operation or error will be non-nil. Any non-2xx
52304// status code is an error. Response headers are in either
52305// *Operation.ServerResponse.Header or (if a response was returned at
52306// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52307// to check whether the returned error was because
52308// http.StatusNotModified was returned.
52309func (c *BackendBucketsDeleteSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52310	gensupport.SetOptions(c.urlParams_, opts...)
52311	res, err := c.doRequest("json")
52312	if res != nil && res.StatusCode == http.StatusNotModified {
52313		if res.Body != nil {
52314			res.Body.Close()
52315		}
52316		return nil, &googleapi.Error{
52317			Code:   res.StatusCode,
52318			Header: res.Header,
52319		}
52320	}
52321	if err != nil {
52322		return nil, err
52323	}
52324	defer googleapi.CloseBody(res)
52325	if err := googleapi.CheckResponse(res); err != nil {
52326		return nil, err
52327	}
52328	ret := &Operation{
52329		ServerResponse: googleapi.ServerResponse{
52330			Header:         res.Header,
52331			HTTPStatusCode: res.StatusCode,
52332		},
52333	}
52334	target := &ret
52335	if err := gensupport.DecodeResponse(target, res); err != nil {
52336		return nil, err
52337	}
52338	return ret, nil
52339	// {
52340	//   "description": "Deletes a key for validating requests with signed URLs for this backend bucket.",
52341	//   "httpMethod": "POST",
52342	//   "id": "compute.backendBuckets.deleteSignedUrlKey",
52343	//   "parameterOrder": [
52344	//     "project",
52345	//     "backendBucket",
52346	//     "keyName"
52347	//   ],
52348	//   "parameters": {
52349	//     "backendBucket": {
52350	//       "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
52351	//       "location": "path",
52352	//       "required": true,
52353	//       "type": "string"
52354	//     },
52355	//     "keyName": {
52356	//       "description": "The name of the Signed URL Key to delete.",
52357	//       "location": "query",
52358	//       "required": true,
52359	//       "type": "string"
52360	//     },
52361	//     "project": {
52362	//       "description": "Project ID for this request.",
52363	//       "location": "path",
52364	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52365	//       "required": true,
52366	//       "type": "string"
52367	//     },
52368	//     "requestId": {
52369	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
52370	//       "location": "query",
52371	//       "type": "string"
52372	//     }
52373	//   },
52374	//   "path": "{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey",
52375	//   "response": {
52376	//     "$ref": "Operation"
52377	//   },
52378	//   "scopes": [
52379	//     "https://www.googleapis.com/auth/cloud-platform",
52380	//     "https://www.googleapis.com/auth/compute"
52381	//   ]
52382	// }
52383
52384}
52385
52386// method id "compute.backendBuckets.get":
52387
52388type BackendBucketsGetCall struct {
52389	s             *Service
52390	project       string
52391	backendBucket string
52392	urlParams_    gensupport.URLParams
52393	ifNoneMatch_  string
52394	ctx_          context.Context
52395	header_       http.Header
52396}
52397
52398// Get: Returns the specified BackendBucket resource. Gets a list of
52399// available backend buckets by making a list() request.
52400func (r *BackendBucketsService) Get(project string, backendBucket string) *BackendBucketsGetCall {
52401	c := &BackendBucketsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52402	c.project = project
52403	c.backendBucket = backendBucket
52404	return c
52405}
52406
52407// Fields allows partial responses to be retrieved. See
52408// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52409// for more information.
52410func (c *BackendBucketsGetCall) Fields(s ...googleapi.Field) *BackendBucketsGetCall {
52411	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52412	return c
52413}
52414
52415// IfNoneMatch sets the optional parameter which makes the operation
52416// fail if the object's ETag matches the given value. This is useful for
52417// getting updates only after the object has changed since the last
52418// request. Use googleapi.IsNotModified to check whether the response
52419// error from Do is the result of In-None-Match.
52420func (c *BackendBucketsGetCall) IfNoneMatch(entityTag string) *BackendBucketsGetCall {
52421	c.ifNoneMatch_ = entityTag
52422	return c
52423}
52424
52425// Context sets the context to be used in this call's Do method. Any
52426// pending HTTP request will be aborted if the provided context is
52427// canceled.
52428func (c *BackendBucketsGetCall) Context(ctx context.Context) *BackendBucketsGetCall {
52429	c.ctx_ = ctx
52430	return c
52431}
52432
52433// Header returns an http.Header that can be modified by the caller to
52434// add HTTP headers to the request.
52435func (c *BackendBucketsGetCall) Header() http.Header {
52436	if c.header_ == nil {
52437		c.header_ = make(http.Header)
52438	}
52439	return c.header_
52440}
52441
52442func (c *BackendBucketsGetCall) doRequest(alt string) (*http.Response, error) {
52443	reqHeaders := make(http.Header)
52444	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
52445	for k, v := range c.header_ {
52446		reqHeaders[k] = v
52447	}
52448	reqHeaders.Set("User-Agent", c.s.userAgent())
52449	if c.ifNoneMatch_ != "" {
52450		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52451	}
52452	var body io.Reader = nil
52453	c.urlParams_.Set("alt", alt)
52454	c.urlParams_.Set("prettyPrint", "false")
52455	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
52456	urls += "?" + c.urlParams_.Encode()
52457	req, err := http.NewRequest("GET", urls, body)
52458	if err != nil {
52459		return nil, err
52460	}
52461	req.Header = reqHeaders
52462	googleapi.Expand(req.URL, map[string]string{
52463		"project":       c.project,
52464		"backendBucket": c.backendBucket,
52465	})
52466	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52467}
52468
52469// Do executes the "compute.backendBuckets.get" call.
52470// Exactly one of *BackendBucket or error will be non-nil. Any non-2xx
52471// status code is an error. Response headers are in either
52472// *BackendBucket.ServerResponse.Header or (if a response was returned
52473// at all) in error.(*googleapi.Error).Header. Use
52474// googleapi.IsNotModified to check whether the returned error was
52475// because http.StatusNotModified was returned.
52476func (c *BackendBucketsGetCall) Do(opts ...googleapi.CallOption) (*BackendBucket, error) {
52477	gensupport.SetOptions(c.urlParams_, opts...)
52478	res, err := c.doRequest("json")
52479	if res != nil && res.StatusCode == http.StatusNotModified {
52480		if res.Body != nil {
52481			res.Body.Close()
52482		}
52483		return nil, &googleapi.Error{
52484			Code:   res.StatusCode,
52485			Header: res.Header,
52486		}
52487	}
52488	if err != nil {
52489		return nil, err
52490	}
52491	defer googleapi.CloseBody(res)
52492	if err := googleapi.CheckResponse(res); err != nil {
52493		return nil, err
52494	}
52495	ret := &BackendBucket{
52496		ServerResponse: googleapi.ServerResponse{
52497			Header:         res.Header,
52498			HTTPStatusCode: res.StatusCode,
52499		},
52500	}
52501	target := &ret
52502	if err := gensupport.DecodeResponse(target, res); err != nil {
52503		return nil, err
52504	}
52505	return ret, nil
52506	// {
52507	//   "description": "Returns the specified BackendBucket resource. Gets a list of available backend buckets by making a list() request.",
52508	//   "httpMethod": "GET",
52509	//   "id": "compute.backendBuckets.get",
52510	//   "parameterOrder": [
52511	//     "project",
52512	//     "backendBucket"
52513	//   ],
52514	//   "parameters": {
52515	//     "backendBucket": {
52516	//       "description": "Name of the BackendBucket resource to return.",
52517	//       "location": "path",
52518	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52519	//       "required": true,
52520	//       "type": "string"
52521	//     },
52522	//     "project": {
52523	//       "description": "Project ID for this request.",
52524	//       "location": "path",
52525	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52526	//       "required": true,
52527	//       "type": "string"
52528	//     }
52529	//   },
52530	//   "path": "{project}/global/backendBuckets/{backendBucket}",
52531	//   "response": {
52532	//     "$ref": "BackendBucket"
52533	//   },
52534	//   "scopes": [
52535	//     "https://www.googleapis.com/auth/cloud-platform",
52536	//     "https://www.googleapis.com/auth/compute",
52537	//     "https://www.googleapis.com/auth/compute.readonly"
52538	//   ]
52539	// }
52540
52541}
52542
52543// method id "compute.backendBuckets.getIamPolicy":
52544
52545type BackendBucketsGetIamPolicyCall struct {
52546	s            *Service
52547	project      string
52548	resource     string
52549	urlParams_   gensupport.URLParams
52550	ifNoneMatch_ string
52551	ctx_         context.Context
52552	header_      http.Header
52553}
52554
52555// GetIamPolicy: Gets the access control policy for a resource. May be
52556// empty if no such policy or resource exists.
52557func (r *BackendBucketsService) GetIamPolicy(project string, resource string) *BackendBucketsGetIamPolicyCall {
52558	c := &BackendBucketsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52559	c.project = project
52560	c.resource = resource
52561	return c
52562}
52563
52564// OptionsRequestedPolicyVersion sets the optional parameter
52565// "optionsRequestedPolicyVersion": Requested IAM Policy version.
52566func (c *BackendBucketsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *BackendBucketsGetIamPolicyCall {
52567	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
52568	return c
52569}
52570
52571// Fields allows partial responses to be retrieved. See
52572// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52573// for more information.
52574func (c *BackendBucketsGetIamPolicyCall) Fields(s ...googleapi.Field) *BackendBucketsGetIamPolicyCall {
52575	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52576	return c
52577}
52578
52579// IfNoneMatch sets the optional parameter which makes the operation
52580// fail if the object's ETag matches the given value. This is useful for
52581// getting updates only after the object has changed since the last
52582// request. Use googleapi.IsNotModified to check whether the response
52583// error from Do is the result of In-None-Match.
52584func (c *BackendBucketsGetIamPolicyCall) IfNoneMatch(entityTag string) *BackendBucketsGetIamPolicyCall {
52585	c.ifNoneMatch_ = entityTag
52586	return c
52587}
52588
52589// Context sets the context to be used in this call's Do method. Any
52590// pending HTTP request will be aborted if the provided context is
52591// canceled.
52592func (c *BackendBucketsGetIamPolicyCall) Context(ctx context.Context) *BackendBucketsGetIamPolicyCall {
52593	c.ctx_ = ctx
52594	return c
52595}
52596
52597// Header returns an http.Header that can be modified by the caller to
52598// add HTTP headers to the request.
52599func (c *BackendBucketsGetIamPolicyCall) Header() http.Header {
52600	if c.header_ == nil {
52601		c.header_ = make(http.Header)
52602	}
52603	return c.header_
52604}
52605
52606func (c *BackendBucketsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
52607	reqHeaders := make(http.Header)
52608	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
52609	for k, v := range c.header_ {
52610		reqHeaders[k] = v
52611	}
52612	reqHeaders.Set("User-Agent", c.s.userAgent())
52613	if c.ifNoneMatch_ != "" {
52614		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52615	}
52616	var body io.Reader = nil
52617	c.urlParams_.Set("alt", alt)
52618	c.urlParams_.Set("prettyPrint", "false")
52619	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{resource}/getIamPolicy")
52620	urls += "?" + c.urlParams_.Encode()
52621	req, err := http.NewRequest("GET", urls, body)
52622	if err != nil {
52623		return nil, err
52624	}
52625	req.Header = reqHeaders
52626	googleapi.Expand(req.URL, map[string]string{
52627		"project":  c.project,
52628		"resource": c.resource,
52629	})
52630	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52631}
52632
52633// Do executes the "compute.backendBuckets.getIamPolicy" call.
52634// Exactly one of *Policy or error will be non-nil. Any non-2xx status
52635// code is an error. Response headers are in either
52636// *Policy.ServerResponse.Header or (if a response was returned at all)
52637// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
52638// check whether the returned error was because http.StatusNotModified
52639// was returned.
52640func (c *BackendBucketsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
52641	gensupport.SetOptions(c.urlParams_, opts...)
52642	res, err := c.doRequest("json")
52643	if res != nil && res.StatusCode == http.StatusNotModified {
52644		if res.Body != nil {
52645			res.Body.Close()
52646		}
52647		return nil, &googleapi.Error{
52648			Code:   res.StatusCode,
52649			Header: res.Header,
52650		}
52651	}
52652	if err != nil {
52653		return nil, err
52654	}
52655	defer googleapi.CloseBody(res)
52656	if err := googleapi.CheckResponse(res); err != nil {
52657		return nil, err
52658	}
52659	ret := &Policy{
52660		ServerResponse: googleapi.ServerResponse{
52661			Header:         res.Header,
52662			HTTPStatusCode: res.StatusCode,
52663		},
52664	}
52665	target := &ret
52666	if err := gensupport.DecodeResponse(target, res); err != nil {
52667		return nil, err
52668	}
52669	return ret, nil
52670	// {
52671	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
52672	//   "httpMethod": "GET",
52673	//   "id": "compute.backendBuckets.getIamPolicy",
52674	//   "parameterOrder": [
52675	//     "project",
52676	//     "resource"
52677	//   ],
52678	//   "parameters": {
52679	//     "optionsRequestedPolicyVersion": {
52680	//       "description": "Requested IAM Policy version.",
52681	//       "format": "int32",
52682	//       "location": "query",
52683	//       "type": "integer"
52684	//     },
52685	//     "project": {
52686	//       "description": "Project ID for this request.",
52687	//       "location": "path",
52688	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52689	//       "required": true,
52690	//       "type": "string"
52691	//     },
52692	//     "resource": {
52693	//       "description": "Name or id of the resource for this request.",
52694	//       "location": "path",
52695	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52696	//       "required": true,
52697	//       "type": "string"
52698	//     }
52699	//   },
52700	//   "path": "{project}/global/backendBuckets/{resource}/getIamPolicy",
52701	//   "response": {
52702	//     "$ref": "Policy"
52703	//   },
52704	//   "scopes": [
52705	//     "https://www.googleapis.com/auth/cloud-platform",
52706	//     "https://www.googleapis.com/auth/compute",
52707	//     "https://www.googleapis.com/auth/compute.readonly"
52708	//   ]
52709	// }
52710
52711}
52712
52713// method id "compute.backendBuckets.insert":
52714
52715type BackendBucketsInsertCall struct {
52716	s             *Service
52717	project       string
52718	backendbucket *BackendBucket
52719	urlParams_    gensupport.URLParams
52720	ctx_          context.Context
52721	header_       http.Header
52722}
52723
52724// Insert: Creates a BackendBucket resource in the specified project
52725// using the data included in the request.
52726func (r *BackendBucketsService) Insert(project string, backendbucket *BackendBucket) *BackendBucketsInsertCall {
52727	c := &BackendBucketsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52728	c.project = project
52729	c.backendbucket = backendbucket
52730	return c
52731}
52732
52733// RequestId sets the optional parameter "requestId": An optional
52734// request ID to identify requests. Specify a unique request ID so that
52735// if you must retry your request, the server will know to ignore the
52736// request if it has already been completed.
52737//
52738// For example, consider a situation where you make an initial request
52739// and the request times out. If you make the request again with the
52740// same request ID, the server can check if original operation with the
52741// same request ID was received, and if so, will ignore the second
52742// request. This prevents clients from accidentally creating duplicate
52743// commitments.
52744//
52745// The request ID must be a valid UUID with the exception that zero UUID
52746// is not supported (00000000-0000-0000-0000-000000000000).
52747func (c *BackendBucketsInsertCall) RequestId(requestId string) *BackendBucketsInsertCall {
52748	c.urlParams_.Set("requestId", requestId)
52749	return c
52750}
52751
52752// Fields allows partial responses to be retrieved. See
52753// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52754// for more information.
52755func (c *BackendBucketsInsertCall) Fields(s ...googleapi.Field) *BackendBucketsInsertCall {
52756	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52757	return c
52758}
52759
52760// Context sets the context to be used in this call's Do method. Any
52761// pending HTTP request will be aborted if the provided context is
52762// canceled.
52763func (c *BackendBucketsInsertCall) Context(ctx context.Context) *BackendBucketsInsertCall {
52764	c.ctx_ = ctx
52765	return c
52766}
52767
52768// Header returns an http.Header that can be modified by the caller to
52769// add HTTP headers to the request.
52770func (c *BackendBucketsInsertCall) Header() http.Header {
52771	if c.header_ == nil {
52772		c.header_ = make(http.Header)
52773	}
52774	return c.header_
52775}
52776
52777func (c *BackendBucketsInsertCall) doRequest(alt string) (*http.Response, error) {
52778	reqHeaders := make(http.Header)
52779	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
52780	for k, v := range c.header_ {
52781		reqHeaders[k] = v
52782	}
52783	reqHeaders.Set("User-Agent", c.s.userAgent())
52784	var body io.Reader = nil
52785	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
52786	if err != nil {
52787		return nil, err
52788	}
52789	reqHeaders.Set("Content-Type", "application/json")
52790	c.urlParams_.Set("alt", alt)
52791	c.urlParams_.Set("prettyPrint", "false")
52792	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets")
52793	urls += "?" + c.urlParams_.Encode()
52794	req, err := http.NewRequest("POST", urls, body)
52795	if err != nil {
52796		return nil, err
52797	}
52798	req.Header = reqHeaders
52799	googleapi.Expand(req.URL, map[string]string{
52800		"project": c.project,
52801	})
52802	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52803}
52804
52805// Do executes the "compute.backendBuckets.insert" call.
52806// Exactly one of *Operation or error will be non-nil. Any non-2xx
52807// status code is an error. Response headers are in either
52808// *Operation.ServerResponse.Header or (if a response was returned at
52809// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52810// to check whether the returned error was because
52811// http.StatusNotModified was returned.
52812func (c *BackendBucketsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52813	gensupport.SetOptions(c.urlParams_, opts...)
52814	res, err := c.doRequest("json")
52815	if res != nil && res.StatusCode == http.StatusNotModified {
52816		if res.Body != nil {
52817			res.Body.Close()
52818		}
52819		return nil, &googleapi.Error{
52820			Code:   res.StatusCode,
52821			Header: res.Header,
52822		}
52823	}
52824	if err != nil {
52825		return nil, err
52826	}
52827	defer googleapi.CloseBody(res)
52828	if err := googleapi.CheckResponse(res); err != nil {
52829		return nil, err
52830	}
52831	ret := &Operation{
52832		ServerResponse: googleapi.ServerResponse{
52833			Header:         res.Header,
52834			HTTPStatusCode: res.StatusCode,
52835		},
52836	}
52837	target := &ret
52838	if err := gensupport.DecodeResponse(target, res); err != nil {
52839		return nil, err
52840	}
52841	return ret, nil
52842	// {
52843	//   "description": "Creates a BackendBucket resource in the specified project using the data included in the request.",
52844	//   "httpMethod": "POST",
52845	//   "id": "compute.backendBuckets.insert",
52846	//   "parameterOrder": [
52847	//     "project"
52848	//   ],
52849	//   "parameters": {
52850	//     "project": {
52851	//       "description": "Project ID for this request.",
52852	//       "location": "path",
52853	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52854	//       "required": true,
52855	//       "type": "string"
52856	//     },
52857	//     "requestId": {
52858	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
52859	//       "location": "query",
52860	//       "type": "string"
52861	//     }
52862	//   },
52863	//   "path": "{project}/global/backendBuckets",
52864	//   "request": {
52865	//     "$ref": "BackendBucket"
52866	//   },
52867	//   "response": {
52868	//     "$ref": "Operation"
52869	//   },
52870	//   "scopes": [
52871	//     "https://www.googleapis.com/auth/cloud-platform",
52872	//     "https://www.googleapis.com/auth/compute"
52873	//   ]
52874	// }
52875
52876}
52877
52878// method id "compute.backendBuckets.list":
52879
52880type BackendBucketsListCall struct {
52881	s            *Service
52882	project      string
52883	urlParams_   gensupport.URLParams
52884	ifNoneMatch_ string
52885	ctx_         context.Context
52886	header_      http.Header
52887}
52888
52889// List: Retrieves the list of BackendBucket resources available to the
52890// specified project.
52891func (r *BackendBucketsService) List(project string) *BackendBucketsListCall {
52892	c := &BackendBucketsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52893	c.project = project
52894	return c
52895}
52896
52897// Filter sets the optional parameter "filter": A filter expression that
52898// filters resources listed in the response. The expression must specify
52899// the field name, a comparison operator, and the value that you want to
52900// use for filtering. The value must be a string, a number, or a
52901// boolean. The comparison operator must be either =, !=, >, or <.
52902//
52903// For example, if you are filtering Compute Engine instances, you can
52904// exclude instances named example-instance by specifying name !=
52905// example-instance.
52906//
52907// You can also filter nested fields. For example, you could specify
52908// scheduling.automaticRestart = false to include instances only if they
52909// are not scheduled for automatic restarts. You can use filtering on
52910// nested fields to filter based on resource labels.
52911//
52912// To filter on multiple expressions, provide each separate expression
52913// within parentheses. For example, (scheduling.automaticRestart = true)
52914// (cpuPlatform = "Intel Skylake"). By default, each expression is an
52915// AND expression. However, you can include AND and OR expressions
52916// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
52917// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
52918// true).
52919func (c *BackendBucketsListCall) Filter(filter string) *BackendBucketsListCall {
52920	c.urlParams_.Set("filter", filter)
52921	return c
52922}
52923
52924// MaxResults sets the optional parameter "maxResults": The maximum
52925// number of results per page that should be returned. If the number of
52926// available results is larger than maxResults, Compute Engine returns a
52927// nextPageToken that can be used to get the next page of results in
52928// subsequent list requests. Acceptable values are 0 to 500, inclusive.
52929// (Default: 500)
52930func (c *BackendBucketsListCall) MaxResults(maxResults int64) *BackendBucketsListCall {
52931	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
52932	return c
52933}
52934
52935// OrderBy sets the optional parameter "orderBy": Sorts list results by
52936// a certain order. By default, results are returned in alphanumerical
52937// order based on the resource name.
52938//
52939// You can also sort results in descending order based on the creation
52940// timestamp using orderBy="creationTimestamp desc". This sorts results
52941// based on the creationTimestamp field in reverse chronological order
52942// (newest result first). Use this to sort resources like operations so
52943// that the newest operation is returned first.
52944//
52945// Currently, only sorting by name or creationTimestamp desc is
52946// supported.
52947func (c *BackendBucketsListCall) OrderBy(orderBy string) *BackendBucketsListCall {
52948	c.urlParams_.Set("orderBy", orderBy)
52949	return c
52950}
52951
52952// PageToken sets the optional parameter "pageToken": Specifies a page
52953// token to use. Set pageToken to the nextPageToken returned by a
52954// previous list request to get the next page of results.
52955func (c *BackendBucketsListCall) PageToken(pageToken string) *BackendBucketsListCall {
52956	c.urlParams_.Set("pageToken", pageToken)
52957	return c
52958}
52959
52960// Fields allows partial responses to be retrieved. See
52961// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52962// for more information.
52963func (c *BackendBucketsListCall) Fields(s ...googleapi.Field) *BackendBucketsListCall {
52964	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52965	return c
52966}
52967
52968// IfNoneMatch sets the optional parameter which makes the operation
52969// fail if the object's ETag matches the given value. This is useful for
52970// getting updates only after the object has changed since the last
52971// request. Use googleapi.IsNotModified to check whether the response
52972// error from Do is the result of In-None-Match.
52973func (c *BackendBucketsListCall) IfNoneMatch(entityTag string) *BackendBucketsListCall {
52974	c.ifNoneMatch_ = entityTag
52975	return c
52976}
52977
52978// Context sets the context to be used in this call's Do method. Any
52979// pending HTTP request will be aborted if the provided context is
52980// canceled.
52981func (c *BackendBucketsListCall) Context(ctx context.Context) *BackendBucketsListCall {
52982	c.ctx_ = ctx
52983	return c
52984}
52985
52986// Header returns an http.Header that can be modified by the caller to
52987// add HTTP headers to the request.
52988func (c *BackendBucketsListCall) Header() http.Header {
52989	if c.header_ == nil {
52990		c.header_ = make(http.Header)
52991	}
52992	return c.header_
52993}
52994
52995func (c *BackendBucketsListCall) doRequest(alt string) (*http.Response, error) {
52996	reqHeaders := make(http.Header)
52997	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
52998	for k, v := range c.header_ {
52999		reqHeaders[k] = v
53000	}
53001	reqHeaders.Set("User-Agent", c.s.userAgent())
53002	if c.ifNoneMatch_ != "" {
53003		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
53004	}
53005	var body io.Reader = nil
53006	c.urlParams_.Set("alt", alt)
53007	c.urlParams_.Set("prettyPrint", "false")
53008	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets")
53009	urls += "?" + c.urlParams_.Encode()
53010	req, err := http.NewRequest("GET", urls, body)
53011	if err != nil {
53012		return nil, err
53013	}
53014	req.Header = reqHeaders
53015	googleapi.Expand(req.URL, map[string]string{
53016		"project": c.project,
53017	})
53018	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53019}
53020
53021// Do executes the "compute.backendBuckets.list" call.
53022// Exactly one of *BackendBucketList or error will be non-nil. Any
53023// non-2xx status code is an error. Response headers are in either
53024// *BackendBucketList.ServerResponse.Header or (if a response was
53025// returned at all) in error.(*googleapi.Error).Header. Use
53026// googleapi.IsNotModified to check whether the returned error was
53027// because http.StatusNotModified was returned.
53028func (c *BackendBucketsListCall) Do(opts ...googleapi.CallOption) (*BackendBucketList, error) {
53029	gensupport.SetOptions(c.urlParams_, opts...)
53030	res, err := c.doRequest("json")
53031	if res != nil && res.StatusCode == http.StatusNotModified {
53032		if res.Body != nil {
53033			res.Body.Close()
53034		}
53035		return nil, &googleapi.Error{
53036			Code:   res.StatusCode,
53037			Header: res.Header,
53038		}
53039	}
53040	if err != nil {
53041		return nil, err
53042	}
53043	defer googleapi.CloseBody(res)
53044	if err := googleapi.CheckResponse(res); err != nil {
53045		return nil, err
53046	}
53047	ret := &BackendBucketList{
53048		ServerResponse: googleapi.ServerResponse{
53049			Header:         res.Header,
53050			HTTPStatusCode: res.StatusCode,
53051		},
53052	}
53053	target := &ret
53054	if err := gensupport.DecodeResponse(target, res); err != nil {
53055		return nil, err
53056	}
53057	return ret, nil
53058	// {
53059	//   "description": "Retrieves the list of BackendBucket resources available to the specified project.",
53060	//   "httpMethod": "GET",
53061	//   "id": "compute.backendBuckets.list",
53062	//   "parameterOrder": [
53063	//     "project"
53064	//   ],
53065	//   "parameters": {
53066	//     "filter": {
53067	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
53068	//       "location": "query",
53069	//       "type": "string"
53070	//     },
53071	//     "maxResults": {
53072	//       "default": "500",
53073	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
53074	//       "format": "uint32",
53075	//       "location": "query",
53076	//       "minimum": "0",
53077	//       "type": "integer"
53078	//     },
53079	//     "orderBy": {
53080	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
53081	//       "location": "query",
53082	//       "type": "string"
53083	//     },
53084	//     "pageToken": {
53085	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
53086	//       "location": "query",
53087	//       "type": "string"
53088	//     },
53089	//     "project": {
53090	//       "description": "Project ID for this request.",
53091	//       "location": "path",
53092	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53093	//       "required": true,
53094	//       "type": "string"
53095	//     }
53096	//   },
53097	//   "path": "{project}/global/backendBuckets",
53098	//   "response": {
53099	//     "$ref": "BackendBucketList"
53100	//   },
53101	//   "scopes": [
53102	//     "https://www.googleapis.com/auth/cloud-platform",
53103	//     "https://www.googleapis.com/auth/compute",
53104	//     "https://www.googleapis.com/auth/compute.readonly"
53105	//   ]
53106	// }
53107
53108}
53109
53110// Pages invokes f for each page of results.
53111// A non-nil error returned from f will halt the iteration.
53112// The provided context supersedes any context provided to the Context method.
53113func (c *BackendBucketsListCall) Pages(ctx context.Context, f func(*BackendBucketList) error) error {
53114	c.ctx_ = ctx
53115	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
53116	for {
53117		x, err := c.Do()
53118		if err != nil {
53119			return err
53120		}
53121		if err := f(x); err != nil {
53122			return err
53123		}
53124		if x.NextPageToken == "" {
53125			return nil
53126		}
53127		c.PageToken(x.NextPageToken)
53128	}
53129}
53130
53131// method id "compute.backendBuckets.patch":
53132
53133type BackendBucketsPatchCall struct {
53134	s             *Service
53135	project       string
53136	backendBucket string
53137	backendbucket *BackendBucket
53138	urlParams_    gensupport.URLParams
53139	ctx_          context.Context
53140	header_       http.Header
53141}
53142
53143// Patch: Updates the specified BackendBucket resource with the data
53144// included in the request. This method supports PATCH semantics and
53145// uses the JSON merge patch format and processing rules.
53146func (r *BackendBucketsService) Patch(project string, backendBucket string, backendbucket *BackendBucket) *BackendBucketsPatchCall {
53147	c := &BackendBucketsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53148	c.project = project
53149	c.backendBucket = backendBucket
53150	c.backendbucket = backendbucket
53151	return c
53152}
53153
53154// RequestId sets the optional parameter "requestId": An optional
53155// request ID to identify requests. Specify a unique request ID so that
53156// if you must retry your request, the server will know to ignore the
53157// request if it has already been completed.
53158//
53159// For example, consider a situation where you make an initial request
53160// and the request times out. If you make the request again with the
53161// same request ID, the server can check if original operation with the
53162// same request ID was received, and if so, will ignore the second
53163// request. This prevents clients from accidentally creating duplicate
53164// commitments.
53165//
53166// The request ID must be a valid UUID with the exception that zero UUID
53167// is not supported (00000000-0000-0000-0000-000000000000).
53168func (c *BackendBucketsPatchCall) RequestId(requestId string) *BackendBucketsPatchCall {
53169	c.urlParams_.Set("requestId", requestId)
53170	return c
53171}
53172
53173// Fields allows partial responses to be retrieved. See
53174// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53175// for more information.
53176func (c *BackendBucketsPatchCall) Fields(s ...googleapi.Field) *BackendBucketsPatchCall {
53177	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53178	return c
53179}
53180
53181// Context sets the context to be used in this call's Do method. Any
53182// pending HTTP request will be aborted if the provided context is
53183// canceled.
53184func (c *BackendBucketsPatchCall) Context(ctx context.Context) *BackendBucketsPatchCall {
53185	c.ctx_ = ctx
53186	return c
53187}
53188
53189// Header returns an http.Header that can be modified by the caller to
53190// add HTTP headers to the request.
53191func (c *BackendBucketsPatchCall) Header() http.Header {
53192	if c.header_ == nil {
53193		c.header_ = make(http.Header)
53194	}
53195	return c.header_
53196}
53197
53198func (c *BackendBucketsPatchCall) doRequest(alt string) (*http.Response, error) {
53199	reqHeaders := make(http.Header)
53200	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
53201	for k, v := range c.header_ {
53202		reqHeaders[k] = v
53203	}
53204	reqHeaders.Set("User-Agent", c.s.userAgent())
53205	var body io.Reader = nil
53206	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
53207	if err != nil {
53208		return nil, err
53209	}
53210	reqHeaders.Set("Content-Type", "application/json")
53211	c.urlParams_.Set("alt", alt)
53212	c.urlParams_.Set("prettyPrint", "false")
53213	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
53214	urls += "?" + c.urlParams_.Encode()
53215	req, err := http.NewRequest("PATCH", urls, body)
53216	if err != nil {
53217		return nil, err
53218	}
53219	req.Header = reqHeaders
53220	googleapi.Expand(req.URL, map[string]string{
53221		"project":       c.project,
53222		"backendBucket": c.backendBucket,
53223	})
53224	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53225}
53226
53227// Do executes the "compute.backendBuckets.patch" call.
53228// Exactly one of *Operation or error will be non-nil. Any non-2xx
53229// status code is an error. Response headers are in either
53230// *Operation.ServerResponse.Header or (if a response was returned at
53231// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53232// to check whether the returned error was because
53233// http.StatusNotModified was returned.
53234func (c *BackendBucketsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53235	gensupport.SetOptions(c.urlParams_, opts...)
53236	res, err := c.doRequest("json")
53237	if res != nil && res.StatusCode == http.StatusNotModified {
53238		if res.Body != nil {
53239			res.Body.Close()
53240		}
53241		return nil, &googleapi.Error{
53242			Code:   res.StatusCode,
53243			Header: res.Header,
53244		}
53245	}
53246	if err != nil {
53247		return nil, err
53248	}
53249	defer googleapi.CloseBody(res)
53250	if err := googleapi.CheckResponse(res); err != nil {
53251		return nil, err
53252	}
53253	ret := &Operation{
53254		ServerResponse: googleapi.ServerResponse{
53255			Header:         res.Header,
53256			HTTPStatusCode: res.StatusCode,
53257		},
53258	}
53259	target := &ret
53260	if err := gensupport.DecodeResponse(target, res); err != nil {
53261		return nil, err
53262	}
53263	return ret, nil
53264	// {
53265	//   "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.",
53266	//   "httpMethod": "PATCH",
53267	//   "id": "compute.backendBuckets.patch",
53268	//   "parameterOrder": [
53269	//     "project",
53270	//     "backendBucket"
53271	//   ],
53272	//   "parameters": {
53273	//     "backendBucket": {
53274	//       "description": "Name of the BackendBucket resource to patch.",
53275	//       "location": "path",
53276	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53277	//       "required": true,
53278	//       "type": "string"
53279	//     },
53280	//     "project": {
53281	//       "description": "Project ID for this request.",
53282	//       "location": "path",
53283	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53284	//       "required": true,
53285	//       "type": "string"
53286	//     },
53287	//     "requestId": {
53288	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53289	//       "location": "query",
53290	//       "type": "string"
53291	//     }
53292	//   },
53293	//   "path": "{project}/global/backendBuckets/{backendBucket}",
53294	//   "request": {
53295	//     "$ref": "BackendBucket"
53296	//   },
53297	//   "response": {
53298	//     "$ref": "Operation"
53299	//   },
53300	//   "scopes": [
53301	//     "https://www.googleapis.com/auth/cloud-platform",
53302	//     "https://www.googleapis.com/auth/compute"
53303	//   ]
53304	// }
53305
53306}
53307
53308// method id "compute.backendBuckets.setIamPolicy":
53309
53310type BackendBucketsSetIamPolicyCall struct {
53311	s                      *Service
53312	project                string
53313	resource               string
53314	globalsetpolicyrequest *GlobalSetPolicyRequest
53315	urlParams_             gensupport.URLParams
53316	ctx_                   context.Context
53317	header_                http.Header
53318}
53319
53320// SetIamPolicy: Sets the access control policy on the specified
53321// resource. Replaces any existing policy.
53322func (r *BackendBucketsService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *BackendBucketsSetIamPolicyCall {
53323	c := &BackendBucketsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53324	c.project = project
53325	c.resource = resource
53326	c.globalsetpolicyrequest = globalsetpolicyrequest
53327	return c
53328}
53329
53330// Fields allows partial responses to be retrieved. See
53331// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53332// for more information.
53333func (c *BackendBucketsSetIamPolicyCall) Fields(s ...googleapi.Field) *BackendBucketsSetIamPolicyCall {
53334	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53335	return c
53336}
53337
53338// Context sets the context to be used in this call's Do method. Any
53339// pending HTTP request will be aborted if the provided context is
53340// canceled.
53341func (c *BackendBucketsSetIamPolicyCall) Context(ctx context.Context) *BackendBucketsSetIamPolicyCall {
53342	c.ctx_ = ctx
53343	return c
53344}
53345
53346// Header returns an http.Header that can be modified by the caller to
53347// add HTTP headers to the request.
53348func (c *BackendBucketsSetIamPolicyCall) Header() http.Header {
53349	if c.header_ == nil {
53350		c.header_ = make(http.Header)
53351	}
53352	return c.header_
53353}
53354
53355func (c *BackendBucketsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
53356	reqHeaders := make(http.Header)
53357	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
53358	for k, v := range c.header_ {
53359		reqHeaders[k] = v
53360	}
53361	reqHeaders.Set("User-Agent", c.s.userAgent())
53362	var body io.Reader = nil
53363	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
53364	if err != nil {
53365		return nil, err
53366	}
53367	reqHeaders.Set("Content-Type", "application/json")
53368	c.urlParams_.Set("alt", alt)
53369	c.urlParams_.Set("prettyPrint", "false")
53370	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{resource}/setIamPolicy")
53371	urls += "?" + c.urlParams_.Encode()
53372	req, err := http.NewRequest("POST", urls, body)
53373	if err != nil {
53374		return nil, err
53375	}
53376	req.Header = reqHeaders
53377	googleapi.Expand(req.URL, map[string]string{
53378		"project":  c.project,
53379		"resource": c.resource,
53380	})
53381	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53382}
53383
53384// Do executes the "compute.backendBuckets.setIamPolicy" call.
53385// Exactly one of *Policy or error will be non-nil. Any non-2xx status
53386// code is an error. Response headers are in either
53387// *Policy.ServerResponse.Header or (if a response was returned at all)
53388// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
53389// check whether the returned error was because http.StatusNotModified
53390// was returned.
53391func (c *BackendBucketsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
53392	gensupport.SetOptions(c.urlParams_, opts...)
53393	res, err := c.doRequest("json")
53394	if res != nil && res.StatusCode == http.StatusNotModified {
53395		if res.Body != nil {
53396			res.Body.Close()
53397		}
53398		return nil, &googleapi.Error{
53399			Code:   res.StatusCode,
53400			Header: res.Header,
53401		}
53402	}
53403	if err != nil {
53404		return nil, err
53405	}
53406	defer googleapi.CloseBody(res)
53407	if err := googleapi.CheckResponse(res); err != nil {
53408		return nil, err
53409	}
53410	ret := &Policy{
53411		ServerResponse: googleapi.ServerResponse{
53412			Header:         res.Header,
53413			HTTPStatusCode: res.StatusCode,
53414		},
53415	}
53416	target := &ret
53417	if err := gensupport.DecodeResponse(target, res); err != nil {
53418		return nil, err
53419	}
53420	return ret, nil
53421	// {
53422	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
53423	//   "httpMethod": "POST",
53424	//   "id": "compute.backendBuckets.setIamPolicy",
53425	//   "parameterOrder": [
53426	//     "project",
53427	//     "resource"
53428	//   ],
53429	//   "parameters": {
53430	//     "project": {
53431	//       "description": "Project ID for this request.",
53432	//       "location": "path",
53433	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53434	//       "required": true,
53435	//       "type": "string"
53436	//     },
53437	//     "resource": {
53438	//       "description": "Name or id of the resource for this request.",
53439	//       "location": "path",
53440	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53441	//       "required": true,
53442	//       "type": "string"
53443	//     }
53444	//   },
53445	//   "path": "{project}/global/backendBuckets/{resource}/setIamPolicy",
53446	//   "request": {
53447	//     "$ref": "GlobalSetPolicyRequest"
53448	//   },
53449	//   "response": {
53450	//     "$ref": "Policy"
53451	//   },
53452	//   "scopes": [
53453	//     "https://www.googleapis.com/auth/cloud-platform",
53454	//     "https://www.googleapis.com/auth/compute"
53455	//   ]
53456	// }
53457
53458}
53459
53460// method id "compute.backendBuckets.testIamPermissions":
53461
53462type BackendBucketsTestIamPermissionsCall struct {
53463	s                      *Service
53464	project                string
53465	resource               string
53466	testpermissionsrequest *TestPermissionsRequest
53467	urlParams_             gensupport.URLParams
53468	ctx_                   context.Context
53469	header_                http.Header
53470}
53471
53472// TestIamPermissions: Returns permissions that a caller has on the
53473// specified resource.
53474func (r *BackendBucketsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *BackendBucketsTestIamPermissionsCall {
53475	c := &BackendBucketsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53476	c.project = project
53477	c.resource = resource
53478	c.testpermissionsrequest = testpermissionsrequest
53479	return c
53480}
53481
53482// Fields allows partial responses to be retrieved. See
53483// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53484// for more information.
53485func (c *BackendBucketsTestIamPermissionsCall) Fields(s ...googleapi.Field) *BackendBucketsTestIamPermissionsCall {
53486	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53487	return c
53488}
53489
53490// Context sets the context to be used in this call's Do method. Any
53491// pending HTTP request will be aborted if the provided context is
53492// canceled.
53493func (c *BackendBucketsTestIamPermissionsCall) Context(ctx context.Context) *BackendBucketsTestIamPermissionsCall {
53494	c.ctx_ = ctx
53495	return c
53496}
53497
53498// Header returns an http.Header that can be modified by the caller to
53499// add HTTP headers to the request.
53500func (c *BackendBucketsTestIamPermissionsCall) Header() http.Header {
53501	if c.header_ == nil {
53502		c.header_ = make(http.Header)
53503	}
53504	return c.header_
53505}
53506
53507func (c *BackendBucketsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
53508	reqHeaders := make(http.Header)
53509	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
53510	for k, v := range c.header_ {
53511		reqHeaders[k] = v
53512	}
53513	reqHeaders.Set("User-Agent", c.s.userAgent())
53514	var body io.Reader = nil
53515	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
53516	if err != nil {
53517		return nil, err
53518	}
53519	reqHeaders.Set("Content-Type", "application/json")
53520	c.urlParams_.Set("alt", alt)
53521	c.urlParams_.Set("prettyPrint", "false")
53522	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{resource}/testIamPermissions")
53523	urls += "?" + c.urlParams_.Encode()
53524	req, err := http.NewRequest("POST", urls, body)
53525	if err != nil {
53526		return nil, err
53527	}
53528	req.Header = reqHeaders
53529	googleapi.Expand(req.URL, map[string]string{
53530		"project":  c.project,
53531		"resource": c.resource,
53532	})
53533	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53534}
53535
53536// Do executes the "compute.backendBuckets.testIamPermissions" call.
53537// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
53538// non-2xx status code is an error. Response headers are in either
53539// *TestPermissionsResponse.ServerResponse.Header or (if a response was
53540// returned at all) in error.(*googleapi.Error).Header. Use
53541// googleapi.IsNotModified to check whether the returned error was
53542// because http.StatusNotModified was returned.
53543func (c *BackendBucketsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
53544	gensupport.SetOptions(c.urlParams_, opts...)
53545	res, err := c.doRequest("json")
53546	if res != nil && res.StatusCode == http.StatusNotModified {
53547		if res.Body != nil {
53548			res.Body.Close()
53549		}
53550		return nil, &googleapi.Error{
53551			Code:   res.StatusCode,
53552			Header: res.Header,
53553		}
53554	}
53555	if err != nil {
53556		return nil, err
53557	}
53558	defer googleapi.CloseBody(res)
53559	if err := googleapi.CheckResponse(res); err != nil {
53560		return nil, err
53561	}
53562	ret := &TestPermissionsResponse{
53563		ServerResponse: googleapi.ServerResponse{
53564			Header:         res.Header,
53565			HTTPStatusCode: res.StatusCode,
53566		},
53567	}
53568	target := &ret
53569	if err := gensupport.DecodeResponse(target, res); err != nil {
53570		return nil, err
53571	}
53572	return ret, nil
53573	// {
53574	//   "description": "Returns permissions that a caller has on the specified resource.",
53575	//   "httpMethod": "POST",
53576	//   "id": "compute.backendBuckets.testIamPermissions",
53577	//   "parameterOrder": [
53578	//     "project",
53579	//     "resource"
53580	//   ],
53581	//   "parameters": {
53582	//     "project": {
53583	//       "description": "Project ID for this request.",
53584	//       "location": "path",
53585	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53586	//       "required": true,
53587	//       "type": "string"
53588	//     },
53589	//     "resource": {
53590	//       "description": "Name or id of the resource for this request.",
53591	//       "location": "path",
53592	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53593	//       "required": true,
53594	//       "type": "string"
53595	//     }
53596	//   },
53597	//   "path": "{project}/global/backendBuckets/{resource}/testIamPermissions",
53598	//   "request": {
53599	//     "$ref": "TestPermissionsRequest"
53600	//   },
53601	//   "response": {
53602	//     "$ref": "TestPermissionsResponse"
53603	//   },
53604	//   "scopes": [
53605	//     "https://www.googleapis.com/auth/cloud-platform",
53606	//     "https://www.googleapis.com/auth/compute",
53607	//     "https://www.googleapis.com/auth/compute.readonly"
53608	//   ]
53609	// }
53610
53611}
53612
53613// method id "compute.backendBuckets.update":
53614
53615type BackendBucketsUpdateCall struct {
53616	s             *Service
53617	project       string
53618	backendBucket string
53619	backendbucket *BackendBucket
53620	urlParams_    gensupport.URLParams
53621	ctx_          context.Context
53622	header_       http.Header
53623}
53624
53625// Update: Updates the specified BackendBucket resource with the data
53626// included in the request.
53627func (r *BackendBucketsService) Update(project string, backendBucket string, backendbucket *BackendBucket) *BackendBucketsUpdateCall {
53628	c := &BackendBucketsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53629	c.project = project
53630	c.backendBucket = backendBucket
53631	c.backendbucket = backendbucket
53632	return c
53633}
53634
53635// RequestId sets the optional parameter "requestId": An optional
53636// request ID to identify requests. Specify a unique request ID so that
53637// if you must retry your request, the server will know to ignore the
53638// request if it has already been completed.
53639//
53640// For example, consider a situation where you make an initial request
53641// and the request times out. If you make the request again with the
53642// same request ID, the server can check if original operation with the
53643// same request ID was received, and if so, will ignore the second
53644// request. This prevents clients from accidentally creating duplicate
53645// commitments.
53646//
53647// The request ID must be a valid UUID with the exception that zero UUID
53648// is not supported (00000000-0000-0000-0000-000000000000).
53649func (c *BackendBucketsUpdateCall) RequestId(requestId string) *BackendBucketsUpdateCall {
53650	c.urlParams_.Set("requestId", requestId)
53651	return c
53652}
53653
53654// Fields allows partial responses to be retrieved. See
53655// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53656// for more information.
53657func (c *BackendBucketsUpdateCall) Fields(s ...googleapi.Field) *BackendBucketsUpdateCall {
53658	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53659	return c
53660}
53661
53662// Context sets the context to be used in this call's Do method. Any
53663// pending HTTP request will be aborted if the provided context is
53664// canceled.
53665func (c *BackendBucketsUpdateCall) Context(ctx context.Context) *BackendBucketsUpdateCall {
53666	c.ctx_ = ctx
53667	return c
53668}
53669
53670// Header returns an http.Header that can be modified by the caller to
53671// add HTTP headers to the request.
53672func (c *BackendBucketsUpdateCall) Header() http.Header {
53673	if c.header_ == nil {
53674		c.header_ = make(http.Header)
53675	}
53676	return c.header_
53677}
53678
53679func (c *BackendBucketsUpdateCall) doRequest(alt string) (*http.Response, error) {
53680	reqHeaders := make(http.Header)
53681	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
53682	for k, v := range c.header_ {
53683		reqHeaders[k] = v
53684	}
53685	reqHeaders.Set("User-Agent", c.s.userAgent())
53686	var body io.Reader = nil
53687	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
53688	if err != nil {
53689		return nil, err
53690	}
53691	reqHeaders.Set("Content-Type", "application/json")
53692	c.urlParams_.Set("alt", alt)
53693	c.urlParams_.Set("prettyPrint", "false")
53694	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
53695	urls += "?" + c.urlParams_.Encode()
53696	req, err := http.NewRequest("PUT", urls, body)
53697	if err != nil {
53698		return nil, err
53699	}
53700	req.Header = reqHeaders
53701	googleapi.Expand(req.URL, map[string]string{
53702		"project":       c.project,
53703		"backendBucket": c.backendBucket,
53704	})
53705	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53706}
53707
53708// Do executes the "compute.backendBuckets.update" call.
53709// Exactly one of *Operation or error will be non-nil. Any non-2xx
53710// status code is an error. Response headers are in either
53711// *Operation.ServerResponse.Header or (if a response was returned at
53712// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53713// to check whether the returned error was because
53714// http.StatusNotModified was returned.
53715func (c *BackendBucketsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53716	gensupport.SetOptions(c.urlParams_, opts...)
53717	res, err := c.doRequest("json")
53718	if res != nil && res.StatusCode == http.StatusNotModified {
53719		if res.Body != nil {
53720			res.Body.Close()
53721		}
53722		return nil, &googleapi.Error{
53723			Code:   res.StatusCode,
53724			Header: res.Header,
53725		}
53726	}
53727	if err != nil {
53728		return nil, err
53729	}
53730	defer googleapi.CloseBody(res)
53731	if err := googleapi.CheckResponse(res); err != nil {
53732		return nil, err
53733	}
53734	ret := &Operation{
53735		ServerResponse: googleapi.ServerResponse{
53736			Header:         res.Header,
53737			HTTPStatusCode: res.StatusCode,
53738		},
53739	}
53740	target := &ret
53741	if err := gensupport.DecodeResponse(target, res); err != nil {
53742		return nil, err
53743	}
53744	return ret, nil
53745	// {
53746	//   "description": "Updates the specified BackendBucket resource with the data included in the request.",
53747	//   "httpMethod": "PUT",
53748	//   "id": "compute.backendBuckets.update",
53749	//   "parameterOrder": [
53750	//     "project",
53751	//     "backendBucket"
53752	//   ],
53753	//   "parameters": {
53754	//     "backendBucket": {
53755	//       "description": "Name of the BackendBucket resource to update.",
53756	//       "location": "path",
53757	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53758	//       "required": true,
53759	//       "type": "string"
53760	//     },
53761	//     "project": {
53762	//       "description": "Project ID for this request.",
53763	//       "location": "path",
53764	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53765	//       "required": true,
53766	//       "type": "string"
53767	//     },
53768	//     "requestId": {
53769	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53770	//       "location": "query",
53771	//       "type": "string"
53772	//     }
53773	//   },
53774	//   "path": "{project}/global/backendBuckets/{backendBucket}",
53775	//   "request": {
53776	//     "$ref": "BackendBucket"
53777	//   },
53778	//   "response": {
53779	//     "$ref": "Operation"
53780	//   },
53781	//   "scopes": [
53782	//     "https://www.googleapis.com/auth/cloud-platform",
53783	//     "https://www.googleapis.com/auth/compute"
53784	//   ]
53785	// }
53786
53787}
53788
53789// method id "compute.backendServices.addSignedUrlKey":
53790
53791type BackendServicesAddSignedUrlKeyCall struct {
53792	s              *Service
53793	project        string
53794	backendService string
53795	signedurlkey   *SignedUrlKey
53796	urlParams_     gensupport.URLParams
53797	ctx_           context.Context
53798	header_        http.Header
53799}
53800
53801// AddSignedUrlKey: Adds a key for validating requests with signed URLs
53802// for this backend service.
53803func (r *BackendServicesService) AddSignedUrlKey(project string, backendService string, signedurlkey *SignedUrlKey) *BackendServicesAddSignedUrlKeyCall {
53804	c := &BackendServicesAddSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53805	c.project = project
53806	c.backendService = backendService
53807	c.signedurlkey = signedurlkey
53808	return c
53809}
53810
53811// RequestId sets the optional parameter "requestId": An optional
53812// request ID to identify requests. Specify a unique request ID so that
53813// if you must retry your request, the server will know to ignore the
53814// request if it has already been completed.
53815//
53816// For example, consider a situation where you make an initial request
53817// and the request times out. If you make the request again with the
53818// same request ID, the server can check if original operation with the
53819// same request ID was received, and if so, will ignore the second
53820// request. This prevents clients from accidentally creating duplicate
53821// commitments.
53822//
53823// The request ID must be a valid UUID with the exception that zero UUID
53824// is not supported (00000000-0000-0000-0000-000000000000).
53825func (c *BackendServicesAddSignedUrlKeyCall) RequestId(requestId string) *BackendServicesAddSignedUrlKeyCall {
53826	c.urlParams_.Set("requestId", requestId)
53827	return c
53828}
53829
53830// Fields allows partial responses to be retrieved. See
53831// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53832// for more information.
53833func (c *BackendServicesAddSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendServicesAddSignedUrlKeyCall {
53834	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53835	return c
53836}
53837
53838// Context sets the context to be used in this call's Do method. Any
53839// pending HTTP request will be aborted if the provided context is
53840// canceled.
53841func (c *BackendServicesAddSignedUrlKeyCall) Context(ctx context.Context) *BackendServicesAddSignedUrlKeyCall {
53842	c.ctx_ = ctx
53843	return c
53844}
53845
53846// Header returns an http.Header that can be modified by the caller to
53847// add HTTP headers to the request.
53848func (c *BackendServicesAddSignedUrlKeyCall) Header() http.Header {
53849	if c.header_ == nil {
53850		c.header_ = make(http.Header)
53851	}
53852	return c.header_
53853}
53854
53855func (c *BackendServicesAddSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
53856	reqHeaders := make(http.Header)
53857	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
53858	for k, v := range c.header_ {
53859		reqHeaders[k] = v
53860	}
53861	reqHeaders.Set("User-Agent", c.s.userAgent())
53862	var body io.Reader = nil
53863	body, err := googleapi.WithoutDataWrapper.JSONReader(c.signedurlkey)
53864	if err != nil {
53865		return nil, err
53866	}
53867	reqHeaders.Set("Content-Type", "application/json")
53868	c.urlParams_.Set("alt", alt)
53869	c.urlParams_.Set("prettyPrint", "false")
53870	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/addSignedUrlKey")
53871	urls += "?" + c.urlParams_.Encode()
53872	req, err := http.NewRequest("POST", urls, body)
53873	if err != nil {
53874		return nil, err
53875	}
53876	req.Header = reqHeaders
53877	googleapi.Expand(req.URL, map[string]string{
53878		"project":        c.project,
53879		"backendService": c.backendService,
53880	})
53881	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53882}
53883
53884// Do executes the "compute.backendServices.addSignedUrlKey" call.
53885// Exactly one of *Operation or error will be non-nil. Any non-2xx
53886// status code is an error. Response headers are in either
53887// *Operation.ServerResponse.Header or (if a response was returned at
53888// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53889// to check whether the returned error was because
53890// http.StatusNotModified was returned.
53891func (c *BackendServicesAddSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53892	gensupport.SetOptions(c.urlParams_, opts...)
53893	res, err := c.doRequest("json")
53894	if res != nil && res.StatusCode == http.StatusNotModified {
53895		if res.Body != nil {
53896			res.Body.Close()
53897		}
53898		return nil, &googleapi.Error{
53899			Code:   res.StatusCode,
53900			Header: res.Header,
53901		}
53902	}
53903	if err != nil {
53904		return nil, err
53905	}
53906	defer googleapi.CloseBody(res)
53907	if err := googleapi.CheckResponse(res); err != nil {
53908		return nil, err
53909	}
53910	ret := &Operation{
53911		ServerResponse: googleapi.ServerResponse{
53912			Header:         res.Header,
53913			HTTPStatusCode: res.StatusCode,
53914		},
53915	}
53916	target := &ret
53917	if err := gensupport.DecodeResponse(target, res); err != nil {
53918		return nil, err
53919	}
53920	return ret, nil
53921	// {
53922	//   "description": "Adds a key for validating requests with signed URLs for this backend service.",
53923	//   "httpMethod": "POST",
53924	//   "id": "compute.backendServices.addSignedUrlKey",
53925	//   "parameterOrder": [
53926	//     "project",
53927	//     "backendService"
53928	//   ],
53929	//   "parameters": {
53930	//     "backendService": {
53931	//       "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
53932	//       "location": "path",
53933	//       "required": true,
53934	//       "type": "string"
53935	//     },
53936	//     "project": {
53937	//       "description": "Project ID for this request.",
53938	//       "location": "path",
53939	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53940	//       "required": true,
53941	//       "type": "string"
53942	//     },
53943	//     "requestId": {
53944	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53945	//       "location": "query",
53946	//       "type": "string"
53947	//     }
53948	//   },
53949	//   "path": "{project}/global/backendServices/{backendService}/addSignedUrlKey",
53950	//   "request": {
53951	//     "$ref": "SignedUrlKey"
53952	//   },
53953	//   "response": {
53954	//     "$ref": "Operation"
53955	//   },
53956	//   "scopes": [
53957	//     "https://www.googleapis.com/auth/cloud-platform",
53958	//     "https://www.googleapis.com/auth/compute"
53959	//   ]
53960	// }
53961
53962}
53963
53964// method id "compute.backendServices.aggregatedList":
53965
53966type BackendServicesAggregatedListCall struct {
53967	s            *Service
53968	project      string
53969	urlParams_   gensupport.URLParams
53970	ifNoneMatch_ string
53971	ctx_         context.Context
53972	header_      http.Header
53973}
53974
53975// AggregatedList: Retrieves the list of all BackendService resources,
53976// regional and global, available to the specified project.
53977func (r *BackendServicesService) AggregatedList(project string) *BackendServicesAggregatedListCall {
53978	c := &BackendServicesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53979	c.project = project
53980	return c
53981}
53982
53983// Filter sets the optional parameter "filter": A filter expression that
53984// filters resources listed in the response. The expression must specify
53985// the field name, a comparison operator, and the value that you want to
53986// use for filtering. The value must be a string, a number, or a
53987// boolean. The comparison operator must be either =, !=, >, or <.
53988//
53989// For example, if you are filtering Compute Engine instances, you can
53990// exclude instances named example-instance by specifying name !=
53991// example-instance.
53992//
53993// You can also filter nested fields. For example, you could specify
53994// scheduling.automaticRestart = false to include instances only if they
53995// are not scheduled for automatic restarts. You can use filtering on
53996// nested fields to filter based on resource labels.
53997//
53998// To filter on multiple expressions, provide each separate expression
53999// within parentheses. For example, (scheduling.automaticRestart = true)
54000// (cpuPlatform = "Intel Skylake"). By default, each expression is an
54001// AND expression. However, you can include AND and OR expressions
54002// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
54003// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
54004// true).
54005func (c *BackendServicesAggregatedListCall) Filter(filter string) *BackendServicesAggregatedListCall {
54006	c.urlParams_.Set("filter", filter)
54007	return c
54008}
54009
54010// IncludeAllScopes sets the optional parameter "includeAllScopes":
54011// Indicates whether every visible scope for each scope type (zone,
54012// region, global) should be included in the response. For new resource
54013// types added after this field, the flag has no effect as new resource
54014// types will always include every visible scope for each scope type in
54015// response. For resource types which predate this field, if this flag
54016// is omitted or false, only scopes of the scope types where the
54017// resource type is expected to be found will be included.
54018func (c *BackendServicesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *BackendServicesAggregatedListCall {
54019	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
54020	return c
54021}
54022
54023// MaxResults sets the optional parameter "maxResults": The maximum
54024// number of results per page that should be returned. If the number of
54025// available results is larger than maxResults, Compute Engine returns a
54026// nextPageToken that can be used to get the next page of results in
54027// subsequent list requests. Acceptable values are 0 to 500, inclusive.
54028// (Default: 500)
54029func (c *BackendServicesAggregatedListCall) MaxResults(maxResults int64) *BackendServicesAggregatedListCall {
54030	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
54031	return c
54032}
54033
54034// OrderBy sets the optional parameter "orderBy": Sorts list results by
54035// a certain order. By default, results are returned in alphanumerical
54036// order based on the resource name.
54037//
54038// You can also sort results in descending order based on the creation
54039// timestamp using orderBy="creationTimestamp desc". This sorts results
54040// based on the creationTimestamp field in reverse chronological order
54041// (newest result first). Use this to sort resources like operations so
54042// that the newest operation is returned first.
54043//
54044// Currently, only sorting by name or creationTimestamp desc is
54045// supported.
54046func (c *BackendServicesAggregatedListCall) OrderBy(orderBy string) *BackendServicesAggregatedListCall {
54047	c.urlParams_.Set("orderBy", orderBy)
54048	return c
54049}
54050
54051// PageToken sets the optional parameter "pageToken": Specifies a page
54052// token to use. Set pageToken to the nextPageToken returned by a
54053// previous list request to get the next page of results.
54054func (c *BackendServicesAggregatedListCall) PageToken(pageToken string) *BackendServicesAggregatedListCall {
54055	c.urlParams_.Set("pageToken", pageToken)
54056	return c
54057}
54058
54059// Fields allows partial responses to be retrieved. See
54060// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54061// for more information.
54062func (c *BackendServicesAggregatedListCall) Fields(s ...googleapi.Field) *BackendServicesAggregatedListCall {
54063	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54064	return c
54065}
54066
54067// IfNoneMatch sets the optional parameter which makes the operation
54068// fail if the object's ETag matches the given value. This is useful for
54069// getting updates only after the object has changed since the last
54070// request. Use googleapi.IsNotModified to check whether the response
54071// error from Do is the result of In-None-Match.
54072func (c *BackendServicesAggregatedListCall) IfNoneMatch(entityTag string) *BackendServicesAggregatedListCall {
54073	c.ifNoneMatch_ = entityTag
54074	return c
54075}
54076
54077// Context sets the context to be used in this call's Do method. Any
54078// pending HTTP request will be aborted if the provided context is
54079// canceled.
54080func (c *BackendServicesAggregatedListCall) Context(ctx context.Context) *BackendServicesAggregatedListCall {
54081	c.ctx_ = ctx
54082	return c
54083}
54084
54085// Header returns an http.Header that can be modified by the caller to
54086// add HTTP headers to the request.
54087func (c *BackendServicesAggregatedListCall) Header() http.Header {
54088	if c.header_ == nil {
54089		c.header_ = make(http.Header)
54090	}
54091	return c.header_
54092}
54093
54094func (c *BackendServicesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
54095	reqHeaders := make(http.Header)
54096	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
54097	for k, v := range c.header_ {
54098		reqHeaders[k] = v
54099	}
54100	reqHeaders.Set("User-Agent", c.s.userAgent())
54101	if c.ifNoneMatch_ != "" {
54102		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
54103	}
54104	var body io.Reader = nil
54105	c.urlParams_.Set("alt", alt)
54106	c.urlParams_.Set("prettyPrint", "false")
54107	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/backendServices")
54108	urls += "?" + c.urlParams_.Encode()
54109	req, err := http.NewRequest("GET", urls, body)
54110	if err != nil {
54111		return nil, err
54112	}
54113	req.Header = reqHeaders
54114	googleapi.Expand(req.URL, map[string]string{
54115		"project": c.project,
54116	})
54117	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54118}
54119
54120// Do executes the "compute.backendServices.aggregatedList" call.
54121// Exactly one of *BackendServiceAggregatedList or error will be
54122// non-nil. Any non-2xx status code is an error. Response headers are in
54123// either *BackendServiceAggregatedList.ServerResponse.Header or (if a
54124// response was returned at all) in error.(*googleapi.Error).Header. Use
54125// googleapi.IsNotModified to check whether the returned error was
54126// because http.StatusNotModified was returned.
54127func (c *BackendServicesAggregatedListCall) Do(opts ...googleapi.CallOption) (*BackendServiceAggregatedList, error) {
54128	gensupport.SetOptions(c.urlParams_, opts...)
54129	res, err := c.doRequest("json")
54130	if res != nil && res.StatusCode == http.StatusNotModified {
54131		if res.Body != nil {
54132			res.Body.Close()
54133		}
54134		return nil, &googleapi.Error{
54135			Code:   res.StatusCode,
54136			Header: res.Header,
54137		}
54138	}
54139	if err != nil {
54140		return nil, err
54141	}
54142	defer googleapi.CloseBody(res)
54143	if err := googleapi.CheckResponse(res); err != nil {
54144		return nil, err
54145	}
54146	ret := &BackendServiceAggregatedList{
54147		ServerResponse: googleapi.ServerResponse{
54148			Header:         res.Header,
54149			HTTPStatusCode: res.StatusCode,
54150		},
54151	}
54152	target := &ret
54153	if err := gensupport.DecodeResponse(target, res); err != nil {
54154		return nil, err
54155	}
54156	return ret, nil
54157	// {
54158	//   "description": "Retrieves the list of all BackendService resources, regional and global, available to the specified project.",
54159	//   "httpMethod": "GET",
54160	//   "id": "compute.backendServices.aggregatedList",
54161	//   "parameterOrder": [
54162	//     "project"
54163	//   ],
54164	//   "parameters": {
54165	//     "filter": {
54166	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
54167	//       "location": "query",
54168	//       "type": "string"
54169	//     },
54170	//     "includeAllScopes": {
54171	//       "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.",
54172	//       "location": "query",
54173	//       "type": "boolean"
54174	//     },
54175	//     "maxResults": {
54176	//       "default": "500",
54177	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
54178	//       "format": "uint32",
54179	//       "location": "query",
54180	//       "minimum": "0",
54181	//       "type": "integer"
54182	//     },
54183	//     "orderBy": {
54184	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
54185	//       "location": "query",
54186	//       "type": "string"
54187	//     },
54188	//     "pageToken": {
54189	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
54190	//       "location": "query",
54191	//       "type": "string"
54192	//     },
54193	//     "project": {
54194	//       "description": "Name of the project scoping this request.",
54195	//       "location": "path",
54196	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54197	//       "required": true,
54198	//       "type": "string"
54199	//     }
54200	//   },
54201	//   "path": "{project}/aggregated/backendServices",
54202	//   "response": {
54203	//     "$ref": "BackendServiceAggregatedList"
54204	//   },
54205	//   "scopes": [
54206	//     "https://www.googleapis.com/auth/cloud-platform",
54207	//     "https://www.googleapis.com/auth/compute",
54208	//     "https://www.googleapis.com/auth/compute.readonly"
54209	//   ]
54210	// }
54211
54212}
54213
54214// Pages invokes f for each page of results.
54215// A non-nil error returned from f will halt the iteration.
54216// The provided context supersedes any context provided to the Context method.
54217func (c *BackendServicesAggregatedListCall) Pages(ctx context.Context, f func(*BackendServiceAggregatedList) error) error {
54218	c.ctx_ = ctx
54219	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
54220	for {
54221		x, err := c.Do()
54222		if err != nil {
54223			return err
54224		}
54225		if err := f(x); err != nil {
54226			return err
54227		}
54228		if x.NextPageToken == "" {
54229			return nil
54230		}
54231		c.PageToken(x.NextPageToken)
54232	}
54233}
54234
54235// method id "compute.backendServices.delete":
54236
54237type BackendServicesDeleteCall struct {
54238	s              *Service
54239	project        string
54240	backendService string
54241	urlParams_     gensupport.URLParams
54242	ctx_           context.Context
54243	header_        http.Header
54244}
54245
54246// Delete: Deletes the specified BackendService resource.
54247// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/delete
54248func (r *BackendServicesService) Delete(project string, backendService string) *BackendServicesDeleteCall {
54249	c := &BackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54250	c.project = project
54251	c.backendService = backendService
54252	return c
54253}
54254
54255// RequestId sets the optional parameter "requestId": An optional
54256// request ID to identify requests. Specify a unique request ID so that
54257// if you must retry your request, the server will know to ignore the
54258// request if it has already been completed.
54259//
54260// For example, consider a situation where you make an initial request
54261// and the request times out. If you make the request again with the
54262// same request ID, the server can check if original operation with the
54263// same request ID was received, and if so, will ignore the second
54264// request. This prevents clients from accidentally creating duplicate
54265// commitments.
54266//
54267// The request ID must be a valid UUID with the exception that zero UUID
54268// is not supported (00000000-0000-0000-0000-000000000000).
54269func (c *BackendServicesDeleteCall) RequestId(requestId string) *BackendServicesDeleteCall {
54270	c.urlParams_.Set("requestId", requestId)
54271	return c
54272}
54273
54274// Fields allows partial responses to be retrieved. See
54275// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54276// for more information.
54277func (c *BackendServicesDeleteCall) Fields(s ...googleapi.Field) *BackendServicesDeleteCall {
54278	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54279	return c
54280}
54281
54282// Context sets the context to be used in this call's Do method. Any
54283// pending HTTP request will be aborted if the provided context is
54284// canceled.
54285func (c *BackendServicesDeleteCall) Context(ctx context.Context) *BackendServicesDeleteCall {
54286	c.ctx_ = ctx
54287	return c
54288}
54289
54290// Header returns an http.Header that can be modified by the caller to
54291// add HTTP headers to the request.
54292func (c *BackendServicesDeleteCall) Header() http.Header {
54293	if c.header_ == nil {
54294		c.header_ = make(http.Header)
54295	}
54296	return c.header_
54297}
54298
54299func (c *BackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
54300	reqHeaders := make(http.Header)
54301	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
54302	for k, v := range c.header_ {
54303		reqHeaders[k] = v
54304	}
54305	reqHeaders.Set("User-Agent", c.s.userAgent())
54306	var body io.Reader = nil
54307	c.urlParams_.Set("alt", alt)
54308	c.urlParams_.Set("prettyPrint", "false")
54309	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
54310	urls += "?" + c.urlParams_.Encode()
54311	req, err := http.NewRequest("DELETE", urls, body)
54312	if err != nil {
54313		return nil, err
54314	}
54315	req.Header = reqHeaders
54316	googleapi.Expand(req.URL, map[string]string{
54317		"project":        c.project,
54318		"backendService": c.backendService,
54319	})
54320	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54321}
54322
54323// Do executes the "compute.backendServices.delete" call.
54324// Exactly one of *Operation or error will be non-nil. Any non-2xx
54325// status code is an error. Response headers are in either
54326// *Operation.ServerResponse.Header or (if a response was returned at
54327// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54328// to check whether the returned error was because
54329// http.StatusNotModified was returned.
54330func (c *BackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54331	gensupport.SetOptions(c.urlParams_, opts...)
54332	res, err := c.doRequest("json")
54333	if res != nil && res.StatusCode == http.StatusNotModified {
54334		if res.Body != nil {
54335			res.Body.Close()
54336		}
54337		return nil, &googleapi.Error{
54338			Code:   res.StatusCode,
54339			Header: res.Header,
54340		}
54341	}
54342	if err != nil {
54343		return nil, err
54344	}
54345	defer googleapi.CloseBody(res)
54346	if err := googleapi.CheckResponse(res); err != nil {
54347		return nil, err
54348	}
54349	ret := &Operation{
54350		ServerResponse: googleapi.ServerResponse{
54351			Header:         res.Header,
54352			HTTPStatusCode: res.StatusCode,
54353		},
54354	}
54355	target := &ret
54356	if err := gensupport.DecodeResponse(target, res); err != nil {
54357		return nil, err
54358	}
54359	return ret, nil
54360	// {
54361	//   "description": "Deletes the specified BackendService resource.",
54362	//   "httpMethod": "DELETE",
54363	//   "id": "compute.backendServices.delete",
54364	//   "parameterOrder": [
54365	//     "project",
54366	//     "backendService"
54367	//   ],
54368	//   "parameters": {
54369	//     "backendService": {
54370	//       "description": "Name of the BackendService resource to delete.",
54371	//       "location": "path",
54372	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54373	//       "required": true,
54374	//       "type": "string"
54375	//     },
54376	//     "project": {
54377	//       "description": "Project ID for this request.",
54378	//       "location": "path",
54379	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54380	//       "required": true,
54381	//       "type": "string"
54382	//     },
54383	//     "requestId": {
54384	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54385	//       "location": "query",
54386	//       "type": "string"
54387	//     }
54388	//   },
54389	//   "path": "{project}/global/backendServices/{backendService}",
54390	//   "response": {
54391	//     "$ref": "Operation"
54392	//   },
54393	//   "scopes": [
54394	//     "https://www.googleapis.com/auth/cloud-platform",
54395	//     "https://www.googleapis.com/auth/compute"
54396	//   ]
54397	// }
54398
54399}
54400
54401// method id "compute.backendServices.deleteSignedUrlKey":
54402
54403type BackendServicesDeleteSignedUrlKeyCall struct {
54404	s              *Service
54405	project        string
54406	backendService string
54407	urlParams_     gensupport.URLParams
54408	ctx_           context.Context
54409	header_        http.Header
54410}
54411
54412// DeleteSignedUrlKey: Deletes a key for validating requests with signed
54413// URLs for this backend service.
54414func (r *BackendServicesService) DeleteSignedUrlKey(project string, backendService string, keyName string) *BackendServicesDeleteSignedUrlKeyCall {
54415	c := &BackendServicesDeleteSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54416	c.project = project
54417	c.backendService = backendService
54418	c.urlParams_.Set("keyName", keyName)
54419	return c
54420}
54421
54422// RequestId sets the optional parameter "requestId": An optional
54423// request ID to identify requests. Specify a unique request ID so that
54424// if you must retry your request, the server will know to ignore the
54425// request if it has already been completed.
54426//
54427// For example, consider a situation where you make an initial request
54428// and the request times out. If you make the request again with the
54429// same request ID, the server can check if original operation with the
54430// same request ID was received, and if so, will ignore the second
54431// request. This prevents clients from accidentally creating duplicate
54432// commitments.
54433//
54434// The request ID must be a valid UUID with the exception that zero UUID
54435// is not supported (00000000-0000-0000-0000-000000000000).
54436func (c *BackendServicesDeleteSignedUrlKeyCall) RequestId(requestId string) *BackendServicesDeleteSignedUrlKeyCall {
54437	c.urlParams_.Set("requestId", requestId)
54438	return c
54439}
54440
54441// Fields allows partial responses to be retrieved. See
54442// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54443// for more information.
54444func (c *BackendServicesDeleteSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendServicesDeleteSignedUrlKeyCall {
54445	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54446	return c
54447}
54448
54449// Context sets the context to be used in this call's Do method. Any
54450// pending HTTP request will be aborted if the provided context is
54451// canceled.
54452func (c *BackendServicesDeleteSignedUrlKeyCall) Context(ctx context.Context) *BackendServicesDeleteSignedUrlKeyCall {
54453	c.ctx_ = ctx
54454	return c
54455}
54456
54457// Header returns an http.Header that can be modified by the caller to
54458// add HTTP headers to the request.
54459func (c *BackendServicesDeleteSignedUrlKeyCall) Header() http.Header {
54460	if c.header_ == nil {
54461		c.header_ = make(http.Header)
54462	}
54463	return c.header_
54464}
54465
54466func (c *BackendServicesDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
54467	reqHeaders := make(http.Header)
54468	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
54469	for k, v := range c.header_ {
54470		reqHeaders[k] = v
54471	}
54472	reqHeaders.Set("User-Agent", c.s.userAgent())
54473	var body io.Reader = nil
54474	c.urlParams_.Set("alt", alt)
54475	c.urlParams_.Set("prettyPrint", "false")
54476	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/deleteSignedUrlKey")
54477	urls += "?" + c.urlParams_.Encode()
54478	req, err := http.NewRequest("POST", urls, body)
54479	if err != nil {
54480		return nil, err
54481	}
54482	req.Header = reqHeaders
54483	googleapi.Expand(req.URL, map[string]string{
54484		"project":        c.project,
54485		"backendService": c.backendService,
54486	})
54487	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54488}
54489
54490// Do executes the "compute.backendServices.deleteSignedUrlKey" call.
54491// Exactly one of *Operation or error will be non-nil. Any non-2xx
54492// status code is an error. Response headers are in either
54493// *Operation.ServerResponse.Header or (if a response was returned at
54494// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54495// to check whether the returned error was because
54496// http.StatusNotModified was returned.
54497func (c *BackendServicesDeleteSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54498	gensupport.SetOptions(c.urlParams_, opts...)
54499	res, err := c.doRequest("json")
54500	if res != nil && res.StatusCode == http.StatusNotModified {
54501		if res.Body != nil {
54502			res.Body.Close()
54503		}
54504		return nil, &googleapi.Error{
54505			Code:   res.StatusCode,
54506			Header: res.Header,
54507		}
54508	}
54509	if err != nil {
54510		return nil, err
54511	}
54512	defer googleapi.CloseBody(res)
54513	if err := googleapi.CheckResponse(res); err != nil {
54514		return nil, err
54515	}
54516	ret := &Operation{
54517		ServerResponse: googleapi.ServerResponse{
54518			Header:         res.Header,
54519			HTTPStatusCode: res.StatusCode,
54520		},
54521	}
54522	target := &ret
54523	if err := gensupport.DecodeResponse(target, res); err != nil {
54524		return nil, err
54525	}
54526	return ret, nil
54527	// {
54528	//   "description": "Deletes a key for validating requests with signed URLs for this backend service.",
54529	//   "httpMethod": "POST",
54530	//   "id": "compute.backendServices.deleteSignedUrlKey",
54531	//   "parameterOrder": [
54532	//     "project",
54533	//     "backendService",
54534	//     "keyName"
54535	//   ],
54536	//   "parameters": {
54537	//     "backendService": {
54538	//       "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
54539	//       "location": "path",
54540	//       "required": true,
54541	//       "type": "string"
54542	//     },
54543	//     "keyName": {
54544	//       "description": "The name of the Signed URL Key to delete.",
54545	//       "location": "query",
54546	//       "required": true,
54547	//       "type": "string"
54548	//     },
54549	//     "project": {
54550	//       "description": "Project ID for this request.",
54551	//       "location": "path",
54552	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54553	//       "required": true,
54554	//       "type": "string"
54555	//     },
54556	//     "requestId": {
54557	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54558	//       "location": "query",
54559	//       "type": "string"
54560	//     }
54561	//   },
54562	//   "path": "{project}/global/backendServices/{backendService}/deleteSignedUrlKey",
54563	//   "response": {
54564	//     "$ref": "Operation"
54565	//   },
54566	//   "scopes": [
54567	//     "https://www.googleapis.com/auth/cloud-platform",
54568	//     "https://www.googleapis.com/auth/compute"
54569	//   ]
54570	// }
54571
54572}
54573
54574// method id "compute.backendServices.get":
54575
54576type BackendServicesGetCall struct {
54577	s              *Service
54578	project        string
54579	backendService string
54580	urlParams_     gensupport.URLParams
54581	ifNoneMatch_   string
54582	ctx_           context.Context
54583	header_        http.Header
54584}
54585
54586// Get: Returns the specified BackendService resource. Gets a list of
54587// available backend services.
54588// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/get
54589func (r *BackendServicesService) Get(project string, backendService string) *BackendServicesGetCall {
54590	c := &BackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54591	c.project = project
54592	c.backendService = backendService
54593	return c
54594}
54595
54596// Fields allows partial responses to be retrieved. See
54597// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54598// for more information.
54599func (c *BackendServicesGetCall) Fields(s ...googleapi.Field) *BackendServicesGetCall {
54600	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54601	return c
54602}
54603
54604// IfNoneMatch sets the optional parameter which makes the operation
54605// fail if the object's ETag matches the given value. This is useful for
54606// getting updates only after the object has changed since the last
54607// request. Use googleapi.IsNotModified to check whether the response
54608// error from Do is the result of In-None-Match.
54609func (c *BackendServicesGetCall) IfNoneMatch(entityTag string) *BackendServicesGetCall {
54610	c.ifNoneMatch_ = entityTag
54611	return c
54612}
54613
54614// Context sets the context to be used in this call's Do method. Any
54615// pending HTTP request will be aborted if the provided context is
54616// canceled.
54617func (c *BackendServicesGetCall) Context(ctx context.Context) *BackendServicesGetCall {
54618	c.ctx_ = ctx
54619	return c
54620}
54621
54622// Header returns an http.Header that can be modified by the caller to
54623// add HTTP headers to the request.
54624func (c *BackendServicesGetCall) Header() http.Header {
54625	if c.header_ == nil {
54626		c.header_ = make(http.Header)
54627	}
54628	return c.header_
54629}
54630
54631func (c *BackendServicesGetCall) doRequest(alt string) (*http.Response, error) {
54632	reqHeaders := make(http.Header)
54633	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
54634	for k, v := range c.header_ {
54635		reqHeaders[k] = v
54636	}
54637	reqHeaders.Set("User-Agent", c.s.userAgent())
54638	if c.ifNoneMatch_ != "" {
54639		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
54640	}
54641	var body io.Reader = nil
54642	c.urlParams_.Set("alt", alt)
54643	c.urlParams_.Set("prettyPrint", "false")
54644	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
54645	urls += "?" + c.urlParams_.Encode()
54646	req, err := http.NewRequest("GET", urls, body)
54647	if err != nil {
54648		return nil, err
54649	}
54650	req.Header = reqHeaders
54651	googleapi.Expand(req.URL, map[string]string{
54652		"project":        c.project,
54653		"backendService": c.backendService,
54654	})
54655	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54656}
54657
54658// Do executes the "compute.backendServices.get" call.
54659// Exactly one of *BackendService or error will be non-nil. Any non-2xx
54660// status code is an error. Response headers are in either
54661// *BackendService.ServerResponse.Header or (if a response was returned
54662// at all) in error.(*googleapi.Error).Header. Use
54663// googleapi.IsNotModified to check whether the returned error was
54664// because http.StatusNotModified was returned.
54665func (c *BackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) {
54666	gensupport.SetOptions(c.urlParams_, opts...)
54667	res, err := c.doRequest("json")
54668	if res != nil && res.StatusCode == http.StatusNotModified {
54669		if res.Body != nil {
54670			res.Body.Close()
54671		}
54672		return nil, &googleapi.Error{
54673			Code:   res.StatusCode,
54674			Header: res.Header,
54675		}
54676	}
54677	if err != nil {
54678		return nil, err
54679	}
54680	defer googleapi.CloseBody(res)
54681	if err := googleapi.CheckResponse(res); err != nil {
54682		return nil, err
54683	}
54684	ret := &BackendService{
54685		ServerResponse: googleapi.ServerResponse{
54686			Header:         res.Header,
54687			HTTPStatusCode: res.StatusCode,
54688		},
54689	}
54690	target := &ret
54691	if err := gensupport.DecodeResponse(target, res); err != nil {
54692		return nil, err
54693	}
54694	return ret, nil
54695	// {
54696	//   "description": "Returns the specified BackendService resource. Gets a list of available backend services.",
54697	//   "httpMethod": "GET",
54698	//   "id": "compute.backendServices.get",
54699	//   "parameterOrder": [
54700	//     "project",
54701	//     "backendService"
54702	//   ],
54703	//   "parameters": {
54704	//     "backendService": {
54705	//       "description": "Name of the BackendService resource to return.",
54706	//       "location": "path",
54707	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54708	//       "required": true,
54709	//       "type": "string"
54710	//     },
54711	//     "project": {
54712	//       "description": "Project ID for this request.",
54713	//       "location": "path",
54714	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54715	//       "required": true,
54716	//       "type": "string"
54717	//     }
54718	//   },
54719	//   "path": "{project}/global/backendServices/{backendService}",
54720	//   "response": {
54721	//     "$ref": "BackendService"
54722	//   },
54723	//   "scopes": [
54724	//     "https://www.googleapis.com/auth/cloud-platform",
54725	//     "https://www.googleapis.com/auth/compute",
54726	//     "https://www.googleapis.com/auth/compute.readonly"
54727	//   ]
54728	// }
54729
54730}
54731
54732// method id "compute.backendServices.getHealth":
54733
54734type BackendServicesGetHealthCall struct {
54735	s                      *Service
54736	project                string
54737	backendService         string
54738	resourcegroupreference *ResourceGroupReference
54739	urlParams_             gensupport.URLParams
54740	ctx_                   context.Context
54741	header_                http.Header
54742}
54743
54744// GetHealth: Gets the most recent health check results for this
54745// BackendService.
54746// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/getHealth
54747func (r *BackendServicesService) GetHealth(project string, backendService string, resourcegroupreference *ResourceGroupReference) *BackendServicesGetHealthCall {
54748	c := &BackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54749	c.project = project
54750	c.backendService = backendService
54751	c.resourcegroupreference = resourcegroupreference
54752	return c
54753}
54754
54755// Fields allows partial responses to be retrieved. See
54756// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54757// for more information.
54758func (c *BackendServicesGetHealthCall) Fields(s ...googleapi.Field) *BackendServicesGetHealthCall {
54759	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54760	return c
54761}
54762
54763// Context sets the context to be used in this call's Do method. Any
54764// pending HTTP request will be aborted if the provided context is
54765// canceled.
54766func (c *BackendServicesGetHealthCall) Context(ctx context.Context) *BackendServicesGetHealthCall {
54767	c.ctx_ = ctx
54768	return c
54769}
54770
54771// Header returns an http.Header that can be modified by the caller to
54772// add HTTP headers to the request.
54773func (c *BackendServicesGetHealthCall) Header() http.Header {
54774	if c.header_ == nil {
54775		c.header_ = make(http.Header)
54776	}
54777	return c.header_
54778}
54779
54780func (c *BackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) {
54781	reqHeaders := make(http.Header)
54782	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
54783	for k, v := range c.header_ {
54784		reqHeaders[k] = v
54785	}
54786	reqHeaders.Set("User-Agent", c.s.userAgent())
54787	var body io.Reader = nil
54788	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference)
54789	if err != nil {
54790		return nil, err
54791	}
54792	reqHeaders.Set("Content-Type", "application/json")
54793	c.urlParams_.Set("alt", alt)
54794	c.urlParams_.Set("prettyPrint", "false")
54795	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/getHealth")
54796	urls += "?" + c.urlParams_.Encode()
54797	req, err := http.NewRequest("POST", urls, body)
54798	if err != nil {
54799		return nil, err
54800	}
54801	req.Header = reqHeaders
54802	googleapi.Expand(req.URL, map[string]string{
54803		"project":        c.project,
54804		"backendService": c.backendService,
54805	})
54806	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54807}
54808
54809// Do executes the "compute.backendServices.getHealth" call.
54810// Exactly one of *BackendServiceGroupHealth or error will be non-nil.
54811// Any non-2xx status code is an error. Response headers are in either
54812// *BackendServiceGroupHealth.ServerResponse.Header or (if a response
54813// was returned at all) in error.(*googleapi.Error).Header. Use
54814// googleapi.IsNotModified to check whether the returned error was
54815// because http.StatusNotModified was returned.
54816func (c *BackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) {
54817	gensupport.SetOptions(c.urlParams_, opts...)
54818	res, err := c.doRequest("json")
54819	if res != nil && res.StatusCode == http.StatusNotModified {
54820		if res.Body != nil {
54821			res.Body.Close()
54822		}
54823		return nil, &googleapi.Error{
54824			Code:   res.StatusCode,
54825			Header: res.Header,
54826		}
54827	}
54828	if err != nil {
54829		return nil, err
54830	}
54831	defer googleapi.CloseBody(res)
54832	if err := googleapi.CheckResponse(res); err != nil {
54833		return nil, err
54834	}
54835	ret := &BackendServiceGroupHealth{
54836		ServerResponse: googleapi.ServerResponse{
54837			Header:         res.Header,
54838			HTTPStatusCode: res.StatusCode,
54839		},
54840	}
54841	target := &ret
54842	if err := gensupport.DecodeResponse(target, res); err != nil {
54843		return nil, err
54844	}
54845	return ret, nil
54846	// {
54847	//   "description": "Gets the most recent health check results for this BackendService.",
54848	//   "httpMethod": "POST",
54849	//   "id": "compute.backendServices.getHealth",
54850	//   "parameterOrder": [
54851	//     "project",
54852	//     "backendService"
54853	//   ],
54854	//   "parameters": {
54855	//     "backendService": {
54856	//       "description": "Name of the BackendService resource to which the queried instance belongs.",
54857	//       "location": "path",
54858	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54859	//       "required": true,
54860	//       "type": "string"
54861	//     },
54862	//     "project": {
54863	//       "location": "path",
54864	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54865	//       "required": true,
54866	//       "type": "string"
54867	//     }
54868	//   },
54869	//   "path": "{project}/global/backendServices/{backendService}/getHealth",
54870	//   "request": {
54871	//     "$ref": "ResourceGroupReference"
54872	//   },
54873	//   "response": {
54874	//     "$ref": "BackendServiceGroupHealth"
54875	//   },
54876	//   "scopes": [
54877	//     "https://www.googleapis.com/auth/cloud-platform",
54878	//     "https://www.googleapis.com/auth/compute",
54879	//     "https://www.googleapis.com/auth/compute.readonly"
54880	//   ]
54881	// }
54882
54883}
54884
54885// method id "compute.backendServices.insert":
54886
54887type BackendServicesInsertCall struct {
54888	s              *Service
54889	project        string
54890	backendservice *BackendService
54891	urlParams_     gensupport.URLParams
54892	ctx_           context.Context
54893	header_        http.Header
54894}
54895
54896// Insert: Creates a BackendService resource in the specified project
54897// using the data included in the request. There are several
54898// restrictions and guidelines to keep in mind when creating a backend
54899// service. Read  Restrictions and Guidelines for more information.
54900// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/insert
54901func (r *BackendServicesService) Insert(project string, backendservice *BackendService) *BackendServicesInsertCall {
54902	c := &BackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54903	c.project = project
54904	c.backendservice = backendservice
54905	return c
54906}
54907
54908// RequestId sets the optional parameter "requestId": An optional
54909// request ID to identify requests. Specify a unique request ID so that
54910// if you must retry your request, the server will know to ignore the
54911// request if it has already been completed.
54912//
54913// For example, consider a situation where you make an initial request
54914// and the request times out. If you make the request again with the
54915// same request ID, the server can check if original operation with the
54916// same request ID was received, and if so, will ignore the second
54917// request. This prevents clients from accidentally creating duplicate
54918// commitments.
54919//
54920// The request ID must be a valid UUID with the exception that zero UUID
54921// is not supported (00000000-0000-0000-0000-000000000000).
54922func (c *BackendServicesInsertCall) RequestId(requestId string) *BackendServicesInsertCall {
54923	c.urlParams_.Set("requestId", requestId)
54924	return c
54925}
54926
54927// Fields allows partial responses to be retrieved. See
54928// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54929// for more information.
54930func (c *BackendServicesInsertCall) Fields(s ...googleapi.Field) *BackendServicesInsertCall {
54931	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54932	return c
54933}
54934
54935// Context sets the context to be used in this call's Do method. Any
54936// pending HTTP request will be aborted if the provided context is
54937// canceled.
54938func (c *BackendServicesInsertCall) Context(ctx context.Context) *BackendServicesInsertCall {
54939	c.ctx_ = ctx
54940	return c
54941}
54942
54943// Header returns an http.Header that can be modified by the caller to
54944// add HTTP headers to the request.
54945func (c *BackendServicesInsertCall) Header() http.Header {
54946	if c.header_ == nil {
54947		c.header_ = make(http.Header)
54948	}
54949	return c.header_
54950}
54951
54952func (c *BackendServicesInsertCall) doRequest(alt string) (*http.Response, error) {
54953	reqHeaders := make(http.Header)
54954	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
54955	for k, v := range c.header_ {
54956		reqHeaders[k] = v
54957	}
54958	reqHeaders.Set("User-Agent", c.s.userAgent())
54959	var body io.Reader = nil
54960	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
54961	if err != nil {
54962		return nil, err
54963	}
54964	reqHeaders.Set("Content-Type", "application/json")
54965	c.urlParams_.Set("alt", alt)
54966	c.urlParams_.Set("prettyPrint", "false")
54967	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices")
54968	urls += "?" + c.urlParams_.Encode()
54969	req, err := http.NewRequest("POST", urls, body)
54970	if err != nil {
54971		return nil, err
54972	}
54973	req.Header = reqHeaders
54974	googleapi.Expand(req.URL, map[string]string{
54975		"project": c.project,
54976	})
54977	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54978}
54979
54980// Do executes the "compute.backendServices.insert" call.
54981// Exactly one of *Operation or error will be non-nil. Any non-2xx
54982// status code is an error. Response headers are in either
54983// *Operation.ServerResponse.Header or (if a response was returned at
54984// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54985// to check whether the returned error was because
54986// http.StatusNotModified was returned.
54987func (c *BackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54988	gensupport.SetOptions(c.urlParams_, opts...)
54989	res, err := c.doRequest("json")
54990	if res != nil && res.StatusCode == http.StatusNotModified {
54991		if res.Body != nil {
54992			res.Body.Close()
54993		}
54994		return nil, &googleapi.Error{
54995			Code:   res.StatusCode,
54996			Header: res.Header,
54997		}
54998	}
54999	if err != nil {
55000		return nil, err
55001	}
55002	defer googleapi.CloseBody(res)
55003	if err := googleapi.CheckResponse(res); err != nil {
55004		return nil, err
55005	}
55006	ret := &Operation{
55007		ServerResponse: googleapi.ServerResponse{
55008			Header:         res.Header,
55009			HTTPStatusCode: res.StatusCode,
55010		},
55011	}
55012	target := &ret
55013	if err := gensupport.DecodeResponse(target, res); err != nil {
55014		return nil, err
55015	}
55016	return ret, nil
55017	// {
55018	//   "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.",
55019	//   "httpMethod": "POST",
55020	//   "id": "compute.backendServices.insert",
55021	//   "parameterOrder": [
55022	//     "project"
55023	//   ],
55024	//   "parameters": {
55025	//     "project": {
55026	//       "description": "Project ID for this request.",
55027	//       "location": "path",
55028	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55029	//       "required": true,
55030	//       "type": "string"
55031	//     },
55032	//     "requestId": {
55033	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55034	//       "location": "query",
55035	//       "type": "string"
55036	//     }
55037	//   },
55038	//   "path": "{project}/global/backendServices",
55039	//   "request": {
55040	//     "$ref": "BackendService"
55041	//   },
55042	//   "response": {
55043	//     "$ref": "Operation"
55044	//   },
55045	//   "scopes": [
55046	//     "https://www.googleapis.com/auth/cloud-platform",
55047	//     "https://www.googleapis.com/auth/compute"
55048	//   ]
55049	// }
55050
55051}
55052
55053// method id "compute.backendServices.list":
55054
55055type BackendServicesListCall struct {
55056	s            *Service
55057	project      string
55058	urlParams_   gensupport.URLParams
55059	ifNoneMatch_ string
55060	ctx_         context.Context
55061	header_      http.Header
55062}
55063
55064// List: Retrieves the list of BackendService resources available to the
55065// specified project.
55066// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/list
55067func (r *BackendServicesService) List(project string) *BackendServicesListCall {
55068	c := &BackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55069	c.project = project
55070	return c
55071}
55072
55073// Filter sets the optional parameter "filter": A filter expression that
55074// filters resources listed in the response. The expression must specify
55075// the field name, a comparison operator, and the value that you want to
55076// use for filtering. The value must be a string, a number, or a
55077// boolean. The comparison operator must be either =, !=, >, or <.
55078//
55079// For example, if you are filtering Compute Engine instances, you can
55080// exclude instances named example-instance by specifying name !=
55081// example-instance.
55082//
55083// You can also filter nested fields. For example, you could specify
55084// scheduling.automaticRestart = false to include instances only if they
55085// are not scheduled for automatic restarts. You can use filtering on
55086// nested fields to filter based on resource labels.
55087//
55088// To filter on multiple expressions, provide each separate expression
55089// within parentheses. For example, (scheduling.automaticRestart = true)
55090// (cpuPlatform = "Intel Skylake"). By default, each expression is an
55091// AND expression. However, you can include AND and OR expressions
55092// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
55093// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
55094// true).
55095func (c *BackendServicesListCall) Filter(filter string) *BackendServicesListCall {
55096	c.urlParams_.Set("filter", filter)
55097	return c
55098}
55099
55100// MaxResults sets the optional parameter "maxResults": The maximum
55101// number of results per page that should be returned. If the number of
55102// available results is larger than maxResults, Compute Engine returns a
55103// nextPageToken that can be used to get the next page of results in
55104// subsequent list requests. Acceptable values are 0 to 500, inclusive.
55105// (Default: 500)
55106func (c *BackendServicesListCall) MaxResults(maxResults int64) *BackendServicesListCall {
55107	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
55108	return c
55109}
55110
55111// OrderBy sets the optional parameter "orderBy": Sorts list results by
55112// a certain order. By default, results are returned in alphanumerical
55113// order based on the resource name.
55114//
55115// You can also sort results in descending order based on the creation
55116// timestamp using orderBy="creationTimestamp desc". This sorts results
55117// based on the creationTimestamp field in reverse chronological order
55118// (newest result first). Use this to sort resources like operations so
55119// that the newest operation is returned first.
55120//
55121// Currently, only sorting by name or creationTimestamp desc is
55122// supported.
55123func (c *BackendServicesListCall) OrderBy(orderBy string) *BackendServicesListCall {
55124	c.urlParams_.Set("orderBy", orderBy)
55125	return c
55126}
55127
55128// PageToken sets the optional parameter "pageToken": Specifies a page
55129// token to use. Set pageToken to the nextPageToken returned by a
55130// previous list request to get the next page of results.
55131func (c *BackendServicesListCall) PageToken(pageToken string) *BackendServicesListCall {
55132	c.urlParams_.Set("pageToken", pageToken)
55133	return c
55134}
55135
55136// Fields allows partial responses to be retrieved. See
55137// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55138// for more information.
55139func (c *BackendServicesListCall) Fields(s ...googleapi.Field) *BackendServicesListCall {
55140	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55141	return c
55142}
55143
55144// IfNoneMatch sets the optional parameter which makes the operation
55145// fail if the object's ETag matches the given value. This is useful for
55146// getting updates only after the object has changed since the last
55147// request. Use googleapi.IsNotModified to check whether the response
55148// error from Do is the result of In-None-Match.
55149func (c *BackendServicesListCall) IfNoneMatch(entityTag string) *BackendServicesListCall {
55150	c.ifNoneMatch_ = entityTag
55151	return c
55152}
55153
55154// Context sets the context to be used in this call's Do method. Any
55155// pending HTTP request will be aborted if the provided context is
55156// canceled.
55157func (c *BackendServicesListCall) Context(ctx context.Context) *BackendServicesListCall {
55158	c.ctx_ = ctx
55159	return c
55160}
55161
55162// Header returns an http.Header that can be modified by the caller to
55163// add HTTP headers to the request.
55164func (c *BackendServicesListCall) Header() http.Header {
55165	if c.header_ == nil {
55166		c.header_ = make(http.Header)
55167	}
55168	return c.header_
55169}
55170
55171func (c *BackendServicesListCall) doRequest(alt string) (*http.Response, error) {
55172	reqHeaders := make(http.Header)
55173	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
55174	for k, v := range c.header_ {
55175		reqHeaders[k] = v
55176	}
55177	reqHeaders.Set("User-Agent", c.s.userAgent())
55178	if c.ifNoneMatch_ != "" {
55179		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
55180	}
55181	var body io.Reader = nil
55182	c.urlParams_.Set("alt", alt)
55183	c.urlParams_.Set("prettyPrint", "false")
55184	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices")
55185	urls += "?" + c.urlParams_.Encode()
55186	req, err := http.NewRequest("GET", urls, body)
55187	if err != nil {
55188		return nil, err
55189	}
55190	req.Header = reqHeaders
55191	googleapi.Expand(req.URL, map[string]string{
55192		"project": c.project,
55193	})
55194	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55195}
55196
55197// Do executes the "compute.backendServices.list" call.
55198// Exactly one of *BackendServiceList or error will be non-nil. Any
55199// non-2xx status code is an error. Response headers are in either
55200// *BackendServiceList.ServerResponse.Header or (if a response was
55201// returned at all) in error.(*googleapi.Error).Header. Use
55202// googleapi.IsNotModified to check whether the returned error was
55203// because http.StatusNotModified was returned.
55204func (c *BackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) {
55205	gensupport.SetOptions(c.urlParams_, opts...)
55206	res, err := c.doRequest("json")
55207	if res != nil && res.StatusCode == http.StatusNotModified {
55208		if res.Body != nil {
55209			res.Body.Close()
55210		}
55211		return nil, &googleapi.Error{
55212			Code:   res.StatusCode,
55213			Header: res.Header,
55214		}
55215	}
55216	if err != nil {
55217		return nil, err
55218	}
55219	defer googleapi.CloseBody(res)
55220	if err := googleapi.CheckResponse(res); err != nil {
55221		return nil, err
55222	}
55223	ret := &BackendServiceList{
55224		ServerResponse: googleapi.ServerResponse{
55225			Header:         res.Header,
55226			HTTPStatusCode: res.StatusCode,
55227		},
55228	}
55229	target := &ret
55230	if err := gensupport.DecodeResponse(target, res); err != nil {
55231		return nil, err
55232	}
55233	return ret, nil
55234	// {
55235	//   "description": "Retrieves the list of BackendService resources available to the specified project.",
55236	//   "httpMethod": "GET",
55237	//   "id": "compute.backendServices.list",
55238	//   "parameterOrder": [
55239	//     "project"
55240	//   ],
55241	//   "parameters": {
55242	//     "filter": {
55243	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
55244	//       "location": "query",
55245	//       "type": "string"
55246	//     },
55247	//     "maxResults": {
55248	//       "default": "500",
55249	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
55250	//       "format": "uint32",
55251	//       "location": "query",
55252	//       "minimum": "0",
55253	//       "type": "integer"
55254	//     },
55255	//     "orderBy": {
55256	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
55257	//       "location": "query",
55258	//       "type": "string"
55259	//     },
55260	//     "pageToken": {
55261	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
55262	//       "location": "query",
55263	//       "type": "string"
55264	//     },
55265	//     "project": {
55266	//       "description": "Project ID for this request.",
55267	//       "location": "path",
55268	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55269	//       "required": true,
55270	//       "type": "string"
55271	//     }
55272	//   },
55273	//   "path": "{project}/global/backendServices",
55274	//   "response": {
55275	//     "$ref": "BackendServiceList"
55276	//   },
55277	//   "scopes": [
55278	//     "https://www.googleapis.com/auth/cloud-platform",
55279	//     "https://www.googleapis.com/auth/compute",
55280	//     "https://www.googleapis.com/auth/compute.readonly"
55281	//   ]
55282	// }
55283
55284}
55285
55286// Pages invokes f for each page of results.
55287// A non-nil error returned from f will halt the iteration.
55288// The provided context supersedes any context provided to the Context method.
55289func (c *BackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error {
55290	c.ctx_ = ctx
55291	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
55292	for {
55293		x, err := c.Do()
55294		if err != nil {
55295			return err
55296		}
55297		if err := f(x); err != nil {
55298			return err
55299		}
55300		if x.NextPageToken == "" {
55301			return nil
55302		}
55303		c.PageToken(x.NextPageToken)
55304	}
55305}
55306
55307// method id "compute.backendServices.patch":
55308
55309type BackendServicesPatchCall struct {
55310	s              *Service
55311	project        string
55312	backendService string
55313	backendservice *BackendService
55314	urlParams_     gensupport.URLParams
55315	ctx_           context.Context
55316	header_        http.Header
55317}
55318
55319// Patch: Patches the specified BackendService resource with the data
55320// included in the request. There are several restrictions and
55321// guidelines to keep in mind when updating a backend service. Read
55322// Restrictions and Guidelines for more information. This method
55323// supports PATCH semantics and uses the JSON merge patch format and
55324// processing rules.
55325// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/patch
55326func (r *BackendServicesService) Patch(project string, backendService string, backendservice *BackendService) *BackendServicesPatchCall {
55327	c := &BackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55328	c.project = project
55329	c.backendService = backendService
55330	c.backendservice = backendservice
55331	return c
55332}
55333
55334// RequestId sets the optional parameter "requestId": An optional
55335// request ID to identify requests. Specify a unique request ID so that
55336// if you must retry your request, the server will know to ignore the
55337// request if it has already been completed.
55338//
55339// For example, consider a situation where you make an initial request
55340// and the request times out. If you make the request again with the
55341// same request ID, the server can check if original operation with the
55342// same request ID was received, and if so, will ignore the second
55343// request. This prevents clients from accidentally creating duplicate
55344// commitments.
55345//
55346// The request ID must be a valid UUID with the exception that zero UUID
55347// is not supported (00000000-0000-0000-0000-000000000000).
55348func (c *BackendServicesPatchCall) RequestId(requestId string) *BackendServicesPatchCall {
55349	c.urlParams_.Set("requestId", requestId)
55350	return c
55351}
55352
55353// Fields allows partial responses to be retrieved. See
55354// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55355// for more information.
55356func (c *BackendServicesPatchCall) Fields(s ...googleapi.Field) *BackendServicesPatchCall {
55357	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55358	return c
55359}
55360
55361// Context sets the context to be used in this call's Do method. Any
55362// pending HTTP request will be aborted if the provided context is
55363// canceled.
55364func (c *BackendServicesPatchCall) Context(ctx context.Context) *BackendServicesPatchCall {
55365	c.ctx_ = ctx
55366	return c
55367}
55368
55369// Header returns an http.Header that can be modified by the caller to
55370// add HTTP headers to the request.
55371func (c *BackendServicesPatchCall) Header() http.Header {
55372	if c.header_ == nil {
55373		c.header_ = make(http.Header)
55374	}
55375	return c.header_
55376}
55377
55378func (c *BackendServicesPatchCall) doRequest(alt string) (*http.Response, error) {
55379	reqHeaders := make(http.Header)
55380	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
55381	for k, v := range c.header_ {
55382		reqHeaders[k] = v
55383	}
55384	reqHeaders.Set("User-Agent", c.s.userAgent())
55385	var body io.Reader = nil
55386	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
55387	if err != nil {
55388		return nil, err
55389	}
55390	reqHeaders.Set("Content-Type", "application/json")
55391	c.urlParams_.Set("alt", alt)
55392	c.urlParams_.Set("prettyPrint", "false")
55393	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
55394	urls += "?" + c.urlParams_.Encode()
55395	req, err := http.NewRequest("PATCH", urls, body)
55396	if err != nil {
55397		return nil, err
55398	}
55399	req.Header = reqHeaders
55400	googleapi.Expand(req.URL, map[string]string{
55401		"project":        c.project,
55402		"backendService": c.backendService,
55403	})
55404	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55405}
55406
55407// Do executes the "compute.backendServices.patch" call.
55408// Exactly one of *Operation or error will be non-nil. Any non-2xx
55409// status code is an error. Response headers are in either
55410// *Operation.ServerResponse.Header or (if a response was returned at
55411// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55412// to check whether the returned error was because
55413// http.StatusNotModified was returned.
55414func (c *BackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55415	gensupport.SetOptions(c.urlParams_, opts...)
55416	res, err := c.doRequest("json")
55417	if res != nil && res.StatusCode == http.StatusNotModified {
55418		if res.Body != nil {
55419			res.Body.Close()
55420		}
55421		return nil, &googleapi.Error{
55422			Code:   res.StatusCode,
55423			Header: res.Header,
55424		}
55425	}
55426	if err != nil {
55427		return nil, err
55428	}
55429	defer googleapi.CloseBody(res)
55430	if err := googleapi.CheckResponse(res); err != nil {
55431		return nil, err
55432	}
55433	ret := &Operation{
55434		ServerResponse: googleapi.ServerResponse{
55435			Header:         res.Header,
55436			HTTPStatusCode: res.StatusCode,
55437		},
55438	}
55439	target := &ret
55440	if err := gensupport.DecodeResponse(target, res); err != nil {
55441		return nil, err
55442	}
55443	return ret, nil
55444	// {
55445	//   "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.",
55446	//   "httpMethod": "PATCH",
55447	//   "id": "compute.backendServices.patch",
55448	//   "parameterOrder": [
55449	//     "project",
55450	//     "backendService"
55451	//   ],
55452	//   "parameters": {
55453	//     "backendService": {
55454	//       "description": "Name of the BackendService resource to patch.",
55455	//       "location": "path",
55456	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55457	//       "required": true,
55458	//       "type": "string"
55459	//     },
55460	//     "project": {
55461	//       "description": "Project ID for this request.",
55462	//       "location": "path",
55463	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55464	//       "required": true,
55465	//       "type": "string"
55466	//     },
55467	//     "requestId": {
55468	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55469	//       "location": "query",
55470	//       "type": "string"
55471	//     }
55472	//   },
55473	//   "path": "{project}/global/backendServices/{backendService}",
55474	//   "request": {
55475	//     "$ref": "BackendService"
55476	//   },
55477	//   "response": {
55478	//     "$ref": "Operation"
55479	//   },
55480	//   "scopes": [
55481	//     "https://www.googleapis.com/auth/cloud-platform",
55482	//     "https://www.googleapis.com/auth/compute"
55483	//   ]
55484	// }
55485
55486}
55487
55488// method id "compute.backendServices.setSecurityPolicy":
55489
55490type BackendServicesSetSecurityPolicyCall struct {
55491	s                       *Service
55492	project                 string
55493	backendService          string
55494	securitypolicyreference *SecurityPolicyReference
55495	urlParams_              gensupport.URLParams
55496	ctx_                    context.Context
55497	header_                 http.Header
55498}
55499
55500// SetSecurityPolicy: Sets the security policy for the specified backend
55501// service.
55502func (r *BackendServicesService) SetSecurityPolicy(project string, backendService string, securitypolicyreference *SecurityPolicyReference) *BackendServicesSetSecurityPolicyCall {
55503	c := &BackendServicesSetSecurityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55504	c.project = project
55505	c.backendService = backendService
55506	c.securitypolicyreference = securitypolicyreference
55507	return c
55508}
55509
55510// RequestId sets the optional parameter "requestId": An optional
55511// request ID to identify requests. Specify a unique request ID so that
55512// if you must retry your request, the server will know to ignore the
55513// request if it has already been completed.
55514//
55515// For example, consider a situation where you make an initial request
55516// and the request times out. If you make the request again with the
55517// same request ID, the server can check if original operation with the
55518// same request ID was received, and if so, will ignore the second
55519// request. This prevents clients from accidentally creating duplicate
55520// commitments.
55521//
55522// The request ID must be a valid UUID with the exception that zero UUID
55523// is not supported (00000000-0000-0000-0000-000000000000).
55524func (c *BackendServicesSetSecurityPolicyCall) RequestId(requestId string) *BackendServicesSetSecurityPolicyCall {
55525	c.urlParams_.Set("requestId", requestId)
55526	return c
55527}
55528
55529// Fields allows partial responses to be retrieved. See
55530// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55531// for more information.
55532func (c *BackendServicesSetSecurityPolicyCall) Fields(s ...googleapi.Field) *BackendServicesSetSecurityPolicyCall {
55533	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55534	return c
55535}
55536
55537// Context sets the context to be used in this call's Do method. Any
55538// pending HTTP request will be aborted if the provided context is
55539// canceled.
55540func (c *BackendServicesSetSecurityPolicyCall) Context(ctx context.Context) *BackendServicesSetSecurityPolicyCall {
55541	c.ctx_ = ctx
55542	return c
55543}
55544
55545// Header returns an http.Header that can be modified by the caller to
55546// add HTTP headers to the request.
55547func (c *BackendServicesSetSecurityPolicyCall) Header() http.Header {
55548	if c.header_ == nil {
55549		c.header_ = make(http.Header)
55550	}
55551	return c.header_
55552}
55553
55554func (c *BackendServicesSetSecurityPolicyCall) doRequest(alt string) (*http.Response, error) {
55555	reqHeaders := make(http.Header)
55556	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
55557	for k, v := range c.header_ {
55558		reqHeaders[k] = v
55559	}
55560	reqHeaders.Set("User-Agent", c.s.userAgent())
55561	var body io.Reader = nil
55562	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyreference)
55563	if err != nil {
55564		return nil, err
55565	}
55566	reqHeaders.Set("Content-Type", "application/json")
55567	c.urlParams_.Set("alt", alt)
55568	c.urlParams_.Set("prettyPrint", "false")
55569	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/setSecurityPolicy")
55570	urls += "?" + c.urlParams_.Encode()
55571	req, err := http.NewRequest("POST", urls, body)
55572	if err != nil {
55573		return nil, err
55574	}
55575	req.Header = reqHeaders
55576	googleapi.Expand(req.URL, map[string]string{
55577		"project":        c.project,
55578		"backendService": c.backendService,
55579	})
55580	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55581}
55582
55583// Do executes the "compute.backendServices.setSecurityPolicy" call.
55584// Exactly one of *Operation or error will be non-nil. Any non-2xx
55585// status code is an error. Response headers are in either
55586// *Operation.ServerResponse.Header or (if a response was returned at
55587// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55588// to check whether the returned error was because
55589// http.StatusNotModified was returned.
55590func (c *BackendServicesSetSecurityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55591	gensupport.SetOptions(c.urlParams_, opts...)
55592	res, err := c.doRequest("json")
55593	if res != nil && res.StatusCode == http.StatusNotModified {
55594		if res.Body != nil {
55595			res.Body.Close()
55596		}
55597		return nil, &googleapi.Error{
55598			Code:   res.StatusCode,
55599			Header: res.Header,
55600		}
55601	}
55602	if err != nil {
55603		return nil, err
55604	}
55605	defer googleapi.CloseBody(res)
55606	if err := googleapi.CheckResponse(res); err != nil {
55607		return nil, err
55608	}
55609	ret := &Operation{
55610		ServerResponse: googleapi.ServerResponse{
55611			Header:         res.Header,
55612			HTTPStatusCode: res.StatusCode,
55613		},
55614	}
55615	target := &ret
55616	if err := gensupport.DecodeResponse(target, res); err != nil {
55617		return nil, err
55618	}
55619	return ret, nil
55620	// {
55621	//   "description": "Sets the security policy for the specified backend service.",
55622	//   "httpMethod": "POST",
55623	//   "id": "compute.backendServices.setSecurityPolicy",
55624	//   "parameterOrder": [
55625	//     "project",
55626	//     "backendService"
55627	//   ],
55628	//   "parameters": {
55629	//     "backendService": {
55630	//       "description": "Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035.",
55631	//       "location": "path",
55632	//       "required": true,
55633	//       "type": "string"
55634	//     },
55635	//     "project": {
55636	//       "description": "Project ID for this request.",
55637	//       "location": "path",
55638	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55639	//       "required": true,
55640	//       "type": "string"
55641	//     },
55642	//     "requestId": {
55643	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55644	//       "location": "query",
55645	//       "type": "string"
55646	//     }
55647	//   },
55648	//   "path": "{project}/global/backendServices/{backendService}/setSecurityPolicy",
55649	//   "request": {
55650	//     "$ref": "SecurityPolicyReference"
55651	//   },
55652	//   "response": {
55653	//     "$ref": "Operation"
55654	//   },
55655	//   "scopes": [
55656	//     "https://www.googleapis.com/auth/cloud-platform",
55657	//     "https://www.googleapis.com/auth/compute"
55658	//   ]
55659	// }
55660
55661}
55662
55663// method id "compute.backendServices.testIamPermissions":
55664
55665type BackendServicesTestIamPermissionsCall struct {
55666	s                      *Service
55667	project                string
55668	resource               string
55669	testpermissionsrequest *TestPermissionsRequest
55670	urlParams_             gensupport.URLParams
55671	ctx_                   context.Context
55672	header_                http.Header
55673}
55674
55675// TestIamPermissions: Returns permissions that a caller has on the
55676// specified resource.
55677func (r *BackendServicesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *BackendServicesTestIamPermissionsCall {
55678	c := &BackendServicesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55679	c.project = project
55680	c.resource = resource
55681	c.testpermissionsrequest = testpermissionsrequest
55682	return c
55683}
55684
55685// Fields allows partial responses to be retrieved. See
55686// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55687// for more information.
55688func (c *BackendServicesTestIamPermissionsCall) Fields(s ...googleapi.Field) *BackendServicesTestIamPermissionsCall {
55689	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55690	return c
55691}
55692
55693// Context sets the context to be used in this call's Do method. Any
55694// pending HTTP request will be aborted if the provided context is
55695// canceled.
55696func (c *BackendServicesTestIamPermissionsCall) Context(ctx context.Context) *BackendServicesTestIamPermissionsCall {
55697	c.ctx_ = ctx
55698	return c
55699}
55700
55701// Header returns an http.Header that can be modified by the caller to
55702// add HTTP headers to the request.
55703func (c *BackendServicesTestIamPermissionsCall) Header() http.Header {
55704	if c.header_ == nil {
55705		c.header_ = make(http.Header)
55706	}
55707	return c.header_
55708}
55709
55710func (c *BackendServicesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
55711	reqHeaders := make(http.Header)
55712	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
55713	for k, v := range c.header_ {
55714		reqHeaders[k] = v
55715	}
55716	reqHeaders.Set("User-Agent", c.s.userAgent())
55717	var body io.Reader = nil
55718	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
55719	if err != nil {
55720		return nil, err
55721	}
55722	reqHeaders.Set("Content-Type", "application/json")
55723	c.urlParams_.Set("alt", alt)
55724	c.urlParams_.Set("prettyPrint", "false")
55725	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{resource}/testIamPermissions")
55726	urls += "?" + c.urlParams_.Encode()
55727	req, err := http.NewRequest("POST", urls, body)
55728	if err != nil {
55729		return nil, err
55730	}
55731	req.Header = reqHeaders
55732	googleapi.Expand(req.URL, map[string]string{
55733		"project":  c.project,
55734		"resource": c.resource,
55735	})
55736	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55737}
55738
55739// Do executes the "compute.backendServices.testIamPermissions" call.
55740// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
55741// non-2xx status code is an error. Response headers are in either
55742// *TestPermissionsResponse.ServerResponse.Header or (if a response was
55743// returned at all) in error.(*googleapi.Error).Header. Use
55744// googleapi.IsNotModified to check whether the returned error was
55745// because http.StatusNotModified was returned.
55746func (c *BackendServicesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
55747	gensupport.SetOptions(c.urlParams_, opts...)
55748	res, err := c.doRequest("json")
55749	if res != nil && res.StatusCode == http.StatusNotModified {
55750		if res.Body != nil {
55751			res.Body.Close()
55752		}
55753		return nil, &googleapi.Error{
55754			Code:   res.StatusCode,
55755			Header: res.Header,
55756		}
55757	}
55758	if err != nil {
55759		return nil, err
55760	}
55761	defer googleapi.CloseBody(res)
55762	if err := googleapi.CheckResponse(res); err != nil {
55763		return nil, err
55764	}
55765	ret := &TestPermissionsResponse{
55766		ServerResponse: googleapi.ServerResponse{
55767			Header:         res.Header,
55768			HTTPStatusCode: res.StatusCode,
55769		},
55770	}
55771	target := &ret
55772	if err := gensupport.DecodeResponse(target, res); err != nil {
55773		return nil, err
55774	}
55775	return ret, nil
55776	// {
55777	//   "description": "Returns permissions that a caller has on the specified resource.",
55778	//   "httpMethod": "POST",
55779	//   "id": "compute.backendServices.testIamPermissions",
55780	//   "parameterOrder": [
55781	//     "project",
55782	//     "resource"
55783	//   ],
55784	//   "parameters": {
55785	//     "project": {
55786	//       "description": "Project ID for this request.",
55787	//       "location": "path",
55788	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55789	//       "required": true,
55790	//       "type": "string"
55791	//     },
55792	//     "resource": {
55793	//       "description": "Name or id of the resource for this request.",
55794	//       "location": "path",
55795	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55796	//       "required": true,
55797	//       "type": "string"
55798	//     }
55799	//   },
55800	//   "path": "{project}/global/backendServices/{resource}/testIamPermissions",
55801	//   "request": {
55802	//     "$ref": "TestPermissionsRequest"
55803	//   },
55804	//   "response": {
55805	//     "$ref": "TestPermissionsResponse"
55806	//   },
55807	//   "scopes": [
55808	//     "https://www.googleapis.com/auth/cloud-platform",
55809	//     "https://www.googleapis.com/auth/compute",
55810	//     "https://www.googleapis.com/auth/compute.readonly"
55811	//   ]
55812	// }
55813
55814}
55815
55816// method id "compute.backendServices.update":
55817
55818type BackendServicesUpdateCall struct {
55819	s              *Service
55820	project        string
55821	backendService string
55822	backendservice *BackendService
55823	urlParams_     gensupport.URLParams
55824	ctx_           context.Context
55825	header_        http.Header
55826}
55827
55828// Update: Updates the specified BackendService resource with the data
55829// included in the request. There are several restrictions and
55830// guidelines to keep in mind when updating a backend service. Read
55831// Restrictions and Guidelines for more information.
55832// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/update
55833func (r *BackendServicesService) Update(project string, backendService string, backendservice *BackendService) *BackendServicesUpdateCall {
55834	c := &BackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55835	c.project = project
55836	c.backendService = backendService
55837	c.backendservice = backendservice
55838	return c
55839}
55840
55841// RequestId sets the optional parameter "requestId": An optional
55842// request ID to identify requests. Specify a unique request ID so that
55843// if you must retry your request, the server will know to ignore the
55844// request if it has already been completed.
55845//
55846// For example, consider a situation where you make an initial request
55847// and the request times out. If you make the request again with the
55848// same request ID, the server can check if original operation with the
55849// same request ID was received, and if so, will ignore the second
55850// request. This prevents clients from accidentally creating duplicate
55851// commitments.
55852//
55853// The request ID must be a valid UUID with the exception that zero UUID
55854// is not supported (00000000-0000-0000-0000-000000000000).
55855func (c *BackendServicesUpdateCall) RequestId(requestId string) *BackendServicesUpdateCall {
55856	c.urlParams_.Set("requestId", requestId)
55857	return c
55858}
55859
55860// Fields allows partial responses to be retrieved. See
55861// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55862// for more information.
55863func (c *BackendServicesUpdateCall) Fields(s ...googleapi.Field) *BackendServicesUpdateCall {
55864	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55865	return c
55866}
55867
55868// Context sets the context to be used in this call's Do method. Any
55869// pending HTTP request will be aborted if the provided context is
55870// canceled.
55871func (c *BackendServicesUpdateCall) Context(ctx context.Context) *BackendServicesUpdateCall {
55872	c.ctx_ = ctx
55873	return c
55874}
55875
55876// Header returns an http.Header that can be modified by the caller to
55877// add HTTP headers to the request.
55878func (c *BackendServicesUpdateCall) Header() http.Header {
55879	if c.header_ == nil {
55880		c.header_ = make(http.Header)
55881	}
55882	return c.header_
55883}
55884
55885func (c *BackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) {
55886	reqHeaders := make(http.Header)
55887	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
55888	for k, v := range c.header_ {
55889		reqHeaders[k] = v
55890	}
55891	reqHeaders.Set("User-Agent", c.s.userAgent())
55892	var body io.Reader = nil
55893	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
55894	if err != nil {
55895		return nil, err
55896	}
55897	reqHeaders.Set("Content-Type", "application/json")
55898	c.urlParams_.Set("alt", alt)
55899	c.urlParams_.Set("prettyPrint", "false")
55900	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
55901	urls += "?" + c.urlParams_.Encode()
55902	req, err := http.NewRequest("PUT", urls, body)
55903	if err != nil {
55904		return nil, err
55905	}
55906	req.Header = reqHeaders
55907	googleapi.Expand(req.URL, map[string]string{
55908		"project":        c.project,
55909		"backendService": c.backendService,
55910	})
55911	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55912}
55913
55914// Do executes the "compute.backendServices.update" call.
55915// Exactly one of *Operation or error will be non-nil. Any non-2xx
55916// status code is an error. Response headers are in either
55917// *Operation.ServerResponse.Header or (if a response was returned at
55918// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55919// to check whether the returned error was because
55920// http.StatusNotModified was returned.
55921func (c *BackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55922	gensupport.SetOptions(c.urlParams_, opts...)
55923	res, err := c.doRequest("json")
55924	if res != nil && res.StatusCode == http.StatusNotModified {
55925		if res.Body != nil {
55926			res.Body.Close()
55927		}
55928		return nil, &googleapi.Error{
55929			Code:   res.StatusCode,
55930			Header: res.Header,
55931		}
55932	}
55933	if err != nil {
55934		return nil, err
55935	}
55936	defer googleapi.CloseBody(res)
55937	if err := googleapi.CheckResponse(res); err != nil {
55938		return nil, err
55939	}
55940	ret := &Operation{
55941		ServerResponse: googleapi.ServerResponse{
55942			Header:         res.Header,
55943			HTTPStatusCode: res.StatusCode,
55944		},
55945	}
55946	target := &ret
55947	if err := gensupport.DecodeResponse(target, res); err != nil {
55948		return nil, err
55949	}
55950	return ret, nil
55951	// {
55952	//   "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.",
55953	//   "httpMethod": "PUT",
55954	//   "id": "compute.backendServices.update",
55955	//   "parameterOrder": [
55956	//     "project",
55957	//     "backendService"
55958	//   ],
55959	//   "parameters": {
55960	//     "backendService": {
55961	//       "description": "Name of the BackendService resource to update.",
55962	//       "location": "path",
55963	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55964	//       "required": true,
55965	//       "type": "string"
55966	//     },
55967	//     "project": {
55968	//       "description": "Project ID for this request.",
55969	//       "location": "path",
55970	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55971	//       "required": true,
55972	//       "type": "string"
55973	//     },
55974	//     "requestId": {
55975	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55976	//       "location": "query",
55977	//       "type": "string"
55978	//     }
55979	//   },
55980	//   "path": "{project}/global/backendServices/{backendService}",
55981	//   "request": {
55982	//     "$ref": "BackendService"
55983	//   },
55984	//   "response": {
55985	//     "$ref": "Operation"
55986	//   },
55987	//   "scopes": [
55988	//     "https://www.googleapis.com/auth/cloud-platform",
55989	//     "https://www.googleapis.com/auth/compute"
55990	//   ]
55991	// }
55992
55993}
55994
55995// method id "compute.diskTypes.aggregatedList":
55996
55997type DiskTypesAggregatedListCall struct {
55998	s            *Service
55999	project      string
56000	urlParams_   gensupport.URLParams
56001	ifNoneMatch_ string
56002	ctx_         context.Context
56003	header_      http.Header
56004}
56005
56006// AggregatedList: Retrieves an aggregated list of disk types.
56007// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/aggregatedList
56008func (r *DiskTypesService) AggregatedList(project string) *DiskTypesAggregatedListCall {
56009	c := &DiskTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56010	c.project = project
56011	return c
56012}
56013
56014// Filter sets the optional parameter "filter": A filter expression that
56015// filters resources listed in the response. The expression must specify
56016// the field name, a comparison operator, and the value that you want to
56017// use for filtering. The value must be a string, a number, or a
56018// boolean. The comparison operator must be either =, !=, >, or <.
56019//
56020// For example, if you are filtering Compute Engine instances, you can
56021// exclude instances named example-instance by specifying name !=
56022// example-instance.
56023//
56024// You can also filter nested fields. For example, you could specify
56025// scheduling.automaticRestart = false to include instances only if they
56026// are not scheduled for automatic restarts. You can use filtering on
56027// nested fields to filter based on resource labels.
56028//
56029// To filter on multiple expressions, provide each separate expression
56030// within parentheses. For example, (scheduling.automaticRestart = true)
56031// (cpuPlatform = "Intel Skylake"). By default, each expression is an
56032// AND expression. However, you can include AND and OR expressions
56033// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
56034// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
56035// true).
56036func (c *DiskTypesAggregatedListCall) Filter(filter string) *DiskTypesAggregatedListCall {
56037	c.urlParams_.Set("filter", filter)
56038	return c
56039}
56040
56041// IncludeAllScopes sets the optional parameter "includeAllScopes":
56042// Indicates whether every visible scope for each scope type (zone,
56043// region, global) should be included in the response. For new resource
56044// types added after this field, the flag has no effect as new resource
56045// types will always include every visible scope for each scope type in
56046// response. For resource types which predate this field, if this flag
56047// is omitted or false, only scopes of the scope types where the
56048// resource type is expected to be found will be included.
56049func (c *DiskTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *DiskTypesAggregatedListCall {
56050	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
56051	return c
56052}
56053
56054// MaxResults sets the optional parameter "maxResults": The maximum
56055// number of results per page that should be returned. If the number of
56056// available results is larger than maxResults, Compute Engine returns a
56057// nextPageToken that can be used to get the next page of results in
56058// subsequent list requests. Acceptable values are 0 to 500, inclusive.
56059// (Default: 500)
56060func (c *DiskTypesAggregatedListCall) MaxResults(maxResults int64) *DiskTypesAggregatedListCall {
56061	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
56062	return c
56063}
56064
56065// OrderBy sets the optional parameter "orderBy": Sorts list results by
56066// a certain order. By default, results are returned in alphanumerical
56067// order based on the resource name.
56068//
56069// You can also sort results in descending order based on the creation
56070// timestamp using orderBy="creationTimestamp desc". This sorts results
56071// based on the creationTimestamp field in reverse chronological order
56072// (newest result first). Use this to sort resources like operations so
56073// that the newest operation is returned first.
56074//
56075// Currently, only sorting by name or creationTimestamp desc is
56076// supported.
56077func (c *DiskTypesAggregatedListCall) OrderBy(orderBy string) *DiskTypesAggregatedListCall {
56078	c.urlParams_.Set("orderBy", orderBy)
56079	return c
56080}
56081
56082// PageToken sets the optional parameter "pageToken": Specifies a page
56083// token to use. Set pageToken to the nextPageToken returned by a
56084// previous list request to get the next page of results.
56085func (c *DiskTypesAggregatedListCall) PageToken(pageToken string) *DiskTypesAggregatedListCall {
56086	c.urlParams_.Set("pageToken", pageToken)
56087	return c
56088}
56089
56090// Fields allows partial responses to be retrieved. See
56091// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56092// for more information.
56093func (c *DiskTypesAggregatedListCall) Fields(s ...googleapi.Field) *DiskTypesAggregatedListCall {
56094	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56095	return c
56096}
56097
56098// IfNoneMatch sets the optional parameter which makes the operation
56099// fail if the object's ETag matches the given value. This is useful for
56100// getting updates only after the object has changed since the last
56101// request. Use googleapi.IsNotModified to check whether the response
56102// error from Do is the result of In-None-Match.
56103func (c *DiskTypesAggregatedListCall) IfNoneMatch(entityTag string) *DiskTypesAggregatedListCall {
56104	c.ifNoneMatch_ = entityTag
56105	return c
56106}
56107
56108// Context sets the context to be used in this call's Do method. Any
56109// pending HTTP request will be aborted if the provided context is
56110// canceled.
56111func (c *DiskTypesAggregatedListCall) Context(ctx context.Context) *DiskTypesAggregatedListCall {
56112	c.ctx_ = ctx
56113	return c
56114}
56115
56116// Header returns an http.Header that can be modified by the caller to
56117// add HTTP headers to the request.
56118func (c *DiskTypesAggregatedListCall) Header() http.Header {
56119	if c.header_ == nil {
56120		c.header_ = make(http.Header)
56121	}
56122	return c.header_
56123}
56124
56125func (c *DiskTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
56126	reqHeaders := make(http.Header)
56127	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
56128	for k, v := range c.header_ {
56129		reqHeaders[k] = v
56130	}
56131	reqHeaders.Set("User-Agent", c.s.userAgent())
56132	if c.ifNoneMatch_ != "" {
56133		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
56134	}
56135	var body io.Reader = nil
56136	c.urlParams_.Set("alt", alt)
56137	c.urlParams_.Set("prettyPrint", "false")
56138	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/diskTypes")
56139	urls += "?" + c.urlParams_.Encode()
56140	req, err := http.NewRequest("GET", urls, body)
56141	if err != nil {
56142		return nil, err
56143	}
56144	req.Header = reqHeaders
56145	googleapi.Expand(req.URL, map[string]string{
56146		"project": c.project,
56147	})
56148	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56149}
56150
56151// Do executes the "compute.diskTypes.aggregatedList" call.
56152// Exactly one of *DiskTypeAggregatedList or error will be non-nil. Any
56153// non-2xx status code is an error. Response headers are in either
56154// *DiskTypeAggregatedList.ServerResponse.Header or (if a response was
56155// returned at all) in error.(*googleapi.Error).Header. Use
56156// googleapi.IsNotModified to check whether the returned error was
56157// because http.StatusNotModified was returned.
56158func (c *DiskTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskTypeAggregatedList, error) {
56159	gensupport.SetOptions(c.urlParams_, opts...)
56160	res, err := c.doRequest("json")
56161	if res != nil && res.StatusCode == http.StatusNotModified {
56162		if res.Body != nil {
56163			res.Body.Close()
56164		}
56165		return nil, &googleapi.Error{
56166			Code:   res.StatusCode,
56167			Header: res.Header,
56168		}
56169	}
56170	if err != nil {
56171		return nil, err
56172	}
56173	defer googleapi.CloseBody(res)
56174	if err := googleapi.CheckResponse(res); err != nil {
56175		return nil, err
56176	}
56177	ret := &DiskTypeAggregatedList{
56178		ServerResponse: googleapi.ServerResponse{
56179			Header:         res.Header,
56180			HTTPStatusCode: res.StatusCode,
56181		},
56182	}
56183	target := &ret
56184	if err := gensupport.DecodeResponse(target, res); err != nil {
56185		return nil, err
56186	}
56187	return ret, nil
56188	// {
56189	//   "description": "Retrieves an aggregated list of disk types.",
56190	//   "httpMethod": "GET",
56191	//   "id": "compute.diskTypes.aggregatedList",
56192	//   "parameterOrder": [
56193	//     "project"
56194	//   ],
56195	//   "parameters": {
56196	//     "filter": {
56197	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
56198	//       "location": "query",
56199	//       "type": "string"
56200	//     },
56201	//     "includeAllScopes": {
56202	//       "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.",
56203	//       "location": "query",
56204	//       "type": "boolean"
56205	//     },
56206	//     "maxResults": {
56207	//       "default": "500",
56208	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
56209	//       "format": "uint32",
56210	//       "location": "query",
56211	//       "minimum": "0",
56212	//       "type": "integer"
56213	//     },
56214	//     "orderBy": {
56215	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
56216	//       "location": "query",
56217	//       "type": "string"
56218	//     },
56219	//     "pageToken": {
56220	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
56221	//       "location": "query",
56222	//       "type": "string"
56223	//     },
56224	//     "project": {
56225	//       "description": "Project ID for this request.",
56226	//       "location": "path",
56227	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56228	//       "required": true,
56229	//       "type": "string"
56230	//     }
56231	//   },
56232	//   "path": "{project}/aggregated/diskTypes",
56233	//   "response": {
56234	//     "$ref": "DiskTypeAggregatedList"
56235	//   },
56236	//   "scopes": [
56237	//     "https://www.googleapis.com/auth/cloud-platform",
56238	//     "https://www.googleapis.com/auth/compute",
56239	//     "https://www.googleapis.com/auth/compute.readonly"
56240	//   ]
56241	// }
56242
56243}
56244
56245// Pages invokes f for each page of results.
56246// A non-nil error returned from f will halt the iteration.
56247// The provided context supersedes any context provided to the Context method.
56248func (c *DiskTypesAggregatedListCall) Pages(ctx context.Context, f func(*DiskTypeAggregatedList) error) error {
56249	c.ctx_ = ctx
56250	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
56251	for {
56252		x, err := c.Do()
56253		if err != nil {
56254			return err
56255		}
56256		if err := f(x); err != nil {
56257			return err
56258		}
56259		if x.NextPageToken == "" {
56260			return nil
56261		}
56262		c.PageToken(x.NextPageToken)
56263	}
56264}
56265
56266// method id "compute.diskTypes.get":
56267
56268type DiskTypesGetCall struct {
56269	s            *Service
56270	project      string
56271	zone         string
56272	diskType     string
56273	urlParams_   gensupport.URLParams
56274	ifNoneMatch_ string
56275	ctx_         context.Context
56276	header_      http.Header
56277}
56278
56279// Get: Returns the specified disk type. Gets a list of available disk
56280// types by making a list() request.
56281// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/get
56282func (r *DiskTypesService) Get(project string, zone string, diskType string) *DiskTypesGetCall {
56283	c := &DiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56284	c.project = project
56285	c.zone = zone
56286	c.diskType = diskType
56287	return c
56288}
56289
56290// Fields allows partial responses to be retrieved. See
56291// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56292// for more information.
56293func (c *DiskTypesGetCall) Fields(s ...googleapi.Field) *DiskTypesGetCall {
56294	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56295	return c
56296}
56297
56298// IfNoneMatch sets the optional parameter which makes the operation
56299// fail if the object's ETag matches the given value. This is useful for
56300// getting updates only after the object has changed since the last
56301// request. Use googleapi.IsNotModified to check whether the response
56302// error from Do is the result of In-None-Match.
56303func (c *DiskTypesGetCall) IfNoneMatch(entityTag string) *DiskTypesGetCall {
56304	c.ifNoneMatch_ = entityTag
56305	return c
56306}
56307
56308// Context sets the context to be used in this call's Do method. Any
56309// pending HTTP request will be aborted if the provided context is
56310// canceled.
56311func (c *DiskTypesGetCall) Context(ctx context.Context) *DiskTypesGetCall {
56312	c.ctx_ = ctx
56313	return c
56314}
56315
56316// Header returns an http.Header that can be modified by the caller to
56317// add HTTP headers to the request.
56318func (c *DiskTypesGetCall) Header() http.Header {
56319	if c.header_ == nil {
56320		c.header_ = make(http.Header)
56321	}
56322	return c.header_
56323}
56324
56325func (c *DiskTypesGetCall) doRequest(alt string) (*http.Response, error) {
56326	reqHeaders := make(http.Header)
56327	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
56328	for k, v := range c.header_ {
56329		reqHeaders[k] = v
56330	}
56331	reqHeaders.Set("User-Agent", c.s.userAgent())
56332	if c.ifNoneMatch_ != "" {
56333		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
56334	}
56335	var body io.Reader = nil
56336	c.urlParams_.Set("alt", alt)
56337	c.urlParams_.Set("prettyPrint", "false")
56338	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/diskTypes/{diskType}")
56339	urls += "?" + c.urlParams_.Encode()
56340	req, err := http.NewRequest("GET", urls, body)
56341	if err != nil {
56342		return nil, err
56343	}
56344	req.Header = reqHeaders
56345	googleapi.Expand(req.URL, map[string]string{
56346		"project":  c.project,
56347		"zone":     c.zone,
56348		"diskType": c.diskType,
56349	})
56350	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56351}
56352
56353// Do executes the "compute.diskTypes.get" call.
56354// Exactly one of *DiskType or error will be non-nil. Any non-2xx status
56355// code is an error. Response headers are in either
56356// *DiskType.ServerResponse.Header or (if a response was returned at
56357// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56358// to check whether the returned error was because
56359// http.StatusNotModified was returned.
56360func (c *DiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) {
56361	gensupport.SetOptions(c.urlParams_, opts...)
56362	res, err := c.doRequest("json")
56363	if res != nil && res.StatusCode == http.StatusNotModified {
56364		if res.Body != nil {
56365			res.Body.Close()
56366		}
56367		return nil, &googleapi.Error{
56368			Code:   res.StatusCode,
56369			Header: res.Header,
56370		}
56371	}
56372	if err != nil {
56373		return nil, err
56374	}
56375	defer googleapi.CloseBody(res)
56376	if err := googleapi.CheckResponse(res); err != nil {
56377		return nil, err
56378	}
56379	ret := &DiskType{
56380		ServerResponse: googleapi.ServerResponse{
56381			Header:         res.Header,
56382			HTTPStatusCode: res.StatusCode,
56383		},
56384	}
56385	target := &ret
56386	if err := gensupport.DecodeResponse(target, res); err != nil {
56387		return nil, err
56388	}
56389	return ret, nil
56390	// {
56391	//   "description": "Returns the specified disk type. Gets a list of available disk types by making a list() request.",
56392	//   "httpMethod": "GET",
56393	//   "id": "compute.diskTypes.get",
56394	//   "parameterOrder": [
56395	//     "project",
56396	//     "zone",
56397	//     "diskType"
56398	//   ],
56399	//   "parameters": {
56400	//     "diskType": {
56401	//       "description": "Name of the disk type to return.",
56402	//       "location": "path",
56403	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56404	//       "required": true,
56405	//       "type": "string"
56406	//     },
56407	//     "project": {
56408	//       "description": "Project ID for this request.",
56409	//       "location": "path",
56410	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56411	//       "required": true,
56412	//       "type": "string"
56413	//     },
56414	//     "zone": {
56415	//       "description": "The name of the zone for this request.",
56416	//       "location": "path",
56417	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
56418	//       "required": true,
56419	//       "type": "string"
56420	//     }
56421	//   },
56422	//   "path": "{project}/zones/{zone}/diskTypes/{diskType}",
56423	//   "response": {
56424	//     "$ref": "DiskType"
56425	//   },
56426	//   "scopes": [
56427	//     "https://www.googleapis.com/auth/cloud-platform",
56428	//     "https://www.googleapis.com/auth/compute",
56429	//     "https://www.googleapis.com/auth/compute.readonly"
56430	//   ]
56431	// }
56432
56433}
56434
56435// method id "compute.diskTypes.list":
56436
56437type DiskTypesListCall struct {
56438	s            *Service
56439	project      string
56440	zone         string
56441	urlParams_   gensupport.URLParams
56442	ifNoneMatch_ string
56443	ctx_         context.Context
56444	header_      http.Header
56445}
56446
56447// List: Retrieves a list of disk types available to the specified
56448// project.
56449// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/list
56450func (r *DiskTypesService) List(project string, zone string) *DiskTypesListCall {
56451	c := &DiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56452	c.project = project
56453	c.zone = zone
56454	return c
56455}
56456
56457// Filter sets the optional parameter "filter": A filter expression that
56458// filters resources listed in the response. The expression must specify
56459// the field name, a comparison operator, and the value that you want to
56460// use for filtering. The value must be a string, a number, or a
56461// boolean. The comparison operator must be either =, !=, >, or <.
56462//
56463// For example, if you are filtering Compute Engine instances, you can
56464// exclude instances named example-instance by specifying name !=
56465// example-instance.
56466//
56467// You can also filter nested fields. For example, you could specify
56468// scheduling.automaticRestart = false to include instances only if they
56469// are not scheduled for automatic restarts. You can use filtering on
56470// nested fields to filter based on resource labels.
56471//
56472// To filter on multiple expressions, provide each separate expression
56473// within parentheses. For example, (scheduling.automaticRestart = true)
56474// (cpuPlatform = "Intel Skylake"). By default, each expression is an
56475// AND expression. However, you can include AND and OR expressions
56476// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
56477// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
56478// true).
56479func (c *DiskTypesListCall) Filter(filter string) *DiskTypesListCall {
56480	c.urlParams_.Set("filter", filter)
56481	return c
56482}
56483
56484// MaxResults sets the optional parameter "maxResults": The maximum
56485// number of results per page that should be returned. If the number of
56486// available results is larger than maxResults, Compute Engine returns a
56487// nextPageToken that can be used to get the next page of results in
56488// subsequent list requests. Acceptable values are 0 to 500, inclusive.
56489// (Default: 500)
56490func (c *DiskTypesListCall) MaxResults(maxResults int64) *DiskTypesListCall {
56491	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
56492	return c
56493}
56494
56495// OrderBy sets the optional parameter "orderBy": Sorts list results by
56496// a certain order. By default, results are returned in alphanumerical
56497// order based on the resource name.
56498//
56499// You can also sort results in descending order based on the creation
56500// timestamp using orderBy="creationTimestamp desc". This sorts results
56501// based on the creationTimestamp field in reverse chronological order
56502// (newest result first). Use this to sort resources like operations so
56503// that the newest operation is returned first.
56504//
56505// Currently, only sorting by name or creationTimestamp desc is
56506// supported.
56507func (c *DiskTypesListCall) OrderBy(orderBy string) *DiskTypesListCall {
56508	c.urlParams_.Set("orderBy", orderBy)
56509	return c
56510}
56511
56512// PageToken sets the optional parameter "pageToken": Specifies a page
56513// token to use. Set pageToken to the nextPageToken returned by a
56514// previous list request to get the next page of results.
56515func (c *DiskTypesListCall) PageToken(pageToken string) *DiskTypesListCall {
56516	c.urlParams_.Set("pageToken", pageToken)
56517	return c
56518}
56519
56520// Fields allows partial responses to be retrieved. See
56521// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56522// for more information.
56523func (c *DiskTypesListCall) Fields(s ...googleapi.Field) *DiskTypesListCall {
56524	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56525	return c
56526}
56527
56528// IfNoneMatch sets the optional parameter which makes the operation
56529// fail if the object's ETag matches the given value. This is useful for
56530// getting updates only after the object has changed since the last
56531// request. Use googleapi.IsNotModified to check whether the response
56532// error from Do is the result of In-None-Match.
56533func (c *DiskTypesListCall) IfNoneMatch(entityTag string) *DiskTypesListCall {
56534	c.ifNoneMatch_ = entityTag
56535	return c
56536}
56537
56538// Context sets the context to be used in this call's Do method. Any
56539// pending HTTP request will be aborted if the provided context is
56540// canceled.
56541func (c *DiskTypesListCall) Context(ctx context.Context) *DiskTypesListCall {
56542	c.ctx_ = ctx
56543	return c
56544}
56545
56546// Header returns an http.Header that can be modified by the caller to
56547// add HTTP headers to the request.
56548func (c *DiskTypesListCall) Header() http.Header {
56549	if c.header_ == nil {
56550		c.header_ = make(http.Header)
56551	}
56552	return c.header_
56553}
56554
56555func (c *DiskTypesListCall) doRequest(alt string) (*http.Response, error) {
56556	reqHeaders := make(http.Header)
56557	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
56558	for k, v := range c.header_ {
56559		reqHeaders[k] = v
56560	}
56561	reqHeaders.Set("User-Agent", c.s.userAgent())
56562	if c.ifNoneMatch_ != "" {
56563		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
56564	}
56565	var body io.Reader = nil
56566	c.urlParams_.Set("alt", alt)
56567	c.urlParams_.Set("prettyPrint", "false")
56568	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/diskTypes")
56569	urls += "?" + c.urlParams_.Encode()
56570	req, err := http.NewRequest("GET", urls, body)
56571	if err != nil {
56572		return nil, err
56573	}
56574	req.Header = reqHeaders
56575	googleapi.Expand(req.URL, map[string]string{
56576		"project": c.project,
56577		"zone":    c.zone,
56578	})
56579	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56580}
56581
56582// Do executes the "compute.diskTypes.list" call.
56583// Exactly one of *DiskTypeList or error will be non-nil. Any non-2xx
56584// status code is an error. Response headers are in either
56585// *DiskTypeList.ServerResponse.Header or (if a response was returned at
56586// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56587// to check whether the returned error was because
56588// http.StatusNotModified was returned.
56589func (c *DiskTypesListCall) Do(opts ...googleapi.CallOption) (*DiskTypeList, error) {
56590	gensupport.SetOptions(c.urlParams_, opts...)
56591	res, err := c.doRequest("json")
56592	if res != nil && res.StatusCode == http.StatusNotModified {
56593		if res.Body != nil {
56594			res.Body.Close()
56595		}
56596		return nil, &googleapi.Error{
56597			Code:   res.StatusCode,
56598			Header: res.Header,
56599		}
56600	}
56601	if err != nil {
56602		return nil, err
56603	}
56604	defer googleapi.CloseBody(res)
56605	if err := googleapi.CheckResponse(res); err != nil {
56606		return nil, err
56607	}
56608	ret := &DiskTypeList{
56609		ServerResponse: googleapi.ServerResponse{
56610			Header:         res.Header,
56611			HTTPStatusCode: res.StatusCode,
56612		},
56613	}
56614	target := &ret
56615	if err := gensupport.DecodeResponse(target, res); err != nil {
56616		return nil, err
56617	}
56618	return ret, nil
56619	// {
56620	//   "description": "Retrieves a list of disk types available to the specified project.",
56621	//   "httpMethod": "GET",
56622	//   "id": "compute.diskTypes.list",
56623	//   "parameterOrder": [
56624	//     "project",
56625	//     "zone"
56626	//   ],
56627	//   "parameters": {
56628	//     "filter": {
56629	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
56630	//       "location": "query",
56631	//       "type": "string"
56632	//     },
56633	//     "maxResults": {
56634	//       "default": "500",
56635	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
56636	//       "format": "uint32",
56637	//       "location": "query",
56638	//       "minimum": "0",
56639	//       "type": "integer"
56640	//     },
56641	//     "orderBy": {
56642	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
56643	//       "location": "query",
56644	//       "type": "string"
56645	//     },
56646	//     "pageToken": {
56647	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
56648	//       "location": "query",
56649	//       "type": "string"
56650	//     },
56651	//     "project": {
56652	//       "description": "Project ID for this request.",
56653	//       "location": "path",
56654	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56655	//       "required": true,
56656	//       "type": "string"
56657	//     },
56658	//     "zone": {
56659	//       "description": "The name of the zone for this request.",
56660	//       "location": "path",
56661	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
56662	//       "required": true,
56663	//       "type": "string"
56664	//     }
56665	//   },
56666	//   "path": "{project}/zones/{zone}/diskTypes",
56667	//   "response": {
56668	//     "$ref": "DiskTypeList"
56669	//   },
56670	//   "scopes": [
56671	//     "https://www.googleapis.com/auth/cloud-platform",
56672	//     "https://www.googleapis.com/auth/compute",
56673	//     "https://www.googleapis.com/auth/compute.readonly"
56674	//   ]
56675	// }
56676
56677}
56678
56679// Pages invokes f for each page of results.
56680// A non-nil error returned from f will halt the iteration.
56681// The provided context supersedes any context provided to the Context method.
56682func (c *DiskTypesListCall) Pages(ctx context.Context, f func(*DiskTypeList) error) error {
56683	c.ctx_ = ctx
56684	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
56685	for {
56686		x, err := c.Do()
56687		if err != nil {
56688			return err
56689		}
56690		if err := f(x); err != nil {
56691			return err
56692		}
56693		if x.NextPageToken == "" {
56694			return nil
56695		}
56696		c.PageToken(x.NextPageToken)
56697	}
56698}
56699
56700// method id "compute.disks.addResourcePolicies":
56701
56702type DisksAddResourcePoliciesCall struct {
56703	s                               *Service
56704	project                         string
56705	zone                            string
56706	disk                            string
56707	disksaddresourcepoliciesrequest *DisksAddResourcePoliciesRequest
56708	urlParams_                      gensupport.URLParams
56709	ctx_                            context.Context
56710	header_                         http.Header
56711}
56712
56713// AddResourcePolicies: Adds existing resource policies to a disk. You
56714// can only add one policy which will be applied to this disk for
56715// scheduling snapshot creation.
56716func (r *DisksService) AddResourcePolicies(project string, zone string, disk string, disksaddresourcepoliciesrequest *DisksAddResourcePoliciesRequest) *DisksAddResourcePoliciesCall {
56717	c := &DisksAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56718	c.project = project
56719	c.zone = zone
56720	c.disk = disk
56721	c.disksaddresourcepoliciesrequest = disksaddresourcepoliciesrequest
56722	return c
56723}
56724
56725// RequestId sets the optional parameter "requestId": An optional
56726// request ID to identify requests. Specify a unique request ID so that
56727// if you must retry your request, the server will know to ignore the
56728// request if it has already been completed.
56729//
56730// For example, consider a situation where you make an initial request
56731// and the request times out. If you make the request again with the
56732// same request ID, the server can check if original operation with the
56733// same request ID was received, and if so, will ignore the second
56734// request. This prevents clients from accidentally creating duplicate
56735// commitments.
56736//
56737// The request ID must be a valid UUID with the exception that zero UUID
56738// is not supported (00000000-0000-0000-0000-000000000000).
56739func (c *DisksAddResourcePoliciesCall) RequestId(requestId string) *DisksAddResourcePoliciesCall {
56740	c.urlParams_.Set("requestId", requestId)
56741	return c
56742}
56743
56744// Fields allows partial responses to be retrieved. See
56745// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56746// for more information.
56747func (c *DisksAddResourcePoliciesCall) Fields(s ...googleapi.Field) *DisksAddResourcePoliciesCall {
56748	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56749	return c
56750}
56751
56752// Context sets the context to be used in this call's Do method. Any
56753// pending HTTP request will be aborted if the provided context is
56754// canceled.
56755func (c *DisksAddResourcePoliciesCall) Context(ctx context.Context) *DisksAddResourcePoliciesCall {
56756	c.ctx_ = ctx
56757	return c
56758}
56759
56760// Header returns an http.Header that can be modified by the caller to
56761// add HTTP headers to the request.
56762func (c *DisksAddResourcePoliciesCall) Header() http.Header {
56763	if c.header_ == nil {
56764		c.header_ = make(http.Header)
56765	}
56766	return c.header_
56767}
56768
56769func (c *DisksAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
56770	reqHeaders := make(http.Header)
56771	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
56772	for k, v := range c.header_ {
56773		reqHeaders[k] = v
56774	}
56775	reqHeaders.Set("User-Agent", c.s.userAgent())
56776	var body io.Reader = nil
56777	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksaddresourcepoliciesrequest)
56778	if err != nil {
56779		return nil, err
56780	}
56781	reqHeaders.Set("Content-Type", "application/json")
56782	c.urlParams_.Set("alt", alt)
56783	c.urlParams_.Set("prettyPrint", "false")
56784	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/addResourcePolicies")
56785	urls += "?" + c.urlParams_.Encode()
56786	req, err := http.NewRequest("POST", urls, body)
56787	if err != nil {
56788		return nil, err
56789	}
56790	req.Header = reqHeaders
56791	googleapi.Expand(req.URL, map[string]string{
56792		"project": c.project,
56793		"zone":    c.zone,
56794		"disk":    c.disk,
56795	})
56796	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56797}
56798
56799// Do executes the "compute.disks.addResourcePolicies" call.
56800// Exactly one of *Operation or error will be non-nil. Any non-2xx
56801// status code is an error. Response headers are in either
56802// *Operation.ServerResponse.Header or (if a response was returned at
56803// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56804// to check whether the returned error was because
56805// http.StatusNotModified was returned.
56806func (c *DisksAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56807	gensupport.SetOptions(c.urlParams_, opts...)
56808	res, err := c.doRequest("json")
56809	if res != nil && res.StatusCode == http.StatusNotModified {
56810		if res.Body != nil {
56811			res.Body.Close()
56812		}
56813		return nil, &googleapi.Error{
56814			Code:   res.StatusCode,
56815			Header: res.Header,
56816		}
56817	}
56818	if err != nil {
56819		return nil, err
56820	}
56821	defer googleapi.CloseBody(res)
56822	if err := googleapi.CheckResponse(res); err != nil {
56823		return nil, err
56824	}
56825	ret := &Operation{
56826		ServerResponse: googleapi.ServerResponse{
56827			Header:         res.Header,
56828			HTTPStatusCode: res.StatusCode,
56829		},
56830	}
56831	target := &ret
56832	if err := gensupport.DecodeResponse(target, res); err != nil {
56833		return nil, err
56834	}
56835	return ret, nil
56836	// {
56837	//   "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.",
56838	//   "httpMethod": "POST",
56839	//   "id": "compute.disks.addResourcePolicies",
56840	//   "parameterOrder": [
56841	//     "project",
56842	//     "zone",
56843	//     "disk"
56844	//   ],
56845	//   "parameters": {
56846	//     "disk": {
56847	//       "description": "The disk name for this request.",
56848	//       "location": "path",
56849	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56850	//       "required": true,
56851	//       "type": "string"
56852	//     },
56853	//     "project": {
56854	//       "description": "Project ID for this request.",
56855	//       "location": "path",
56856	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56857	//       "required": true,
56858	//       "type": "string"
56859	//     },
56860	//     "requestId": {
56861	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56862	//       "location": "query",
56863	//       "type": "string"
56864	//     },
56865	//     "zone": {
56866	//       "description": "The name of the zone for this request.",
56867	//       "location": "path",
56868	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
56869	//       "required": true,
56870	//       "type": "string"
56871	//     }
56872	//   },
56873	//   "path": "{project}/zones/{zone}/disks/{disk}/addResourcePolicies",
56874	//   "request": {
56875	//     "$ref": "DisksAddResourcePoliciesRequest"
56876	//   },
56877	//   "response": {
56878	//     "$ref": "Operation"
56879	//   },
56880	//   "scopes": [
56881	//     "https://www.googleapis.com/auth/cloud-platform",
56882	//     "https://www.googleapis.com/auth/compute"
56883	//   ]
56884	// }
56885
56886}
56887
56888// method id "compute.disks.aggregatedList":
56889
56890type DisksAggregatedListCall struct {
56891	s            *Service
56892	project      string
56893	urlParams_   gensupport.URLParams
56894	ifNoneMatch_ string
56895	ctx_         context.Context
56896	header_      http.Header
56897}
56898
56899// AggregatedList: Retrieves an aggregated list of persistent disks.
56900// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/aggregatedList
56901func (r *DisksService) AggregatedList(project string) *DisksAggregatedListCall {
56902	c := &DisksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56903	c.project = project
56904	return c
56905}
56906
56907// Filter sets the optional parameter "filter": A filter expression that
56908// filters resources listed in the response. The expression must specify
56909// the field name, a comparison operator, and the value that you want to
56910// use for filtering. The value must be a string, a number, or a
56911// boolean. The comparison operator must be either =, !=, >, or <.
56912//
56913// For example, if you are filtering Compute Engine instances, you can
56914// exclude instances named example-instance by specifying name !=
56915// example-instance.
56916//
56917// You can also filter nested fields. For example, you could specify
56918// scheduling.automaticRestart = false to include instances only if they
56919// are not scheduled for automatic restarts. You can use filtering on
56920// nested fields to filter based on resource labels.
56921//
56922// To filter on multiple expressions, provide each separate expression
56923// within parentheses. For example, (scheduling.automaticRestart = true)
56924// (cpuPlatform = "Intel Skylake"). By default, each expression is an
56925// AND expression. However, you can include AND and OR expressions
56926// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
56927// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
56928// true).
56929func (c *DisksAggregatedListCall) Filter(filter string) *DisksAggregatedListCall {
56930	c.urlParams_.Set("filter", filter)
56931	return c
56932}
56933
56934// IncludeAllScopes sets the optional parameter "includeAllScopes":
56935// Indicates whether every visible scope for each scope type (zone,
56936// region, global) should be included in the response. For new resource
56937// types added after this field, the flag has no effect as new resource
56938// types will always include every visible scope for each scope type in
56939// response. For resource types which predate this field, if this flag
56940// is omitted or false, only scopes of the scope types where the
56941// resource type is expected to be found will be included.
56942func (c *DisksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *DisksAggregatedListCall {
56943	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
56944	return c
56945}
56946
56947// MaxResults sets the optional parameter "maxResults": The maximum
56948// number of results per page that should be returned. If the number of
56949// available results is larger than maxResults, Compute Engine returns a
56950// nextPageToken that can be used to get the next page of results in
56951// subsequent list requests. Acceptable values are 0 to 500, inclusive.
56952// (Default: 500)
56953func (c *DisksAggregatedListCall) MaxResults(maxResults int64) *DisksAggregatedListCall {
56954	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
56955	return c
56956}
56957
56958// OrderBy sets the optional parameter "orderBy": Sorts list results by
56959// a certain order. By default, results are returned in alphanumerical
56960// order based on the resource name.
56961//
56962// You can also sort results in descending order based on the creation
56963// timestamp using orderBy="creationTimestamp desc". This sorts results
56964// based on the creationTimestamp field in reverse chronological order
56965// (newest result first). Use this to sort resources like operations so
56966// that the newest operation is returned first.
56967//
56968// Currently, only sorting by name or creationTimestamp desc is
56969// supported.
56970func (c *DisksAggregatedListCall) OrderBy(orderBy string) *DisksAggregatedListCall {
56971	c.urlParams_.Set("orderBy", orderBy)
56972	return c
56973}
56974
56975// PageToken sets the optional parameter "pageToken": Specifies a page
56976// token to use. Set pageToken to the nextPageToken returned by a
56977// previous list request to get the next page of results.
56978func (c *DisksAggregatedListCall) PageToken(pageToken string) *DisksAggregatedListCall {
56979	c.urlParams_.Set("pageToken", pageToken)
56980	return c
56981}
56982
56983// Fields allows partial responses to be retrieved. See
56984// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56985// for more information.
56986func (c *DisksAggregatedListCall) Fields(s ...googleapi.Field) *DisksAggregatedListCall {
56987	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56988	return c
56989}
56990
56991// IfNoneMatch sets the optional parameter which makes the operation
56992// fail if the object's ETag matches the given value. This is useful for
56993// getting updates only after the object has changed since the last
56994// request. Use googleapi.IsNotModified to check whether the response
56995// error from Do is the result of In-None-Match.
56996func (c *DisksAggregatedListCall) IfNoneMatch(entityTag string) *DisksAggregatedListCall {
56997	c.ifNoneMatch_ = entityTag
56998	return c
56999}
57000
57001// Context sets the context to be used in this call's Do method. Any
57002// pending HTTP request will be aborted if the provided context is
57003// canceled.
57004func (c *DisksAggregatedListCall) Context(ctx context.Context) *DisksAggregatedListCall {
57005	c.ctx_ = ctx
57006	return c
57007}
57008
57009// Header returns an http.Header that can be modified by the caller to
57010// add HTTP headers to the request.
57011func (c *DisksAggregatedListCall) Header() http.Header {
57012	if c.header_ == nil {
57013		c.header_ = make(http.Header)
57014	}
57015	return c.header_
57016}
57017
57018func (c *DisksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
57019	reqHeaders := make(http.Header)
57020	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
57021	for k, v := range c.header_ {
57022		reqHeaders[k] = v
57023	}
57024	reqHeaders.Set("User-Agent", c.s.userAgent())
57025	if c.ifNoneMatch_ != "" {
57026		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57027	}
57028	var body io.Reader = nil
57029	c.urlParams_.Set("alt", alt)
57030	c.urlParams_.Set("prettyPrint", "false")
57031	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/disks")
57032	urls += "?" + c.urlParams_.Encode()
57033	req, err := http.NewRequest("GET", urls, body)
57034	if err != nil {
57035		return nil, err
57036	}
57037	req.Header = reqHeaders
57038	googleapi.Expand(req.URL, map[string]string{
57039		"project": c.project,
57040	})
57041	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57042}
57043
57044// Do executes the "compute.disks.aggregatedList" call.
57045// Exactly one of *DiskAggregatedList or error will be non-nil. Any
57046// non-2xx status code is an error. Response headers are in either
57047// *DiskAggregatedList.ServerResponse.Header or (if a response was
57048// returned at all) in error.(*googleapi.Error).Header. Use
57049// googleapi.IsNotModified to check whether the returned error was
57050// because http.StatusNotModified was returned.
57051func (c *DisksAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskAggregatedList, error) {
57052	gensupport.SetOptions(c.urlParams_, opts...)
57053	res, err := c.doRequest("json")
57054	if res != nil && res.StatusCode == http.StatusNotModified {
57055		if res.Body != nil {
57056			res.Body.Close()
57057		}
57058		return nil, &googleapi.Error{
57059			Code:   res.StatusCode,
57060			Header: res.Header,
57061		}
57062	}
57063	if err != nil {
57064		return nil, err
57065	}
57066	defer googleapi.CloseBody(res)
57067	if err := googleapi.CheckResponse(res); err != nil {
57068		return nil, err
57069	}
57070	ret := &DiskAggregatedList{
57071		ServerResponse: googleapi.ServerResponse{
57072			Header:         res.Header,
57073			HTTPStatusCode: res.StatusCode,
57074		},
57075	}
57076	target := &ret
57077	if err := gensupport.DecodeResponse(target, res); err != nil {
57078		return nil, err
57079	}
57080	return ret, nil
57081	// {
57082	//   "description": "Retrieves an aggregated list of persistent disks.",
57083	//   "httpMethod": "GET",
57084	//   "id": "compute.disks.aggregatedList",
57085	//   "parameterOrder": [
57086	//     "project"
57087	//   ],
57088	//   "parameters": {
57089	//     "filter": {
57090	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
57091	//       "location": "query",
57092	//       "type": "string"
57093	//     },
57094	//     "includeAllScopes": {
57095	//       "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.",
57096	//       "location": "query",
57097	//       "type": "boolean"
57098	//     },
57099	//     "maxResults": {
57100	//       "default": "500",
57101	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
57102	//       "format": "uint32",
57103	//       "location": "query",
57104	//       "minimum": "0",
57105	//       "type": "integer"
57106	//     },
57107	//     "orderBy": {
57108	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
57109	//       "location": "query",
57110	//       "type": "string"
57111	//     },
57112	//     "pageToken": {
57113	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
57114	//       "location": "query",
57115	//       "type": "string"
57116	//     },
57117	//     "project": {
57118	//       "description": "Project ID for this request.",
57119	//       "location": "path",
57120	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57121	//       "required": true,
57122	//       "type": "string"
57123	//     }
57124	//   },
57125	//   "path": "{project}/aggregated/disks",
57126	//   "response": {
57127	//     "$ref": "DiskAggregatedList"
57128	//   },
57129	//   "scopes": [
57130	//     "https://www.googleapis.com/auth/cloud-platform",
57131	//     "https://www.googleapis.com/auth/compute",
57132	//     "https://www.googleapis.com/auth/compute.readonly"
57133	//   ]
57134	// }
57135
57136}
57137
57138// Pages invokes f for each page of results.
57139// A non-nil error returned from f will halt the iteration.
57140// The provided context supersedes any context provided to the Context method.
57141func (c *DisksAggregatedListCall) Pages(ctx context.Context, f func(*DiskAggregatedList) error) error {
57142	c.ctx_ = ctx
57143	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
57144	for {
57145		x, err := c.Do()
57146		if err != nil {
57147			return err
57148		}
57149		if err := f(x); err != nil {
57150			return err
57151		}
57152		if x.NextPageToken == "" {
57153			return nil
57154		}
57155		c.PageToken(x.NextPageToken)
57156	}
57157}
57158
57159// method id "compute.disks.createSnapshot":
57160
57161type DisksCreateSnapshotCall struct {
57162	s          *Service
57163	project    string
57164	zone       string
57165	disk       string
57166	snapshot   *Snapshot
57167	urlParams_ gensupport.URLParams
57168	ctx_       context.Context
57169	header_    http.Header
57170}
57171
57172// CreateSnapshot: Creates a snapshot of a specified persistent disk.
57173// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/createSnapshot
57174func (r *DisksService) CreateSnapshot(project string, zone string, disk string, snapshot *Snapshot) *DisksCreateSnapshotCall {
57175	c := &DisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57176	c.project = project
57177	c.zone = zone
57178	c.disk = disk
57179	c.snapshot = snapshot
57180	return c
57181}
57182
57183// GuestFlush sets the optional parameter "guestFlush": [Input Only]
57184// Specifies to create an application consistent snapshot by informing
57185// the OS to prepare for the snapshot process. Currently only supported
57186// on Windows instances using the Volume Shadow Copy Service (VSS).
57187func (c *DisksCreateSnapshotCall) GuestFlush(guestFlush bool) *DisksCreateSnapshotCall {
57188	c.urlParams_.Set("guestFlush", fmt.Sprint(guestFlush))
57189	return c
57190}
57191
57192// RequestId sets the optional parameter "requestId": An optional
57193// request ID to identify requests. Specify a unique request ID so that
57194// if you must retry your request, the server will know to ignore the
57195// request if it has already been completed.
57196//
57197// For example, consider a situation where you make an initial request
57198// and the request times out. If you make the request again with the
57199// same request ID, the server can check if original operation with the
57200// same request ID was received, and if so, will ignore the second
57201// request. This prevents clients from accidentally creating duplicate
57202// commitments.
57203//
57204// The request ID must be a valid UUID with the exception that zero UUID
57205// is not supported (00000000-0000-0000-0000-000000000000).
57206func (c *DisksCreateSnapshotCall) RequestId(requestId string) *DisksCreateSnapshotCall {
57207	c.urlParams_.Set("requestId", requestId)
57208	return c
57209}
57210
57211// Fields allows partial responses to be retrieved. See
57212// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57213// for more information.
57214func (c *DisksCreateSnapshotCall) Fields(s ...googleapi.Field) *DisksCreateSnapshotCall {
57215	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57216	return c
57217}
57218
57219// Context sets the context to be used in this call's Do method. Any
57220// pending HTTP request will be aborted if the provided context is
57221// canceled.
57222func (c *DisksCreateSnapshotCall) Context(ctx context.Context) *DisksCreateSnapshotCall {
57223	c.ctx_ = ctx
57224	return c
57225}
57226
57227// Header returns an http.Header that can be modified by the caller to
57228// add HTTP headers to the request.
57229func (c *DisksCreateSnapshotCall) Header() http.Header {
57230	if c.header_ == nil {
57231		c.header_ = make(http.Header)
57232	}
57233	return c.header_
57234}
57235
57236func (c *DisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) {
57237	reqHeaders := make(http.Header)
57238	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
57239	for k, v := range c.header_ {
57240		reqHeaders[k] = v
57241	}
57242	reqHeaders.Set("User-Agent", c.s.userAgent())
57243	var body io.Reader = nil
57244	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot)
57245	if err != nil {
57246		return nil, err
57247	}
57248	reqHeaders.Set("Content-Type", "application/json")
57249	c.urlParams_.Set("alt", alt)
57250	c.urlParams_.Set("prettyPrint", "false")
57251	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/createSnapshot")
57252	urls += "?" + c.urlParams_.Encode()
57253	req, err := http.NewRequest("POST", urls, body)
57254	if err != nil {
57255		return nil, err
57256	}
57257	req.Header = reqHeaders
57258	googleapi.Expand(req.URL, map[string]string{
57259		"project": c.project,
57260		"zone":    c.zone,
57261		"disk":    c.disk,
57262	})
57263	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57264}
57265
57266// Do executes the "compute.disks.createSnapshot" call.
57267// Exactly one of *Operation or error will be non-nil. Any non-2xx
57268// status code is an error. Response headers are in either
57269// *Operation.ServerResponse.Header or (if a response was returned at
57270// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57271// to check whether the returned error was because
57272// http.StatusNotModified was returned.
57273func (c *DisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57274	gensupport.SetOptions(c.urlParams_, opts...)
57275	res, err := c.doRequest("json")
57276	if res != nil && res.StatusCode == http.StatusNotModified {
57277		if res.Body != nil {
57278			res.Body.Close()
57279		}
57280		return nil, &googleapi.Error{
57281			Code:   res.StatusCode,
57282			Header: res.Header,
57283		}
57284	}
57285	if err != nil {
57286		return nil, err
57287	}
57288	defer googleapi.CloseBody(res)
57289	if err := googleapi.CheckResponse(res); err != nil {
57290		return nil, err
57291	}
57292	ret := &Operation{
57293		ServerResponse: googleapi.ServerResponse{
57294			Header:         res.Header,
57295			HTTPStatusCode: res.StatusCode,
57296		},
57297	}
57298	target := &ret
57299	if err := gensupport.DecodeResponse(target, res); err != nil {
57300		return nil, err
57301	}
57302	return ret, nil
57303	// {
57304	//   "description": "Creates a snapshot of a specified persistent disk.",
57305	//   "httpMethod": "POST",
57306	//   "id": "compute.disks.createSnapshot",
57307	//   "parameterOrder": [
57308	//     "project",
57309	//     "zone",
57310	//     "disk"
57311	//   ],
57312	//   "parameters": {
57313	//     "disk": {
57314	//       "description": "Name of the persistent disk to snapshot.",
57315	//       "location": "path",
57316	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57317	//       "required": true,
57318	//       "type": "string"
57319	//     },
57320	//     "guestFlush": {
57321	//       "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).",
57322	//       "location": "query",
57323	//       "type": "boolean"
57324	//     },
57325	//     "project": {
57326	//       "description": "Project ID for this request.",
57327	//       "location": "path",
57328	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57329	//       "required": true,
57330	//       "type": "string"
57331	//     },
57332	//     "requestId": {
57333	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57334	//       "location": "query",
57335	//       "type": "string"
57336	//     },
57337	//     "zone": {
57338	//       "description": "The name of the zone for this request.",
57339	//       "location": "path",
57340	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57341	//       "required": true,
57342	//       "type": "string"
57343	//     }
57344	//   },
57345	//   "path": "{project}/zones/{zone}/disks/{disk}/createSnapshot",
57346	//   "request": {
57347	//     "$ref": "Snapshot"
57348	//   },
57349	//   "response": {
57350	//     "$ref": "Operation"
57351	//   },
57352	//   "scopes": [
57353	//     "https://www.googleapis.com/auth/cloud-platform",
57354	//     "https://www.googleapis.com/auth/compute"
57355	//   ]
57356	// }
57357
57358}
57359
57360// method id "compute.disks.delete":
57361
57362type DisksDeleteCall struct {
57363	s          *Service
57364	project    string
57365	zone       string
57366	disk       string
57367	urlParams_ gensupport.URLParams
57368	ctx_       context.Context
57369	header_    http.Header
57370}
57371
57372// Delete: Deletes the specified persistent disk. Deleting a disk
57373// removes its data permanently and is irreversible. However, deleting a
57374// disk does not delete any snapshots previously made from the disk. You
57375// must separately delete snapshots.
57376// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/delete
57377func (r *DisksService) Delete(project string, zone string, disk string) *DisksDeleteCall {
57378	c := &DisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57379	c.project = project
57380	c.zone = zone
57381	c.disk = disk
57382	return c
57383}
57384
57385// RequestId sets the optional parameter "requestId": An optional
57386// request ID to identify requests. Specify a unique request ID so that
57387// if you must retry your request, the server will know to ignore the
57388// request if it has already been completed.
57389//
57390// For example, consider a situation where you make an initial request
57391// and the request times out. If you make the request again with the
57392// same request ID, the server can check if original operation with the
57393// same request ID was received, and if so, will ignore the second
57394// request. This prevents clients from accidentally creating duplicate
57395// commitments.
57396//
57397// The request ID must be a valid UUID with the exception that zero UUID
57398// is not supported (00000000-0000-0000-0000-000000000000).
57399func (c *DisksDeleteCall) RequestId(requestId string) *DisksDeleteCall {
57400	c.urlParams_.Set("requestId", requestId)
57401	return c
57402}
57403
57404// Fields allows partial responses to be retrieved. See
57405// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57406// for more information.
57407func (c *DisksDeleteCall) Fields(s ...googleapi.Field) *DisksDeleteCall {
57408	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57409	return c
57410}
57411
57412// Context sets the context to be used in this call's Do method. Any
57413// pending HTTP request will be aborted if the provided context is
57414// canceled.
57415func (c *DisksDeleteCall) Context(ctx context.Context) *DisksDeleteCall {
57416	c.ctx_ = ctx
57417	return c
57418}
57419
57420// Header returns an http.Header that can be modified by the caller to
57421// add HTTP headers to the request.
57422func (c *DisksDeleteCall) Header() http.Header {
57423	if c.header_ == nil {
57424		c.header_ = make(http.Header)
57425	}
57426	return c.header_
57427}
57428
57429func (c *DisksDeleteCall) doRequest(alt string) (*http.Response, error) {
57430	reqHeaders := make(http.Header)
57431	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
57432	for k, v := range c.header_ {
57433		reqHeaders[k] = v
57434	}
57435	reqHeaders.Set("User-Agent", c.s.userAgent())
57436	var body io.Reader = nil
57437	c.urlParams_.Set("alt", alt)
57438	c.urlParams_.Set("prettyPrint", "false")
57439	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}")
57440	urls += "?" + c.urlParams_.Encode()
57441	req, err := http.NewRequest("DELETE", urls, body)
57442	if err != nil {
57443		return nil, err
57444	}
57445	req.Header = reqHeaders
57446	googleapi.Expand(req.URL, map[string]string{
57447		"project": c.project,
57448		"zone":    c.zone,
57449		"disk":    c.disk,
57450	})
57451	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57452}
57453
57454// Do executes the "compute.disks.delete" call.
57455// Exactly one of *Operation or error will be non-nil. Any non-2xx
57456// status code is an error. Response headers are in either
57457// *Operation.ServerResponse.Header or (if a response was returned at
57458// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57459// to check whether the returned error was because
57460// http.StatusNotModified was returned.
57461func (c *DisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57462	gensupport.SetOptions(c.urlParams_, opts...)
57463	res, err := c.doRequest("json")
57464	if res != nil && res.StatusCode == http.StatusNotModified {
57465		if res.Body != nil {
57466			res.Body.Close()
57467		}
57468		return nil, &googleapi.Error{
57469			Code:   res.StatusCode,
57470			Header: res.Header,
57471		}
57472	}
57473	if err != nil {
57474		return nil, err
57475	}
57476	defer googleapi.CloseBody(res)
57477	if err := googleapi.CheckResponse(res); err != nil {
57478		return nil, err
57479	}
57480	ret := &Operation{
57481		ServerResponse: googleapi.ServerResponse{
57482			Header:         res.Header,
57483			HTTPStatusCode: res.StatusCode,
57484		},
57485	}
57486	target := &ret
57487	if err := gensupport.DecodeResponse(target, res); err != nil {
57488		return nil, err
57489	}
57490	return ret, nil
57491	// {
57492	//   "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.",
57493	//   "httpMethod": "DELETE",
57494	//   "id": "compute.disks.delete",
57495	//   "parameterOrder": [
57496	//     "project",
57497	//     "zone",
57498	//     "disk"
57499	//   ],
57500	//   "parameters": {
57501	//     "disk": {
57502	//       "description": "Name of the persistent disk to delete.",
57503	//       "location": "path",
57504	//       "required": true,
57505	//       "type": "string"
57506	//     },
57507	//     "project": {
57508	//       "description": "Project ID for this request.",
57509	//       "location": "path",
57510	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57511	//       "required": true,
57512	//       "type": "string"
57513	//     },
57514	//     "requestId": {
57515	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57516	//       "location": "query",
57517	//       "type": "string"
57518	//     },
57519	//     "zone": {
57520	//       "description": "The name of the zone for this request.",
57521	//       "location": "path",
57522	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57523	//       "required": true,
57524	//       "type": "string"
57525	//     }
57526	//   },
57527	//   "path": "{project}/zones/{zone}/disks/{disk}",
57528	//   "response": {
57529	//     "$ref": "Operation"
57530	//   },
57531	//   "scopes": [
57532	//     "https://www.googleapis.com/auth/cloud-platform",
57533	//     "https://www.googleapis.com/auth/compute"
57534	//   ]
57535	// }
57536
57537}
57538
57539// method id "compute.disks.get":
57540
57541type DisksGetCall struct {
57542	s            *Service
57543	project      string
57544	zone         string
57545	disk         string
57546	urlParams_   gensupport.URLParams
57547	ifNoneMatch_ string
57548	ctx_         context.Context
57549	header_      http.Header
57550}
57551
57552// Get: Returns a specified persistent disk. Gets a list of available
57553// persistent disks by making a list() request.
57554// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/get
57555func (r *DisksService) Get(project string, zone string, disk string) *DisksGetCall {
57556	c := &DisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57557	c.project = project
57558	c.zone = zone
57559	c.disk = disk
57560	return c
57561}
57562
57563// Fields allows partial responses to be retrieved. See
57564// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57565// for more information.
57566func (c *DisksGetCall) Fields(s ...googleapi.Field) *DisksGetCall {
57567	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57568	return c
57569}
57570
57571// IfNoneMatch sets the optional parameter which makes the operation
57572// fail if the object's ETag matches the given value. This is useful for
57573// getting updates only after the object has changed since the last
57574// request. Use googleapi.IsNotModified to check whether the response
57575// error from Do is the result of In-None-Match.
57576func (c *DisksGetCall) IfNoneMatch(entityTag string) *DisksGetCall {
57577	c.ifNoneMatch_ = entityTag
57578	return c
57579}
57580
57581// Context sets the context to be used in this call's Do method. Any
57582// pending HTTP request will be aborted if the provided context is
57583// canceled.
57584func (c *DisksGetCall) Context(ctx context.Context) *DisksGetCall {
57585	c.ctx_ = ctx
57586	return c
57587}
57588
57589// Header returns an http.Header that can be modified by the caller to
57590// add HTTP headers to the request.
57591func (c *DisksGetCall) Header() http.Header {
57592	if c.header_ == nil {
57593		c.header_ = make(http.Header)
57594	}
57595	return c.header_
57596}
57597
57598func (c *DisksGetCall) doRequest(alt string) (*http.Response, error) {
57599	reqHeaders := make(http.Header)
57600	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
57601	for k, v := range c.header_ {
57602		reqHeaders[k] = v
57603	}
57604	reqHeaders.Set("User-Agent", c.s.userAgent())
57605	if c.ifNoneMatch_ != "" {
57606		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57607	}
57608	var body io.Reader = nil
57609	c.urlParams_.Set("alt", alt)
57610	c.urlParams_.Set("prettyPrint", "false")
57611	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}")
57612	urls += "?" + c.urlParams_.Encode()
57613	req, err := http.NewRequest("GET", urls, body)
57614	if err != nil {
57615		return nil, err
57616	}
57617	req.Header = reqHeaders
57618	googleapi.Expand(req.URL, map[string]string{
57619		"project": c.project,
57620		"zone":    c.zone,
57621		"disk":    c.disk,
57622	})
57623	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57624}
57625
57626// Do executes the "compute.disks.get" call.
57627// Exactly one of *Disk or error will be non-nil. Any non-2xx status
57628// code is an error. Response headers are in either
57629// *Disk.ServerResponse.Header or (if a response was returned at all) in
57630// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
57631// whether the returned error was because http.StatusNotModified was
57632// returned.
57633func (c *DisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) {
57634	gensupport.SetOptions(c.urlParams_, opts...)
57635	res, err := c.doRequest("json")
57636	if res != nil && res.StatusCode == http.StatusNotModified {
57637		if res.Body != nil {
57638			res.Body.Close()
57639		}
57640		return nil, &googleapi.Error{
57641			Code:   res.StatusCode,
57642			Header: res.Header,
57643		}
57644	}
57645	if err != nil {
57646		return nil, err
57647	}
57648	defer googleapi.CloseBody(res)
57649	if err := googleapi.CheckResponse(res); err != nil {
57650		return nil, err
57651	}
57652	ret := &Disk{
57653		ServerResponse: googleapi.ServerResponse{
57654			Header:         res.Header,
57655			HTTPStatusCode: res.StatusCode,
57656		},
57657	}
57658	target := &ret
57659	if err := gensupport.DecodeResponse(target, res); err != nil {
57660		return nil, err
57661	}
57662	return ret, nil
57663	// {
57664	//   "description": "Returns a specified persistent disk. Gets a list of available persistent disks by making a list() request.",
57665	//   "httpMethod": "GET",
57666	//   "id": "compute.disks.get",
57667	//   "parameterOrder": [
57668	//     "project",
57669	//     "zone",
57670	//     "disk"
57671	//   ],
57672	//   "parameters": {
57673	//     "disk": {
57674	//       "description": "Name of the persistent disk to return.",
57675	//       "location": "path",
57676	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57677	//       "required": true,
57678	//       "type": "string"
57679	//     },
57680	//     "project": {
57681	//       "description": "Project ID for this request.",
57682	//       "location": "path",
57683	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57684	//       "required": true,
57685	//       "type": "string"
57686	//     },
57687	//     "zone": {
57688	//       "description": "The name of the zone for this request.",
57689	//       "location": "path",
57690	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57691	//       "required": true,
57692	//       "type": "string"
57693	//     }
57694	//   },
57695	//   "path": "{project}/zones/{zone}/disks/{disk}",
57696	//   "response": {
57697	//     "$ref": "Disk"
57698	//   },
57699	//   "scopes": [
57700	//     "https://www.googleapis.com/auth/cloud-platform",
57701	//     "https://www.googleapis.com/auth/compute",
57702	//     "https://www.googleapis.com/auth/compute.readonly"
57703	//   ]
57704	// }
57705
57706}
57707
57708// method id "compute.disks.getIamPolicy":
57709
57710type DisksGetIamPolicyCall struct {
57711	s            *Service
57712	project      string
57713	zone         string
57714	resource     string
57715	urlParams_   gensupport.URLParams
57716	ifNoneMatch_ string
57717	ctx_         context.Context
57718	header_      http.Header
57719}
57720
57721// GetIamPolicy: Gets the access control policy for a resource. May be
57722// empty if no such policy or resource exists.
57723func (r *DisksService) GetIamPolicy(project string, zone string, resource string) *DisksGetIamPolicyCall {
57724	c := &DisksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57725	c.project = project
57726	c.zone = zone
57727	c.resource = resource
57728	return c
57729}
57730
57731// OptionsRequestedPolicyVersion sets the optional parameter
57732// "optionsRequestedPolicyVersion": Requested IAM Policy version.
57733func (c *DisksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *DisksGetIamPolicyCall {
57734	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
57735	return c
57736}
57737
57738// Fields allows partial responses to be retrieved. See
57739// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57740// for more information.
57741func (c *DisksGetIamPolicyCall) Fields(s ...googleapi.Field) *DisksGetIamPolicyCall {
57742	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57743	return c
57744}
57745
57746// IfNoneMatch sets the optional parameter which makes the operation
57747// fail if the object's ETag matches the given value. This is useful for
57748// getting updates only after the object has changed since the last
57749// request. Use googleapi.IsNotModified to check whether the response
57750// error from Do is the result of In-None-Match.
57751func (c *DisksGetIamPolicyCall) IfNoneMatch(entityTag string) *DisksGetIamPolicyCall {
57752	c.ifNoneMatch_ = entityTag
57753	return c
57754}
57755
57756// Context sets the context to be used in this call's Do method. Any
57757// pending HTTP request will be aborted if the provided context is
57758// canceled.
57759func (c *DisksGetIamPolicyCall) Context(ctx context.Context) *DisksGetIamPolicyCall {
57760	c.ctx_ = ctx
57761	return c
57762}
57763
57764// Header returns an http.Header that can be modified by the caller to
57765// add HTTP headers to the request.
57766func (c *DisksGetIamPolicyCall) Header() http.Header {
57767	if c.header_ == nil {
57768		c.header_ = make(http.Header)
57769	}
57770	return c.header_
57771}
57772
57773func (c *DisksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
57774	reqHeaders := make(http.Header)
57775	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
57776	for k, v := range c.header_ {
57777		reqHeaders[k] = v
57778	}
57779	reqHeaders.Set("User-Agent", c.s.userAgent())
57780	if c.ifNoneMatch_ != "" {
57781		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57782	}
57783	var body io.Reader = nil
57784	c.urlParams_.Set("alt", alt)
57785	c.urlParams_.Set("prettyPrint", "false")
57786	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/getIamPolicy")
57787	urls += "?" + c.urlParams_.Encode()
57788	req, err := http.NewRequest("GET", urls, body)
57789	if err != nil {
57790		return nil, err
57791	}
57792	req.Header = reqHeaders
57793	googleapi.Expand(req.URL, map[string]string{
57794		"project":  c.project,
57795		"zone":     c.zone,
57796		"resource": c.resource,
57797	})
57798	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57799}
57800
57801// Do executes the "compute.disks.getIamPolicy" call.
57802// Exactly one of *Policy or error will be non-nil. Any non-2xx status
57803// code is an error. Response headers are in either
57804// *Policy.ServerResponse.Header or (if a response was returned at all)
57805// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
57806// check whether the returned error was because http.StatusNotModified
57807// was returned.
57808func (c *DisksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
57809	gensupport.SetOptions(c.urlParams_, opts...)
57810	res, err := c.doRequest("json")
57811	if res != nil && res.StatusCode == http.StatusNotModified {
57812		if res.Body != nil {
57813			res.Body.Close()
57814		}
57815		return nil, &googleapi.Error{
57816			Code:   res.StatusCode,
57817			Header: res.Header,
57818		}
57819	}
57820	if err != nil {
57821		return nil, err
57822	}
57823	defer googleapi.CloseBody(res)
57824	if err := googleapi.CheckResponse(res); err != nil {
57825		return nil, err
57826	}
57827	ret := &Policy{
57828		ServerResponse: googleapi.ServerResponse{
57829			Header:         res.Header,
57830			HTTPStatusCode: res.StatusCode,
57831		},
57832	}
57833	target := &ret
57834	if err := gensupport.DecodeResponse(target, res); err != nil {
57835		return nil, err
57836	}
57837	return ret, nil
57838	// {
57839	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
57840	//   "httpMethod": "GET",
57841	//   "id": "compute.disks.getIamPolicy",
57842	//   "parameterOrder": [
57843	//     "project",
57844	//     "zone",
57845	//     "resource"
57846	//   ],
57847	//   "parameters": {
57848	//     "optionsRequestedPolicyVersion": {
57849	//       "description": "Requested IAM Policy version.",
57850	//       "format": "int32",
57851	//       "location": "query",
57852	//       "type": "integer"
57853	//     },
57854	//     "project": {
57855	//       "description": "Project ID for this request.",
57856	//       "location": "path",
57857	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57858	//       "required": true,
57859	//       "type": "string"
57860	//     },
57861	//     "resource": {
57862	//       "description": "Name or id of the resource for this request.",
57863	//       "location": "path",
57864	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57865	//       "required": true,
57866	//       "type": "string"
57867	//     },
57868	//     "zone": {
57869	//       "description": "The name of the zone for this request.",
57870	//       "location": "path",
57871	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57872	//       "required": true,
57873	//       "type": "string"
57874	//     }
57875	//   },
57876	//   "path": "{project}/zones/{zone}/disks/{resource}/getIamPolicy",
57877	//   "response": {
57878	//     "$ref": "Policy"
57879	//   },
57880	//   "scopes": [
57881	//     "https://www.googleapis.com/auth/cloud-platform",
57882	//     "https://www.googleapis.com/auth/compute",
57883	//     "https://www.googleapis.com/auth/compute.readonly"
57884	//   ]
57885	// }
57886
57887}
57888
57889// method id "compute.disks.insert":
57890
57891type DisksInsertCall struct {
57892	s          *Service
57893	project    string
57894	zone       string
57895	disk       *Disk
57896	urlParams_ gensupport.URLParams
57897	ctx_       context.Context
57898	header_    http.Header
57899}
57900
57901// Insert: Creates a persistent disk in the specified project using the
57902// data in the request. You can create a disk with a sourceImage, a
57903// sourceSnapshot, or create an empty 500 GB data disk by omitting all
57904// properties. You can also create a disk that is larger than the
57905// default size by specifying the sizeGb property.
57906// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/insert
57907func (r *DisksService) Insert(project string, zone string, disk *Disk) *DisksInsertCall {
57908	c := &DisksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57909	c.project = project
57910	c.zone = zone
57911	c.disk = disk
57912	return c
57913}
57914
57915// RequestId sets the optional parameter "requestId": An optional
57916// request ID to identify requests. Specify a unique request ID so that
57917// if you must retry your request, the server will know to ignore the
57918// request if it has already been completed.
57919//
57920// For example, consider a situation where you make an initial request
57921// and the request times out. If you make the request again with the
57922// same request ID, the server can check if original operation with the
57923// same request ID was received, and if so, will ignore the second
57924// request. This prevents clients from accidentally creating duplicate
57925// commitments.
57926//
57927// The request ID must be a valid UUID with the exception that zero UUID
57928// is not supported (00000000-0000-0000-0000-000000000000).
57929func (c *DisksInsertCall) RequestId(requestId string) *DisksInsertCall {
57930	c.urlParams_.Set("requestId", requestId)
57931	return c
57932}
57933
57934// SourceImage sets the optional parameter "sourceImage": Source image
57935// to restore onto a disk.
57936func (c *DisksInsertCall) SourceImage(sourceImage string) *DisksInsertCall {
57937	c.urlParams_.Set("sourceImage", sourceImage)
57938	return c
57939}
57940
57941// Fields allows partial responses to be retrieved. See
57942// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57943// for more information.
57944func (c *DisksInsertCall) Fields(s ...googleapi.Field) *DisksInsertCall {
57945	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57946	return c
57947}
57948
57949// Context sets the context to be used in this call's Do method. Any
57950// pending HTTP request will be aborted if the provided context is
57951// canceled.
57952func (c *DisksInsertCall) Context(ctx context.Context) *DisksInsertCall {
57953	c.ctx_ = ctx
57954	return c
57955}
57956
57957// Header returns an http.Header that can be modified by the caller to
57958// add HTTP headers to the request.
57959func (c *DisksInsertCall) Header() http.Header {
57960	if c.header_ == nil {
57961		c.header_ = make(http.Header)
57962	}
57963	return c.header_
57964}
57965
57966func (c *DisksInsertCall) doRequest(alt string) (*http.Response, error) {
57967	reqHeaders := make(http.Header)
57968	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
57969	for k, v := range c.header_ {
57970		reqHeaders[k] = v
57971	}
57972	reqHeaders.Set("User-Agent", c.s.userAgent())
57973	var body io.Reader = nil
57974	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk)
57975	if err != nil {
57976		return nil, err
57977	}
57978	reqHeaders.Set("Content-Type", "application/json")
57979	c.urlParams_.Set("alt", alt)
57980	c.urlParams_.Set("prettyPrint", "false")
57981	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks")
57982	urls += "?" + c.urlParams_.Encode()
57983	req, err := http.NewRequest("POST", urls, body)
57984	if err != nil {
57985		return nil, err
57986	}
57987	req.Header = reqHeaders
57988	googleapi.Expand(req.URL, map[string]string{
57989		"project": c.project,
57990		"zone":    c.zone,
57991	})
57992	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57993}
57994
57995// Do executes the "compute.disks.insert" call.
57996// Exactly one of *Operation or error will be non-nil. Any non-2xx
57997// status code is an error. Response headers are in either
57998// *Operation.ServerResponse.Header or (if a response was returned at
57999// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58000// to check whether the returned error was because
58001// http.StatusNotModified was returned.
58002func (c *DisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58003	gensupport.SetOptions(c.urlParams_, opts...)
58004	res, err := c.doRequest("json")
58005	if res != nil && res.StatusCode == http.StatusNotModified {
58006		if res.Body != nil {
58007			res.Body.Close()
58008		}
58009		return nil, &googleapi.Error{
58010			Code:   res.StatusCode,
58011			Header: res.Header,
58012		}
58013	}
58014	if err != nil {
58015		return nil, err
58016	}
58017	defer googleapi.CloseBody(res)
58018	if err := googleapi.CheckResponse(res); err != nil {
58019		return nil, err
58020	}
58021	ret := &Operation{
58022		ServerResponse: googleapi.ServerResponse{
58023			Header:         res.Header,
58024			HTTPStatusCode: res.StatusCode,
58025		},
58026	}
58027	target := &ret
58028	if err := gensupport.DecodeResponse(target, res); err != nil {
58029		return nil, err
58030	}
58031	return ret, nil
58032	// {
58033	//   "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.",
58034	//   "httpMethod": "POST",
58035	//   "id": "compute.disks.insert",
58036	//   "parameterOrder": [
58037	//     "project",
58038	//     "zone"
58039	//   ],
58040	//   "parameters": {
58041	//     "project": {
58042	//       "description": "Project ID for this request.",
58043	//       "location": "path",
58044	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58045	//       "required": true,
58046	//       "type": "string"
58047	//     },
58048	//     "requestId": {
58049	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58050	//       "location": "query",
58051	//       "type": "string"
58052	//     },
58053	//     "sourceImage": {
58054	//       "description": "Optional. Source image to restore onto a disk.",
58055	//       "location": "query",
58056	//       "type": "string"
58057	//     },
58058	//     "zone": {
58059	//       "description": "The name of the zone for this request.",
58060	//       "location": "path",
58061	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58062	//       "required": true,
58063	//       "type": "string"
58064	//     }
58065	//   },
58066	//   "path": "{project}/zones/{zone}/disks",
58067	//   "request": {
58068	//     "$ref": "Disk"
58069	//   },
58070	//   "response": {
58071	//     "$ref": "Operation"
58072	//   },
58073	//   "scopes": [
58074	//     "https://www.googleapis.com/auth/cloud-platform",
58075	//     "https://www.googleapis.com/auth/compute"
58076	//   ]
58077	// }
58078
58079}
58080
58081// method id "compute.disks.list":
58082
58083type DisksListCall struct {
58084	s            *Service
58085	project      string
58086	zone         string
58087	urlParams_   gensupport.URLParams
58088	ifNoneMatch_ string
58089	ctx_         context.Context
58090	header_      http.Header
58091}
58092
58093// List: Retrieves a list of persistent disks contained within the
58094// specified zone.
58095// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/list
58096func (r *DisksService) List(project string, zone string) *DisksListCall {
58097	c := &DisksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58098	c.project = project
58099	c.zone = zone
58100	return c
58101}
58102
58103// Filter sets the optional parameter "filter": A filter expression that
58104// filters resources listed in the response. The expression must specify
58105// the field name, a comparison operator, and the value that you want to
58106// use for filtering. The value must be a string, a number, or a
58107// boolean. The comparison operator must be either =, !=, >, or <.
58108//
58109// For example, if you are filtering Compute Engine instances, you can
58110// exclude instances named example-instance by specifying name !=
58111// example-instance.
58112//
58113// You can also filter nested fields. For example, you could specify
58114// scheduling.automaticRestart = false to include instances only if they
58115// are not scheduled for automatic restarts. You can use filtering on
58116// nested fields to filter based on resource labels.
58117//
58118// To filter on multiple expressions, provide each separate expression
58119// within parentheses. For example, (scheduling.automaticRestart = true)
58120// (cpuPlatform = "Intel Skylake"). By default, each expression is an
58121// AND expression. However, you can include AND and OR expressions
58122// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
58123// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
58124// true).
58125func (c *DisksListCall) Filter(filter string) *DisksListCall {
58126	c.urlParams_.Set("filter", filter)
58127	return c
58128}
58129
58130// MaxResults sets the optional parameter "maxResults": The maximum
58131// number of results per page that should be returned. If the number of
58132// available results is larger than maxResults, Compute Engine returns a
58133// nextPageToken that can be used to get the next page of results in
58134// subsequent list requests. Acceptable values are 0 to 500, inclusive.
58135// (Default: 500)
58136func (c *DisksListCall) MaxResults(maxResults int64) *DisksListCall {
58137	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
58138	return c
58139}
58140
58141// OrderBy sets the optional parameter "orderBy": Sorts list results by
58142// a certain order. By default, results are returned in alphanumerical
58143// order based on the resource name.
58144//
58145// You can also sort results in descending order based on the creation
58146// timestamp using orderBy="creationTimestamp desc". This sorts results
58147// based on the creationTimestamp field in reverse chronological order
58148// (newest result first). Use this to sort resources like operations so
58149// that the newest operation is returned first.
58150//
58151// Currently, only sorting by name or creationTimestamp desc is
58152// supported.
58153func (c *DisksListCall) OrderBy(orderBy string) *DisksListCall {
58154	c.urlParams_.Set("orderBy", orderBy)
58155	return c
58156}
58157
58158// PageToken sets the optional parameter "pageToken": Specifies a page
58159// token to use. Set pageToken to the nextPageToken returned by a
58160// previous list request to get the next page of results.
58161func (c *DisksListCall) PageToken(pageToken string) *DisksListCall {
58162	c.urlParams_.Set("pageToken", pageToken)
58163	return c
58164}
58165
58166// Fields allows partial responses to be retrieved. See
58167// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58168// for more information.
58169func (c *DisksListCall) Fields(s ...googleapi.Field) *DisksListCall {
58170	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58171	return c
58172}
58173
58174// IfNoneMatch sets the optional parameter which makes the operation
58175// fail if the object's ETag matches the given value. This is useful for
58176// getting updates only after the object has changed since the last
58177// request. Use googleapi.IsNotModified to check whether the response
58178// error from Do is the result of In-None-Match.
58179func (c *DisksListCall) IfNoneMatch(entityTag string) *DisksListCall {
58180	c.ifNoneMatch_ = entityTag
58181	return c
58182}
58183
58184// Context sets the context to be used in this call's Do method. Any
58185// pending HTTP request will be aborted if the provided context is
58186// canceled.
58187func (c *DisksListCall) Context(ctx context.Context) *DisksListCall {
58188	c.ctx_ = ctx
58189	return c
58190}
58191
58192// Header returns an http.Header that can be modified by the caller to
58193// add HTTP headers to the request.
58194func (c *DisksListCall) Header() http.Header {
58195	if c.header_ == nil {
58196		c.header_ = make(http.Header)
58197	}
58198	return c.header_
58199}
58200
58201func (c *DisksListCall) doRequest(alt string) (*http.Response, error) {
58202	reqHeaders := make(http.Header)
58203	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
58204	for k, v := range c.header_ {
58205		reqHeaders[k] = v
58206	}
58207	reqHeaders.Set("User-Agent", c.s.userAgent())
58208	if c.ifNoneMatch_ != "" {
58209		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
58210	}
58211	var body io.Reader = nil
58212	c.urlParams_.Set("alt", alt)
58213	c.urlParams_.Set("prettyPrint", "false")
58214	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks")
58215	urls += "?" + c.urlParams_.Encode()
58216	req, err := http.NewRequest("GET", urls, body)
58217	if err != nil {
58218		return nil, err
58219	}
58220	req.Header = reqHeaders
58221	googleapi.Expand(req.URL, map[string]string{
58222		"project": c.project,
58223		"zone":    c.zone,
58224	})
58225	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58226}
58227
58228// Do executes the "compute.disks.list" call.
58229// Exactly one of *DiskList or error will be non-nil. Any non-2xx status
58230// code is an error. Response headers are in either
58231// *DiskList.ServerResponse.Header or (if a response was returned at
58232// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58233// to check whether the returned error was because
58234// http.StatusNotModified was returned.
58235func (c *DisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) {
58236	gensupport.SetOptions(c.urlParams_, opts...)
58237	res, err := c.doRequest("json")
58238	if res != nil && res.StatusCode == http.StatusNotModified {
58239		if res.Body != nil {
58240			res.Body.Close()
58241		}
58242		return nil, &googleapi.Error{
58243			Code:   res.StatusCode,
58244			Header: res.Header,
58245		}
58246	}
58247	if err != nil {
58248		return nil, err
58249	}
58250	defer googleapi.CloseBody(res)
58251	if err := googleapi.CheckResponse(res); err != nil {
58252		return nil, err
58253	}
58254	ret := &DiskList{
58255		ServerResponse: googleapi.ServerResponse{
58256			Header:         res.Header,
58257			HTTPStatusCode: res.StatusCode,
58258		},
58259	}
58260	target := &ret
58261	if err := gensupport.DecodeResponse(target, res); err != nil {
58262		return nil, err
58263	}
58264	return ret, nil
58265	// {
58266	//   "description": "Retrieves a list of persistent disks contained within the specified zone.",
58267	//   "httpMethod": "GET",
58268	//   "id": "compute.disks.list",
58269	//   "parameterOrder": [
58270	//     "project",
58271	//     "zone"
58272	//   ],
58273	//   "parameters": {
58274	//     "filter": {
58275	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
58276	//       "location": "query",
58277	//       "type": "string"
58278	//     },
58279	//     "maxResults": {
58280	//       "default": "500",
58281	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
58282	//       "format": "uint32",
58283	//       "location": "query",
58284	//       "minimum": "0",
58285	//       "type": "integer"
58286	//     },
58287	//     "orderBy": {
58288	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
58289	//       "location": "query",
58290	//       "type": "string"
58291	//     },
58292	//     "pageToken": {
58293	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
58294	//       "location": "query",
58295	//       "type": "string"
58296	//     },
58297	//     "project": {
58298	//       "description": "Project ID for this request.",
58299	//       "location": "path",
58300	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58301	//       "required": true,
58302	//       "type": "string"
58303	//     },
58304	//     "zone": {
58305	//       "description": "The name of the zone for this request.",
58306	//       "location": "path",
58307	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58308	//       "required": true,
58309	//       "type": "string"
58310	//     }
58311	//   },
58312	//   "path": "{project}/zones/{zone}/disks",
58313	//   "response": {
58314	//     "$ref": "DiskList"
58315	//   },
58316	//   "scopes": [
58317	//     "https://www.googleapis.com/auth/cloud-platform",
58318	//     "https://www.googleapis.com/auth/compute",
58319	//     "https://www.googleapis.com/auth/compute.readonly"
58320	//   ]
58321	// }
58322
58323}
58324
58325// Pages invokes f for each page of results.
58326// A non-nil error returned from f will halt the iteration.
58327// The provided context supersedes any context provided to the Context method.
58328func (c *DisksListCall) Pages(ctx context.Context, f func(*DiskList) error) error {
58329	c.ctx_ = ctx
58330	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
58331	for {
58332		x, err := c.Do()
58333		if err != nil {
58334			return err
58335		}
58336		if err := f(x); err != nil {
58337			return err
58338		}
58339		if x.NextPageToken == "" {
58340			return nil
58341		}
58342		c.PageToken(x.NextPageToken)
58343	}
58344}
58345
58346// method id "compute.disks.removeResourcePolicies":
58347
58348type DisksRemoveResourcePoliciesCall struct {
58349	s                                  *Service
58350	project                            string
58351	zone                               string
58352	disk                               string
58353	disksremoveresourcepoliciesrequest *DisksRemoveResourcePoliciesRequest
58354	urlParams_                         gensupport.URLParams
58355	ctx_                               context.Context
58356	header_                            http.Header
58357}
58358
58359// RemoveResourcePolicies: Removes resource policies from a disk.
58360func (r *DisksService) RemoveResourcePolicies(project string, zone string, disk string, disksremoveresourcepoliciesrequest *DisksRemoveResourcePoliciesRequest) *DisksRemoveResourcePoliciesCall {
58361	c := &DisksRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58362	c.project = project
58363	c.zone = zone
58364	c.disk = disk
58365	c.disksremoveresourcepoliciesrequest = disksremoveresourcepoliciesrequest
58366	return c
58367}
58368
58369// RequestId sets the optional parameter "requestId": An optional
58370// request ID to identify requests. Specify a unique request ID so that
58371// if you must retry your request, the server will know to ignore the
58372// request if it has already been completed.
58373//
58374// For example, consider a situation where you make an initial request
58375// and the request times out. If you make the request again with the
58376// same request ID, the server can check if original operation with the
58377// same request ID was received, and if so, will ignore the second
58378// request. This prevents clients from accidentally creating duplicate
58379// commitments.
58380//
58381// The request ID must be a valid UUID with the exception that zero UUID
58382// is not supported (00000000-0000-0000-0000-000000000000).
58383func (c *DisksRemoveResourcePoliciesCall) RequestId(requestId string) *DisksRemoveResourcePoliciesCall {
58384	c.urlParams_.Set("requestId", requestId)
58385	return c
58386}
58387
58388// Fields allows partial responses to be retrieved. See
58389// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58390// for more information.
58391func (c *DisksRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *DisksRemoveResourcePoliciesCall {
58392	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58393	return c
58394}
58395
58396// Context sets the context to be used in this call's Do method. Any
58397// pending HTTP request will be aborted if the provided context is
58398// canceled.
58399func (c *DisksRemoveResourcePoliciesCall) Context(ctx context.Context) *DisksRemoveResourcePoliciesCall {
58400	c.ctx_ = ctx
58401	return c
58402}
58403
58404// Header returns an http.Header that can be modified by the caller to
58405// add HTTP headers to the request.
58406func (c *DisksRemoveResourcePoliciesCall) Header() http.Header {
58407	if c.header_ == nil {
58408		c.header_ = make(http.Header)
58409	}
58410	return c.header_
58411}
58412
58413func (c *DisksRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
58414	reqHeaders := make(http.Header)
58415	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
58416	for k, v := range c.header_ {
58417		reqHeaders[k] = v
58418	}
58419	reqHeaders.Set("User-Agent", c.s.userAgent())
58420	var body io.Reader = nil
58421	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksremoveresourcepoliciesrequest)
58422	if err != nil {
58423		return nil, err
58424	}
58425	reqHeaders.Set("Content-Type", "application/json")
58426	c.urlParams_.Set("alt", alt)
58427	c.urlParams_.Set("prettyPrint", "false")
58428	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/removeResourcePolicies")
58429	urls += "?" + c.urlParams_.Encode()
58430	req, err := http.NewRequest("POST", urls, body)
58431	if err != nil {
58432		return nil, err
58433	}
58434	req.Header = reqHeaders
58435	googleapi.Expand(req.URL, map[string]string{
58436		"project": c.project,
58437		"zone":    c.zone,
58438		"disk":    c.disk,
58439	})
58440	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58441}
58442
58443// Do executes the "compute.disks.removeResourcePolicies" call.
58444// Exactly one of *Operation or error will be non-nil. Any non-2xx
58445// status code is an error. Response headers are in either
58446// *Operation.ServerResponse.Header or (if a response was returned at
58447// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58448// to check whether the returned error was because
58449// http.StatusNotModified was returned.
58450func (c *DisksRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58451	gensupport.SetOptions(c.urlParams_, opts...)
58452	res, err := c.doRequest("json")
58453	if res != nil && res.StatusCode == http.StatusNotModified {
58454		if res.Body != nil {
58455			res.Body.Close()
58456		}
58457		return nil, &googleapi.Error{
58458			Code:   res.StatusCode,
58459			Header: res.Header,
58460		}
58461	}
58462	if err != nil {
58463		return nil, err
58464	}
58465	defer googleapi.CloseBody(res)
58466	if err := googleapi.CheckResponse(res); err != nil {
58467		return nil, err
58468	}
58469	ret := &Operation{
58470		ServerResponse: googleapi.ServerResponse{
58471			Header:         res.Header,
58472			HTTPStatusCode: res.StatusCode,
58473		},
58474	}
58475	target := &ret
58476	if err := gensupport.DecodeResponse(target, res); err != nil {
58477		return nil, err
58478	}
58479	return ret, nil
58480	// {
58481	//   "description": "Removes resource policies from a disk.",
58482	//   "httpMethod": "POST",
58483	//   "id": "compute.disks.removeResourcePolicies",
58484	//   "parameterOrder": [
58485	//     "project",
58486	//     "zone",
58487	//     "disk"
58488	//   ],
58489	//   "parameters": {
58490	//     "disk": {
58491	//       "description": "The disk name for this request.",
58492	//       "location": "path",
58493	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58494	//       "required": true,
58495	//       "type": "string"
58496	//     },
58497	//     "project": {
58498	//       "description": "Project ID for this request.",
58499	//       "location": "path",
58500	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58501	//       "required": true,
58502	//       "type": "string"
58503	//     },
58504	//     "requestId": {
58505	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58506	//       "location": "query",
58507	//       "type": "string"
58508	//     },
58509	//     "zone": {
58510	//       "description": "The name of the zone for this request.",
58511	//       "location": "path",
58512	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58513	//       "required": true,
58514	//       "type": "string"
58515	//     }
58516	//   },
58517	//   "path": "{project}/zones/{zone}/disks/{disk}/removeResourcePolicies",
58518	//   "request": {
58519	//     "$ref": "DisksRemoveResourcePoliciesRequest"
58520	//   },
58521	//   "response": {
58522	//     "$ref": "Operation"
58523	//   },
58524	//   "scopes": [
58525	//     "https://www.googleapis.com/auth/cloud-platform",
58526	//     "https://www.googleapis.com/auth/compute"
58527	//   ]
58528	// }
58529
58530}
58531
58532// method id "compute.disks.resize":
58533
58534type DisksResizeCall struct {
58535	s                  *Service
58536	project            string
58537	zone               string
58538	disk               string
58539	disksresizerequest *DisksResizeRequest
58540	urlParams_         gensupport.URLParams
58541	ctx_               context.Context
58542	header_            http.Header
58543}
58544
58545// Resize: Resizes the specified persistent disk. You can only increase
58546// the size of the disk.
58547func (r *DisksService) Resize(project string, zone string, disk string, disksresizerequest *DisksResizeRequest) *DisksResizeCall {
58548	c := &DisksResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58549	c.project = project
58550	c.zone = zone
58551	c.disk = disk
58552	c.disksresizerequest = disksresizerequest
58553	return c
58554}
58555
58556// RequestId sets the optional parameter "requestId": An optional
58557// request ID to identify requests. Specify a unique request ID so that
58558// if you must retry your request, the server will know to ignore the
58559// request if it has already been completed.
58560//
58561// For example, consider a situation where you make an initial request
58562// and the request times out. If you make the request again with the
58563// same request ID, the server can check if original operation with the
58564// same request ID was received, and if so, will ignore the second
58565// request. This prevents clients from accidentally creating duplicate
58566// commitments.
58567//
58568// The request ID must be a valid UUID with the exception that zero UUID
58569// is not supported (00000000-0000-0000-0000-000000000000).
58570func (c *DisksResizeCall) RequestId(requestId string) *DisksResizeCall {
58571	c.urlParams_.Set("requestId", requestId)
58572	return c
58573}
58574
58575// Fields allows partial responses to be retrieved. See
58576// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58577// for more information.
58578func (c *DisksResizeCall) Fields(s ...googleapi.Field) *DisksResizeCall {
58579	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58580	return c
58581}
58582
58583// Context sets the context to be used in this call's Do method. Any
58584// pending HTTP request will be aborted if the provided context is
58585// canceled.
58586func (c *DisksResizeCall) Context(ctx context.Context) *DisksResizeCall {
58587	c.ctx_ = ctx
58588	return c
58589}
58590
58591// Header returns an http.Header that can be modified by the caller to
58592// add HTTP headers to the request.
58593func (c *DisksResizeCall) Header() http.Header {
58594	if c.header_ == nil {
58595		c.header_ = make(http.Header)
58596	}
58597	return c.header_
58598}
58599
58600func (c *DisksResizeCall) doRequest(alt string) (*http.Response, error) {
58601	reqHeaders := make(http.Header)
58602	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
58603	for k, v := range c.header_ {
58604		reqHeaders[k] = v
58605	}
58606	reqHeaders.Set("User-Agent", c.s.userAgent())
58607	var body io.Reader = nil
58608	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksresizerequest)
58609	if err != nil {
58610		return nil, err
58611	}
58612	reqHeaders.Set("Content-Type", "application/json")
58613	c.urlParams_.Set("alt", alt)
58614	c.urlParams_.Set("prettyPrint", "false")
58615	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/resize")
58616	urls += "?" + c.urlParams_.Encode()
58617	req, err := http.NewRequest("POST", urls, body)
58618	if err != nil {
58619		return nil, err
58620	}
58621	req.Header = reqHeaders
58622	googleapi.Expand(req.URL, map[string]string{
58623		"project": c.project,
58624		"zone":    c.zone,
58625		"disk":    c.disk,
58626	})
58627	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58628}
58629
58630// Do executes the "compute.disks.resize" call.
58631// Exactly one of *Operation or error will be non-nil. Any non-2xx
58632// status code is an error. Response headers are in either
58633// *Operation.ServerResponse.Header or (if a response was returned at
58634// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58635// to check whether the returned error was because
58636// http.StatusNotModified was returned.
58637func (c *DisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58638	gensupport.SetOptions(c.urlParams_, opts...)
58639	res, err := c.doRequest("json")
58640	if res != nil && res.StatusCode == http.StatusNotModified {
58641		if res.Body != nil {
58642			res.Body.Close()
58643		}
58644		return nil, &googleapi.Error{
58645			Code:   res.StatusCode,
58646			Header: res.Header,
58647		}
58648	}
58649	if err != nil {
58650		return nil, err
58651	}
58652	defer googleapi.CloseBody(res)
58653	if err := googleapi.CheckResponse(res); err != nil {
58654		return nil, err
58655	}
58656	ret := &Operation{
58657		ServerResponse: googleapi.ServerResponse{
58658			Header:         res.Header,
58659			HTTPStatusCode: res.StatusCode,
58660		},
58661	}
58662	target := &ret
58663	if err := gensupport.DecodeResponse(target, res); err != nil {
58664		return nil, err
58665	}
58666	return ret, nil
58667	// {
58668	//   "description": "Resizes the specified persistent disk. You can only increase the size of the disk.",
58669	//   "httpMethod": "POST",
58670	//   "id": "compute.disks.resize",
58671	//   "parameterOrder": [
58672	//     "project",
58673	//     "zone",
58674	//     "disk"
58675	//   ],
58676	//   "parameters": {
58677	//     "disk": {
58678	//       "description": "The name of the persistent disk.",
58679	//       "location": "path",
58680	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58681	//       "required": true,
58682	//       "type": "string"
58683	//     },
58684	//     "project": {
58685	//       "description": "Project ID for this request.",
58686	//       "location": "path",
58687	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58688	//       "required": true,
58689	//       "type": "string"
58690	//     },
58691	//     "requestId": {
58692	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58693	//       "location": "query",
58694	//       "type": "string"
58695	//     },
58696	//     "zone": {
58697	//       "description": "The name of the zone for this request.",
58698	//       "location": "path",
58699	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58700	//       "required": true,
58701	//       "type": "string"
58702	//     }
58703	//   },
58704	//   "path": "{project}/zones/{zone}/disks/{disk}/resize",
58705	//   "request": {
58706	//     "$ref": "DisksResizeRequest"
58707	//   },
58708	//   "response": {
58709	//     "$ref": "Operation"
58710	//   },
58711	//   "scopes": [
58712	//     "https://www.googleapis.com/auth/cloud-platform",
58713	//     "https://www.googleapis.com/auth/compute"
58714	//   ]
58715	// }
58716
58717}
58718
58719// method id "compute.disks.setIamPolicy":
58720
58721type DisksSetIamPolicyCall struct {
58722	s                    *Service
58723	project              string
58724	zone                 string
58725	resource             string
58726	zonesetpolicyrequest *ZoneSetPolicyRequest
58727	urlParams_           gensupport.URLParams
58728	ctx_                 context.Context
58729	header_              http.Header
58730}
58731
58732// SetIamPolicy: Sets the access control policy on the specified
58733// resource. Replaces any existing policy.
58734func (r *DisksService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *DisksSetIamPolicyCall {
58735	c := &DisksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58736	c.project = project
58737	c.zone = zone
58738	c.resource = resource
58739	c.zonesetpolicyrequest = zonesetpolicyrequest
58740	return c
58741}
58742
58743// Fields allows partial responses to be retrieved. See
58744// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58745// for more information.
58746func (c *DisksSetIamPolicyCall) Fields(s ...googleapi.Field) *DisksSetIamPolicyCall {
58747	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58748	return c
58749}
58750
58751// Context sets the context to be used in this call's Do method. Any
58752// pending HTTP request will be aborted if the provided context is
58753// canceled.
58754func (c *DisksSetIamPolicyCall) Context(ctx context.Context) *DisksSetIamPolicyCall {
58755	c.ctx_ = ctx
58756	return c
58757}
58758
58759// Header returns an http.Header that can be modified by the caller to
58760// add HTTP headers to the request.
58761func (c *DisksSetIamPolicyCall) Header() http.Header {
58762	if c.header_ == nil {
58763		c.header_ = make(http.Header)
58764	}
58765	return c.header_
58766}
58767
58768func (c *DisksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
58769	reqHeaders := make(http.Header)
58770	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
58771	for k, v := range c.header_ {
58772		reqHeaders[k] = v
58773	}
58774	reqHeaders.Set("User-Agent", c.s.userAgent())
58775	var body io.Reader = nil
58776	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
58777	if err != nil {
58778		return nil, err
58779	}
58780	reqHeaders.Set("Content-Type", "application/json")
58781	c.urlParams_.Set("alt", alt)
58782	c.urlParams_.Set("prettyPrint", "false")
58783	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/setIamPolicy")
58784	urls += "?" + c.urlParams_.Encode()
58785	req, err := http.NewRequest("POST", urls, body)
58786	if err != nil {
58787		return nil, err
58788	}
58789	req.Header = reqHeaders
58790	googleapi.Expand(req.URL, map[string]string{
58791		"project":  c.project,
58792		"zone":     c.zone,
58793		"resource": c.resource,
58794	})
58795	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58796}
58797
58798// Do executes the "compute.disks.setIamPolicy" call.
58799// Exactly one of *Policy or error will be non-nil. Any non-2xx status
58800// code is an error. Response headers are in either
58801// *Policy.ServerResponse.Header or (if a response was returned at all)
58802// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
58803// check whether the returned error was because http.StatusNotModified
58804// was returned.
58805func (c *DisksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
58806	gensupport.SetOptions(c.urlParams_, opts...)
58807	res, err := c.doRequest("json")
58808	if res != nil && res.StatusCode == http.StatusNotModified {
58809		if res.Body != nil {
58810			res.Body.Close()
58811		}
58812		return nil, &googleapi.Error{
58813			Code:   res.StatusCode,
58814			Header: res.Header,
58815		}
58816	}
58817	if err != nil {
58818		return nil, err
58819	}
58820	defer googleapi.CloseBody(res)
58821	if err := googleapi.CheckResponse(res); err != nil {
58822		return nil, err
58823	}
58824	ret := &Policy{
58825		ServerResponse: googleapi.ServerResponse{
58826			Header:         res.Header,
58827			HTTPStatusCode: res.StatusCode,
58828		},
58829	}
58830	target := &ret
58831	if err := gensupport.DecodeResponse(target, res); err != nil {
58832		return nil, err
58833	}
58834	return ret, nil
58835	// {
58836	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
58837	//   "httpMethod": "POST",
58838	//   "id": "compute.disks.setIamPolicy",
58839	//   "parameterOrder": [
58840	//     "project",
58841	//     "zone",
58842	//     "resource"
58843	//   ],
58844	//   "parameters": {
58845	//     "project": {
58846	//       "description": "Project ID for this request.",
58847	//       "location": "path",
58848	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58849	//       "required": true,
58850	//       "type": "string"
58851	//     },
58852	//     "resource": {
58853	//       "description": "Name or id of the resource for this request.",
58854	//       "location": "path",
58855	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58856	//       "required": true,
58857	//       "type": "string"
58858	//     },
58859	//     "zone": {
58860	//       "description": "The name of the zone for this request.",
58861	//       "location": "path",
58862	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58863	//       "required": true,
58864	//       "type": "string"
58865	//     }
58866	//   },
58867	//   "path": "{project}/zones/{zone}/disks/{resource}/setIamPolicy",
58868	//   "request": {
58869	//     "$ref": "ZoneSetPolicyRequest"
58870	//   },
58871	//   "response": {
58872	//     "$ref": "Policy"
58873	//   },
58874	//   "scopes": [
58875	//     "https://www.googleapis.com/auth/cloud-platform",
58876	//     "https://www.googleapis.com/auth/compute"
58877	//   ]
58878	// }
58879
58880}
58881
58882// method id "compute.disks.setLabels":
58883
58884type DisksSetLabelsCall struct {
58885	s                    *Service
58886	project              string
58887	zone                 string
58888	resource             string
58889	zonesetlabelsrequest *ZoneSetLabelsRequest
58890	urlParams_           gensupport.URLParams
58891	ctx_                 context.Context
58892	header_              http.Header
58893}
58894
58895// SetLabels: Sets the labels on a disk. To learn more about labels,
58896// read the Labeling Resources documentation.
58897func (r *DisksService) SetLabels(project string, zone string, resource string, zonesetlabelsrequest *ZoneSetLabelsRequest) *DisksSetLabelsCall {
58898	c := &DisksSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58899	c.project = project
58900	c.zone = zone
58901	c.resource = resource
58902	c.zonesetlabelsrequest = zonesetlabelsrequest
58903	return c
58904}
58905
58906// RequestId sets the optional parameter "requestId": An optional
58907// request ID to identify requests. Specify a unique request ID so that
58908// if you must retry your request, the server will know to ignore the
58909// request if it has already been completed.
58910//
58911// For example, consider a situation where you make an initial request
58912// and the request times out. If you make the request again with the
58913// same request ID, the server can check if original operation with the
58914// same request ID was received, and if so, will ignore the second
58915// request. This prevents clients from accidentally creating duplicate
58916// commitments.
58917//
58918// The request ID must be a valid UUID with the exception that zero UUID
58919// is not supported (00000000-0000-0000-0000-000000000000).
58920func (c *DisksSetLabelsCall) RequestId(requestId string) *DisksSetLabelsCall {
58921	c.urlParams_.Set("requestId", requestId)
58922	return c
58923}
58924
58925// Fields allows partial responses to be retrieved. See
58926// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58927// for more information.
58928func (c *DisksSetLabelsCall) Fields(s ...googleapi.Field) *DisksSetLabelsCall {
58929	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58930	return c
58931}
58932
58933// Context sets the context to be used in this call's Do method. Any
58934// pending HTTP request will be aborted if the provided context is
58935// canceled.
58936func (c *DisksSetLabelsCall) Context(ctx context.Context) *DisksSetLabelsCall {
58937	c.ctx_ = ctx
58938	return c
58939}
58940
58941// Header returns an http.Header that can be modified by the caller to
58942// add HTTP headers to the request.
58943func (c *DisksSetLabelsCall) Header() http.Header {
58944	if c.header_ == nil {
58945		c.header_ = make(http.Header)
58946	}
58947	return c.header_
58948}
58949
58950func (c *DisksSetLabelsCall) doRequest(alt string) (*http.Response, error) {
58951	reqHeaders := make(http.Header)
58952	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
58953	for k, v := range c.header_ {
58954		reqHeaders[k] = v
58955	}
58956	reqHeaders.Set("User-Agent", c.s.userAgent())
58957	var body io.Reader = nil
58958	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetlabelsrequest)
58959	if err != nil {
58960		return nil, err
58961	}
58962	reqHeaders.Set("Content-Type", "application/json")
58963	c.urlParams_.Set("alt", alt)
58964	c.urlParams_.Set("prettyPrint", "false")
58965	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/setLabels")
58966	urls += "?" + c.urlParams_.Encode()
58967	req, err := http.NewRequest("POST", urls, body)
58968	if err != nil {
58969		return nil, err
58970	}
58971	req.Header = reqHeaders
58972	googleapi.Expand(req.URL, map[string]string{
58973		"project":  c.project,
58974		"zone":     c.zone,
58975		"resource": c.resource,
58976	})
58977	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58978}
58979
58980// Do executes the "compute.disks.setLabels" call.
58981// Exactly one of *Operation or error will be non-nil. Any non-2xx
58982// status code is an error. Response headers are in either
58983// *Operation.ServerResponse.Header or (if a response was returned at
58984// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58985// to check whether the returned error was because
58986// http.StatusNotModified was returned.
58987func (c *DisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58988	gensupport.SetOptions(c.urlParams_, opts...)
58989	res, err := c.doRequest("json")
58990	if res != nil && res.StatusCode == http.StatusNotModified {
58991		if res.Body != nil {
58992			res.Body.Close()
58993		}
58994		return nil, &googleapi.Error{
58995			Code:   res.StatusCode,
58996			Header: res.Header,
58997		}
58998	}
58999	if err != nil {
59000		return nil, err
59001	}
59002	defer googleapi.CloseBody(res)
59003	if err := googleapi.CheckResponse(res); err != nil {
59004		return nil, err
59005	}
59006	ret := &Operation{
59007		ServerResponse: googleapi.ServerResponse{
59008			Header:         res.Header,
59009			HTTPStatusCode: res.StatusCode,
59010		},
59011	}
59012	target := &ret
59013	if err := gensupport.DecodeResponse(target, res); err != nil {
59014		return nil, err
59015	}
59016	return ret, nil
59017	// {
59018	//   "description": "Sets the labels on a disk. To learn more about labels, read the Labeling Resources documentation.",
59019	//   "httpMethod": "POST",
59020	//   "id": "compute.disks.setLabels",
59021	//   "parameterOrder": [
59022	//     "project",
59023	//     "zone",
59024	//     "resource"
59025	//   ],
59026	//   "parameters": {
59027	//     "project": {
59028	//       "description": "Project ID for this request.",
59029	//       "location": "path",
59030	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59031	//       "required": true,
59032	//       "type": "string"
59033	//     },
59034	//     "requestId": {
59035	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59036	//       "location": "query",
59037	//       "type": "string"
59038	//     },
59039	//     "resource": {
59040	//       "description": "Name or id of the resource for this request.",
59041	//       "location": "path",
59042	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59043	//       "required": true,
59044	//       "type": "string"
59045	//     },
59046	//     "zone": {
59047	//       "description": "The name of the zone for this request.",
59048	//       "location": "path",
59049	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59050	//       "required": true,
59051	//       "type": "string"
59052	//     }
59053	//   },
59054	//   "path": "{project}/zones/{zone}/disks/{resource}/setLabels",
59055	//   "request": {
59056	//     "$ref": "ZoneSetLabelsRequest"
59057	//   },
59058	//   "response": {
59059	//     "$ref": "Operation"
59060	//   },
59061	//   "scopes": [
59062	//     "https://www.googleapis.com/auth/cloud-platform",
59063	//     "https://www.googleapis.com/auth/compute"
59064	//   ]
59065	// }
59066
59067}
59068
59069// method id "compute.disks.testIamPermissions":
59070
59071type DisksTestIamPermissionsCall struct {
59072	s                      *Service
59073	project                string
59074	zone                   string
59075	resource               string
59076	testpermissionsrequest *TestPermissionsRequest
59077	urlParams_             gensupport.URLParams
59078	ctx_                   context.Context
59079	header_                http.Header
59080}
59081
59082// TestIamPermissions: Returns permissions that a caller has on the
59083// specified resource.
59084func (r *DisksService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *DisksTestIamPermissionsCall {
59085	c := &DisksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59086	c.project = project
59087	c.zone = zone
59088	c.resource = resource
59089	c.testpermissionsrequest = testpermissionsrequest
59090	return c
59091}
59092
59093// Fields allows partial responses to be retrieved. See
59094// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59095// for more information.
59096func (c *DisksTestIamPermissionsCall) Fields(s ...googleapi.Field) *DisksTestIamPermissionsCall {
59097	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59098	return c
59099}
59100
59101// Context sets the context to be used in this call's Do method. Any
59102// pending HTTP request will be aborted if the provided context is
59103// canceled.
59104func (c *DisksTestIamPermissionsCall) Context(ctx context.Context) *DisksTestIamPermissionsCall {
59105	c.ctx_ = ctx
59106	return c
59107}
59108
59109// Header returns an http.Header that can be modified by the caller to
59110// add HTTP headers to the request.
59111func (c *DisksTestIamPermissionsCall) Header() http.Header {
59112	if c.header_ == nil {
59113		c.header_ = make(http.Header)
59114	}
59115	return c.header_
59116}
59117
59118func (c *DisksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
59119	reqHeaders := make(http.Header)
59120	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
59121	for k, v := range c.header_ {
59122		reqHeaders[k] = v
59123	}
59124	reqHeaders.Set("User-Agent", c.s.userAgent())
59125	var body io.Reader = nil
59126	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
59127	if err != nil {
59128		return nil, err
59129	}
59130	reqHeaders.Set("Content-Type", "application/json")
59131	c.urlParams_.Set("alt", alt)
59132	c.urlParams_.Set("prettyPrint", "false")
59133	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/testIamPermissions")
59134	urls += "?" + c.urlParams_.Encode()
59135	req, err := http.NewRequest("POST", urls, body)
59136	if err != nil {
59137		return nil, err
59138	}
59139	req.Header = reqHeaders
59140	googleapi.Expand(req.URL, map[string]string{
59141		"project":  c.project,
59142		"zone":     c.zone,
59143		"resource": c.resource,
59144	})
59145	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59146}
59147
59148// Do executes the "compute.disks.testIamPermissions" call.
59149// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
59150// non-2xx status code is an error. Response headers are in either
59151// *TestPermissionsResponse.ServerResponse.Header or (if a response was
59152// returned at all) in error.(*googleapi.Error).Header. Use
59153// googleapi.IsNotModified to check whether the returned error was
59154// because http.StatusNotModified was returned.
59155func (c *DisksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
59156	gensupport.SetOptions(c.urlParams_, opts...)
59157	res, err := c.doRequest("json")
59158	if res != nil && res.StatusCode == http.StatusNotModified {
59159		if res.Body != nil {
59160			res.Body.Close()
59161		}
59162		return nil, &googleapi.Error{
59163			Code:   res.StatusCode,
59164			Header: res.Header,
59165		}
59166	}
59167	if err != nil {
59168		return nil, err
59169	}
59170	defer googleapi.CloseBody(res)
59171	if err := googleapi.CheckResponse(res); err != nil {
59172		return nil, err
59173	}
59174	ret := &TestPermissionsResponse{
59175		ServerResponse: googleapi.ServerResponse{
59176			Header:         res.Header,
59177			HTTPStatusCode: res.StatusCode,
59178		},
59179	}
59180	target := &ret
59181	if err := gensupport.DecodeResponse(target, res); err != nil {
59182		return nil, err
59183	}
59184	return ret, nil
59185	// {
59186	//   "description": "Returns permissions that a caller has on the specified resource.",
59187	//   "httpMethod": "POST",
59188	//   "id": "compute.disks.testIamPermissions",
59189	//   "parameterOrder": [
59190	//     "project",
59191	//     "zone",
59192	//     "resource"
59193	//   ],
59194	//   "parameters": {
59195	//     "project": {
59196	//       "description": "Project ID for this request.",
59197	//       "location": "path",
59198	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59199	//       "required": true,
59200	//       "type": "string"
59201	//     },
59202	//     "resource": {
59203	//       "description": "Name or id of the resource for this request.",
59204	//       "location": "path",
59205	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59206	//       "required": true,
59207	//       "type": "string"
59208	//     },
59209	//     "zone": {
59210	//       "description": "The name of the zone for this request.",
59211	//       "location": "path",
59212	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59213	//       "required": true,
59214	//       "type": "string"
59215	//     }
59216	//   },
59217	//   "path": "{project}/zones/{zone}/disks/{resource}/testIamPermissions",
59218	//   "request": {
59219	//     "$ref": "TestPermissionsRequest"
59220	//   },
59221	//   "response": {
59222	//     "$ref": "TestPermissionsResponse"
59223	//   },
59224	//   "scopes": [
59225	//     "https://www.googleapis.com/auth/cloud-platform",
59226	//     "https://www.googleapis.com/auth/compute",
59227	//     "https://www.googleapis.com/auth/compute.readonly"
59228	//   ]
59229	// }
59230
59231}
59232
59233// method id "compute.externalVpnGateways.delete":
59234
59235type ExternalVpnGatewaysDeleteCall struct {
59236	s                  *Service
59237	project            string
59238	externalVpnGateway string
59239	urlParams_         gensupport.URLParams
59240	ctx_               context.Context
59241	header_            http.Header
59242}
59243
59244// Delete: Deletes the specified externalVpnGateway.
59245func (r *ExternalVpnGatewaysService) Delete(project string, externalVpnGateway string) *ExternalVpnGatewaysDeleteCall {
59246	c := &ExternalVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59247	c.project = project
59248	c.externalVpnGateway = externalVpnGateway
59249	return c
59250}
59251
59252// RequestId sets the optional parameter "requestId": An optional
59253// request ID to identify requests. Specify a unique request ID so that
59254// if you must retry your request, the server will know to ignore the
59255// request if it has already been completed.
59256//
59257// For example, consider a situation where you make an initial request
59258// and the request times out. If you make the request again with the
59259// same request ID, the server can check if original operation with the
59260// same request ID was received, and if so, will ignore the second
59261// request. This prevents clients from accidentally creating duplicate
59262// commitments.
59263//
59264// The request ID must be a valid UUID with the exception that zero UUID
59265// is not supported (00000000-0000-0000-0000-000000000000).
59266func (c *ExternalVpnGatewaysDeleteCall) RequestId(requestId string) *ExternalVpnGatewaysDeleteCall {
59267	c.urlParams_.Set("requestId", requestId)
59268	return c
59269}
59270
59271// Fields allows partial responses to be retrieved. See
59272// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59273// for more information.
59274func (c *ExternalVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysDeleteCall {
59275	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59276	return c
59277}
59278
59279// Context sets the context to be used in this call's Do method. Any
59280// pending HTTP request will be aborted if the provided context is
59281// canceled.
59282func (c *ExternalVpnGatewaysDeleteCall) Context(ctx context.Context) *ExternalVpnGatewaysDeleteCall {
59283	c.ctx_ = ctx
59284	return c
59285}
59286
59287// Header returns an http.Header that can be modified by the caller to
59288// add HTTP headers to the request.
59289func (c *ExternalVpnGatewaysDeleteCall) Header() http.Header {
59290	if c.header_ == nil {
59291		c.header_ = make(http.Header)
59292	}
59293	return c.header_
59294}
59295
59296func (c *ExternalVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
59297	reqHeaders := make(http.Header)
59298	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
59299	for k, v := range c.header_ {
59300		reqHeaders[k] = v
59301	}
59302	reqHeaders.Set("User-Agent", c.s.userAgent())
59303	var body io.Reader = nil
59304	c.urlParams_.Set("alt", alt)
59305	c.urlParams_.Set("prettyPrint", "false")
59306	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways/{externalVpnGateway}")
59307	urls += "?" + c.urlParams_.Encode()
59308	req, err := http.NewRequest("DELETE", urls, body)
59309	if err != nil {
59310		return nil, err
59311	}
59312	req.Header = reqHeaders
59313	googleapi.Expand(req.URL, map[string]string{
59314		"project":            c.project,
59315		"externalVpnGateway": c.externalVpnGateway,
59316	})
59317	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59318}
59319
59320// Do executes the "compute.externalVpnGateways.delete" call.
59321// Exactly one of *Operation or error will be non-nil. Any non-2xx
59322// status code is an error. Response headers are in either
59323// *Operation.ServerResponse.Header or (if a response was returned at
59324// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59325// to check whether the returned error was because
59326// http.StatusNotModified was returned.
59327func (c *ExternalVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59328	gensupport.SetOptions(c.urlParams_, opts...)
59329	res, err := c.doRequest("json")
59330	if res != nil && res.StatusCode == http.StatusNotModified {
59331		if res.Body != nil {
59332			res.Body.Close()
59333		}
59334		return nil, &googleapi.Error{
59335			Code:   res.StatusCode,
59336			Header: res.Header,
59337		}
59338	}
59339	if err != nil {
59340		return nil, err
59341	}
59342	defer googleapi.CloseBody(res)
59343	if err := googleapi.CheckResponse(res); err != nil {
59344		return nil, err
59345	}
59346	ret := &Operation{
59347		ServerResponse: googleapi.ServerResponse{
59348			Header:         res.Header,
59349			HTTPStatusCode: res.StatusCode,
59350		},
59351	}
59352	target := &ret
59353	if err := gensupport.DecodeResponse(target, res); err != nil {
59354		return nil, err
59355	}
59356	return ret, nil
59357	// {
59358	//   "description": "Deletes the specified externalVpnGateway.",
59359	//   "httpMethod": "DELETE",
59360	//   "id": "compute.externalVpnGateways.delete",
59361	//   "parameterOrder": [
59362	//     "project",
59363	//     "externalVpnGateway"
59364	//   ],
59365	//   "parameters": {
59366	//     "externalVpnGateway": {
59367	//       "description": "Name of the externalVpnGateways to delete.",
59368	//       "location": "path",
59369	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59370	//       "required": true,
59371	//       "type": "string"
59372	//     },
59373	//     "project": {
59374	//       "description": "Project ID for this request.",
59375	//       "location": "path",
59376	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59377	//       "required": true,
59378	//       "type": "string"
59379	//     },
59380	//     "requestId": {
59381	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59382	//       "location": "query",
59383	//       "type": "string"
59384	//     }
59385	//   },
59386	//   "path": "{project}/global/externalVpnGateways/{externalVpnGateway}",
59387	//   "response": {
59388	//     "$ref": "Operation"
59389	//   },
59390	//   "scopes": [
59391	//     "https://www.googleapis.com/auth/cloud-platform",
59392	//     "https://www.googleapis.com/auth/compute"
59393	//   ]
59394	// }
59395
59396}
59397
59398// method id "compute.externalVpnGateways.get":
59399
59400type ExternalVpnGatewaysGetCall struct {
59401	s                  *Service
59402	project            string
59403	externalVpnGateway string
59404	urlParams_         gensupport.URLParams
59405	ifNoneMatch_       string
59406	ctx_               context.Context
59407	header_            http.Header
59408}
59409
59410// Get: Returns the specified externalVpnGateway. Get a list of
59411// available externalVpnGateways by making a list() request.
59412func (r *ExternalVpnGatewaysService) Get(project string, externalVpnGateway string) *ExternalVpnGatewaysGetCall {
59413	c := &ExternalVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59414	c.project = project
59415	c.externalVpnGateway = externalVpnGateway
59416	return c
59417}
59418
59419// Fields allows partial responses to be retrieved. See
59420// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59421// for more information.
59422func (c *ExternalVpnGatewaysGetCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysGetCall {
59423	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59424	return c
59425}
59426
59427// IfNoneMatch sets the optional parameter which makes the operation
59428// fail if the object's ETag matches the given value. This is useful for
59429// getting updates only after the object has changed since the last
59430// request. Use googleapi.IsNotModified to check whether the response
59431// error from Do is the result of In-None-Match.
59432func (c *ExternalVpnGatewaysGetCall) IfNoneMatch(entityTag string) *ExternalVpnGatewaysGetCall {
59433	c.ifNoneMatch_ = entityTag
59434	return c
59435}
59436
59437// Context sets the context to be used in this call's Do method. Any
59438// pending HTTP request will be aborted if the provided context is
59439// canceled.
59440func (c *ExternalVpnGatewaysGetCall) Context(ctx context.Context) *ExternalVpnGatewaysGetCall {
59441	c.ctx_ = ctx
59442	return c
59443}
59444
59445// Header returns an http.Header that can be modified by the caller to
59446// add HTTP headers to the request.
59447func (c *ExternalVpnGatewaysGetCall) Header() http.Header {
59448	if c.header_ == nil {
59449		c.header_ = make(http.Header)
59450	}
59451	return c.header_
59452}
59453
59454func (c *ExternalVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
59455	reqHeaders := make(http.Header)
59456	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
59457	for k, v := range c.header_ {
59458		reqHeaders[k] = v
59459	}
59460	reqHeaders.Set("User-Agent", c.s.userAgent())
59461	if c.ifNoneMatch_ != "" {
59462		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59463	}
59464	var body io.Reader = nil
59465	c.urlParams_.Set("alt", alt)
59466	c.urlParams_.Set("prettyPrint", "false")
59467	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways/{externalVpnGateway}")
59468	urls += "?" + c.urlParams_.Encode()
59469	req, err := http.NewRequest("GET", urls, body)
59470	if err != nil {
59471		return nil, err
59472	}
59473	req.Header = reqHeaders
59474	googleapi.Expand(req.URL, map[string]string{
59475		"project":            c.project,
59476		"externalVpnGateway": c.externalVpnGateway,
59477	})
59478	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59479}
59480
59481// Do executes the "compute.externalVpnGateways.get" call.
59482// Exactly one of *ExternalVpnGateway or error will be non-nil. Any
59483// non-2xx status code is an error. Response headers are in either
59484// *ExternalVpnGateway.ServerResponse.Header or (if a response was
59485// returned at all) in error.(*googleapi.Error).Header. Use
59486// googleapi.IsNotModified to check whether the returned error was
59487// because http.StatusNotModified was returned.
59488func (c *ExternalVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*ExternalVpnGateway, error) {
59489	gensupport.SetOptions(c.urlParams_, opts...)
59490	res, err := c.doRequest("json")
59491	if res != nil && res.StatusCode == http.StatusNotModified {
59492		if res.Body != nil {
59493			res.Body.Close()
59494		}
59495		return nil, &googleapi.Error{
59496			Code:   res.StatusCode,
59497			Header: res.Header,
59498		}
59499	}
59500	if err != nil {
59501		return nil, err
59502	}
59503	defer googleapi.CloseBody(res)
59504	if err := googleapi.CheckResponse(res); err != nil {
59505		return nil, err
59506	}
59507	ret := &ExternalVpnGateway{
59508		ServerResponse: googleapi.ServerResponse{
59509			Header:         res.Header,
59510			HTTPStatusCode: res.StatusCode,
59511		},
59512	}
59513	target := &ret
59514	if err := gensupport.DecodeResponse(target, res); err != nil {
59515		return nil, err
59516	}
59517	return ret, nil
59518	// {
59519	//   "description": "Returns the specified externalVpnGateway. Get a list of available externalVpnGateways by making a list() request.",
59520	//   "httpMethod": "GET",
59521	//   "id": "compute.externalVpnGateways.get",
59522	//   "parameterOrder": [
59523	//     "project",
59524	//     "externalVpnGateway"
59525	//   ],
59526	//   "parameters": {
59527	//     "externalVpnGateway": {
59528	//       "description": "Name of the externalVpnGateway to return.",
59529	//       "location": "path",
59530	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59531	//       "required": true,
59532	//       "type": "string"
59533	//     },
59534	//     "project": {
59535	//       "description": "Project ID for this request.",
59536	//       "location": "path",
59537	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59538	//       "required": true,
59539	//       "type": "string"
59540	//     }
59541	//   },
59542	//   "path": "{project}/global/externalVpnGateways/{externalVpnGateway}",
59543	//   "response": {
59544	//     "$ref": "ExternalVpnGateway"
59545	//   },
59546	//   "scopes": [
59547	//     "https://www.googleapis.com/auth/cloud-platform",
59548	//     "https://www.googleapis.com/auth/compute",
59549	//     "https://www.googleapis.com/auth/compute.readonly"
59550	//   ]
59551	// }
59552
59553}
59554
59555// method id "compute.externalVpnGateways.insert":
59556
59557type ExternalVpnGatewaysInsertCall struct {
59558	s                  *Service
59559	project            string
59560	externalvpngateway *ExternalVpnGateway
59561	urlParams_         gensupport.URLParams
59562	ctx_               context.Context
59563	header_            http.Header
59564}
59565
59566// Insert: Creates a ExternalVpnGateway in the specified project using
59567// the data included in the request.
59568func (r *ExternalVpnGatewaysService) Insert(project string, externalvpngateway *ExternalVpnGateway) *ExternalVpnGatewaysInsertCall {
59569	c := &ExternalVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59570	c.project = project
59571	c.externalvpngateway = externalvpngateway
59572	return c
59573}
59574
59575// RequestId sets the optional parameter "requestId": An optional
59576// request ID to identify requests. Specify a unique request ID so that
59577// if you must retry your request, the server will know to ignore the
59578// request if it has already been completed.
59579//
59580// For example, consider a situation where you make an initial request
59581// and the request times out. If you make the request again with the
59582// same request ID, the server can check if original operation with the
59583// same request ID was received, and if so, will ignore the second
59584// request. This prevents clients from accidentally creating duplicate
59585// commitments.
59586//
59587// The request ID must be a valid UUID with the exception that zero UUID
59588// is not supported (00000000-0000-0000-0000-000000000000).
59589func (c *ExternalVpnGatewaysInsertCall) RequestId(requestId string) *ExternalVpnGatewaysInsertCall {
59590	c.urlParams_.Set("requestId", requestId)
59591	return c
59592}
59593
59594// Fields allows partial responses to be retrieved. See
59595// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59596// for more information.
59597func (c *ExternalVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysInsertCall {
59598	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59599	return c
59600}
59601
59602// Context sets the context to be used in this call's Do method. Any
59603// pending HTTP request will be aborted if the provided context is
59604// canceled.
59605func (c *ExternalVpnGatewaysInsertCall) Context(ctx context.Context) *ExternalVpnGatewaysInsertCall {
59606	c.ctx_ = ctx
59607	return c
59608}
59609
59610// Header returns an http.Header that can be modified by the caller to
59611// add HTTP headers to the request.
59612func (c *ExternalVpnGatewaysInsertCall) Header() http.Header {
59613	if c.header_ == nil {
59614		c.header_ = make(http.Header)
59615	}
59616	return c.header_
59617}
59618
59619func (c *ExternalVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
59620	reqHeaders := make(http.Header)
59621	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
59622	for k, v := range c.header_ {
59623		reqHeaders[k] = v
59624	}
59625	reqHeaders.Set("User-Agent", c.s.userAgent())
59626	var body io.Reader = nil
59627	body, err := googleapi.WithoutDataWrapper.JSONReader(c.externalvpngateway)
59628	if err != nil {
59629		return nil, err
59630	}
59631	reqHeaders.Set("Content-Type", "application/json")
59632	c.urlParams_.Set("alt", alt)
59633	c.urlParams_.Set("prettyPrint", "false")
59634	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways")
59635	urls += "?" + c.urlParams_.Encode()
59636	req, err := http.NewRequest("POST", urls, body)
59637	if err != nil {
59638		return nil, err
59639	}
59640	req.Header = reqHeaders
59641	googleapi.Expand(req.URL, map[string]string{
59642		"project": c.project,
59643	})
59644	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59645}
59646
59647// Do executes the "compute.externalVpnGateways.insert" call.
59648// Exactly one of *Operation or error will be non-nil. Any non-2xx
59649// status code is an error. Response headers are in either
59650// *Operation.ServerResponse.Header or (if a response was returned at
59651// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59652// to check whether the returned error was because
59653// http.StatusNotModified was returned.
59654func (c *ExternalVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59655	gensupport.SetOptions(c.urlParams_, opts...)
59656	res, err := c.doRequest("json")
59657	if res != nil && res.StatusCode == http.StatusNotModified {
59658		if res.Body != nil {
59659			res.Body.Close()
59660		}
59661		return nil, &googleapi.Error{
59662			Code:   res.StatusCode,
59663			Header: res.Header,
59664		}
59665	}
59666	if err != nil {
59667		return nil, err
59668	}
59669	defer googleapi.CloseBody(res)
59670	if err := googleapi.CheckResponse(res); err != nil {
59671		return nil, err
59672	}
59673	ret := &Operation{
59674		ServerResponse: googleapi.ServerResponse{
59675			Header:         res.Header,
59676			HTTPStatusCode: res.StatusCode,
59677		},
59678	}
59679	target := &ret
59680	if err := gensupport.DecodeResponse(target, res); err != nil {
59681		return nil, err
59682	}
59683	return ret, nil
59684	// {
59685	//   "description": "Creates a ExternalVpnGateway in the specified project using the data included in the request.",
59686	//   "httpMethod": "POST",
59687	//   "id": "compute.externalVpnGateways.insert",
59688	//   "parameterOrder": [
59689	//     "project"
59690	//   ],
59691	//   "parameters": {
59692	//     "project": {
59693	//       "description": "Project ID for this request.",
59694	//       "location": "path",
59695	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59696	//       "required": true,
59697	//       "type": "string"
59698	//     },
59699	//     "requestId": {
59700	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59701	//       "location": "query",
59702	//       "type": "string"
59703	//     }
59704	//   },
59705	//   "path": "{project}/global/externalVpnGateways",
59706	//   "request": {
59707	//     "$ref": "ExternalVpnGateway"
59708	//   },
59709	//   "response": {
59710	//     "$ref": "Operation"
59711	//   },
59712	//   "scopes": [
59713	//     "https://www.googleapis.com/auth/cloud-platform",
59714	//     "https://www.googleapis.com/auth/compute"
59715	//   ]
59716	// }
59717
59718}
59719
59720// method id "compute.externalVpnGateways.list":
59721
59722type ExternalVpnGatewaysListCall struct {
59723	s            *Service
59724	project      string
59725	urlParams_   gensupport.URLParams
59726	ifNoneMatch_ string
59727	ctx_         context.Context
59728	header_      http.Header
59729}
59730
59731// List: Retrieves the list of ExternalVpnGateway available to the
59732// specified project.
59733func (r *ExternalVpnGatewaysService) List(project string) *ExternalVpnGatewaysListCall {
59734	c := &ExternalVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59735	c.project = project
59736	return c
59737}
59738
59739// Filter sets the optional parameter "filter": A filter expression that
59740// filters resources listed in the response. The expression must specify
59741// the field name, a comparison operator, and the value that you want to
59742// use for filtering. The value must be a string, a number, or a
59743// boolean. The comparison operator must be either =, !=, >, or <.
59744//
59745// For example, if you are filtering Compute Engine instances, you can
59746// exclude instances named example-instance by specifying name !=
59747// example-instance.
59748//
59749// You can also filter nested fields. For example, you could specify
59750// scheduling.automaticRestart = false to include instances only if they
59751// are not scheduled for automatic restarts. You can use filtering on
59752// nested fields to filter based on resource labels.
59753//
59754// To filter on multiple expressions, provide each separate expression
59755// within parentheses. For example, (scheduling.automaticRestart = true)
59756// (cpuPlatform = "Intel Skylake"). By default, each expression is an
59757// AND expression. However, you can include AND and OR expressions
59758// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
59759// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
59760// true).
59761func (c *ExternalVpnGatewaysListCall) Filter(filter string) *ExternalVpnGatewaysListCall {
59762	c.urlParams_.Set("filter", filter)
59763	return c
59764}
59765
59766// MaxResults sets the optional parameter "maxResults": The maximum
59767// number of results per page that should be returned. If the number of
59768// available results is larger than maxResults, Compute Engine returns a
59769// nextPageToken that can be used to get the next page of results in
59770// subsequent list requests. Acceptable values are 0 to 500, inclusive.
59771// (Default: 500)
59772func (c *ExternalVpnGatewaysListCall) MaxResults(maxResults int64) *ExternalVpnGatewaysListCall {
59773	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
59774	return c
59775}
59776
59777// OrderBy sets the optional parameter "orderBy": Sorts list results by
59778// a certain order. By default, results are returned in alphanumerical
59779// order based on the resource name.
59780//
59781// You can also sort results in descending order based on the creation
59782// timestamp using orderBy="creationTimestamp desc". This sorts results
59783// based on the creationTimestamp field in reverse chronological order
59784// (newest result first). Use this to sort resources like operations so
59785// that the newest operation is returned first.
59786//
59787// Currently, only sorting by name or creationTimestamp desc is
59788// supported.
59789func (c *ExternalVpnGatewaysListCall) OrderBy(orderBy string) *ExternalVpnGatewaysListCall {
59790	c.urlParams_.Set("orderBy", orderBy)
59791	return c
59792}
59793
59794// PageToken sets the optional parameter "pageToken": Specifies a page
59795// token to use. Set pageToken to the nextPageToken returned by a
59796// previous list request to get the next page of results.
59797func (c *ExternalVpnGatewaysListCall) PageToken(pageToken string) *ExternalVpnGatewaysListCall {
59798	c.urlParams_.Set("pageToken", pageToken)
59799	return c
59800}
59801
59802// Fields allows partial responses to be retrieved. See
59803// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59804// for more information.
59805func (c *ExternalVpnGatewaysListCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysListCall {
59806	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59807	return c
59808}
59809
59810// IfNoneMatch sets the optional parameter which makes the operation
59811// fail if the object's ETag matches the given value. This is useful for
59812// getting updates only after the object has changed since the last
59813// request. Use googleapi.IsNotModified to check whether the response
59814// error from Do is the result of In-None-Match.
59815func (c *ExternalVpnGatewaysListCall) IfNoneMatch(entityTag string) *ExternalVpnGatewaysListCall {
59816	c.ifNoneMatch_ = entityTag
59817	return c
59818}
59819
59820// Context sets the context to be used in this call's Do method. Any
59821// pending HTTP request will be aborted if the provided context is
59822// canceled.
59823func (c *ExternalVpnGatewaysListCall) Context(ctx context.Context) *ExternalVpnGatewaysListCall {
59824	c.ctx_ = ctx
59825	return c
59826}
59827
59828// Header returns an http.Header that can be modified by the caller to
59829// add HTTP headers to the request.
59830func (c *ExternalVpnGatewaysListCall) Header() http.Header {
59831	if c.header_ == nil {
59832		c.header_ = make(http.Header)
59833	}
59834	return c.header_
59835}
59836
59837func (c *ExternalVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
59838	reqHeaders := make(http.Header)
59839	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
59840	for k, v := range c.header_ {
59841		reqHeaders[k] = v
59842	}
59843	reqHeaders.Set("User-Agent", c.s.userAgent())
59844	if c.ifNoneMatch_ != "" {
59845		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59846	}
59847	var body io.Reader = nil
59848	c.urlParams_.Set("alt", alt)
59849	c.urlParams_.Set("prettyPrint", "false")
59850	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways")
59851	urls += "?" + c.urlParams_.Encode()
59852	req, err := http.NewRequest("GET", urls, body)
59853	if err != nil {
59854		return nil, err
59855	}
59856	req.Header = reqHeaders
59857	googleapi.Expand(req.URL, map[string]string{
59858		"project": c.project,
59859	})
59860	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59861}
59862
59863// Do executes the "compute.externalVpnGateways.list" call.
59864// Exactly one of *ExternalVpnGatewayList or error will be non-nil. Any
59865// non-2xx status code is an error. Response headers are in either
59866// *ExternalVpnGatewayList.ServerResponse.Header or (if a response was
59867// returned at all) in error.(*googleapi.Error).Header. Use
59868// googleapi.IsNotModified to check whether the returned error was
59869// because http.StatusNotModified was returned.
59870func (c *ExternalVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*ExternalVpnGatewayList, error) {
59871	gensupport.SetOptions(c.urlParams_, opts...)
59872	res, err := c.doRequest("json")
59873	if res != nil && res.StatusCode == http.StatusNotModified {
59874		if res.Body != nil {
59875			res.Body.Close()
59876		}
59877		return nil, &googleapi.Error{
59878			Code:   res.StatusCode,
59879			Header: res.Header,
59880		}
59881	}
59882	if err != nil {
59883		return nil, err
59884	}
59885	defer googleapi.CloseBody(res)
59886	if err := googleapi.CheckResponse(res); err != nil {
59887		return nil, err
59888	}
59889	ret := &ExternalVpnGatewayList{
59890		ServerResponse: googleapi.ServerResponse{
59891			Header:         res.Header,
59892			HTTPStatusCode: res.StatusCode,
59893		},
59894	}
59895	target := &ret
59896	if err := gensupport.DecodeResponse(target, res); err != nil {
59897		return nil, err
59898	}
59899	return ret, nil
59900	// {
59901	//   "description": "Retrieves the list of ExternalVpnGateway available to the specified project.",
59902	//   "httpMethod": "GET",
59903	//   "id": "compute.externalVpnGateways.list",
59904	//   "parameterOrder": [
59905	//     "project"
59906	//   ],
59907	//   "parameters": {
59908	//     "filter": {
59909	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
59910	//       "location": "query",
59911	//       "type": "string"
59912	//     },
59913	//     "maxResults": {
59914	//       "default": "500",
59915	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
59916	//       "format": "uint32",
59917	//       "location": "query",
59918	//       "minimum": "0",
59919	//       "type": "integer"
59920	//     },
59921	//     "orderBy": {
59922	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
59923	//       "location": "query",
59924	//       "type": "string"
59925	//     },
59926	//     "pageToken": {
59927	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
59928	//       "location": "query",
59929	//       "type": "string"
59930	//     },
59931	//     "project": {
59932	//       "description": "Project ID for this request.",
59933	//       "location": "path",
59934	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59935	//       "required": true,
59936	//       "type": "string"
59937	//     }
59938	//   },
59939	//   "path": "{project}/global/externalVpnGateways",
59940	//   "response": {
59941	//     "$ref": "ExternalVpnGatewayList"
59942	//   },
59943	//   "scopes": [
59944	//     "https://www.googleapis.com/auth/cloud-platform",
59945	//     "https://www.googleapis.com/auth/compute",
59946	//     "https://www.googleapis.com/auth/compute.readonly"
59947	//   ]
59948	// }
59949
59950}
59951
59952// Pages invokes f for each page of results.
59953// A non-nil error returned from f will halt the iteration.
59954// The provided context supersedes any context provided to the Context method.
59955func (c *ExternalVpnGatewaysListCall) Pages(ctx context.Context, f func(*ExternalVpnGatewayList) error) error {
59956	c.ctx_ = ctx
59957	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
59958	for {
59959		x, err := c.Do()
59960		if err != nil {
59961			return err
59962		}
59963		if err := f(x); err != nil {
59964			return err
59965		}
59966		if x.NextPageToken == "" {
59967			return nil
59968		}
59969		c.PageToken(x.NextPageToken)
59970	}
59971}
59972
59973// method id "compute.externalVpnGateways.setLabels":
59974
59975type ExternalVpnGatewaysSetLabelsCall struct {
59976	s                      *Service
59977	project                string
59978	resource               string
59979	globalsetlabelsrequest *GlobalSetLabelsRequest
59980	urlParams_             gensupport.URLParams
59981	ctx_                   context.Context
59982	header_                http.Header
59983}
59984
59985// SetLabels: Sets the labels on an ExternalVpnGateway. To learn more
59986// about labels, read the Labeling Resources documentation.
59987func (r *ExternalVpnGatewaysService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ExternalVpnGatewaysSetLabelsCall {
59988	c := &ExternalVpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59989	c.project = project
59990	c.resource = resource
59991	c.globalsetlabelsrequest = globalsetlabelsrequest
59992	return c
59993}
59994
59995// Fields allows partial responses to be retrieved. See
59996// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59997// for more information.
59998func (c *ExternalVpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysSetLabelsCall {
59999	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60000	return c
60001}
60002
60003// Context sets the context to be used in this call's Do method. Any
60004// pending HTTP request will be aborted if the provided context is
60005// canceled.
60006func (c *ExternalVpnGatewaysSetLabelsCall) Context(ctx context.Context) *ExternalVpnGatewaysSetLabelsCall {
60007	c.ctx_ = ctx
60008	return c
60009}
60010
60011// Header returns an http.Header that can be modified by the caller to
60012// add HTTP headers to the request.
60013func (c *ExternalVpnGatewaysSetLabelsCall) Header() http.Header {
60014	if c.header_ == nil {
60015		c.header_ = make(http.Header)
60016	}
60017	return c.header_
60018}
60019
60020func (c *ExternalVpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
60021	reqHeaders := make(http.Header)
60022	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
60023	for k, v := range c.header_ {
60024		reqHeaders[k] = v
60025	}
60026	reqHeaders.Set("User-Agent", c.s.userAgent())
60027	var body io.Reader = nil
60028	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
60029	if err != nil {
60030		return nil, err
60031	}
60032	reqHeaders.Set("Content-Type", "application/json")
60033	c.urlParams_.Set("alt", alt)
60034	c.urlParams_.Set("prettyPrint", "false")
60035	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways/{resource}/setLabels")
60036	urls += "?" + c.urlParams_.Encode()
60037	req, err := http.NewRequest("POST", urls, body)
60038	if err != nil {
60039		return nil, err
60040	}
60041	req.Header = reqHeaders
60042	googleapi.Expand(req.URL, map[string]string{
60043		"project":  c.project,
60044		"resource": c.resource,
60045	})
60046	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60047}
60048
60049// Do executes the "compute.externalVpnGateways.setLabels" call.
60050// Exactly one of *Operation or error will be non-nil. Any non-2xx
60051// status code is an error. Response headers are in either
60052// *Operation.ServerResponse.Header or (if a response was returned at
60053// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60054// to check whether the returned error was because
60055// http.StatusNotModified was returned.
60056func (c *ExternalVpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60057	gensupport.SetOptions(c.urlParams_, opts...)
60058	res, err := c.doRequest("json")
60059	if res != nil && res.StatusCode == http.StatusNotModified {
60060		if res.Body != nil {
60061			res.Body.Close()
60062		}
60063		return nil, &googleapi.Error{
60064			Code:   res.StatusCode,
60065			Header: res.Header,
60066		}
60067	}
60068	if err != nil {
60069		return nil, err
60070	}
60071	defer googleapi.CloseBody(res)
60072	if err := googleapi.CheckResponse(res); err != nil {
60073		return nil, err
60074	}
60075	ret := &Operation{
60076		ServerResponse: googleapi.ServerResponse{
60077			Header:         res.Header,
60078			HTTPStatusCode: res.StatusCode,
60079		},
60080	}
60081	target := &ret
60082	if err := gensupport.DecodeResponse(target, res); err != nil {
60083		return nil, err
60084	}
60085	return ret, nil
60086	// {
60087	//   "description": "Sets the labels on an ExternalVpnGateway. To learn more about labels, read the Labeling Resources documentation.",
60088	//   "httpMethod": "POST",
60089	//   "id": "compute.externalVpnGateways.setLabels",
60090	//   "parameterOrder": [
60091	//     "project",
60092	//     "resource"
60093	//   ],
60094	//   "parameters": {
60095	//     "project": {
60096	//       "description": "Project ID for this request.",
60097	//       "location": "path",
60098	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60099	//       "required": true,
60100	//       "type": "string"
60101	//     },
60102	//     "resource": {
60103	//       "description": "Name or id of the resource for this request.",
60104	//       "location": "path",
60105	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60106	//       "required": true,
60107	//       "type": "string"
60108	//     }
60109	//   },
60110	//   "path": "{project}/global/externalVpnGateways/{resource}/setLabels",
60111	//   "request": {
60112	//     "$ref": "GlobalSetLabelsRequest"
60113	//   },
60114	//   "response": {
60115	//     "$ref": "Operation"
60116	//   },
60117	//   "scopes": [
60118	//     "https://www.googleapis.com/auth/cloud-platform",
60119	//     "https://www.googleapis.com/auth/compute"
60120	//   ]
60121	// }
60122
60123}
60124
60125// method id "compute.externalVpnGateways.testIamPermissions":
60126
60127type ExternalVpnGatewaysTestIamPermissionsCall struct {
60128	s                      *Service
60129	project                string
60130	resource               string
60131	testpermissionsrequest *TestPermissionsRequest
60132	urlParams_             gensupport.URLParams
60133	ctx_                   context.Context
60134	header_                http.Header
60135}
60136
60137// TestIamPermissions: Returns permissions that a caller has on the
60138// specified resource.
60139func (r *ExternalVpnGatewaysService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *ExternalVpnGatewaysTestIamPermissionsCall {
60140	c := &ExternalVpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60141	c.project = project
60142	c.resource = resource
60143	c.testpermissionsrequest = testpermissionsrequest
60144	return c
60145}
60146
60147// Fields allows partial responses to be retrieved. See
60148// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60149// for more information.
60150func (c *ExternalVpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysTestIamPermissionsCall {
60151	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60152	return c
60153}
60154
60155// Context sets the context to be used in this call's Do method. Any
60156// pending HTTP request will be aborted if the provided context is
60157// canceled.
60158func (c *ExternalVpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *ExternalVpnGatewaysTestIamPermissionsCall {
60159	c.ctx_ = ctx
60160	return c
60161}
60162
60163// Header returns an http.Header that can be modified by the caller to
60164// add HTTP headers to the request.
60165func (c *ExternalVpnGatewaysTestIamPermissionsCall) Header() http.Header {
60166	if c.header_ == nil {
60167		c.header_ = make(http.Header)
60168	}
60169	return c.header_
60170}
60171
60172func (c *ExternalVpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
60173	reqHeaders := make(http.Header)
60174	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
60175	for k, v := range c.header_ {
60176		reqHeaders[k] = v
60177	}
60178	reqHeaders.Set("User-Agent", c.s.userAgent())
60179	var body io.Reader = nil
60180	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
60181	if err != nil {
60182		return nil, err
60183	}
60184	reqHeaders.Set("Content-Type", "application/json")
60185	c.urlParams_.Set("alt", alt)
60186	c.urlParams_.Set("prettyPrint", "false")
60187	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways/{resource}/testIamPermissions")
60188	urls += "?" + c.urlParams_.Encode()
60189	req, err := http.NewRequest("POST", urls, body)
60190	if err != nil {
60191		return nil, err
60192	}
60193	req.Header = reqHeaders
60194	googleapi.Expand(req.URL, map[string]string{
60195		"project":  c.project,
60196		"resource": c.resource,
60197	})
60198	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60199}
60200
60201// Do executes the "compute.externalVpnGateways.testIamPermissions" call.
60202// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
60203// non-2xx status code is an error. Response headers are in either
60204// *TestPermissionsResponse.ServerResponse.Header or (if a response was
60205// returned at all) in error.(*googleapi.Error).Header. Use
60206// googleapi.IsNotModified to check whether the returned error was
60207// because http.StatusNotModified was returned.
60208func (c *ExternalVpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
60209	gensupport.SetOptions(c.urlParams_, opts...)
60210	res, err := c.doRequest("json")
60211	if res != nil && res.StatusCode == http.StatusNotModified {
60212		if res.Body != nil {
60213			res.Body.Close()
60214		}
60215		return nil, &googleapi.Error{
60216			Code:   res.StatusCode,
60217			Header: res.Header,
60218		}
60219	}
60220	if err != nil {
60221		return nil, err
60222	}
60223	defer googleapi.CloseBody(res)
60224	if err := googleapi.CheckResponse(res); err != nil {
60225		return nil, err
60226	}
60227	ret := &TestPermissionsResponse{
60228		ServerResponse: googleapi.ServerResponse{
60229			Header:         res.Header,
60230			HTTPStatusCode: res.StatusCode,
60231		},
60232	}
60233	target := &ret
60234	if err := gensupport.DecodeResponse(target, res); err != nil {
60235		return nil, err
60236	}
60237	return ret, nil
60238	// {
60239	//   "description": "Returns permissions that a caller has on the specified resource.",
60240	//   "httpMethod": "POST",
60241	//   "id": "compute.externalVpnGateways.testIamPermissions",
60242	//   "parameterOrder": [
60243	//     "project",
60244	//     "resource"
60245	//   ],
60246	//   "parameters": {
60247	//     "project": {
60248	//       "description": "Project ID for this request.",
60249	//       "location": "path",
60250	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60251	//       "required": true,
60252	//       "type": "string"
60253	//     },
60254	//     "resource": {
60255	//       "description": "Name or id of the resource for this request.",
60256	//       "location": "path",
60257	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60258	//       "required": true,
60259	//       "type": "string"
60260	//     }
60261	//   },
60262	//   "path": "{project}/global/externalVpnGateways/{resource}/testIamPermissions",
60263	//   "request": {
60264	//     "$ref": "TestPermissionsRequest"
60265	//   },
60266	//   "response": {
60267	//     "$ref": "TestPermissionsResponse"
60268	//   },
60269	//   "scopes": [
60270	//     "https://www.googleapis.com/auth/cloud-platform",
60271	//     "https://www.googleapis.com/auth/compute",
60272	//     "https://www.googleapis.com/auth/compute.readonly"
60273	//   ]
60274	// }
60275
60276}
60277
60278// method id "compute.firewalls.delete":
60279
60280type FirewallsDeleteCall struct {
60281	s          *Service
60282	project    string
60283	firewall   string
60284	urlParams_ gensupport.URLParams
60285	ctx_       context.Context
60286	header_    http.Header
60287}
60288
60289// Delete: Deletes the specified firewall.
60290// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/delete
60291func (r *FirewallsService) Delete(project string, firewall string) *FirewallsDeleteCall {
60292	c := &FirewallsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60293	c.project = project
60294	c.firewall = firewall
60295	return c
60296}
60297
60298// RequestId sets the optional parameter "requestId": An optional
60299// request ID to identify requests. Specify a unique request ID so that
60300// if you must retry your request, the server will know to ignore the
60301// request if it has already been completed.
60302//
60303// For example, consider a situation where you make an initial request
60304// and the request times out. If you make the request again with the
60305// same request ID, the server can check if original operation with the
60306// same request ID was received, and if so, will ignore the second
60307// request. This prevents clients from accidentally creating duplicate
60308// commitments.
60309//
60310// The request ID must be a valid UUID with the exception that zero UUID
60311// is not supported (00000000-0000-0000-0000-000000000000).
60312func (c *FirewallsDeleteCall) RequestId(requestId string) *FirewallsDeleteCall {
60313	c.urlParams_.Set("requestId", requestId)
60314	return c
60315}
60316
60317// Fields allows partial responses to be retrieved. See
60318// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60319// for more information.
60320func (c *FirewallsDeleteCall) Fields(s ...googleapi.Field) *FirewallsDeleteCall {
60321	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60322	return c
60323}
60324
60325// Context sets the context to be used in this call's Do method. Any
60326// pending HTTP request will be aborted if the provided context is
60327// canceled.
60328func (c *FirewallsDeleteCall) Context(ctx context.Context) *FirewallsDeleteCall {
60329	c.ctx_ = ctx
60330	return c
60331}
60332
60333// Header returns an http.Header that can be modified by the caller to
60334// add HTTP headers to the request.
60335func (c *FirewallsDeleteCall) Header() http.Header {
60336	if c.header_ == nil {
60337		c.header_ = make(http.Header)
60338	}
60339	return c.header_
60340}
60341
60342func (c *FirewallsDeleteCall) doRequest(alt string) (*http.Response, error) {
60343	reqHeaders := make(http.Header)
60344	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
60345	for k, v := range c.header_ {
60346		reqHeaders[k] = v
60347	}
60348	reqHeaders.Set("User-Agent", c.s.userAgent())
60349	var body io.Reader = nil
60350	c.urlParams_.Set("alt", alt)
60351	c.urlParams_.Set("prettyPrint", "false")
60352	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
60353	urls += "?" + c.urlParams_.Encode()
60354	req, err := http.NewRequest("DELETE", urls, body)
60355	if err != nil {
60356		return nil, err
60357	}
60358	req.Header = reqHeaders
60359	googleapi.Expand(req.URL, map[string]string{
60360		"project":  c.project,
60361		"firewall": c.firewall,
60362	})
60363	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60364}
60365
60366// Do executes the "compute.firewalls.delete" call.
60367// Exactly one of *Operation or error will be non-nil. Any non-2xx
60368// status code is an error. Response headers are in either
60369// *Operation.ServerResponse.Header or (if a response was returned at
60370// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60371// to check whether the returned error was because
60372// http.StatusNotModified was returned.
60373func (c *FirewallsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60374	gensupport.SetOptions(c.urlParams_, opts...)
60375	res, err := c.doRequest("json")
60376	if res != nil && res.StatusCode == http.StatusNotModified {
60377		if res.Body != nil {
60378			res.Body.Close()
60379		}
60380		return nil, &googleapi.Error{
60381			Code:   res.StatusCode,
60382			Header: res.Header,
60383		}
60384	}
60385	if err != nil {
60386		return nil, err
60387	}
60388	defer googleapi.CloseBody(res)
60389	if err := googleapi.CheckResponse(res); err != nil {
60390		return nil, err
60391	}
60392	ret := &Operation{
60393		ServerResponse: googleapi.ServerResponse{
60394			Header:         res.Header,
60395			HTTPStatusCode: res.StatusCode,
60396		},
60397	}
60398	target := &ret
60399	if err := gensupport.DecodeResponse(target, res); err != nil {
60400		return nil, err
60401	}
60402	return ret, nil
60403	// {
60404	//   "description": "Deletes the specified firewall.",
60405	//   "httpMethod": "DELETE",
60406	//   "id": "compute.firewalls.delete",
60407	//   "parameterOrder": [
60408	//     "project",
60409	//     "firewall"
60410	//   ],
60411	//   "parameters": {
60412	//     "firewall": {
60413	//       "description": "Name of the firewall rule to delete.",
60414	//       "location": "path",
60415	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60416	//       "required": true,
60417	//       "type": "string"
60418	//     },
60419	//     "project": {
60420	//       "description": "Project ID for this request.",
60421	//       "location": "path",
60422	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60423	//       "required": true,
60424	//       "type": "string"
60425	//     },
60426	//     "requestId": {
60427	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60428	//       "location": "query",
60429	//       "type": "string"
60430	//     }
60431	//   },
60432	//   "path": "{project}/global/firewalls/{firewall}",
60433	//   "response": {
60434	//     "$ref": "Operation"
60435	//   },
60436	//   "scopes": [
60437	//     "https://www.googleapis.com/auth/cloud-platform",
60438	//     "https://www.googleapis.com/auth/compute"
60439	//   ]
60440	// }
60441
60442}
60443
60444// method id "compute.firewalls.get":
60445
60446type FirewallsGetCall struct {
60447	s            *Service
60448	project      string
60449	firewall     string
60450	urlParams_   gensupport.URLParams
60451	ifNoneMatch_ string
60452	ctx_         context.Context
60453	header_      http.Header
60454}
60455
60456// Get: Returns the specified firewall.
60457// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/get
60458func (r *FirewallsService) Get(project string, firewall string) *FirewallsGetCall {
60459	c := &FirewallsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60460	c.project = project
60461	c.firewall = firewall
60462	return c
60463}
60464
60465// Fields allows partial responses to be retrieved. See
60466// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60467// for more information.
60468func (c *FirewallsGetCall) Fields(s ...googleapi.Field) *FirewallsGetCall {
60469	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60470	return c
60471}
60472
60473// IfNoneMatch sets the optional parameter which makes the operation
60474// fail if the object's ETag matches the given value. This is useful for
60475// getting updates only after the object has changed since the last
60476// request. Use googleapi.IsNotModified to check whether the response
60477// error from Do is the result of In-None-Match.
60478func (c *FirewallsGetCall) IfNoneMatch(entityTag string) *FirewallsGetCall {
60479	c.ifNoneMatch_ = entityTag
60480	return c
60481}
60482
60483// Context sets the context to be used in this call's Do method. Any
60484// pending HTTP request will be aborted if the provided context is
60485// canceled.
60486func (c *FirewallsGetCall) Context(ctx context.Context) *FirewallsGetCall {
60487	c.ctx_ = ctx
60488	return c
60489}
60490
60491// Header returns an http.Header that can be modified by the caller to
60492// add HTTP headers to the request.
60493func (c *FirewallsGetCall) Header() http.Header {
60494	if c.header_ == nil {
60495		c.header_ = make(http.Header)
60496	}
60497	return c.header_
60498}
60499
60500func (c *FirewallsGetCall) doRequest(alt string) (*http.Response, error) {
60501	reqHeaders := make(http.Header)
60502	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
60503	for k, v := range c.header_ {
60504		reqHeaders[k] = v
60505	}
60506	reqHeaders.Set("User-Agent", c.s.userAgent())
60507	if c.ifNoneMatch_ != "" {
60508		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
60509	}
60510	var body io.Reader = nil
60511	c.urlParams_.Set("alt", alt)
60512	c.urlParams_.Set("prettyPrint", "false")
60513	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
60514	urls += "?" + c.urlParams_.Encode()
60515	req, err := http.NewRequest("GET", urls, body)
60516	if err != nil {
60517		return nil, err
60518	}
60519	req.Header = reqHeaders
60520	googleapi.Expand(req.URL, map[string]string{
60521		"project":  c.project,
60522		"firewall": c.firewall,
60523	})
60524	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60525}
60526
60527// Do executes the "compute.firewalls.get" call.
60528// Exactly one of *Firewall or error will be non-nil. Any non-2xx status
60529// code is an error. Response headers are in either
60530// *Firewall.ServerResponse.Header or (if a response was returned at
60531// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60532// to check whether the returned error was because
60533// http.StatusNotModified was returned.
60534func (c *FirewallsGetCall) Do(opts ...googleapi.CallOption) (*Firewall, error) {
60535	gensupport.SetOptions(c.urlParams_, opts...)
60536	res, err := c.doRequest("json")
60537	if res != nil && res.StatusCode == http.StatusNotModified {
60538		if res.Body != nil {
60539			res.Body.Close()
60540		}
60541		return nil, &googleapi.Error{
60542			Code:   res.StatusCode,
60543			Header: res.Header,
60544		}
60545	}
60546	if err != nil {
60547		return nil, err
60548	}
60549	defer googleapi.CloseBody(res)
60550	if err := googleapi.CheckResponse(res); err != nil {
60551		return nil, err
60552	}
60553	ret := &Firewall{
60554		ServerResponse: googleapi.ServerResponse{
60555			Header:         res.Header,
60556			HTTPStatusCode: res.StatusCode,
60557		},
60558	}
60559	target := &ret
60560	if err := gensupport.DecodeResponse(target, res); err != nil {
60561		return nil, err
60562	}
60563	return ret, nil
60564	// {
60565	//   "description": "Returns the specified firewall.",
60566	//   "httpMethod": "GET",
60567	//   "id": "compute.firewalls.get",
60568	//   "parameterOrder": [
60569	//     "project",
60570	//     "firewall"
60571	//   ],
60572	//   "parameters": {
60573	//     "firewall": {
60574	//       "description": "Name of the firewall rule to return.",
60575	//       "location": "path",
60576	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60577	//       "required": true,
60578	//       "type": "string"
60579	//     },
60580	//     "project": {
60581	//       "description": "Project ID for this request.",
60582	//       "location": "path",
60583	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60584	//       "required": true,
60585	//       "type": "string"
60586	//     }
60587	//   },
60588	//   "path": "{project}/global/firewalls/{firewall}",
60589	//   "response": {
60590	//     "$ref": "Firewall"
60591	//   },
60592	//   "scopes": [
60593	//     "https://www.googleapis.com/auth/cloud-platform",
60594	//     "https://www.googleapis.com/auth/compute",
60595	//     "https://www.googleapis.com/auth/compute.readonly"
60596	//   ]
60597	// }
60598
60599}
60600
60601// method id "compute.firewalls.insert":
60602
60603type FirewallsInsertCall struct {
60604	s          *Service
60605	project    string
60606	firewall   *Firewall
60607	urlParams_ gensupport.URLParams
60608	ctx_       context.Context
60609	header_    http.Header
60610}
60611
60612// Insert: Creates a firewall rule in the specified project using the
60613// data included in the request.
60614// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/insert
60615func (r *FirewallsService) Insert(project string, firewall *Firewall) *FirewallsInsertCall {
60616	c := &FirewallsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60617	c.project = project
60618	c.firewall = firewall
60619	return c
60620}
60621
60622// RequestId sets the optional parameter "requestId": An optional
60623// request ID to identify requests. Specify a unique request ID so that
60624// if you must retry your request, the server will know to ignore the
60625// request if it has already been completed.
60626//
60627// For example, consider a situation where you make an initial request
60628// and the request times out. If you make the request again with the
60629// same request ID, the server can check if original operation with the
60630// same request ID was received, and if so, will ignore the second
60631// request. This prevents clients from accidentally creating duplicate
60632// commitments.
60633//
60634// The request ID must be a valid UUID with the exception that zero UUID
60635// is not supported (00000000-0000-0000-0000-000000000000).
60636func (c *FirewallsInsertCall) RequestId(requestId string) *FirewallsInsertCall {
60637	c.urlParams_.Set("requestId", requestId)
60638	return c
60639}
60640
60641// Fields allows partial responses to be retrieved. See
60642// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60643// for more information.
60644func (c *FirewallsInsertCall) Fields(s ...googleapi.Field) *FirewallsInsertCall {
60645	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60646	return c
60647}
60648
60649// Context sets the context to be used in this call's Do method. Any
60650// pending HTTP request will be aborted if the provided context is
60651// canceled.
60652func (c *FirewallsInsertCall) Context(ctx context.Context) *FirewallsInsertCall {
60653	c.ctx_ = ctx
60654	return c
60655}
60656
60657// Header returns an http.Header that can be modified by the caller to
60658// add HTTP headers to the request.
60659func (c *FirewallsInsertCall) Header() http.Header {
60660	if c.header_ == nil {
60661		c.header_ = make(http.Header)
60662	}
60663	return c.header_
60664}
60665
60666func (c *FirewallsInsertCall) doRequest(alt string) (*http.Response, error) {
60667	reqHeaders := make(http.Header)
60668	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
60669	for k, v := range c.header_ {
60670		reqHeaders[k] = v
60671	}
60672	reqHeaders.Set("User-Agent", c.s.userAgent())
60673	var body io.Reader = nil
60674	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall)
60675	if err != nil {
60676		return nil, err
60677	}
60678	reqHeaders.Set("Content-Type", "application/json")
60679	c.urlParams_.Set("alt", alt)
60680	c.urlParams_.Set("prettyPrint", "false")
60681	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls")
60682	urls += "?" + c.urlParams_.Encode()
60683	req, err := http.NewRequest("POST", urls, body)
60684	if err != nil {
60685		return nil, err
60686	}
60687	req.Header = reqHeaders
60688	googleapi.Expand(req.URL, map[string]string{
60689		"project": c.project,
60690	})
60691	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60692}
60693
60694// Do executes the "compute.firewalls.insert" call.
60695// Exactly one of *Operation or error will be non-nil. Any non-2xx
60696// status code is an error. Response headers are in either
60697// *Operation.ServerResponse.Header or (if a response was returned at
60698// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60699// to check whether the returned error was because
60700// http.StatusNotModified was returned.
60701func (c *FirewallsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60702	gensupport.SetOptions(c.urlParams_, opts...)
60703	res, err := c.doRequest("json")
60704	if res != nil && res.StatusCode == http.StatusNotModified {
60705		if res.Body != nil {
60706			res.Body.Close()
60707		}
60708		return nil, &googleapi.Error{
60709			Code:   res.StatusCode,
60710			Header: res.Header,
60711		}
60712	}
60713	if err != nil {
60714		return nil, err
60715	}
60716	defer googleapi.CloseBody(res)
60717	if err := googleapi.CheckResponse(res); err != nil {
60718		return nil, err
60719	}
60720	ret := &Operation{
60721		ServerResponse: googleapi.ServerResponse{
60722			Header:         res.Header,
60723			HTTPStatusCode: res.StatusCode,
60724		},
60725	}
60726	target := &ret
60727	if err := gensupport.DecodeResponse(target, res); err != nil {
60728		return nil, err
60729	}
60730	return ret, nil
60731	// {
60732	//   "description": "Creates a firewall rule in the specified project using the data included in the request.",
60733	//   "httpMethod": "POST",
60734	//   "id": "compute.firewalls.insert",
60735	//   "parameterOrder": [
60736	//     "project"
60737	//   ],
60738	//   "parameters": {
60739	//     "project": {
60740	//       "description": "Project ID for this request.",
60741	//       "location": "path",
60742	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60743	//       "required": true,
60744	//       "type": "string"
60745	//     },
60746	//     "requestId": {
60747	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60748	//       "location": "query",
60749	//       "type": "string"
60750	//     }
60751	//   },
60752	//   "path": "{project}/global/firewalls",
60753	//   "request": {
60754	//     "$ref": "Firewall"
60755	//   },
60756	//   "response": {
60757	//     "$ref": "Operation"
60758	//   },
60759	//   "scopes": [
60760	//     "https://www.googleapis.com/auth/cloud-platform",
60761	//     "https://www.googleapis.com/auth/compute"
60762	//   ]
60763	// }
60764
60765}
60766
60767// method id "compute.firewalls.list":
60768
60769type FirewallsListCall struct {
60770	s            *Service
60771	project      string
60772	urlParams_   gensupport.URLParams
60773	ifNoneMatch_ string
60774	ctx_         context.Context
60775	header_      http.Header
60776}
60777
60778// List: Retrieves the list of firewall rules available to the specified
60779// project.
60780// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/list
60781func (r *FirewallsService) List(project string) *FirewallsListCall {
60782	c := &FirewallsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60783	c.project = project
60784	return c
60785}
60786
60787// Filter sets the optional parameter "filter": A filter expression that
60788// filters resources listed in the response. The expression must specify
60789// the field name, a comparison operator, and the value that you want to
60790// use for filtering. The value must be a string, a number, or a
60791// boolean. The comparison operator must be either =, !=, >, or <.
60792//
60793// For example, if you are filtering Compute Engine instances, you can
60794// exclude instances named example-instance by specifying name !=
60795// example-instance.
60796//
60797// You can also filter nested fields. For example, you could specify
60798// scheduling.automaticRestart = false to include instances only if they
60799// are not scheduled for automatic restarts. You can use filtering on
60800// nested fields to filter based on resource labels.
60801//
60802// To filter on multiple expressions, provide each separate expression
60803// within parentheses. For example, (scheduling.automaticRestart = true)
60804// (cpuPlatform = "Intel Skylake"). By default, each expression is an
60805// AND expression. However, you can include AND and OR expressions
60806// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
60807// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
60808// true).
60809func (c *FirewallsListCall) Filter(filter string) *FirewallsListCall {
60810	c.urlParams_.Set("filter", filter)
60811	return c
60812}
60813
60814// MaxResults sets the optional parameter "maxResults": The maximum
60815// number of results per page that should be returned. If the number of
60816// available results is larger than maxResults, Compute Engine returns a
60817// nextPageToken that can be used to get the next page of results in
60818// subsequent list requests. Acceptable values are 0 to 500, inclusive.
60819// (Default: 500)
60820func (c *FirewallsListCall) MaxResults(maxResults int64) *FirewallsListCall {
60821	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
60822	return c
60823}
60824
60825// OrderBy sets the optional parameter "orderBy": Sorts list results by
60826// a certain order. By default, results are returned in alphanumerical
60827// order based on the resource name.
60828//
60829// You can also sort results in descending order based on the creation
60830// timestamp using orderBy="creationTimestamp desc". This sorts results
60831// based on the creationTimestamp field in reverse chronological order
60832// (newest result first). Use this to sort resources like operations so
60833// that the newest operation is returned first.
60834//
60835// Currently, only sorting by name or creationTimestamp desc is
60836// supported.
60837func (c *FirewallsListCall) OrderBy(orderBy string) *FirewallsListCall {
60838	c.urlParams_.Set("orderBy", orderBy)
60839	return c
60840}
60841
60842// PageToken sets the optional parameter "pageToken": Specifies a page
60843// token to use. Set pageToken to the nextPageToken returned by a
60844// previous list request to get the next page of results.
60845func (c *FirewallsListCall) PageToken(pageToken string) *FirewallsListCall {
60846	c.urlParams_.Set("pageToken", pageToken)
60847	return c
60848}
60849
60850// Fields allows partial responses to be retrieved. See
60851// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60852// for more information.
60853func (c *FirewallsListCall) Fields(s ...googleapi.Field) *FirewallsListCall {
60854	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60855	return c
60856}
60857
60858// IfNoneMatch sets the optional parameter which makes the operation
60859// fail if the object's ETag matches the given value. This is useful for
60860// getting updates only after the object has changed since the last
60861// request. Use googleapi.IsNotModified to check whether the response
60862// error from Do is the result of In-None-Match.
60863func (c *FirewallsListCall) IfNoneMatch(entityTag string) *FirewallsListCall {
60864	c.ifNoneMatch_ = entityTag
60865	return c
60866}
60867
60868// Context sets the context to be used in this call's Do method. Any
60869// pending HTTP request will be aborted if the provided context is
60870// canceled.
60871func (c *FirewallsListCall) Context(ctx context.Context) *FirewallsListCall {
60872	c.ctx_ = ctx
60873	return c
60874}
60875
60876// Header returns an http.Header that can be modified by the caller to
60877// add HTTP headers to the request.
60878func (c *FirewallsListCall) Header() http.Header {
60879	if c.header_ == nil {
60880		c.header_ = make(http.Header)
60881	}
60882	return c.header_
60883}
60884
60885func (c *FirewallsListCall) doRequest(alt string) (*http.Response, error) {
60886	reqHeaders := make(http.Header)
60887	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
60888	for k, v := range c.header_ {
60889		reqHeaders[k] = v
60890	}
60891	reqHeaders.Set("User-Agent", c.s.userAgent())
60892	if c.ifNoneMatch_ != "" {
60893		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
60894	}
60895	var body io.Reader = nil
60896	c.urlParams_.Set("alt", alt)
60897	c.urlParams_.Set("prettyPrint", "false")
60898	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls")
60899	urls += "?" + c.urlParams_.Encode()
60900	req, err := http.NewRequest("GET", urls, body)
60901	if err != nil {
60902		return nil, err
60903	}
60904	req.Header = reqHeaders
60905	googleapi.Expand(req.URL, map[string]string{
60906		"project": c.project,
60907	})
60908	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60909}
60910
60911// Do executes the "compute.firewalls.list" call.
60912// Exactly one of *FirewallList or error will be non-nil. Any non-2xx
60913// status code is an error. Response headers are in either
60914// *FirewallList.ServerResponse.Header or (if a response was returned at
60915// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60916// to check whether the returned error was because
60917// http.StatusNotModified was returned.
60918func (c *FirewallsListCall) Do(opts ...googleapi.CallOption) (*FirewallList, error) {
60919	gensupport.SetOptions(c.urlParams_, opts...)
60920	res, err := c.doRequest("json")
60921	if res != nil && res.StatusCode == http.StatusNotModified {
60922		if res.Body != nil {
60923			res.Body.Close()
60924		}
60925		return nil, &googleapi.Error{
60926			Code:   res.StatusCode,
60927			Header: res.Header,
60928		}
60929	}
60930	if err != nil {
60931		return nil, err
60932	}
60933	defer googleapi.CloseBody(res)
60934	if err := googleapi.CheckResponse(res); err != nil {
60935		return nil, err
60936	}
60937	ret := &FirewallList{
60938		ServerResponse: googleapi.ServerResponse{
60939			Header:         res.Header,
60940			HTTPStatusCode: res.StatusCode,
60941		},
60942	}
60943	target := &ret
60944	if err := gensupport.DecodeResponse(target, res); err != nil {
60945		return nil, err
60946	}
60947	return ret, nil
60948	// {
60949	//   "description": "Retrieves the list of firewall rules available to the specified project.",
60950	//   "httpMethod": "GET",
60951	//   "id": "compute.firewalls.list",
60952	//   "parameterOrder": [
60953	//     "project"
60954	//   ],
60955	//   "parameters": {
60956	//     "filter": {
60957	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
60958	//       "location": "query",
60959	//       "type": "string"
60960	//     },
60961	//     "maxResults": {
60962	//       "default": "500",
60963	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
60964	//       "format": "uint32",
60965	//       "location": "query",
60966	//       "minimum": "0",
60967	//       "type": "integer"
60968	//     },
60969	//     "orderBy": {
60970	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
60971	//       "location": "query",
60972	//       "type": "string"
60973	//     },
60974	//     "pageToken": {
60975	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
60976	//       "location": "query",
60977	//       "type": "string"
60978	//     },
60979	//     "project": {
60980	//       "description": "Project ID for this request.",
60981	//       "location": "path",
60982	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60983	//       "required": true,
60984	//       "type": "string"
60985	//     }
60986	//   },
60987	//   "path": "{project}/global/firewalls",
60988	//   "response": {
60989	//     "$ref": "FirewallList"
60990	//   },
60991	//   "scopes": [
60992	//     "https://www.googleapis.com/auth/cloud-platform",
60993	//     "https://www.googleapis.com/auth/compute",
60994	//     "https://www.googleapis.com/auth/compute.readonly"
60995	//   ]
60996	// }
60997
60998}
60999
61000// Pages invokes f for each page of results.
61001// A non-nil error returned from f will halt the iteration.
61002// The provided context supersedes any context provided to the Context method.
61003func (c *FirewallsListCall) Pages(ctx context.Context, f func(*FirewallList) error) error {
61004	c.ctx_ = ctx
61005	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
61006	for {
61007		x, err := c.Do()
61008		if err != nil {
61009			return err
61010		}
61011		if err := f(x); err != nil {
61012			return err
61013		}
61014		if x.NextPageToken == "" {
61015			return nil
61016		}
61017		c.PageToken(x.NextPageToken)
61018	}
61019}
61020
61021// method id "compute.firewalls.patch":
61022
61023type FirewallsPatchCall struct {
61024	s          *Service
61025	project    string
61026	firewall   string
61027	firewall2  *Firewall
61028	urlParams_ gensupport.URLParams
61029	ctx_       context.Context
61030	header_    http.Header
61031}
61032
61033// Patch: Updates the specified firewall rule with the data included in
61034// the request. This method supports PATCH semantics and uses the JSON
61035// merge patch format and processing rules.
61036// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/patch
61037func (r *FirewallsService) Patch(project string, firewall string, firewall2 *Firewall) *FirewallsPatchCall {
61038	c := &FirewallsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61039	c.project = project
61040	c.firewall = firewall
61041	c.firewall2 = firewall2
61042	return c
61043}
61044
61045// RequestId sets the optional parameter "requestId": An optional
61046// request ID to identify requests. Specify a unique request ID so that
61047// if you must retry your request, the server will know to ignore the
61048// request if it has already been completed.
61049//
61050// For example, consider a situation where you make an initial request
61051// and the request times out. If you make the request again with the
61052// same request ID, the server can check if original operation with the
61053// same request ID was received, and if so, will ignore the second
61054// request. This prevents clients from accidentally creating duplicate
61055// commitments.
61056//
61057// The request ID must be a valid UUID with the exception that zero UUID
61058// is not supported (00000000-0000-0000-0000-000000000000).
61059func (c *FirewallsPatchCall) RequestId(requestId string) *FirewallsPatchCall {
61060	c.urlParams_.Set("requestId", requestId)
61061	return c
61062}
61063
61064// Fields allows partial responses to be retrieved. See
61065// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61066// for more information.
61067func (c *FirewallsPatchCall) Fields(s ...googleapi.Field) *FirewallsPatchCall {
61068	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61069	return c
61070}
61071
61072// Context sets the context to be used in this call's Do method. Any
61073// pending HTTP request will be aborted if the provided context is
61074// canceled.
61075func (c *FirewallsPatchCall) Context(ctx context.Context) *FirewallsPatchCall {
61076	c.ctx_ = ctx
61077	return c
61078}
61079
61080// Header returns an http.Header that can be modified by the caller to
61081// add HTTP headers to the request.
61082func (c *FirewallsPatchCall) Header() http.Header {
61083	if c.header_ == nil {
61084		c.header_ = make(http.Header)
61085	}
61086	return c.header_
61087}
61088
61089func (c *FirewallsPatchCall) doRequest(alt string) (*http.Response, error) {
61090	reqHeaders := make(http.Header)
61091	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
61092	for k, v := range c.header_ {
61093		reqHeaders[k] = v
61094	}
61095	reqHeaders.Set("User-Agent", c.s.userAgent())
61096	var body io.Reader = nil
61097	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2)
61098	if err != nil {
61099		return nil, err
61100	}
61101	reqHeaders.Set("Content-Type", "application/json")
61102	c.urlParams_.Set("alt", alt)
61103	c.urlParams_.Set("prettyPrint", "false")
61104	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
61105	urls += "?" + c.urlParams_.Encode()
61106	req, err := http.NewRequest("PATCH", urls, body)
61107	if err != nil {
61108		return nil, err
61109	}
61110	req.Header = reqHeaders
61111	googleapi.Expand(req.URL, map[string]string{
61112		"project":  c.project,
61113		"firewall": c.firewall,
61114	})
61115	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61116}
61117
61118// Do executes the "compute.firewalls.patch" call.
61119// Exactly one of *Operation or error will be non-nil. Any non-2xx
61120// status code is an error. Response headers are in either
61121// *Operation.ServerResponse.Header or (if a response was returned at
61122// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61123// to check whether the returned error was because
61124// http.StatusNotModified was returned.
61125func (c *FirewallsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61126	gensupport.SetOptions(c.urlParams_, opts...)
61127	res, err := c.doRequest("json")
61128	if res != nil && res.StatusCode == http.StatusNotModified {
61129		if res.Body != nil {
61130			res.Body.Close()
61131		}
61132		return nil, &googleapi.Error{
61133			Code:   res.StatusCode,
61134			Header: res.Header,
61135		}
61136	}
61137	if err != nil {
61138		return nil, err
61139	}
61140	defer googleapi.CloseBody(res)
61141	if err := googleapi.CheckResponse(res); err != nil {
61142		return nil, err
61143	}
61144	ret := &Operation{
61145		ServerResponse: googleapi.ServerResponse{
61146			Header:         res.Header,
61147			HTTPStatusCode: res.StatusCode,
61148		},
61149	}
61150	target := &ret
61151	if err := gensupport.DecodeResponse(target, res); err != nil {
61152		return nil, err
61153	}
61154	return ret, nil
61155	// {
61156	//   "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.",
61157	//   "httpMethod": "PATCH",
61158	//   "id": "compute.firewalls.patch",
61159	//   "parameterOrder": [
61160	//     "project",
61161	//     "firewall"
61162	//   ],
61163	//   "parameters": {
61164	//     "firewall": {
61165	//       "description": "Name of the firewall rule to patch.",
61166	//       "location": "path",
61167	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61168	//       "required": true,
61169	//       "type": "string"
61170	//     },
61171	//     "project": {
61172	//       "description": "Project ID for this request.",
61173	//       "location": "path",
61174	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61175	//       "required": true,
61176	//       "type": "string"
61177	//     },
61178	//     "requestId": {
61179	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61180	//       "location": "query",
61181	//       "type": "string"
61182	//     }
61183	//   },
61184	//   "path": "{project}/global/firewalls/{firewall}",
61185	//   "request": {
61186	//     "$ref": "Firewall"
61187	//   },
61188	//   "response": {
61189	//     "$ref": "Operation"
61190	//   },
61191	//   "scopes": [
61192	//     "https://www.googleapis.com/auth/cloud-platform",
61193	//     "https://www.googleapis.com/auth/compute"
61194	//   ]
61195	// }
61196
61197}
61198
61199// method id "compute.firewalls.testIamPermissions":
61200
61201type FirewallsTestIamPermissionsCall struct {
61202	s                      *Service
61203	project                string
61204	resource               string
61205	testpermissionsrequest *TestPermissionsRequest
61206	urlParams_             gensupport.URLParams
61207	ctx_                   context.Context
61208	header_                http.Header
61209}
61210
61211// TestIamPermissions: Returns permissions that a caller has on the
61212// specified resource.
61213func (r *FirewallsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *FirewallsTestIamPermissionsCall {
61214	c := &FirewallsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61215	c.project = project
61216	c.resource = resource
61217	c.testpermissionsrequest = testpermissionsrequest
61218	return c
61219}
61220
61221// Fields allows partial responses to be retrieved. See
61222// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61223// for more information.
61224func (c *FirewallsTestIamPermissionsCall) Fields(s ...googleapi.Field) *FirewallsTestIamPermissionsCall {
61225	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61226	return c
61227}
61228
61229// Context sets the context to be used in this call's Do method. Any
61230// pending HTTP request will be aborted if the provided context is
61231// canceled.
61232func (c *FirewallsTestIamPermissionsCall) Context(ctx context.Context) *FirewallsTestIamPermissionsCall {
61233	c.ctx_ = ctx
61234	return c
61235}
61236
61237// Header returns an http.Header that can be modified by the caller to
61238// add HTTP headers to the request.
61239func (c *FirewallsTestIamPermissionsCall) Header() http.Header {
61240	if c.header_ == nil {
61241		c.header_ = make(http.Header)
61242	}
61243	return c.header_
61244}
61245
61246func (c *FirewallsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
61247	reqHeaders := make(http.Header)
61248	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
61249	for k, v := range c.header_ {
61250		reqHeaders[k] = v
61251	}
61252	reqHeaders.Set("User-Agent", c.s.userAgent())
61253	var body io.Reader = nil
61254	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
61255	if err != nil {
61256		return nil, err
61257	}
61258	reqHeaders.Set("Content-Type", "application/json")
61259	c.urlParams_.Set("alt", alt)
61260	c.urlParams_.Set("prettyPrint", "false")
61261	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{resource}/testIamPermissions")
61262	urls += "?" + c.urlParams_.Encode()
61263	req, err := http.NewRequest("POST", urls, body)
61264	if err != nil {
61265		return nil, err
61266	}
61267	req.Header = reqHeaders
61268	googleapi.Expand(req.URL, map[string]string{
61269		"project":  c.project,
61270		"resource": c.resource,
61271	})
61272	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61273}
61274
61275// Do executes the "compute.firewalls.testIamPermissions" call.
61276// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
61277// non-2xx status code is an error. Response headers are in either
61278// *TestPermissionsResponse.ServerResponse.Header or (if a response was
61279// returned at all) in error.(*googleapi.Error).Header. Use
61280// googleapi.IsNotModified to check whether the returned error was
61281// because http.StatusNotModified was returned.
61282func (c *FirewallsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
61283	gensupport.SetOptions(c.urlParams_, opts...)
61284	res, err := c.doRequest("json")
61285	if res != nil && res.StatusCode == http.StatusNotModified {
61286		if res.Body != nil {
61287			res.Body.Close()
61288		}
61289		return nil, &googleapi.Error{
61290			Code:   res.StatusCode,
61291			Header: res.Header,
61292		}
61293	}
61294	if err != nil {
61295		return nil, err
61296	}
61297	defer googleapi.CloseBody(res)
61298	if err := googleapi.CheckResponse(res); err != nil {
61299		return nil, err
61300	}
61301	ret := &TestPermissionsResponse{
61302		ServerResponse: googleapi.ServerResponse{
61303			Header:         res.Header,
61304			HTTPStatusCode: res.StatusCode,
61305		},
61306	}
61307	target := &ret
61308	if err := gensupport.DecodeResponse(target, res); err != nil {
61309		return nil, err
61310	}
61311	return ret, nil
61312	// {
61313	//   "description": "Returns permissions that a caller has on the specified resource.",
61314	//   "httpMethod": "POST",
61315	//   "id": "compute.firewalls.testIamPermissions",
61316	//   "parameterOrder": [
61317	//     "project",
61318	//     "resource"
61319	//   ],
61320	//   "parameters": {
61321	//     "project": {
61322	//       "description": "Project ID for this request.",
61323	//       "location": "path",
61324	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61325	//       "required": true,
61326	//       "type": "string"
61327	//     },
61328	//     "resource": {
61329	//       "description": "Name or id of the resource for this request.",
61330	//       "location": "path",
61331	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61332	//       "required": true,
61333	//       "type": "string"
61334	//     }
61335	//   },
61336	//   "path": "{project}/global/firewalls/{resource}/testIamPermissions",
61337	//   "request": {
61338	//     "$ref": "TestPermissionsRequest"
61339	//   },
61340	//   "response": {
61341	//     "$ref": "TestPermissionsResponse"
61342	//   },
61343	//   "scopes": [
61344	//     "https://www.googleapis.com/auth/cloud-platform",
61345	//     "https://www.googleapis.com/auth/compute",
61346	//     "https://www.googleapis.com/auth/compute.readonly"
61347	//   ]
61348	// }
61349
61350}
61351
61352// method id "compute.firewalls.update":
61353
61354type FirewallsUpdateCall struct {
61355	s          *Service
61356	project    string
61357	firewall   string
61358	firewall2  *Firewall
61359	urlParams_ gensupport.URLParams
61360	ctx_       context.Context
61361	header_    http.Header
61362}
61363
61364// Update: Updates the specified firewall rule with the data included in
61365// the request. Note that all fields will be updated if using PUT, even
61366// fields that are not specified. To update individual fields, please
61367// use PATCH instead.
61368// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/update
61369func (r *FirewallsService) Update(project string, firewall string, firewall2 *Firewall) *FirewallsUpdateCall {
61370	c := &FirewallsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61371	c.project = project
61372	c.firewall = firewall
61373	c.firewall2 = firewall2
61374	return c
61375}
61376
61377// RequestId sets the optional parameter "requestId": An optional
61378// request ID to identify requests. Specify a unique request ID so that
61379// if you must retry your request, the server will know to ignore the
61380// request if it has already been completed.
61381//
61382// For example, consider a situation where you make an initial request
61383// and the request times out. If you make the request again with the
61384// same request ID, the server can check if original operation with the
61385// same request ID was received, and if so, will ignore the second
61386// request. This prevents clients from accidentally creating duplicate
61387// commitments.
61388//
61389// The request ID must be a valid UUID with the exception that zero UUID
61390// is not supported (00000000-0000-0000-0000-000000000000).
61391func (c *FirewallsUpdateCall) RequestId(requestId string) *FirewallsUpdateCall {
61392	c.urlParams_.Set("requestId", requestId)
61393	return c
61394}
61395
61396// Fields allows partial responses to be retrieved. See
61397// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61398// for more information.
61399func (c *FirewallsUpdateCall) Fields(s ...googleapi.Field) *FirewallsUpdateCall {
61400	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61401	return c
61402}
61403
61404// Context sets the context to be used in this call's Do method. Any
61405// pending HTTP request will be aborted if the provided context is
61406// canceled.
61407func (c *FirewallsUpdateCall) Context(ctx context.Context) *FirewallsUpdateCall {
61408	c.ctx_ = ctx
61409	return c
61410}
61411
61412// Header returns an http.Header that can be modified by the caller to
61413// add HTTP headers to the request.
61414func (c *FirewallsUpdateCall) Header() http.Header {
61415	if c.header_ == nil {
61416		c.header_ = make(http.Header)
61417	}
61418	return c.header_
61419}
61420
61421func (c *FirewallsUpdateCall) doRequest(alt string) (*http.Response, error) {
61422	reqHeaders := make(http.Header)
61423	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
61424	for k, v := range c.header_ {
61425		reqHeaders[k] = v
61426	}
61427	reqHeaders.Set("User-Agent", c.s.userAgent())
61428	var body io.Reader = nil
61429	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2)
61430	if err != nil {
61431		return nil, err
61432	}
61433	reqHeaders.Set("Content-Type", "application/json")
61434	c.urlParams_.Set("alt", alt)
61435	c.urlParams_.Set("prettyPrint", "false")
61436	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
61437	urls += "?" + c.urlParams_.Encode()
61438	req, err := http.NewRequest("PUT", urls, body)
61439	if err != nil {
61440		return nil, err
61441	}
61442	req.Header = reqHeaders
61443	googleapi.Expand(req.URL, map[string]string{
61444		"project":  c.project,
61445		"firewall": c.firewall,
61446	})
61447	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61448}
61449
61450// Do executes the "compute.firewalls.update" call.
61451// Exactly one of *Operation or error will be non-nil. Any non-2xx
61452// status code is an error. Response headers are in either
61453// *Operation.ServerResponse.Header or (if a response was returned at
61454// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61455// to check whether the returned error was because
61456// http.StatusNotModified was returned.
61457func (c *FirewallsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61458	gensupport.SetOptions(c.urlParams_, opts...)
61459	res, err := c.doRequest("json")
61460	if res != nil && res.StatusCode == http.StatusNotModified {
61461		if res.Body != nil {
61462			res.Body.Close()
61463		}
61464		return nil, &googleapi.Error{
61465			Code:   res.StatusCode,
61466			Header: res.Header,
61467		}
61468	}
61469	if err != nil {
61470		return nil, err
61471	}
61472	defer googleapi.CloseBody(res)
61473	if err := googleapi.CheckResponse(res); err != nil {
61474		return nil, err
61475	}
61476	ret := &Operation{
61477		ServerResponse: googleapi.ServerResponse{
61478			Header:         res.Header,
61479			HTTPStatusCode: res.StatusCode,
61480		},
61481	}
61482	target := &ret
61483	if err := gensupport.DecodeResponse(target, res); err != nil {
61484		return nil, err
61485	}
61486	return ret, nil
61487	// {
61488	//   "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.",
61489	//   "httpMethod": "PUT",
61490	//   "id": "compute.firewalls.update",
61491	//   "parameterOrder": [
61492	//     "project",
61493	//     "firewall"
61494	//   ],
61495	//   "parameters": {
61496	//     "firewall": {
61497	//       "description": "Name of the firewall rule to update.",
61498	//       "location": "path",
61499	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61500	//       "required": true,
61501	//       "type": "string"
61502	//     },
61503	//     "project": {
61504	//       "description": "Project ID for this request.",
61505	//       "location": "path",
61506	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61507	//       "required": true,
61508	//       "type": "string"
61509	//     },
61510	//     "requestId": {
61511	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61512	//       "location": "query",
61513	//       "type": "string"
61514	//     }
61515	//   },
61516	//   "path": "{project}/global/firewalls/{firewall}",
61517	//   "request": {
61518	//     "$ref": "Firewall"
61519	//   },
61520	//   "response": {
61521	//     "$ref": "Operation"
61522	//   },
61523	//   "scopes": [
61524	//     "https://www.googleapis.com/auth/cloud-platform",
61525	//     "https://www.googleapis.com/auth/compute"
61526	//   ]
61527	// }
61528
61529}
61530
61531// method id "compute.forwardingRules.aggregatedList":
61532
61533type ForwardingRulesAggregatedListCall struct {
61534	s            *Service
61535	project      string
61536	urlParams_   gensupport.URLParams
61537	ifNoneMatch_ string
61538	ctx_         context.Context
61539	header_      http.Header
61540}
61541
61542// AggregatedList: Retrieves an aggregated list of forwarding rules.
61543// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/aggregatedList
61544func (r *ForwardingRulesService) AggregatedList(project string) *ForwardingRulesAggregatedListCall {
61545	c := &ForwardingRulesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61546	c.project = project
61547	return c
61548}
61549
61550// Filter sets the optional parameter "filter": A filter expression that
61551// filters resources listed in the response. The expression must specify
61552// the field name, a comparison operator, and the value that you want to
61553// use for filtering. The value must be a string, a number, or a
61554// boolean. The comparison operator must be either =, !=, >, or <.
61555//
61556// For example, if you are filtering Compute Engine instances, you can
61557// exclude instances named example-instance by specifying name !=
61558// example-instance.
61559//
61560// You can also filter nested fields. For example, you could specify
61561// scheduling.automaticRestart = false to include instances only if they
61562// are not scheduled for automatic restarts. You can use filtering on
61563// nested fields to filter based on resource labels.
61564//
61565// To filter on multiple expressions, provide each separate expression
61566// within parentheses. For example, (scheduling.automaticRestart = true)
61567// (cpuPlatform = "Intel Skylake"). By default, each expression is an
61568// AND expression. However, you can include AND and OR expressions
61569// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
61570// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
61571// true).
61572func (c *ForwardingRulesAggregatedListCall) Filter(filter string) *ForwardingRulesAggregatedListCall {
61573	c.urlParams_.Set("filter", filter)
61574	return c
61575}
61576
61577// IncludeAllScopes sets the optional parameter "includeAllScopes":
61578// Indicates whether every visible scope for each scope type (zone,
61579// region, global) should be included in the response. For new resource
61580// types added after this field, the flag has no effect as new resource
61581// types will always include every visible scope for each scope type in
61582// response. For resource types which predate this field, if this flag
61583// is omitted or false, only scopes of the scope types where the
61584// resource type is expected to be found will be included.
61585func (c *ForwardingRulesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ForwardingRulesAggregatedListCall {
61586	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
61587	return c
61588}
61589
61590// MaxResults sets the optional parameter "maxResults": The maximum
61591// number of results per page that should be returned. If the number of
61592// available results is larger than maxResults, Compute Engine returns a
61593// nextPageToken that can be used to get the next page of results in
61594// subsequent list requests. Acceptable values are 0 to 500, inclusive.
61595// (Default: 500)
61596func (c *ForwardingRulesAggregatedListCall) MaxResults(maxResults int64) *ForwardingRulesAggregatedListCall {
61597	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
61598	return c
61599}
61600
61601// OrderBy sets the optional parameter "orderBy": Sorts list results by
61602// a certain order. By default, results are returned in alphanumerical
61603// order based on the resource name.
61604//
61605// You can also sort results in descending order based on the creation
61606// timestamp using orderBy="creationTimestamp desc". This sorts results
61607// based on the creationTimestamp field in reverse chronological order
61608// (newest result first). Use this to sort resources like operations so
61609// that the newest operation is returned first.
61610//
61611// Currently, only sorting by name or creationTimestamp desc is
61612// supported.
61613func (c *ForwardingRulesAggregatedListCall) OrderBy(orderBy string) *ForwardingRulesAggregatedListCall {
61614	c.urlParams_.Set("orderBy", orderBy)
61615	return c
61616}
61617
61618// PageToken sets the optional parameter "pageToken": Specifies a page
61619// token to use. Set pageToken to the nextPageToken returned by a
61620// previous list request to get the next page of results.
61621func (c *ForwardingRulesAggregatedListCall) PageToken(pageToken string) *ForwardingRulesAggregatedListCall {
61622	c.urlParams_.Set("pageToken", pageToken)
61623	return c
61624}
61625
61626// Fields allows partial responses to be retrieved. See
61627// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61628// for more information.
61629func (c *ForwardingRulesAggregatedListCall) Fields(s ...googleapi.Field) *ForwardingRulesAggregatedListCall {
61630	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61631	return c
61632}
61633
61634// IfNoneMatch sets the optional parameter which makes the operation
61635// fail if the object's ETag matches the given value. This is useful for
61636// getting updates only after the object has changed since the last
61637// request. Use googleapi.IsNotModified to check whether the response
61638// error from Do is the result of In-None-Match.
61639func (c *ForwardingRulesAggregatedListCall) IfNoneMatch(entityTag string) *ForwardingRulesAggregatedListCall {
61640	c.ifNoneMatch_ = entityTag
61641	return c
61642}
61643
61644// Context sets the context to be used in this call's Do method. Any
61645// pending HTTP request will be aborted if the provided context is
61646// canceled.
61647func (c *ForwardingRulesAggregatedListCall) Context(ctx context.Context) *ForwardingRulesAggregatedListCall {
61648	c.ctx_ = ctx
61649	return c
61650}
61651
61652// Header returns an http.Header that can be modified by the caller to
61653// add HTTP headers to the request.
61654func (c *ForwardingRulesAggregatedListCall) Header() http.Header {
61655	if c.header_ == nil {
61656		c.header_ = make(http.Header)
61657	}
61658	return c.header_
61659}
61660
61661func (c *ForwardingRulesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
61662	reqHeaders := make(http.Header)
61663	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
61664	for k, v := range c.header_ {
61665		reqHeaders[k] = v
61666	}
61667	reqHeaders.Set("User-Agent", c.s.userAgent())
61668	if c.ifNoneMatch_ != "" {
61669		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
61670	}
61671	var body io.Reader = nil
61672	c.urlParams_.Set("alt", alt)
61673	c.urlParams_.Set("prettyPrint", "false")
61674	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/forwardingRules")
61675	urls += "?" + c.urlParams_.Encode()
61676	req, err := http.NewRequest("GET", urls, body)
61677	if err != nil {
61678		return nil, err
61679	}
61680	req.Header = reqHeaders
61681	googleapi.Expand(req.URL, map[string]string{
61682		"project": c.project,
61683	})
61684	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61685}
61686
61687// Do executes the "compute.forwardingRules.aggregatedList" call.
61688// Exactly one of *ForwardingRuleAggregatedList or error will be
61689// non-nil. Any non-2xx status code is an error. Response headers are in
61690// either *ForwardingRuleAggregatedList.ServerResponse.Header or (if a
61691// response was returned at all) in error.(*googleapi.Error).Header. Use
61692// googleapi.IsNotModified to check whether the returned error was
61693// because http.StatusNotModified was returned.
61694func (c *ForwardingRulesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleAggregatedList, error) {
61695	gensupport.SetOptions(c.urlParams_, opts...)
61696	res, err := c.doRequest("json")
61697	if res != nil && res.StatusCode == http.StatusNotModified {
61698		if res.Body != nil {
61699			res.Body.Close()
61700		}
61701		return nil, &googleapi.Error{
61702			Code:   res.StatusCode,
61703			Header: res.Header,
61704		}
61705	}
61706	if err != nil {
61707		return nil, err
61708	}
61709	defer googleapi.CloseBody(res)
61710	if err := googleapi.CheckResponse(res); err != nil {
61711		return nil, err
61712	}
61713	ret := &ForwardingRuleAggregatedList{
61714		ServerResponse: googleapi.ServerResponse{
61715			Header:         res.Header,
61716			HTTPStatusCode: res.StatusCode,
61717		},
61718	}
61719	target := &ret
61720	if err := gensupport.DecodeResponse(target, res); err != nil {
61721		return nil, err
61722	}
61723	return ret, nil
61724	// {
61725	//   "description": "Retrieves an aggregated list of forwarding rules.",
61726	//   "httpMethod": "GET",
61727	//   "id": "compute.forwardingRules.aggregatedList",
61728	//   "parameterOrder": [
61729	//     "project"
61730	//   ],
61731	//   "parameters": {
61732	//     "filter": {
61733	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
61734	//       "location": "query",
61735	//       "type": "string"
61736	//     },
61737	//     "includeAllScopes": {
61738	//       "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.",
61739	//       "location": "query",
61740	//       "type": "boolean"
61741	//     },
61742	//     "maxResults": {
61743	//       "default": "500",
61744	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
61745	//       "format": "uint32",
61746	//       "location": "query",
61747	//       "minimum": "0",
61748	//       "type": "integer"
61749	//     },
61750	//     "orderBy": {
61751	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
61752	//       "location": "query",
61753	//       "type": "string"
61754	//     },
61755	//     "pageToken": {
61756	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
61757	//       "location": "query",
61758	//       "type": "string"
61759	//     },
61760	//     "project": {
61761	//       "description": "Project ID for this request.",
61762	//       "location": "path",
61763	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61764	//       "required": true,
61765	//       "type": "string"
61766	//     }
61767	//   },
61768	//   "path": "{project}/aggregated/forwardingRules",
61769	//   "response": {
61770	//     "$ref": "ForwardingRuleAggregatedList"
61771	//   },
61772	//   "scopes": [
61773	//     "https://www.googleapis.com/auth/cloud-platform",
61774	//     "https://www.googleapis.com/auth/compute",
61775	//     "https://www.googleapis.com/auth/compute.readonly"
61776	//   ]
61777	// }
61778
61779}
61780
61781// Pages invokes f for each page of results.
61782// A non-nil error returned from f will halt the iteration.
61783// The provided context supersedes any context provided to the Context method.
61784func (c *ForwardingRulesAggregatedListCall) Pages(ctx context.Context, f func(*ForwardingRuleAggregatedList) error) error {
61785	c.ctx_ = ctx
61786	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
61787	for {
61788		x, err := c.Do()
61789		if err != nil {
61790			return err
61791		}
61792		if err := f(x); err != nil {
61793			return err
61794		}
61795		if x.NextPageToken == "" {
61796			return nil
61797		}
61798		c.PageToken(x.NextPageToken)
61799	}
61800}
61801
61802// method id "compute.forwardingRules.delete":
61803
61804type ForwardingRulesDeleteCall struct {
61805	s              *Service
61806	project        string
61807	region         string
61808	forwardingRule string
61809	urlParams_     gensupport.URLParams
61810	ctx_           context.Context
61811	header_        http.Header
61812}
61813
61814// Delete: Deletes the specified ForwardingRule resource.
61815// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/delete
61816func (r *ForwardingRulesService) Delete(project string, region string, forwardingRule string) *ForwardingRulesDeleteCall {
61817	c := &ForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61818	c.project = project
61819	c.region = region
61820	c.forwardingRule = forwardingRule
61821	return c
61822}
61823
61824// RequestId sets the optional parameter "requestId": An optional
61825// request ID to identify requests. Specify a unique request ID so that
61826// if you must retry your request, the server will know to ignore the
61827// request if it has already been completed.
61828//
61829// For example, consider a situation where you make an initial request
61830// and the request times out. If you make the request again with the
61831// same request ID, the server can check if original operation with the
61832// same request ID was received, and if so, will ignore the second
61833// request. This prevents clients from accidentally creating duplicate
61834// commitments.
61835//
61836// The request ID must be a valid UUID with the exception that zero UUID
61837// is not supported (00000000-0000-0000-0000-000000000000).
61838func (c *ForwardingRulesDeleteCall) RequestId(requestId string) *ForwardingRulesDeleteCall {
61839	c.urlParams_.Set("requestId", requestId)
61840	return c
61841}
61842
61843// Fields allows partial responses to be retrieved. See
61844// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61845// for more information.
61846func (c *ForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *ForwardingRulesDeleteCall {
61847	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61848	return c
61849}
61850
61851// Context sets the context to be used in this call's Do method. Any
61852// pending HTTP request will be aborted if the provided context is
61853// canceled.
61854func (c *ForwardingRulesDeleteCall) Context(ctx context.Context) *ForwardingRulesDeleteCall {
61855	c.ctx_ = ctx
61856	return c
61857}
61858
61859// Header returns an http.Header that can be modified by the caller to
61860// add HTTP headers to the request.
61861func (c *ForwardingRulesDeleteCall) Header() http.Header {
61862	if c.header_ == nil {
61863		c.header_ = make(http.Header)
61864	}
61865	return c.header_
61866}
61867
61868func (c *ForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) {
61869	reqHeaders := make(http.Header)
61870	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
61871	for k, v := range c.header_ {
61872		reqHeaders[k] = v
61873	}
61874	reqHeaders.Set("User-Agent", c.s.userAgent())
61875	var body io.Reader = nil
61876	c.urlParams_.Set("alt", alt)
61877	c.urlParams_.Set("prettyPrint", "false")
61878	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}")
61879	urls += "?" + c.urlParams_.Encode()
61880	req, err := http.NewRequest("DELETE", urls, body)
61881	if err != nil {
61882		return nil, err
61883	}
61884	req.Header = reqHeaders
61885	googleapi.Expand(req.URL, map[string]string{
61886		"project":        c.project,
61887		"region":         c.region,
61888		"forwardingRule": c.forwardingRule,
61889	})
61890	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61891}
61892
61893// Do executes the "compute.forwardingRules.delete" call.
61894// Exactly one of *Operation or error will be non-nil. Any non-2xx
61895// status code is an error. Response headers are in either
61896// *Operation.ServerResponse.Header or (if a response was returned at
61897// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61898// to check whether the returned error was because
61899// http.StatusNotModified was returned.
61900func (c *ForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61901	gensupport.SetOptions(c.urlParams_, opts...)
61902	res, err := c.doRequest("json")
61903	if res != nil && res.StatusCode == http.StatusNotModified {
61904		if res.Body != nil {
61905			res.Body.Close()
61906		}
61907		return nil, &googleapi.Error{
61908			Code:   res.StatusCode,
61909			Header: res.Header,
61910		}
61911	}
61912	if err != nil {
61913		return nil, err
61914	}
61915	defer googleapi.CloseBody(res)
61916	if err := googleapi.CheckResponse(res); err != nil {
61917		return nil, err
61918	}
61919	ret := &Operation{
61920		ServerResponse: googleapi.ServerResponse{
61921			Header:         res.Header,
61922			HTTPStatusCode: res.StatusCode,
61923		},
61924	}
61925	target := &ret
61926	if err := gensupport.DecodeResponse(target, res); err != nil {
61927		return nil, err
61928	}
61929	return ret, nil
61930	// {
61931	//   "description": "Deletes the specified ForwardingRule resource.",
61932	//   "httpMethod": "DELETE",
61933	//   "id": "compute.forwardingRules.delete",
61934	//   "parameterOrder": [
61935	//     "project",
61936	//     "region",
61937	//     "forwardingRule"
61938	//   ],
61939	//   "parameters": {
61940	//     "forwardingRule": {
61941	//       "description": "Name of the ForwardingRule resource to delete.",
61942	//       "location": "path",
61943	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61944	//       "required": true,
61945	//       "type": "string"
61946	//     },
61947	//     "project": {
61948	//       "description": "Project ID for this request.",
61949	//       "location": "path",
61950	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61951	//       "required": true,
61952	//       "type": "string"
61953	//     },
61954	//     "region": {
61955	//       "description": "Name of the region scoping this request.",
61956	//       "location": "path",
61957	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61958	//       "required": true,
61959	//       "type": "string"
61960	//     },
61961	//     "requestId": {
61962	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61963	//       "location": "query",
61964	//       "type": "string"
61965	//     }
61966	//   },
61967	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}",
61968	//   "response": {
61969	//     "$ref": "Operation"
61970	//   },
61971	//   "scopes": [
61972	//     "https://www.googleapis.com/auth/cloud-platform",
61973	//     "https://www.googleapis.com/auth/compute"
61974	//   ]
61975	// }
61976
61977}
61978
61979// method id "compute.forwardingRules.get":
61980
61981type ForwardingRulesGetCall struct {
61982	s              *Service
61983	project        string
61984	region         string
61985	forwardingRule string
61986	urlParams_     gensupport.URLParams
61987	ifNoneMatch_   string
61988	ctx_           context.Context
61989	header_        http.Header
61990}
61991
61992// Get: Returns the specified ForwardingRule resource.
61993// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/get
61994func (r *ForwardingRulesService) Get(project string, region string, forwardingRule string) *ForwardingRulesGetCall {
61995	c := &ForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61996	c.project = project
61997	c.region = region
61998	c.forwardingRule = forwardingRule
61999	return c
62000}
62001
62002// Fields allows partial responses to be retrieved. See
62003// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62004// for more information.
62005func (c *ForwardingRulesGetCall) Fields(s ...googleapi.Field) *ForwardingRulesGetCall {
62006	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62007	return c
62008}
62009
62010// IfNoneMatch sets the optional parameter which makes the operation
62011// fail if the object's ETag matches the given value. This is useful for
62012// getting updates only after the object has changed since the last
62013// request. Use googleapi.IsNotModified to check whether the response
62014// error from Do is the result of In-None-Match.
62015func (c *ForwardingRulesGetCall) IfNoneMatch(entityTag string) *ForwardingRulesGetCall {
62016	c.ifNoneMatch_ = entityTag
62017	return c
62018}
62019
62020// Context sets the context to be used in this call's Do method. Any
62021// pending HTTP request will be aborted if the provided context is
62022// canceled.
62023func (c *ForwardingRulesGetCall) Context(ctx context.Context) *ForwardingRulesGetCall {
62024	c.ctx_ = ctx
62025	return c
62026}
62027
62028// Header returns an http.Header that can be modified by the caller to
62029// add HTTP headers to the request.
62030func (c *ForwardingRulesGetCall) Header() http.Header {
62031	if c.header_ == nil {
62032		c.header_ = make(http.Header)
62033	}
62034	return c.header_
62035}
62036
62037func (c *ForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) {
62038	reqHeaders := make(http.Header)
62039	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
62040	for k, v := range c.header_ {
62041		reqHeaders[k] = v
62042	}
62043	reqHeaders.Set("User-Agent", c.s.userAgent())
62044	if c.ifNoneMatch_ != "" {
62045		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
62046	}
62047	var body io.Reader = nil
62048	c.urlParams_.Set("alt", alt)
62049	c.urlParams_.Set("prettyPrint", "false")
62050	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}")
62051	urls += "?" + c.urlParams_.Encode()
62052	req, err := http.NewRequest("GET", urls, body)
62053	if err != nil {
62054		return nil, err
62055	}
62056	req.Header = reqHeaders
62057	googleapi.Expand(req.URL, map[string]string{
62058		"project":        c.project,
62059		"region":         c.region,
62060		"forwardingRule": c.forwardingRule,
62061	})
62062	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62063}
62064
62065// Do executes the "compute.forwardingRules.get" call.
62066// Exactly one of *ForwardingRule or error will be non-nil. Any non-2xx
62067// status code is an error. Response headers are in either
62068// *ForwardingRule.ServerResponse.Header or (if a response was returned
62069// at all) in error.(*googleapi.Error).Header. Use
62070// googleapi.IsNotModified to check whether the returned error was
62071// because http.StatusNotModified was returned.
62072func (c *ForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) {
62073	gensupport.SetOptions(c.urlParams_, opts...)
62074	res, err := c.doRequest("json")
62075	if res != nil && res.StatusCode == http.StatusNotModified {
62076		if res.Body != nil {
62077			res.Body.Close()
62078		}
62079		return nil, &googleapi.Error{
62080			Code:   res.StatusCode,
62081			Header: res.Header,
62082		}
62083	}
62084	if err != nil {
62085		return nil, err
62086	}
62087	defer googleapi.CloseBody(res)
62088	if err := googleapi.CheckResponse(res); err != nil {
62089		return nil, err
62090	}
62091	ret := &ForwardingRule{
62092		ServerResponse: googleapi.ServerResponse{
62093			Header:         res.Header,
62094			HTTPStatusCode: res.StatusCode,
62095		},
62096	}
62097	target := &ret
62098	if err := gensupport.DecodeResponse(target, res); err != nil {
62099		return nil, err
62100	}
62101	return ret, nil
62102	// {
62103	//   "description": "Returns the specified ForwardingRule resource.",
62104	//   "httpMethod": "GET",
62105	//   "id": "compute.forwardingRules.get",
62106	//   "parameterOrder": [
62107	//     "project",
62108	//     "region",
62109	//     "forwardingRule"
62110	//   ],
62111	//   "parameters": {
62112	//     "forwardingRule": {
62113	//       "description": "Name of the ForwardingRule resource to return.",
62114	//       "location": "path",
62115	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62116	//       "required": true,
62117	//       "type": "string"
62118	//     },
62119	//     "project": {
62120	//       "description": "Project ID for this request.",
62121	//       "location": "path",
62122	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62123	//       "required": true,
62124	//       "type": "string"
62125	//     },
62126	//     "region": {
62127	//       "description": "Name of the region scoping this request.",
62128	//       "location": "path",
62129	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
62130	//       "required": true,
62131	//       "type": "string"
62132	//     }
62133	//   },
62134	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}",
62135	//   "response": {
62136	//     "$ref": "ForwardingRule"
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// method id "compute.forwardingRules.insert":
62148
62149type ForwardingRulesInsertCall struct {
62150	s              *Service
62151	project        string
62152	region         string
62153	forwardingrule *ForwardingRule
62154	urlParams_     gensupport.URLParams
62155	ctx_           context.Context
62156	header_        http.Header
62157}
62158
62159// Insert: Creates a ForwardingRule resource in the specified project
62160// and region using the data included in the request.
62161// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/insert
62162func (r *ForwardingRulesService) Insert(project string, region string, forwardingrule *ForwardingRule) *ForwardingRulesInsertCall {
62163	c := &ForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62164	c.project = project
62165	c.region = region
62166	c.forwardingrule = forwardingrule
62167	return c
62168}
62169
62170// RequestId sets the optional parameter "requestId": An optional
62171// request ID to identify requests. Specify a unique request ID so that
62172// if you must retry your request, the server will know to ignore the
62173// request if it has already been completed.
62174//
62175// For example, consider a situation where you make an initial request
62176// and the request times out. If you make the request again with the
62177// same request ID, the server can check if original operation with the
62178// same request ID was received, and if so, will ignore the second
62179// request. This prevents clients from accidentally creating duplicate
62180// commitments.
62181//
62182// The request ID must be a valid UUID with the exception that zero UUID
62183// is not supported (00000000-0000-0000-0000-000000000000).
62184func (c *ForwardingRulesInsertCall) RequestId(requestId string) *ForwardingRulesInsertCall {
62185	c.urlParams_.Set("requestId", requestId)
62186	return c
62187}
62188
62189// Fields allows partial responses to be retrieved. See
62190// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62191// for more information.
62192func (c *ForwardingRulesInsertCall) Fields(s ...googleapi.Field) *ForwardingRulesInsertCall {
62193	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62194	return c
62195}
62196
62197// Context sets the context to be used in this call's Do method. Any
62198// pending HTTP request will be aborted if the provided context is
62199// canceled.
62200func (c *ForwardingRulesInsertCall) Context(ctx context.Context) *ForwardingRulesInsertCall {
62201	c.ctx_ = ctx
62202	return c
62203}
62204
62205// Header returns an http.Header that can be modified by the caller to
62206// add HTTP headers to the request.
62207func (c *ForwardingRulesInsertCall) Header() http.Header {
62208	if c.header_ == nil {
62209		c.header_ = make(http.Header)
62210	}
62211	return c.header_
62212}
62213
62214func (c *ForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) {
62215	reqHeaders := make(http.Header)
62216	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
62217	for k, v := range c.header_ {
62218		reqHeaders[k] = v
62219	}
62220	reqHeaders.Set("User-Agent", c.s.userAgent())
62221	var body io.Reader = nil
62222	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
62223	if err != nil {
62224		return nil, err
62225	}
62226	reqHeaders.Set("Content-Type", "application/json")
62227	c.urlParams_.Set("alt", alt)
62228	c.urlParams_.Set("prettyPrint", "false")
62229	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules")
62230	urls += "?" + c.urlParams_.Encode()
62231	req, err := http.NewRequest("POST", urls, body)
62232	if err != nil {
62233		return nil, err
62234	}
62235	req.Header = reqHeaders
62236	googleapi.Expand(req.URL, map[string]string{
62237		"project": c.project,
62238		"region":  c.region,
62239	})
62240	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62241}
62242
62243// Do executes the "compute.forwardingRules.insert" call.
62244// Exactly one of *Operation or error will be non-nil. Any non-2xx
62245// status code is an error. Response headers are in either
62246// *Operation.ServerResponse.Header or (if a response was returned at
62247// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62248// to check whether the returned error was because
62249// http.StatusNotModified was returned.
62250func (c *ForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62251	gensupport.SetOptions(c.urlParams_, opts...)
62252	res, err := c.doRequest("json")
62253	if res != nil && res.StatusCode == http.StatusNotModified {
62254		if res.Body != nil {
62255			res.Body.Close()
62256		}
62257		return nil, &googleapi.Error{
62258			Code:   res.StatusCode,
62259			Header: res.Header,
62260		}
62261	}
62262	if err != nil {
62263		return nil, err
62264	}
62265	defer googleapi.CloseBody(res)
62266	if err := googleapi.CheckResponse(res); err != nil {
62267		return nil, err
62268	}
62269	ret := &Operation{
62270		ServerResponse: googleapi.ServerResponse{
62271			Header:         res.Header,
62272			HTTPStatusCode: res.StatusCode,
62273		},
62274	}
62275	target := &ret
62276	if err := gensupport.DecodeResponse(target, res); err != nil {
62277		return nil, err
62278	}
62279	return ret, nil
62280	// {
62281	//   "description": "Creates a ForwardingRule resource in the specified project and region using the data included in the request.",
62282	//   "httpMethod": "POST",
62283	//   "id": "compute.forwardingRules.insert",
62284	//   "parameterOrder": [
62285	//     "project",
62286	//     "region"
62287	//   ],
62288	//   "parameters": {
62289	//     "project": {
62290	//       "description": "Project ID for this request.",
62291	//       "location": "path",
62292	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62293	//       "required": true,
62294	//       "type": "string"
62295	//     },
62296	//     "region": {
62297	//       "description": "Name of the region scoping this request.",
62298	//       "location": "path",
62299	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
62300	//       "required": true,
62301	//       "type": "string"
62302	//     },
62303	//     "requestId": {
62304	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62305	//       "location": "query",
62306	//       "type": "string"
62307	//     }
62308	//   },
62309	//   "path": "{project}/regions/{region}/forwardingRules",
62310	//   "request": {
62311	//     "$ref": "ForwardingRule"
62312	//   },
62313	//   "response": {
62314	//     "$ref": "Operation"
62315	//   },
62316	//   "scopes": [
62317	//     "https://www.googleapis.com/auth/cloud-platform",
62318	//     "https://www.googleapis.com/auth/compute"
62319	//   ]
62320	// }
62321
62322}
62323
62324// method id "compute.forwardingRules.list":
62325
62326type ForwardingRulesListCall struct {
62327	s            *Service
62328	project      string
62329	region       string
62330	urlParams_   gensupport.URLParams
62331	ifNoneMatch_ string
62332	ctx_         context.Context
62333	header_      http.Header
62334}
62335
62336// List: Retrieves a list of ForwardingRule resources available to the
62337// specified project and region.
62338// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/list
62339func (r *ForwardingRulesService) List(project string, region string) *ForwardingRulesListCall {
62340	c := &ForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62341	c.project = project
62342	c.region = region
62343	return c
62344}
62345
62346// Filter sets the optional parameter "filter": A filter expression that
62347// filters resources listed in the response. The expression must specify
62348// the field name, a comparison operator, and the value that you want to
62349// use for filtering. The value must be a string, a number, or a
62350// boolean. The comparison operator must be either =, !=, >, or <.
62351//
62352// For example, if you are filtering Compute Engine instances, you can
62353// exclude instances named example-instance by specifying name !=
62354// example-instance.
62355//
62356// You can also filter nested fields. For example, you could specify
62357// scheduling.automaticRestart = false to include instances only if they
62358// are not scheduled for automatic restarts. You can use filtering on
62359// nested fields to filter based on resource labels.
62360//
62361// To filter on multiple expressions, provide each separate expression
62362// within parentheses. For example, (scheduling.automaticRestart = true)
62363// (cpuPlatform = "Intel Skylake"). By default, each expression is an
62364// AND expression. However, you can include AND and OR expressions
62365// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
62366// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
62367// true).
62368func (c *ForwardingRulesListCall) Filter(filter string) *ForwardingRulesListCall {
62369	c.urlParams_.Set("filter", filter)
62370	return c
62371}
62372
62373// MaxResults sets the optional parameter "maxResults": The maximum
62374// number of results per page that should be returned. If the number of
62375// available results is larger than maxResults, Compute Engine returns a
62376// nextPageToken that can be used to get the next page of results in
62377// subsequent list requests. Acceptable values are 0 to 500, inclusive.
62378// (Default: 500)
62379func (c *ForwardingRulesListCall) MaxResults(maxResults int64) *ForwardingRulesListCall {
62380	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
62381	return c
62382}
62383
62384// OrderBy sets the optional parameter "orderBy": Sorts list results by
62385// a certain order. By default, results are returned in alphanumerical
62386// order based on the resource name.
62387//
62388// You can also sort results in descending order based on the creation
62389// timestamp using orderBy="creationTimestamp desc". This sorts results
62390// based on the creationTimestamp field in reverse chronological order
62391// (newest result first). Use this to sort resources like operations so
62392// that the newest operation is returned first.
62393//
62394// Currently, only sorting by name or creationTimestamp desc is
62395// supported.
62396func (c *ForwardingRulesListCall) OrderBy(orderBy string) *ForwardingRulesListCall {
62397	c.urlParams_.Set("orderBy", orderBy)
62398	return c
62399}
62400
62401// PageToken sets the optional parameter "pageToken": Specifies a page
62402// token to use. Set pageToken to the nextPageToken returned by a
62403// previous list request to get the next page of results.
62404func (c *ForwardingRulesListCall) PageToken(pageToken string) *ForwardingRulesListCall {
62405	c.urlParams_.Set("pageToken", pageToken)
62406	return c
62407}
62408
62409// Fields allows partial responses to be retrieved. See
62410// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62411// for more information.
62412func (c *ForwardingRulesListCall) Fields(s ...googleapi.Field) *ForwardingRulesListCall {
62413	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62414	return c
62415}
62416
62417// IfNoneMatch sets the optional parameter which makes the operation
62418// fail if the object's ETag matches the given value. This is useful for
62419// getting updates only after the object has changed since the last
62420// request. Use googleapi.IsNotModified to check whether the response
62421// error from Do is the result of In-None-Match.
62422func (c *ForwardingRulesListCall) IfNoneMatch(entityTag string) *ForwardingRulesListCall {
62423	c.ifNoneMatch_ = entityTag
62424	return c
62425}
62426
62427// Context sets the context to be used in this call's Do method. Any
62428// pending HTTP request will be aborted if the provided context is
62429// canceled.
62430func (c *ForwardingRulesListCall) Context(ctx context.Context) *ForwardingRulesListCall {
62431	c.ctx_ = ctx
62432	return c
62433}
62434
62435// Header returns an http.Header that can be modified by the caller to
62436// add HTTP headers to the request.
62437func (c *ForwardingRulesListCall) Header() http.Header {
62438	if c.header_ == nil {
62439		c.header_ = make(http.Header)
62440	}
62441	return c.header_
62442}
62443
62444func (c *ForwardingRulesListCall) doRequest(alt string) (*http.Response, error) {
62445	reqHeaders := make(http.Header)
62446	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
62447	for k, v := range c.header_ {
62448		reqHeaders[k] = v
62449	}
62450	reqHeaders.Set("User-Agent", c.s.userAgent())
62451	if c.ifNoneMatch_ != "" {
62452		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
62453	}
62454	var body io.Reader = nil
62455	c.urlParams_.Set("alt", alt)
62456	c.urlParams_.Set("prettyPrint", "false")
62457	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules")
62458	urls += "?" + c.urlParams_.Encode()
62459	req, err := http.NewRequest("GET", urls, body)
62460	if err != nil {
62461		return nil, err
62462	}
62463	req.Header = reqHeaders
62464	googleapi.Expand(req.URL, map[string]string{
62465		"project": c.project,
62466		"region":  c.region,
62467	})
62468	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62469}
62470
62471// Do executes the "compute.forwardingRules.list" call.
62472// Exactly one of *ForwardingRuleList or error will be non-nil. Any
62473// non-2xx status code is an error. Response headers are in either
62474// *ForwardingRuleList.ServerResponse.Header or (if a response was
62475// returned at all) in error.(*googleapi.Error).Header. Use
62476// googleapi.IsNotModified to check whether the returned error was
62477// because http.StatusNotModified was returned.
62478func (c *ForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) {
62479	gensupport.SetOptions(c.urlParams_, opts...)
62480	res, err := c.doRequest("json")
62481	if res != nil && res.StatusCode == http.StatusNotModified {
62482		if res.Body != nil {
62483			res.Body.Close()
62484		}
62485		return nil, &googleapi.Error{
62486			Code:   res.StatusCode,
62487			Header: res.Header,
62488		}
62489	}
62490	if err != nil {
62491		return nil, err
62492	}
62493	defer googleapi.CloseBody(res)
62494	if err := googleapi.CheckResponse(res); err != nil {
62495		return nil, err
62496	}
62497	ret := &ForwardingRuleList{
62498		ServerResponse: googleapi.ServerResponse{
62499			Header:         res.Header,
62500			HTTPStatusCode: res.StatusCode,
62501		},
62502	}
62503	target := &ret
62504	if err := gensupport.DecodeResponse(target, res); err != nil {
62505		return nil, err
62506	}
62507	return ret, nil
62508	// {
62509	//   "description": "Retrieves a list of ForwardingRule resources available to the specified project and region.",
62510	//   "httpMethod": "GET",
62511	//   "id": "compute.forwardingRules.list",
62512	//   "parameterOrder": [
62513	//     "project",
62514	//     "region"
62515	//   ],
62516	//   "parameters": {
62517	//     "filter": {
62518	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
62519	//       "location": "query",
62520	//       "type": "string"
62521	//     },
62522	//     "maxResults": {
62523	//       "default": "500",
62524	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
62525	//       "format": "uint32",
62526	//       "location": "query",
62527	//       "minimum": "0",
62528	//       "type": "integer"
62529	//     },
62530	//     "orderBy": {
62531	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
62532	//       "location": "query",
62533	//       "type": "string"
62534	//     },
62535	//     "pageToken": {
62536	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
62537	//       "location": "query",
62538	//       "type": "string"
62539	//     },
62540	//     "project": {
62541	//       "description": "Project ID for this request.",
62542	//       "location": "path",
62543	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62544	//       "required": true,
62545	//       "type": "string"
62546	//     },
62547	//     "region": {
62548	//       "description": "Name of the region scoping this request.",
62549	//       "location": "path",
62550	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
62551	//       "required": true,
62552	//       "type": "string"
62553	//     }
62554	//   },
62555	//   "path": "{project}/regions/{region}/forwardingRules",
62556	//   "response": {
62557	//     "$ref": "ForwardingRuleList"
62558	//   },
62559	//   "scopes": [
62560	//     "https://www.googleapis.com/auth/cloud-platform",
62561	//     "https://www.googleapis.com/auth/compute",
62562	//     "https://www.googleapis.com/auth/compute.readonly"
62563	//   ]
62564	// }
62565
62566}
62567
62568// Pages invokes f for each page of results.
62569// A non-nil error returned from f will halt the iteration.
62570// The provided context supersedes any context provided to the Context method.
62571func (c *ForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error {
62572	c.ctx_ = ctx
62573	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
62574	for {
62575		x, err := c.Do()
62576		if err != nil {
62577			return err
62578		}
62579		if err := f(x); err != nil {
62580			return err
62581		}
62582		if x.NextPageToken == "" {
62583			return nil
62584		}
62585		c.PageToken(x.NextPageToken)
62586	}
62587}
62588
62589// method id "compute.forwardingRules.patch":
62590
62591type ForwardingRulesPatchCall struct {
62592	s              *Service
62593	project        string
62594	region         string
62595	forwardingRule string
62596	forwardingrule *ForwardingRule
62597	urlParams_     gensupport.URLParams
62598	ctx_           context.Context
62599	header_        http.Header
62600}
62601
62602// Patch: Updates the specified forwarding rule with the data included
62603// in the request. This method supports PATCH semantics and uses the
62604// JSON merge patch format and processing rules. Currently, you can only
62605// patch the network_tier field.
62606func (r *ForwardingRulesService) Patch(project string, region string, forwardingRule string, forwardingrule *ForwardingRule) *ForwardingRulesPatchCall {
62607	c := &ForwardingRulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62608	c.project = project
62609	c.region = region
62610	c.forwardingRule = forwardingRule
62611	c.forwardingrule = forwardingrule
62612	return c
62613}
62614
62615// RequestId sets the optional parameter "requestId": An optional
62616// request ID to identify requests. Specify a unique request ID so that
62617// if you must retry your request, the server will know to ignore the
62618// request if it has already been completed.
62619//
62620// For example, consider a situation where you make an initial request
62621// and the request times out. If you make the request again with the
62622// same request ID, the server can check if original operation with the
62623// same request ID was received, and if so, will ignore the second
62624// request. This prevents clients from accidentally creating duplicate
62625// commitments.
62626//
62627// The request ID must be a valid UUID with the exception that zero UUID
62628// is not supported (00000000-0000-0000-0000-000000000000).
62629func (c *ForwardingRulesPatchCall) RequestId(requestId string) *ForwardingRulesPatchCall {
62630	c.urlParams_.Set("requestId", requestId)
62631	return c
62632}
62633
62634// Fields allows partial responses to be retrieved. See
62635// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62636// for more information.
62637func (c *ForwardingRulesPatchCall) Fields(s ...googleapi.Field) *ForwardingRulesPatchCall {
62638	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62639	return c
62640}
62641
62642// Context sets the context to be used in this call's Do method. Any
62643// pending HTTP request will be aborted if the provided context is
62644// canceled.
62645func (c *ForwardingRulesPatchCall) Context(ctx context.Context) *ForwardingRulesPatchCall {
62646	c.ctx_ = ctx
62647	return c
62648}
62649
62650// Header returns an http.Header that can be modified by the caller to
62651// add HTTP headers to the request.
62652func (c *ForwardingRulesPatchCall) Header() http.Header {
62653	if c.header_ == nil {
62654		c.header_ = make(http.Header)
62655	}
62656	return c.header_
62657}
62658
62659func (c *ForwardingRulesPatchCall) doRequest(alt string) (*http.Response, error) {
62660	reqHeaders := make(http.Header)
62661	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
62662	for k, v := range c.header_ {
62663		reqHeaders[k] = v
62664	}
62665	reqHeaders.Set("User-Agent", c.s.userAgent())
62666	var body io.Reader = nil
62667	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
62668	if err != nil {
62669		return nil, err
62670	}
62671	reqHeaders.Set("Content-Type", "application/json")
62672	c.urlParams_.Set("alt", alt)
62673	c.urlParams_.Set("prettyPrint", "false")
62674	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}")
62675	urls += "?" + c.urlParams_.Encode()
62676	req, err := http.NewRequest("PATCH", urls, body)
62677	if err != nil {
62678		return nil, err
62679	}
62680	req.Header = reqHeaders
62681	googleapi.Expand(req.URL, map[string]string{
62682		"project":        c.project,
62683		"region":         c.region,
62684		"forwardingRule": c.forwardingRule,
62685	})
62686	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62687}
62688
62689// Do executes the "compute.forwardingRules.patch" call.
62690// Exactly one of *Operation or error will be non-nil. Any non-2xx
62691// status code is an error. Response headers are in either
62692// *Operation.ServerResponse.Header or (if a response was returned at
62693// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62694// to check whether the returned error was because
62695// http.StatusNotModified was returned.
62696func (c *ForwardingRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62697	gensupport.SetOptions(c.urlParams_, opts...)
62698	res, err := c.doRequest("json")
62699	if res != nil && res.StatusCode == http.StatusNotModified {
62700		if res.Body != nil {
62701			res.Body.Close()
62702		}
62703		return nil, &googleapi.Error{
62704			Code:   res.StatusCode,
62705			Header: res.Header,
62706		}
62707	}
62708	if err != nil {
62709		return nil, err
62710	}
62711	defer googleapi.CloseBody(res)
62712	if err := googleapi.CheckResponse(res); err != nil {
62713		return nil, err
62714	}
62715	ret := &Operation{
62716		ServerResponse: googleapi.ServerResponse{
62717			Header:         res.Header,
62718			HTTPStatusCode: res.StatusCode,
62719		},
62720	}
62721	target := &ret
62722	if err := gensupport.DecodeResponse(target, res); err != nil {
62723		return nil, err
62724	}
62725	return ret, nil
62726	// {
62727	//   "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.",
62728	//   "httpMethod": "PATCH",
62729	//   "id": "compute.forwardingRules.patch",
62730	//   "parameterOrder": [
62731	//     "project",
62732	//     "region",
62733	//     "forwardingRule"
62734	//   ],
62735	//   "parameters": {
62736	//     "forwardingRule": {
62737	//       "description": "Name of the ForwardingRule resource to patch.",
62738	//       "location": "path",
62739	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62740	//       "required": true,
62741	//       "type": "string"
62742	//     },
62743	//     "project": {
62744	//       "description": "Project ID for this request.",
62745	//       "location": "path",
62746	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62747	//       "required": true,
62748	//       "type": "string"
62749	//     },
62750	//     "region": {
62751	//       "description": "Name of the region scoping this request.",
62752	//       "location": "path",
62753	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
62754	//       "required": true,
62755	//       "type": "string"
62756	//     },
62757	//     "requestId": {
62758	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62759	//       "location": "query",
62760	//       "type": "string"
62761	//     }
62762	//   },
62763	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}",
62764	//   "request": {
62765	//     "$ref": "ForwardingRule"
62766	//   },
62767	//   "response": {
62768	//     "$ref": "Operation"
62769	//   },
62770	//   "scopes": [
62771	//     "https://www.googleapis.com/auth/cloud-platform",
62772	//     "https://www.googleapis.com/auth/compute"
62773	//   ]
62774	// }
62775
62776}
62777
62778// method id "compute.forwardingRules.setLabels":
62779
62780type ForwardingRulesSetLabelsCall struct {
62781	s                      *Service
62782	project                string
62783	region                 string
62784	resource               string
62785	regionsetlabelsrequest *RegionSetLabelsRequest
62786	urlParams_             gensupport.URLParams
62787	ctx_                   context.Context
62788	header_                http.Header
62789}
62790
62791// SetLabels: Sets the labels on the specified resource. To learn more
62792// about labels, read the Labeling Resources documentation.
62793func (r *ForwardingRulesService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *ForwardingRulesSetLabelsCall {
62794	c := &ForwardingRulesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62795	c.project = project
62796	c.region = region
62797	c.resource = resource
62798	c.regionsetlabelsrequest = regionsetlabelsrequest
62799	return c
62800}
62801
62802// RequestId sets the optional parameter "requestId": An optional
62803// request ID to identify requests. Specify a unique request ID so that
62804// if you must retry your request, the server will know to ignore the
62805// request if it has already been completed.
62806//
62807// For example, consider a situation where you make an initial request
62808// and the request times out. If you make the request again with the
62809// same request ID, the server can check if original operation with the
62810// same request ID was received, and if so, will ignore the second
62811// request. This prevents clients from accidentally creating duplicate
62812// commitments.
62813//
62814// The request ID must be a valid UUID with the exception that zero UUID
62815// is not supported (00000000-0000-0000-0000-000000000000).
62816func (c *ForwardingRulesSetLabelsCall) RequestId(requestId string) *ForwardingRulesSetLabelsCall {
62817	c.urlParams_.Set("requestId", requestId)
62818	return c
62819}
62820
62821// Fields allows partial responses to be retrieved. See
62822// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62823// for more information.
62824func (c *ForwardingRulesSetLabelsCall) Fields(s ...googleapi.Field) *ForwardingRulesSetLabelsCall {
62825	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62826	return c
62827}
62828
62829// Context sets the context to be used in this call's Do method. Any
62830// pending HTTP request will be aborted if the provided context is
62831// canceled.
62832func (c *ForwardingRulesSetLabelsCall) Context(ctx context.Context) *ForwardingRulesSetLabelsCall {
62833	c.ctx_ = ctx
62834	return c
62835}
62836
62837// Header returns an http.Header that can be modified by the caller to
62838// add HTTP headers to the request.
62839func (c *ForwardingRulesSetLabelsCall) Header() http.Header {
62840	if c.header_ == nil {
62841		c.header_ = make(http.Header)
62842	}
62843	return c.header_
62844}
62845
62846func (c *ForwardingRulesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
62847	reqHeaders := make(http.Header)
62848	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
62849	for k, v := range c.header_ {
62850		reqHeaders[k] = v
62851	}
62852	reqHeaders.Set("User-Agent", c.s.userAgent())
62853	var body io.Reader = nil
62854	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
62855	if err != nil {
62856		return nil, err
62857	}
62858	reqHeaders.Set("Content-Type", "application/json")
62859	c.urlParams_.Set("alt", alt)
62860	c.urlParams_.Set("prettyPrint", "false")
62861	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{resource}/setLabels")
62862	urls += "?" + c.urlParams_.Encode()
62863	req, err := http.NewRequest("POST", urls, body)
62864	if err != nil {
62865		return nil, err
62866	}
62867	req.Header = reqHeaders
62868	googleapi.Expand(req.URL, map[string]string{
62869		"project":  c.project,
62870		"region":   c.region,
62871		"resource": c.resource,
62872	})
62873	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62874}
62875
62876// Do executes the "compute.forwardingRules.setLabels" call.
62877// Exactly one of *Operation or error will be non-nil. Any non-2xx
62878// status code is an error. Response headers are in either
62879// *Operation.ServerResponse.Header or (if a response was returned at
62880// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62881// to check whether the returned error was because
62882// http.StatusNotModified was returned.
62883func (c *ForwardingRulesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62884	gensupport.SetOptions(c.urlParams_, opts...)
62885	res, err := c.doRequest("json")
62886	if res != nil && res.StatusCode == http.StatusNotModified {
62887		if res.Body != nil {
62888			res.Body.Close()
62889		}
62890		return nil, &googleapi.Error{
62891			Code:   res.StatusCode,
62892			Header: res.Header,
62893		}
62894	}
62895	if err != nil {
62896		return nil, err
62897	}
62898	defer googleapi.CloseBody(res)
62899	if err := googleapi.CheckResponse(res); err != nil {
62900		return nil, err
62901	}
62902	ret := &Operation{
62903		ServerResponse: googleapi.ServerResponse{
62904			Header:         res.Header,
62905			HTTPStatusCode: res.StatusCode,
62906		},
62907	}
62908	target := &ret
62909	if err := gensupport.DecodeResponse(target, res); err != nil {
62910		return nil, err
62911	}
62912	return ret, nil
62913	// {
62914	//   "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling Resources documentation.",
62915	//   "httpMethod": "POST",
62916	//   "id": "compute.forwardingRules.setLabels",
62917	//   "parameterOrder": [
62918	//     "project",
62919	//     "region",
62920	//     "resource"
62921	//   ],
62922	//   "parameters": {
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	//     "region": {
62931	//       "description": "The region for this request.",
62932	//       "location": "path",
62933	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
62934	//       "required": true,
62935	//       "type": "string"
62936	//     },
62937	//     "requestId": {
62938	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62939	//       "location": "query",
62940	//       "type": "string"
62941	//     },
62942	//     "resource": {
62943	//       "description": "Name or id of the resource for this request.",
62944	//       "location": "path",
62945	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62946	//       "required": true,
62947	//       "type": "string"
62948	//     }
62949	//   },
62950	//   "path": "{project}/regions/{region}/forwardingRules/{resource}/setLabels",
62951	//   "request": {
62952	//     "$ref": "RegionSetLabelsRequest"
62953	//   },
62954	//   "response": {
62955	//     "$ref": "Operation"
62956	//   },
62957	//   "scopes": [
62958	//     "https://www.googleapis.com/auth/cloud-platform",
62959	//     "https://www.googleapis.com/auth/compute"
62960	//   ]
62961	// }
62962
62963}
62964
62965// method id "compute.forwardingRules.setTarget":
62966
62967type ForwardingRulesSetTargetCall struct {
62968	s               *Service
62969	project         string
62970	region          string
62971	forwardingRule  string
62972	targetreference *TargetReference
62973	urlParams_      gensupport.URLParams
62974	ctx_            context.Context
62975	header_         http.Header
62976}
62977
62978// SetTarget: Changes target URL for forwarding rule. The new target
62979// should be of the same type as the old target.
62980// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/setTarget
62981func (r *ForwardingRulesService) SetTarget(project string, region string, forwardingRule string, targetreference *TargetReference) *ForwardingRulesSetTargetCall {
62982	c := &ForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62983	c.project = project
62984	c.region = region
62985	c.forwardingRule = forwardingRule
62986	c.targetreference = targetreference
62987	return c
62988}
62989
62990// RequestId sets the optional parameter "requestId": An optional
62991// request ID to identify requests. Specify a unique request ID so that
62992// if you must retry your request, the server will know to ignore the
62993// request if it has already been completed.
62994//
62995// For example, consider a situation where you make an initial request
62996// and the request times out. If you make the request again with the
62997// same request ID, the server can check if original operation with the
62998// same request ID was received, and if so, will ignore the second
62999// request. This prevents clients from accidentally creating duplicate
63000// commitments.
63001//
63002// The request ID must be a valid UUID with the exception that zero UUID
63003// is not supported (00000000-0000-0000-0000-000000000000).
63004func (c *ForwardingRulesSetTargetCall) RequestId(requestId string) *ForwardingRulesSetTargetCall {
63005	c.urlParams_.Set("requestId", requestId)
63006	return c
63007}
63008
63009// Fields allows partial responses to be retrieved. See
63010// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63011// for more information.
63012func (c *ForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *ForwardingRulesSetTargetCall {
63013	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63014	return c
63015}
63016
63017// Context sets the context to be used in this call's Do method. Any
63018// pending HTTP request will be aborted if the provided context is
63019// canceled.
63020func (c *ForwardingRulesSetTargetCall) Context(ctx context.Context) *ForwardingRulesSetTargetCall {
63021	c.ctx_ = ctx
63022	return c
63023}
63024
63025// Header returns an http.Header that can be modified by the caller to
63026// add HTTP headers to the request.
63027func (c *ForwardingRulesSetTargetCall) Header() http.Header {
63028	if c.header_ == nil {
63029		c.header_ = make(http.Header)
63030	}
63031	return c.header_
63032}
63033
63034func (c *ForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) {
63035	reqHeaders := make(http.Header)
63036	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
63037	for k, v := range c.header_ {
63038		reqHeaders[k] = v
63039	}
63040	reqHeaders.Set("User-Agent", c.s.userAgent())
63041	var body io.Reader = nil
63042	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
63043	if err != nil {
63044		return nil, err
63045	}
63046	reqHeaders.Set("Content-Type", "application/json")
63047	c.urlParams_.Set("alt", alt)
63048	c.urlParams_.Set("prettyPrint", "false")
63049	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget")
63050	urls += "?" + c.urlParams_.Encode()
63051	req, err := http.NewRequest("POST", urls, body)
63052	if err != nil {
63053		return nil, err
63054	}
63055	req.Header = reqHeaders
63056	googleapi.Expand(req.URL, map[string]string{
63057		"project":        c.project,
63058		"region":         c.region,
63059		"forwardingRule": c.forwardingRule,
63060	})
63061	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63062}
63063
63064// Do executes the "compute.forwardingRules.setTarget" call.
63065// Exactly one of *Operation or error will be non-nil. Any non-2xx
63066// status code is an error. Response headers are in either
63067// *Operation.ServerResponse.Header or (if a response was returned at
63068// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63069// to check whether the returned error was because
63070// http.StatusNotModified was returned.
63071func (c *ForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63072	gensupport.SetOptions(c.urlParams_, opts...)
63073	res, err := c.doRequest("json")
63074	if res != nil && res.StatusCode == http.StatusNotModified {
63075		if res.Body != nil {
63076			res.Body.Close()
63077		}
63078		return nil, &googleapi.Error{
63079			Code:   res.StatusCode,
63080			Header: res.Header,
63081		}
63082	}
63083	if err != nil {
63084		return nil, err
63085	}
63086	defer googleapi.CloseBody(res)
63087	if err := googleapi.CheckResponse(res); err != nil {
63088		return nil, err
63089	}
63090	ret := &Operation{
63091		ServerResponse: googleapi.ServerResponse{
63092			Header:         res.Header,
63093			HTTPStatusCode: res.StatusCode,
63094		},
63095	}
63096	target := &ret
63097	if err := gensupport.DecodeResponse(target, res); err != nil {
63098		return nil, err
63099	}
63100	return ret, nil
63101	// {
63102	//   "description": "Changes target URL for forwarding rule. The new target should be of the same type as the old target.",
63103	//   "httpMethod": "POST",
63104	//   "id": "compute.forwardingRules.setTarget",
63105	//   "parameterOrder": [
63106	//     "project",
63107	//     "region",
63108	//     "forwardingRule"
63109	//   ],
63110	//   "parameters": {
63111	//     "forwardingRule": {
63112	//       "description": "Name of the ForwardingRule resource in which target is to be set.",
63113	//       "location": "path",
63114	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63115	//       "required": true,
63116	//       "type": "string"
63117	//     },
63118	//     "project": {
63119	//       "description": "Project ID for this request.",
63120	//       "location": "path",
63121	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63122	//       "required": true,
63123	//       "type": "string"
63124	//     },
63125	//     "region": {
63126	//       "description": "Name of the region scoping this request.",
63127	//       "location": "path",
63128	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
63129	//       "required": true,
63130	//       "type": "string"
63131	//     },
63132	//     "requestId": {
63133	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
63134	//       "location": "query",
63135	//       "type": "string"
63136	//     }
63137	//   },
63138	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget",
63139	//   "request": {
63140	//     "$ref": "TargetReference"
63141	//   },
63142	//   "response": {
63143	//     "$ref": "Operation"
63144	//   },
63145	//   "scopes": [
63146	//     "https://www.googleapis.com/auth/cloud-platform",
63147	//     "https://www.googleapis.com/auth/compute"
63148	//   ]
63149	// }
63150
63151}
63152
63153// method id "compute.forwardingRules.testIamPermissions":
63154
63155type ForwardingRulesTestIamPermissionsCall struct {
63156	s                      *Service
63157	project                string
63158	region                 string
63159	resource               string
63160	testpermissionsrequest *TestPermissionsRequest
63161	urlParams_             gensupport.URLParams
63162	ctx_                   context.Context
63163	header_                http.Header
63164}
63165
63166// TestIamPermissions: Returns permissions that a caller has on the
63167// specified resource.
63168func (r *ForwardingRulesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *ForwardingRulesTestIamPermissionsCall {
63169	c := &ForwardingRulesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63170	c.project = project
63171	c.region = region
63172	c.resource = resource
63173	c.testpermissionsrequest = testpermissionsrequest
63174	return c
63175}
63176
63177// Fields allows partial responses to be retrieved. See
63178// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63179// for more information.
63180func (c *ForwardingRulesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ForwardingRulesTestIamPermissionsCall {
63181	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63182	return c
63183}
63184
63185// Context sets the context to be used in this call's Do method. Any
63186// pending HTTP request will be aborted if the provided context is
63187// canceled.
63188func (c *ForwardingRulesTestIamPermissionsCall) Context(ctx context.Context) *ForwardingRulesTestIamPermissionsCall {
63189	c.ctx_ = ctx
63190	return c
63191}
63192
63193// Header returns an http.Header that can be modified by the caller to
63194// add HTTP headers to the request.
63195func (c *ForwardingRulesTestIamPermissionsCall) Header() http.Header {
63196	if c.header_ == nil {
63197		c.header_ = make(http.Header)
63198	}
63199	return c.header_
63200}
63201
63202func (c *ForwardingRulesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
63203	reqHeaders := make(http.Header)
63204	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
63205	for k, v := range c.header_ {
63206		reqHeaders[k] = v
63207	}
63208	reqHeaders.Set("User-Agent", c.s.userAgent())
63209	var body io.Reader = nil
63210	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
63211	if err != nil {
63212		return nil, err
63213	}
63214	reqHeaders.Set("Content-Type", "application/json")
63215	c.urlParams_.Set("alt", alt)
63216	c.urlParams_.Set("prettyPrint", "false")
63217	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{resource}/testIamPermissions")
63218	urls += "?" + c.urlParams_.Encode()
63219	req, err := http.NewRequest("POST", urls, body)
63220	if err != nil {
63221		return nil, err
63222	}
63223	req.Header = reqHeaders
63224	googleapi.Expand(req.URL, map[string]string{
63225		"project":  c.project,
63226		"region":   c.region,
63227		"resource": c.resource,
63228	})
63229	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63230}
63231
63232// Do executes the "compute.forwardingRules.testIamPermissions" call.
63233// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
63234// non-2xx status code is an error. Response headers are in either
63235// *TestPermissionsResponse.ServerResponse.Header or (if a response was
63236// returned at all) in error.(*googleapi.Error).Header. Use
63237// googleapi.IsNotModified to check whether the returned error was
63238// because http.StatusNotModified was returned.
63239func (c *ForwardingRulesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
63240	gensupport.SetOptions(c.urlParams_, opts...)
63241	res, err := c.doRequest("json")
63242	if res != nil && res.StatusCode == http.StatusNotModified {
63243		if res.Body != nil {
63244			res.Body.Close()
63245		}
63246		return nil, &googleapi.Error{
63247			Code:   res.StatusCode,
63248			Header: res.Header,
63249		}
63250	}
63251	if err != nil {
63252		return nil, err
63253	}
63254	defer googleapi.CloseBody(res)
63255	if err := googleapi.CheckResponse(res); err != nil {
63256		return nil, err
63257	}
63258	ret := &TestPermissionsResponse{
63259		ServerResponse: googleapi.ServerResponse{
63260			Header:         res.Header,
63261			HTTPStatusCode: res.StatusCode,
63262		},
63263	}
63264	target := &ret
63265	if err := gensupport.DecodeResponse(target, res); err != nil {
63266		return nil, err
63267	}
63268	return ret, nil
63269	// {
63270	//   "description": "Returns permissions that a caller has on the specified resource.",
63271	//   "httpMethod": "POST",
63272	//   "id": "compute.forwardingRules.testIamPermissions",
63273	//   "parameterOrder": [
63274	//     "project",
63275	//     "region",
63276	//     "resource"
63277	//   ],
63278	//   "parameters": {
63279	//     "project": {
63280	//       "description": "Project ID for this request.",
63281	//       "location": "path",
63282	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63283	//       "required": true,
63284	//       "type": "string"
63285	//     },
63286	//     "region": {
63287	//       "description": "The name of the region for this request.",
63288	//       "location": "path",
63289	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
63290	//       "required": true,
63291	//       "type": "string"
63292	//     },
63293	//     "resource": {
63294	//       "description": "Name or id of the resource for this request.",
63295	//       "location": "path",
63296	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63297	//       "required": true,
63298	//       "type": "string"
63299	//     }
63300	//   },
63301	//   "path": "{project}/regions/{region}/forwardingRules/{resource}/testIamPermissions",
63302	//   "request": {
63303	//     "$ref": "TestPermissionsRequest"
63304	//   },
63305	//   "response": {
63306	//     "$ref": "TestPermissionsResponse"
63307	//   },
63308	//   "scopes": [
63309	//     "https://www.googleapis.com/auth/cloud-platform",
63310	//     "https://www.googleapis.com/auth/compute",
63311	//     "https://www.googleapis.com/auth/compute.readonly"
63312	//   ]
63313	// }
63314
63315}
63316
63317// method id "compute.globalAddresses.delete":
63318
63319type GlobalAddressesDeleteCall struct {
63320	s          *Service
63321	project    string
63322	address    string
63323	urlParams_ gensupport.URLParams
63324	ctx_       context.Context
63325	header_    http.Header
63326}
63327
63328// Delete: Deletes the specified address resource.
63329// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/delete
63330func (r *GlobalAddressesService) Delete(project string, address string) *GlobalAddressesDeleteCall {
63331	c := &GlobalAddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63332	c.project = project
63333	c.address = address
63334	return c
63335}
63336
63337// RequestId sets the optional parameter "requestId": An optional
63338// request ID to identify requests. Specify a unique request ID so that
63339// if you must retry your request, the server will know to ignore the
63340// request if it has already been completed.
63341//
63342// For example, consider a situation where you make an initial request
63343// and the request times out. If you make the request again with the
63344// same request ID, the server can check if original operation with the
63345// same request ID was received, and if so, will ignore the second
63346// request. This prevents clients from accidentally creating duplicate
63347// commitments.
63348//
63349// The request ID must be a valid UUID with the exception that zero UUID
63350// is not supported (00000000-0000-0000-0000-000000000000).
63351func (c *GlobalAddressesDeleteCall) RequestId(requestId string) *GlobalAddressesDeleteCall {
63352	c.urlParams_.Set("requestId", requestId)
63353	return c
63354}
63355
63356// Fields allows partial responses to be retrieved. See
63357// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63358// for more information.
63359func (c *GlobalAddressesDeleteCall) Fields(s ...googleapi.Field) *GlobalAddressesDeleteCall {
63360	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63361	return c
63362}
63363
63364// Context sets the context to be used in this call's Do method. Any
63365// pending HTTP request will be aborted if the provided context is
63366// canceled.
63367func (c *GlobalAddressesDeleteCall) Context(ctx context.Context) *GlobalAddressesDeleteCall {
63368	c.ctx_ = ctx
63369	return c
63370}
63371
63372// Header returns an http.Header that can be modified by the caller to
63373// add HTTP headers to the request.
63374func (c *GlobalAddressesDeleteCall) Header() http.Header {
63375	if c.header_ == nil {
63376		c.header_ = make(http.Header)
63377	}
63378	return c.header_
63379}
63380
63381func (c *GlobalAddressesDeleteCall) doRequest(alt string) (*http.Response, error) {
63382	reqHeaders := make(http.Header)
63383	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
63384	for k, v := range c.header_ {
63385		reqHeaders[k] = v
63386	}
63387	reqHeaders.Set("User-Agent", c.s.userAgent())
63388	var body io.Reader = nil
63389	c.urlParams_.Set("alt", alt)
63390	c.urlParams_.Set("prettyPrint", "false")
63391	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses/{address}")
63392	urls += "?" + c.urlParams_.Encode()
63393	req, err := http.NewRequest("DELETE", urls, body)
63394	if err != nil {
63395		return nil, err
63396	}
63397	req.Header = reqHeaders
63398	googleapi.Expand(req.URL, map[string]string{
63399		"project": c.project,
63400		"address": c.address,
63401	})
63402	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63403}
63404
63405// Do executes the "compute.globalAddresses.delete" call.
63406// Exactly one of *Operation or error will be non-nil. Any non-2xx
63407// status code is an error. Response headers are in either
63408// *Operation.ServerResponse.Header or (if a response was returned at
63409// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63410// to check whether the returned error was because
63411// http.StatusNotModified was returned.
63412func (c *GlobalAddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63413	gensupport.SetOptions(c.urlParams_, opts...)
63414	res, err := c.doRequest("json")
63415	if res != nil && res.StatusCode == http.StatusNotModified {
63416		if res.Body != nil {
63417			res.Body.Close()
63418		}
63419		return nil, &googleapi.Error{
63420			Code:   res.StatusCode,
63421			Header: res.Header,
63422		}
63423	}
63424	if err != nil {
63425		return nil, err
63426	}
63427	defer googleapi.CloseBody(res)
63428	if err := googleapi.CheckResponse(res); err != nil {
63429		return nil, err
63430	}
63431	ret := &Operation{
63432		ServerResponse: googleapi.ServerResponse{
63433			Header:         res.Header,
63434			HTTPStatusCode: res.StatusCode,
63435		},
63436	}
63437	target := &ret
63438	if err := gensupport.DecodeResponse(target, res); err != nil {
63439		return nil, err
63440	}
63441	return ret, nil
63442	// {
63443	//   "description": "Deletes the specified address resource.",
63444	//   "httpMethod": "DELETE",
63445	//   "id": "compute.globalAddresses.delete",
63446	//   "parameterOrder": [
63447	//     "project",
63448	//     "address"
63449	//   ],
63450	//   "parameters": {
63451	//     "address": {
63452	//       "description": "Name of the address resource to delete.",
63453	//       "location": "path",
63454	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63455	//       "required": true,
63456	//       "type": "string"
63457	//     },
63458	//     "project": {
63459	//       "description": "Project ID for this request.",
63460	//       "location": "path",
63461	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63462	//       "required": true,
63463	//       "type": "string"
63464	//     },
63465	//     "requestId": {
63466	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
63467	//       "location": "query",
63468	//       "type": "string"
63469	//     }
63470	//   },
63471	//   "path": "{project}/global/addresses/{address}",
63472	//   "response": {
63473	//     "$ref": "Operation"
63474	//   },
63475	//   "scopes": [
63476	//     "https://www.googleapis.com/auth/cloud-platform",
63477	//     "https://www.googleapis.com/auth/compute"
63478	//   ]
63479	// }
63480
63481}
63482
63483// method id "compute.globalAddresses.get":
63484
63485type GlobalAddressesGetCall struct {
63486	s            *Service
63487	project      string
63488	address      string
63489	urlParams_   gensupport.URLParams
63490	ifNoneMatch_ string
63491	ctx_         context.Context
63492	header_      http.Header
63493}
63494
63495// Get: Returns the specified address resource. Gets a list of available
63496// addresses by making a list() request.
63497// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/get
63498func (r *GlobalAddressesService) Get(project string, address string) *GlobalAddressesGetCall {
63499	c := &GlobalAddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63500	c.project = project
63501	c.address = address
63502	return c
63503}
63504
63505// Fields allows partial responses to be retrieved. See
63506// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63507// for more information.
63508func (c *GlobalAddressesGetCall) Fields(s ...googleapi.Field) *GlobalAddressesGetCall {
63509	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63510	return c
63511}
63512
63513// IfNoneMatch sets the optional parameter which makes the operation
63514// fail if the object's ETag matches the given value. This is useful for
63515// getting updates only after the object has changed since the last
63516// request. Use googleapi.IsNotModified to check whether the response
63517// error from Do is the result of In-None-Match.
63518func (c *GlobalAddressesGetCall) IfNoneMatch(entityTag string) *GlobalAddressesGetCall {
63519	c.ifNoneMatch_ = entityTag
63520	return c
63521}
63522
63523// Context sets the context to be used in this call's Do method. Any
63524// pending HTTP request will be aborted if the provided context is
63525// canceled.
63526func (c *GlobalAddressesGetCall) Context(ctx context.Context) *GlobalAddressesGetCall {
63527	c.ctx_ = ctx
63528	return c
63529}
63530
63531// Header returns an http.Header that can be modified by the caller to
63532// add HTTP headers to the request.
63533func (c *GlobalAddressesGetCall) Header() http.Header {
63534	if c.header_ == nil {
63535		c.header_ = make(http.Header)
63536	}
63537	return c.header_
63538}
63539
63540func (c *GlobalAddressesGetCall) doRequest(alt string) (*http.Response, error) {
63541	reqHeaders := make(http.Header)
63542	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
63543	for k, v := range c.header_ {
63544		reqHeaders[k] = v
63545	}
63546	reqHeaders.Set("User-Agent", c.s.userAgent())
63547	if c.ifNoneMatch_ != "" {
63548		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63549	}
63550	var body io.Reader = nil
63551	c.urlParams_.Set("alt", alt)
63552	c.urlParams_.Set("prettyPrint", "false")
63553	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses/{address}")
63554	urls += "?" + c.urlParams_.Encode()
63555	req, err := http.NewRequest("GET", urls, body)
63556	if err != nil {
63557		return nil, err
63558	}
63559	req.Header = reqHeaders
63560	googleapi.Expand(req.URL, map[string]string{
63561		"project": c.project,
63562		"address": c.address,
63563	})
63564	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63565}
63566
63567// Do executes the "compute.globalAddresses.get" call.
63568// Exactly one of *Address or error will be non-nil. Any non-2xx status
63569// code is an error. Response headers are in either
63570// *Address.ServerResponse.Header or (if a response was returned at all)
63571// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
63572// check whether the returned error was because http.StatusNotModified
63573// was returned.
63574func (c *GlobalAddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) {
63575	gensupport.SetOptions(c.urlParams_, opts...)
63576	res, err := c.doRequest("json")
63577	if res != nil && res.StatusCode == http.StatusNotModified {
63578		if res.Body != nil {
63579			res.Body.Close()
63580		}
63581		return nil, &googleapi.Error{
63582			Code:   res.StatusCode,
63583			Header: res.Header,
63584		}
63585	}
63586	if err != nil {
63587		return nil, err
63588	}
63589	defer googleapi.CloseBody(res)
63590	if err := googleapi.CheckResponse(res); err != nil {
63591		return nil, err
63592	}
63593	ret := &Address{
63594		ServerResponse: googleapi.ServerResponse{
63595			Header:         res.Header,
63596			HTTPStatusCode: res.StatusCode,
63597		},
63598	}
63599	target := &ret
63600	if err := gensupport.DecodeResponse(target, res); err != nil {
63601		return nil, err
63602	}
63603	return ret, nil
63604	// {
63605	//   "description": "Returns the specified address resource. Gets a list of available addresses by making a list() request.",
63606	//   "httpMethod": "GET",
63607	//   "id": "compute.globalAddresses.get",
63608	//   "parameterOrder": [
63609	//     "project",
63610	//     "address"
63611	//   ],
63612	//   "parameters": {
63613	//     "address": {
63614	//       "description": "Name of the address resource to return.",
63615	//       "location": "path",
63616	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63617	//       "required": true,
63618	//       "type": "string"
63619	//     },
63620	//     "project": {
63621	//       "description": "Project ID for this request.",
63622	//       "location": "path",
63623	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63624	//       "required": true,
63625	//       "type": "string"
63626	//     }
63627	//   },
63628	//   "path": "{project}/global/addresses/{address}",
63629	//   "response": {
63630	//     "$ref": "Address"
63631	//   },
63632	//   "scopes": [
63633	//     "https://www.googleapis.com/auth/cloud-platform",
63634	//     "https://www.googleapis.com/auth/compute",
63635	//     "https://www.googleapis.com/auth/compute.readonly"
63636	//   ]
63637	// }
63638
63639}
63640
63641// method id "compute.globalAddresses.insert":
63642
63643type GlobalAddressesInsertCall struct {
63644	s          *Service
63645	project    string
63646	address    *Address
63647	urlParams_ gensupport.URLParams
63648	ctx_       context.Context
63649	header_    http.Header
63650}
63651
63652// Insert: Creates an address resource in the specified project by using
63653// the data included in the request.
63654// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/insert
63655func (r *GlobalAddressesService) Insert(project string, address *Address) *GlobalAddressesInsertCall {
63656	c := &GlobalAddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63657	c.project = project
63658	c.address = address
63659	return c
63660}
63661
63662// RequestId sets the optional parameter "requestId": An optional
63663// request ID to identify requests. Specify a unique request ID so that
63664// if you must retry your request, the server will know to ignore the
63665// request if it has already been completed.
63666//
63667// For example, consider a situation where you make an initial request
63668// and the request times out. If you make the request again with the
63669// same request ID, the server can check if original operation with the
63670// same request ID was received, and if so, will ignore the second
63671// request. This prevents clients from accidentally creating duplicate
63672// commitments.
63673//
63674// The request ID must be a valid UUID with the exception that zero UUID
63675// is not supported (00000000-0000-0000-0000-000000000000).
63676func (c *GlobalAddressesInsertCall) RequestId(requestId string) *GlobalAddressesInsertCall {
63677	c.urlParams_.Set("requestId", requestId)
63678	return c
63679}
63680
63681// Fields allows partial responses to be retrieved. See
63682// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63683// for more information.
63684func (c *GlobalAddressesInsertCall) Fields(s ...googleapi.Field) *GlobalAddressesInsertCall {
63685	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63686	return c
63687}
63688
63689// Context sets the context to be used in this call's Do method. Any
63690// pending HTTP request will be aborted if the provided context is
63691// canceled.
63692func (c *GlobalAddressesInsertCall) Context(ctx context.Context) *GlobalAddressesInsertCall {
63693	c.ctx_ = ctx
63694	return c
63695}
63696
63697// Header returns an http.Header that can be modified by the caller to
63698// add HTTP headers to the request.
63699func (c *GlobalAddressesInsertCall) Header() http.Header {
63700	if c.header_ == nil {
63701		c.header_ = make(http.Header)
63702	}
63703	return c.header_
63704}
63705
63706func (c *GlobalAddressesInsertCall) doRequest(alt string) (*http.Response, error) {
63707	reqHeaders := make(http.Header)
63708	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
63709	for k, v := range c.header_ {
63710		reqHeaders[k] = v
63711	}
63712	reqHeaders.Set("User-Agent", c.s.userAgent())
63713	var body io.Reader = nil
63714	body, err := googleapi.WithoutDataWrapper.JSONReader(c.address)
63715	if err != nil {
63716		return nil, err
63717	}
63718	reqHeaders.Set("Content-Type", "application/json")
63719	c.urlParams_.Set("alt", alt)
63720	c.urlParams_.Set("prettyPrint", "false")
63721	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses")
63722	urls += "?" + c.urlParams_.Encode()
63723	req, err := http.NewRequest("POST", urls, body)
63724	if err != nil {
63725		return nil, err
63726	}
63727	req.Header = reqHeaders
63728	googleapi.Expand(req.URL, map[string]string{
63729		"project": c.project,
63730	})
63731	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63732}
63733
63734// Do executes the "compute.globalAddresses.insert" call.
63735// Exactly one of *Operation or error will be non-nil. Any non-2xx
63736// status code is an error. Response headers are in either
63737// *Operation.ServerResponse.Header or (if a response was returned at
63738// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63739// to check whether the returned error was because
63740// http.StatusNotModified was returned.
63741func (c *GlobalAddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63742	gensupport.SetOptions(c.urlParams_, opts...)
63743	res, err := c.doRequest("json")
63744	if res != nil && res.StatusCode == http.StatusNotModified {
63745		if res.Body != nil {
63746			res.Body.Close()
63747		}
63748		return nil, &googleapi.Error{
63749			Code:   res.StatusCode,
63750			Header: res.Header,
63751		}
63752	}
63753	if err != nil {
63754		return nil, err
63755	}
63756	defer googleapi.CloseBody(res)
63757	if err := googleapi.CheckResponse(res); err != nil {
63758		return nil, err
63759	}
63760	ret := &Operation{
63761		ServerResponse: googleapi.ServerResponse{
63762			Header:         res.Header,
63763			HTTPStatusCode: res.StatusCode,
63764		},
63765	}
63766	target := &ret
63767	if err := gensupport.DecodeResponse(target, res); err != nil {
63768		return nil, err
63769	}
63770	return ret, nil
63771	// {
63772	//   "description": "Creates an address resource in the specified project by using the data included in the request.",
63773	//   "httpMethod": "POST",
63774	//   "id": "compute.globalAddresses.insert",
63775	//   "parameterOrder": [
63776	//     "project"
63777	//   ],
63778	//   "parameters": {
63779	//     "project": {
63780	//       "description": "Project ID for this request.",
63781	//       "location": "path",
63782	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63783	//       "required": true,
63784	//       "type": "string"
63785	//     },
63786	//     "requestId": {
63787	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
63788	//       "location": "query",
63789	//       "type": "string"
63790	//     }
63791	//   },
63792	//   "path": "{project}/global/addresses",
63793	//   "request": {
63794	//     "$ref": "Address"
63795	//   },
63796	//   "response": {
63797	//     "$ref": "Operation"
63798	//   },
63799	//   "scopes": [
63800	//     "https://www.googleapis.com/auth/cloud-platform",
63801	//     "https://www.googleapis.com/auth/compute"
63802	//   ]
63803	// }
63804
63805}
63806
63807// method id "compute.globalAddresses.list":
63808
63809type GlobalAddressesListCall struct {
63810	s            *Service
63811	project      string
63812	urlParams_   gensupport.URLParams
63813	ifNoneMatch_ string
63814	ctx_         context.Context
63815	header_      http.Header
63816}
63817
63818// List: Retrieves a list of global addresses.
63819// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/list
63820func (r *GlobalAddressesService) List(project string) *GlobalAddressesListCall {
63821	c := &GlobalAddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63822	c.project = project
63823	return c
63824}
63825
63826// Filter sets the optional parameter "filter": A filter expression that
63827// filters resources listed in the response. The expression must specify
63828// the field name, a comparison operator, and the value that you want to
63829// use for filtering. The value must be a string, a number, or a
63830// boolean. The comparison operator must be either =, !=, >, or <.
63831//
63832// For example, if you are filtering Compute Engine instances, you can
63833// exclude instances named example-instance by specifying name !=
63834// example-instance.
63835//
63836// You can also filter nested fields. For example, you could specify
63837// scheduling.automaticRestart = false to include instances only if they
63838// are not scheduled for automatic restarts. You can use filtering on
63839// nested fields to filter based on resource labels.
63840//
63841// To filter on multiple expressions, provide each separate expression
63842// within parentheses. For example, (scheduling.automaticRestart = true)
63843// (cpuPlatform = "Intel Skylake"). By default, each expression is an
63844// AND expression. However, you can include AND and OR expressions
63845// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
63846// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
63847// true).
63848func (c *GlobalAddressesListCall) Filter(filter string) *GlobalAddressesListCall {
63849	c.urlParams_.Set("filter", filter)
63850	return c
63851}
63852
63853// MaxResults sets the optional parameter "maxResults": The maximum
63854// number of results per page that should be returned. If the number of
63855// available results is larger than maxResults, Compute Engine returns a
63856// nextPageToken that can be used to get the next page of results in
63857// subsequent list requests. Acceptable values are 0 to 500, inclusive.
63858// (Default: 500)
63859func (c *GlobalAddressesListCall) MaxResults(maxResults int64) *GlobalAddressesListCall {
63860	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
63861	return c
63862}
63863
63864// OrderBy sets the optional parameter "orderBy": Sorts list results by
63865// a certain order. By default, results are returned in alphanumerical
63866// order based on the resource name.
63867//
63868// You can also sort results in descending order based on the creation
63869// timestamp using orderBy="creationTimestamp desc". This sorts results
63870// based on the creationTimestamp field in reverse chronological order
63871// (newest result first). Use this to sort resources like operations so
63872// that the newest operation is returned first.
63873//
63874// Currently, only sorting by name or creationTimestamp desc is
63875// supported.
63876func (c *GlobalAddressesListCall) OrderBy(orderBy string) *GlobalAddressesListCall {
63877	c.urlParams_.Set("orderBy", orderBy)
63878	return c
63879}
63880
63881// PageToken sets the optional parameter "pageToken": Specifies a page
63882// token to use. Set pageToken to the nextPageToken returned by a
63883// previous list request to get the next page of results.
63884func (c *GlobalAddressesListCall) PageToken(pageToken string) *GlobalAddressesListCall {
63885	c.urlParams_.Set("pageToken", pageToken)
63886	return c
63887}
63888
63889// Fields allows partial responses to be retrieved. See
63890// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63891// for more information.
63892func (c *GlobalAddressesListCall) Fields(s ...googleapi.Field) *GlobalAddressesListCall {
63893	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63894	return c
63895}
63896
63897// IfNoneMatch sets the optional parameter which makes the operation
63898// fail if the object's ETag matches the given value. This is useful for
63899// getting updates only after the object has changed since the last
63900// request. Use googleapi.IsNotModified to check whether the response
63901// error from Do is the result of In-None-Match.
63902func (c *GlobalAddressesListCall) IfNoneMatch(entityTag string) *GlobalAddressesListCall {
63903	c.ifNoneMatch_ = entityTag
63904	return c
63905}
63906
63907// Context sets the context to be used in this call's Do method. Any
63908// pending HTTP request will be aborted if the provided context is
63909// canceled.
63910func (c *GlobalAddressesListCall) Context(ctx context.Context) *GlobalAddressesListCall {
63911	c.ctx_ = ctx
63912	return c
63913}
63914
63915// Header returns an http.Header that can be modified by the caller to
63916// add HTTP headers to the request.
63917func (c *GlobalAddressesListCall) Header() http.Header {
63918	if c.header_ == nil {
63919		c.header_ = make(http.Header)
63920	}
63921	return c.header_
63922}
63923
63924func (c *GlobalAddressesListCall) doRequest(alt string) (*http.Response, error) {
63925	reqHeaders := make(http.Header)
63926	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
63927	for k, v := range c.header_ {
63928		reqHeaders[k] = v
63929	}
63930	reqHeaders.Set("User-Agent", c.s.userAgent())
63931	if c.ifNoneMatch_ != "" {
63932		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63933	}
63934	var body io.Reader = nil
63935	c.urlParams_.Set("alt", alt)
63936	c.urlParams_.Set("prettyPrint", "false")
63937	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses")
63938	urls += "?" + c.urlParams_.Encode()
63939	req, err := http.NewRequest("GET", urls, body)
63940	if err != nil {
63941		return nil, err
63942	}
63943	req.Header = reqHeaders
63944	googleapi.Expand(req.URL, map[string]string{
63945		"project": c.project,
63946	})
63947	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63948}
63949
63950// Do executes the "compute.globalAddresses.list" call.
63951// Exactly one of *AddressList or error will be non-nil. Any non-2xx
63952// status code is an error. Response headers are in either
63953// *AddressList.ServerResponse.Header or (if a response was returned at
63954// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63955// to check whether the returned error was because
63956// http.StatusNotModified was returned.
63957func (c *GlobalAddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) {
63958	gensupport.SetOptions(c.urlParams_, opts...)
63959	res, err := c.doRequest("json")
63960	if res != nil && res.StatusCode == http.StatusNotModified {
63961		if res.Body != nil {
63962			res.Body.Close()
63963		}
63964		return nil, &googleapi.Error{
63965			Code:   res.StatusCode,
63966			Header: res.Header,
63967		}
63968	}
63969	if err != nil {
63970		return nil, err
63971	}
63972	defer googleapi.CloseBody(res)
63973	if err := googleapi.CheckResponse(res); err != nil {
63974		return nil, err
63975	}
63976	ret := &AddressList{
63977		ServerResponse: googleapi.ServerResponse{
63978			Header:         res.Header,
63979			HTTPStatusCode: res.StatusCode,
63980		},
63981	}
63982	target := &ret
63983	if err := gensupport.DecodeResponse(target, res); err != nil {
63984		return nil, err
63985	}
63986	return ret, nil
63987	// {
63988	//   "description": "Retrieves a list of global addresses.",
63989	//   "httpMethod": "GET",
63990	//   "id": "compute.globalAddresses.list",
63991	//   "parameterOrder": [
63992	//     "project"
63993	//   ],
63994	//   "parameters": {
63995	//     "filter": {
63996	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
63997	//       "location": "query",
63998	//       "type": "string"
63999	//     },
64000	//     "maxResults": {
64001	//       "default": "500",
64002	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
64003	//       "format": "uint32",
64004	//       "location": "query",
64005	//       "minimum": "0",
64006	//       "type": "integer"
64007	//     },
64008	//     "orderBy": {
64009	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
64010	//       "location": "query",
64011	//       "type": "string"
64012	//     },
64013	//     "pageToken": {
64014	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
64015	//       "location": "query",
64016	//       "type": "string"
64017	//     },
64018	//     "project": {
64019	//       "description": "Project ID for this request.",
64020	//       "location": "path",
64021	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64022	//       "required": true,
64023	//       "type": "string"
64024	//     }
64025	//   },
64026	//   "path": "{project}/global/addresses",
64027	//   "response": {
64028	//     "$ref": "AddressList"
64029	//   },
64030	//   "scopes": [
64031	//     "https://www.googleapis.com/auth/cloud-platform",
64032	//     "https://www.googleapis.com/auth/compute",
64033	//     "https://www.googleapis.com/auth/compute.readonly"
64034	//   ]
64035	// }
64036
64037}
64038
64039// Pages invokes f for each page of results.
64040// A non-nil error returned from f will halt the iteration.
64041// The provided context supersedes any context provided to the Context method.
64042func (c *GlobalAddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error {
64043	c.ctx_ = ctx
64044	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
64045	for {
64046		x, err := c.Do()
64047		if err != nil {
64048			return err
64049		}
64050		if err := f(x); err != nil {
64051			return err
64052		}
64053		if x.NextPageToken == "" {
64054			return nil
64055		}
64056		c.PageToken(x.NextPageToken)
64057	}
64058}
64059
64060// method id "compute.globalAddresses.setLabels":
64061
64062type GlobalAddressesSetLabelsCall struct {
64063	s                      *Service
64064	project                string
64065	resource               string
64066	globalsetlabelsrequest *GlobalSetLabelsRequest
64067	urlParams_             gensupport.URLParams
64068	ctx_                   context.Context
64069	header_                http.Header
64070}
64071
64072// SetLabels: Sets the labels on a GlobalAddress. To learn more about
64073// labels, read the Labeling Resources documentation.
64074func (r *GlobalAddressesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *GlobalAddressesSetLabelsCall {
64075	c := &GlobalAddressesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64076	c.project = project
64077	c.resource = resource
64078	c.globalsetlabelsrequest = globalsetlabelsrequest
64079	return c
64080}
64081
64082// Fields allows partial responses to be retrieved. See
64083// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64084// for more information.
64085func (c *GlobalAddressesSetLabelsCall) Fields(s ...googleapi.Field) *GlobalAddressesSetLabelsCall {
64086	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64087	return c
64088}
64089
64090// Context sets the context to be used in this call's Do method. Any
64091// pending HTTP request will be aborted if the provided context is
64092// canceled.
64093func (c *GlobalAddressesSetLabelsCall) Context(ctx context.Context) *GlobalAddressesSetLabelsCall {
64094	c.ctx_ = ctx
64095	return c
64096}
64097
64098// Header returns an http.Header that can be modified by the caller to
64099// add HTTP headers to the request.
64100func (c *GlobalAddressesSetLabelsCall) Header() http.Header {
64101	if c.header_ == nil {
64102		c.header_ = make(http.Header)
64103	}
64104	return c.header_
64105}
64106
64107func (c *GlobalAddressesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
64108	reqHeaders := make(http.Header)
64109	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
64110	for k, v := range c.header_ {
64111		reqHeaders[k] = v
64112	}
64113	reqHeaders.Set("User-Agent", c.s.userAgent())
64114	var body io.Reader = nil
64115	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
64116	if err != nil {
64117		return nil, err
64118	}
64119	reqHeaders.Set("Content-Type", "application/json")
64120	c.urlParams_.Set("alt", alt)
64121	c.urlParams_.Set("prettyPrint", "false")
64122	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses/{resource}/setLabels")
64123	urls += "?" + c.urlParams_.Encode()
64124	req, err := http.NewRequest("POST", urls, body)
64125	if err != nil {
64126		return nil, err
64127	}
64128	req.Header = reqHeaders
64129	googleapi.Expand(req.URL, map[string]string{
64130		"project":  c.project,
64131		"resource": c.resource,
64132	})
64133	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64134}
64135
64136// Do executes the "compute.globalAddresses.setLabels" call.
64137// Exactly one of *Operation or error will be non-nil. Any non-2xx
64138// status code is an error. Response headers are in either
64139// *Operation.ServerResponse.Header or (if a response was returned at
64140// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64141// to check whether the returned error was because
64142// http.StatusNotModified was returned.
64143func (c *GlobalAddressesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64144	gensupport.SetOptions(c.urlParams_, opts...)
64145	res, err := c.doRequest("json")
64146	if res != nil && res.StatusCode == http.StatusNotModified {
64147		if res.Body != nil {
64148			res.Body.Close()
64149		}
64150		return nil, &googleapi.Error{
64151			Code:   res.StatusCode,
64152			Header: res.Header,
64153		}
64154	}
64155	if err != nil {
64156		return nil, err
64157	}
64158	defer googleapi.CloseBody(res)
64159	if err := googleapi.CheckResponse(res); err != nil {
64160		return nil, err
64161	}
64162	ret := &Operation{
64163		ServerResponse: googleapi.ServerResponse{
64164			Header:         res.Header,
64165			HTTPStatusCode: res.StatusCode,
64166		},
64167	}
64168	target := &ret
64169	if err := gensupport.DecodeResponse(target, res); err != nil {
64170		return nil, err
64171	}
64172	return ret, nil
64173	// {
64174	//   "description": "Sets the labels on a GlobalAddress. To learn more about labels, read the Labeling Resources documentation.",
64175	//   "httpMethod": "POST",
64176	//   "id": "compute.globalAddresses.setLabels",
64177	//   "parameterOrder": [
64178	//     "project",
64179	//     "resource"
64180	//   ],
64181	//   "parameters": {
64182	//     "project": {
64183	//       "description": "Project ID for this request.",
64184	//       "location": "path",
64185	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64186	//       "required": true,
64187	//       "type": "string"
64188	//     },
64189	//     "resource": {
64190	//       "description": "Name or id of the resource for this request.",
64191	//       "location": "path",
64192	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
64193	//       "required": true,
64194	//       "type": "string"
64195	//     }
64196	//   },
64197	//   "path": "{project}/global/addresses/{resource}/setLabels",
64198	//   "request": {
64199	//     "$ref": "GlobalSetLabelsRequest"
64200	//   },
64201	//   "response": {
64202	//     "$ref": "Operation"
64203	//   },
64204	//   "scopes": [
64205	//     "https://www.googleapis.com/auth/cloud-platform",
64206	//     "https://www.googleapis.com/auth/compute"
64207	//   ]
64208	// }
64209
64210}
64211
64212// method id "compute.globalAddresses.testIamPermissions":
64213
64214type GlobalAddressesTestIamPermissionsCall struct {
64215	s                      *Service
64216	project                string
64217	resource               string
64218	testpermissionsrequest *TestPermissionsRequest
64219	urlParams_             gensupport.URLParams
64220	ctx_                   context.Context
64221	header_                http.Header
64222}
64223
64224// TestIamPermissions: Returns permissions that a caller has on the
64225// specified resource.
64226func (r *GlobalAddressesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *GlobalAddressesTestIamPermissionsCall {
64227	c := &GlobalAddressesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64228	c.project = project
64229	c.resource = resource
64230	c.testpermissionsrequest = testpermissionsrequest
64231	return c
64232}
64233
64234// Fields allows partial responses to be retrieved. See
64235// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64236// for more information.
64237func (c *GlobalAddressesTestIamPermissionsCall) Fields(s ...googleapi.Field) *GlobalAddressesTestIamPermissionsCall {
64238	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64239	return c
64240}
64241
64242// Context sets the context to be used in this call's Do method. Any
64243// pending HTTP request will be aborted if the provided context is
64244// canceled.
64245func (c *GlobalAddressesTestIamPermissionsCall) Context(ctx context.Context) *GlobalAddressesTestIamPermissionsCall {
64246	c.ctx_ = ctx
64247	return c
64248}
64249
64250// Header returns an http.Header that can be modified by the caller to
64251// add HTTP headers to the request.
64252func (c *GlobalAddressesTestIamPermissionsCall) Header() http.Header {
64253	if c.header_ == nil {
64254		c.header_ = make(http.Header)
64255	}
64256	return c.header_
64257}
64258
64259func (c *GlobalAddressesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
64260	reqHeaders := make(http.Header)
64261	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
64262	for k, v := range c.header_ {
64263		reqHeaders[k] = v
64264	}
64265	reqHeaders.Set("User-Agent", c.s.userAgent())
64266	var body io.Reader = nil
64267	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
64268	if err != nil {
64269		return nil, err
64270	}
64271	reqHeaders.Set("Content-Type", "application/json")
64272	c.urlParams_.Set("alt", alt)
64273	c.urlParams_.Set("prettyPrint", "false")
64274	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses/{resource}/testIamPermissions")
64275	urls += "?" + c.urlParams_.Encode()
64276	req, err := http.NewRequest("POST", urls, body)
64277	if err != nil {
64278		return nil, err
64279	}
64280	req.Header = reqHeaders
64281	googleapi.Expand(req.URL, map[string]string{
64282		"project":  c.project,
64283		"resource": c.resource,
64284	})
64285	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64286}
64287
64288// Do executes the "compute.globalAddresses.testIamPermissions" call.
64289// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
64290// non-2xx status code is an error. Response headers are in either
64291// *TestPermissionsResponse.ServerResponse.Header or (if a response was
64292// returned at all) in error.(*googleapi.Error).Header. Use
64293// googleapi.IsNotModified to check whether the returned error was
64294// because http.StatusNotModified was returned.
64295func (c *GlobalAddressesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
64296	gensupport.SetOptions(c.urlParams_, opts...)
64297	res, err := c.doRequest("json")
64298	if res != nil && res.StatusCode == http.StatusNotModified {
64299		if res.Body != nil {
64300			res.Body.Close()
64301		}
64302		return nil, &googleapi.Error{
64303			Code:   res.StatusCode,
64304			Header: res.Header,
64305		}
64306	}
64307	if err != nil {
64308		return nil, err
64309	}
64310	defer googleapi.CloseBody(res)
64311	if err := googleapi.CheckResponse(res); err != nil {
64312		return nil, err
64313	}
64314	ret := &TestPermissionsResponse{
64315		ServerResponse: googleapi.ServerResponse{
64316			Header:         res.Header,
64317			HTTPStatusCode: res.StatusCode,
64318		},
64319	}
64320	target := &ret
64321	if err := gensupport.DecodeResponse(target, res); err != nil {
64322		return nil, err
64323	}
64324	return ret, nil
64325	// {
64326	//   "description": "Returns permissions that a caller has on the specified resource.",
64327	//   "httpMethod": "POST",
64328	//   "id": "compute.globalAddresses.testIamPermissions",
64329	//   "parameterOrder": [
64330	//     "project",
64331	//     "resource"
64332	//   ],
64333	//   "parameters": {
64334	//     "project": {
64335	//       "description": "Project ID for this request.",
64336	//       "location": "path",
64337	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64338	//       "required": true,
64339	//       "type": "string"
64340	//     },
64341	//     "resource": {
64342	//       "description": "Name or id of the resource for this request.",
64343	//       "location": "path",
64344	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
64345	//       "required": true,
64346	//       "type": "string"
64347	//     }
64348	//   },
64349	//   "path": "{project}/global/addresses/{resource}/testIamPermissions",
64350	//   "request": {
64351	//     "$ref": "TestPermissionsRequest"
64352	//   },
64353	//   "response": {
64354	//     "$ref": "TestPermissionsResponse"
64355	//   },
64356	//   "scopes": [
64357	//     "https://www.googleapis.com/auth/cloud-platform",
64358	//     "https://www.googleapis.com/auth/compute",
64359	//     "https://www.googleapis.com/auth/compute.readonly"
64360	//   ]
64361	// }
64362
64363}
64364
64365// method id "compute.globalForwardingRules.delete":
64366
64367type GlobalForwardingRulesDeleteCall struct {
64368	s              *Service
64369	project        string
64370	forwardingRule string
64371	urlParams_     gensupport.URLParams
64372	ctx_           context.Context
64373	header_        http.Header
64374}
64375
64376// Delete: Deletes the specified GlobalForwardingRule resource.
64377// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/delete
64378func (r *GlobalForwardingRulesService) Delete(project string, forwardingRule string) *GlobalForwardingRulesDeleteCall {
64379	c := &GlobalForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64380	c.project = project
64381	c.forwardingRule = forwardingRule
64382	return c
64383}
64384
64385// RequestId sets the optional parameter "requestId": An optional
64386// request ID to identify requests. Specify a unique request ID so that
64387// if you must retry your request, the server will know to ignore the
64388// request if it has already been completed.
64389//
64390// For example, consider a situation where you make an initial request
64391// and the request times out. If you make the request again with the
64392// same request ID, the server can check if original operation with the
64393// same request ID was received, and if so, will ignore the second
64394// request. This prevents clients from accidentally creating duplicate
64395// commitments.
64396//
64397// The request ID must be a valid UUID with the exception that zero UUID
64398// is not supported (00000000-0000-0000-0000-000000000000).
64399func (c *GlobalForwardingRulesDeleteCall) RequestId(requestId string) *GlobalForwardingRulesDeleteCall {
64400	c.urlParams_.Set("requestId", requestId)
64401	return c
64402}
64403
64404// Fields allows partial responses to be retrieved. See
64405// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64406// for more information.
64407func (c *GlobalForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesDeleteCall {
64408	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64409	return c
64410}
64411
64412// Context sets the context to be used in this call's Do method. Any
64413// pending HTTP request will be aborted if the provided context is
64414// canceled.
64415func (c *GlobalForwardingRulesDeleteCall) Context(ctx context.Context) *GlobalForwardingRulesDeleteCall {
64416	c.ctx_ = ctx
64417	return c
64418}
64419
64420// Header returns an http.Header that can be modified by the caller to
64421// add HTTP headers to the request.
64422func (c *GlobalForwardingRulesDeleteCall) Header() http.Header {
64423	if c.header_ == nil {
64424		c.header_ = make(http.Header)
64425	}
64426	return c.header_
64427}
64428
64429func (c *GlobalForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) {
64430	reqHeaders := make(http.Header)
64431	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
64432	for k, v := range c.header_ {
64433		reqHeaders[k] = v
64434	}
64435	reqHeaders.Set("User-Agent", c.s.userAgent())
64436	var body io.Reader = nil
64437	c.urlParams_.Set("alt", alt)
64438	c.urlParams_.Set("prettyPrint", "false")
64439	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}")
64440	urls += "?" + c.urlParams_.Encode()
64441	req, err := http.NewRequest("DELETE", urls, body)
64442	if err != nil {
64443		return nil, err
64444	}
64445	req.Header = reqHeaders
64446	googleapi.Expand(req.URL, map[string]string{
64447		"project":        c.project,
64448		"forwardingRule": c.forwardingRule,
64449	})
64450	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64451}
64452
64453// Do executes the "compute.globalForwardingRules.delete" call.
64454// Exactly one of *Operation or error will be non-nil. Any non-2xx
64455// status code is an error. Response headers are in either
64456// *Operation.ServerResponse.Header or (if a response was returned at
64457// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64458// to check whether the returned error was because
64459// http.StatusNotModified was returned.
64460func (c *GlobalForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64461	gensupport.SetOptions(c.urlParams_, opts...)
64462	res, err := c.doRequest("json")
64463	if res != nil && res.StatusCode == http.StatusNotModified {
64464		if res.Body != nil {
64465			res.Body.Close()
64466		}
64467		return nil, &googleapi.Error{
64468			Code:   res.StatusCode,
64469			Header: res.Header,
64470		}
64471	}
64472	if err != nil {
64473		return nil, err
64474	}
64475	defer googleapi.CloseBody(res)
64476	if err := googleapi.CheckResponse(res); err != nil {
64477		return nil, err
64478	}
64479	ret := &Operation{
64480		ServerResponse: googleapi.ServerResponse{
64481			Header:         res.Header,
64482			HTTPStatusCode: res.StatusCode,
64483		},
64484	}
64485	target := &ret
64486	if err := gensupport.DecodeResponse(target, res); err != nil {
64487		return nil, err
64488	}
64489	return ret, nil
64490	// {
64491	//   "description": "Deletes the specified GlobalForwardingRule resource.",
64492	//   "httpMethod": "DELETE",
64493	//   "id": "compute.globalForwardingRules.delete",
64494	//   "parameterOrder": [
64495	//     "project",
64496	//     "forwardingRule"
64497	//   ],
64498	//   "parameters": {
64499	//     "forwardingRule": {
64500	//       "description": "Name of the ForwardingRule resource to delete.",
64501	//       "location": "path",
64502	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
64503	//       "required": true,
64504	//       "type": "string"
64505	//     },
64506	//     "project": {
64507	//       "description": "Project ID for this request.",
64508	//       "location": "path",
64509	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64510	//       "required": true,
64511	//       "type": "string"
64512	//     },
64513	//     "requestId": {
64514	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
64515	//       "location": "query",
64516	//       "type": "string"
64517	//     }
64518	//   },
64519	//   "path": "{project}/global/forwardingRules/{forwardingRule}",
64520	//   "response": {
64521	//     "$ref": "Operation"
64522	//   },
64523	//   "scopes": [
64524	//     "https://www.googleapis.com/auth/cloud-platform",
64525	//     "https://www.googleapis.com/auth/compute"
64526	//   ]
64527	// }
64528
64529}
64530
64531// method id "compute.globalForwardingRules.get":
64532
64533type GlobalForwardingRulesGetCall struct {
64534	s              *Service
64535	project        string
64536	forwardingRule string
64537	urlParams_     gensupport.URLParams
64538	ifNoneMatch_   string
64539	ctx_           context.Context
64540	header_        http.Header
64541}
64542
64543// Get: Returns the specified GlobalForwardingRule resource. Gets a list
64544// of available forwarding rules by making a list() request.
64545// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/get
64546func (r *GlobalForwardingRulesService) Get(project string, forwardingRule string) *GlobalForwardingRulesGetCall {
64547	c := &GlobalForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64548	c.project = project
64549	c.forwardingRule = forwardingRule
64550	return c
64551}
64552
64553// Fields allows partial responses to be retrieved. See
64554// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64555// for more information.
64556func (c *GlobalForwardingRulesGetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesGetCall {
64557	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64558	return c
64559}
64560
64561// IfNoneMatch sets the optional parameter which makes the operation
64562// fail if the object's ETag matches the given value. This is useful for
64563// getting updates only after the object has changed since the last
64564// request. Use googleapi.IsNotModified to check whether the response
64565// error from Do is the result of In-None-Match.
64566func (c *GlobalForwardingRulesGetCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesGetCall {
64567	c.ifNoneMatch_ = entityTag
64568	return c
64569}
64570
64571// Context sets the context to be used in this call's Do method. Any
64572// pending HTTP request will be aborted if the provided context is
64573// canceled.
64574func (c *GlobalForwardingRulesGetCall) Context(ctx context.Context) *GlobalForwardingRulesGetCall {
64575	c.ctx_ = ctx
64576	return c
64577}
64578
64579// Header returns an http.Header that can be modified by the caller to
64580// add HTTP headers to the request.
64581func (c *GlobalForwardingRulesGetCall) Header() http.Header {
64582	if c.header_ == nil {
64583		c.header_ = make(http.Header)
64584	}
64585	return c.header_
64586}
64587
64588func (c *GlobalForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) {
64589	reqHeaders := make(http.Header)
64590	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
64591	for k, v := range c.header_ {
64592		reqHeaders[k] = v
64593	}
64594	reqHeaders.Set("User-Agent", c.s.userAgent())
64595	if c.ifNoneMatch_ != "" {
64596		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64597	}
64598	var body io.Reader = nil
64599	c.urlParams_.Set("alt", alt)
64600	c.urlParams_.Set("prettyPrint", "false")
64601	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}")
64602	urls += "?" + c.urlParams_.Encode()
64603	req, err := http.NewRequest("GET", urls, body)
64604	if err != nil {
64605		return nil, err
64606	}
64607	req.Header = reqHeaders
64608	googleapi.Expand(req.URL, map[string]string{
64609		"project":        c.project,
64610		"forwardingRule": c.forwardingRule,
64611	})
64612	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64613}
64614
64615// Do executes the "compute.globalForwardingRules.get" call.
64616// Exactly one of *ForwardingRule or error will be non-nil. Any non-2xx
64617// status code is an error. Response headers are in either
64618// *ForwardingRule.ServerResponse.Header or (if a response was returned
64619// at all) in error.(*googleapi.Error).Header. Use
64620// googleapi.IsNotModified to check whether the returned error was
64621// because http.StatusNotModified was returned.
64622func (c *GlobalForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) {
64623	gensupport.SetOptions(c.urlParams_, opts...)
64624	res, err := c.doRequest("json")
64625	if res != nil && res.StatusCode == http.StatusNotModified {
64626		if res.Body != nil {
64627			res.Body.Close()
64628		}
64629		return nil, &googleapi.Error{
64630			Code:   res.StatusCode,
64631			Header: res.Header,
64632		}
64633	}
64634	if err != nil {
64635		return nil, err
64636	}
64637	defer googleapi.CloseBody(res)
64638	if err := googleapi.CheckResponse(res); err != nil {
64639		return nil, err
64640	}
64641	ret := &ForwardingRule{
64642		ServerResponse: googleapi.ServerResponse{
64643			Header:         res.Header,
64644			HTTPStatusCode: res.StatusCode,
64645		},
64646	}
64647	target := &ret
64648	if err := gensupport.DecodeResponse(target, res); err != nil {
64649		return nil, err
64650	}
64651	return ret, nil
64652	// {
64653	//   "description": "Returns the specified GlobalForwardingRule resource. Gets a list of available forwarding rules by making a list() request.",
64654	//   "httpMethod": "GET",
64655	//   "id": "compute.globalForwardingRules.get",
64656	//   "parameterOrder": [
64657	//     "project",
64658	//     "forwardingRule"
64659	//   ],
64660	//   "parameters": {
64661	//     "forwardingRule": {
64662	//       "description": "Name of the ForwardingRule resource to return.",
64663	//       "location": "path",
64664	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
64665	//       "required": true,
64666	//       "type": "string"
64667	//     },
64668	//     "project": {
64669	//       "description": "Project ID for this request.",
64670	//       "location": "path",
64671	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64672	//       "required": true,
64673	//       "type": "string"
64674	//     }
64675	//   },
64676	//   "path": "{project}/global/forwardingRules/{forwardingRule}",
64677	//   "response": {
64678	//     "$ref": "ForwardingRule"
64679	//   },
64680	//   "scopes": [
64681	//     "https://www.googleapis.com/auth/cloud-platform",
64682	//     "https://www.googleapis.com/auth/compute",
64683	//     "https://www.googleapis.com/auth/compute.readonly"
64684	//   ]
64685	// }
64686
64687}
64688
64689// method id "compute.globalForwardingRules.insert":
64690
64691type GlobalForwardingRulesInsertCall struct {
64692	s              *Service
64693	project        string
64694	forwardingrule *ForwardingRule
64695	urlParams_     gensupport.URLParams
64696	ctx_           context.Context
64697	header_        http.Header
64698}
64699
64700// Insert: Creates a GlobalForwardingRule resource in the specified
64701// project using the data included in the request.
64702// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/insert
64703func (r *GlobalForwardingRulesService) Insert(project string, forwardingrule *ForwardingRule) *GlobalForwardingRulesInsertCall {
64704	c := &GlobalForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64705	c.project = project
64706	c.forwardingrule = forwardingrule
64707	return c
64708}
64709
64710// RequestId sets the optional parameter "requestId": An optional
64711// request ID to identify requests. Specify a unique request ID so that
64712// if you must retry your request, the server will know to ignore the
64713// request if it has already been completed.
64714//
64715// For example, consider a situation where you make an initial request
64716// and the request times out. If you make the request again with the
64717// same request ID, the server can check if original operation with the
64718// same request ID was received, and if so, will ignore the second
64719// request. This prevents clients from accidentally creating duplicate
64720// commitments.
64721//
64722// The request ID must be a valid UUID with the exception that zero UUID
64723// is not supported (00000000-0000-0000-0000-000000000000).
64724func (c *GlobalForwardingRulesInsertCall) RequestId(requestId string) *GlobalForwardingRulesInsertCall {
64725	c.urlParams_.Set("requestId", requestId)
64726	return c
64727}
64728
64729// Fields allows partial responses to be retrieved. See
64730// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64731// for more information.
64732func (c *GlobalForwardingRulesInsertCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesInsertCall {
64733	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64734	return c
64735}
64736
64737// Context sets the context to be used in this call's Do method. Any
64738// pending HTTP request will be aborted if the provided context is
64739// canceled.
64740func (c *GlobalForwardingRulesInsertCall) Context(ctx context.Context) *GlobalForwardingRulesInsertCall {
64741	c.ctx_ = ctx
64742	return c
64743}
64744
64745// Header returns an http.Header that can be modified by the caller to
64746// add HTTP headers to the request.
64747func (c *GlobalForwardingRulesInsertCall) Header() http.Header {
64748	if c.header_ == nil {
64749		c.header_ = make(http.Header)
64750	}
64751	return c.header_
64752}
64753
64754func (c *GlobalForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) {
64755	reqHeaders := make(http.Header)
64756	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
64757	for k, v := range c.header_ {
64758		reqHeaders[k] = v
64759	}
64760	reqHeaders.Set("User-Agent", c.s.userAgent())
64761	var body io.Reader = nil
64762	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
64763	if err != nil {
64764		return nil, err
64765	}
64766	reqHeaders.Set("Content-Type", "application/json")
64767	c.urlParams_.Set("alt", alt)
64768	c.urlParams_.Set("prettyPrint", "false")
64769	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules")
64770	urls += "?" + c.urlParams_.Encode()
64771	req, err := http.NewRequest("POST", urls, body)
64772	if err != nil {
64773		return nil, err
64774	}
64775	req.Header = reqHeaders
64776	googleapi.Expand(req.URL, map[string]string{
64777		"project": c.project,
64778	})
64779	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64780}
64781
64782// Do executes the "compute.globalForwardingRules.insert" call.
64783// Exactly one of *Operation or error will be non-nil. Any non-2xx
64784// status code is an error. Response headers are in either
64785// *Operation.ServerResponse.Header or (if a response was returned at
64786// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64787// to check whether the returned error was because
64788// http.StatusNotModified was returned.
64789func (c *GlobalForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64790	gensupport.SetOptions(c.urlParams_, opts...)
64791	res, err := c.doRequest("json")
64792	if res != nil && res.StatusCode == http.StatusNotModified {
64793		if res.Body != nil {
64794			res.Body.Close()
64795		}
64796		return nil, &googleapi.Error{
64797			Code:   res.StatusCode,
64798			Header: res.Header,
64799		}
64800	}
64801	if err != nil {
64802		return nil, err
64803	}
64804	defer googleapi.CloseBody(res)
64805	if err := googleapi.CheckResponse(res); err != nil {
64806		return nil, err
64807	}
64808	ret := &Operation{
64809		ServerResponse: googleapi.ServerResponse{
64810			Header:         res.Header,
64811			HTTPStatusCode: res.StatusCode,
64812		},
64813	}
64814	target := &ret
64815	if err := gensupport.DecodeResponse(target, res); err != nil {
64816		return nil, err
64817	}
64818	return ret, nil
64819	// {
64820	//   "description": "Creates a GlobalForwardingRule resource in the specified project using the data included in the request.",
64821	//   "httpMethod": "POST",
64822	//   "id": "compute.globalForwardingRules.insert",
64823	//   "parameterOrder": [
64824	//     "project"
64825	//   ],
64826	//   "parameters": {
64827	//     "project": {
64828	//       "description": "Project ID for this request.",
64829	//       "location": "path",
64830	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64831	//       "required": true,
64832	//       "type": "string"
64833	//     },
64834	//     "requestId": {
64835	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
64836	//       "location": "query",
64837	//       "type": "string"
64838	//     }
64839	//   },
64840	//   "path": "{project}/global/forwardingRules",
64841	//   "request": {
64842	//     "$ref": "ForwardingRule"
64843	//   },
64844	//   "response": {
64845	//     "$ref": "Operation"
64846	//   },
64847	//   "scopes": [
64848	//     "https://www.googleapis.com/auth/cloud-platform",
64849	//     "https://www.googleapis.com/auth/compute"
64850	//   ]
64851	// }
64852
64853}
64854
64855// method id "compute.globalForwardingRules.list":
64856
64857type GlobalForwardingRulesListCall struct {
64858	s            *Service
64859	project      string
64860	urlParams_   gensupport.URLParams
64861	ifNoneMatch_ string
64862	ctx_         context.Context
64863	header_      http.Header
64864}
64865
64866// List: Retrieves a list of GlobalForwardingRule resources available to
64867// the specified project.
64868// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/list
64869func (r *GlobalForwardingRulesService) List(project string) *GlobalForwardingRulesListCall {
64870	c := &GlobalForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64871	c.project = project
64872	return c
64873}
64874
64875// Filter sets the optional parameter "filter": A filter expression that
64876// filters resources listed in the response. The expression must specify
64877// the field name, a comparison operator, and the value that you want to
64878// use for filtering. The value must be a string, a number, or a
64879// boolean. The comparison operator must be either =, !=, >, or <.
64880//
64881// For example, if you are filtering Compute Engine instances, you can
64882// exclude instances named example-instance by specifying name !=
64883// example-instance.
64884//
64885// You can also filter nested fields. For example, you could specify
64886// scheduling.automaticRestart = false to include instances only if they
64887// are not scheduled for automatic restarts. You can use filtering on
64888// nested fields to filter based on resource labels.
64889//
64890// To filter on multiple expressions, provide each separate expression
64891// within parentheses. For example, (scheduling.automaticRestart = true)
64892// (cpuPlatform = "Intel Skylake"). By default, each expression is an
64893// AND expression. However, you can include AND and OR expressions
64894// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
64895// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
64896// true).
64897func (c *GlobalForwardingRulesListCall) Filter(filter string) *GlobalForwardingRulesListCall {
64898	c.urlParams_.Set("filter", filter)
64899	return c
64900}
64901
64902// MaxResults sets the optional parameter "maxResults": The maximum
64903// number of results per page that should be returned. If the number of
64904// available results is larger than maxResults, Compute Engine returns a
64905// nextPageToken that can be used to get the next page of results in
64906// subsequent list requests. Acceptable values are 0 to 500, inclusive.
64907// (Default: 500)
64908func (c *GlobalForwardingRulesListCall) MaxResults(maxResults int64) *GlobalForwardingRulesListCall {
64909	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
64910	return c
64911}
64912
64913// OrderBy sets the optional parameter "orderBy": Sorts list results by
64914// a certain order. By default, results are returned in alphanumerical
64915// order based on the resource name.
64916//
64917// You can also sort results in descending order based on the creation
64918// timestamp using orderBy="creationTimestamp desc". This sorts results
64919// based on the creationTimestamp field in reverse chronological order
64920// (newest result first). Use this to sort resources like operations so
64921// that the newest operation is returned first.
64922//
64923// Currently, only sorting by name or creationTimestamp desc is
64924// supported.
64925func (c *GlobalForwardingRulesListCall) OrderBy(orderBy string) *GlobalForwardingRulesListCall {
64926	c.urlParams_.Set("orderBy", orderBy)
64927	return c
64928}
64929
64930// PageToken sets the optional parameter "pageToken": Specifies a page
64931// token to use. Set pageToken to the nextPageToken returned by a
64932// previous list request to get the next page of results.
64933func (c *GlobalForwardingRulesListCall) PageToken(pageToken string) *GlobalForwardingRulesListCall {
64934	c.urlParams_.Set("pageToken", pageToken)
64935	return c
64936}
64937
64938// Fields allows partial responses to be retrieved. See
64939// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64940// for more information.
64941func (c *GlobalForwardingRulesListCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesListCall {
64942	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64943	return c
64944}
64945
64946// IfNoneMatch sets the optional parameter which makes the operation
64947// fail if the object's ETag matches the given value. This is useful for
64948// getting updates only after the object has changed since the last
64949// request. Use googleapi.IsNotModified to check whether the response
64950// error from Do is the result of In-None-Match.
64951func (c *GlobalForwardingRulesListCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesListCall {
64952	c.ifNoneMatch_ = entityTag
64953	return c
64954}
64955
64956// Context sets the context to be used in this call's Do method. Any
64957// pending HTTP request will be aborted if the provided context is
64958// canceled.
64959func (c *GlobalForwardingRulesListCall) Context(ctx context.Context) *GlobalForwardingRulesListCall {
64960	c.ctx_ = ctx
64961	return c
64962}
64963
64964// Header returns an http.Header that can be modified by the caller to
64965// add HTTP headers to the request.
64966func (c *GlobalForwardingRulesListCall) Header() http.Header {
64967	if c.header_ == nil {
64968		c.header_ = make(http.Header)
64969	}
64970	return c.header_
64971}
64972
64973func (c *GlobalForwardingRulesListCall) doRequest(alt string) (*http.Response, error) {
64974	reqHeaders := make(http.Header)
64975	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
64976	for k, v := range c.header_ {
64977		reqHeaders[k] = v
64978	}
64979	reqHeaders.Set("User-Agent", c.s.userAgent())
64980	if c.ifNoneMatch_ != "" {
64981		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64982	}
64983	var body io.Reader = nil
64984	c.urlParams_.Set("alt", alt)
64985	c.urlParams_.Set("prettyPrint", "false")
64986	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules")
64987	urls += "?" + c.urlParams_.Encode()
64988	req, err := http.NewRequest("GET", urls, body)
64989	if err != nil {
64990		return nil, err
64991	}
64992	req.Header = reqHeaders
64993	googleapi.Expand(req.URL, map[string]string{
64994		"project": c.project,
64995	})
64996	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64997}
64998
64999// Do executes the "compute.globalForwardingRules.list" call.
65000// Exactly one of *ForwardingRuleList or error will be non-nil. Any
65001// non-2xx status code is an error. Response headers are in either
65002// *ForwardingRuleList.ServerResponse.Header or (if a response was
65003// returned at all) in error.(*googleapi.Error).Header. Use
65004// googleapi.IsNotModified to check whether the returned error was
65005// because http.StatusNotModified was returned.
65006func (c *GlobalForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) {
65007	gensupport.SetOptions(c.urlParams_, opts...)
65008	res, err := c.doRequest("json")
65009	if res != nil && res.StatusCode == http.StatusNotModified {
65010		if res.Body != nil {
65011			res.Body.Close()
65012		}
65013		return nil, &googleapi.Error{
65014			Code:   res.StatusCode,
65015			Header: res.Header,
65016		}
65017	}
65018	if err != nil {
65019		return nil, err
65020	}
65021	defer googleapi.CloseBody(res)
65022	if err := googleapi.CheckResponse(res); err != nil {
65023		return nil, err
65024	}
65025	ret := &ForwardingRuleList{
65026		ServerResponse: googleapi.ServerResponse{
65027			Header:         res.Header,
65028			HTTPStatusCode: res.StatusCode,
65029		},
65030	}
65031	target := &ret
65032	if err := gensupport.DecodeResponse(target, res); err != nil {
65033		return nil, err
65034	}
65035	return ret, nil
65036	// {
65037	//   "description": "Retrieves a list of GlobalForwardingRule resources available to the specified project.",
65038	//   "httpMethod": "GET",
65039	//   "id": "compute.globalForwardingRules.list",
65040	//   "parameterOrder": [
65041	//     "project"
65042	//   ],
65043	//   "parameters": {
65044	//     "filter": {
65045	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
65046	//       "location": "query",
65047	//       "type": "string"
65048	//     },
65049	//     "maxResults": {
65050	//       "default": "500",
65051	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
65052	//       "format": "uint32",
65053	//       "location": "query",
65054	//       "minimum": "0",
65055	//       "type": "integer"
65056	//     },
65057	//     "orderBy": {
65058	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
65059	//       "location": "query",
65060	//       "type": "string"
65061	//     },
65062	//     "pageToken": {
65063	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
65064	//       "location": "query",
65065	//       "type": "string"
65066	//     },
65067	//     "project": {
65068	//       "description": "Project ID for this request.",
65069	//       "location": "path",
65070	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65071	//       "required": true,
65072	//       "type": "string"
65073	//     }
65074	//   },
65075	//   "path": "{project}/global/forwardingRules",
65076	//   "response": {
65077	//     "$ref": "ForwardingRuleList"
65078	//   },
65079	//   "scopes": [
65080	//     "https://www.googleapis.com/auth/cloud-platform",
65081	//     "https://www.googleapis.com/auth/compute",
65082	//     "https://www.googleapis.com/auth/compute.readonly"
65083	//   ]
65084	// }
65085
65086}
65087
65088// Pages invokes f for each page of results.
65089// A non-nil error returned from f will halt the iteration.
65090// The provided context supersedes any context provided to the Context method.
65091func (c *GlobalForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error {
65092	c.ctx_ = ctx
65093	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
65094	for {
65095		x, err := c.Do()
65096		if err != nil {
65097			return err
65098		}
65099		if err := f(x); err != nil {
65100			return err
65101		}
65102		if x.NextPageToken == "" {
65103			return nil
65104		}
65105		c.PageToken(x.NextPageToken)
65106	}
65107}
65108
65109// method id "compute.globalForwardingRules.patch":
65110
65111type GlobalForwardingRulesPatchCall struct {
65112	s              *Service
65113	project        string
65114	forwardingRule string
65115	forwardingrule *ForwardingRule
65116	urlParams_     gensupport.URLParams
65117	ctx_           context.Context
65118	header_        http.Header
65119}
65120
65121// Patch: Updates the specified forwarding rule with the data included
65122// in the request. This method supports PATCH semantics and uses the
65123// JSON merge patch format and processing rules. Currently, you can only
65124// patch the network_tier field.
65125func (r *GlobalForwardingRulesService) Patch(project string, forwardingRule string, forwardingrule *ForwardingRule) *GlobalForwardingRulesPatchCall {
65126	c := &GlobalForwardingRulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65127	c.project = project
65128	c.forwardingRule = forwardingRule
65129	c.forwardingrule = forwardingrule
65130	return c
65131}
65132
65133// RequestId sets the optional parameter "requestId": An optional
65134// request ID to identify requests. Specify a unique request ID so that
65135// if you must retry your request, the server will know to ignore the
65136// request if it has already been completed.
65137//
65138// For example, consider a situation where you make an initial request
65139// and the request times out. If you make the request again with the
65140// same request ID, the server can check if original operation with the
65141// same request ID was received, and if so, will ignore the second
65142// request. This prevents clients from accidentally creating duplicate
65143// commitments.
65144//
65145// The request ID must be a valid UUID with the exception that zero UUID
65146// is not supported (00000000-0000-0000-0000-000000000000).
65147func (c *GlobalForwardingRulesPatchCall) RequestId(requestId string) *GlobalForwardingRulesPatchCall {
65148	c.urlParams_.Set("requestId", requestId)
65149	return c
65150}
65151
65152// Fields allows partial responses to be retrieved. See
65153// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65154// for more information.
65155func (c *GlobalForwardingRulesPatchCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesPatchCall {
65156	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65157	return c
65158}
65159
65160// Context sets the context to be used in this call's Do method. Any
65161// pending HTTP request will be aborted if the provided context is
65162// canceled.
65163func (c *GlobalForwardingRulesPatchCall) Context(ctx context.Context) *GlobalForwardingRulesPatchCall {
65164	c.ctx_ = ctx
65165	return c
65166}
65167
65168// Header returns an http.Header that can be modified by the caller to
65169// add HTTP headers to the request.
65170func (c *GlobalForwardingRulesPatchCall) Header() http.Header {
65171	if c.header_ == nil {
65172		c.header_ = make(http.Header)
65173	}
65174	return c.header_
65175}
65176
65177func (c *GlobalForwardingRulesPatchCall) doRequest(alt string) (*http.Response, error) {
65178	reqHeaders := make(http.Header)
65179	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
65180	for k, v := range c.header_ {
65181		reqHeaders[k] = v
65182	}
65183	reqHeaders.Set("User-Agent", c.s.userAgent())
65184	var body io.Reader = nil
65185	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
65186	if err != nil {
65187		return nil, err
65188	}
65189	reqHeaders.Set("Content-Type", "application/json")
65190	c.urlParams_.Set("alt", alt)
65191	c.urlParams_.Set("prettyPrint", "false")
65192	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}")
65193	urls += "?" + c.urlParams_.Encode()
65194	req, err := http.NewRequest("PATCH", urls, body)
65195	if err != nil {
65196		return nil, err
65197	}
65198	req.Header = reqHeaders
65199	googleapi.Expand(req.URL, map[string]string{
65200		"project":        c.project,
65201		"forwardingRule": c.forwardingRule,
65202	})
65203	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65204}
65205
65206// Do executes the "compute.globalForwardingRules.patch" call.
65207// Exactly one of *Operation or error will be non-nil. Any non-2xx
65208// status code is an error. Response headers are in either
65209// *Operation.ServerResponse.Header or (if a response was returned at
65210// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65211// to check whether the returned error was because
65212// http.StatusNotModified was returned.
65213func (c *GlobalForwardingRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65214	gensupport.SetOptions(c.urlParams_, opts...)
65215	res, err := c.doRequest("json")
65216	if res != nil && res.StatusCode == http.StatusNotModified {
65217		if res.Body != nil {
65218			res.Body.Close()
65219		}
65220		return nil, &googleapi.Error{
65221			Code:   res.StatusCode,
65222			Header: res.Header,
65223		}
65224	}
65225	if err != nil {
65226		return nil, err
65227	}
65228	defer googleapi.CloseBody(res)
65229	if err := googleapi.CheckResponse(res); err != nil {
65230		return nil, err
65231	}
65232	ret := &Operation{
65233		ServerResponse: googleapi.ServerResponse{
65234			Header:         res.Header,
65235			HTTPStatusCode: res.StatusCode,
65236		},
65237	}
65238	target := &ret
65239	if err := gensupport.DecodeResponse(target, res); err != nil {
65240		return nil, err
65241	}
65242	return ret, nil
65243	// {
65244	//   "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.",
65245	//   "httpMethod": "PATCH",
65246	//   "id": "compute.globalForwardingRules.patch",
65247	//   "parameterOrder": [
65248	//     "project",
65249	//     "forwardingRule"
65250	//   ],
65251	//   "parameters": {
65252	//     "forwardingRule": {
65253	//       "description": "Name of the ForwardingRule resource to patch.",
65254	//       "location": "path",
65255	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
65256	//       "required": true,
65257	//       "type": "string"
65258	//     },
65259	//     "project": {
65260	//       "description": "Project ID for this request.",
65261	//       "location": "path",
65262	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65263	//       "required": true,
65264	//       "type": "string"
65265	//     },
65266	//     "requestId": {
65267	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65268	//       "location": "query",
65269	//       "type": "string"
65270	//     }
65271	//   },
65272	//   "path": "{project}/global/forwardingRules/{forwardingRule}",
65273	//   "request": {
65274	//     "$ref": "ForwardingRule"
65275	//   },
65276	//   "response": {
65277	//     "$ref": "Operation"
65278	//   },
65279	//   "scopes": [
65280	//     "https://www.googleapis.com/auth/cloud-platform",
65281	//     "https://www.googleapis.com/auth/compute"
65282	//   ]
65283	// }
65284
65285}
65286
65287// method id "compute.globalForwardingRules.setLabels":
65288
65289type GlobalForwardingRulesSetLabelsCall struct {
65290	s                      *Service
65291	project                string
65292	resource               string
65293	globalsetlabelsrequest *GlobalSetLabelsRequest
65294	urlParams_             gensupport.URLParams
65295	ctx_                   context.Context
65296	header_                http.Header
65297}
65298
65299// SetLabels: Sets the labels on the specified resource. To learn more
65300// about labels, read the Labeling Resources documentation.
65301func (r *GlobalForwardingRulesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *GlobalForwardingRulesSetLabelsCall {
65302	c := &GlobalForwardingRulesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65303	c.project = project
65304	c.resource = resource
65305	c.globalsetlabelsrequest = globalsetlabelsrequest
65306	return c
65307}
65308
65309// Fields allows partial responses to be retrieved. See
65310// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65311// for more information.
65312func (c *GlobalForwardingRulesSetLabelsCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesSetLabelsCall {
65313	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65314	return c
65315}
65316
65317// Context sets the context to be used in this call's Do method. Any
65318// pending HTTP request will be aborted if the provided context is
65319// canceled.
65320func (c *GlobalForwardingRulesSetLabelsCall) Context(ctx context.Context) *GlobalForwardingRulesSetLabelsCall {
65321	c.ctx_ = ctx
65322	return c
65323}
65324
65325// Header returns an http.Header that can be modified by the caller to
65326// add HTTP headers to the request.
65327func (c *GlobalForwardingRulesSetLabelsCall) Header() http.Header {
65328	if c.header_ == nil {
65329		c.header_ = make(http.Header)
65330	}
65331	return c.header_
65332}
65333
65334func (c *GlobalForwardingRulesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
65335	reqHeaders := make(http.Header)
65336	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
65337	for k, v := range c.header_ {
65338		reqHeaders[k] = v
65339	}
65340	reqHeaders.Set("User-Agent", c.s.userAgent())
65341	var body io.Reader = nil
65342	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
65343	if err != nil {
65344		return nil, err
65345	}
65346	reqHeaders.Set("Content-Type", "application/json")
65347	c.urlParams_.Set("alt", alt)
65348	c.urlParams_.Set("prettyPrint", "false")
65349	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{resource}/setLabels")
65350	urls += "?" + c.urlParams_.Encode()
65351	req, err := http.NewRequest("POST", urls, body)
65352	if err != nil {
65353		return nil, err
65354	}
65355	req.Header = reqHeaders
65356	googleapi.Expand(req.URL, map[string]string{
65357		"project":  c.project,
65358		"resource": c.resource,
65359	})
65360	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65361}
65362
65363// Do executes the "compute.globalForwardingRules.setLabels" call.
65364// Exactly one of *Operation or error will be non-nil. Any non-2xx
65365// status code is an error. Response headers are in either
65366// *Operation.ServerResponse.Header or (if a response was returned at
65367// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65368// to check whether the returned error was because
65369// http.StatusNotModified was returned.
65370func (c *GlobalForwardingRulesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65371	gensupport.SetOptions(c.urlParams_, opts...)
65372	res, err := c.doRequest("json")
65373	if res != nil && res.StatusCode == http.StatusNotModified {
65374		if res.Body != nil {
65375			res.Body.Close()
65376		}
65377		return nil, &googleapi.Error{
65378			Code:   res.StatusCode,
65379			Header: res.Header,
65380		}
65381	}
65382	if err != nil {
65383		return nil, err
65384	}
65385	defer googleapi.CloseBody(res)
65386	if err := googleapi.CheckResponse(res); err != nil {
65387		return nil, err
65388	}
65389	ret := &Operation{
65390		ServerResponse: googleapi.ServerResponse{
65391			Header:         res.Header,
65392			HTTPStatusCode: res.StatusCode,
65393		},
65394	}
65395	target := &ret
65396	if err := gensupport.DecodeResponse(target, res); err != nil {
65397		return nil, err
65398	}
65399	return ret, nil
65400	// {
65401	//   "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling Resources documentation.",
65402	//   "httpMethod": "POST",
65403	//   "id": "compute.globalForwardingRules.setLabels",
65404	//   "parameterOrder": [
65405	//     "project",
65406	//     "resource"
65407	//   ],
65408	//   "parameters": {
65409	//     "project": {
65410	//       "description": "Project ID for this request.",
65411	//       "location": "path",
65412	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65413	//       "required": true,
65414	//       "type": "string"
65415	//     },
65416	//     "resource": {
65417	//       "description": "Name or id of the resource for this request.",
65418	//       "location": "path",
65419	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
65420	//       "required": true,
65421	//       "type": "string"
65422	//     }
65423	//   },
65424	//   "path": "{project}/global/forwardingRules/{resource}/setLabels",
65425	//   "request": {
65426	//     "$ref": "GlobalSetLabelsRequest"
65427	//   },
65428	//   "response": {
65429	//     "$ref": "Operation"
65430	//   },
65431	//   "scopes": [
65432	//     "https://www.googleapis.com/auth/cloud-platform",
65433	//     "https://www.googleapis.com/auth/compute"
65434	//   ]
65435	// }
65436
65437}
65438
65439// method id "compute.globalForwardingRules.setTarget":
65440
65441type GlobalForwardingRulesSetTargetCall struct {
65442	s               *Service
65443	project         string
65444	forwardingRule  string
65445	targetreference *TargetReference
65446	urlParams_      gensupport.URLParams
65447	ctx_            context.Context
65448	header_         http.Header
65449}
65450
65451// SetTarget: Changes target URL for the GlobalForwardingRule resource.
65452// The new target should be of the same type as the old target.
65453// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/setTarget
65454func (r *GlobalForwardingRulesService) SetTarget(project string, forwardingRule string, targetreference *TargetReference) *GlobalForwardingRulesSetTargetCall {
65455	c := &GlobalForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65456	c.project = project
65457	c.forwardingRule = forwardingRule
65458	c.targetreference = targetreference
65459	return c
65460}
65461
65462// RequestId sets the optional parameter "requestId": An optional
65463// request ID to identify requests. Specify a unique request ID so that
65464// if you must retry your request, the server will know to ignore the
65465// request if it has already been completed.
65466//
65467// For example, consider a situation where you make an initial request
65468// and the request times out. If you make the request again with the
65469// same request ID, the server can check if original operation with the
65470// same request ID was received, and if so, will ignore the second
65471// request. This prevents clients from accidentally creating duplicate
65472// commitments.
65473//
65474// The request ID must be a valid UUID with the exception that zero UUID
65475// is not supported (00000000-0000-0000-0000-000000000000).
65476func (c *GlobalForwardingRulesSetTargetCall) RequestId(requestId string) *GlobalForwardingRulesSetTargetCall {
65477	c.urlParams_.Set("requestId", requestId)
65478	return c
65479}
65480
65481// Fields allows partial responses to be retrieved. See
65482// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65483// for more information.
65484func (c *GlobalForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesSetTargetCall {
65485	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65486	return c
65487}
65488
65489// Context sets the context to be used in this call's Do method. Any
65490// pending HTTP request will be aborted if the provided context is
65491// canceled.
65492func (c *GlobalForwardingRulesSetTargetCall) Context(ctx context.Context) *GlobalForwardingRulesSetTargetCall {
65493	c.ctx_ = ctx
65494	return c
65495}
65496
65497// Header returns an http.Header that can be modified by the caller to
65498// add HTTP headers to the request.
65499func (c *GlobalForwardingRulesSetTargetCall) Header() http.Header {
65500	if c.header_ == nil {
65501		c.header_ = make(http.Header)
65502	}
65503	return c.header_
65504}
65505
65506func (c *GlobalForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) {
65507	reqHeaders := make(http.Header)
65508	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
65509	for k, v := range c.header_ {
65510		reqHeaders[k] = v
65511	}
65512	reqHeaders.Set("User-Agent", c.s.userAgent())
65513	var body io.Reader = nil
65514	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
65515	if err != nil {
65516		return nil, err
65517	}
65518	reqHeaders.Set("Content-Type", "application/json")
65519	c.urlParams_.Set("alt", alt)
65520	c.urlParams_.Set("prettyPrint", "false")
65521	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}/setTarget")
65522	urls += "?" + c.urlParams_.Encode()
65523	req, err := http.NewRequest("POST", urls, body)
65524	if err != nil {
65525		return nil, err
65526	}
65527	req.Header = reqHeaders
65528	googleapi.Expand(req.URL, map[string]string{
65529		"project":        c.project,
65530		"forwardingRule": c.forwardingRule,
65531	})
65532	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65533}
65534
65535// Do executes the "compute.globalForwardingRules.setTarget" call.
65536// Exactly one of *Operation or error will be non-nil. Any non-2xx
65537// status code is an error. Response headers are in either
65538// *Operation.ServerResponse.Header or (if a response was returned at
65539// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65540// to check whether the returned error was because
65541// http.StatusNotModified was returned.
65542func (c *GlobalForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65543	gensupport.SetOptions(c.urlParams_, opts...)
65544	res, err := c.doRequest("json")
65545	if res != nil && res.StatusCode == http.StatusNotModified {
65546		if res.Body != nil {
65547			res.Body.Close()
65548		}
65549		return nil, &googleapi.Error{
65550			Code:   res.StatusCode,
65551			Header: res.Header,
65552		}
65553	}
65554	if err != nil {
65555		return nil, err
65556	}
65557	defer googleapi.CloseBody(res)
65558	if err := googleapi.CheckResponse(res); err != nil {
65559		return nil, err
65560	}
65561	ret := &Operation{
65562		ServerResponse: googleapi.ServerResponse{
65563			Header:         res.Header,
65564			HTTPStatusCode: res.StatusCode,
65565		},
65566	}
65567	target := &ret
65568	if err := gensupport.DecodeResponse(target, res); err != nil {
65569		return nil, err
65570	}
65571	return ret, nil
65572	// {
65573	//   "description": "Changes target URL for the GlobalForwardingRule resource. The new target should be of the same type as the old target.",
65574	//   "httpMethod": "POST",
65575	//   "id": "compute.globalForwardingRules.setTarget",
65576	//   "parameterOrder": [
65577	//     "project",
65578	//     "forwardingRule"
65579	//   ],
65580	//   "parameters": {
65581	//     "forwardingRule": {
65582	//       "description": "Name of the ForwardingRule resource in which target is to be set.",
65583	//       "location": "path",
65584	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
65585	//       "required": true,
65586	//       "type": "string"
65587	//     },
65588	//     "project": {
65589	//       "description": "Project ID for this request.",
65590	//       "location": "path",
65591	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65592	//       "required": true,
65593	//       "type": "string"
65594	//     },
65595	//     "requestId": {
65596	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65597	//       "location": "query",
65598	//       "type": "string"
65599	//     }
65600	//   },
65601	//   "path": "{project}/global/forwardingRules/{forwardingRule}/setTarget",
65602	//   "request": {
65603	//     "$ref": "TargetReference"
65604	//   },
65605	//   "response": {
65606	//     "$ref": "Operation"
65607	//   },
65608	//   "scopes": [
65609	//     "https://www.googleapis.com/auth/cloud-platform",
65610	//     "https://www.googleapis.com/auth/compute"
65611	//   ]
65612	// }
65613
65614}
65615
65616// method id "compute.globalForwardingRules.testIamPermissions":
65617
65618type GlobalForwardingRulesTestIamPermissionsCall struct {
65619	s                      *Service
65620	project                string
65621	resource               string
65622	testpermissionsrequest *TestPermissionsRequest
65623	urlParams_             gensupport.URLParams
65624	ctx_                   context.Context
65625	header_                http.Header
65626}
65627
65628// TestIamPermissions: Returns permissions that a caller has on the
65629// specified resource.
65630func (r *GlobalForwardingRulesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *GlobalForwardingRulesTestIamPermissionsCall {
65631	c := &GlobalForwardingRulesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65632	c.project = project
65633	c.resource = resource
65634	c.testpermissionsrequest = testpermissionsrequest
65635	return c
65636}
65637
65638// Fields allows partial responses to be retrieved. See
65639// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65640// for more information.
65641func (c *GlobalForwardingRulesTestIamPermissionsCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesTestIamPermissionsCall {
65642	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65643	return c
65644}
65645
65646// Context sets the context to be used in this call's Do method. Any
65647// pending HTTP request will be aborted if the provided context is
65648// canceled.
65649func (c *GlobalForwardingRulesTestIamPermissionsCall) Context(ctx context.Context) *GlobalForwardingRulesTestIamPermissionsCall {
65650	c.ctx_ = ctx
65651	return c
65652}
65653
65654// Header returns an http.Header that can be modified by the caller to
65655// add HTTP headers to the request.
65656func (c *GlobalForwardingRulesTestIamPermissionsCall) Header() http.Header {
65657	if c.header_ == nil {
65658		c.header_ = make(http.Header)
65659	}
65660	return c.header_
65661}
65662
65663func (c *GlobalForwardingRulesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
65664	reqHeaders := make(http.Header)
65665	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
65666	for k, v := range c.header_ {
65667		reqHeaders[k] = v
65668	}
65669	reqHeaders.Set("User-Agent", c.s.userAgent())
65670	var body io.Reader = nil
65671	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
65672	if err != nil {
65673		return nil, err
65674	}
65675	reqHeaders.Set("Content-Type", "application/json")
65676	c.urlParams_.Set("alt", alt)
65677	c.urlParams_.Set("prettyPrint", "false")
65678	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{resource}/testIamPermissions")
65679	urls += "?" + c.urlParams_.Encode()
65680	req, err := http.NewRequest("POST", urls, body)
65681	if err != nil {
65682		return nil, err
65683	}
65684	req.Header = reqHeaders
65685	googleapi.Expand(req.URL, map[string]string{
65686		"project":  c.project,
65687		"resource": c.resource,
65688	})
65689	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65690}
65691
65692// Do executes the "compute.globalForwardingRules.testIamPermissions" call.
65693// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
65694// non-2xx status code is an error. Response headers are in either
65695// *TestPermissionsResponse.ServerResponse.Header or (if a response was
65696// returned at all) in error.(*googleapi.Error).Header. Use
65697// googleapi.IsNotModified to check whether the returned error was
65698// because http.StatusNotModified was returned.
65699func (c *GlobalForwardingRulesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
65700	gensupport.SetOptions(c.urlParams_, opts...)
65701	res, err := c.doRequest("json")
65702	if res != nil && res.StatusCode == http.StatusNotModified {
65703		if res.Body != nil {
65704			res.Body.Close()
65705		}
65706		return nil, &googleapi.Error{
65707			Code:   res.StatusCode,
65708			Header: res.Header,
65709		}
65710	}
65711	if err != nil {
65712		return nil, err
65713	}
65714	defer googleapi.CloseBody(res)
65715	if err := googleapi.CheckResponse(res); err != nil {
65716		return nil, err
65717	}
65718	ret := &TestPermissionsResponse{
65719		ServerResponse: googleapi.ServerResponse{
65720			Header:         res.Header,
65721			HTTPStatusCode: res.StatusCode,
65722		},
65723	}
65724	target := &ret
65725	if err := gensupport.DecodeResponse(target, res); err != nil {
65726		return nil, err
65727	}
65728	return ret, nil
65729	// {
65730	//   "description": "Returns permissions that a caller has on the specified resource.",
65731	//   "httpMethod": "POST",
65732	//   "id": "compute.globalForwardingRules.testIamPermissions",
65733	//   "parameterOrder": [
65734	//     "project",
65735	//     "resource"
65736	//   ],
65737	//   "parameters": {
65738	//     "project": {
65739	//       "description": "Project ID for this request.",
65740	//       "location": "path",
65741	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65742	//       "required": true,
65743	//       "type": "string"
65744	//     },
65745	//     "resource": {
65746	//       "description": "Name or id of the resource for this request.",
65747	//       "location": "path",
65748	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
65749	//       "required": true,
65750	//       "type": "string"
65751	//     }
65752	//   },
65753	//   "path": "{project}/global/forwardingRules/{resource}/testIamPermissions",
65754	//   "request": {
65755	//     "$ref": "TestPermissionsRequest"
65756	//   },
65757	//   "response": {
65758	//     "$ref": "TestPermissionsResponse"
65759	//   },
65760	//   "scopes": [
65761	//     "https://www.googleapis.com/auth/cloud-platform",
65762	//     "https://www.googleapis.com/auth/compute",
65763	//     "https://www.googleapis.com/auth/compute.readonly"
65764	//   ]
65765	// }
65766
65767}
65768
65769// method id "compute.globalNetworkEndpointGroups.attachNetworkEndpoints":
65770
65771type GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall struct {
65772	s                                                 *Service
65773	project                                           string
65774	networkEndpointGroup                              string
65775	globalnetworkendpointgroupsattachendpointsrequest *GlobalNetworkEndpointGroupsAttachEndpointsRequest
65776	urlParams_                                        gensupport.URLParams
65777	ctx_                                              context.Context
65778	header_                                           http.Header
65779}
65780
65781// AttachNetworkEndpoints: Attach a network endpoint to the specified
65782// network endpoint group.
65783func (r *GlobalNetworkEndpointGroupsService) AttachNetworkEndpoints(project string, networkEndpointGroup string, globalnetworkendpointgroupsattachendpointsrequest *GlobalNetworkEndpointGroupsAttachEndpointsRequest) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
65784	c := &GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65785	c.project = project
65786	c.networkEndpointGroup = networkEndpointGroup
65787	c.globalnetworkendpointgroupsattachendpointsrequest = globalnetworkendpointgroupsattachendpointsrequest
65788	return c
65789}
65790
65791// RequestId sets the optional parameter "requestId": An optional
65792// request ID to identify requests. Specify a unique request ID so that
65793// if you must retry your request, the server will know to ignore the
65794// request if it has already been completed.
65795//
65796// For example, consider a situation where you make an initial request
65797// and the request times out. If you make the request again with the
65798// same request ID, the server can check if original operation with the
65799// same request ID was received, and if so, will ignore the second
65800// request. This prevents clients from accidentally creating duplicate
65801// commitments.
65802//
65803// The request ID must be a valid UUID with the exception that zero UUID
65804// is not supported (00000000-0000-0000-0000-000000000000).
65805func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
65806	c.urlParams_.Set("requestId", requestId)
65807	return c
65808}
65809
65810// Fields allows partial responses to be retrieved. See
65811// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65812// for more information.
65813func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
65814	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65815	return c
65816}
65817
65818// Context sets the context to be used in this call's Do method. Any
65819// pending HTTP request will be aborted if the provided context is
65820// canceled.
65821func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
65822	c.ctx_ = ctx
65823	return c
65824}
65825
65826// Header returns an http.Header that can be modified by the caller to
65827// add HTTP headers to the request.
65828func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header {
65829	if c.header_ == nil {
65830		c.header_ = make(http.Header)
65831	}
65832	return c.header_
65833}
65834
65835func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
65836	reqHeaders := make(http.Header)
65837	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
65838	for k, v := range c.header_ {
65839		reqHeaders[k] = v
65840	}
65841	reqHeaders.Set("User-Agent", c.s.userAgent())
65842	var body io.Reader = nil
65843	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalnetworkendpointgroupsattachendpointsrequest)
65844	if err != nil {
65845		return nil, err
65846	}
65847	reqHeaders.Set("Content-Type", "application/json")
65848	c.urlParams_.Set("alt", alt)
65849	c.urlParams_.Set("prettyPrint", "false")
65850	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints")
65851	urls += "?" + c.urlParams_.Encode()
65852	req, err := http.NewRequest("POST", urls, body)
65853	if err != nil {
65854		return nil, err
65855	}
65856	req.Header = reqHeaders
65857	googleapi.Expand(req.URL, map[string]string{
65858		"project":              c.project,
65859		"networkEndpointGroup": c.networkEndpointGroup,
65860	})
65861	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65862}
65863
65864// Do executes the "compute.globalNetworkEndpointGroups.attachNetworkEndpoints" call.
65865// Exactly one of *Operation or error will be non-nil. Any non-2xx
65866// status code is an error. Response headers are in either
65867// *Operation.ServerResponse.Header or (if a response was returned at
65868// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65869// to check whether the returned error was because
65870// http.StatusNotModified was returned.
65871func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65872	gensupport.SetOptions(c.urlParams_, opts...)
65873	res, err := c.doRequest("json")
65874	if res != nil && res.StatusCode == http.StatusNotModified {
65875		if res.Body != nil {
65876			res.Body.Close()
65877		}
65878		return nil, &googleapi.Error{
65879			Code:   res.StatusCode,
65880			Header: res.Header,
65881		}
65882	}
65883	if err != nil {
65884		return nil, err
65885	}
65886	defer googleapi.CloseBody(res)
65887	if err := googleapi.CheckResponse(res); err != nil {
65888		return nil, err
65889	}
65890	ret := &Operation{
65891		ServerResponse: googleapi.ServerResponse{
65892			Header:         res.Header,
65893			HTTPStatusCode: res.StatusCode,
65894		},
65895	}
65896	target := &ret
65897	if err := gensupport.DecodeResponse(target, res); err != nil {
65898		return nil, err
65899	}
65900	return ret, nil
65901	// {
65902	//   "description": "Attach a network endpoint to the specified network endpoint group.",
65903	//   "httpMethod": "POST",
65904	//   "id": "compute.globalNetworkEndpointGroups.attachNetworkEndpoints",
65905	//   "parameterOrder": [
65906	//     "project",
65907	//     "networkEndpointGroup"
65908	//   ],
65909	//   "parameters": {
65910	//     "networkEndpointGroup": {
65911	//       "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.",
65912	//       "location": "path",
65913	//       "required": true,
65914	//       "type": "string"
65915	//     },
65916	//     "project": {
65917	//       "description": "Project ID for this request.",
65918	//       "location": "path",
65919	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65920	//       "required": true,
65921	//       "type": "string"
65922	//     },
65923	//     "requestId": {
65924	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65925	//       "location": "query",
65926	//       "type": "string"
65927	//     }
65928	//   },
65929	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
65930	//   "request": {
65931	//     "$ref": "GlobalNetworkEndpointGroupsAttachEndpointsRequest"
65932	//   },
65933	//   "response": {
65934	//     "$ref": "Operation"
65935	//   },
65936	//   "scopes": [
65937	//     "https://www.googleapis.com/auth/cloud-platform",
65938	//     "https://www.googleapis.com/auth/compute"
65939	//   ]
65940	// }
65941
65942}
65943
65944// method id "compute.globalNetworkEndpointGroups.delete":
65945
65946type GlobalNetworkEndpointGroupsDeleteCall struct {
65947	s                    *Service
65948	project              string
65949	networkEndpointGroup string
65950	urlParams_           gensupport.URLParams
65951	ctx_                 context.Context
65952	header_              http.Header
65953}
65954
65955// Delete: Deletes the specified network endpoint group.Note that the
65956// NEG cannot be deleted if there are backend services referencing it.
65957func (r *GlobalNetworkEndpointGroupsService) Delete(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsDeleteCall {
65958	c := &GlobalNetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65959	c.project = project
65960	c.networkEndpointGroup = networkEndpointGroup
65961	return c
65962}
65963
65964// RequestId sets the optional parameter "requestId": An optional
65965// request ID to identify requests. Specify a unique request ID so that
65966// if you must retry your request, the server will know to ignore the
65967// request if it has already been completed.
65968//
65969// For example, consider a situation where you make an initial request
65970// and the request times out. If you make the request again with the
65971// same request ID, the server can check if original operation with the
65972// same request ID was received, and if so, will ignore the second
65973// request. This prevents clients from accidentally creating duplicate
65974// commitments.
65975//
65976// The request ID must be a valid UUID with the exception that zero UUID
65977// is not supported (00000000-0000-0000-0000-000000000000).
65978func (c *GlobalNetworkEndpointGroupsDeleteCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsDeleteCall {
65979	c.urlParams_.Set("requestId", requestId)
65980	return c
65981}
65982
65983// Fields allows partial responses to be retrieved. See
65984// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65985// for more information.
65986func (c *GlobalNetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsDeleteCall {
65987	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65988	return c
65989}
65990
65991// Context sets the context to be used in this call's Do method. Any
65992// pending HTTP request will be aborted if the provided context is
65993// canceled.
65994func (c *GlobalNetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsDeleteCall {
65995	c.ctx_ = ctx
65996	return c
65997}
65998
65999// Header returns an http.Header that can be modified by the caller to
66000// add HTTP headers to the request.
66001func (c *GlobalNetworkEndpointGroupsDeleteCall) Header() http.Header {
66002	if c.header_ == nil {
66003		c.header_ = make(http.Header)
66004	}
66005	return c.header_
66006}
66007
66008func (c *GlobalNetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
66009	reqHeaders := make(http.Header)
66010	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
66011	for k, v := range c.header_ {
66012		reqHeaders[k] = v
66013	}
66014	reqHeaders.Set("User-Agent", c.s.userAgent())
66015	var body io.Reader = nil
66016	c.urlParams_.Set("alt", alt)
66017	c.urlParams_.Set("prettyPrint", "false")
66018	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}")
66019	urls += "?" + c.urlParams_.Encode()
66020	req, err := http.NewRequest("DELETE", urls, body)
66021	if err != nil {
66022		return nil, err
66023	}
66024	req.Header = reqHeaders
66025	googleapi.Expand(req.URL, map[string]string{
66026		"project":              c.project,
66027		"networkEndpointGroup": c.networkEndpointGroup,
66028	})
66029	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66030}
66031
66032// Do executes the "compute.globalNetworkEndpointGroups.delete" call.
66033// Exactly one of *Operation or error will be non-nil. Any non-2xx
66034// status code is an error. Response headers are in either
66035// *Operation.ServerResponse.Header or (if a response was returned at
66036// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66037// to check whether the returned error was because
66038// http.StatusNotModified was returned.
66039func (c *GlobalNetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66040	gensupport.SetOptions(c.urlParams_, opts...)
66041	res, err := c.doRequest("json")
66042	if res != nil && res.StatusCode == http.StatusNotModified {
66043		if res.Body != nil {
66044			res.Body.Close()
66045		}
66046		return nil, &googleapi.Error{
66047			Code:   res.StatusCode,
66048			Header: res.Header,
66049		}
66050	}
66051	if err != nil {
66052		return nil, err
66053	}
66054	defer googleapi.CloseBody(res)
66055	if err := googleapi.CheckResponse(res); err != nil {
66056		return nil, err
66057	}
66058	ret := &Operation{
66059		ServerResponse: googleapi.ServerResponse{
66060			Header:         res.Header,
66061			HTTPStatusCode: res.StatusCode,
66062		},
66063	}
66064	target := &ret
66065	if err := gensupport.DecodeResponse(target, res); err != nil {
66066		return nil, err
66067	}
66068	return ret, nil
66069	// {
66070	//   "description": "Deletes the specified network endpoint group.Note that the NEG cannot be deleted if there are backend services referencing it.",
66071	//   "httpMethod": "DELETE",
66072	//   "id": "compute.globalNetworkEndpointGroups.delete",
66073	//   "parameterOrder": [
66074	//     "project",
66075	//     "networkEndpointGroup"
66076	//   ],
66077	//   "parameters": {
66078	//     "networkEndpointGroup": {
66079	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
66080	//       "location": "path",
66081	//       "required": true,
66082	//       "type": "string"
66083	//     },
66084	//     "project": {
66085	//       "description": "Project ID for this request.",
66086	//       "location": "path",
66087	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66088	//       "required": true,
66089	//       "type": "string"
66090	//     },
66091	//     "requestId": {
66092	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66093	//       "location": "query",
66094	//       "type": "string"
66095	//     }
66096	//   },
66097	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}",
66098	//   "response": {
66099	//     "$ref": "Operation"
66100	//   },
66101	//   "scopes": [
66102	//     "https://www.googleapis.com/auth/cloud-platform",
66103	//     "https://www.googleapis.com/auth/compute"
66104	//   ]
66105	// }
66106
66107}
66108
66109// method id "compute.globalNetworkEndpointGroups.detachNetworkEndpoints":
66110
66111type GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall struct {
66112	s                                                 *Service
66113	project                                           string
66114	networkEndpointGroup                              string
66115	globalnetworkendpointgroupsdetachendpointsrequest *GlobalNetworkEndpointGroupsDetachEndpointsRequest
66116	urlParams_                                        gensupport.URLParams
66117	ctx_                                              context.Context
66118	header_                                           http.Header
66119}
66120
66121// DetachNetworkEndpoints: Detach the network endpoint from the
66122// specified network endpoint group.
66123func (r *GlobalNetworkEndpointGroupsService) DetachNetworkEndpoints(project string, networkEndpointGroup string, globalnetworkendpointgroupsdetachendpointsrequest *GlobalNetworkEndpointGroupsDetachEndpointsRequest) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
66124	c := &GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66125	c.project = project
66126	c.networkEndpointGroup = networkEndpointGroup
66127	c.globalnetworkendpointgroupsdetachendpointsrequest = globalnetworkendpointgroupsdetachendpointsrequest
66128	return c
66129}
66130
66131// RequestId sets the optional parameter "requestId": An optional
66132// request ID to identify requests. Specify a unique request ID so that
66133// if you must retry your request, the server will know to ignore the
66134// request if it has already been completed.
66135//
66136// For example, consider a situation where you make an initial request
66137// and the request times out. If you make the request again with the
66138// same request ID, the server can check if original operation with the
66139// same request ID was received, and if so, will ignore the second
66140// request. This prevents clients from accidentally creating duplicate
66141// commitments.
66142//
66143// The request ID must be a valid UUID with the exception that zero UUID
66144// is not supported (00000000-0000-0000-0000-000000000000).
66145func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
66146	c.urlParams_.Set("requestId", requestId)
66147	return c
66148}
66149
66150// Fields allows partial responses to be retrieved. See
66151// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66152// for more information.
66153func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
66154	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66155	return c
66156}
66157
66158// Context sets the context to be used in this call's Do method. Any
66159// pending HTTP request will be aborted if the provided context is
66160// canceled.
66161func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
66162	c.ctx_ = ctx
66163	return c
66164}
66165
66166// Header returns an http.Header that can be modified by the caller to
66167// add HTTP headers to the request.
66168func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header {
66169	if c.header_ == nil {
66170		c.header_ = make(http.Header)
66171	}
66172	return c.header_
66173}
66174
66175func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
66176	reqHeaders := make(http.Header)
66177	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
66178	for k, v := range c.header_ {
66179		reqHeaders[k] = v
66180	}
66181	reqHeaders.Set("User-Agent", c.s.userAgent())
66182	var body io.Reader = nil
66183	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalnetworkendpointgroupsdetachendpointsrequest)
66184	if err != nil {
66185		return nil, err
66186	}
66187	reqHeaders.Set("Content-Type", "application/json")
66188	c.urlParams_.Set("alt", alt)
66189	c.urlParams_.Set("prettyPrint", "false")
66190	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints")
66191	urls += "?" + c.urlParams_.Encode()
66192	req, err := http.NewRequest("POST", urls, body)
66193	if err != nil {
66194		return nil, err
66195	}
66196	req.Header = reqHeaders
66197	googleapi.Expand(req.URL, map[string]string{
66198		"project":              c.project,
66199		"networkEndpointGroup": c.networkEndpointGroup,
66200	})
66201	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66202}
66203
66204// Do executes the "compute.globalNetworkEndpointGroups.detachNetworkEndpoints" call.
66205// Exactly one of *Operation or error will be non-nil. Any non-2xx
66206// status code is an error. Response headers are in either
66207// *Operation.ServerResponse.Header or (if a response was returned at
66208// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66209// to check whether the returned error was because
66210// http.StatusNotModified was returned.
66211func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66212	gensupport.SetOptions(c.urlParams_, opts...)
66213	res, err := c.doRequest("json")
66214	if res != nil && res.StatusCode == http.StatusNotModified {
66215		if res.Body != nil {
66216			res.Body.Close()
66217		}
66218		return nil, &googleapi.Error{
66219			Code:   res.StatusCode,
66220			Header: res.Header,
66221		}
66222	}
66223	if err != nil {
66224		return nil, err
66225	}
66226	defer googleapi.CloseBody(res)
66227	if err := googleapi.CheckResponse(res); err != nil {
66228		return nil, err
66229	}
66230	ret := &Operation{
66231		ServerResponse: googleapi.ServerResponse{
66232			Header:         res.Header,
66233			HTTPStatusCode: res.StatusCode,
66234		},
66235	}
66236	target := &ret
66237	if err := gensupport.DecodeResponse(target, res); err != nil {
66238		return nil, err
66239	}
66240	return ret, nil
66241	// {
66242	//   "description": "Detach the network endpoint from the specified network endpoint group.",
66243	//   "httpMethod": "POST",
66244	//   "id": "compute.globalNetworkEndpointGroups.detachNetworkEndpoints",
66245	//   "parameterOrder": [
66246	//     "project",
66247	//     "networkEndpointGroup"
66248	//   ],
66249	//   "parameters": {
66250	//     "networkEndpointGroup": {
66251	//       "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.",
66252	//       "location": "path",
66253	//       "required": true,
66254	//       "type": "string"
66255	//     },
66256	//     "project": {
66257	//       "description": "Project ID for this request.",
66258	//       "location": "path",
66259	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66260	//       "required": true,
66261	//       "type": "string"
66262	//     },
66263	//     "requestId": {
66264	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66265	//       "location": "query",
66266	//       "type": "string"
66267	//     }
66268	//   },
66269	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
66270	//   "request": {
66271	//     "$ref": "GlobalNetworkEndpointGroupsDetachEndpointsRequest"
66272	//   },
66273	//   "response": {
66274	//     "$ref": "Operation"
66275	//   },
66276	//   "scopes": [
66277	//     "https://www.googleapis.com/auth/cloud-platform",
66278	//     "https://www.googleapis.com/auth/compute"
66279	//   ]
66280	// }
66281
66282}
66283
66284// method id "compute.globalNetworkEndpointGroups.get":
66285
66286type GlobalNetworkEndpointGroupsGetCall struct {
66287	s                    *Service
66288	project              string
66289	networkEndpointGroup string
66290	urlParams_           gensupport.URLParams
66291	ifNoneMatch_         string
66292	ctx_                 context.Context
66293	header_              http.Header
66294}
66295
66296// Get: Returns the specified network endpoint group. Gets a list of
66297// available network endpoint groups by making a list() request.
66298func (r *GlobalNetworkEndpointGroupsService) Get(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsGetCall {
66299	c := &GlobalNetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66300	c.project = project
66301	c.networkEndpointGroup = networkEndpointGroup
66302	return c
66303}
66304
66305// Fields allows partial responses to be retrieved. See
66306// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66307// for more information.
66308func (c *GlobalNetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsGetCall {
66309	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66310	return c
66311}
66312
66313// IfNoneMatch sets the optional parameter which makes the operation
66314// fail if the object's ETag matches the given value. This is useful for
66315// getting updates only after the object has changed since the last
66316// request. Use googleapi.IsNotModified to check whether the response
66317// error from Do is the result of In-None-Match.
66318func (c *GlobalNetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *GlobalNetworkEndpointGroupsGetCall {
66319	c.ifNoneMatch_ = entityTag
66320	return c
66321}
66322
66323// Context sets the context to be used in this call's Do method. Any
66324// pending HTTP request will be aborted if the provided context is
66325// canceled.
66326func (c *GlobalNetworkEndpointGroupsGetCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsGetCall {
66327	c.ctx_ = ctx
66328	return c
66329}
66330
66331// Header returns an http.Header that can be modified by the caller to
66332// add HTTP headers to the request.
66333func (c *GlobalNetworkEndpointGroupsGetCall) Header() http.Header {
66334	if c.header_ == nil {
66335		c.header_ = make(http.Header)
66336	}
66337	return c.header_
66338}
66339
66340func (c *GlobalNetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
66341	reqHeaders := make(http.Header)
66342	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
66343	for k, v := range c.header_ {
66344		reqHeaders[k] = v
66345	}
66346	reqHeaders.Set("User-Agent", c.s.userAgent())
66347	if c.ifNoneMatch_ != "" {
66348		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66349	}
66350	var body io.Reader = nil
66351	c.urlParams_.Set("alt", alt)
66352	c.urlParams_.Set("prettyPrint", "false")
66353	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}")
66354	urls += "?" + c.urlParams_.Encode()
66355	req, err := http.NewRequest("GET", urls, body)
66356	if err != nil {
66357		return nil, err
66358	}
66359	req.Header = reqHeaders
66360	googleapi.Expand(req.URL, map[string]string{
66361		"project":              c.project,
66362		"networkEndpointGroup": c.networkEndpointGroup,
66363	})
66364	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66365}
66366
66367// Do executes the "compute.globalNetworkEndpointGroups.get" call.
66368// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
66369// non-2xx status code is an error. Response headers are in either
66370// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
66371// returned at all) in error.(*googleapi.Error).Header. Use
66372// googleapi.IsNotModified to check whether the returned error was
66373// because http.StatusNotModified was returned.
66374func (c *GlobalNetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
66375	gensupport.SetOptions(c.urlParams_, opts...)
66376	res, err := c.doRequest("json")
66377	if res != nil && res.StatusCode == http.StatusNotModified {
66378		if res.Body != nil {
66379			res.Body.Close()
66380		}
66381		return nil, &googleapi.Error{
66382			Code:   res.StatusCode,
66383			Header: res.Header,
66384		}
66385	}
66386	if err != nil {
66387		return nil, err
66388	}
66389	defer googleapi.CloseBody(res)
66390	if err := googleapi.CheckResponse(res); err != nil {
66391		return nil, err
66392	}
66393	ret := &NetworkEndpointGroup{
66394		ServerResponse: googleapi.ServerResponse{
66395			Header:         res.Header,
66396			HTTPStatusCode: res.StatusCode,
66397		},
66398	}
66399	target := &ret
66400	if err := gensupport.DecodeResponse(target, res); err != nil {
66401		return nil, err
66402	}
66403	return ret, nil
66404	// {
66405	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
66406	//   "httpMethod": "GET",
66407	//   "id": "compute.globalNetworkEndpointGroups.get",
66408	//   "parameterOrder": [
66409	//     "project",
66410	//     "networkEndpointGroup"
66411	//   ],
66412	//   "parameters": {
66413	//     "networkEndpointGroup": {
66414	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
66415	//       "location": "path",
66416	//       "required": true,
66417	//       "type": "string"
66418	//     },
66419	//     "project": {
66420	//       "description": "Project ID for this request.",
66421	//       "location": "path",
66422	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66423	//       "required": true,
66424	//       "type": "string"
66425	//     }
66426	//   },
66427	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}",
66428	//   "response": {
66429	//     "$ref": "NetworkEndpointGroup"
66430	//   },
66431	//   "scopes": [
66432	//     "https://www.googleapis.com/auth/cloud-platform",
66433	//     "https://www.googleapis.com/auth/compute",
66434	//     "https://www.googleapis.com/auth/compute.readonly"
66435	//   ]
66436	// }
66437
66438}
66439
66440// method id "compute.globalNetworkEndpointGroups.insert":
66441
66442type GlobalNetworkEndpointGroupsInsertCall struct {
66443	s                    *Service
66444	project              string
66445	networkendpointgroup *NetworkEndpointGroup
66446	urlParams_           gensupport.URLParams
66447	ctx_                 context.Context
66448	header_              http.Header
66449}
66450
66451// Insert: Creates a network endpoint group in the specified project
66452// using the parameters that are included in the request.
66453func (r *GlobalNetworkEndpointGroupsService) Insert(project string, networkendpointgroup *NetworkEndpointGroup) *GlobalNetworkEndpointGroupsInsertCall {
66454	c := &GlobalNetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66455	c.project = project
66456	c.networkendpointgroup = networkendpointgroup
66457	return c
66458}
66459
66460// RequestId sets the optional parameter "requestId": An optional
66461// request ID to identify requests. Specify a unique request ID so that
66462// if you must retry your request, the server will know to ignore the
66463// request if it has already been completed.
66464//
66465// For example, consider a situation where you make an initial request
66466// and the request times out. If you make the request again with the
66467// same request ID, the server can check if original operation with the
66468// same request ID was received, and if so, will ignore the second
66469// request. This prevents clients from accidentally creating duplicate
66470// commitments.
66471//
66472// The request ID must be a valid UUID with the exception that zero UUID
66473// is not supported (00000000-0000-0000-0000-000000000000).
66474func (c *GlobalNetworkEndpointGroupsInsertCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsInsertCall {
66475	c.urlParams_.Set("requestId", requestId)
66476	return c
66477}
66478
66479// Fields allows partial responses to be retrieved. See
66480// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66481// for more information.
66482func (c *GlobalNetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsInsertCall {
66483	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66484	return c
66485}
66486
66487// Context sets the context to be used in this call's Do method. Any
66488// pending HTTP request will be aborted if the provided context is
66489// canceled.
66490func (c *GlobalNetworkEndpointGroupsInsertCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsInsertCall {
66491	c.ctx_ = ctx
66492	return c
66493}
66494
66495// Header returns an http.Header that can be modified by the caller to
66496// add HTTP headers to the request.
66497func (c *GlobalNetworkEndpointGroupsInsertCall) Header() http.Header {
66498	if c.header_ == nil {
66499		c.header_ = make(http.Header)
66500	}
66501	return c.header_
66502}
66503
66504func (c *GlobalNetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
66505	reqHeaders := make(http.Header)
66506	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
66507	for k, v := range c.header_ {
66508		reqHeaders[k] = v
66509	}
66510	reqHeaders.Set("User-Agent", c.s.userAgent())
66511	var body io.Reader = nil
66512	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
66513	if err != nil {
66514		return nil, err
66515	}
66516	reqHeaders.Set("Content-Type", "application/json")
66517	c.urlParams_.Set("alt", alt)
66518	c.urlParams_.Set("prettyPrint", "false")
66519	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups")
66520	urls += "?" + c.urlParams_.Encode()
66521	req, err := http.NewRequest("POST", urls, body)
66522	if err != nil {
66523		return nil, err
66524	}
66525	req.Header = reqHeaders
66526	googleapi.Expand(req.URL, map[string]string{
66527		"project": c.project,
66528	})
66529	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66530}
66531
66532// Do executes the "compute.globalNetworkEndpointGroups.insert" call.
66533// Exactly one of *Operation or error will be non-nil. Any non-2xx
66534// status code is an error. Response headers are in either
66535// *Operation.ServerResponse.Header or (if a response was returned at
66536// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66537// to check whether the returned error was because
66538// http.StatusNotModified was returned.
66539func (c *GlobalNetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66540	gensupport.SetOptions(c.urlParams_, opts...)
66541	res, err := c.doRequest("json")
66542	if res != nil && res.StatusCode == http.StatusNotModified {
66543		if res.Body != nil {
66544			res.Body.Close()
66545		}
66546		return nil, &googleapi.Error{
66547			Code:   res.StatusCode,
66548			Header: res.Header,
66549		}
66550	}
66551	if err != nil {
66552		return nil, err
66553	}
66554	defer googleapi.CloseBody(res)
66555	if err := googleapi.CheckResponse(res); err != nil {
66556		return nil, err
66557	}
66558	ret := &Operation{
66559		ServerResponse: googleapi.ServerResponse{
66560			Header:         res.Header,
66561			HTTPStatusCode: res.StatusCode,
66562		},
66563	}
66564	target := &ret
66565	if err := gensupport.DecodeResponse(target, res); err != nil {
66566		return nil, err
66567	}
66568	return ret, nil
66569	// {
66570	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
66571	//   "httpMethod": "POST",
66572	//   "id": "compute.globalNetworkEndpointGroups.insert",
66573	//   "parameterOrder": [
66574	//     "project"
66575	//   ],
66576	//   "parameters": {
66577	//     "project": {
66578	//       "description": "Project ID for this request.",
66579	//       "location": "path",
66580	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66581	//       "required": true,
66582	//       "type": "string"
66583	//     },
66584	//     "requestId": {
66585	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66586	//       "location": "query",
66587	//       "type": "string"
66588	//     }
66589	//   },
66590	//   "path": "{project}/global/networkEndpointGroups",
66591	//   "request": {
66592	//     "$ref": "NetworkEndpointGroup"
66593	//   },
66594	//   "response": {
66595	//     "$ref": "Operation"
66596	//   },
66597	//   "scopes": [
66598	//     "https://www.googleapis.com/auth/cloud-platform",
66599	//     "https://www.googleapis.com/auth/compute"
66600	//   ]
66601	// }
66602
66603}
66604
66605// method id "compute.globalNetworkEndpointGroups.list":
66606
66607type GlobalNetworkEndpointGroupsListCall struct {
66608	s            *Service
66609	project      string
66610	urlParams_   gensupport.URLParams
66611	ifNoneMatch_ string
66612	ctx_         context.Context
66613	header_      http.Header
66614}
66615
66616// List: Retrieves the list of network endpoint groups that are located
66617// in the specified project.
66618func (r *GlobalNetworkEndpointGroupsService) List(project string) *GlobalNetworkEndpointGroupsListCall {
66619	c := &GlobalNetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66620	c.project = project
66621	return c
66622}
66623
66624// Filter sets the optional parameter "filter": A filter expression that
66625// filters resources listed in the response. The expression must specify
66626// the field name, a comparison operator, and the value that you want to
66627// use for filtering. The value must be a string, a number, or a
66628// boolean. The comparison operator must be either =, !=, >, or <.
66629//
66630// For example, if you are filtering Compute Engine instances, you can
66631// exclude instances named example-instance by specifying name !=
66632// example-instance.
66633//
66634// You can also filter nested fields. For example, you could specify
66635// scheduling.automaticRestart = false to include instances only if they
66636// are not scheduled for automatic restarts. You can use filtering on
66637// nested fields to filter based on resource labels.
66638//
66639// To filter on multiple expressions, provide each separate expression
66640// within parentheses. For example, (scheduling.automaticRestart = true)
66641// (cpuPlatform = "Intel Skylake"). By default, each expression is an
66642// AND expression. However, you can include AND and OR expressions
66643// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
66644// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
66645// true).
66646func (c *GlobalNetworkEndpointGroupsListCall) Filter(filter string) *GlobalNetworkEndpointGroupsListCall {
66647	c.urlParams_.Set("filter", filter)
66648	return c
66649}
66650
66651// MaxResults sets the optional parameter "maxResults": The maximum
66652// number of results per page that should be returned. If the number of
66653// available results is larger than maxResults, Compute Engine returns a
66654// nextPageToken that can be used to get the next page of results in
66655// subsequent list requests. Acceptable values are 0 to 500, inclusive.
66656// (Default: 500)
66657func (c *GlobalNetworkEndpointGroupsListCall) MaxResults(maxResults int64) *GlobalNetworkEndpointGroupsListCall {
66658	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
66659	return c
66660}
66661
66662// OrderBy sets the optional parameter "orderBy": Sorts list results by
66663// a certain order. By default, results are returned in alphanumerical
66664// order based on the resource name.
66665//
66666// You can also sort results in descending order based on the creation
66667// timestamp using orderBy="creationTimestamp desc". This sorts results
66668// based on the creationTimestamp field in reverse chronological order
66669// (newest result first). Use this to sort resources like operations so
66670// that the newest operation is returned first.
66671//
66672// Currently, only sorting by name or creationTimestamp desc is
66673// supported.
66674func (c *GlobalNetworkEndpointGroupsListCall) OrderBy(orderBy string) *GlobalNetworkEndpointGroupsListCall {
66675	c.urlParams_.Set("orderBy", orderBy)
66676	return c
66677}
66678
66679// PageToken sets the optional parameter "pageToken": Specifies a page
66680// token to use. Set pageToken to the nextPageToken returned by a
66681// previous list request to get the next page of results.
66682func (c *GlobalNetworkEndpointGroupsListCall) PageToken(pageToken string) *GlobalNetworkEndpointGroupsListCall {
66683	c.urlParams_.Set("pageToken", pageToken)
66684	return c
66685}
66686
66687// Fields allows partial responses to be retrieved. See
66688// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66689// for more information.
66690func (c *GlobalNetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsListCall {
66691	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66692	return c
66693}
66694
66695// IfNoneMatch sets the optional parameter which makes the operation
66696// fail if the object's ETag matches the given value. This is useful for
66697// getting updates only after the object has changed since the last
66698// request. Use googleapi.IsNotModified to check whether the response
66699// error from Do is the result of In-None-Match.
66700func (c *GlobalNetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *GlobalNetworkEndpointGroupsListCall {
66701	c.ifNoneMatch_ = entityTag
66702	return c
66703}
66704
66705// Context sets the context to be used in this call's Do method. Any
66706// pending HTTP request will be aborted if the provided context is
66707// canceled.
66708func (c *GlobalNetworkEndpointGroupsListCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsListCall {
66709	c.ctx_ = ctx
66710	return c
66711}
66712
66713// Header returns an http.Header that can be modified by the caller to
66714// add HTTP headers to the request.
66715func (c *GlobalNetworkEndpointGroupsListCall) Header() http.Header {
66716	if c.header_ == nil {
66717		c.header_ = make(http.Header)
66718	}
66719	return c.header_
66720}
66721
66722func (c *GlobalNetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
66723	reqHeaders := make(http.Header)
66724	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
66725	for k, v := range c.header_ {
66726		reqHeaders[k] = v
66727	}
66728	reqHeaders.Set("User-Agent", c.s.userAgent())
66729	if c.ifNoneMatch_ != "" {
66730		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66731	}
66732	var body io.Reader = nil
66733	c.urlParams_.Set("alt", alt)
66734	c.urlParams_.Set("prettyPrint", "false")
66735	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups")
66736	urls += "?" + c.urlParams_.Encode()
66737	req, err := http.NewRequest("GET", urls, body)
66738	if err != nil {
66739		return nil, err
66740	}
66741	req.Header = reqHeaders
66742	googleapi.Expand(req.URL, map[string]string{
66743		"project": c.project,
66744	})
66745	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66746}
66747
66748// Do executes the "compute.globalNetworkEndpointGroups.list" call.
66749// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
66750// Any non-2xx status code is an error. Response headers are in either
66751// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
66752// returned at all) in error.(*googleapi.Error).Header. Use
66753// googleapi.IsNotModified to check whether the returned error was
66754// because http.StatusNotModified was returned.
66755func (c *GlobalNetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
66756	gensupport.SetOptions(c.urlParams_, opts...)
66757	res, err := c.doRequest("json")
66758	if res != nil && res.StatusCode == http.StatusNotModified {
66759		if res.Body != nil {
66760			res.Body.Close()
66761		}
66762		return nil, &googleapi.Error{
66763			Code:   res.StatusCode,
66764			Header: res.Header,
66765		}
66766	}
66767	if err != nil {
66768		return nil, err
66769	}
66770	defer googleapi.CloseBody(res)
66771	if err := googleapi.CheckResponse(res); err != nil {
66772		return nil, err
66773	}
66774	ret := &NetworkEndpointGroupList{
66775		ServerResponse: googleapi.ServerResponse{
66776			Header:         res.Header,
66777			HTTPStatusCode: res.StatusCode,
66778		},
66779	}
66780	target := &ret
66781	if err := gensupport.DecodeResponse(target, res); err != nil {
66782		return nil, err
66783	}
66784	return ret, nil
66785	// {
66786	//   "description": "Retrieves the list of network endpoint groups that are located in the specified project.",
66787	//   "httpMethod": "GET",
66788	//   "id": "compute.globalNetworkEndpointGroups.list",
66789	//   "parameterOrder": [
66790	//     "project"
66791	//   ],
66792	//   "parameters": {
66793	//     "filter": {
66794	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
66795	//       "location": "query",
66796	//       "type": "string"
66797	//     },
66798	//     "maxResults": {
66799	//       "default": "500",
66800	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
66801	//       "format": "uint32",
66802	//       "location": "query",
66803	//       "minimum": "0",
66804	//       "type": "integer"
66805	//     },
66806	//     "orderBy": {
66807	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
66808	//       "location": "query",
66809	//       "type": "string"
66810	//     },
66811	//     "pageToken": {
66812	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
66813	//       "location": "query",
66814	//       "type": "string"
66815	//     },
66816	//     "project": {
66817	//       "description": "Project ID for this request.",
66818	//       "location": "path",
66819	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66820	//       "required": true,
66821	//       "type": "string"
66822	//     }
66823	//   },
66824	//   "path": "{project}/global/networkEndpointGroups",
66825	//   "response": {
66826	//     "$ref": "NetworkEndpointGroupList"
66827	//   },
66828	//   "scopes": [
66829	//     "https://www.googleapis.com/auth/cloud-platform",
66830	//     "https://www.googleapis.com/auth/compute",
66831	//     "https://www.googleapis.com/auth/compute.readonly"
66832	//   ]
66833	// }
66834
66835}
66836
66837// Pages invokes f for each page of results.
66838// A non-nil error returned from f will halt the iteration.
66839// The provided context supersedes any context provided to the Context method.
66840func (c *GlobalNetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
66841	c.ctx_ = ctx
66842	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
66843	for {
66844		x, err := c.Do()
66845		if err != nil {
66846			return err
66847		}
66848		if err := f(x); err != nil {
66849			return err
66850		}
66851		if x.NextPageToken == "" {
66852			return nil
66853		}
66854		c.PageToken(x.NextPageToken)
66855	}
66856}
66857
66858// method id "compute.globalNetworkEndpointGroups.listNetworkEndpoints":
66859
66860type GlobalNetworkEndpointGroupsListNetworkEndpointsCall struct {
66861	s                    *Service
66862	project              string
66863	networkEndpointGroup string
66864	urlParams_           gensupport.URLParams
66865	ctx_                 context.Context
66866	header_              http.Header
66867}
66868
66869// ListNetworkEndpoints: Lists the network endpoints in the specified
66870// network endpoint group.
66871func (r *GlobalNetworkEndpointGroupsService) ListNetworkEndpoints(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
66872	c := &GlobalNetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66873	c.project = project
66874	c.networkEndpointGroup = networkEndpointGroup
66875	return c
66876}
66877
66878// Filter sets the optional parameter "filter": A filter expression that
66879// filters resources listed in the response. The expression must specify
66880// the field name, a comparison operator, and the value that you want to
66881// use for filtering. The value must be a string, a number, or a
66882// boolean. The comparison operator must be either =, !=, >, or <.
66883//
66884// For example, if you are filtering Compute Engine instances, you can
66885// exclude instances named example-instance by specifying name !=
66886// example-instance.
66887//
66888// You can also filter nested fields. For example, you could specify
66889// scheduling.automaticRestart = false to include instances only if they
66890// are not scheduled for automatic restarts. You can use filtering on
66891// nested fields to filter based on resource labels.
66892//
66893// To filter on multiple expressions, provide each separate expression
66894// within parentheses. For example, (scheduling.automaticRestart = true)
66895// (cpuPlatform = "Intel Skylake"). By default, each expression is an
66896// AND expression. However, you can include AND and OR expressions
66897// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
66898// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
66899// true).
66900func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
66901	c.urlParams_.Set("filter", filter)
66902	return c
66903}
66904
66905// MaxResults sets the optional parameter "maxResults": The maximum
66906// number of results per page that should be returned. If the number of
66907// available results is larger than maxResults, Compute Engine returns a
66908// nextPageToken that can be used to get the next page of results in
66909// subsequent list requests. Acceptable values are 0 to 500, inclusive.
66910// (Default: 500)
66911func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
66912	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
66913	return c
66914}
66915
66916// OrderBy sets the optional parameter "orderBy": Sorts list results by
66917// a certain order. By default, results are returned in alphanumerical
66918// order based on the resource name.
66919//
66920// You can also sort results in descending order based on the creation
66921// timestamp using orderBy="creationTimestamp desc". This sorts results
66922// based on the creationTimestamp field in reverse chronological order
66923// (newest result first). Use this to sort resources like operations so
66924// that the newest operation is returned first.
66925//
66926// Currently, only sorting by name or creationTimestamp desc is
66927// supported.
66928func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
66929	c.urlParams_.Set("orderBy", orderBy)
66930	return c
66931}
66932
66933// PageToken sets the optional parameter "pageToken": Specifies a page
66934// token to use. Set pageToken to the nextPageToken returned by a
66935// previous list request to get the next page of results.
66936func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
66937	c.urlParams_.Set("pageToken", pageToken)
66938	return c
66939}
66940
66941// Fields allows partial responses to be retrieved. See
66942// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66943// for more information.
66944func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
66945	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66946	return c
66947}
66948
66949// Context sets the context to be used in this call's Do method. Any
66950// pending HTTP request will be aborted if the provided context is
66951// canceled.
66952func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
66953	c.ctx_ = ctx
66954	return c
66955}
66956
66957// Header returns an http.Header that can be modified by the caller to
66958// add HTTP headers to the request.
66959func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header {
66960	if c.header_ == nil {
66961		c.header_ = make(http.Header)
66962	}
66963	return c.header_
66964}
66965
66966func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
66967	reqHeaders := make(http.Header)
66968	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
66969	for k, v := range c.header_ {
66970		reqHeaders[k] = v
66971	}
66972	reqHeaders.Set("User-Agent", c.s.userAgent())
66973	var body io.Reader = nil
66974	c.urlParams_.Set("alt", alt)
66975	c.urlParams_.Set("prettyPrint", "false")
66976	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints")
66977	urls += "?" + c.urlParams_.Encode()
66978	req, err := http.NewRequest("POST", urls, body)
66979	if err != nil {
66980		return nil, err
66981	}
66982	req.Header = reqHeaders
66983	googleapi.Expand(req.URL, map[string]string{
66984		"project":              c.project,
66985		"networkEndpointGroup": c.networkEndpointGroup,
66986	})
66987	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66988}
66989
66990// Do executes the "compute.globalNetworkEndpointGroups.listNetworkEndpoints" call.
66991// Exactly one of *NetworkEndpointGroupsListNetworkEndpoints or error
66992// will be non-nil. Any non-2xx status code is an error. Response
66993// headers are in either
66994// *NetworkEndpointGroupsListNetworkEndpoints.ServerResponse.Header or
66995// (if a response was returned at all) in
66996// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
66997// whether the returned error was because http.StatusNotModified was
66998// returned.
66999func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) {
67000	gensupport.SetOptions(c.urlParams_, opts...)
67001	res, err := c.doRequest("json")
67002	if res != nil && res.StatusCode == http.StatusNotModified {
67003		if res.Body != nil {
67004			res.Body.Close()
67005		}
67006		return nil, &googleapi.Error{
67007			Code:   res.StatusCode,
67008			Header: res.Header,
67009		}
67010	}
67011	if err != nil {
67012		return nil, err
67013	}
67014	defer googleapi.CloseBody(res)
67015	if err := googleapi.CheckResponse(res); err != nil {
67016		return nil, err
67017	}
67018	ret := &NetworkEndpointGroupsListNetworkEndpoints{
67019		ServerResponse: googleapi.ServerResponse{
67020			Header:         res.Header,
67021			HTTPStatusCode: res.StatusCode,
67022		},
67023	}
67024	target := &ret
67025	if err := gensupport.DecodeResponse(target, res); err != nil {
67026		return nil, err
67027	}
67028	return ret, nil
67029	// {
67030	//   "description": "Lists the network endpoints in the specified network endpoint group.",
67031	//   "httpMethod": "POST",
67032	//   "id": "compute.globalNetworkEndpointGroups.listNetworkEndpoints",
67033	//   "parameterOrder": [
67034	//     "project",
67035	//     "networkEndpointGroup"
67036	//   ],
67037	//   "parameters": {
67038	//     "filter": {
67039	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
67040	//       "location": "query",
67041	//       "type": "string"
67042	//     },
67043	//     "maxResults": {
67044	//       "default": "500",
67045	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
67046	//       "format": "uint32",
67047	//       "location": "query",
67048	//       "minimum": "0",
67049	//       "type": "integer"
67050	//     },
67051	//     "networkEndpointGroup": {
67052	//       "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.",
67053	//       "location": "path",
67054	//       "required": true,
67055	//       "type": "string"
67056	//     },
67057	//     "orderBy": {
67058	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
67059	//       "location": "query",
67060	//       "type": "string"
67061	//     },
67062	//     "pageToken": {
67063	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
67064	//       "location": "query",
67065	//       "type": "string"
67066	//     },
67067	//     "project": {
67068	//       "description": "Project ID for this request.",
67069	//       "location": "path",
67070	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67071	//       "required": true,
67072	//       "type": "string"
67073	//     }
67074	//   },
67075	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
67076	//   "response": {
67077	//     "$ref": "NetworkEndpointGroupsListNetworkEndpoints"
67078	//   },
67079	//   "scopes": [
67080	//     "https://www.googleapis.com/auth/cloud-platform",
67081	//     "https://www.googleapis.com/auth/compute",
67082	//     "https://www.googleapis.com/auth/compute.readonly"
67083	//   ]
67084	// }
67085
67086}
67087
67088// Pages invokes f for each page of results.
67089// A non-nil error returned from f will halt the iteration.
67090// The provided context supersedes any context provided to the Context method.
67091func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error {
67092	c.ctx_ = ctx
67093	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
67094	for {
67095		x, err := c.Do()
67096		if err != nil {
67097			return err
67098		}
67099		if err := f(x); err != nil {
67100			return err
67101		}
67102		if x.NextPageToken == "" {
67103			return nil
67104		}
67105		c.PageToken(x.NextPageToken)
67106	}
67107}
67108
67109// method id "compute.globalOperations.aggregatedList":
67110
67111type GlobalOperationsAggregatedListCall struct {
67112	s            *Service
67113	project      string
67114	urlParams_   gensupport.URLParams
67115	ifNoneMatch_ string
67116	ctx_         context.Context
67117	header_      http.Header
67118}
67119
67120// AggregatedList: Retrieves an aggregated list of all operations.
67121// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/aggregatedList
67122func (r *GlobalOperationsService) AggregatedList(project string) *GlobalOperationsAggregatedListCall {
67123	c := &GlobalOperationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67124	c.project = project
67125	return c
67126}
67127
67128// Filter sets the optional parameter "filter": A filter expression that
67129// filters resources listed in the response. The expression must specify
67130// the field name, a comparison operator, and the value that you want to
67131// use for filtering. The value must be a string, a number, or a
67132// boolean. The comparison operator must be either =, !=, >, or <.
67133//
67134// For example, if you are filtering Compute Engine instances, you can
67135// exclude instances named example-instance by specifying name !=
67136// example-instance.
67137//
67138// You can also filter nested fields. For example, you could specify
67139// scheduling.automaticRestart = false to include instances only if they
67140// are not scheduled for automatic restarts. You can use filtering on
67141// nested fields to filter based on resource labels.
67142//
67143// To filter on multiple expressions, provide each separate expression
67144// within parentheses. For example, (scheduling.automaticRestart = true)
67145// (cpuPlatform = "Intel Skylake"). By default, each expression is an
67146// AND expression. However, you can include AND and OR expressions
67147// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
67148// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
67149// true).
67150func (c *GlobalOperationsAggregatedListCall) Filter(filter string) *GlobalOperationsAggregatedListCall {
67151	c.urlParams_.Set("filter", filter)
67152	return c
67153}
67154
67155// IncludeAllScopes sets the optional parameter "includeAllScopes":
67156// Indicates whether every visible scope for each scope type (zone,
67157// region, global) should be included in the response. For new resource
67158// types added after this field, the flag has no effect as new resource
67159// types will always include every visible scope for each scope type in
67160// response. For resource types which predate this field, if this flag
67161// is omitted or false, only scopes of the scope types where the
67162// resource type is expected to be found will be included.
67163func (c *GlobalOperationsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *GlobalOperationsAggregatedListCall {
67164	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
67165	return c
67166}
67167
67168// MaxResults sets the optional parameter "maxResults": The maximum
67169// number of results per page that should be returned. If the number of
67170// available results is larger than maxResults, Compute Engine returns a
67171// nextPageToken that can be used to get the next page of results in
67172// subsequent list requests. Acceptable values are 0 to 500, inclusive.
67173// (Default: 500)
67174func (c *GlobalOperationsAggregatedListCall) MaxResults(maxResults int64) *GlobalOperationsAggregatedListCall {
67175	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
67176	return c
67177}
67178
67179// OrderBy sets the optional parameter "orderBy": Sorts list results by
67180// a certain order. By default, results are returned in alphanumerical
67181// order based on the resource name.
67182//
67183// You can also sort results in descending order based on the creation
67184// timestamp using orderBy="creationTimestamp desc". This sorts results
67185// based on the creationTimestamp field in reverse chronological order
67186// (newest result first). Use this to sort resources like operations so
67187// that the newest operation is returned first.
67188//
67189// Currently, only sorting by name or creationTimestamp desc is
67190// supported.
67191func (c *GlobalOperationsAggregatedListCall) OrderBy(orderBy string) *GlobalOperationsAggregatedListCall {
67192	c.urlParams_.Set("orderBy", orderBy)
67193	return c
67194}
67195
67196// PageToken sets the optional parameter "pageToken": Specifies a page
67197// token to use. Set pageToken to the nextPageToken returned by a
67198// previous list request to get the next page of results.
67199func (c *GlobalOperationsAggregatedListCall) PageToken(pageToken string) *GlobalOperationsAggregatedListCall {
67200	c.urlParams_.Set("pageToken", pageToken)
67201	return c
67202}
67203
67204// Fields allows partial responses to be retrieved. See
67205// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67206// for more information.
67207func (c *GlobalOperationsAggregatedListCall) Fields(s ...googleapi.Field) *GlobalOperationsAggregatedListCall {
67208	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67209	return c
67210}
67211
67212// IfNoneMatch sets the optional parameter which makes the operation
67213// fail if the object's ETag matches the given value. This is useful for
67214// getting updates only after the object has changed since the last
67215// request. Use googleapi.IsNotModified to check whether the response
67216// error from Do is the result of In-None-Match.
67217func (c *GlobalOperationsAggregatedListCall) IfNoneMatch(entityTag string) *GlobalOperationsAggregatedListCall {
67218	c.ifNoneMatch_ = entityTag
67219	return c
67220}
67221
67222// Context sets the context to be used in this call's Do method. Any
67223// pending HTTP request will be aborted if the provided context is
67224// canceled.
67225func (c *GlobalOperationsAggregatedListCall) Context(ctx context.Context) *GlobalOperationsAggregatedListCall {
67226	c.ctx_ = ctx
67227	return c
67228}
67229
67230// Header returns an http.Header that can be modified by the caller to
67231// add HTTP headers to the request.
67232func (c *GlobalOperationsAggregatedListCall) Header() http.Header {
67233	if c.header_ == nil {
67234		c.header_ = make(http.Header)
67235	}
67236	return c.header_
67237}
67238
67239func (c *GlobalOperationsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
67240	reqHeaders := make(http.Header)
67241	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
67242	for k, v := range c.header_ {
67243		reqHeaders[k] = v
67244	}
67245	reqHeaders.Set("User-Agent", c.s.userAgent())
67246	if c.ifNoneMatch_ != "" {
67247		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
67248	}
67249	var body io.Reader = nil
67250	c.urlParams_.Set("alt", alt)
67251	c.urlParams_.Set("prettyPrint", "false")
67252	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/operations")
67253	urls += "?" + c.urlParams_.Encode()
67254	req, err := http.NewRequest("GET", urls, body)
67255	if err != nil {
67256		return nil, err
67257	}
67258	req.Header = reqHeaders
67259	googleapi.Expand(req.URL, map[string]string{
67260		"project": c.project,
67261	})
67262	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67263}
67264
67265// Do executes the "compute.globalOperations.aggregatedList" call.
67266// Exactly one of *OperationAggregatedList or error will be non-nil. Any
67267// non-2xx status code is an error. Response headers are in either
67268// *OperationAggregatedList.ServerResponse.Header or (if a response was
67269// returned at all) in error.(*googleapi.Error).Header. Use
67270// googleapi.IsNotModified to check whether the returned error was
67271// because http.StatusNotModified was returned.
67272func (c *GlobalOperationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*OperationAggregatedList, error) {
67273	gensupport.SetOptions(c.urlParams_, opts...)
67274	res, err := c.doRequest("json")
67275	if res != nil && res.StatusCode == http.StatusNotModified {
67276		if res.Body != nil {
67277			res.Body.Close()
67278		}
67279		return nil, &googleapi.Error{
67280			Code:   res.StatusCode,
67281			Header: res.Header,
67282		}
67283	}
67284	if err != nil {
67285		return nil, err
67286	}
67287	defer googleapi.CloseBody(res)
67288	if err := googleapi.CheckResponse(res); err != nil {
67289		return nil, err
67290	}
67291	ret := &OperationAggregatedList{
67292		ServerResponse: googleapi.ServerResponse{
67293			Header:         res.Header,
67294			HTTPStatusCode: res.StatusCode,
67295		},
67296	}
67297	target := &ret
67298	if err := gensupport.DecodeResponse(target, res); err != nil {
67299		return nil, err
67300	}
67301	return ret, nil
67302	// {
67303	//   "description": "Retrieves an aggregated list of all operations.",
67304	//   "httpMethod": "GET",
67305	//   "id": "compute.globalOperations.aggregatedList",
67306	//   "parameterOrder": [
67307	//     "project"
67308	//   ],
67309	//   "parameters": {
67310	//     "filter": {
67311	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
67312	//       "location": "query",
67313	//       "type": "string"
67314	//     },
67315	//     "includeAllScopes": {
67316	//       "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.",
67317	//       "location": "query",
67318	//       "type": "boolean"
67319	//     },
67320	//     "maxResults": {
67321	//       "default": "500",
67322	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
67323	//       "format": "uint32",
67324	//       "location": "query",
67325	//       "minimum": "0",
67326	//       "type": "integer"
67327	//     },
67328	//     "orderBy": {
67329	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
67330	//       "location": "query",
67331	//       "type": "string"
67332	//     },
67333	//     "pageToken": {
67334	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
67335	//       "location": "query",
67336	//       "type": "string"
67337	//     },
67338	//     "project": {
67339	//       "description": "Project ID for this request.",
67340	//       "location": "path",
67341	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67342	//       "required": true,
67343	//       "type": "string"
67344	//     }
67345	//   },
67346	//   "path": "{project}/aggregated/operations",
67347	//   "response": {
67348	//     "$ref": "OperationAggregatedList"
67349	//   },
67350	//   "scopes": [
67351	//     "https://www.googleapis.com/auth/cloud-platform",
67352	//     "https://www.googleapis.com/auth/compute",
67353	//     "https://www.googleapis.com/auth/compute.readonly"
67354	//   ]
67355	// }
67356
67357}
67358
67359// Pages invokes f for each page of results.
67360// A non-nil error returned from f will halt the iteration.
67361// The provided context supersedes any context provided to the Context method.
67362func (c *GlobalOperationsAggregatedListCall) Pages(ctx context.Context, f func(*OperationAggregatedList) error) error {
67363	c.ctx_ = ctx
67364	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
67365	for {
67366		x, err := c.Do()
67367		if err != nil {
67368			return err
67369		}
67370		if err := f(x); err != nil {
67371			return err
67372		}
67373		if x.NextPageToken == "" {
67374			return nil
67375		}
67376		c.PageToken(x.NextPageToken)
67377	}
67378}
67379
67380// method id "compute.globalOperations.delete":
67381
67382type GlobalOperationsDeleteCall struct {
67383	s          *Service
67384	project    string
67385	operation  string
67386	urlParams_ gensupport.URLParams
67387	ctx_       context.Context
67388	header_    http.Header
67389}
67390
67391// Delete: Deletes the specified Operations resource.
67392// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/delete
67393func (r *GlobalOperationsService) Delete(project string, operation string) *GlobalOperationsDeleteCall {
67394	c := &GlobalOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67395	c.project = project
67396	c.operation = operation
67397	return c
67398}
67399
67400// Fields allows partial responses to be retrieved. See
67401// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67402// for more information.
67403func (c *GlobalOperationsDeleteCall) Fields(s ...googleapi.Field) *GlobalOperationsDeleteCall {
67404	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67405	return c
67406}
67407
67408// Context sets the context to be used in this call's Do method. Any
67409// pending HTTP request will be aborted if the provided context is
67410// canceled.
67411func (c *GlobalOperationsDeleteCall) Context(ctx context.Context) *GlobalOperationsDeleteCall {
67412	c.ctx_ = ctx
67413	return c
67414}
67415
67416// Header returns an http.Header that can be modified by the caller to
67417// add HTTP headers to the request.
67418func (c *GlobalOperationsDeleteCall) Header() http.Header {
67419	if c.header_ == nil {
67420		c.header_ = make(http.Header)
67421	}
67422	return c.header_
67423}
67424
67425func (c *GlobalOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
67426	reqHeaders := make(http.Header)
67427	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
67428	for k, v := range c.header_ {
67429		reqHeaders[k] = v
67430	}
67431	reqHeaders.Set("User-Agent", c.s.userAgent())
67432	var body io.Reader = nil
67433	c.urlParams_.Set("alt", alt)
67434	c.urlParams_.Set("prettyPrint", "false")
67435	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations/{operation}")
67436	urls += "?" + c.urlParams_.Encode()
67437	req, err := http.NewRequest("DELETE", urls, body)
67438	if err != nil {
67439		return nil, err
67440	}
67441	req.Header = reqHeaders
67442	googleapi.Expand(req.URL, map[string]string{
67443		"project":   c.project,
67444		"operation": c.operation,
67445	})
67446	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67447}
67448
67449// Do executes the "compute.globalOperations.delete" call.
67450func (c *GlobalOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
67451	gensupport.SetOptions(c.urlParams_, opts...)
67452	res, err := c.doRequest("json")
67453	if err != nil {
67454		return err
67455	}
67456	defer googleapi.CloseBody(res)
67457	if err := googleapi.CheckResponse(res); err != nil {
67458		return err
67459	}
67460	return nil
67461	// {
67462	//   "description": "Deletes the specified Operations resource.",
67463	//   "httpMethod": "DELETE",
67464	//   "id": "compute.globalOperations.delete",
67465	//   "parameterOrder": [
67466	//     "project",
67467	//     "operation"
67468	//   ],
67469	//   "parameters": {
67470	//     "operation": {
67471	//       "description": "Name of the Operations resource to delete.",
67472	//       "location": "path",
67473	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67474	//       "required": true,
67475	//       "type": "string"
67476	//     },
67477	//     "project": {
67478	//       "description": "Project ID for this request.",
67479	//       "location": "path",
67480	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67481	//       "required": true,
67482	//       "type": "string"
67483	//     }
67484	//   },
67485	//   "path": "{project}/global/operations/{operation}",
67486	//   "scopes": [
67487	//     "https://www.googleapis.com/auth/cloud-platform",
67488	//     "https://www.googleapis.com/auth/compute"
67489	//   ]
67490	// }
67491
67492}
67493
67494// method id "compute.globalOperations.get":
67495
67496type GlobalOperationsGetCall struct {
67497	s            *Service
67498	project      string
67499	operation    string
67500	urlParams_   gensupport.URLParams
67501	ifNoneMatch_ string
67502	ctx_         context.Context
67503	header_      http.Header
67504}
67505
67506// Get: Retrieves the specified Operations resource. Gets a list of
67507// operations by making a list() request.
67508// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/get
67509func (r *GlobalOperationsService) Get(project string, operation string) *GlobalOperationsGetCall {
67510	c := &GlobalOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67511	c.project = project
67512	c.operation = operation
67513	return c
67514}
67515
67516// Fields allows partial responses to be retrieved. See
67517// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67518// for more information.
67519func (c *GlobalOperationsGetCall) Fields(s ...googleapi.Field) *GlobalOperationsGetCall {
67520	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67521	return c
67522}
67523
67524// IfNoneMatch sets the optional parameter which makes the operation
67525// fail if the object's ETag matches the given value. This is useful for
67526// getting updates only after the object has changed since the last
67527// request. Use googleapi.IsNotModified to check whether the response
67528// error from Do is the result of In-None-Match.
67529func (c *GlobalOperationsGetCall) IfNoneMatch(entityTag string) *GlobalOperationsGetCall {
67530	c.ifNoneMatch_ = entityTag
67531	return c
67532}
67533
67534// Context sets the context to be used in this call's Do method. Any
67535// pending HTTP request will be aborted if the provided context is
67536// canceled.
67537func (c *GlobalOperationsGetCall) Context(ctx context.Context) *GlobalOperationsGetCall {
67538	c.ctx_ = ctx
67539	return c
67540}
67541
67542// Header returns an http.Header that can be modified by the caller to
67543// add HTTP headers to the request.
67544func (c *GlobalOperationsGetCall) Header() http.Header {
67545	if c.header_ == nil {
67546		c.header_ = make(http.Header)
67547	}
67548	return c.header_
67549}
67550
67551func (c *GlobalOperationsGetCall) doRequest(alt string) (*http.Response, error) {
67552	reqHeaders := make(http.Header)
67553	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
67554	for k, v := range c.header_ {
67555		reqHeaders[k] = v
67556	}
67557	reqHeaders.Set("User-Agent", c.s.userAgent())
67558	if c.ifNoneMatch_ != "" {
67559		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
67560	}
67561	var body io.Reader = nil
67562	c.urlParams_.Set("alt", alt)
67563	c.urlParams_.Set("prettyPrint", "false")
67564	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations/{operation}")
67565	urls += "?" + c.urlParams_.Encode()
67566	req, err := http.NewRequest("GET", urls, body)
67567	if err != nil {
67568		return nil, err
67569	}
67570	req.Header = reqHeaders
67571	googleapi.Expand(req.URL, map[string]string{
67572		"project":   c.project,
67573		"operation": c.operation,
67574	})
67575	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67576}
67577
67578// Do executes the "compute.globalOperations.get" call.
67579// Exactly one of *Operation or error will be non-nil. Any non-2xx
67580// status code is an error. Response headers are in either
67581// *Operation.ServerResponse.Header or (if a response was returned at
67582// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67583// to check whether the returned error was because
67584// http.StatusNotModified was returned.
67585func (c *GlobalOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67586	gensupport.SetOptions(c.urlParams_, opts...)
67587	res, err := c.doRequest("json")
67588	if res != nil && res.StatusCode == http.StatusNotModified {
67589		if res.Body != nil {
67590			res.Body.Close()
67591		}
67592		return nil, &googleapi.Error{
67593			Code:   res.StatusCode,
67594			Header: res.Header,
67595		}
67596	}
67597	if err != nil {
67598		return nil, err
67599	}
67600	defer googleapi.CloseBody(res)
67601	if err := googleapi.CheckResponse(res); err != nil {
67602		return nil, err
67603	}
67604	ret := &Operation{
67605		ServerResponse: googleapi.ServerResponse{
67606			Header:         res.Header,
67607			HTTPStatusCode: res.StatusCode,
67608		},
67609	}
67610	target := &ret
67611	if err := gensupport.DecodeResponse(target, res); err != nil {
67612		return nil, err
67613	}
67614	return ret, nil
67615	// {
67616	//   "description": "Retrieves the specified Operations resource. Gets a list of operations by making a list() request.",
67617	//   "httpMethod": "GET",
67618	//   "id": "compute.globalOperations.get",
67619	//   "parameterOrder": [
67620	//     "project",
67621	//     "operation"
67622	//   ],
67623	//   "parameters": {
67624	//     "operation": {
67625	//       "description": "Name of the Operations resource to return.",
67626	//       "location": "path",
67627	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67628	//       "required": true,
67629	//       "type": "string"
67630	//     },
67631	//     "project": {
67632	//       "description": "Project ID for this request.",
67633	//       "location": "path",
67634	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67635	//       "required": true,
67636	//       "type": "string"
67637	//     }
67638	//   },
67639	//   "path": "{project}/global/operations/{operation}",
67640	//   "response": {
67641	//     "$ref": "Operation"
67642	//   },
67643	//   "scopes": [
67644	//     "https://www.googleapis.com/auth/cloud-platform",
67645	//     "https://www.googleapis.com/auth/compute",
67646	//     "https://www.googleapis.com/auth/compute.readonly"
67647	//   ]
67648	// }
67649
67650}
67651
67652// method id "compute.globalOperations.list":
67653
67654type GlobalOperationsListCall struct {
67655	s            *Service
67656	project      string
67657	urlParams_   gensupport.URLParams
67658	ifNoneMatch_ string
67659	ctx_         context.Context
67660	header_      http.Header
67661}
67662
67663// List: Retrieves a list of Operation resources contained within the
67664// specified project.
67665// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/list
67666func (r *GlobalOperationsService) List(project string) *GlobalOperationsListCall {
67667	c := &GlobalOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67668	c.project = project
67669	return c
67670}
67671
67672// Filter sets the optional parameter "filter": A filter expression that
67673// filters resources listed in the response. The expression must specify
67674// the field name, a comparison operator, and the value that you want to
67675// use for filtering. The value must be a string, a number, or a
67676// boolean. The comparison operator must be either =, !=, >, or <.
67677//
67678// For example, if you are filtering Compute Engine instances, you can
67679// exclude instances named example-instance by specifying name !=
67680// example-instance.
67681//
67682// You can also filter nested fields. For example, you could specify
67683// scheduling.automaticRestart = false to include instances only if they
67684// are not scheduled for automatic restarts. You can use filtering on
67685// nested fields to filter based on resource labels.
67686//
67687// To filter on multiple expressions, provide each separate expression
67688// within parentheses. For example, (scheduling.automaticRestart = true)
67689// (cpuPlatform = "Intel Skylake"). By default, each expression is an
67690// AND expression. However, you can include AND and OR expressions
67691// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
67692// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
67693// true).
67694func (c *GlobalOperationsListCall) Filter(filter string) *GlobalOperationsListCall {
67695	c.urlParams_.Set("filter", filter)
67696	return c
67697}
67698
67699// MaxResults sets the optional parameter "maxResults": The maximum
67700// number of results per page that should be returned. If the number of
67701// available results is larger than maxResults, Compute Engine returns a
67702// nextPageToken that can be used to get the next page of results in
67703// subsequent list requests. Acceptable values are 0 to 500, inclusive.
67704// (Default: 500)
67705func (c *GlobalOperationsListCall) MaxResults(maxResults int64) *GlobalOperationsListCall {
67706	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
67707	return c
67708}
67709
67710// OrderBy sets the optional parameter "orderBy": Sorts list results by
67711// a certain order. By default, results are returned in alphanumerical
67712// order based on the resource name.
67713//
67714// You can also sort results in descending order based on the creation
67715// timestamp using orderBy="creationTimestamp desc". This sorts results
67716// based on the creationTimestamp field in reverse chronological order
67717// (newest result first). Use this to sort resources like operations so
67718// that the newest operation is returned first.
67719//
67720// Currently, only sorting by name or creationTimestamp desc is
67721// supported.
67722func (c *GlobalOperationsListCall) OrderBy(orderBy string) *GlobalOperationsListCall {
67723	c.urlParams_.Set("orderBy", orderBy)
67724	return c
67725}
67726
67727// PageToken sets the optional parameter "pageToken": Specifies a page
67728// token to use. Set pageToken to the nextPageToken returned by a
67729// previous list request to get the next page of results.
67730func (c *GlobalOperationsListCall) PageToken(pageToken string) *GlobalOperationsListCall {
67731	c.urlParams_.Set("pageToken", pageToken)
67732	return c
67733}
67734
67735// Fields allows partial responses to be retrieved. See
67736// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67737// for more information.
67738func (c *GlobalOperationsListCall) Fields(s ...googleapi.Field) *GlobalOperationsListCall {
67739	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67740	return c
67741}
67742
67743// IfNoneMatch sets the optional parameter which makes the operation
67744// fail if the object's ETag matches the given value. This is useful for
67745// getting updates only after the object has changed since the last
67746// request. Use googleapi.IsNotModified to check whether the response
67747// error from Do is the result of In-None-Match.
67748func (c *GlobalOperationsListCall) IfNoneMatch(entityTag string) *GlobalOperationsListCall {
67749	c.ifNoneMatch_ = entityTag
67750	return c
67751}
67752
67753// Context sets the context to be used in this call's Do method. Any
67754// pending HTTP request will be aborted if the provided context is
67755// canceled.
67756func (c *GlobalOperationsListCall) Context(ctx context.Context) *GlobalOperationsListCall {
67757	c.ctx_ = ctx
67758	return c
67759}
67760
67761// Header returns an http.Header that can be modified by the caller to
67762// add HTTP headers to the request.
67763func (c *GlobalOperationsListCall) Header() http.Header {
67764	if c.header_ == nil {
67765		c.header_ = make(http.Header)
67766	}
67767	return c.header_
67768}
67769
67770func (c *GlobalOperationsListCall) doRequest(alt string) (*http.Response, error) {
67771	reqHeaders := make(http.Header)
67772	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
67773	for k, v := range c.header_ {
67774		reqHeaders[k] = v
67775	}
67776	reqHeaders.Set("User-Agent", c.s.userAgent())
67777	if c.ifNoneMatch_ != "" {
67778		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
67779	}
67780	var body io.Reader = nil
67781	c.urlParams_.Set("alt", alt)
67782	c.urlParams_.Set("prettyPrint", "false")
67783	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations")
67784	urls += "?" + c.urlParams_.Encode()
67785	req, err := http.NewRequest("GET", urls, body)
67786	if err != nil {
67787		return nil, err
67788	}
67789	req.Header = reqHeaders
67790	googleapi.Expand(req.URL, map[string]string{
67791		"project": c.project,
67792	})
67793	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67794}
67795
67796// Do executes the "compute.globalOperations.list" call.
67797// Exactly one of *OperationList or error will be non-nil. Any non-2xx
67798// status code is an error. Response headers are in either
67799// *OperationList.ServerResponse.Header or (if a response was returned
67800// at all) in error.(*googleapi.Error).Header. Use
67801// googleapi.IsNotModified to check whether the returned error was
67802// because http.StatusNotModified was returned.
67803func (c *GlobalOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
67804	gensupport.SetOptions(c.urlParams_, opts...)
67805	res, err := c.doRequest("json")
67806	if res != nil && res.StatusCode == http.StatusNotModified {
67807		if res.Body != nil {
67808			res.Body.Close()
67809		}
67810		return nil, &googleapi.Error{
67811			Code:   res.StatusCode,
67812			Header: res.Header,
67813		}
67814	}
67815	if err != nil {
67816		return nil, err
67817	}
67818	defer googleapi.CloseBody(res)
67819	if err := googleapi.CheckResponse(res); err != nil {
67820		return nil, err
67821	}
67822	ret := &OperationList{
67823		ServerResponse: googleapi.ServerResponse{
67824			Header:         res.Header,
67825			HTTPStatusCode: res.StatusCode,
67826		},
67827	}
67828	target := &ret
67829	if err := gensupport.DecodeResponse(target, res); err != nil {
67830		return nil, err
67831	}
67832	return ret, nil
67833	// {
67834	//   "description": "Retrieves a list of Operation resources contained within the specified project.",
67835	//   "httpMethod": "GET",
67836	//   "id": "compute.globalOperations.list",
67837	//   "parameterOrder": [
67838	//     "project"
67839	//   ],
67840	//   "parameters": {
67841	//     "filter": {
67842	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
67843	//       "location": "query",
67844	//       "type": "string"
67845	//     },
67846	//     "maxResults": {
67847	//       "default": "500",
67848	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
67849	//       "format": "uint32",
67850	//       "location": "query",
67851	//       "minimum": "0",
67852	//       "type": "integer"
67853	//     },
67854	//     "orderBy": {
67855	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
67856	//       "location": "query",
67857	//       "type": "string"
67858	//     },
67859	//     "pageToken": {
67860	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
67861	//       "location": "query",
67862	//       "type": "string"
67863	//     },
67864	//     "project": {
67865	//       "description": "Project ID for this request.",
67866	//       "location": "path",
67867	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67868	//       "required": true,
67869	//       "type": "string"
67870	//     }
67871	//   },
67872	//   "path": "{project}/global/operations",
67873	//   "response": {
67874	//     "$ref": "OperationList"
67875	//   },
67876	//   "scopes": [
67877	//     "https://www.googleapis.com/auth/cloud-platform",
67878	//     "https://www.googleapis.com/auth/compute",
67879	//     "https://www.googleapis.com/auth/compute.readonly"
67880	//   ]
67881	// }
67882
67883}
67884
67885// Pages invokes f for each page of results.
67886// A non-nil error returned from f will halt the iteration.
67887// The provided context supersedes any context provided to the Context method.
67888func (c *GlobalOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
67889	c.ctx_ = ctx
67890	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
67891	for {
67892		x, err := c.Do()
67893		if err != nil {
67894			return err
67895		}
67896		if err := f(x); err != nil {
67897			return err
67898		}
67899		if x.NextPageToken == "" {
67900			return nil
67901		}
67902		c.PageToken(x.NextPageToken)
67903	}
67904}
67905
67906// method id "compute.globalOperations.wait":
67907
67908type GlobalOperationsWaitCall struct {
67909	s          *Service
67910	project    string
67911	operation  string
67912	urlParams_ gensupport.URLParams
67913	ctx_       context.Context
67914	header_    http.Header
67915}
67916
67917// Wait: Waits for the specified Operation resource to return as DONE or
67918// for the request to approach the 2 minute deadline, and retrieves the
67919// specified Operation resource. This method differs from the GET method
67920// in that it waits for no more than the default deadline (2 minutes)
67921// and then returns the current state of the operation, which might be
67922// DONE or still in progress.
67923//
67924// This method is called on a best-effort basis. Specifically:
67925// - In uncommon cases, when the server is overloaded, the request might
67926// return before the default deadline is reached, or might return after
67927// zero seconds.
67928// - If the default deadline is reached, there is no guarantee that the
67929// operation is actually done when the method returns. Be prepared to
67930// retry if the operation is not DONE.
67931func (r *GlobalOperationsService) Wait(project string, operation string) *GlobalOperationsWaitCall {
67932	c := &GlobalOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67933	c.project = project
67934	c.operation = operation
67935	return c
67936}
67937
67938// Fields allows partial responses to be retrieved. See
67939// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67940// for more information.
67941func (c *GlobalOperationsWaitCall) Fields(s ...googleapi.Field) *GlobalOperationsWaitCall {
67942	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67943	return c
67944}
67945
67946// Context sets the context to be used in this call's Do method. Any
67947// pending HTTP request will be aborted if the provided context is
67948// canceled.
67949func (c *GlobalOperationsWaitCall) Context(ctx context.Context) *GlobalOperationsWaitCall {
67950	c.ctx_ = ctx
67951	return c
67952}
67953
67954// Header returns an http.Header that can be modified by the caller to
67955// add HTTP headers to the request.
67956func (c *GlobalOperationsWaitCall) Header() http.Header {
67957	if c.header_ == nil {
67958		c.header_ = make(http.Header)
67959	}
67960	return c.header_
67961}
67962
67963func (c *GlobalOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
67964	reqHeaders := make(http.Header)
67965	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
67966	for k, v := range c.header_ {
67967		reqHeaders[k] = v
67968	}
67969	reqHeaders.Set("User-Agent", c.s.userAgent())
67970	var body io.Reader = nil
67971	c.urlParams_.Set("alt", alt)
67972	c.urlParams_.Set("prettyPrint", "false")
67973	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations/{operation}/wait")
67974	urls += "?" + c.urlParams_.Encode()
67975	req, err := http.NewRequest("POST", urls, body)
67976	if err != nil {
67977		return nil, err
67978	}
67979	req.Header = reqHeaders
67980	googleapi.Expand(req.URL, map[string]string{
67981		"project":   c.project,
67982		"operation": c.operation,
67983	})
67984	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67985}
67986
67987// Do executes the "compute.globalOperations.wait" call.
67988// Exactly one of *Operation or error will be non-nil. Any non-2xx
67989// status code is an error. Response headers are in either
67990// *Operation.ServerResponse.Header or (if a response was returned at
67991// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67992// to check whether the returned error was because
67993// http.StatusNotModified was returned.
67994func (c *GlobalOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67995	gensupport.SetOptions(c.urlParams_, opts...)
67996	res, err := c.doRequest("json")
67997	if res != nil && res.StatusCode == http.StatusNotModified {
67998		if res.Body != nil {
67999			res.Body.Close()
68000		}
68001		return nil, &googleapi.Error{
68002			Code:   res.StatusCode,
68003			Header: res.Header,
68004		}
68005	}
68006	if err != nil {
68007		return nil, err
68008	}
68009	defer googleapi.CloseBody(res)
68010	if err := googleapi.CheckResponse(res); err != nil {
68011		return nil, err
68012	}
68013	ret := &Operation{
68014		ServerResponse: googleapi.ServerResponse{
68015			Header:         res.Header,
68016			HTTPStatusCode: res.StatusCode,
68017		},
68018	}
68019	target := &ret
68020	if err := gensupport.DecodeResponse(target, res); err != nil {
68021		return nil, err
68022	}
68023	return ret, nil
68024	// {
68025	//   "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.",
68026	//   "httpMethod": "POST",
68027	//   "id": "compute.globalOperations.wait",
68028	//   "parameterOrder": [
68029	//     "project",
68030	//     "operation"
68031	//   ],
68032	//   "parameters": {
68033	//     "operation": {
68034	//       "description": "Name of the Operations resource to return.",
68035	//       "location": "path",
68036	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68037	//       "required": true,
68038	//       "type": "string"
68039	//     },
68040	//     "project": {
68041	//       "description": "Project ID for this request.",
68042	//       "location": "path",
68043	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68044	//       "required": true,
68045	//       "type": "string"
68046	//     }
68047	//   },
68048	//   "path": "{project}/global/operations/{operation}/wait",
68049	//   "response": {
68050	//     "$ref": "Operation"
68051	//   },
68052	//   "scopes": [
68053	//     "https://www.googleapis.com/auth/cloud-platform",
68054	//     "https://www.googleapis.com/auth/compute",
68055	//     "https://www.googleapis.com/auth/compute.readonly"
68056	//   ]
68057	// }
68058
68059}
68060
68061// method id "compute.globalOrganizationOperations.delete":
68062
68063type GlobalOrganizationOperationsDeleteCall struct {
68064	s          *Service
68065	operation  string
68066	urlParams_ gensupport.URLParams
68067	ctx_       context.Context
68068	header_    http.Header
68069}
68070
68071// Delete: Deletes the specified Operations resource.
68072func (r *GlobalOrganizationOperationsService) Delete(operation string) *GlobalOrganizationOperationsDeleteCall {
68073	c := &GlobalOrganizationOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68074	c.operation = operation
68075	return c
68076}
68077
68078// ParentId sets the optional parameter "parentId": Parent ID for this
68079// request.
68080func (c *GlobalOrganizationOperationsDeleteCall) ParentId(parentId string) *GlobalOrganizationOperationsDeleteCall {
68081	c.urlParams_.Set("parentId", parentId)
68082	return c
68083}
68084
68085// Fields allows partial responses to be retrieved. See
68086// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68087// for more information.
68088func (c *GlobalOrganizationOperationsDeleteCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsDeleteCall {
68089	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68090	return c
68091}
68092
68093// Context sets the context to be used in this call's Do method. Any
68094// pending HTTP request will be aborted if the provided context is
68095// canceled.
68096func (c *GlobalOrganizationOperationsDeleteCall) Context(ctx context.Context) *GlobalOrganizationOperationsDeleteCall {
68097	c.ctx_ = ctx
68098	return c
68099}
68100
68101// Header returns an http.Header that can be modified by the caller to
68102// add HTTP headers to the request.
68103func (c *GlobalOrganizationOperationsDeleteCall) Header() http.Header {
68104	if c.header_ == nil {
68105		c.header_ = make(http.Header)
68106	}
68107	return c.header_
68108}
68109
68110func (c *GlobalOrganizationOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
68111	reqHeaders := make(http.Header)
68112	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
68113	for k, v := range c.header_ {
68114		reqHeaders[k] = v
68115	}
68116	reqHeaders.Set("User-Agent", c.s.userAgent())
68117	var body io.Reader = nil
68118	c.urlParams_.Set("alt", alt)
68119	c.urlParams_.Set("prettyPrint", "false")
68120	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations/{operation}")
68121	urls += "?" + c.urlParams_.Encode()
68122	req, err := http.NewRequest("DELETE", urls, body)
68123	if err != nil {
68124		return nil, err
68125	}
68126	req.Header = reqHeaders
68127	googleapi.Expand(req.URL, map[string]string{
68128		"operation": c.operation,
68129	})
68130	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68131}
68132
68133// Do executes the "compute.globalOrganizationOperations.delete" call.
68134func (c *GlobalOrganizationOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
68135	gensupport.SetOptions(c.urlParams_, opts...)
68136	res, err := c.doRequest("json")
68137	if err != nil {
68138		return err
68139	}
68140	defer googleapi.CloseBody(res)
68141	if err := googleapi.CheckResponse(res); err != nil {
68142		return err
68143	}
68144	return nil
68145	// {
68146	//   "description": "Deletes the specified Operations resource.",
68147	//   "httpMethod": "DELETE",
68148	//   "id": "compute.globalOrganizationOperations.delete",
68149	//   "parameterOrder": [
68150	//     "operation"
68151	//   ],
68152	//   "parameters": {
68153	//     "operation": {
68154	//       "description": "Name of the Operations resource to delete.",
68155	//       "location": "path",
68156	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68157	//       "required": true,
68158	//       "type": "string"
68159	//     },
68160	//     "parentId": {
68161	//       "description": "Parent ID for this request.",
68162	//       "location": "query",
68163	//       "type": "string"
68164	//     }
68165	//   },
68166	//   "path": "locations/global/operations/{operation}",
68167	//   "scopes": [
68168	//     "https://www.googleapis.com/auth/cloud-platform",
68169	//     "https://www.googleapis.com/auth/compute"
68170	//   ]
68171	// }
68172
68173}
68174
68175// method id "compute.globalOrganizationOperations.get":
68176
68177type GlobalOrganizationOperationsGetCall struct {
68178	s            *Service
68179	operation    string
68180	urlParams_   gensupport.URLParams
68181	ifNoneMatch_ string
68182	ctx_         context.Context
68183	header_      http.Header
68184}
68185
68186// Get: Retrieves the specified Operations resource. Gets a list of
68187// operations by making a list() request.
68188func (r *GlobalOrganizationOperationsService) Get(operation string) *GlobalOrganizationOperationsGetCall {
68189	c := &GlobalOrganizationOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68190	c.operation = operation
68191	return c
68192}
68193
68194// ParentId sets the optional parameter "parentId": Parent ID for this
68195// request.
68196func (c *GlobalOrganizationOperationsGetCall) ParentId(parentId string) *GlobalOrganizationOperationsGetCall {
68197	c.urlParams_.Set("parentId", parentId)
68198	return c
68199}
68200
68201// Fields allows partial responses to be retrieved. See
68202// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68203// for more information.
68204func (c *GlobalOrganizationOperationsGetCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsGetCall {
68205	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68206	return c
68207}
68208
68209// IfNoneMatch sets the optional parameter which makes the operation
68210// fail if the object's ETag matches the given value. This is useful for
68211// getting updates only after the object has changed since the last
68212// request. Use googleapi.IsNotModified to check whether the response
68213// error from Do is the result of In-None-Match.
68214func (c *GlobalOrganizationOperationsGetCall) IfNoneMatch(entityTag string) *GlobalOrganizationOperationsGetCall {
68215	c.ifNoneMatch_ = entityTag
68216	return c
68217}
68218
68219// Context sets the context to be used in this call's Do method. Any
68220// pending HTTP request will be aborted if the provided context is
68221// canceled.
68222func (c *GlobalOrganizationOperationsGetCall) Context(ctx context.Context) *GlobalOrganizationOperationsGetCall {
68223	c.ctx_ = ctx
68224	return c
68225}
68226
68227// Header returns an http.Header that can be modified by the caller to
68228// add HTTP headers to the request.
68229func (c *GlobalOrganizationOperationsGetCall) Header() http.Header {
68230	if c.header_ == nil {
68231		c.header_ = make(http.Header)
68232	}
68233	return c.header_
68234}
68235
68236func (c *GlobalOrganizationOperationsGetCall) doRequest(alt string) (*http.Response, error) {
68237	reqHeaders := make(http.Header)
68238	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
68239	for k, v := range c.header_ {
68240		reqHeaders[k] = v
68241	}
68242	reqHeaders.Set("User-Agent", c.s.userAgent())
68243	if c.ifNoneMatch_ != "" {
68244		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68245	}
68246	var body io.Reader = nil
68247	c.urlParams_.Set("alt", alt)
68248	c.urlParams_.Set("prettyPrint", "false")
68249	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations/{operation}")
68250	urls += "?" + c.urlParams_.Encode()
68251	req, err := http.NewRequest("GET", urls, body)
68252	if err != nil {
68253		return nil, err
68254	}
68255	req.Header = reqHeaders
68256	googleapi.Expand(req.URL, map[string]string{
68257		"operation": c.operation,
68258	})
68259	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68260}
68261
68262// Do executes the "compute.globalOrganizationOperations.get" call.
68263// Exactly one of *Operation or error will be non-nil. Any non-2xx
68264// status code is an error. Response headers are in either
68265// *Operation.ServerResponse.Header or (if a response was returned at
68266// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68267// to check whether the returned error was because
68268// http.StatusNotModified was returned.
68269func (c *GlobalOrganizationOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68270	gensupport.SetOptions(c.urlParams_, opts...)
68271	res, err := c.doRequest("json")
68272	if res != nil && res.StatusCode == http.StatusNotModified {
68273		if res.Body != nil {
68274			res.Body.Close()
68275		}
68276		return nil, &googleapi.Error{
68277			Code:   res.StatusCode,
68278			Header: res.Header,
68279		}
68280	}
68281	if err != nil {
68282		return nil, err
68283	}
68284	defer googleapi.CloseBody(res)
68285	if err := googleapi.CheckResponse(res); err != nil {
68286		return nil, err
68287	}
68288	ret := &Operation{
68289		ServerResponse: googleapi.ServerResponse{
68290			Header:         res.Header,
68291			HTTPStatusCode: res.StatusCode,
68292		},
68293	}
68294	target := &ret
68295	if err := gensupport.DecodeResponse(target, res); err != nil {
68296		return nil, err
68297	}
68298	return ret, nil
68299	// {
68300	//   "description": "Retrieves the specified Operations resource. Gets a list of operations by making a list() request.",
68301	//   "httpMethod": "GET",
68302	//   "id": "compute.globalOrganizationOperations.get",
68303	//   "parameterOrder": [
68304	//     "operation"
68305	//   ],
68306	//   "parameters": {
68307	//     "operation": {
68308	//       "description": "Name of the Operations resource to return.",
68309	//       "location": "path",
68310	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68311	//       "required": true,
68312	//       "type": "string"
68313	//     },
68314	//     "parentId": {
68315	//       "description": "Parent ID for this request.",
68316	//       "location": "query",
68317	//       "type": "string"
68318	//     }
68319	//   },
68320	//   "path": "locations/global/operations/{operation}",
68321	//   "response": {
68322	//     "$ref": "Operation"
68323	//   },
68324	//   "scopes": [
68325	//     "https://www.googleapis.com/auth/cloud-platform",
68326	//     "https://www.googleapis.com/auth/compute",
68327	//     "https://www.googleapis.com/auth/compute.readonly"
68328	//   ]
68329	// }
68330
68331}
68332
68333// method id "compute.globalOrganizationOperations.list":
68334
68335type GlobalOrganizationOperationsListCall struct {
68336	s            *Service
68337	urlParams_   gensupport.URLParams
68338	ifNoneMatch_ string
68339	ctx_         context.Context
68340	header_      http.Header
68341}
68342
68343// List: Retrieves a list of Operation resources contained within the
68344// specified organization.
68345func (r *GlobalOrganizationOperationsService) List() *GlobalOrganizationOperationsListCall {
68346	c := &GlobalOrganizationOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68347	return c
68348}
68349
68350// Filter sets the optional parameter "filter": A filter expression that
68351// filters resources listed in the response. The expression must specify
68352// the field name, a comparison operator, and the value that you want to
68353// use for filtering. The value must be a string, a number, or a
68354// boolean. The comparison operator must be either =, !=, >, or <.
68355//
68356// For example, if you are filtering Compute Engine instances, you can
68357// exclude instances named example-instance by specifying name !=
68358// example-instance.
68359//
68360// You can also filter nested fields. For example, you could specify
68361// scheduling.automaticRestart = false to include instances only if they
68362// are not scheduled for automatic restarts. You can use filtering on
68363// nested fields to filter based on resource labels.
68364//
68365// To filter on multiple expressions, provide each separate expression
68366// within parentheses. For example, (scheduling.automaticRestart = true)
68367// (cpuPlatform = "Intel Skylake"). By default, each expression is an
68368// AND expression. However, you can include AND and OR expressions
68369// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
68370// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
68371// true).
68372func (c *GlobalOrganizationOperationsListCall) Filter(filter string) *GlobalOrganizationOperationsListCall {
68373	c.urlParams_.Set("filter", filter)
68374	return c
68375}
68376
68377// MaxResults sets the optional parameter "maxResults": The maximum
68378// number of results per page that should be returned. If the number of
68379// available results is larger than maxResults, Compute Engine returns a
68380// nextPageToken that can be used to get the next page of results in
68381// subsequent list requests. Acceptable values are 0 to 500, inclusive.
68382// (Default: 500)
68383func (c *GlobalOrganizationOperationsListCall) MaxResults(maxResults int64) *GlobalOrganizationOperationsListCall {
68384	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
68385	return c
68386}
68387
68388// OrderBy sets the optional parameter "orderBy": Sorts list results by
68389// a certain order. By default, results are returned in alphanumerical
68390// order based on the resource name.
68391//
68392// You can also sort results in descending order based on the creation
68393// timestamp using orderBy="creationTimestamp desc". This sorts results
68394// based on the creationTimestamp field in reverse chronological order
68395// (newest result first). Use this to sort resources like operations so
68396// that the newest operation is returned first.
68397//
68398// Currently, only sorting by name or creationTimestamp desc is
68399// supported.
68400func (c *GlobalOrganizationOperationsListCall) OrderBy(orderBy string) *GlobalOrganizationOperationsListCall {
68401	c.urlParams_.Set("orderBy", orderBy)
68402	return c
68403}
68404
68405// PageToken sets the optional parameter "pageToken": Specifies a page
68406// token to use. Set pageToken to the nextPageToken returned by a
68407// previous list request to get the next page of results.
68408func (c *GlobalOrganizationOperationsListCall) PageToken(pageToken string) *GlobalOrganizationOperationsListCall {
68409	c.urlParams_.Set("pageToken", pageToken)
68410	return c
68411}
68412
68413// ParentId sets the optional parameter "parentId": Parent ID for this
68414// request.
68415func (c *GlobalOrganizationOperationsListCall) ParentId(parentId string) *GlobalOrganizationOperationsListCall {
68416	c.urlParams_.Set("parentId", parentId)
68417	return c
68418}
68419
68420// Fields allows partial responses to be retrieved. See
68421// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68422// for more information.
68423func (c *GlobalOrganizationOperationsListCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsListCall {
68424	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68425	return c
68426}
68427
68428// IfNoneMatch sets the optional parameter which makes the operation
68429// fail if the object's ETag matches the given value. This is useful for
68430// getting updates only after the object has changed since the last
68431// request. Use googleapi.IsNotModified to check whether the response
68432// error from Do is the result of In-None-Match.
68433func (c *GlobalOrganizationOperationsListCall) IfNoneMatch(entityTag string) *GlobalOrganizationOperationsListCall {
68434	c.ifNoneMatch_ = entityTag
68435	return c
68436}
68437
68438// Context sets the context to be used in this call's Do method. Any
68439// pending HTTP request will be aborted if the provided context is
68440// canceled.
68441func (c *GlobalOrganizationOperationsListCall) Context(ctx context.Context) *GlobalOrganizationOperationsListCall {
68442	c.ctx_ = ctx
68443	return c
68444}
68445
68446// Header returns an http.Header that can be modified by the caller to
68447// add HTTP headers to the request.
68448func (c *GlobalOrganizationOperationsListCall) Header() http.Header {
68449	if c.header_ == nil {
68450		c.header_ = make(http.Header)
68451	}
68452	return c.header_
68453}
68454
68455func (c *GlobalOrganizationOperationsListCall) doRequest(alt string) (*http.Response, error) {
68456	reqHeaders := make(http.Header)
68457	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
68458	for k, v := range c.header_ {
68459		reqHeaders[k] = v
68460	}
68461	reqHeaders.Set("User-Agent", c.s.userAgent())
68462	if c.ifNoneMatch_ != "" {
68463		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68464	}
68465	var body io.Reader = nil
68466	c.urlParams_.Set("alt", alt)
68467	c.urlParams_.Set("prettyPrint", "false")
68468	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations")
68469	urls += "?" + c.urlParams_.Encode()
68470	req, err := http.NewRequest("GET", urls, body)
68471	if err != nil {
68472		return nil, err
68473	}
68474	req.Header = reqHeaders
68475	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68476}
68477
68478// Do executes the "compute.globalOrganizationOperations.list" call.
68479// Exactly one of *OperationList or error will be non-nil. Any non-2xx
68480// status code is an error. Response headers are in either
68481// *OperationList.ServerResponse.Header or (if a response was returned
68482// at all) in error.(*googleapi.Error).Header. Use
68483// googleapi.IsNotModified to check whether the returned error was
68484// because http.StatusNotModified was returned.
68485func (c *GlobalOrganizationOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
68486	gensupport.SetOptions(c.urlParams_, opts...)
68487	res, err := c.doRequest("json")
68488	if res != nil && res.StatusCode == http.StatusNotModified {
68489		if res.Body != nil {
68490			res.Body.Close()
68491		}
68492		return nil, &googleapi.Error{
68493			Code:   res.StatusCode,
68494			Header: res.Header,
68495		}
68496	}
68497	if err != nil {
68498		return nil, err
68499	}
68500	defer googleapi.CloseBody(res)
68501	if err := googleapi.CheckResponse(res); err != nil {
68502		return nil, err
68503	}
68504	ret := &OperationList{
68505		ServerResponse: googleapi.ServerResponse{
68506			Header:         res.Header,
68507			HTTPStatusCode: res.StatusCode,
68508		},
68509	}
68510	target := &ret
68511	if err := gensupport.DecodeResponse(target, res); err != nil {
68512		return nil, err
68513	}
68514	return ret, nil
68515	// {
68516	//   "description": "Retrieves a list of Operation resources contained within the specified organization.",
68517	//   "httpMethod": "GET",
68518	//   "id": "compute.globalOrganizationOperations.list",
68519	//   "parameters": {
68520	//     "filter": {
68521	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
68522	//       "location": "query",
68523	//       "type": "string"
68524	//     },
68525	//     "maxResults": {
68526	//       "default": "500",
68527	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
68528	//       "format": "uint32",
68529	//       "location": "query",
68530	//       "minimum": "0",
68531	//       "type": "integer"
68532	//     },
68533	//     "orderBy": {
68534	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
68535	//       "location": "query",
68536	//       "type": "string"
68537	//     },
68538	//     "pageToken": {
68539	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
68540	//       "location": "query",
68541	//       "type": "string"
68542	//     },
68543	//     "parentId": {
68544	//       "description": "Parent ID for this request.",
68545	//       "location": "query",
68546	//       "type": "string"
68547	//     }
68548	//   },
68549	//   "path": "locations/global/operations",
68550	//   "response": {
68551	//     "$ref": "OperationList"
68552	//   },
68553	//   "scopes": [
68554	//     "https://www.googleapis.com/auth/cloud-platform",
68555	//     "https://www.googleapis.com/auth/compute",
68556	//     "https://www.googleapis.com/auth/compute.readonly"
68557	//   ]
68558	// }
68559
68560}
68561
68562// Pages invokes f for each page of results.
68563// A non-nil error returned from f will halt the iteration.
68564// The provided context supersedes any context provided to the Context method.
68565func (c *GlobalOrganizationOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
68566	c.ctx_ = ctx
68567	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
68568	for {
68569		x, err := c.Do()
68570		if err != nil {
68571			return err
68572		}
68573		if err := f(x); err != nil {
68574			return err
68575		}
68576		if x.NextPageToken == "" {
68577			return nil
68578		}
68579		c.PageToken(x.NextPageToken)
68580	}
68581}
68582
68583// method id "compute.globalOrganizationOperations.wait":
68584
68585type GlobalOrganizationOperationsWaitCall struct {
68586	s          *Service
68587	operation  string
68588	urlParams_ gensupport.URLParams
68589	ctx_       context.Context
68590	header_    http.Header
68591}
68592
68593// Wait: Waits for the specified Operation resource to return as DONE or
68594// for the request to approach the 2 minute deadline, and retrieves the
68595// specified Operation resource. This method differs from the GET method
68596// in that it waits for no more than the default deadline (2 minutes)
68597// and then returns the current state of the operation, which might be
68598// DONE or still in progress.
68599//
68600// This method is called on a best-effort basis. Specifically:
68601// - In uncommon cases, when the server is overloaded, the request might
68602// return before the default deadline is reached, or might return after
68603// zero seconds.
68604// - If the default deadline is reached, there is no guarantee that the
68605// operation is actually done when the method returns. Be prepared to
68606// retry if the operation is not DONE.
68607func (r *GlobalOrganizationOperationsService) Wait(operation string) *GlobalOrganizationOperationsWaitCall {
68608	c := &GlobalOrganizationOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68609	c.operation = operation
68610	return c
68611}
68612
68613// ParentId sets the optional parameter "parentId": Parent ID for this
68614// request.
68615func (c *GlobalOrganizationOperationsWaitCall) ParentId(parentId string) *GlobalOrganizationOperationsWaitCall {
68616	c.urlParams_.Set("parentId", parentId)
68617	return c
68618}
68619
68620// Fields allows partial responses to be retrieved. See
68621// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68622// for more information.
68623func (c *GlobalOrganizationOperationsWaitCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsWaitCall {
68624	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68625	return c
68626}
68627
68628// Context sets the context to be used in this call's Do method. Any
68629// pending HTTP request will be aborted if the provided context is
68630// canceled.
68631func (c *GlobalOrganizationOperationsWaitCall) Context(ctx context.Context) *GlobalOrganizationOperationsWaitCall {
68632	c.ctx_ = ctx
68633	return c
68634}
68635
68636// Header returns an http.Header that can be modified by the caller to
68637// add HTTP headers to the request.
68638func (c *GlobalOrganizationOperationsWaitCall) Header() http.Header {
68639	if c.header_ == nil {
68640		c.header_ = make(http.Header)
68641	}
68642	return c.header_
68643}
68644
68645func (c *GlobalOrganizationOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
68646	reqHeaders := make(http.Header)
68647	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
68648	for k, v := range c.header_ {
68649		reqHeaders[k] = v
68650	}
68651	reqHeaders.Set("User-Agent", c.s.userAgent())
68652	var body io.Reader = nil
68653	c.urlParams_.Set("alt", alt)
68654	c.urlParams_.Set("prettyPrint", "false")
68655	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations/{operation}/wait")
68656	urls += "?" + c.urlParams_.Encode()
68657	req, err := http.NewRequest("POST", urls, body)
68658	if err != nil {
68659		return nil, err
68660	}
68661	req.Header = reqHeaders
68662	googleapi.Expand(req.URL, map[string]string{
68663		"operation": c.operation,
68664	})
68665	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68666}
68667
68668// Do executes the "compute.globalOrganizationOperations.wait" call.
68669// Exactly one of *Operation or error will be non-nil. Any non-2xx
68670// status code is an error. Response headers are in either
68671// *Operation.ServerResponse.Header or (if a response was returned at
68672// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68673// to check whether the returned error was because
68674// http.StatusNotModified was returned.
68675func (c *GlobalOrganizationOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68676	gensupport.SetOptions(c.urlParams_, opts...)
68677	res, err := c.doRequest("json")
68678	if res != nil && res.StatusCode == http.StatusNotModified {
68679		if res.Body != nil {
68680			res.Body.Close()
68681		}
68682		return nil, &googleapi.Error{
68683			Code:   res.StatusCode,
68684			Header: res.Header,
68685		}
68686	}
68687	if err != nil {
68688		return nil, err
68689	}
68690	defer googleapi.CloseBody(res)
68691	if err := googleapi.CheckResponse(res); err != nil {
68692		return nil, err
68693	}
68694	ret := &Operation{
68695		ServerResponse: googleapi.ServerResponse{
68696			Header:         res.Header,
68697			HTTPStatusCode: res.StatusCode,
68698		},
68699	}
68700	target := &ret
68701	if err := gensupport.DecodeResponse(target, res); err != nil {
68702		return nil, err
68703	}
68704	return ret, nil
68705	// {
68706	//   "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.",
68707	//   "httpMethod": "POST",
68708	//   "id": "compute.globalOrganizationOperations.wait",
68709	//   "parameterOrder": [
68710	//     "operation"
68711	//   ],
68712	//   "parameters": {
68713	//     "operation": {
68714	//       "description": "Name of the Operations resource to return.",
68715	//       "location": "path",
68716	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68717	//       "required": true,
68718	//       "type": "string"
68719	//     },
68720	//     "parentId": {
68721	//       "description": "Parent ID for this request.",
68722	//       "location": "query",
68723	//       "type": "string"
68724	//     }
68725	//   },
68726	//   "path": "locations/global/operations/{operation}/wait",
68727	//   "response": {
68728	//     "$ref": "Operation"
68729	//   },
68730	//   "scopes": [
68731	//     "https://www.googleapis.com/auth/cloud-platform",
68732	//     "https://www.googleapis.com/auth/compute",
68733	//     "https://www.googleapis.com/auth/compute.readonly"
68734	//   ]
68735	// }
68736
68737}
68738
68739// method id "compute.globalPublicDelegatedPrefixes.delete":
68740
68741type GlobalPublicDelegatedPrefixesDeleteCall struct {
68742	s                     *Service
68743	project               string
68744	publicDelegatedPrefix string
68745	urlParams_            gensupport.URLParams
68746	ctx_                  context.Context
68747	header_               http.Header
68748}
68749
68750// Delete: Deletes the specified global PublicDelegatedPrefix.
68751func (r *GlobalPublicDelegatedPrefixesService) Delete(project string, publicDelegatedPrefix string) *GlobalPublicDelegatedPrefixesDeleteCall {
68752	c := &GlobalPublicDelegatedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68753	c.project = project
68754	c.publicDelegatedPrefix = publicDelegatedPrefix
68755	return c
68756}
68757
68758// RequestId sets the optional parameter "requestId": An optional
68759// request ID to identify requests. Specify a unique request ID so that
68760// if you must retry your request, the server will know to ignore the
68761// request if it has already been completed.
68762//
68763// For example, consider a situation where you make an initial request
68764// and the request times out. If you make the request again with the
68765// same request ID, the server can check if original operation with the
68766// same request ID was received, and if so, will ignore the second
68767// request. This prevents clients from accidentally creating duplicate
68768// commitments.
68769//
68770// The request ID must be a valid UUID with the exception that zero UUID
68771// is not supported (00000000-0000-0000-0000-000000000000).
68772func (c *GlobalPublicDelegatedPrefixesDeleteCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesDeleteCall {
68773	c.urlParams_.Set("requestId", requestId)
68774	return c
68775}
68776
68777// Fields allows partial responses to be retrieved. See
68778// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68779// for more information.
68780func (c *GlobalPublicDelegatedPrefixesDeleteCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesDeleteCall {
68781	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68782	return c
68783}
68784
68785// Context sets the context to be used in this call's Do method. Any
68786// pending HTTP request will be aborted if the provided context is
68787// canceled.
68788func (c *GlobalPublicDelegatedPrefixesDeleteCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesDeleteCall {
68789	c.ctx_ = ctx
68790	return c
68791}
68792
68793// Header returns an http.Header that can be modified by the caller to
68794// add HTTP headers to the request.
68795func (c *GlobalPublicDelegatedPrefixesDeleteCall) Header() http.Header {
68796	if c.header_ == nil {
68797		c.header_ = make(http.Header)
68798	}
68799	return c.header_
68800}
68801
68802func (c *GlobalPublicDelegatedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) {
68803	reqHeaders := make(http.Header)
68804	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
68805	for k, v := range c.header_ {
68806		reqHeaders[k] = v
68807	}
68808	reqHeaders.Set("User-Agent", c.s.userAgent())
68809	var body io.Reader = nil
68810	c.urlParams_.Set("alt", alt)
68811	c.urlParams_.Set("prettyPrint", "false")
68812	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}")
68813	urls += "?" + c.urlParams_.Encode()
68814	req, err := http.NewRequest("DELETE", urls, body)
68815	if err != nil {
68816		return nil, err
68817	}
68818	req.Header = reqHeaders
68819	googleapi.Expand(req.URL, map[string]string{
68820		"project":               c.project,
68821		"publicDelegatedPrefix": c.publicDelegatedPrefix,
68822	})
68823	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68824}
68825
68826// Do executes the "compute.globalPublicDelegatedPrefixes.delete" call.
68827// Exactly one of *Operation or error will be non-nil. Any non-2xx
68828// status code is an error. Response headers are in either
68829// *Operation.ServerResponse.Header or (if a response was returned at
68830// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68831// to check whether the returned error was because
68832// http.StatusNotModified was returned.
68833func (c *GlobalPublicDelegatedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68834	gensupport.SetOptions(c.urlParams_, opts...)
68835	res, err := c.doRequest("json")
68836	if res != nil && res.StatusCode == http.StatusNotModified {
68837		if res.Body != nil {
68838			res.Body.Close()
68839		}
68840		return nil, &googleapi.Error{
68841			Code:   res.StatusCode,
68842			Header: res.Header,
68843		}
68844	}
68845	if err != nil {
68846		return nil, err
68847	}
68848	defer googleapi.CloseBody(res)
68849	if err := googleapi.CheckResponse(res); err != nil {
68850		return nil, err
68851	}
68852	ret := &Operation{
68853		ServerResponse: googleapi.ServerResponse{
68854			Header:         res.Header,
68855			HTTPStatusCode: res.StatusCode,
68856		},
68857	}
68858	target := &ret
68859	if err := gensupport.DecodeResponse(target, res); err != nil {
68860		return nil, err
68861	}
68862	return ret, nil
68863	// {
68864	//   "description": "Deletes the specified global PublicDelegatedPrefix.",
68865	//   "httpMethod": "DELETE",
68866	//   "id": "compute.globalPublicDelegatedPrefixes.delete",
68867	//   "parameterOrder": [
68868	//     "project",
68869	//     "publicDelegatedPrefix"
68870	//   ],
68871	//   "parameters": {
68872	//     "project": {
68873	//       "description": "Project ID for this request.",
68874	//       "location": "path",
68875	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68876	//       "required": true,
68877	//       "type": "string"
68878	//     },
68879	//     "publicDelegatedPrefix": {
68880	//       "description": "Name of the PublicDelegatedPrefix resource to delete.",
68881	//       "location": "path",
68882	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68883	//       "required": true,
68884	//       "type": "string"
68885	//     },
68886	//     "requestId": {
68887	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
68888	//       "location": "query",
68889	//       "type": "string"
68890	//     }
68891	//   },
68892	//   "path": "{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
68893	//   "response": {
68894	//     "$ref": "Operation"
68895	//   },
68896	//   "scopes": [
68897	//     "https://www.googleapis.com/auth/cloud-platform",
68898	//     "https://www.googleapis.com/auth/compute"
68899	//   ]
68900	// }
68901
68902}
68903
68904// method id "compute.globalPublicDelegatedPrefixes.get":
68905
68906type GlobalPublicDelegatedPrefixesGetCall struct {
68907	s                     *Service
68908	project               string
68909	publicDelegatedPrefix string
68910	urlParams_            gensupport.URLParams
68911	ifNoneMatch_          string
68912	ctx_                  context.Context
68913	header_               http.Header
68914}
68915
68916// Get: Returns the specified global PublicDelegatedPrefix resource.
68917func (r *GlobalPublicDelegatedPrefixesService) Get(project string, publicDelegatedPrefix string) *GlobalPublicDelegatedPrefixesGetCall {
68918	c := &GlobalPublicDelegatedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68919	c.project = project
68920	c.publicDelegatedPrefix = publicDelegatedPrefix
68921	return c
68922}
68923
68924// Fields allows partial responses to be retrieved. See
68925// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68926// for more information.
68927func (c *GlobalPublicDelegatedPrefixesGetCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesGetCall {
68928	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68929	return c
68930}
68931
68932// IfNoneMatch sets the optional parameter which makes the operation
68933// fail if the object's ETag matches the given value. This is useful for
68934// getting updates only after the object has changed since the last
68935// request. Use googleapi.IsNotModified to check whether the response
68936// error from Do is the result of In-None-Match.
68937func (c *GlobalPublicDelegatedPrefixesGetCall) IfNoneMatch(entityTag string) *GlobalPublicDelegatedPrefixesGetCall {
68938	c.ifNoneMatch_ = entityTag
68939	return c
68940}
68941
68942// Context sets the context to be used in this call's Do method. Any
68943// pending HTTP request will be aborted if the provided context is
68944// canceled.
68945func (c *GlobalPublicDelegatedPrefixesGetCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesGetCall {
68946	c.ctx_ = ctx
68947	return c
68948}
68949
68950// Header returns an http.Header that can be modified by the caller to
68951// add HTTP headers to the request.
68952func (c *GlobalPublicDelegatedPrefixesGetCall) Header() http.Header {
68953	if c.header_ == nil {
68954		c.header_ = make(http.Header)
68955	}
68956	return c.header_
68957}
68958
68959func (c *GlobalPublicDelegatedPrefixesGetCall) doRequest(alt string) (*http.Response, error) {
68960	reqHeaders := make(http.Header)
68961	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
68962	for k, v := range c.header_ {
68963		reqHeaders[k] = v
68964	}
68965	reqHeaders.Set("User-Agent", c.s.userAgent())
68966	if c.ifNoneMatch_ != "" {
68967		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68968	}
68969	var body io.Reader = nil
68970	c.urlParams_.Set("alt", alt)
68971	c.urlParams_.Set("prettyPrint", "false")
68972	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}")
68973	urls += "?" + c.urlParams_.Encode()
68974	req, err := http.NewRequest("GET", urls, body)
68975	if err != nil {
68976		return nil, err
68977	}
68978	req.Header = reqHeaders
68979	googleapi.Expand(req.URL, map[string]string{
68980		"project":               c.project,
68981		"publicDelegatedPrefix": c.publicDelegatedPrefix,
68982	})
68983	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68984}
68985
68986// Do executes the "compute.globalPublicDelegatedPrefixes.get" call.
68987// Exactly one of *PublicDelegatedPrefix or error will be non-nil. Any
68988// non-2xx status code is an error. Response headers are in either
68989// *PublicDelegatedPrefix.ServerResponse.Header or (if a response was
68990// returned at all) in error.(*googleapi.Error).Header. Use
68991// googleapi.IsNotModified to check whether the returned error was
68992// because http.StatusNotModified was returned.
68993func (c *GlobalPublicDelegatedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefix, error) {
68994	gensupport.SetOptions(c.urlParams_, opts...)
68995	res, err := c.doRequest("json")
68996	if res != nil && res.StatusCode == http.StatusNotModified {
68997		if res.Body != nil {
68998			res.Body.Close()
68999		}
69000		return nil, &googleapi.Error{
69001			Code:   res.StatusCode,
69002			Header: res.Header,
69003		}
69004	}
69005	if err != nil {
69006		return nil, err
69007	}
69008	defer googleapi.CloseBody(res)
69009	if err := googleapi.CheckResponse(res); err != nil {
69010		return nil, err
69011	}
69012	ret := &PublicDelegatedPrefix{
69013		ServerResponse: googleapi.ServerResponse{
69014			Header:         res.Header,
69015			HTTPStatusCode: res.StatusCode,
69016		},
69017	}
69018	target := &ret
69019	if err := gensupport.DecodeResponse(target, res); err != nil {
69020		return nil, err
69021	}
69022	return ret, nil
69023	// {
69024	//   "description": "Returns the specified global PublicDelegatedPrefix resource.",
69025	//   "httpMethod": "GET",
69026	//   "id": "compute.globalPublicDelegatedPrefixes.get",
69027	//   "parameterOrder": [
69028	//     "project",
69029	//     "publicDelegatedPrefix"
69030	//   ],
69031	//   "parameters": {
69032	//     "project": {
69033	//       "description": "Project ID for this request.",
69034	//       "location": "path",
69035	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69036	//       "required": true,
69037	//       "type": "string"
69038	//     },
69039	//     "publicDelegatedPrefix": {
69040	//       "description": "Name of the PublicDelegatedPrefix resource to return.",
69041	//       "location": "path",
69042	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69043	//       "required": true,
69044	//       "type": "string"
69045	//     }
69046	//   },
69047	//   "path": "{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
69048	//   "response": {
69049	//     "$ref": "PublicDelegatedPrefix"
69050	//   },
69051	//   "scopes": [
69052	//     "https://www.googleapis.com/auth/cloud-platform",
69053	//     "https://www.googleapis.com/auth/compute",
69054	//     "https://www.googleapis.com/auth/compute.readonly"
69055	//   ]
69056	// }
69057
69058}
69059
69060// method id "compute.globalPublicDelegatedPrefixes.insert":
69061
69062type GlobalPublicDelegatedPrefixesInsertCall struct {
69063	s                     *Service
69064	project               string
69065	publicdelegatedprefix *PublicDelegatedPrefix
69066	urlParams_            gensupport.URLParams
69067	ctx_                  context.Context
69068	header_               http.Header
69069}
69070
69071// Insert: Creates a global PublicDelegatedPrefix in the specified
69072// project using the parameters that are included in the request.
69073func (r *GlobalPublicDelegatedPrefixesService) Insert(project string, publicdelegatedprefix *PublicDelegatedPrefix) *GlobalPublicDelegatedPrefixesInsertCall {
69074	c := &GlobalPublicDelegatedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69075	c.project = project
69076	c.publicdelegatedprefix = publicdelegatedprefix
69077	return c
69078}
69079
69080// RequestId sets the optional parameter "requestId": An optional
69081// request ID to identify requests. Specify a unique request ID so that
69082// if you must retry your request, the server will know to ignore the
69083// request if it has already been completed.
69084//
69085// For example, consider a situation where you make an initial request
69086// and the request times out. If you make the request again with the
69087// same request ID, the server can check if original operation with the
69088// same request ID was received, and if so, will ignore the second
69089// request. This prevents clients from accidentally creating duplicate
69090// commitments.
69091//
69092// The request ID must be a valid UUID with the exception that zero UUID
69093// is not supported (00000000-0000-0000-0000-000000000000).
69094func (c *GlobalPublicDelegatedPrefixesInsertCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesInsertCall {
69095	c.urlParams_.Set("requestId", requestId)
69096	return c
69097}
69098
69099// Fields allows partial responses to be retrieved. See
69100// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69101// for more information.
69102func (c *GlobalPublicDelegatedPrefixesInsertCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesInsertCall {
69103	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69104	return c
69105}
69106
69107// Context sets the context to be used in this call's Do method. Any
69108// pending HTTP request will be aborted if the provided context is
69109// canceled.
69110func (c *GlobalPublicDelegatedPrefixesInsertCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesInsertCall {
69111	c.ctx_ = ctx
69112	return c
69113}
69114
69115// Header returns an http.Header that can be modified by the caller to
69116// add HTTP headers to the request.
69117func (c *GlobalPublicDelegatedPrefixesInsertCall) Header() http.Header {
69118	if c.header_ == nil {
69119		c.header_ = make(http.Header)
69120	}
69121	return c.header_
69122}
69123
69124func (c *GlobalPublicDelegatedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) {
69125	reqHeaders := make(http.Header)
69126	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
69127	for k, v := range c.header_ {
69128		reqHeaders[k] = v
69129	}
69130	reqHeaders.Set("User-Agent", c.s.userAgent())
69131	var body io.Reader = nil
69132	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
69133	if err != nil {
69134		return nil, err
69135	}
69136	reqHeaders.Set("Content-Type", "application/json")
69137	c.urlParams_.Set("alt", alt)
69138	c.urlParams_.Set("prettyPrint", "false")
69139	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicDelegatedPrefixes")
69140	urls += "?" + c.urlParams_.Encode()
69141	req, err := http.NewRequest("POST", urls, body)
69142	if err != nil {
69143		return nil, err
69144	}
69145	req.Header = reqHeaders
69146	googleapi.Expand(req.URL, map[string]string{
69147		"project": c.project,
69148	})
69149	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69150}
69151
69152// Do executes the "compute.globalPublicDelegatedPrefixes.insert" call.
69153// Exactly one of *Operation or error will be non-nil. Any non-2xx
69154// status code is an error. Response headers are in either
69155// *Operation.ServerResponse.Header or (if a response was returned at
69156// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69157// to check whether the returned error was because
69158// http.StatusNotModified was returned.
69159func (c *GlobalPublicDelegatedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69160	gensupport.SetOptions(c.urlParams_, opts...)
69161	res, err := c.doRequest("json")
69162	if res != nil && res.StatusCode == http.StatusNotModified {
69163		if res.Body != nil {
69164			res.Body.Close()
69165		}
69166		return nil, &googleapi.Error{
69167			Code:   res.StatusCode,
69168			Header: res.Header,
69169		}
69170	}
69171	if err != nil {
69172		return nil, err
69173	}
69174	defer googleapi.CloseBody(res)
69175	if err := googleapi.CheckResponse(res); err != nil {
69176		return nil, err
69177	}
69178	ret := &Operation{
69179		ServerResponse: googleapi.ServerResponse{
69180			Header:         res.Header,
69181			HTTPStatusCode: res.StatusCode,
69182		},
69183	}
69184	target := &ret
69185	if err := gensupport.DecodeResponse(target, res); err != nil {
69186		return nil, err
69187	}
69188	return ret, nil
69189	// {
69190	//   "description": "Creates a global PublicDelegatedPrefix in the specified project using the parameters that are included in the request.",
69191	//   "httpMethod": "POST",
69192	//   "id": "compute.globalPublicDelegatedPrefixes.insert",
69193	//   "parameterOrder": [
69194	//     "project"
69195	//   ],
69196	//   "parameters": {
69197	//     "project": {
69198	//       "description": "Project ID for this request.",
69199	//       "location": "path",
69200	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69201	//       "required": true,
69202	//       "type": "string"
69203	//     },
69204	//     "requestId": {
69205	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
69206	//       "location": "query",
69207	//       "type": "string"
69208	//     }
69209	//   },
69210	//   "path": "{project}/global/publicDelegatedPrefixes",
69211	//   "request": {
69212	//     "$ref": "PublicDelegatedPrefix"
69213	//   },
69214	//   "response": {
69215	//     "$ref": "Operation"
69216	//   },
69217	//   "scopes": [
69218	//     "https://www.googleapis.com/auth/cloud-platform",
69219	//     "https://www.googleapis.com/auth/compute"
69220	//   ]
69221	// }
69222
69223}
69224
69225// method id "compute.globalPublicDelegatedPrefixes.list":
69226
69227type GlobalPublicDelegatedPrefixesListCall struct {
69228	s            *Service
69229	project      string
69230	urlParams_   gensupport.URLParams
69231	ifNoneMatch_ string
69232	ctx_         context.Context
69233	header_      http.Header
69234}
69235
69236// List: Lists the global PublicDelegatedPrefixes for a project.
69237func (r *GlobalPublicDelegatedPrefixesService) List(project string) *GlobalPublicDelegatedPrefixesListCall {
69238	c := &GlobalPublicDelegatedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69239	c.project = project
69240	return c
69241}
69242
69243// Filter sets the optional parameter "filter": A filter expression that
69244// filters resources listed in the response. The expression must specify
69245// the field name, a comparison operator, and the value that you want to
69246// use for filtering. The value must be a string, a number, or a
69247// boolean. The comparison operator must be either =, !=, >, or <.
69248//
69249// For example, if you are filtering Compute Engine instances, you can
69250// exclude instances named example-instance by specifying name !=
69251// example-instance.
69252//
69253// You can also filter nested fields. For example, you could specify
69254// scheduling.automaticRestart = false to include instances only if they
69255// are not scheduled for automatic restarts. You can use filtering on
69256// nested fields to filter based on resource labels.
69257//
69258// To filter on multiple expressions, provide each separate expression
69259// within parentheses. For example, (scheduling.automaticRestart = true)
69260// (cpuPlatform = "Intel Skylake"). By default, each expression is an
69261// AND expression. However, you can include AND and OR expressions
69262// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
69263// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
69264// true).
69265func (c *GlobalPublicDelegatedPrefixesListCall) Filter(filter string) *GlobalPublicDelegatedPrefixesListCall {
69266	c.urlParams_.Set("filter", filter)
69267	return c
69268}
69269
69270// MaxResults sets the optional parameter "maxResults": The maximum
69271// number of results per page that should be returned. If the number of
69272// available results is larger than maxResults, Compute Engine returns a
69273// nextPageToken that can be used to get the next page of results in
69274// subsequent list requests. Acceptable values are 0 to 500, inclusive.
69275// (Default: 500)
69276func (c *GlobalPublicDelegatedPrefixesListCall) MaxResults(maxResults int64) *GlobalPublicDelegatedPrefixesListCall {
69277	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
69278	return c
69279}
69280
69281// OrderBy sets the optional parameter "orderBy": Sorts list results by
69282// a certain order. By default, results are returned in alphanumerical
69283// order based on the resource name.
69284//
69285// You can also sort results in descending order based on the creation
69286// timestamp using orderBy="creationTimestamp desc". This sorts results
69287// based on the creationTimestamp field in reverse chronological order
69288// (newest result first). Use this to sort resources like operations so
69289// that the newest operation is returned first.
69290//
69291// Currently, only sorting by name or creationTimestamp desc is
69292// supported.
69293func (c *GlobalPublicDelegatedPrefixesListCall) OrderBy(orderBy string) *GlobalPublicDelegatedPrefixesListCall {
69294	c.urlParams_.Set("orderBy", orderBy)
69295	return c
69296}
69297
69298// PageToken sets the optional parameter "pageToken": Specifies a page
69299// token to use. Set pageToken to the nextPageToken returned by a
69300// previous list request to get the next page of results.
69301func (c *GlobalPublicDelegatedPrefixesListCall) PageToken(pageToken string) *GlobalPublicDelegatedPrefixesListCall {
69302	c.urlParams_.Set("pageToken", pageToken)
69303	return c
69304}
69305
69306// Fields allows partial responses to be retrieved. See
69307// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69308// for more information.
69309func (c *GlobalPublicDelegatedPrefixesListCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesListCall {
69310	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69311	return c
69312}
69313
69314// IfNoneMatch sets the optional parameter which makes the operation
69315// fail if the object's ETag matches the given value. This is useful for
69316// getting updates only after the object has changed since the last
69317// request. Use googleapi.IsNotModified to check whether the response
69318// error from Do is the result of In-None-Match.
69319func (c *GlobalPublicDelegatedPrefixesListCall) IfNoneMatch(entityTag string) *GlobalPublicDelegatedPrefixesListCall {
69320	c.ifNoneMatch_ = entityTag
69321	return c
69322}
69323
69324// Context sets the context to be used in this call's Do method. Any
69325// pending HTTP request will be aborted if the provided context is
69326// canceled.
69327func (c *GlobalPublicDelegatedPrefixesListCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesListCall {
69328	c.ctx_ = ctx
69329	return c
69330}
69331
69332// Header returns an http.Header that can be modified by the caller to
69333// add HTTP headers to the request.
69334func (c *GlobalPublicDelegatedPrefixesListCall) Header() http.Header {
69335	if c.header_ == nil {
69336		c.header_ = make(http.Header)
69337	}
69338	return c.header_
69339}
69340
69341func (c *GlobalPublicDelegatedPrefixesListCall) doRequest(alt string) (*http.Response, error) {
69342	reqHeaders := make(http.Header)
69343	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
69344	for k, v := range c.header_ {
69345		reqHeaders[k] = v
69346	}
69347	reqHeaders.Set("User-Agent", c.s.userAgent())
69348	if c.ifNoneMatch_ != "" {
69349		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
69350	}
69351	var body io.Reader = nil
69352	c.urlParams_.Set("alt", alt)
69353	c.urlParams_.Set("prettyPrint", "false")
69354	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicDelegatedPrefixes")
69355	urls += "?" + c.urlParams_.Encode()
69356	req, err := http.NewRequest("GET", urls, body)
69357	if err != nil {
69358		return nil, err
69359	}
69360	req.Header = reqHeaders
69361	googleapi.Expand(req.URL, map[string]string{
69362		"project": c.project,
69363	})
69364	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69365}
69366
69367// Do executes the "compute.globalPublicDelegatedPrefixes.list" call.
69368// Exactly one of *PublicDelegatedPrefixList or error will be non-nil.
69369// Any non-2xx status code is an error. Response headers are in either
69370// *PublicDelegatedPrefixList.ServerResponse.Header or (if a response
69371// was returned at all) in error.(*googleapi.Error).Header. Use
69372// googleapi.IsNotModified to check whether the returned error was
69373// because http.StatusNotModified was returned.
69374func (c *GlobalPublicDelegatedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixList, error) {
69375	gensupport.SetOptions(c.urlParams_, opts...)
69376	res, err := c.doRequest("json")
69377	if res != nil && res.StatusCode == http.StatusNotModified {
69378		if res.Body != nil {
69379			res.Body.Close()
69380		}
69381		return nil, &googleapi.Error{
69382			Code:   res.StatusCode,
69383			Header: res.Header,
69384		}
69385	}
69386	if err != nil {
69387		return nil, err
69388	}
69389	defer googleapi.CloseBody(res)
69390	if err := googleapi.CheckResponse(res); err != nil {
69391		return nil, err
69392	}
69393	ret := &PublicDelegatedPrefixList{
69394		ServerResponse: googleapi.ServerResponse{
69395			Header:         res.Header,
69396			HTTPStatusCode: res.StatusCode,
69397		},
69398	}
69399	target := &ret
69400	if err := gensupport.DecodeResponse(target, res); err != nil {
69401		return nil, err
69402	}
69403	return ret, nil
69404	// {
69405	//   "description": "Lists the global PublicDelegatedPrefixes for a project.",
69406	//   "httpMethod": "GET",
69407	//   "id": "compute.globalPublicDelegatedPrefixes.list",
69408	//   "parameterOrder": [
69409	//     "project"
69410	//   ],
69411	//   "parameters": {
69412	//     "filter": {
69413	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
69414	//       "location": "query",
69415	//       "type": "string"
69416	//     },
69417	//     "maxResults": {
69418	//       "default": "500",
69419	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
69420	//       "format": "uint32",
69421	//       "location": "query",
69422	//       "minimum": "0",
69423	//       "type": "integer"
69424	//     },
69425	//     "orderBy": {
69426	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
69427	//       "location": "query",
69428	//       "type": "string"
69429	//     },
69430	//     "pageToken": {
69431	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
69432	//       "location": "query",
69433	//       "type": "string"
69434	//     },
69435	//     "project": {
69436	//       "description": "Project ID for this request.",
69437	//       "location": "path",
69438	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69439	//       "required": true,
69440	//       "type": "string"
69441	//     }
69442	//   },
69443	//   "path": "{project}/global/publicDelegatedPrefixes",
69444	//   "response": {
69445	//     "$ref": "PublicDelegatedPrefixList"
69446	//   },
69447	//   "scopes": [
69448	//     "https://www.googleapis.com/auth/cloud-platform",
69449	//     "https://www.googleapis.com/auth/compute",
69450	//     "https://www.googleapis.com/auth/compute.readonly"
69451	//   ]
69452	// }
69453
69454}
69455
69456// Pages invokes f for each page of results.
69457// A non-nil error returned from f will halt the iteration.
69458// The provided context supersedes any context provided to the Context method.
69459func (c *GlobalPublicDelegatedPrefixesListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixList) error) error {
69460	c.ctx_ = ctx
69461	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
69462	for {
69463		x, err := c.Do()
69464		if err != nil {
69465			return err
69466		}
69467		if err := f(x); err != nil {
69468			return err
69469		}
69470		if x.NextPageToken == "" {
69471			return nil
69472		}
69473		c.PageToken(x.NextPageToken)
69474	}
69475}
69476
69477// method id "compute.globalPublicDelegatedPrefixes.patch":
69478
69479type GlobalPublicDelegatedPrefixesPatchCall struct {
69480	s                     *Service
69481	project               string
69482	publicDelegatedPrefix string
69483	publicdelegatedprefix *PublicDelegatedPrefix
69484	urlParams_            gensupport.URLParams
69485	ctx_                  context.Context
69486	header_               http.Header
69487}
69488
69489// Patch: Patches the specified global PublicDelegatedPrefix resource
69490// with the data included in the request. This method supports PATCH
69491// semantics and uses JSON merge patch format and processing rules.
69492func (r *GlobalPublicDelegatedPrefixesService) Patch(project string, publicDelegatedPrefix string, publicdelegatedprefix *PublicDelegatedPrefix) *GlobalPublicDelegatedPrefixesPatchCall {
69493	c := &GlobalPublicDelegatedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69494	c.project = project
69495	c.publicDelegatedPrefix = publicDelegatedPrefix
69496	c.publicdelegatedprefix = publicdelegatedprefix
69497	return c
69498}
69499
69500// RequestId sets the optional parameter "requestId": An optional
69501// request ID to identify requests. Specify a unique request ID so that
69502// if you must retry your request, the server will know to ignore the
69503// request if it has already been completed.
69504//
69505// For example, consider a situation where you make an initial request
69506// and the request times out. If you make the request again with the
69507// same request ID, the server can check if original operation with the
69508// same request ID was received, and if so, will ignore the second
69509// request. This prevents clients from accidentally creating duplicate
69510// commitments.
69511//
69512// The request ID must be a valid UUID with the exception that zero UUID
69513// is not supported (00000000-0000-0000-0000-000000000000).
69514func (c *GlobalPublicDelegatedPrefixesPatchCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesPatchCall {
69515	c.urlParams_.Set("requestId", requestId)
69516	return c
69517}
69518
69519// Fields allows partial responses to be retrieved. See
69520// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69521// for more information.
69522func (c *GlobalPublicDelegatedPrefixesPatchCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesPatchCall {
69523	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69524	return c
69525}
69526
69527// Context sets the context to be used in this call's Do method. Any
69528// pending HTTP request will be aborted if the provided context is
69529// canceled.
69530func (c *GlobalPublicDelegatedPrefixesPatchCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesPatchCall {
69531	c.ctx_ = ctx
69532	return c
69533}
69534
69535// Header returns an http.Header that can be modified by the caller to
69536// add HTTP headers to the request.
69537func (c *GlobalPublicDelegatedPrefixesPatchCall) Header() http.Header {
69538	if c.header_ == nil {
69539		c.header_ = make(http.Header)
69540	}
69541	return c.header_
69542}
69543
69544func (c *GlobalPublicDelegatedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) {
69545	reqHeaders := make(http.Header)
69546	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
69547	for k, v := range c.header_ {
69548		reqHeaders[k] = v
69549	}
69550	reqHeaders.Set("User-Agent", c.s.userAgent())
69551	var body io.Reader = nil
69552	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
69553	if err != nil {
69554		return nil, err
69555	}
69556	reqHeaders.Set("Content-Type", "application/json")
69557	c.urlParams_.Set("alt", alt)
69558	c.urlParams_.Set("prettyPrint", "false")
69559	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}")
69560	urls += "?" + c.urlParams_.Encode()
69561	req, err := http.NewRequest("PATCH", urls, body)
69562	if err != nil {
69563		return nil, err
69564	}
69565	req.Header = reqHeaders
69566	googleapi.Expand(req.URL, map[string]string{
69567		"project":               c.project,
69568		"publicDelegatedPrefix": c.publicDelegatedPrefix,
69569	})
69570	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69571}
69572
69573// Do executes the "compute.globalPublicDelegatedPrefixes.patch" call.
69574// Exactly one of *Operation or error will be non-nil. Any non-2xx
69575// status code is an error. Response headers are in either
69576// *Operation.ServerResponse.Header or (if a response was returned at
69577// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69578// to check whether the returned error was because
69579// http.StatusNotModified was returned.
69580func (c *GlobalPublicDelegatedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69581	gensupport.SetOptions(c.urlParams_, opts...)
69582	res, err := c.doRequest("json")
69583	if res != nil && res.StatusCode == http.StatusNotModified {
69584		if res.Body != nil {
69585			res.Body.Close()
69586		}
69587		return nil, &googleapi.Error{
69588			Code:   res.StatusCode,
69589			Header: res.Header,
69590		}
69591	}
69592	if err != nil {
69593		return nil, err
69594	}
69595	defer googleapi.CloseBody(res)
69596	if err := googleapi.CheckResponse(res); err != nil {
69597		return nil, err
69598	}
69599	ret := &Operation{
69600		ServerResponse: googleapi.ServerResponse{
69601			Header:         res.Header,
69602			HTTPStatusCode: res.StatusCode,
69603		},
69604	}
69605	target := &ret
69606	if err := gensupport.DecodeResponse(target, res); err != nil {
69607		return nil, err
69608	}
69609	return ret, nil
69610	// {
69611	//   "description": "Patches the specified global PublicDelegatedPrefix resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.",
69612	//   "httpMethod": "PATCH",
69613	//   "id": "compute.globalPublicDelegatedPrefixes.patch",
69614	//   "parameterOrder": [
69615	//     "project",
69616	//     "publicDelegatedPrefix"
69617	//   ],
69618	//   "parameters": {
69619	//     "project": {
69620	//       "description": "Project ID for this request.",
69621	//       "location": "path",
69622	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69623	//       "required": true,
69624	//       "type": "string"
69625	//     },
69626	//     "publicDelegatedPrefix": {
69627	//       "description": "Name of the PublicDelegatedPrefix resource to patch.",
69628	//       "location": "path",
69629	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69630	//       "required": true,
69631	//       "type": "string"
69632	//     },
69633	//     "requestId": {
69634	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
69635	//       "location": "query",
69636	//       "type": "string"
69637	//     }
69638	//   },
69639	//   "path": "{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
69640	//   "request": {
69641	//     "$ref": "PublicDelegatedPrefix"
69642	//   },
69643	//   "response": {
69644	//     "$ref": "Operation"
69645	//   },
69646	//   "scopes": [
69647	//     "https://www.googleapis.com/auth/cloud-platform",
69648	//     "https://www.googleapis.com/auth/compute"
69649	//   ]
69650	// }
69651
69652}
69653
69654// method id "compute.healthChecks.aggregatedList":
69655
69656type HealthChecksAggregatedListCall struct {
69657	s            *Service
69658	project      string
69659	urlParams_   gensupport.URLParams
69660	ifNoneMatch_ string
69661	ctx_         context.Context
69662	header_      http.Header
69663}
69664
69665// AggregatedList: Retrieves the list of all HealthCheck resources,
69666// regional and global, available to the specified project.
69667func (r *HealthChecksService) AggregatedList(project string) *HealthChecksAggregatedListCall {
69668	c := &HealthChecksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69669	c.project = project
69670	return c
69671}
69672
69673// Filter sets the optional parameter "filter": A filter expression that
69674// filters resources listed in the response. The expression must specify
69675// the field name, a comparison operator, and the value that you want to
69676// use for filtering. The value must be a string, a number, or a
69677// boolean. The comparison operator must be either =, !=, >, or <.
69678//
69679// For example, if you are filtering Compute Engine instances, you can
69680// exclude instances named example-instance by specifying name !=
69681// example-instance.
69682//
69683// You can also filter nested fields. For example, you could specify
69684// scheduling.automaticRestart = false to include instances only if they
69685// are not scheduled for automatic restarts. You can use filtering on
69686// nested fields to filter based on resource labels.
69687//
69688// To filter on multiple expressions, provide each separate expression
69689// within parentheses. For example, (scheduling.automaticRestart = true)
69690// (cpuPlatform = "Intel Skylake"). By default, each expression is an
69691// AND expression. However, you can include AND and OR expressions
69692// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
69693// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
69694// true).
69695func (c *HealthChecksAggregatedListCall) Filter(filter string) *HealthChecksAggregatedListCall {
69696	c.urlParams_.Set("filter", filter)
69697	return c
69698}
69699
69700// IncludeAllScopes sets the optional parameter "includeAllScopes":
69701// Indicates whether every visible scope for each scope type (zone,
69702// region, global) should be included in the response. For new resource
69703// types added after this field, the flag has no effect as new resource
69704// types will always include every visible scope for each scope type in
69705// response. For resource types which predate this field, if this flag
69706// is omitted or false, only scopes of the scope types where the
69707// resource type is expected to be found will be included.
69708func (c *HealthChecksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *HealthChecksAggregatedListCall {
69709	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
69710	return c
69711}
69712
69713// MaxResults sets the optional parameter "maxResults": The maximum
69714// number of results per page that should be returned. If the number of
69715// available results is larger than maxResults, Compute Engine returns a
69716// nextPageToken that can be used to get the next page of results in
69717// subsequent list requests. Acceptable values are 0 to 500, inclusive.
69718// (Default: 500)
69719func (c *HealthChecksAggregatedListCall) MaxResults(maxResults int64) *HealthChecksAggregatedListCall {
69720	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
69721	return c
69722}
69723
69724// OrderBy sets the optional parameter "orderBy": Sorts list results by
69725// a certain order. By default, results are returned in alphanumerical
69726// order based on the resource name.
69727//
69728// You can also sort results in descending order based on the creation
69729// timestamp using orderBy="creationTimestamp desc". This sorts results
69730// based on the creationTimestamp field in reverse chronological order
69731// (newest result first). Use this to sort resources like operations so
69732// that the newest operation is returned first.
69733//
69734// Currently, only sorting by name or creationTimestamp desc is
69735// supported.
69736func (c *HealthChecksAggregatedListCall) OrderBy(orderBy string) *HealthChecksAggregatedListCall {
69737	c.urlParams_.Set("orderBy", orderBy)
69738	return c
69739}
69740
69741// PageToken sets the optional parameter "pageToken": Specifies a page
69742// token to use. Set pageToken to the nextPageToken returned by a
69743// previous list request to get the next page of results.
69744func (c *HealthChecksAggregatedListCall) PageToken(pageToken string) *HealthChecksAggregatedListCall {
69745	c.urlParams_.Set("pageToken", pageToken)
69746	return c
69747}
69748
69749// Fields allows partial responses to be retrieved. See
69750// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69751// for more information.
69752func (c *HealthChecksAggregatedListCall) Fields(s ...googleapi.Field) *HealthChecksAggregatedListCall {
69753	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69754	return c
69755}
69756
69757// IfNoneMatch sets the optional parameter which makes the operation
69758// fail if the object's ETag matches the given value. This is useful for
69759// getting updates only after the object has changed since the last
69760// request. Use googleapi.IsNotModified to check whether the response
69761// error from Do is the result of In-None-Match.
69762func (c *HealthChecksAggregatedListCall) IfNoneMatch(entityTag string) *HealthChecksAggregatedListCall {
69763	c.ifNoneMatch_ = entityTag
69764	return c
69765}
69766
69767// Context sets the context to be used in this call's Do method. Any
69768// pending HTTP request will be aborted if the provided context is
69769// canceled.
69770func (c *HealthChecksAggregatedListCall) Context(ctx context.Context) *HealthChecksAggregatedListCall {
69771	c.ctx_ = ctx
69772	return c
69773}
69774
69775// Header returns an http.Header that can be modified by the caller to
69776// add HTTP headers to the request.
69777func (c *HealthChecksAggregatedListCall) Header() http.Header {
69778	if c.header_ == nil {
69779		c.header_ = make(http.Header)
69780	}
69781	return c.header_
69782}
69783
69784func (c *HealthChecksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
69785	reqHeaders := make(http.Header)
69786	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
69787	for k, v := range c.header_ {
69788		reqHeaders[k] = v
69789	}
69790	reqHeaders.Set("User-Agent", c.s.userAgent())
69791	if c.ifNoneMatch_ != "" {
69792		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
69793	}
69794	var body io.Reader = nil
69795	c.urlParams_.Set("alt", alt)
69796	c.urlParams_.Set("prettyPrint", "false")
69797	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/healthChecks")
69798	urls += "?" + c.urlParams_.Encode()
69799	req, err := http.NewRequest("GET", urls, body)
69800	if err != nil {
69801		return nil, err
69802	}
69803	req.Header = reqHeaders
69804	googleapi.Expand(req.URL, map[string]string{
69805		"project": c.project,
69806	})
69807	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69808}
69809
69810// Do executes the "compute.healthChecks.aggregatedList" call.
69811// Exactly one of *HealthChecksAggregatedList or error will be non-nil.
69812// Any non-2xx status code is an error. Response headers are in either
69813// *HealthChecksAggregatedList.ServerResponse.Header or (if a response
69814// was returned at all) in error.(*googleapi.Error).Header. Use
69815// googleapi.IsNotModified to check whether the returned error was
69816// because http.StatusNotModified was returned.
69817func (c *HealthChecksAggregatedListCall) Do(opts ...googleapi.CallOption) (*HealthChecksAggregatedList, error) {
69818	gensupport.SetOptions(c.urlParams_, opts...)
69819	res, err := c.doRequest("json")
69820	if res != nil && res.StatusCode == http.StatusNotModified {
69821		if res.Body != nil {
69822			res.Body.Close()
69823		}
69824		return nil, &googleapi.Error{
69825			Code:   res.StatusCode,
69826			Header: res.Header,
69827		}
69828	}
69829	if err != nil {
69830		return nil, err
69831	}
69832	defer googleapi.CloseBody(res)
69833	if err := googleapi.CheckResponse(res); err != nil {
69834		return nil, err
69835	}
69836	ret := &HealthChecksAggregatedList{
69837		ServerResponse: googleapi.ServerResponse{
69838			Header:         res.Header,
69839			HTTPStatusCode: res.StatusCode,
69840		},
69841	}
69842	target := &ret
69843	if err := gensupport.DecodeResponse(target, res); err != nil {
69844		return nil, err
69845	}
69846	return ret, nil
69847	// {
69848	//   "description": "Retrieves the list of all HealthCheck resources, regional and global, available to the specified project.",
69849	//   "httpMethod": "GET",
69850	//   "id": "compute.healthChecks.aggregatedList",
69851	//   "parameterOrder": [
69852	//     "project"
69853	//   ],
69854	//   "parameters": {
69855	//     "filter": {
69856	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
69857	//       "location": "query",
69858	//       "type": "string"
69859	//     },
69860	//     "includeAllScopes": {
69861	//       "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.",
69862	//       "location": "query",
69863	//       "type": "boolean"
69864	//     },
69865	//     "maxResults": {
69866	//       "default": "500",
69867	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
69868	//       "format": "uint32",
69869	//       "location": "query",
69870	//       "minimum": "0",
69871	//       "type": "integer"
69872	//     },
69873	//     "orderBy": {
69874	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
69875	//       "location": "query",
69876	//       "type": "string"
69877	//     },
69878	//     "pageToken": {
69879	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
69880	//       "location": "query",
69881	//       "type": "string"
69882	//     },
69883	//     "project": {
69884	//       "description": "Name of the project scoping this request.",
69885	//       "location": "path",
69886	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69887	//       "required": true,
69888	//       "type": "string"
69889	//     }
69890	//   },
69891	//   "path": "{project}/aggregated/healthChecks",
69892	//   "response": {
69893	//     "$ref": "HealthChecksAggregatedList"
69894	//   },
69895	//   "scopes": [
69896	//     "https://www.googleapis.com/auth/cloud-platform",
69897	//     "https://www.googleapis.com/auth/compute",
69898	//     "https://www.googleapis.com/auth/compute.readonly"
69899	//   ]
69900	// }
69901
69902}
69903
69904// Pages invokes f for each page of results.
69905// A non-nil error returned from f will halt the iteration.
69906// The provided context supersedes any context provided to the Context method.
69907func (c *HealthChecksAggregatedListCall) Pages(ctx context.Context, f func(*HealthChecksAggregatedList) error) error {
69908	c.ctx_ = ctx
69909	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
69910	for {
69911		x, err := c.Do()
69912		if err != nil {
69913			return err
69914		}
69915		if err := f(x); err != nil {
69916			return err
69917		}
69918		if x.NextPageToken == "" {
69919			return nil
69920		}
69921		c.PageToken(x.NextPageToken)
69922	}
69923}
69924
69925// method id "compute.healthChecks.delete":
69926
69927type HealthChecksDeleteCall struct {
69928	s           *Service
69929	project     string
69930	healthCheck string
69931	urlParams_  gensupport.URLParams
69932	ctx_        context.Context
69933	header_     http.Header
69934}
69935
69936// Delete: Deletes the specified HealthCheck resource.
69937func (r *HealthChecksService) Delete(project string, healthCheck string) *HealthChecksDeleteCall {
69938	c := &HealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69939	c.project = project
69940	c.healthCheck = healthCheck
69941	return c
69942}
69943
69944// RequestId sets the optional parameter "requestId": An optional
69945// request ID to identify requests. Specify a unique request ID so that
69946// if you must retry your request, the server will know to ignore the
69947// request if it has already been completed.
69948//
69949// For example, consider a situation where you make an initial request
69950// and the request times out. If you make the request again with the
69951// same request ID, the server can check if original operation with the
69952// same request ID was received, and if so, will ignore the second
69953// request. This prevents clients from accidentally creating duplicate
69954// commitments.
69955//
69956// The request ID must be a valid UUID with the exception that zero UUID
69957// is not supported (00000000-0000-0000-0000-000000000000).
69958func (c *HealthChecksDeleteCall) RequestId(requestId string) *HealthChecksDeleteCall {
69959	c.urlParams_.Set("requestId", requestId)
69960	return c
69961}
69962
69963// Fields allows partial responses to be retrieved. See
69964// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69965// for more information.
69966func (c *HealthChecksDeleteCall) Fields(s ...googleapi.Field) *HealthChecksDeleteCall {
69967	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69968	return c
69969}
69970
69971// Context sets the context to be used in this call's Do method. Any
69972// pending HTTP request will be aborted if the provided context is
69973// canceled.
69974func (c *HealthChecksDeleteCall) Context(ctx context.Context) *HealthChecksDeleteCall {
69975	c.ctx_ = ctx
69976	return c
69977}
69978
69979// Header returns an http.Header that can be modified by the caller to
69980// add HTTP headers to the request.
69981func (c *HealthChecksDeleteCall) Header() http.Header {
69982	if c.header_ == nil {
69983		c.header_ = make(http.Header)
69984	}
69985	return c.header_
69986}
69987
69988func (c *HealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
69989	reqHeaders := make(http.Header)
69990	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
69991	for k, v := range c.header_ {
69992		reqHeaders[k] = v
69993	}
69994	reqHeaders.Set("User-Agent", c.s.userAgent())
69995	var body io.Reader = nil
69996	c.urlParams_.Set("alt", alt)
69997	c.urlParams_.Set("prettyPrint", "false")
69998	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
69999	urls += "?" + c.urlParams_.Encode()
70000	req, err := http.NewRequest("DELETE", urls, body)
70001	if err != nil {
70002		return nil, err
70003	}
70004	req.Header = reqHeaders
70005	googleapi.Expand(req.URL, map[string]string{
70006		"project":     c.project,
70007		"healthCheck": c.healthCheck,
70008	})
70009	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70010}
70011
70012// Do executes the "compute.healthChecks.delete" call.
70013// Exactly one of *Operation or error will be non-nil. Any non-2xx
70014// status code is an error. Response headers are in either
70015// *Operation.ServerResponse.Header or (if a response was returned at
70016// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70017// to check whether the returned error was because
70018// http.StatusNotModified was returned.
70019func (c *HealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70020	gensupport.SetOptions(c.urlParams_, opts...)
70021	res, err := c.doRequest("json")
70022	if res != nil && res.StatusCode == http.StatusNotModified {
70023		if res.Body != nil {
70024			res.Body.Close()
70025		}
70026		return nil, &googleapi.Error{
70027			Code:   res.StatusCode,
70028			Header: res.Header,
70029		}
70030	}
70031	if err != nil {
70032		return nil, err
70033	}
70034	defer googleapi.CloseBody(res)
70035	if err := googleapi.CheckResponse(res); err != nil {
70036		return nil, err
70037	}
70038	ret := &Operation{
70039		ServerResponse: googleapi.ServerResponse{
70040			Header:         res.Header,
70041			HTTPStatusCode: res.StatusCode,
70042		},
70043	}
70044	target := &ret
70045	if err := gensupport.DecodeResponse(target, res); err != nil {
70046		return nil, err
70047	}
70048	return ret, nil
70049	// {
70050	//   "description": "Deletes the specified HealthCheck resource.",
70051	//   "httpMethod": "DELETE",
70052	//   "id": "compute.healthChecks.delete",
70053	//   "parameterOrder": [
70054	//     "project",
70055	//     "healthCheck"
70056	//   ],
70057	//   "parameters": {
70058	//     "healthCheck": {
70059	//       "description": "Name of the HealthCheck resource to delete.",
70060	//       "location": "path",
70061	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70062	//       "required": true,
70063	//       "type": "string"
70064	//     },
70065	//     "project": {
70066	//       "description": "Project ID for this request.",
70067	//       "location": "path",
70068	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70069	//       "required": true,
70070	//       "type": "string"
70071	//     },
70072	//     "requestId": {
70073	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70074	//       "location": "query",
70075	//       "type": "string"
70076	//     }
70077	//   },
70078	//   "path": "{project}/global/healthChecks/{healthCheck}",
70079	//   "response": {
70080	//     "$ref": "Operation"
70081	//   },
70082	//   "scopes": [
70083	//     "https://www.googleapis.com/auth/cloud-platform",
70084	//     "https://www.googleapis.com/auth/compute"
70085	//   ]
70086	// }
70087
70088}
70089
70090// method id "compute.healthChecks.get":
70091
70092type HealthChecksGetCall struct {
70093	s            *Service
70094	project      string
70095	healthCheck  string
70096	urlParams_   gensupport.URLParams
70097	ifNoneMatch_ string
70098	ctx_         context.Context
70099	header_      http.Header
70100}
70101
70102// Get: Returns the specified HealthCheck resource. Gets a list of
70103// available health checks by making a list() request.
70104func (r *HealthChecksService) Get(project string, healthCheck string) *HealthChecksGetCall {
70105	c := &HealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70106	c.project = project
70107	c.healthCheck = healthCheck
70108	return c
70109}
70110
70111// Fields allows partial responses to be retrieved. See
70112// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70113// for more information.
70114func (c *HealthChecksGetCall) Fields(s ...googleapi.Field) *HealthChecksGetCall {
70115	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70116	return c
70117}
70118
70119// IfNoneMatch sets the optional parameter which makes the operation
70120// fail if the object's ETag matches the given value. This is useful for
70121// getting updates only after the object has changed since the last
70122// request. Use googleapi.IsNotModified to check whether the response
70123// error from Do is the result of In-None-Match.
70124func (c *HealthChecksGetCall) IfNoneMatch(entityTag string) *HealthChecksGetCall {
70125	c.ifNoneMatch_ = entityTag
70126	return c
70127}
70128
70129// Context sets the context to be used in this call's Do method. Any
70130// pending HTTP request will be aborted if the provided context is
70131// canceled.
70132func (c *HealthChecksGetCall) Context(ctx context.Context) *HealthChecksGetCall {
70133	c.ctx_ = ctx
70134	return c
70135}
70136
70137// Header returns an http.Header that can be modified by the caller to
70138// add HTTP headers to the request.
70139func (c *HealthChecksGetCall) Header() http.Header {
70140	if c.header_ == nil {
70141		c.header_ = make(http.Header)
70142	}
70143	return c.header_
70144}
70145
70146func (c *HealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
70147	reqHeaders := make(http.Header)
70148	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
70149	for k, v := range c.header_ {
70150		reqHeaders[k] = v
70151	}
70152	reqHeaders.Set("User-Agent", c.s.userAgent())
70153	if c.ifNoneMatch_ != "" {
70154		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
70155	}
70156	var body io.Reader = nil
70157	c.urlParams_.Set("alt", alt)
70158	c.urlParams_.Set("prettyPrint", "false")
70159	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
70160	urls += "?" + c.urlParams_.Encode()
70161	req, err := http.NewRequest("GET", urls, body)
70162	if err != nil {
70163		return nil, err
70164	}
70165	req.Header = reqHeaders
70166	googleapi.Expand(req.URL, map[string]string{
70167		"project":     c.project,
70168		"healthCheck": c.healthCheck,
70169	})
70170	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70171}
70172
70173// Do executes the "compute.healthChecks.get" call.
70174// Exactly one of *HealthCheck or error will be non-nil. Any non-2xx
70175// status code is an error. Response headers are in either
70176// *HealthCheck.ServerResponse.Header or (if a response was returned at
70177// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70178// to check whether the returned error was because
70179// http.StatusNotModified was returned.
70180func (c *HealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, error) {
70181	gensupport.SetOptions(c.urlParams_, opts...)
70182	res, err := c.doRequest("json")
70183	if res != nil && res.StatusCode == http.StatusNotModified {
70184		if res.Body != nil {
70185			res.Body.Close()
70186		}
70187		return nil, &googleapi.Error{
70188			Code:   res.StatusCode,
70189			Header: res.Header,
70190		}
70191	}
70192	if err != nil {
70193		return nil, err
70194	}
70195	defer googleapi.CloseBody(res)
70196	if err := googleapi.CheckResponse(res); err != nil {
70197		return nil, err
70198	}
70199	ret := &HealthCheck{
70200		ServerResponse: googleapi.ServerResponse{
70201			Header:         res.Header,
70202			HTTPStatusCode: res.StatusCode,
70203		},
70204	}
70205	target := &ret
70206	if err := gensupport.DecodeResponse(target, res); err != nil {
70207		return nil, err
70208	}
70209	return ret, nil
70210	// {
70211	//   "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.",
70212	//   "httpMethod": "GET",
70213	//   "id": "compute.healthChecks.get",
70214	//   "parameterOrder": [
70215	//     "project",
70216	//     "healthCheck"
70217	//   ],
70218	//   "parameters": {
70219	//     "healthCheck": {
70220	//       "description": "Name of the HealthCheck resource to return.",
70221	//       "location": "path",
70222	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70223	//       "required": true,
70224	//       "type": "string"
70225	//     },
70226	//     "project": {
70227	//       "description": "Project ID for this request.",
70228	//       "location": "path",
70229	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70230	//       "required": true,
70231	//       "type": "string"
70232	//     }
70233	//   },
70234	//   "path": "{project}/global/healthChecks/{healthCheck}",
70235	//   "response": {
70236	//     "$ref": "HealthCheck"
70237	//   },
70238	//   "scopes": [
70239	//     "https://www.googleapis.com/auth/cloud-platform",
70240	//     "https://www.googleapis.com/auth/compute",
70241	//     "https://www.googleapis.com/auth/compute.readonly"
70242	//   ]
70243	// }
70244
70245}
70246
70247// method id "compute.healthChecks.insert":
70248
70249type HealthChecksInsertCall struct {
70250	s           *Service
70251	project     string
70252	healthcheck *HealthCheck
70253	urlParams_  gensupport.URLParams
70254	ctx_        context.Context
70255	header_     http.Header
70256}
70257
70258// Insert: Creates a HealthCheck resource in the specified project using
70259// the data included in the request.
70260func (r *HealthChecksService) Insert(project string, healthcheck *HealthCheck) *HealthChecksInsertCall {
70261	c := &HealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70262	c.project = project
70263	c.healthcheck = healthcheck
70264	return c
70265}
70266
70267// RequestId sets the optional parameter "requestId": An optional
70268// request ID to identify requests. Specify a unique request ID so that
70269// if you must retry your request, the server will know to ignore the
70270// request if it has already been completed.
70271//
70272// For example, consider a situation where you make an initial request
70273// and the request times out. If you make the request again with the
70274// same request ID, the server can check if original operation with the
70275// same request ID was received, and if so, will ignore the second
70276// request. This prevents clients from accidentally creating duplicate
70277// commitments.
70278//
70279// The request ID must be a valid UUID with the exception that zero UUID
70280// is not supported (00000000-0000-0000-0000-000000000000).
70281func (c *HealthChecksInsertCall) RequestId(requestId string) *HealthChecksInsertCall {
70282	c.urlParams_.Set("requestId", requestId)
70283	return c
70284}
70285
70286// Fields allows partial responses to be retrieved. See
70287// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70288// for more information.
70289func (c *HealthChecksInsertCall) Fields(s ...googleapi.Field) *HealthChecksInsertCall {
70290	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70291	return c
70292}
70293
70294// Context sets the context to be used in this call's Do method. Any
70295// pending HTTP request will be aborted if the provided context is
70296// canceled.
70297func (c *HealthChecksInsertCall) Context(ctx context.Context) *HealthChecksInsertCall {
70298	c.ctx_ = ctx
70299	return c
70300}
70301
70302// Header returns an http.Header that can be modified by the caller to
70303// add HTTP headers to the request.
70304func (c *HealthChecksInsertCall) Header() http.Header {
70305	if c.header_ == nil {
70306		c.header_ = make(http.Header)
70307	}
70308	return c.header_
70309}
70310
70311func (c *HealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
70312	reqHeaders := make(http.Header)
70313	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
70314	for k, v := range c.header_ {
70315		reqHeaders[k] = v
70316	}
70317	reqHeaders.Set("User-Agent", c.s.userAgent())
70318	var body io.Reader = nil
70319	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
70320	if err != nil {
70321		return nil, err
70322	}
70323	reqHeaders.Set("Content-Type", "application/json")
70324	c.urlParams_.Set("alt", alt)
70325	c.urlParams_.Set("prettyPrint", "false")
70326	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks")
70327	urls += "?" + c.urlParams_.Encode()
70328	req, err := http.NewRequest("POST", urls, body)
70329	if err != nil {
70330		return nil, err
70331	}
70332	req.Header = reqHeaders
70333	googleapi.Expand(req.URL, map[string]string{
70334		"project": c.project,
70335	})
70336	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70337}
70338
70339// Do executes the "compute.healthChecks.insert" call.
70340// Exactly one of *Operation or error will be non-nil. Any non-2xx
70341// status code is an error. Response headers are in either
70342// *Operation.ServerResponse.Header or (if a response was returned at
70343// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70344// to check whether the returned error was because
70345// http.StatusNotModified was returned.
70346func (c *HealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70347	gensupport.SetOptions(c.urlParams_, opts...)
70348	res, err := c.doRequest("json")
70349	if res != nil && res.StatusCode == http.StatusNotModified {
70350		if res.Body != nil {
70351			res.Body.Close()
70352		}
70353		return nil, &googleapi.Error{
70354			Code:   res.StatusCode,
70355			Header: res.Header,
70356		}
70357	}
70358	if err != nil {
70359		return nil, err
70360	}
70361	defer googleapi.CloseBody(res)
70362	if err := googleapi.CheckResponse(res); err != nil {
70363		return nil, err
70364	}
70365	ret := &Operation{
70366		ServerResponse: googleapi.ServerResponse{
70367			Header:         res.Header,
70368			HTTPStatusCode: res.StatusCode,
70369		},
70370	}
70371	target := &ret
70372	if err := gensupport.DecodeResponse(target, res); err != nil {
70373		return nil, err
70374	}
70375	return ret, nil
70376	// {
70377	//   "description": "Creates a HealthCheck resource in the specified project using the data included in the request.",
70378	//   "httpMethod": "POST",
70379	//   "id": "compute.healthChecks.insert",
70380	//   "parameterOrder": [
70381	//     "project"
70382	//   ],
70383	//   "parameters": {
70384	//     "project": {
70385	//       "description": "Project ID for this request.",
70386	//       "location": "path",
70387	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70388	//       "required": true,
70389	//       "type": "string"
70390	//     },
70391	//     "requestId": {
70392	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70393	//       "location": "query",
70394	//       "type": "string"
70395	//     }
70396	//   },
70397	//   "path": "{project}/global/healthChecks",
70398	//   "request": {
70399	//     "$ref": "HealthCheck"
70400	//   },
70401	//   "response": {
70402	//     "$ref": "Operation"
70403	//   },
70404	//   "scopes": [
70405	//     "https://www.googleapis.com/auth/cloud-platform",
70406	//     "https://www.googleapis.com/auth/compute"
70407	//   ]
70408	// }
70409
70410}
70411
70412// method id "compute.healthChecks.list":
70413
70414type HealthChecksListCall struct {
70415	s            *Service
70416	project      string
70417	urlParams_   gensupport.URLParams
70418	ifNoneMatch_ string
70419	ctx_         context.Context
70420	header_      http.Header
70421}
70422
70423// List: Retrieves the list of HealthCheck resources available to the
70424// specified project.
70425func (r *HealthChecksService) List(project string) *HealthChecksListCall {
70426	c := &HealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70427	c.project = project
70428	return c
70429}
70430
70431// Filter sets the optional parameter "filter": A filter expression that
70432// filters resources listed in the response. The expression must specify
70433// the field name, a comparison operator, and the value that you want to
70434// use for filtering. The value must be a string, a number, or a
70435// boolean. The comparison operator must be either =, !=, >, or <.
70436//
70437// For example, if you are filtering Compute Engine instances, you can
70438// exclude instances named example-instance by specifying name !=
70439// example-instance.
70440//
70441// You can also filter nested fields. For example, you could specify
70442// scheduling.automaticRestart = false to include instances only if they
70443// are not scheduled for automatic restarts. You can use filtering on
70444// nested fields to filter based on resource labels.
70445//
70446// To filter on multiple expressions, provide each separate expression
70447// within parentheses. For example, (scheduling.automaticRestart = true)
70448// (cpuPlatform = "Intel Skylake"). By default, each expression is an
70449// AND expression. However, you can include AND and OR expressions
70450// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
70451// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
70452// true).
70453func (c *HealthChecksListCall) Filter(filter string) *HealthChecksListCall {
70454	c.urlParams_.Set("filter", filter)
70455	return c
70456}
70457
70458// MaxResults sets the optional parameter "maxResults": The maximum
70459// number of results per page that should be returned. If the number of
70460// available results is larger than maxResults, Compute Engine returns a
70461// nextPageToken that can be used to get the next page of results in
70462// subsequent list requests. Acceptable values are 0 to 500, inclusive.
70463// (Default: 500)
70464func (c *HealthChecksListCall) MaxResults(maxResults int64) *HealthChecksListCall {
70465	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
70466	return c
70467}
70468
70469// OrderBy sets the optional parameter "orderBy": Sorts list results by
70470// a certain order. By default, results are returned in alphanumerical
70471// order based on the resource name.
70472//
70473// You can also sort results in descending order based on the creation
70474// timestamp using orderBy="creationTimestamp desc". This sorts results
70475// based on the creationTimestamp field in reverse chronological order
70476// (newest result first). Use this to sort resources like operations so
70477// that the newest operation is returned first.
70478//
70479// Currently, only sorting by name or creationTimestamp desc is
70480// supported.
70481func (c *HealthChecksListCall) OrderBy(orderBy string) *HealthChecksListCall {
70482	c.urlParams_.Set("orderBy", orderBy)
70483	return c
70484}
70485
70486// PageToken sets the optional parameter "pageToken": Specifies a page
70487// token to use. Set pageToken to the nextPageToken returned by a
70488// previous list request to get the next page of results.
70489func (c *HealthChecksListCall) PageToken(pageToken string) *HealthChecksListCall {
70490	c.urlParams_.Set("pageToken", pageToken)
70491	return c
70492}
70493
70494// Fields allows partial responses to be retrieved. See
70495// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70496// for more information.
70497func (c *HealthChecksListCall) Fields(s ...googleapi.Field) *HealthChecksListCall {
70498	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70499	return c
70500}
70501
70502// IfNoneMatch sets the optional parameter which makes the operation
70503// fail if the object's ETag matches the given value. This is useful for
70504// getting updates only after the object has changed since the last
70505// request. Use googleapi.IsNotModified to check whether the response
70506// error from Do is the result of In-None-Match.
70507func (c *HealthChecksListCall) IfNoneMatch(entityTag string) *HealthChecksListCall {
70508	c.ifNoneMatch_ = entityTag
70509	return c
70510}
70511
70512// Context sets the context to be used in this call's Do method. Any
70513// pending HTTP request will be aborted if the provided context is
70514// canceled.
70515func (c *HealthChecksListCall) Context(ctx context.Context) *HealthChecksListCall {
70516	c.ctx_ = ctx
70517	return c
70518}
70519
70520// Header returns an http.Header that can be modified by the caller to
70521// add HTTP headers to the request.
70522func (c *HealthChecksListCall) Header() http.Header {
70523	if c.header_ == nil {
70524		c.header_ = make(http.Header)
70525	}
70526	return c.header_
70527}
70528
70529func (c *HealthChecksListCall) doRequest(alt string) (*http.Response, error) {
70530	reqHeaders := make(http.Header)
70531	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
70532	for k, v := range c.header_ {
70533		reqHeaders[k] = v
70534	}
70535	reqHeaders.Set("User-Agent", c.s.userAgent())
70536	if c.ifNoneMatch_ != "" {
70537		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
70538	}
70539	var body io.Reader = nil
70540	c.urlParams_.Set("alt", alt)
70541	c.urlParams_.Set("prettyPrint", "false")
70542	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks")
70543	urls += "?" + c.urlParams_.Encode()
70544	req, err := http.NewRequest("GET", urls, body)
70545	if err != nil {
70546		return nil, err
70547	}
70548	req.Header = reqHeaders
70549	googleapi.Expand(req.URL, map[string]string{
70550		"project": c.project,
70551	})
70552	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70553}
70554
70555// Do executes the "compute.healthChecks.list" call.
70556// Exactly one of *HealthCheckList or error will be non-nil. Any non-2xx
70557// status code is an error. Response headers are in either
70558// *HealthCheckList.ServerResponse.Header or (if a response was returned
70559// at all) in error.(*googleapi.Error).Header. Use
70560// googleapi.IsNotModified to check whether the returned error was
70561// because http.StatusNotModified was returned.
70562func (c *HealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) {
70563	gensupport.SetOptions(c.urlParams_, opts...)
70564	res, err := c.doRequest("json")
70565	if res != nil && res.StatusCode == http.StatusNotModified {
70566		if res.Body != nil {
70567			res.Body.Close()
70568		}
70569		return nil, &googleapi.Error{
70570			Code:   res.StatusCode,
70571			Header: res.Header,
70572		}
70573	}
70574	if err != nil {
70575		return nil, err
70576	}
70577	defer googleapi.CloseBody(res)
70578	if err := googleapi.CheckResponse(res); err != nil {
70579		return nil, err
70580	}
70581	ret := &HealthCheckList{
70582		ServerResponse: googleapi.ServerResponse{
70583			Header:         res.Header,
70584			HTTPStatusCode: res.StatusCode,
70585		},
70586	}
70587	target := &ret
70588	if err := gensupport.DecodeResponse(target, res); err != nil {
70589		return nil, err
70590	}
70591	return ret, nil
70592	// {
70593	//   "description": "Retrieves the list of HealthCheck resources available to the specified project.",
70594	//   "httpMethod": "GET",
70595	//   "id": "compute.healthChecks.list",
70596	//   "parameterOrder": [
70597	//     "project"
70598	//   ],
70599	//   "parameters": {
70600	//     "filter": {
70601	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
70602	//       "location": "query",
70603	//       "type": "string"
70604	//     },
70605	//     "maxResults": {
70606	//       "default": "500",
70607	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
70608	//       "format": "uint32",
70609	//       "location": "query",
70610	//       "minimum": "0",
70611	//       "type": "integer"
70612	//     },
70613	//     "orderBy": {
70614	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
70615	//       "location": "query",
70616	//       "type": "string"
70617	//     },
70618	//     "pageToken": {
70619	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
70620	//       "location": "query",
70621	//       "type": "string"
70622	//     },
70623	//     "project": {
70624	//       "description": "Project ID for this request.",
70625	//       "location": "path",
70626	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70627	//       "required": true,
70628	//       "type": "string"
70629	//     }
70630	//   },
70631	//   "path": "{project}/global/healthChecks",
70632	//   "response": {
70633	//     "$ref": "HealthCheckList"
70634	//   },
70635	//   "scopes": [
70636	//     "https://www.googleapis.com/auth/cloud-platform",
70637	//     "https://www.googleapis.com/auth/compute",
70638	//     "https://www.googleapis.com/auth/compute.readonly"
70639	//   ]
70640	// }
70641
70642}
70643
70644// Pages invokes f for each page of results.
70645// A non-nil error returned from f will halt the iteration.
70646// The provided context supersedes any context provided to the Context method.
70647func (c *HealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error {
70648	c.ctx_ = ctx
70649	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
70650	for {
70651		x, err := c.Do()
70652		if err != nil {
70653			return err
70654		}
70655		if err := f(x); err != nil {
70656			return err
70657		}
70658		if x.NextPageToken == "" {
70659			return nil
70660		}
70661		c.PageToken(x.NextPageToken)
70662	}
70663}
70664
70665// method id "compute.healthChecks.patch":
70666
70667type HealthChecksPatchCall struct {
70668	s           *Service
70669	project     string
70670	healthCheck string
70671	healthcheck *HealthCheck
70672	urlParams_  gensupport.URLParams
70673	ctx_        context.Context
70674	header_     http.Header
70675}
70676
70677// Patch: Updates a HealthCheck resource in the specified project using
70678// the data included in the request. This method supports PATCH
70679// semantics and uses the JSON merge patch format and processing rules.
70680func (r *HealthChecksService) Patch(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksPatchCall {
70681	c := &HealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70682	c.project = project
70683	c.healthCheck = healthCheck
70684	c.healthcheck = healthcheck
70685	return c
70686}
70687
70688// RequestId sets the optional parameter "requestId": An optional
70689// request ID to identify requests. Specify a unique request ID so that
70690// if you must retry your request, the server will know to ignore the
70691// request if it has already been completed.
70692//
70693// For example, consider a situation where you make an initial request
70694// and the request times out. If you make the request again with the
70695// same request ID, the server can check if original operation with the
70696// same request ID was received, and if so, will ignore the second
70697// request. This prevents clients from accidentally creating duplicate
70698// commitments.
70699//
70700// The request ID must be a valid UUID with the exception that zero UUID
70701// is not supported (00000000-0000-0000-0000-000000000000).
70702func (c *HealthChecksPatchCall) RequestId(requestId string) *HealthChecksPatchCall {
70703	c.urlParams_.Set("requestId", requestId)
70704	return c
70705}
70706
70707// Fields allows partial responses to be retrieved. See
70708// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70709// for more information.
70710func (c *HealthChecksPatchCall) Fields(s ...googleapi.Field) *HealthChecksPatchCall {
70711	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70712	return c
70713}
70714
70715// Context sets the context to be used in this call's Do method. Any
70716// pending HTTP request will be aborted if the provided context is
70717// canceled.
70718func (c *HealthChecksPatchCall) Context(ctx context.Context) *HealthChecksPatchCall {
70719	c.ctx_ = ctx
70720	return c
70721}
70722
70723// Header returns an http.Header that can be modified by the caller to
70724// add HTTP headers to the request.
70725func (c *HealthChecksPatchCall) Header() http.Header {
70726	if c.header_ == nil {
70727		c.header_ = make(http.Header)
70728	}
70729	return c.header_
70730}
70731
70732func (c *HealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
70733	reqHeaders := make(http.Header)
70734	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
70735	for k, v := range c.header_ {
70736		reqHeaders[k] = v
70737	}
70738	reqHeaders.Set("User-Agent", c.s.userAgent())
70739	var body io.Reader = nil
70740	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
70741	if err != nil {
70742		return nil, err
70743	}
70744	reqHeaders.Set("Content-Type", "application/json")
70745	c.urlParams_.Set("alt", alt)
70746	c.urlParams_.Set("prettyPrint", "false")
70747	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
70748	urls += "?" + c.urlParams_.Encode()
70749	req, err := http.NewRequest("PATCH", urls, body)
70750	if err != nil {
70751		return nil, err
70752	}
70753	req.Header = reqHeaders
70754	googleapi.Expand(req.URL, map[string]string{
70755		"project":     c.project,
70756		"healthCheck": c.healthCheck,
70757	})
70758	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70759}
70760
70761// Do executes the "compute.healthChecks.patch" call.
70762// Exactly one of *Operation or error will be non-nil. Any non-2xx
70763// status code is an error. Response headers are in either
70764// *Operation.ServerResponse.Header or (if a response was returned at
70765// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70766// to check whether the returned error was because
70767// http.StatusNotModified was returned.
70768func (c *HealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70769	gensupport.SetOptions(c.urlParams_, opts...)
70770	res, err := c.doRequest("json")
70771	if res != nil && res.StatusCode == http.StatusNotModified {
70772		if res.Body != nil {
70773			res.Body.Close()
70774		}
70775		return nil, &googleapi.Error{
70776			Code:   res.StatusCode,
70777			Header: res.Header,
70778		}
70779	}
70780	if err != nil {
70781		return nil, err
70782	}
70783	defer googleapi.CloseBody(res)
70784	if err := googleapi.CheckResponse(res); err != nil {
70785		return nil, err
70786	}
70787	ret := &Operation{
70788		ServerResponse: googleapi.ServerResponse{
70789			Header:         res.Header,
70790			HTTPStatusCode: res.StatusCode,
70791		},
70792	}
70793	target := &ret
70794	if err := gensupport.DecodeResponse(target, res); err != nil {
70795		return nil, err
70796	}
70797	return ret, nil
70798	// {
70799	//   "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.",
70800	//   "httpMethod": "PATCH",
70801	//   "id": "compute.healthChecks.patch",
70802	//   "parameterOrder": [
70803	//     "project",
70804	//     "healthCheck"
70805	//   ],
70806	//   "parameters": {
70807	//     "healthCheck": {
70808	//       "description": "Name of the HealthCheck resource to patch.",
70809	//       "location": "path",
70810	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70811	//       "required": true,
70812	//       "type": "string"
70813	//     },
70814	//     "project": {
70815	//       "description": "Project ID for this request.",
70816	//       "location": "path",
70817	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70818	//       "required": true,
70819	//       "type": "string"
70820	//     },
70821	//     "requestId": {
70822	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70823	//       "location": "query",
70824	//       "type": "string"
70825	//     }
70826	//   },
70827	//   "path": "{project}/global/healthChecks/{healthCheck}",
70828	//   "request": {
70829	//     "$ref": "HealthCheck"
70830	//   },
70831	//   "response": {
70832	//     "$ref": "Operation"
70833	//   },
70834	//   "scopes": [
70835	//     "https://www.googleapis.com/auth/cloud-platform",
70836	//     "https://www.googleapis.com/auth/compute"
70837	//   ]
70838	// }
70839
70840}
70841
70842// method id "compute.healthChecks.testIamPermissions":
70843
70844type HealthChecksTestIamPermissionsCall struct {
70845	s                      *Service
70846	project                string
70847	resource               string
70848	testpermissionsrequest *TestPermissionsRequest
70849	urlParams_             gensupport.URLParams
70850	ctx_                   context.Context
70851	header_                http.Header
70852}
70853
70854// TestIamPermissions: Returns permissions that a caller has on the
70855// specified resource.
70856func (r *HealthChecksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *HealthChecksTestIamPermissionsCall {
70857	c := &HealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70858	c.project = project
70859	c.resource = resource
70860	c.testpermissionsrequest = testpermissionsrequest
70861	return c
70862}
70863
70864// Fields allows partial responses to be retrieved. See
70865// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70866// for more information.
70867func (c *HealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *HealthChecksTestIamPermissionsCall {
70868	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70869	return c
70870}
70871
70872// Context sets the context to be used in this call's Do method. Any
70873// pending HTTP request will be aborted if the provided context is
70874// canceled.
70875func (c *HealthChecksTestIamPermissionsCall) Context(ctx context.Context) *HealthChecksTestIamPermissionsCall {
70876	c.ctx_ = ctx
70877	return c
70878}
70879
70880// Header returns an http.Header that can be modified by the caller to
70881// add HTTP headers to the request.
70882func (c *HealthChecksTestIamPermissionsCall) Header() http.Header {
70883	if c.header_ == nil {
70884		c.header_ = make(http.Header)
70885	}
70886	return c.header_
70887}
70888
70889func (c *HealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
70890	reqHeaders := make(http.Header)
70891	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
70892	for k, v := range c.header_ {
70893		reqHeaders[k] = v
70894	}
70895	reqHeaders.Set("User-Agent", c.s.userAgent())
70896	var body io.Reader = nil
70897	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
70898	if err != nil {
70899		return nil, err
70900	}
70901	reqHeaders.Set("Content-Type", "application/json")
70902	c.urlParams_.Set("alt", alt)
70903	c.urlParams_.Set("prettyPrint", "false")
70904	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{resource}/testIamPermissions")
70905	urls += "?" + c.urlParams_.Encode()
70906	req, err := http.NewRequest("POST", urls, body)
70907	if err != nil {
70908		return nil, err
70909	}
70910	req.Header = reqHeaders
70911	googleapi.Expand(req.URL, map[string]string{
70912		"project":  c.project,
70913		"resource": c.resource,
70914	})
70915	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70916}
70917
70918// Do executes the "compute.healthChecks.testIamPermissions" call.
70919// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
70920// non-2xx status code is an error. Response headers are in either
70921// *TestPermissionsResponse.ServerResponse.Header or (if a response was
70922// returned at all) in error.(*googleapi.Error).Header. Use
70923// googleapi.IsNotModified to check whether the returned error was
70924// because http.StatusNotModified was returned.
70925func (c *HealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
70926	gensupport.SetOptions(c.urlParams_, opts...)
70927	res, err := c.doRequest("json")
70928	if res != nil && res.StatusCode == http.StatusNotModified {
70929		if res.Body != nil {
70930			res.Body.Close()
70931		}
70932		return nil, &googleapi.Error{
70933			Code:   res.StatusCode,
70934			Header: res.Header,
70935		}
70936	}
70937	if err != nil {
70938		return nil, err
70939	}
70940	defer googleapi.CloseBody(res)
70941	if err := googleapi.CheckResponse(res); err != nil {
70942		return nil, err
70943	}
70944	ret := &TestPermissionsResponse{
70945		ServerResponse: googleapi.ServerResponse{
70946			Header:         res.Header,
70947			HTTPStatusCode: res.StatusCode,
70948		},
70949	}
70950	target := &ret
70951	if err := gensupport.DecodeResponse(target, res); err != nil {
70952		return nil, err
70953	}
70954	return ret, nil
70955	// {
70956	//   "description": "Returns permissions that a caller has on the specified resource.",
70957	//   "httpMethod": "POST",
70958	//   "id": "compute.healthChecks.testIamPermissions",
70959	//   "parameterOrder": [
70960	//     "project",
70961	//     "resource"
70962	//   ],
70963	//   "parameters": {
70964	//     "project": {
70965	//       "description": "Project ID for this request.",
70966	//       "location": "path",
70967	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70968	//       "required": true,
70969	//       "type": "string"
70970	//     },
70971	//     "resource": {
70972	//       "description": "Name or id of the resource for this request.",
70973	//       "location": "path",
70974	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70975	//       "required": true,
70976	//       "type": "string"
70977	//     }
70978	//   },
70979	//   "path": "{project}/global/healthChecks/{resource}/testIamPermissions",
70980	//   "request": {
70981	//     "$ref": "TestPermissionsRequest"
70982	//   },
70983	//   "response": {
70984	//     "$ref": "TestPermissionsResponse"
70985	//   },
70986	//   "scopes": [
70987	//     "https://www.googleapis.com/auth/cloud-platform",
70988	//     "https://www.googleapis.com/auth/compute",
70989	//     "https://www.googleapis.com/auth/compute.readonly"
70990	//   ]
70991	// }
70992
70993}
70994
70995// method id "compute.healthChecks.update":
70996
70997type HealthChecksUpdateCall struct {
70998	s           *Service
70999	project     string
71000	healthCheck string
71001	healthcheck *HealthCheck
71002	urlParams_  gensupport.URLParams
71003	ctx_        context.Context
71004	header_     http.Header
71005}
71006
71007// Update: Updates a HealthCheck resource in the specified project using
71008// the data included in the request.
71009func (r *HealthChecksService) Update(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksUpdateCall {
71010	c := &HealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71011	c.project = project
71012	c.healthCheck = healthCheck
71013	c.healthcheck = healthcheck
71014	return c
71015}
71016
71017// RequestId sets the optional parameter "requestId": An optional
71018// request ID to identify requests. Specify a unique request ID so that
71019// if you must retry your request, the server will know to ignore the
71020// request if it has already been completed.
71021//
71022// For example, consider a situation where you make an initial request
71023// and the request times out. If you make the request again with the
71024// same request ID, the server can check if original operation with the
71025// same request ID was received, and if so, will ignore the second
71026// request. This prevents clients from accidentally creating duplicate
71027// commitments.
71028//
71029// The request ID must be a valid UUID with the exception that zero UUID
71030// is not supported (00000000-0000-0000-0000-000000000000).
71031func (c *HealthChecksUpdateCall) RequestId(requestId string) *HealthChecksUpdateCall {
71032	c.urlParams_.Set("requestId", requestId)
71033	return c
71034}
71035
71036// Fields allows partial responses to be retrieved. See
71037// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71038// for more information.
71039func (c *HealthChecksUpdateCall) Fields(s ...googleapi.Field) *HealthChecksUpdateCall {
71040	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71041	return c
71042}
71043
71044// Context sets the context to be used in this call's Do method. Any
71045// pending HTTP request will be aborted if the provided context is
71046// canceled.
71047func (c *HealthChecksUpdateCall) Context(ctx context.Context) *HealthChecksUpdateCall {
71048	c.ctx_ = ctx
71049	return c
71050}
71051
71052// Header returns an http.Header that can be modified by the caller to
71053// add HTTP headers to the request.
71054func (c *HealthChecksUpdateCall) Header() http.Header {
71055	if c.header_ == nil {
71056		c.header_ = make(http.Header)
71057	}
71058	return c.header_
71059}
71060
71061func (c *HealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
71062	reqHeaders := make(http.Header)
71063	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
71064	for k, v := range c.header_ {
71065		reqHeaders[k] = v
71066	}
71067	reqHeaders.Set("User-Agent", c.s.userAgent())
71068	var body io.Reader = nil
71069	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
71070	if err != nil {
71071		return nil, err
71072	}
71073	reqHeaders.Set("Content-Type", "application/json")
71074	c.urlParams_.Set("alt", alt)
71075	c.urlParams_.Set("prettyPrint", "false")
71076	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
71077	urls += "?" + c.urlParams_.Encode()
71078	req, err := http.NewRequest("PUT", urls, body)
71079	if err != nil {
71080		return nil, err
71081	}
71082	req.Header = reqHeaders
71083	googleapi.Expand(req.URL, map[string]string{
71084		"project":     c.project,
71085		"healthCheck": c.healthCheck,
71086	})
71087	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71088}
71089
71090// Do executes the "compute.healthChecks.update" call.
71091// Exactly one of *Operation or error will be non-nil. Any non-2xx
71092// status code is an error. Response headers are in either
71093// *Operation.ServerResponse.Header or (if a response was returned at
71094// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71095// to check whether the returned error was because
71096// http.StatusNotModified was returned.
71097func (c *HealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71098	gensupport.SetOptions(c.urlParams_, opts...)
71099	res, err := c.doRequest("json")
71100	if res != nil && res.StatusCode == http.StatusNotModified {
71101		if res.Body != nil {
71102			res.Body.Close()
71103		}
71104		return nil, &googleapi.Error{
71105			Code:   res.StatusCode,
71106			Header: res.Header,
71107		}
71108	}
71109	if err != nil {
71110		return nil, err
71111	}
71112	defer googleapi.CloseBody(res)
71113	if err := googleapi.CheckResponse(res); err != nil {
71114		return nil, err
71115	}
71116	ret := &Operation{
71117		ServerResponse: googleapi.ServerResponse{
71118			Header:         res.Header,
71119			HTTPStatusCode: res.StatusCode,
71120		},
71121	}
71122	target := &ret
71123	if err := gensupport.DecodeResponse(target, res); err != nil {
71124		return nil, err
71125	}
71126	return ret, nil
71127	// {
71128	//   "description": "Updates a HealthCheck resource in the specified project using the data included in the request.",
71129	//   "httpMethod": "PUT",
71130	//   "id": "compute.healthChecks.update",
71131	//   "parameterOrder": [
71132	//     "project",
71133	//     "healthCheck"
71134	//   ],
71135	//   "parameters": {
71136	//     "healthCheck": {
71137	//       "description": "Name of the HealthCheck resource to update.",
71138	//       "location": "path",
71139	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
71140	//       "required": true,
71141	//       "type": "string"
71142	//     },
71143	//     "project": {
71144	//       "description": "Project ID for this request.",
71145	//       "location": "path",
71146	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71147	//       "required": true,
71148	//       "type": "string"
71149	//     },
71150	//     "requestId": {
71151	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71152	//       "location": "query",
71153	//       "type": "string"
71154	//     }
71155	//   },
71156	//   "path": "{project}/global/healthChecks/{healthCheck}",
71157	//   "request": {
71158	//     "$ref": "HealthCheck"
71159	//   },
71160	//   "response": {
71161	//     "$ref": "Operation"
71162	//   },
71163	//   "scopes": [
71164	//     "https://www.googleapis.com/auth/cloud-platform",
71165	//     "https://www.googleapis.com/auth/compute"
71166	//   ]
71167	// }
71168
71169}
71170
71171// method id "compute.httpHealthChecks.delete":
71172
71173type HttpHealthChecksDeleteCall struct {
71174	s               *Service
71175	project         string
71176	httpHealthCheck string
71177	urlParams_      gensupport.URLParams
71178	ctx_            context.Context
71179	header_         http.Header
71180}
71181
71182// Delete: Deletes the specified HttpHealthCheck resource.
71183// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/delete
71184func (r *HttpHealthChecksService) Delete(project string, httpHealthCheck string) *HttpHealthChecksDeleteCall {
71185	c := &HttpHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71186	c.project = project
71187	c.httpHealthCheck = httpHealthCheck
71188	return c
71189}
71190
71191// RequestId sets the optional parameter "requestId": An optional
71192// request ID to identify requests. Specify a unique request ID so that
71193// if you must retry your request, the server will know to ignore the
71194// request if it has already been completed.
71195//
71196// For example, consider a situation where you make an initial request
71197// and the request times out. If you make the request again with the
71198// same request ID, the server can check if original operation with the
71199// same request ID was received, and if so, will ignore the second
71200// request. This prevents clients from accidentally creating duplicate
71201// commitments.
71202//
71203// The request ID must be a valid UUID with the exception that zero UUID
71204// is not supported (00000000-0000-0000-0000-000000000000).
71205func (c *HttpHealthChecksDeleteCall) RequestId(requestId string) *HttpHealthChecksDeleteCall {
71206	c.urlParams_.Set("requestId", requestId)
71207	return c
71208}
71209
71210// Fields allows partial responses to be retrieved. See
71211// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71212// for more information.
71213func (c *HttpHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpHealthChecksDeleteCall {
71214	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71215	return c
71216}
71217
71218// Context sets the context to be used in this call's Do method. Any
71219// pending HTTP request will be aborted if the provided context is
71220// canceled.
71221func (c *HttpHealthChecksDeleteCall) Context(ctx context.Context) *HttpHealthChecksDeleteCall {
71222	c.ctx_ = ctx
71223	return c
71224}
71225
71226// Header returns an http.Header that can be modified by the caller to
71227// add HTTP headers to the request.
71228func (c *HttpHealthChecksDeleteCall) Header() http.Header {
71229	if c.header_ == nil {
71230		c.header_ = make(http.Header)
71231	}
71232	return c.header_
71233}
71234
71235func (c *HttpHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
71236	reqHeaders := make(http.Header)
71237	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
71238	for k, v := range c.header_ {
71239		reqHeaders[k] = v
71240	}
71241	reqHeaders.Set("User-Agent", c.s.userAgent())
71242	var body io.Reader = nil
71243	c.urlParams_.Set("alt", alt)
71244	c.urlParams_.Set("prettyPrint", "false")
71245	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
71246	urls += "?" + c.urlParams_.Encode()
71247	req, err := http.NewRequest("DELETE", urls, body)
71248	if err != nil {
71249		return nil, err
71250	}
71251	req.Header = reqHeaders
71252	googleapi.Expand(req.URL, map[string]string{
71253		"project":         c.project,
71254		"httpHealthCheck": c.httpHealthCheck,
71255	})
71256	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71257}
71258
71259// Do executes the "compute.httpHealthChecks.delete" call.
71260// Exactly one of *Operation or error will be non-nil. Any non-2xx
71261// status code is an error. Response headers are in either
71262// *Operation.ServerResponse.Header or (if a response was returned at
71263// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71264// to check whether the returned error was because
71265// http.StatusNotModified was returned.
71266func (c *HttpHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71267	gensupport.SetOptions(c.urlParams_, opts...)
71268	res, err := c.doRequest("json")
71269	if res != nil && res.StatusCode == http.StatusNotModified {
71270		if res.Body != nil {
71271			res.Body.Close()
71272		}
71273		return nil, &googleapi.Error{
71274			Code:   res.StatusCode,
71275			Header: res.Header,
71276		}
71277	}
71278	if err != nil {
71279		return nil, err
71280	}
71281	defer googleapi.CloseBody(res)
71282	if err := googleapi.CheckResponse(res); err != nil {
71283		return nil, err
71284	}
71285	ret := &Operation{
71286		ServerResponse: googleapi.ServerResponse{
71287			Header:         res.Header,
71288			HTTPStatusCode: res.StatusCode,
71289		},
71290	}
71291	target := &ret
71292	if err := gensupport.DecodeResponse(target, res); err != nil {
71293		return nil, err
71294	}
71295	return ret, nil
71296	// {
71297	//   "description": "Deletes the specified HttpHealthCheck resource.",
71298	//   "httpMethod": "DELETE",
71299	//   "id": "compute.httpHealthChecks.delete",
71300	//   "parameterOrder": [
71301	//     "project",
71302	//     "httpHealthCheck"
71303	//   ],
71304	//   "parameters": {
71305	//     "httpHealthCheck": {
71306	//       "description": "Name of the HttpHealthCheck resource to delete.",
71307	//       "location": "path",
71308	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
71309	//       "required": true,
71310	//       "type": "string"
71311	//     },
71312	//     "project": {
71313	//       "description": "Project ID for this request.",
71314	//       "location": "path",
71315	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71316	//       "required": true,
71317	//       "type": "string"
71318	//     },
71319	//     "requestId": {
71320	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71321	//       "location": "query",
71322	//       "type": "string"
71323	//     }
71324	//   },
71325	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
71326	//   "response": {
71327	//     "$ref": "Operation"
71328	//   },
71329	//   "scopes": [
71330	//     "https://www.googleapis.com/auth/cloud-platform",
71331	//     "https://www.googleapis.com/auth/compute"
71332	//   ]
71333	// }
71334
71335}
71336
71337// method id "compute.httpHealthChecks.get":
71338
71339type HttpHealthChecksGetCall struct {
71340	s               *Service
71341	project         string
71342	httpHealthCheck string
71343	urlParams_      gensupport.URLParams
71344	ifNoneMatch_    string
71345	ctx_            context.Context
71346	header_         http.Header
71347}
71348
71349// Get: Returns the specified HttpHealthCheck resource. Gets a list of
71350// available HTTP health checks by making a list() request.
71351// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/get
71352func (r *HttpHealthChecksService) Get(project string, httpHealthCheck string) *HttpHealthChecksGetCall {
71353	c := &HttpHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71354	c.project = project
71355	c.httpHealthCheck = httpHealthCheck
71356	return c
71357}
71358
71359// Fields allows partial responses to be retrieved. See
71360// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71361// for more information.
71362func (c *HttpHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpHealthChecksGetCall {
71363	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71364	return c
71365}
71366
71367// IfNoneMatch sets the optional parameter which makes the operation
71368// fail if the object's ETag matches the given value. This is useful for
71369// getting updates only after the object has changed since the last
71370// request. Use googleapi.IsNotModified to check whether the response
71371// error from Do is the result of In-None-Match.
71372func (c *HttpHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpHealthChecksGetCall {
71373	c.ifNoneMatch_ = entityTag
71374	return c
71375}
71376
71377// Context sets the context to be used in this call's Do method. Any
71378// pending HTTP request will be aborted if the provided context is
71379// canceled.
71380func (c *HttpHealthChecksGetCall) Context(ctx context.Context) *HttpHealthChecksGetCall {
71381	c.ctx_ = ctx
71382	return c
71383}
71384
71385// Header returns an http.Header that can be modified by the caller to
71386// add HTTP headers to the request.
71387func (c *HttpHealthChecksGetCall) Header() http.Header {
71388	if c.header_ == nil {
71389		c.header_ = make(http.Header)
71390	}
71391	return c.header_
71392}
71393
71394func (c *HttpHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
71395	reqHeaders := make(http.Header)
71396	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
71397	for k, v := range c.header_ {
71398		reqHeaders[k] = v
71399	}
71400	reqHeaders.Set("User-Agent", c.s.userAgent())
71401	if c.ifNoneMatch_ != "" {
71402		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
71403	}
71404	var body io.Reader = nil
71405	c.urlParams_.Set("alt", alt)
71406	c.urlParams_.Set("prettyPrint", "false")
71407	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
71408	urls += "?" + c.urlParams_.Encode()
71409	req, err := http.NewRequest("GET", urls, body)
71410	if err != nil {
71411		return nil, err
71412	}
71413	req.Header = reqHeaders
71414	googleapi.Expand(req.URL, map[string]string{
71415		"project":         c.project,
71416		"httpHealthCheck": c.httpHealthCheck,
71417	})
71418	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71419}
71420
71421// Do executes the "compute.httpHealthChecks.get" call.
71422// Exactly one of *HttpHealthCheck or error will be non-nil. Any non-2xx
71423// status code is an error. Response headers are in either
71424// *HttpHealthCheck.ServerResponse.Header or (if a response was returned
71425// at all) in error.(*googleapi.Error).Header. Use
71426// googleapi.IsNotModified to check whether the returned error was
71427// because http.StatusNotModified was returned.
71428func (c *HttpHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheck, error) {
71429	gensupport.SetOptions(c.urlParams_, opts...)
71430	res, err := c.doRequest("json")
71431	if res != nil && res.StatusCode == http.StatusNotModified {
71432		if res.Body != nil {
71433			res.Body.Close()
71434		}
71435		return nil, &googleapi.Error{
71436			Code:   res.StatusCode,
71437			Header: res.Header,
71438		}
71439	}
71440	if err != nil {
71441		return nil, err
71442	}
71443	defer googleapi.CloseBody(res)
71444	if err := googleapi.CheckResponse(res); err != nil {
71445		return nil, err
71446	}
71447	ret := &HttpHealthCheck{
71448		ServerResponse: googleapi.ServerResponse{
71449			Header:         res.Header,
71450			HTTPStatusCode: res.StatusCode,
71451		},
71452	}
71453	target := &ret
71454	if err := gensupport.DecodeResponse(target, res); err != nil {
71455		return nil, err
71456	}
71457	return ret, nil
71458	// {
71459	//   "description": "Returns the specified HttpHealthCheck resource. Gets a list of available HTTP health checks by making a list() request.",
71460	//   "httpMethod": "GET",
71461	//   "id": "compute.httpHealthChecks.get",
71462	//   "parameterOrder": [
71463	//     "project",
71464	//     "httpHealthCheck"
71465	//   ],
71466	//   "parameters": {
71467	//     "httpHealthCheck": {
71468	//       "description": "Name of the HttpHealthCheck resource to return.",
71469	//       "location": "path",
71470	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
71471	//       "required": true,
71472	//       "type": "string"
71473	//     },
71474	//     "project": {
71475	//       "description": "Project ID for this request.",
71476	//       "location": "path",
71477	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71478	//       "required": true,
71479	//       "type": "string"
71480	//     }
71481	//   },
71482	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
71483	//   "response": {
71484	//     "$ref": "HttpHealthCheck"
71485	//   },
71486	//   "scopes": [
71487	//     "https://www.googleapis.com/auth/cloud-platform",
71488	//     "https://www.googleapis.com/auth/compute",
71489	//     "https://www.googleapis.com/auth/compute.readonly"
71490	//   ]
71491	// }
71492
71493}
71494
71495// method id "compute.httpHealthChecks.insert":
71496
71497type HttpHealthChecksInsertCall struct {
71498	s               *Service
71499	project         string
71500	httphealthcheck *HttpHealthCheck
71501	urlParams_      gensupport.URLParams
71502	ctx_            context.Context
71503	header_         http.Header
71504}
71505
71506// Insert: Creates a HttpHealthCheck resource in the specified project
71507// using the data included in the request.
71508// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/insert
71509func (r *HttpHealthChecksService) Insert(project string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksInsertCall {
71510	c := &HttpHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71511	c.project = project
71512	c.httphealthcheck = httphealthcheck
71513	return c
71514}
71515
71516// RequestId sets the optional parameter "requestId": An optional
71517// request ID to identify requests. Specify a unique request ID so that
71518// if you must retry your request, the server will know to ignore the
71519// request if it has already been completed.
71520//
71521// For example, consider a situation where you make an initial request
71522// and the request times out. If you make the request again with the
71523// same request ID, the server can check if original operation with the
71524// same request ID was received, and if so, will ignore the second
71525// request. This prevents clients from accidentally creating duplicate
71526// commitments.
71527//
71528// The request ID must be a valid UUID with the exception that zero UUID
71529// is not supported (00000000-0000-0000-0000-000000000000).
71530func (c *HttpHealthChecksInsertCall) RequestId(requestId string) *HttpHealthChecksInsertCall {
71531	c.urlParams_.Set("requestId", requestId)
71532	return c
71533}
71534
71535// Fields allows partial responses to be retrieved. See
71536// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71537// for more information.
71538func (c *HttpHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpHealthChecksInsertCall {
71539	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71540	return c
71541}
71542
71543// Context sets the context to be used in this call's Do method. Any
71544// pending HTTP request will be aborted if the provided context is
71545// canceled.
71546func (c *HttpHealthChecksInsertCall) Context(ctx context.Context) *HttpHealthChecksInsertCall {
71547	c.ctx_ = ctx
71548	return c
71549}
71550
71551// Header returns an http.Header that can be modified by the caller to
71552// add HTTP headers to the request.
71553func (c *HttpHealthChecksInsertCall) Header() http.Header {
71554	if c.header_ == nil {
71555		c.header_ = make(http.Header)
71556	}
71557	return c.header_
71558}
71559
71560func (c *HttpHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
71561	reqHeaders := make(http.Header)
71562	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
71563	for k, v := range c.header_ {
71564		reqHeaders[k] = v
71565	}
71566	reqHeaders.Set("User-Agent", c.s.userAgent())
71567	var body io.Reader = nil
71568	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
71569	if err != nil {
71570		return nil, err
71571	}
71572	reqHeaders.Set("Content-Type", "application/json")
71573	c.urlParams_.Set("alt", alt)
71574	c.urlParams_.Set("prettyPrint", "false")
71575	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks")
71576	urls += "?" + c.urlParams_.Encode()
71577	req, err := http.NewRequest("POST", urls, body)
71578	if err != nil {
71579		return nil, err
71580	}
71581	req.Header = reqHeaders
71582	googleapi.Expand(req.URL, map[string]string{
71583		"project": c.project,
71584	})
71585	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71586}
71587
71588// Do executes the "compute.httpHealthChecks.insert" call.
71589// Exactly one of *Operation or error will be non-nil. Any non-2xx
71590// status code is an error. Response headers are in either
71591// *Operation.ServerResponse.Header or (if a response was returned at
71592// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71593// to check whether the returned error was because
71594// http.StatusNotModified was returned.
71595func (c *HttpHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71596	gensupport.SetOptions(c.urlParams_, opts...)
71597	res, err := c.doRequest("json")
71598	if res != nil && res.StatusCode == http.StatusNotModified {
71599		if res.Body != nil {
71600			res.Body.Close()
71601		}
71602		return nil, &googleapi.Error{
71603			Code:   res.StatusCode,
71604			Header: res.Header,
71605		}
71606	}
71607	if err != nil {
71608		return nil, err
71609	}
71610	defer googleapi.CloseBody(res)
71611	if err := googleapi.CheckResponse(res); err != nil {
71612		return nil, err
71613	}
71614	ret := &Operation{
71615		ServerResponse: googleapi.ServerResponse{
71616			Header:         res.Header,
71617			HTTPStatusCode: res.StatusCode,
71618		},
71619	}
71620	target := &ret
71621	if err := gensupport.DecodeResponse(target, res); err != nil {
71622		return nil, err
71623	}
71624	return ret, nil
71625	// {
71626	//   "description": "Creates a HttpHealthCheck resource in the specified project using the data included in the request.",
71627	//   "httpMethod": "POST",
71628	//   "id": "compute.httpHealthChecks.insert",
71629	//   "parameterOrder": [
71630	//     "project"
71631	//   ],
71632	//   "parameters": {
71633	//     "project": {
71634	//       "description": "Project ID for this request.",
71635	//       "location": "path",
71636	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71637	//       "required": true,
71638	//       "type": "string"
71639	//     },
71640	//     "requestId": {
71641	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71642	//       "location": "query",
71643	//       "type": "string"
71644	//     }
71645	//   },
71646	//   "path": "{project}/global/httpHealthChecks",
71647	//   "request": {
71648	//     "$ref": "HttpHealthCheck"
71649	//   },
71650	//   "response": {
71651	//     "$ref": "Operation"
71652	//   },
71653	//   "scopes": [
71654	//     "https://www.googleapis.com/auth/cloud-platform",
71655	//     "https://www.googleapis.com/auth/compute"
71656	//   ]
71657	// }
71658
71659}
71660
71661// method id "compute.httpHealthChecks.list":
71662
71663type HttpHealthChecksListCall struct {
71664	s            *Service
71665	project      string
71666	urlParams_   gensupport.URLParams
71667	ifNoneMatch_ string
71668	ctx_         context.Context
71669	header_      http.Header
71670}
71671
71672// List: Retrieves the list of HttpHealthCheck resources available to
71673// the specified project.
71674// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/list
71675func (r *HttpHealthChecksService) List(project string) *HttpHealthChecksListCall {
71676	c := &HttpHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71677	c.project = project
71678	return c
71679}
71680
71681// Filter sets the optional parameter "filter": A filter expression that
71682// filters resources listed in the response. The expression must specify
71683// the field name, a comparison operator, and the value that you want to
71684// use for filtering. The value must be a string, a number, or a
71685// boolean. The comparison operator must be either =, !=, >, or <.
71686//
71687// For example, if you are filtering Compute Engine instances, you can
71688// exclude instances named example-instance by specifying name !=
71689// example-instance.
71690//
71691// You can also filter nested fields. For example, you could specify
71692// scheduling.automaticRestart = false to include instances only if they
71693// are not scheduled for automatic restarts. You can use filtering on
71694// nested fields to filter based on resource labels.
71695//
71696// To filter on multiple expressions, provide each separate expression
71697// within parentheses. For example, (scheduling.automaticRestart = true)
71698// (cpuPlatform = "Intel Skylake"). By default, each expression is an
71699// AND expression. However, you can include AND and OR expressions
71700// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
71701// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
71702// true).
71703func (c *HttpHealthChecksListCall) Filter(filter string) *HttpHealthChecksListCall {
71704	c.urlParams_.Set("filter", filter)
71705	return c
71706}
71707
71708// MaxResults sets the optional parameter "maxResults": The maximum
71709// number of results per page that should be returned. If the number of
71710// available results is larger than maxResults, Compute Engine returns a
71711// nextPageToken that can be used to get the next page of results in
71712// subsequent list requests. Acceptable values are 0 to 500, inclusive.
71713// (Default: 500)
71714func (c *HttpHealthChecksListCall) MaxResults(maxResults int64) *HttpHealthChecksListCall {
71715	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
71716	return c
71717}
71718
71719// OrderBy sets the optional parameter "orderBy": Sorts list results by
71720// a certain order. By default, results are returned in alphanumerical
71721// order based on the resource name.
71722//
71723// You can also sort results in descending order based on the creation
71724// timestamp using orderBy="creationTimestamp desc". This sorts results
71725// based on the creationTimestamp field in reverse chronological order
71726// (newest result first). Use this to sort resources like operations so
71727// that the newest operation is returned first.
71728//
71729// Currently, only sorting by name or creationTimestamp desc is
71730// supported.
71731func (c *HttpHealthChecksListCall) OrderBy(orderBy string) *HttpHealthChecksListCall {
71732	c.urlParams_.Set("orderBy", orderBy)
71733	return c
71734}
71735
71736// PageToken sets the optional parameter "pageToken": Specifies a page
71737// token to use. Set pageToken to the nextPageToken returned by a
71738// previous list request to get the next page of results.
71739func (c *HttpHealthChecksListCall) PageToken(pageToken string) *HttpHealthChecksListCall {
71740	c.urlParams_.Set("pageToken", pageToken)
71741	return c
71742}
71743
71744// Fields allows partial responses to be retrieved. See
71745// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71746// for more information.
71747func (c *HttpHealthChecksListCall) Fields(s ...googleapi.Field) *HttpHealthChecksListCall {
71748	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71749	return c
71750}
71751
71752// IfNoneMatch sets the optional parameter which makes the operation
71753// fail if the object's ETag matches the given value. This is useful for
71754// getting updates only after the object has changed since the last
71755// request. Use googleapi.IsNotModified to check whether the response
71756// error from Do is the result of In-None-Match.
71757func (c *HttpHealthChecksListCall) IfNoneMatch(entityTag string) *HttpHealthChecksListCall {
71758	c.ifNoneMatch_ = entityTag
71759	return c
71760}
71761
71762// Context sets the context to be used in this call's Do method. Any
71763// pending HTTP request will be aborted if the provided context is
71764// canceled.
71765func (c *HttpHealthChecksListCall) Context(ctx context.Context) *HttpHealthChecksListCall {
71766	c.ctx_ = ctx
71767	return c
71768}
71769
71770// Header returns an http.Header that can be modified by the caller to
71771// add HTTP headers to the request.
71772func (c *HttpHealthChecksListCall) Header() http.Header {
71773	if c.header_ == nil {
71774		c.header_ = make(http.Header)
71775	}
71776	return c.header_
71777}
71778
71779func (c *HttpHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
71780	reqHeaders := make(http.Header)
71781	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
71782	for k, v := range c.header_ {
71783		reqHeaders[k] = v
71784	}
71785	reqHeaders.Set("User-Agent", c.s.userAgent())
71786	if c.ifNoneMatch_ != "" {
71787		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
71788	}
71789	var body io.Reader = nil
71790	c.urlParams_.Set("alt", alt)
71791	c.urlParams_.Set("prettyPrint", "false")
71792	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks")
71793	urls += "?" + c.urlParams_.Encode()
71794	req, err := http.NewRequest("GET", urls, body)
71795	if err != nil {
71796		return nil, err
71797	}
71798	req.Header = reqHeaders
71799	googleapi.Expand(req.URL, map[string]string{
71800		"project": c.project,
71801	})
71802	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71803}
71804
71805// Do executes the "compute.httpHealthChecks.list" call.
71806// Exactly one of *HttpHealthCheckList or error will be non-nil. Any
71807// non-2xx status code is an error. Response headers are in either
71808// *HttpHealthCheckList.ServerResponse.Header or (if a response was
71809// returned at all) in error.(*googleapi.Error).Header. Use
71810// googleapi.IsNotModified to check whether the returned error was
71811// because http.StatusNotModified was returned.
71812func (c *HttpHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheckList, error) {
71813	gensupport.SetOptions(c.urlParams_, opts...)
71814	res, err := c.doRequest("json")
71815	if res != nil && res.StatusCode == http.StatusNotModified {
71816		if res.Body != nil {
71817			res.Body.Close()
71818		}
71819		return nil, &googleapi.Error{
71820			Code:   res.StatusCode,
71821			Header: res.Header,
71822		}
71823	}
71824	if err != nil {
71825		return nil, err
71826	}
71827	defer googleapi.CloseBody(res)
71828	if err := googleapi.CheckResponse(res); err != nil {
71829		return nil, err
71830	}
71831	ret := &HttpHealthCheckList{
71832		ServerResponse: googleapi.ServerResponse{
71833			Header:         res.Header,
71834			HTTPStatusCode: res.StatusCode,
71835		},
71836	}
71837	target := &ret
71838	if err := gensupport.DecodeResponse(target, res); err != nil {
71839		return nil, err
71840	}
71841	return ret, nil
71842	// {
71843	//   "description": "Retrieves the list of HttpHealthCheck resources available to the specified project.",
71844	//   "httpMethod": "GET",
71845	//   "id": "compute.httpHealthChecks.list",
71846	//   "parameterOrder": [
71847	//     "project"
71848	//   ],
71849	//   "parameters": {
71850	//     "filter": {
71851	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
71852	//       "location": "query",
71853	//       "type": "string"
71854	//     },
71855	//     "maxResults": {
71856	//       "default": "500",
71857	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
71858	//       "format": "uint32",
71859	//       "location": "query",
71860	//       "minimum": "0",
71861	//       "type": "integer"
71862	//     },
71863	//     "orderBy": {
71864	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
71865	//       "location": "query",
71866	//       "type": "string"
71867	//     },
71868	//     "pageToken": {
71869	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
71870	//       "location": "query",
71871	//       "type": "string"
71872	//     },
71873	//     "project": {
71874	//       "description": "Project ID for this request.",
71875	//       "location": "path",
71876	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71877	//       "required": true,
71878	//       "type": "string"
71879	//     }
71880	//   },
71881	//   "path": "{project}/global/httpHealthChecks",
71882	//   "response": {
71883	//     "$ref": "HttpHealthCheckList"
71884	//   },
71885	//   "scopes": [
71886	//     "https://www.googleapis.com/auth/cloud-platform",
71887	//     "https://www.googleapis.com/auth/compute",
71888	//     "https://www.googleapis.com/auth/compute.readonly"
71889	//   ]
71890	// }
71891
71892}
71893
71894// Pages invokes f for each page of results.
71895// A non-nil error returned from f will halt the iteration.
71896// The provided context supersedes any context provided to the Context method.
71897func (c *HttpHealthChecksListCall) Pages(ctx context.Context, f func(*HttpHealthCheckList) error) error {
71898	c.ctx_ = ctx
71899	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
71900	for {
71901		x, err := c.Do()
71902		if err != nil {
71903			return err
71904		}
71905		if err := f(x); err != nil {
71906			return err
71907		}
71908		if x.NextPageToken == "" {
71909			return nil
71910		}
71911		c.PageToken(x.NextPageToken)
71912	}
71913}
71914
71915// method id "compute.httpHealthChecks.patch":
71916
71917type HttpHealthChecksPatchCall struct {
71918	s               *Service
71919	project         string
71920	httpHealthCheck string
71921	httphealthcheck *HttpHealthCheck
71922	urlParams_      gensupport.URLParams
71923	ctx_            context.Context
71924	header_         http.Header
71925}
71926
71927// Patch: Updates a HttpHealthCheck resource in the specified project
71928// using the data included in the request. This method supports PATCH
71929// semantics and uses the JSON merge patch format and processing rules.
71930// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/patch
71931func (r *HttpHealthChecksService) Patch(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksPatchCall {
71932	c := &HttpHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71933	c.project = project
71934	c.httpHealthCheck = httpHealthCheck
71935	c.httphealthcheck = httphealthcheck
71936	return c
71937}
71938
71939// RequestId sets the optional parameter "requestId": An optional
71940// request ID to identify requests. Specify a unique request ID so that
71941// if you must retry your request, the server will know to ignore the
71942// request if it has already been completed.
71943//
71944// For example, consider a situation where you make an initial request
71945// and the request times out. If you make the request again with the
71946// same request ID, the server can check if original operation with the
71947// same request ID was received, and if so, will ignore the second
71948// request. This prevents clients from accidentally creating duplicate
71949// commitments.
71950//
71951// The request ID must be a valid UUID with the exception that zero UUID
71952// is not supported (00000000-0000-0000-0000-000000000000).
71953func (c *HttpHealthChecksPatchCall) RequestId(requestId string) *HttpHealthChecksPatchCall {
71954	c.urlParams_.Set("requestId", requestId)
71955	return c
71956}
71957
71958// Fields allows partial responses to be retrieved. See
71959// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71960// for more information.
71961func (c *HttpHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpHealthChecksPatchCall {
71962	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71963	return c
71964}
71965
71966// Context sets the context to be used in this call's Do method. Any
71967// pending HTTP request will be aborted if the provided context is
71968// canceled.
71969func (c *HttpHealthChecksPatchCall) Context(ctx context.Context) *HttpHealthChecksPatchCall {
71970	c.ctx_ = ctx
71971	return c
71972}
71973
71974// Header returns an http.Header that can be modified by the caller to
71975// add HTTP headers to the request.
71976func (c *HttpHealthChecksPatchCall) Header() http.Header {
71977	if c.header_ == nil {
71978		c.header_ = make(http.Header)
71979	}
71980	return c.header_
71981}
71982
71983func (c *HttpHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
71984	reqHeaders := make(http.Header)
71985	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
71986	for k, v := range c.header_ {
71987		reqHeaders[k] = v
71988	}
71989	reqHeaders.Set("User-Agent", c.s.userAgent())
71990	var body io.Reader = nil
71991	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
71992	if err != nil {
71993		return nil, err
71994	}
71995	reqHeaders.Set("Content-Type", "application/json")
71996	c.urlParams_.Set("alt", alt)
71997	c.urlParams_.Set("prettyPrint", "false")
71998	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
71999	urls += "?" + c.urlParams_.Encode()
72000	req, err := http.NewRequest("PATCH", urls, body)
72001	if err != nil {
72002		return nil, err
72003	}
72004	req.Header = reqHeaders
72005	googleapi.Expand(req.URL, map[string]string{
72006		"project":         c.project,
72007		"httpHealthCheck": c.httpHealthCheck,
72008	})
72009	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72010}
72011
72012// Do executes the "compute.httpHealthChecks.patch" call.
72013// Exactly one of *Operation or error will be non-nil. Any non-2xx
72014// status code is an error. Response headers are in either
72015// *Operation.ServerResponse.Header or (if a response was returned at
72016// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72017// to check whether the returned error was because
72018// http.StatusNotModified was returned.
72019func (c *HttpHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72020	gensupport.SetOptions(c.urlParams_, opts...)
72021	res, err := c.doRequest("json")
72022	if res != nil && res.StatusCode == http.StatusNotModified {
72023		if res.Body != nil {
72024			res.Body.Close()
72025		}
72026		return nil, &googleapi.Error{
72027			Code:   res.StatusCode,
72028			Header: res.Header,
72029		}
72030	}
72031	if err != nil {
72032		return nil, err
72033	}
72034	defer googleapi.CloseBody(res)
72035	if err := googleapi.CheckResponse(res); err != nil {
72036		return nil, err
72037	}
72038	ret := &Operation{
72039		ServerResponse: googleapi.ServerResponse{
72040			Header:         res.Header,
72041			HTTPStatusCode: res.StatusCode,
72042		},
72043	}
72044	target := &ret
72045	if err := gensupport.DecodeResponse(target, res); err != nil {
72046		return nil, err
72047	}
72048	return ret, nil
72049	// {
72050	//   "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.",
72051	//   "httpMethod": "PATCH",
72052	//   "id": "compute.httpHealthChecks.patch",
72053	//   "parameterOrder": [
72054	//     "project",
72055	//     "httpHealthCheck"
72056	//   ],
72057	//   "parameters": {
72058	//     "httpHealthCheck": {
72059	//       "description": "Name of the HttpHealthCheck resource to patch.",
72060	//       "location": "path",
72061	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72062	//       "required": true,
72063	//       "type": "string"
72064	//     },
72065	//     "project": {
72066	//       "description": "Project ID for this request.",
72067	//       "location": "path",
72068	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72069	//       "required": true,
72070	//       "type": "string"
72071	//     },
72072	//     "requestId": {
72073	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72074	//       "location": "query",
72075	//       "type": "string"
72076	//     }
72077	//   },
72078	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
72079	//   "request": {
72080	//     "$ref": "HttpHealthCheck"
72081	//   },
72082	//   "response": {
72083	//     "$ref": "Operation"
72084	//   },
72085	//   "scopes": [
72086	//     "https://www.googleapis.com/auth/cloud-platform",
72087	//     "https://www.googleapis.com/auth/compute"
72088	//   ]
72089	// }
72090
72091}
72092
72093// method id "compute.httpHealthChecks.testIamPermissions":
72094
72095type HttpHealthChecksTestIamPermissionsCall struct {
72096	s                      *Service
72097	project                string
72098	resource               string
72099	testpermissionsrequest *TestPermissionsRequest
72100	urlParams_             gensupport.URLParams
72101	ctx_                   context.Context
72102	header_                http.Header
72103}
72104
72105// TestIamPermissions: Returns permissions that a caller has on the
72106// specified resource.
72107func (r *HttpHealthChecksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *HttpHealthChecksTestIamPermissionsCall {
72108	c := &HttpHealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72109	c.project = project
72110	c.resource = resource
72111	c.testpermissionsrequest = testpermissionsrequest
72112	return c
72113}
72114
72115// Fields allows partial responses to be retrieved. See
72116// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72117// for more information.
72118func (c *HttpHealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *HttpHealthChecksTestIamPermissionsCall {
72119	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72120	return c
72121}
72122
72123// Context sets the context to be used in this call's Do method. Any
72124// pending HTTP request will be aborted if the provided context is
72125// canceled.
72126func (c *HttpHealthChecksTestIamPermissionsCall) Context(ctx context.Context) *HttpHealthChecksTestIamPermissionsCall {
72127	c.ctx_ = ctx
72128	return c
72129}
72130
72131// Header returns an http.Header that can be modified by the caller to
72132// add HTTP headers to the request.
72133func (c *HttpHealthChecksTestIamPermissionsCall) Header() http.Header {
72134	if c.header_ == nil {
72135		c.header_ = make(http.Header)
72136	}
72137	return c.header_
72138}
72139
72140func (c *HttpHealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
72141	reqHeaders := make(http.Header)
72142	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
72143	for k, v := range c.header_ {
72144		reqHeaders[k] = v
72145	}
72146	reqHeaders.Set("User-Agent", c.s.userAgent())
72147	var body io.Reader = nil
72148	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
72149	if err != nil {
72150		return nil, err
72151	}
72152	reqHeaders.Set("Content-Type", "application/json")
72153	c.urlParams_.Set("alt", alt)
72154	c.urlParams_.Set("prettyPrint", "false")
72155	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{resource}/testIamPermissions")
72156	urls += "?" + c.urlParams_.Encode()
72157	req, err := http.NewRequest("POST", urls, body)
72158	if err != nil {
72159		return nil, err
72160	}
72161	req.Header = reqHeaders
72162	googleapi.Expand(req.URL, map[string]string{
72163		"project":  c.project,
72164		"resource": c.resource,
72165	})
72166	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72167}
72168
72169// Do executes the "compute.httpHealthChecks.testIamPermissions" call.
72170// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
72171// non-2xx status code is an error. Response headers are in either
72172// *TestPermissionsResponse.ServerResponse.Header or (if a response was
72173// returned at all) in error.(*googleapi.Error).Header. Use
72174// googleapi.IsNotModified to check whether the returned error was
72175// because http.StatusNotModified was returned.
72176func (c *HttpHealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
72177	gensupport.SetOptions(c.urlParams_, opts...)
72178	res, err := c.doRequest("json")
72179	if res != nil && res.StatusCode == http.StatusNotModified {
72180		if res.Body != nil {
72181			res.Body.Close()
72182		}
72183		return nil, &googleapi.Error{
72184			Code:   res.StatusCode,
72185			Header: res.Header,
72186		}
72187	}
72188	if err != nil {
72189		return nil, err
72190	}
72191	defer googleapi.CloseBody(res)
72192	if err := googleapi.CheckResponse(res); err != nil {
72193		return nil, err
72194	}
72195	ret := &TestPermissionsResponse{
72196		ServerResponse: googleapi.ServerResponse{
72197			Header:         res.Header,
72198			HTTPStatusCode: res.StatusCode,
72199		},
72200	}
72201	target := &ret
72202	if err := gensupport.DecodeResponse(target, res); err != nil {
72203		return nil, err
72204	}
72205	return ret, nil
72206	// {
72207	//   "description": "Returns permissions that a caller has on the specified resource.",
72208	//   "httpMethod": "POST",
72209	//   "id": "compute.httpHealthChecks.testIamPermissions",
72210	//   "parameterOrder": [
72211	//     "project",
72212	//     "resource"
72213	//   ],
72214	//   "parameters": {
72215	//     "project": {
72216	//       "description": "Project ID for this request.",
72217	//       "location": "path",
72218	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72219	//       "required": true,
72220	//       "type": "string"
72221	//     },
72222	//     "resource": {
72223	//       "description": "Name or id of the resource for this request.",
72224	//       "location": "path",
72225	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72226	//       "required": true,
72227	//       "type": "string"
72228	//     }
72229	//   },
72230	//   "path": "{project}/global/httpHealthChecks/{resource}/testIamPermissions",
72231	//   "request": {
72232	//     "$ref": "TestPermissionsRequest"
72233	//   },
72234	//   "response": {
72235	//     "$ref": "TestPermissionsResponse"
72236	//   },
72237	//   "scopes": [
72238	//     "https://www.googleapis.com/auth/cloud-platform",
72239	//     "https://www.googleapis.com/auth/compute",
72240	//     "https://www.googleapis.com/auth/compute.readonly"
72241	//   ]
72242	// }
72243
72244}
72245
72246// method id "compute.httpHealthChecks.update":
72247
72248type HttpHealthChecksUpdateCall struct {
72249	s               *Service
72250	project         string
72251	httpHealthCheck string
72252	httphealthcheck *HttpHealthCheck
72253	urlParams_      gensupport.URLParams
72254	ctx_            context.Context
72255	header_         http.Header
72256}
72257
72258// Update: Updates a HttpHealthCheck resource in the specified project
72259// using the data included in the request.
72260// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/update
72261func (r *HttpHealthChecksService) Update(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksUpdateCall {
72262	c := &HttpHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72263	c.project = project
72264	c.httpHealthCheck = httpHealthCheck
72265	c.httphealthcheck = httphealthcheck
72266	return c
72267}
72268
72269// RequestId sets the optional parameter "requestId": An optional
72270// request ID to identify requests. Specify a unique request ID so that
72271// if you must retry your request, the server will know to ignore the
72272// request if it has already been completed.
72273//
72274// For example, consider a situation where you make an initial request
72275// and the request times out. If you make the request again with the
72276// same request ID, the server can check if original operation with the
72277// same request ID was received, and if so, will ignore the second
72278// request. This prevents clients from accidentally creating duplicate
72279// commitments.
72280//
72281// The request ID must be a valid UUID with the exception that zero UUID
72282// is not supported (00000000-0000-0000-0000-000000000000).
72283func (c *HttpHealthChecksUpdateCall) RequestId(requestId string) *HttpHealthChecksUpdateCall {
72284	c.urlParams_.Set("requestId", requestId)
72285	return c
72286}
72287
72288// Fields allows partial responses to be retrieved. See
72289// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72290// for more information.
72291func (c *HttpHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpHealthChecksUpdateCall {
72292	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72293	return c
72294}
72295
72296// Context sets the context to be used in this call's Do method. Any
72297// pending HTTP request will be aborted if the provided context is
72298// canceled.
72299func (c *HttpHealthChecksUpdateCall) Context(ctx context.Context) *HttpHealthChecksUpdateCall {
72300	c.ctx_ = ctx
72301	return c
72302}
72303
72304// Header returns an http.Header that can be modified by the caller to
72305// add HTTP headers to the request.
72306func (c *HttpHealthChecksUpdateCall) Header() http.Header {
72307	if c.header_ == nil {
72308		c.header_ = make(http.Header)
72309	}
72310	return c.header_
72311}
72312
72313func (c *HttpHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
72314	reqHeaders := make(http.Header)
72315	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
72316	for k, v := range c.header_ {
72317		reqHeaders[k] = v
72318	}
72319	reqHeaders.Set("User-Agent", c.s.userAgent())
72320	var body io.Reader = nil
72321	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
72322	if err != nil {
72323		return nil, err
72324	}
72325	reqHeaders.Set("Content-Type", "application/json")
72326	c.urlParams_.Set("alt", alt)
72327	c.urlParams_.Set("prettyPrint", "false")
72328	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
72329	urls += "?" + c.urlParams_.Encode()
72330	req, err := http.NewRequest("PUT", urls, body)
72331	if err != nil {
72332		return nil, err
72333	}
72334	req.Header = reqHeaders
72335	googleapi.Expand(req.URL, map[string]string{
72336		"project":         c.project,
72337		"httpHealthCheck": c.httpHealthCheck,
72338	})
72339	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72340}
72341
72342// Do executes the "compute.httpHealthChecks.update" call.
72343// Exactly one of *Operation or error will be non-nil. Any non-2xx
72344// status code is an error. Response headers are in either
72345// *Operation.ServerResponse.Header or (if a response was returned at
72346// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72347// to check whether the returned error was because
72348// http.StatusNotModified was returned.
72349func (c *HttpHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72350	gensupport.SetOptions(c.urlParams_, opts...)
72351	res, err := c.doRequest("json")
72352	if res != nil && res.StatusCode == http.StatusNotModified {
72353		if res.Body != nil {
72354			res.Body.Close()
72355		}
72356		return nil, &googleapi.Error{
72357			Code:   res.StatusCode,
72358			Header: res.Header,
72359		}
72360	}
72361	if err != nil {
72362		return nil, err
72363	}
72364	defer googleapi.CloseBody(res)
72365	if err := googleapi.CheckResponse(res); err != nil {
72366		return nil, err
72367	}
72368	ret := &Operation{
72369		ServerResponse: googleapi.ServerResponse{
72370			Header:         res.Header,
72371			HTTPStatusCode: res.StatusCode,
72372		},
72373	}
72374	target := &ret
72375	if err := gensupport.DecodeResponse(target, res); err != nil {
72376		return nil, err
72377	}
72378	return ret, nil
72379	// {
72380	//   "description": "Updates a HttpHealthCheck resource in the specified project using the data included in the request.",
72381	//   "httpMethod": "PUT",
72382	//   "id": "compute.httpHealthChecks.update",
72383	//   "parameterOrder": [
72384	//     "project",
72385	//     "httpHealthCheck"
72386	//   ],
72387	//   "parameters": {
72388	//     "httpHealthCheck": {
72389	//       "description": "Name of the HttpHealthCheck resource to update.",
72390	//       "location": "path",
72391	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72392	//       "required": true,
72393	//       "type": "string"
72394	//     },
72395	//     "project": {
72396	//       "description": "Project ID for this request.",
72397	//       "location": "path",
72398	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72399	//       "required": true,
72400	//       "type": "string"
72401	//     },
72402	//     "requestId": {
72403	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72404	//       "location": "query",
72405	//       "type": "string"
72406	//     }
72407	//   },
72408	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
72409	//   "request": {
72410	//     "$ref": "HttpHealthCheck"
72411	//   },
72412	//   "response": {
72413	//     "$ref": "Operation"
72414	//   },
72415	//   "scopes": [
72416	//     "https://www.googleapis.com/auth/cloud-platform",
72417	//     "https://www.googleapis.com/auth/compute"
72418	//   ]
72419	// }
72420
72421}
72422
72423// method id "compute.httpsHealthChecks.delete":
72424
72425type HttpsHealthChecksDeleteCall struct {
72426	s                *Service
72427	project          string
72428	httpsHealthCheck string
72429	urlParams_       gensupport.URLParams
72430	ctx_             context.Context
72431	header_          http.Header
72432}
72433
72434// Delete: Deletes the specified HttpsHealthCheck resource.
72435func (r *HttpsHealthChecksService) Delete(project string, httpsHealthCheck string) *HttpsHealthChecksDeleteCall {
72436	c := &HttpsHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72437	c.project = project
72438	c.httpsHealthCheck = httpsHealthCheck
72439	return c
72440}
72441
72442// RequestId sets the optional parameter "requestId": An optional
72443// request ID to identify requests. Specify a unique request ID so that
72444// if you must retry your request, the server will know to ignore the
72445// request if it has already been completed.
72446//
72447// For example, consider a situation where you make an initial request
72448// and the request times out. If you make the request again with the
72449// same request ID, the server can check if original operation with the
72450// same request ID was received, and if so, will ignore the second
72451// request. This prevents clients from accidentally creating duplicate
72452// commitments.
72453//
72454// The request ID must be a valid UUID with the exception that zero UUID
72455// is not supported (00000000-0000-0000-0000-000000000000).
72456func (c *HttpsHealthChecksDeleteCall) RequestId(requestId string) *HttpsHealthChecksDeleteCall {
72457	c.urlParams_.Set("requestId", requestId)
72458	return c
72459}
72460
72461// Fields allows partial responses to be retrieved. See
72462// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72463// for more information.
72464func (c *HttpsHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpsHealthChecksDeleteCall {
72465	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72466	return c
72467}
72468
72469// Context sets the context to be used in this call's Do method. Any
72470// pending HTTP request will be aborted if the provided context is
72471// canceled.
72472func (c *HttpsHealthChecksDeleteCall) Context(ctx context.Context) *HttpsHealthChecksDeleteCall {
72473	c.ctx_ = ctx
72474	return c
72475}
72476
72477// Header returns an http.Header that can be modified by the caller to
72478// add HTTP headers to the request.
72479func (c *HttpsHealthChecksDeleteCall) Header() http.Header {
72480	if c.header_ == nil {
72481		c.header_ = make(http.Header)
72482	}
72483	return c.header_
72484}
72485
72486func (c *HttpsHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
72487	reqHeaders := make(http.Header)
72488	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
72489	for k, v := range c.header_ {
72490		reqHeaders[k] = v
72491	}
72492	reqHeaders.Set("User-Agent", c.s.userAgent())
72493	var body io.Reader = nil
72494	c.urlParams_.Set("alt", alt)
72495	c.urlParams_.Set("prettyPrint", "false")
72496	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
72497	urls += "?" + c.urlParams_.Encode()
72498	req, err := http.NewRequest("DELETE", urls, body)
72499	if err != nil {
72500		return nil, err
72501	}
72502	req.Header = reqHeaders
72503	googleapi.Expand(req.URL, map[string]string{
72504		"project":          c.project,
72505		"httpsHealthCheck": c.httpsHealthCheck,
72506	})
72507	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72508}
72509
72510// Do executes the "compute.httpsHealthChecks.delete" call.
72511// Exactly one of *Operation or error will be non-nil. Any non-2xx
72512// status code is an error. Response headers are in either
72513// *Operation.ServerResponse.Header or (if a response was returned at
72514// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72515// to check whether the returned error was because
72516// http.StatusNotModified was returned.
72517func (c *HttpsHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72518	gensupport.SetOptions(c.urlParams_, opts...)
72519	res, err := c.doRequest("json")
72520	if res != nil && res.StatusCode == http.StatusNotModified {
72521		if res.Body != nil {
72522			res.Body.Close()
72523		}
72524		return nil, &googleapi.Error{
72525			Code:   res.StatusCode,
72526			Header: res.Header,
72527		}
72528	}
72529	if err != nil {
72530		return nil, err
72531	}
72532	defer googleapi.CloseBody(res)
72533	if err := googleapi.CheckResponse(res); err != nil {
72534		return nil, err
72535	}
72536	ret := &Operation{
72537		ServerResponse: googleapi.ServerResponse{
72538			Header:         res.Header,
72539			HTTPStatusCode: res.StatusCode,
72540		},
72541	}
72542	target := &ret
72543	if err := gensupport.DecodeResponse(target, res); err != nil {
72544		return nil, err
72545	}
72546	return ret, nil
72547	// {
72548	//   "description": "Deletes the specified HttpsHealthCheck resource.",
72549	//   "httpMethod": "DELETE",
72550	//   "id": "compute.httpsHealthChecks.delete",
72551	//   "parameterOrder": [
72552	//     "project",
72553	//     "httpsHealthCheck"
72554	//   ],
72555	//   "parameters": {
72556	//     "httpsHealthCheck": {
72557	//       "description": "Name of the HttpsHealthCheck resource to delete.",
72558	//       "location": "path",
72559	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72560	//       "required": true,
72561	//       "type": "string"
72562	//     },
72563	//     "project": {
72564	//       "description": "Project ID for this request.",
72565	//       "location": "path",
72566	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72567	//       "required": true,
72568	//       "type": "string"
72569	//     },
72570	//     "requestId": {
72571	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72572	//       "location": "query",
72573	//       "type": "string"
72574	//     }
72575	//   },
72576	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
72577	//   "response": {
72578	//     "$ref": "Operation"
72579	//   },
72580	//   "scopes": [
72581	//     "https://www.googleapis.com/auth/cloud-platform",
72582	//     "https://www.googleapis.com/auth/compute"
72583	//   ]
72584	// }
72585
72586}
72587
72588// method id "compute.httpsHealthChecks.get":
72589
72590type HttpsHealthChecksGetCall struct {
72591	s                *Service
72592	project          string
72593	httpsHealthCheck string
72594	urlParams_       gensupport.URLParams
72595	ifNoneMatch_     string
72596	ctx_             context.Context
72597	header_          http.Header
72598}
72599
72600// Get: Returns the specified HttpsHealthCheck resource. Gets a list of
72601// available HTTPS health checks by making a list() request.
72602func (r *HttpsHealthChecksService) Get(project string, httpsHealthCheck string) *HttpsHealthChecksGetCall {
72603	c := &HttpsHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72604	c.project = project
72605	c.httpsHealthCheck = httpsHealthCheck
72606	return c
72607}
72608
72609// Fields allows partial responses to be retrieved. See
72610// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72611// for more information.
72612func (c *HttpsHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpsHealthChecksGetCall {
72613	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72614	return c
72615}
72616
72617// IfNoneMatch sets the optional parameter which makes the operation
72618// fail if the object's ETag matches the given value. This is useful for
72619// getting updates only after the object has changed since the last
72620// request. Use googleapi.IsNotModified to check whether the response
72621// error from Do is the result of In-None-Match.
72622func (c *HttpsHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpsHealthChecksGetCall {
72623	c.ifNoneMatch_ = entityTag
72624	return c
72625}
72626
72627// Context sets the context to be used in this call's Do method. Any
72628// pending HTTP request will be aborted if the provided context is
72629// canceled.
72630func (c *HttpsHealthChecksGetCall) Context(ctx context.Context) *HttpsHealthChecksGetCall {
72631	c.ctx_ = ctx
72632	return c
72633}
72634
72635// Header returns an http.Header that can be modified by the caller to
72636// add HTTP headers to the request.
72637func (c *HttpsHealthChecksGetCall) Header() http.Header {
72638	if c.header_ == nil {
72639		c.header_ = make(http.Header)
72640	}
72641	return c.header_
72642}
72643
72644func (c *HttpsHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
72645	reqHeaders := make(http.Header)
72646	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
72647	for k, v := range c.header_ {
72648		reqHeaders[k] = v
72649	}
72650	reqHeaders.Set("User-Agent", c.s.userAgent())
72651	if c.ifNoneMatch_ != "" {
72652		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
72653	}
72654	var body io.Reader = nil
72655	c.urlParams_.Set("alt", alt)
72656	c.urlParams_.Set("prettyPrint", "false")
72657	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
72658	urls += "?" + c.urlParams_.Encode()
72659	req, err := http.NewRequest("GET", urls, body)
72660	if err != nil {
72661		return nil, err
72662	}
72663	req.Header = reqHeaders
72664	googleapi.Expand(req.URL, map[string]string{
72665		"project":          c.project,
72666		"httpsHealthCheck": c.httpsHealthCheck,
72667	})
72668	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72669}
72670
72671// Do executes the "compute.httpsHealthChecks.get" call.
72672// Exactly one of *HttpsHealthCheck or error will be non-nil. Any
72673// non-2xx status code is an error. Response headers are in either
72674// *HttpsHealthCheck.ServerResponse.Header or (if a response was
72675// returned at all) in error.(*googleapi.Error).Header. Use
72676// googleapi.IsNotModified to check whether the returned error was
72677// because http.StatusNotModified was returned.
72678func (c *HttpsHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheck, error) {
72679	gensupport.SetOptions(c.urlParams_, opts...)
72680	res, err := c.doRequest("json")
72681	if res != nil && res.StatusCode == http.StatusNotModified {
72682		if res.Body != nil {
72683			res.Body.Close()
72684		}
72685		return nil, &googleapi.Error{
72686			Code:   res.StatusCode,
72687			Header: res.Header,
72688		}
72689	}
72690	if err != nil {
72691		return nil, err
72692	}
72693	defer googleapi.CloseBody(res)
72694	if err := googleapi.CheckResponse(res); err != nil {
72695		return nil, err
72696	}
72697	ret := &HttpsHealthCheck{
72698		ServerResponse: googleapi.ServerResponse{
72699			Header:         res.Header,
72700			HTTPStatusCode: res.StatusCode,
72701		},
72702	}
72703	target := &ret
72704	if err := gensupport.DecodeResponse(target, res); err != nil {
72705		return nil, err
72706	}
72707	return ret, nil
72708	// {
72709	//   "description": "Returns the specified HttpsHealthCheck resource. Gets a list of available HTTPS health checks by making a list() request.",
72710	//   "httpMethod": "GET",
72711	//   "id": "compute.httpsHealthChecks.get",
72712	//   "parameterOrder": [
72713	//     "project",
72714	//     "httpsHealthCheck"
72715	//   ],
72716	//   "parameters": {
72717	//     "httpsHealthCheck": {
72718	//       "description": "Name of the HttpsHealthCheck resource to return.",
72719	//       "location": "path",
72720	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72721	//       "required": true,
72722	//       "type": "string"
72723	//     },
72724	//     "project": {
72725	//       "description": "Project ID for this request.",
72726	//       "location": "path",
72727	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72728	//       "required": true,
72729	//       "type": "string"
72730	//     }
72731	//   },
72732	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
72733	//   "response": {
72734	//     "$ref": "HttpsHealthCheck"
72735	//   },
72736	//   "scopes": [
72737	//     "https://www.googleapis.com/auth/cloud-platform",
72738	//     "https://www.googleapis.com/auth/compute",
72739	//     "https://www.googleapis.com/auth/compute.readonly"
72740	//   ]
72741	// }
72742
72743}
72744
72745// method id "compute.httpsHealthChecks.insert":
72746
72747type HttpsHealthChecksInsertCall struct {
72748	s                *Service
72749	project          string
72750	httpshealthcheck *HttpsHealthCheck
72751	urlParams_       gensupport.URLParams
72752	ctx_             context.Context
72753	header_          http.Header
72754}
72755
72756// Insert: Creates a HttpsHealthCheck resource in the specified project
72757// using the data included in the request.
72758func (r *HttpsHealthChecksService) Insert(project string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksInsertCall {
72759	c := &HttpsHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72760	c.project = project
72761	c.httpshealthcheck = httpshealthcheck
72762	return c
72763}
72764
72765// RequestId sets the optional parameter "requestId": An optional
72766// request ID to identify requests. Specify a unique request ID so that
72767// if you must retry your request, the server will know to ignore the
72768// request if it has already been completed.
72769//
72770// For example, consider a situation where you make an initial request
72771// and the request times out. If you make the request again with the
72772// same request ID, the server can check if original operation with the
72773// same request ID was received, and if so, will ignore the second
72774// request. This prevents clients from accidentally creating duplicate
72775// commitments.
72776//
72777// The request ID must be a valid UUID with the exception that zero UUID
72778// is not supported (00000000-0000-0000-0000-000000000000).
72779func (c *HttpsHealthChecksInsertCall) RequestId(requestId string) *HttpsHealthChecksInsertCall {
72780	c.urlParams_.Set("requestId", requestId)
72781	return c
72782}
72783
72784// Fields allows partial responses to be retrieved. See
72785// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72786// for more information.
72787func (c *HttpsHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpsHealthChecksInsertCall {
72788	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72789	return c
72790}
72791
72792// Context sets the context to be used in this call's Do method. Any
72793// pending HTTP request will be aborted if the provided context is
72794// canceled.
72795func (c *HttpsHealthChecksInsertCall) Context(ctx context.Context) *HttpsHealthChecksInsertCall {
72796	c.ctx_ = ctx
72797	return c
72798}
72799
72800// Header returns an http.Header that can be modified by the caller to
72801// add HTTP headers to the request.
72802func (c *HttpsHealthChecksInsertCall) Header() http.Header {
72803	if c.header_ == nil {
72804		c.header_ = make(http.Header)
72805	}
72806	return c.header_
72807}
72808
72809func (c *HttpsHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
72810	reqHeaders := make(http.Header)
72811	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
72812	for k, v := range c.header_ {
72813		reqHeaders[k] = v
72814	}
72815	reqHeaders.Set("User-Agent", c.s.userAgent())
72816	var body io.Reader = nil
72817	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
72818	if err != nil {
72819		return nil, err
72820	}
72821	reqHeaders.Set("Content-Type", "application/json")
72822	c.urlParams_.Set("alt", alt)
72823	c.urlParams_.Set("prettyPrint", "false")
72824	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks")
72825	urls += "?" + c.urlParams_.Encode()
72826	req, err := http.NewRequest("POST", urls, body)
72827	if err != nil {
72828		return nil, err
72829	}
72830	req.Header = reqHeaders
72831	googleapi.Expand(req.URL, map[string]string{
72832		"project": c.project,
72833	})
72834	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72835}
72836
72837// Do executes the "compute.httpsHealthChecks.insert" call.
72838// Exactly one of *Operation or error will be non-nil. Any non-2xx
72839// status code is an error. Response headers are in either
72840// *Operation.ServerResponse.Header or (if a response was returned at
72841// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72842// to check whether the returned error was because
72843// http.StatusNotModified was returned.
72844func (c *HttpsHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72845	gensupport.SetOptions(c.urlParams_, opts...)
72846	res, err := c.doRequest("json")
72847	if res != nil && res.StatusCode == http.StatusNotModified {
72848		if res.Body != nil {
72849			res.Body.Close()
72850		}
72851		return nil, &googleapi.Error{
72852			Code:   res.StatusCode,
72853			Header: res.Header,
72854		}
72855	}
72856	if err != nil {
72857		return nil, err
72858	}
72859	defer googleapi.CloseBody(res)
72860	if err := googleapi.CheckResponse(res); err != nil {
72861		return nil, err
72862	}
72863	ret := &Operation{
72864		ServerResponse: googleapi.ServerResponse{
72865			Header:         res.Header,
72866			HTTPStatusCode: res.StatusCode,
72867		},
72868	}
72869	target := &ret
72870	if err := gensupport.DecodeResponse(target, res); err != nil {
72871		return nil, err
72872	}
72873	return ret, nil
72874	// {
72875	//   "description": "Creates a HttpsHealthCheck resource in the specified project using the data included in the request.",
72876	//   "httpMethod": "POST",
72877	//   "id": "compute.httpsHealthChecks.insert",
72878	//   "parameterOrder": [
72879	//     "project"
72880	//   ],
72881	//   "parameters": {
72882	//     "project": {
72883	//       "description": "Project ID for this request.",
72884	//       "location": "path",
72885	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72886	//       "required": true,
72887	//       "type": "string"
72888	//     },
72889	//     "requestId": {
72890	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72891	//       "location": "query",
72892	//       "type": "string"
72893	//     }
72894	//   },
72895	//   "path": "{project}/global/httpsHealthChecks",
72896	//   "request": {
72897	//     "$ref": "HttpsHealthCheck"
72898	//   },
72899	//   "response": {
72900	//     "$ref": "Operation"
72901	//   },
72902	//   "scopes": [
72903	//     "https://www.googleapis.com/auth/cloud-platform",
72904	//     "https://www.googleapis.com/auth/compute"
72905	//   ]
72906	// }
72907
72908}
72909
72910// method id "compute.httpsHealthChecks.list":
72911
72912type HttpsHealthChecksListCall struct {
72913	s            *Service
72914	project      string
72915	urlParams_   gensupport.URLParams
72916	ifNoneMatch_ string
72917	ctx_         context.Context
72918	header_      http.Header
72919}
72920
72921// List: Retrieves the list of HttpsHealthCheck resources available to
72922// the specified project.
72923func (r *HttpsHealthChecksService) List(project string) *HttpsHealthChecksListCall {
72924	c := &HttpsHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72925	c.project = project
72926	return c
72927}
72928
72929// Filter sets the optional parameter "filter": A filter expression that
72930// filters resources listed in the response. The expression must specify
72931// the field name, a comparison operator, and the value that you want to
72932// use for filtering. The value must be a string, a number, or a
72933// boolean. The comparison operator must be either =, !=, >, or <.
72934//
72935// For example, if you are filtering Compute Engine instances, you can
72936// exclude instances named example-instance by specifying name !=
72937// example-instance.
72938//
72939// You can also filter nested fields. For example, you could specify
72940// scheduling.automaticRestart = false to include instances only if they
72941// are not scheduled for automatic restarts. You can use filtering on
72942// nested fields to filter based on resource labels.
72943//
72944// To filter on multiple expressions, provide each separate expression
72945// within parentheses. For example, (scheduling.automaticRestart = true)
72946// (cpuPlatform = "Intel Skylake"). By default, each expression is an
72947// AND expression. However, you can include AND and OR expressions
72948// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
72949// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
72950// true).
72951func (c *HttpsHealthChecksListCall) Filter(filter string) *HttpsHealthChecksListCall {
72952	c.urlParams_.Set("filter", filter)
72953	return c
72954}
72955
72956// MaxResults sets the optional parameter "maxResults": The maximum
72957// number of results per page that should be returned. If the number of
72958// available results is larger than maxResults, Compute Engine returns a
72959// nextPageToken that can be used to get the next page of results in
72960// subsequent list requests. Acceptable values are 0 to 500, inclusive.
72961// (Default: 500)
72962func (c *HttpsHealthChecksListCall) MaxResults(maxResults int64) *HttpsHealthChecksListCall {
72963	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
72964	return c
72965}
72966
72967// OrderBy sets the optional parameter "orderBy": Sorts list results by
72968// a certain order. By default, results are returned in alphanumerical
72969// order based on the resource name.
72970//
72971// You can also sort results in descending order based on the creation
72972// timestamp using orderBy="creationTimestamp desc". This sorts results
72973// based on the creationTimestamp field in reverse chronological order
72974// (newest result first). Use this to sort resources like operations so
72975// that the newest operation is returned first.
72976//
72977// Currently, only sorting by name or creationTimestamp desc is
72978// supported.
72979func (c *HttpsHealthChecksListCall) OrderBy(orderBy string) *HttpsHealthChecksListCall {
72980	c.urlParams_.Set("orderBy", orderBy)
72981	return c
72982}
72983
72984// PageToken sets the optional parameter "pageToken": Specifies a page
72985// token to use. Set pageToken to the nextPageToken returned by a
72986// previous list request to get the next page of results.
72987func (c *HttpsHealthChecksListCall) PageToken(pageToken string) *HttpsHealthChecksListCall {
72988	c.urlParams_.Set("pageToken", pageToken)
72989	return c
72990}
72991
72992// Fields allows partial responses to be retrieved. See
72993// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72994// for more information.
72995func (c *HttpsHealthChecksListCall) Fields(s ...googleapi.Field) *HttpsHealthChecksListCall {
72996	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72997	return c
72998}
72999
73000// IfNoneMatch sets the optional parameter which makes the operation
73001// fail if the object's ETag matches the given value. This is useful for
73002// getting updates only after the object has changed since the last
73003// request. Use googleapi.IsNotModified to check whether the response
73004// error from Do is the result of In-None-Match.
73005func (c *HttpsHealthChecksListCall) IfNoneMatch(entityTag string) *HttpsHealthChecksListCall {
73006	c.ifNoneMatch_ = entityTag
73007	return c
73008}
73009
73010// Context sets the context to be used in this call's Do method. Any
73011// pending HTTP request will be aborted if the provided context is
73012// canceled.
73013func (c *HttpsHealthChecksListCall) Context(ctx context.Context) *HttpsHealthChecksListCall {
73014	c.ctx_ = ctx
73015	return c
73016}
73017
73018// Header returns an http.Header that can be modified by the caller to
73019// add HTTP headers to the request.
73020func (c *HttpsHealthChecksListCall) Header() http.Header {
73021	if c.header_ == nil {
73022		c.header_ = make(http.Header)
73023	}
73024	return c.header_
73025}
73026
73027func (c *HttpsHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
73028	reqHeaders := make(http.Header)
73029	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
73030	for k, v := range c.header_ {
73031		reqHeaders[k] = v
73032	}
73033	reqHeaders.Set("User-Agent", c.s.userAgent())
73034	if c.ifNoneMatch_ != "" {
73035		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73036	}
73037	var body io.Reader = nil
73038	c.urlParams_.Set("alt", alt)
73039	c.urlParams_.Set("prettyPrint", "false")
73040	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks")
73041	urls += "?" + c.urlParams_.Encode()
73042	req, err := http.NewRequest("GET", urls, body)
73043	if err != nil {
73044		return nil, err
73045	}
73046	req.Header = reqHeaders
73047	googleapi.Expand(req.URL, map[string]string{
73048		"project": c.project,
73049	})
73050	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73051}
73052
73053// Do executes the "compute.httpsHealthChecks.list" call.
73054// Exactly one of *HttpsHealthCheckList or error will be non-nil. Any
73055// non-2xx status code is an error. Response headers are in either
73056// *HttpsHealthCheckList.ServerResponse.Header or (if a response was
73057// returned at all) in error.(*googleapi.Error).Header. Use
73058// googleapi.IsNotModified to check whether the returned error was
73059// because http.StatusNotModified was returned.
73060func (c *HttpsHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheckList, error) {
73061	gensupport.SetOptions(c.urlParams_, opts...)
73062	res, err := c.doRequest("json")
73063	if res != nil && res.StatusCode == http.StatusNotModified {
73064		if res.Body != nil {
73065			res.Body.Close()
73066		}
73067		return nil, &googleapi.Error{
73068			Code:   res.StatusCode,
73069			Header: res.Header,
73070		}
73071	}
73072	if err != nil {
73073		return nil, err
73074	}
73075	defer googleapi.CloseBody(res)
73076	if err := googleapi.CheckResponse(res); err != nil {
73077		return nil, err
73078	}
73079	ret := &HttpsHealthCheckList{
73080		ServerResponse: googleapi.ServerResponse{
73081			Header:         res.Header,
73082			HTTPStatusCode: res.StatusCode,
73083		},
73084	}
73085	target := &ret
73086	if err := gensupport.DecodeResponse(target, res); err != nil {
73087		return nil, err
73088	}
73089	return ret, nil
73090	// {
73091	//   "description": "Retrieves the list of HttpsHealthCheck resources available to the specified project.",
73092	//   "httpMethod": "GET",
73093	//   "id": "compute.httpsHealthChecks.list",
73094	//   "parameterOrder": [
73095	//     "project"
73096	//   ],
73097	//   "parameters": {
73098	//     "filter": {
73099	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
73100	//       "location": "query",
73101	//       "type": "string"
73102	//     },
73103	//     "maxResults": {
73104	//       "default": "500",
73105	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
73106	//       "format": "uint32",
73107	//       "location": "query",
73108	//       "minimum": "0",
73109	//       "type": "integer"
73110	//     },
73111	//     "orderBy": {
73112	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
73113	//       "location": "query",
73114	//       "type": "string"
73115	//     },
73116	//     "pageToken": {
73117	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
73118	//       "location": "query",
73119	//       "type": "string"
73120	//     },
73121	//     "project": {
73122	//       "description": "Project ID for this request.",
73123	//       "location": "path",
73124	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73125	//       "required": true,
73126	//       "type": "string"
73127	//     }
73128	//   },
73129	//   "path": "{project}/global/httpsHealthChecks",
73130	//   "response": {
73131	//     "$ref": "HttpsHealthCheckList"
73132	//   },
73133	//   "scopes": [
73134	//     "https://www.googleapis.com/auth/cloud-platform",
73135	//     "https://www.googleapis.com/auth/compute",
73136	//     "https://www.googleapis.com/auth/compute.readonly"
73137	//   ]
73138	// }
73139
73140}
73141
73142// Pages invokes f for each page of results.
73143// A non-nil error returned from f will halt the iteration.
73144// The provided context supersedes any context provided to the Context method.
73145func (c *HttpsHealthChecksListCall) Pages(ctx context.Context, f func(*HttpsHealthCheckList) error) error {
73146	c.ctx_ = ctx
73147	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
73148	for {
73149		x, err := c.Do()
73150		if err != nil {
73151			return err
73152		}
73153		if err := f(x); err != nil {
73154			return err
73155		}
73156		if x.NextPageToken == "" {
73157			return nil
73158		}
73159		c.PageToken(x.NextPageToken)
73160	}
73161}
73162
73163// method id "compute.httpsHealthChecks.patch":
73164
73165type HttpsHealthChecksPatchCall struct {
73166	s                *Service
73167	project          string
73168	httpsHealthCheck string
73169	httpshealthcheck *HttpsHealthCheck
73170	urlParams_       gensupport.URLParams
73171	ctx_             context.Context
73172	header_          http.Header
73173}
73174
73175// Patch: Updates a HttpsHealthCheck resource in the specified project
73176// using the data included in the request. This method supports PATCH
73177// semantics and uses the JSON merge patch format and processing rules.
73178func (r *HttpsHealthChecksService) Patch(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksPatchCall {
73179	c := &HttpsHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73180	c.project = project
73181	c.httpsHealthCheck = httpsHealthCheck
73182	c.httpshealthcheck = httpshealthcheck
73183	return c
73184}
73185
73186// RequestId sets the optional parameter "requestId": An optional
73187// request ID to identify requests. Specify a unique request ID so that
73188// if you must retry your request, the server will know to ignore the
73189// request if it has already been completed.
73190//
73191// For example, consider a situation where you make an initial request
73192// and the request times out. If you make the request again with the
73193// same request ID, the server can check if original operation with the
73194// same request ID was received, and if so, will ignore the second
73195// request. This prevents clients from accidentally creating duplicate
73196// commitments.
73197//
73198// The request ID must be a valid UUID with the exception that zero UUID
73199// is not supported (00000000-0000-0000-0000-000000000000).
73200func (c *HttpsHealthChecksPatchCall) RequestId(requestId string) *HttpsHealthChecksPatchCall {
73201	c.urlParams_.Set("requestId", requestId)
73202	return c
73203}
73204
73205// Fields allows partial responses to be retrieved. See
73206// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73207// for more information.
73208func (c *HttpsHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpsHealthChecksPatchCall {
73209	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73210	return c
73211}
73212
73213// Context sets the context to be used in this call's Do method. Any
73214// pending HTTP request will be aborted if the provided context is
73215// canceled.
73216func (c *HttpsHealthChecksPatchCall) Context(ctx context.Context) *HttpsHealthChecksPatchCall {
73217	c.ctx_ = ctx
73218	return c
73219}
73220
73221// Header returns an http.Header that can be modified by the caller to
73222// add HTTP headers to the request.
73223func (c *HttpsHealthChecksPatchCall) Header() http.Header {
73224	if c.header_ == nil {
73225		c.header_ = make(http.Header)
73226	}
73227	return c.header_
73228}
73229
73230func (c *HttpsHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
73231	reqHeaders := make(http.Header)
73232	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
73233	for k, v := range c.header_ {
73234		reqHeaders[k] = v
73235	}
73236	reqHeaders.Set("User-Agent", c.s.userAgent())
73237	var body io.Reader = nil
73238	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
73239	if err != nil {
73240		return nil, err
73241	}
73242	reqHeaders.Set("Content-Type", "application/json")
73243	c.urlParams_.Set("alt", alt)
73244	c.urlParams_.Set("prettyPrint", "false")
73245	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
73246	urls += "?" + c.urlParams_.Encode()
73247	req, err := http.NewRequest("PATCH", urls, body)
73248	if err != nil {
73249		return nil, err
73250	}
73251	req.Header = reqHeaders
73252	googleapi.Expand(req.URL, map[string]string{
73253		"project":          c.project,
73254		"httpsHealthCheck": c.httpsHealthCheck,
73255	})
73256	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73257}
73258
73259// Do executes the "compute.httpsHealthChecks.patch" call.
73260// Exactly one of *Operation or error will be non-nil. Any non-2xx
73261// status code is an error. Response headers are in either
73262// *Operation.ServerResponse.Header or (if a response was returned at
73263// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73264// to check whether the returned error was because
73265// http.StatusNotModified was returned.
73266func (c *HttpsHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73267	gensupport.SetOptions(c.urlParams_, opts...)
73268	res, err := c.doRequest("json")
73269	if res != nil && res.StatusCode == http.StatusNotModified {
73270		if res.Body != nil {
73271			res.Body.Close()
73272		}
73273		return nil, &googleapi.Error{
73274			Code:   res.StatusCode,
73275			Header: res.Header,
73276		}
73277	}
73278	if err != nil {
73279		return nil, err
73280	}
73281	defer googleapi.CloseBody(res)
73282	if err := googleapi.CheckResponse(res); err != nil {
73283		return nil, err
73284	}
73285	ret := &Operation{
73286		ServerResponse: googleapi.ServerResponse{
73287			Header:         res.Header,
73288			HTTPStatusCode: res.StatusCode,
73289		},
73290	}
73291	target := &ret
73292	if err := gensupport.DecodeResponse(target, res); err != nil {
73293		return nil, err
73294	}
73295	return ret, nil
73296	// {
73297	//   "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.",
73298	//   "httpMethod": "PATCH",
73299	//   "id": "compute.httpsHealthChecks.patch",
73300	//   "parameterOrder": [
73301	//     "project",
73302	//     "httpsHealthCheck"
73303	//   ],
73304	//   "parameters": {
73305	//     "httpsHealthCheck": {
73306	//       "description": "Name of the HttpsHealthCheck resource to patch.",
73307	//       "location": "path",
73308	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73309	//       "required": true,
73310	//       "type": "string"
73311	//     },
73312	//     "project": {
73313	//       "description": "Project ID for this request.",
73314	//       "location": "path",
73315	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73316	//       "required": true,
73317	//       "type": "string"
73318	//     },
73319	//     "requestId": {
73320	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73321	//       "location": "query",
73322	//       "type": "string"
73323	//     }
73324	//   },
73325	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
73326	//   "request": {
73327	//     "$ref": "HttpsHealthCheck"
73328	//   },
73329	//   "response": {
73330	//     "$ref": "Operation"
73331	//   },
73332	//   "scopes": [
73333	//     "https://www.googleapis.com/auth/cloud-platform",
73334	//     "https://www.googleapis.com/auth/compute"
73335	//   ]
73336	// }
73337
73338}
73339
73340// method id "compute.httpsHealthChecks.testIamPermissions":
73341
73342type HttpsHealthChecksTestIamPermissionsCall struct {
73343	s                      *Service
73344	project                string
73345	resource               string
73346	testpermissionsrequest *TestPermissionsRequest
73347	urlParams_             gensupport.URLParams
73348	ctx_                   context.Context
73349	header_                http.Header
73350}
73351
73352// TestIamPermissions: Returns permissions that a caller has on the
73353// specified resource.
73354func (r *HttpsHealthChecksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *HttpsHealthChecksTestIamPermissionsCall {
73355	c := &HttpsHealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73356	c.project = project
73357	c.resource = resource
73358	c.testpermissionsrequest = testpermissionsrequest
73359	return c
73360}
73361
73362// Fields allows partial responses to be retrieved. See
73363// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73364// for more information.
73365func (c *HttpsHealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *HttpsHealthChecksTestIamPermissionsCall {
73366	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73367	return c
73368}
73369
73370// Context sets the context to be used in this call's Do method. Any
73371// pending HTTP request will be aborted if the provided context is
73372// canceled.
73373func (c *HttpsHealthChecksTestIamPermissionsCall) Context(ctx context.Context) *HttpsHealthChecksTestIamPermissionsCall {
73374	c.ctx_ = ctx
73375	return c
73376}
73377
73378// Header returns an http.Header that can be modified by the caller to
73379// add HTTP headers to the request.
73380func (c *HttpsHealthChecksTestIamPermissionsCall) Header() http.Header {
73381	if c.header_ == nil {
73382		c.header_ = make(http.Header)
73383	}
73384	return c.header_
73385}
73386
73387func (c *HttpsHealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
73388	reqHeaders := make(http.Header)
73389	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
73390	for k, v := range c.header_ {
73391		reqHeaders[k] = v
73392	}
73393	reqHeaders.Set("User-Agent", c.s.userAgent())
73394	var body io.Reader = nil
73395	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
73396	if err != nil {
73397		return nil, err
73398	}
73399	reqHeaders.Set("Content-Type", "application/json")
73400	c.urlParams_.Set("alt", alt)
73401	c.urlParams_.Set("prettyPrint", "false")
73402	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{resource}/testIamPermissions")
73403	urls += "?" + c.urlParams_.Encode()
73404	req, err := http.NewRequest("POST", urls, body)
73405	if err != nil {
73406		return nil, err
73407	}
73408	req.Header = reqHeaders
73409	googleapi.Expand(req.URL, map[string]string{
73410		"project":  c.project,
73411		"resource": c.resource,
73412	})
73413	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73414}
73415
73416// Do executes the "compute.httpsHealthChecks.testIamPermissions" call.
73417// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
73418// non-2xx status code is an error. Response headers are in either
73419// *TestPermissionsResponse.ServerResponse.Header or (if a response was
73420// returned at all) in error.(*googleapi.Error).Header. Use
73421// googleapi.IsNotModified to check whether the returned error was
73422// because http.StatusNotModified was returned.
73423func (c *HttpsHealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
73424	gensupport.SetOptions(c.urlParams_, opts...)
73425	res, err := c.doRequest("json")
73426	if res != nil && res.StatusCode == http.StatusNotModified {
73427		if res.Body != nil {
73428			res.Body.Close()
73429		}
73430		return nil, &googleapi.Error{
73431			Code:   res.StatusCode,
73432			Header: res.Header,
73433		}
73434	}
73435	if err != nil {
73436		return nil, err
73437	}
73438	defer googleapi.CloseBody(res)
73439	if err := googleapi.CheckResponse(res); err != nil {
73440		return nil, err
73441	}
73442	ret := &TestPermissionsResponse{
73443		ServerResponse: googleapi.ServerResponse{
73444			Header:         res.Header,
73445			HTTPStatusCode: res.StatusCode,
73446		},
73447	}
73448	target := &ret
73449	if err := gensupport.DecodeResponse(target, res); err != nil {
73450		return nil, err
73451	}
73452	return ret, nil
73453	// {
73454	//   "description": "Returns permissions that a caller has on the specified resource.",
73455	//   "httpMethod": "POST",
73456	//   "id": "compute.httpsHealthChecks.testIamPermissions",
73457	//   "parameterOrder": [
73458	//     "project",
73459	//     "resource"
73460	//   ],
73461	//   "parameters": {
73462	//     "project": {
73463	//       "description": "Project ID for this request.",
73464	//       "location": "path",
73465	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73466	//       "required": true,
73467	//       "type": "string"
73468	//     },
73469	//     "resource": {
73470	//       "description": "Name or id of the resource for this request.",
73471	//       "location": "path",
73472	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73473	//       "required": true,
73474	//       "type": "string"
73475	//     }
73476	//   },
73477	//   "path": "{project}/global/httpsHealthChecks/{resource}/testIamPermissions",
73478	//   "request": {
73479	//     "$ref": "TestPermissionsRequest"
73480	//   },
73481	//   "response": {
73482	//     "$ref": "TestPermissionsResponse"
73483	//   },
73484	//   "scopes": [
73485	//     "https://www.googleapis.com/auth/cloud-platform",
73486	//     "https://www.googleapis.com/auth/compute",
73487	//     "https://www.googleapis.com/auth/compute.readonly"
73488	//   ]
73489	// }
73490
73491}
73492
73493// method id "compute.httpsHealthChecks.update":
73494
73495type HttpsHealthChecksUpdateCall struct {
73496	s                *Service
73497	project          string
73498	httpsHealthCheck string
73499	httpshealthcheck *HttpsHealthCheck
73500	urlParams_       gensupport.URLParams
73501	ctx_             context.Context
73502	header_          http.Header
73503}
73504
73505// Update: Updates a HttpsHealthCheck resource in the specified project
73506// using the data included in the request.
73507func (r *HttpsHealthChecksService) Update(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksUpdateCall {
73508	c := &HttpsHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73509	c.project = project
73510	c.httpsHealthCheck = httpsHealthCheck
73511	c.httpshealthcheck = httpshealthcheck
73512	return c
73513}
73514
73515// RequestId sets the optional parameter "requestId": An optional
73516// request ID to identify requests. Specify a unique request ID so that
73517// if you must retry your request, the server will know to ignore the
73518// request if it has already been completed.
73519//
73520// For example, consider a situation where you make an initial request
73521// and the request times out. If you make the request again with the
73522// same request ID, the server can check if original operation with the
73523// same request ID was received, and if so, will ignore the second
73524// request. This prevents clients from accidentally creating duplicate
73525// commitments.
73526//
73527// The request ID must be a valid UUID with the exception that zero UUID
73528// is not supported (00000000-0000-0000-0000-000000000000).
73529func (c *HttpsHealthChecksUpdateCall) RequestId(requestId string) *HttpsHealthChecksUpdateCall {
73530	c.urlParams_.Set("requestId", requestId)
73531	return c
73532}
73533
73534// Fields allows partial responses to be retrieved. See
73535// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73536// for more information.
73537func (c *HttpsHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpsHealthChecksUpdateCall {
73538	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73539	return c
73540}
73541
73542// Context sets the context to be used in this call's Do method. Any
73543// pending HTTP request will be aborted if the provided context is
73544// canceled.
73545func (c *HttpsHealthChecksUpdateCall) Context(ctx context.Context) *HttpsHealthChecksUpdateCall {
73546	c.ctx_ = ctx
73547	return c
73548}
73549
73550// Header returns an http.Header that can be modified by the caller to
73551// add HTTP headers to the request.
73552func (c *HttpsHealthChecksUpdateCall) Header() http.Header {
73553	if c.header_ == nil {
73554		c.header_ = make(http.Header)
73555	}
73556	return c.header_
73557}
73558
73559func (c *HttpsHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
73560	reqHeaders := make(http.Header)
73561	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
73562	for k, v := range c.header_ {
73563		reqHeaders[k] = v
73564	}
73565	reqHeaders.Set("User-Agent", c.s.userAgent())
73566	var body io.Reader = nil
73567	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
73568	if err != nil {
73569		return nil, err
73570	}
73571	reqHeaders.Set("Content-Type", "application/json")
73572	c.urlParams_.Set("alt", alt)
73573	c.urlParams_.Set("prettyPrint", "false")
73574	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
73575	urls += "?" + c.urlParams_.Encode()
73576	req, err := http.NewRequest("PUT", urls, body)
73577	if err != nil {
73578		return nil, err
73579	}
73580	req.Header = reqHeaders
73581	googleapi.Expand(req.URL, map[string]string{
73582		"project":          c.project,
73583		"httpsHealthCheck": c.httpsHealthCheck,
73584	})
73585	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73586}
73587
73588// Do executes the "compute.httpsHealthChecks.update" call.
73589// Exactly one of *Operation or error will be non-nil. Any non-2xx
73590// status code is an error. Response headers are in either
73591// *Operation.ServerResponse.Header or (if a response was returned at
73592// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73593// to check whether the returned error was because
73594// http.StatusNotModified was returned.
73595func (c *HttpsHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73596	gensupport.SetOptions(c.urlParams_, opts...)
73597	res, err := c.doRequest("json")
73598	if res != nil && res.StatusCode == http.StatusNotModified {
73599		if res.Body != nil {
73600			res.Body.Close()
73601		}
73602		return nil, &googleapi.Error{
73603			Code:   res.StatusCode,
73604			Header: res.Header,
73605		}
73606	}
73607	if err != nil {
73608		return nil, err
73609	}
73610	defer googleapi.CloseBody(res)
73611	if err := googleapi.CheckResponse(res); err != nil {
73612		return nil, err
73613	}
73614	ret := &Operation{
73615		ServerResponse: googleapi.ServerResponse{
73616			Header:         res.Header,
73617			HTTPStatusCode: res.StatusCode,
73618		},
73619	}
73620	target := &ret
73621	if err := gensupport.DecodeResponse(target, res); err != nil {
73622		return nil, err
73623	}
73624	return ret, nil
73625	// {
73626	//   "description": "Updates a HttpsHealthCheck resource in the specified project using the data included in the request.",
73627	//   "httpMethod": "PUT",
73628	//   "id": "compute.httpsHealthChecks.update",
73629	//   "parameterOrder": [
73630	//     "project",
73631	//     "httpsHealthCheck"
73632	//   ],
73633	//   "parameters": {
73634	//     "httpsHealthCheck": {
73635	//       "description": "Name of the HttpsHealthCheck resource to update.",
73636	//       "location": "path",
73637	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73638	//       "required": true,
73639	//       "type": "string"
73640	//     },
73641	//     "project": {
73642	//       "description": "Project ID for this request.",
73643	//       "location": "path",
73644	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73645	//       "required": true,
73646	//       "type": "string"
73647	//     },
73648	//     "requestId": {
73649	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73650	//       "location": "query",
73651	//       "type": "string"
73652	//     }
73653	//   },
73654	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
73655	//   "request": {
73656	//     "$ref": "HttpsHealthCheck"
73657	//   },
73658	//   "response": {
73659	//     "$ref": "Operation"
73660	//   },
73661	//   "scopes": [
73662	//     "https://www.googleapis.com/auth/cloud-platform",
73663	//     "https://www.googleapis.com/auth/compute"
73664	//   ]
73665	// }
73666
73667}
73668
73669// method id "compute.images.delete":
73670
73671type ImagesDeleteCall struct {
73672	s          *Service
73673	project    string
73674	image      string
73675	urlParams_ gensupport.URLParams
73676	ctx_       context.Context
73677	header_    http.Header
73678}
73679
73680// Delete: Deletes the specified image.
73681// For details, see https://cloud.google.com/compute/docs/reference/latest/images/delete
73682func (r *ImagesService) Delete(project string, image string) *ImagesDeleteCall {
73683	c := &ImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73684	c.project = project
73685	c.image = image
73686	return c
73687}
73688
73689// RequestId sets the optional parameter "requestId": An optional
73690// request ID to identify requests. Specify a unique request ID so that
73691// if you must retry your request, the server will know to ignore the
73692// request if it has already been completed.
73693//
73694// For example, consider a situation where you make an initial request
73695// and the request times out. If you make the request again with the
73696// same request ID, the server can check if original operation with the
73697// same request ID was received, and if so, will ignore the second
73698// request. This prevents clients from accidentally creating duplicate
73699// commitments.
73700//
73701// The request ID must be a valid UUID with the exception that zero UUID
73702// is not supported (00000000-0000-0000-0000-000000000000).
73703func (c *ImagesDeleteCall) RequestId(requestId string) *ImagesDeleteCall {
73704	c.urlParams_.Set("requestId", requestId)
73705	return c
73706}
73707
73708// Fields allows partial responses to be retrieved. See
73709// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73710// for more information.
73711func (c *ImagesDeleteCall) Fields(s ...googleapi.Field) *ImagesDeleteCall {
73712	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73713	return c
73714}
73715
73716// Context sets the context to be used in this call's Do method. Any
73717// pending HTTP request will be aborted if the provided context is
73718// canceled.
73719func (c *ImagesDeleteCall) Context(ctx context.Context) *ImagesDeleteCall {
73720	c.ctx_ = ctx
73721	return c
73722}
73723
73724// Header returns an http.Header that can be modified by the caller to
73725// add HTTP headers to the request.
73726func (c *ImagesDeleteCall) Header() http.Header {
73727	if c.header_ == nil {
73728		c.header_ = make(http.Header)
73729	}
73730	return c.header_
73731}
73732
73733func (c *ImagesDeleteCall) doRequest(alt string) (*http.Response, error) {
73734	reqHeaders := make(http.Header)
73735	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
73736	for k, v := range c.header_ {
73737		reqHeaders[k] = v
73738	}
73739	reqHeaders.Set("User-Agent", c.s.userAgent())
73740	var body io.Reader = nil
73741	c.urlParams_.Set("alt", alt)
73742	c.urlParams_.Set("prettyPrint", "false")
73743	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}")
73744	urls += "?" + c.urlParams_.Encode()
73745	req, err := http.NewRequest("DELETE", urls, body)
73746	if err != nil {
73747		return nil, err
73748	}
73749	req.Header = reqHeaders
73750	googleapi.Expand(req.URL, map[string]string{
73751		"project": c.project,
73752		"image":   c.image,
73753	})
73754	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73755}
73756
73757// Do executes the "compute.images.delete" call.
73758// Exactly one of *Operation or error will be non-nil. Any non-2xx
73759// status code is an error. Response headers are in either
73760// *Operation.ServerResponse.Header or (if a response was returned at
73761// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73762// to check whether the returned error was because
73763// http.StatusNotModified was returned.
73764func (c *ImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73765	gensupport.SetOptions(c.urlParams_, opts...)
73766	res, err := c.doRequest("json")
73767	if res != nil && res.StatusCode == http.StatusNotModified {
73768		if res.Body != nil {
73769			res.Body.Close()
73770		}
73771		return nil, &googleapi.Error{
73772			Code:   res.StatusCode,
73773			Header: res.Header,
73774		}
73775	}
73776	if err != nil {
73777		return nil, err
73778	}
73779	defer googleapi.CloseBody(res)
73780	if err := googleapi.CheckResponse(res); err != nil {
73781		return nil, err
73782	}
73783	ret := &Operation{
73784		ServerResponse: googleapi.ServerResponse{
73785			Header:         res.Header,
73786			HTTPStatusCode: res.StatusCode,
73787		},
73788	}
73789	target := &ret
73790	if err := gensupport.DecodeResponse(target, res); err != nil {
73791		return nil, err
73792	}
73793	return ret, nil
73794	// {
73795	//   "description": "Deletes the specified image.",
73796	//   "httpMethod": "DELETE",
73797	//   "id": "compute.images.delete",
73798	//   "parameterOrder": [
73799	//     "project",
73800	//     "image"
73801	//   ],
73802	//   "parameters": {
73803	//     "image": {
73804	//       "description": "Name of the image resource to delete.",
73805	//       "location": "path",
73806	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73807	//       "required": true,
73808	//       "type": "string"
73809	//     },
73810	//     "project": {
73811	//       "description": "Project ID for this request.",
73812	//       "location": "path",
73813	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73814	//       "required": true,
73815	//       "type": "string"
73816	//     },
73817	//     "requestId": {
73818	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73819	//       "location": "query",
73820	//       "type": "string"
73821	//     }
73822	//   },
73823	//   "path": "{project}/global/images/{image}",
73824	//   "response": {
73825	//     "$ref": "Operation"
73826	//   },
73827	//   "scopes": [
73828	//     "https://www.googleapis.com/auth/cloud-platform",
73829	//     "https://www.googleapis.com/auth/compute"
73830	//   ]
73831	// }
73832
73833}
73834
73835// method id "compute.images.deprecate":
73836
73837type ImagesDeprecateCall struct {
73838	s                 *Service
73839	project           string
73840	image             string
73841	deprecationstatus *DeprecationStatus
73842	urlParams_        gensupport.URLParams
73843	ctx_              context.Context
73844	header_           http.Header
73845}
73846
73847// Deprecate: Sets the deprecation status of an image.
73848//
73849// If an empty request body is given, clears the deprecation status
73850// instead.
73851// For details, see https://cloud.google.com/compute/docs/reference/latest/images/deprecate
73852func (r *ImagesService) Deprecate(project string, image string, deprecationstatus *DeprecationStatus) *ImagesDeprecateCall {
73853	c := &ImagesDeprecateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73854	c.project = project
73855	c.image = image
73856	c.deprecationstatus = deprecationstatus
73857	return c
73858}
73859
73860// RequestId sets the optional parameter "requestId": An optional
73861// request ID to identify requests. Specify a unique request ID so that
73862// if you must retry your request, the server will know to ignore the
73863// request if it has already been completed.
73864//
73865// For example, consider a situation where you make an initial request
73866// and the request times out. If you make the request again with the
73867// same request ID, the server can check if original operation with the
73868// same request ID was received, and if so, will ignore the second
73869// request. This prevents clients from accidentally creating duplicate
73870// commitments.
73871//
73872// The request ID must be a valid UUID with the exception that zero UUID
73873// is not supported (00000000-0000-0000-0000-000000000000).
73874func (c *ImagesDeprecateCall) RequestId(requestId string) *ImagesDeprecateCall {
73875	c.urlParams_.Set("requestId", requestId)
73876	return c
73877}
73878
73879// Fields allows partial responses to be retrieved. See
73880// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73881// for more information.
73882func (c *ImagesDeprecateCall) Fields(s ...googleapi.Field) *ImagesDeprecateCall {
73883	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73884	return c
73885}
73886
73887// Context sets the context to be used in this call's Do method. Any
73888// pending HTTP request will be aborted if the provided context is
73889// canceled.
73890func (c *ImagesDeprecateCall) Context(ctx context.Context) *ImagesDeprecateCall {
73891	c.ctx_ = ctx
73892	return c
73893}
73894
73895// Header returns an http.Header that can be modified by the caller to
73896// add HTTP headers to the request.
73897func (c *ImagesDeprecateCall) Header() http.Header {
73898	if c.header_ == nil {
73899		c.header_ = make(http.Header)
73900	}
73901	return c.header_
73902}
73903
73904func (c *ImagesDeprecateCall) doRequest(alt string) (*http.Response, error) {
73905	reqHeaders := make(http.Header)
73906	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
73907	for k, v := range c.header_ {
73908		reqHeaders[k] = v
73909	}
73910	reqHeaders.Set("User-Agent", c.s.userAgent())
73911	var body io.Reader = nil
73912	body, err := googleapi.WithoutDataWrapper.JSONReader(c.deprecationstatus)
73913	if err != nil {
73914		return nil, err
73915	}
73916	reqHeaders.Set("Content-Type", "application/json")
73917	c.urlParams_.Set("alt", alt)
73918	c.urlParams_.Set("prettyPrint", "false")
73919	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}/deprecate")
73920	urls += "?" + c.urlParams_.Encode()
73921	req, err := http.NewRequest("POST", urls, body)
73922	if err != nil {
73923		return nil, err
73924	}
73925	req.Header = reqHeaders
73926	googleapi.Expand(req.URL, map[string]string{
73927		"project": c.project,
73928		"image":   c.image,
73929	})
73930	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73931}
73932
73933// Do executes the "compute.images.deprecate" call.
73934// Exactly one of *Operation or error will be non-nil. Any non-2xx
73935// status code is an error. Response headers are in either
73936// *Operation.ServerResponse.Header or (if a response was returned at
73937// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73938// to check whether the returned error was because
73939// http.StatusNotModified was returned.
73940func (c *ImagesDeprecateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73941	gensupport.SetOptions(c.urlParams_, opts...)
73942	res, err := c.doRequest("json")
73943	if res != nil && res.StatusCode == http.StatusNotModified {
73944		if res.Body != nil {
73945			res.Body.Close()
73946		}
73947		return nil, &googleapi.Error{
73948			Code:   res.StatusCode,
73949			Header: res.Header,
73950		}
73951	}
73952	if err != nil {
73953		return nil, err
73954	}
73955	defer googleapi.CloseBody(res)
73956	if err := googleapi.CheckResponse(res); err != nil {
73957		return nil, err
73958	}
73959	ret := &Operation{
73960		ServerResponse: googleapi.ServerResponse{
73961			Header:         res.Header,
73962			HTTPStatusCode: res.StatusCode,
73963		},
73964	}
73965	target := &ret
73966	if err := gensupport.DecodeResponse(target, res); err != nil {
73967		return nil, err
73968	}
73969	return ret, nil
73970	// {
73971	//   "description": "Sets the deprecation status of an image.\n\nIf an empty request body is given, clears the deprecation status instead.",
73972	//   "httpMethod": "POST",
73973	//   "id": "compute.images.deprecate",
73974	//   "parameterOrder": [
73975	//     "project",
73976	//     "image"
73977	//   ],
73978	//   "parameters": {
73979	//     "image": {
73980	//       "description": "Image name.",
73981	//       "location": "path",
73982	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73983	//       "required": true,
73984	//       "type": "string"
73985	//     },
73986	//     "project": {
73987	//       "description": "Project ID for this request.",
73988	//       "location": "path",
73989	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73990	//       "required": true,
73991	//       "type": "string"
73992	//     },
73993	//     "requestId": {
73994	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73995	//       "location": "query",
73996	//       "type": "string"
73997	//     }
73998	//   },
73999	//   "path": "{project}/global/images/{image}/deprecate",
74000	//   "request": {
74001	//     "$ref": "DeprecationStatus"
74002	//   },
74003	//   "response": {
74004	//     "$ref": "Operation"
74005	//   },
74006	//   "scopes": [
74007	//     "https://www.googleapis.com/auth/cloud-platform",
74008	//     "https://www.googleapis.com/auth/compute"
74009	//   ]
74010	// }
74011
74012}
74013
74014// method id "compute.images.get":
74015
74016type ImagesGetCall struct {
74017	s            *Service
74018	project      string
74019	image        string
74020	urlParams_   gensupport.URLParams
74021	ifNoneMatch_ string
74022	ctx_         context.Context
74023	header_      http.Header
74024}
74025
74026// Get: Returns the specified image. Gets a list of available images by
74027// making a list() request.
74028// For details, see https://cloud.google.com/compute/docs/reference/latest/images/get
74029func (r *ImagesService) Get(project string, image string) *ImagesGetCall {
74030	c := &ImagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74031	c.project = project
74032	c.image = image
74033	return c
74034}
74035
74036// Fields allows partial responses to be retrieved. See
74037// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74038// for more information.
74039func (c *ImagesGetCall) Fields(s ...googleapi.Field) *ImagesGetCall {
74040	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74041	return c
74042}
74043
74044// IfNoneMatch sets the optional parameter which makes the operation
74045// fail if the object's ETag matches the given value. This is useful for
74046// getting updates only after the object has changed since the last
74047// request. Use googleapi.IsNotModified to check whether the response
74048// error from Do is the result of In-None-Match.
74049func (c *ImagesGetCall) IfNoneMatch(entityTag string) *ImagesGetCall {
74050	c.ifNoneMatch_ = entityTag
74051	return c
74052}
74053
74054// Context sets the context to be used in this call's Do method. Any
74055// pending HTTP request will be aborted if the provided context is
74056// canceled.
74057func (c *ImagesGetCall) Context(ctx context.Context) *ImagesGetCall {
74058	c.ctx_ = ctx
74059	return c
74060}
74061
74062// Header returns an http.Header that can be modified by the caller to
74063// add HTTP headers to the request.
74064func (c *ImagesGetCall) Header() http.Header {
74065	if c.header_ == nil {
74066		c.header_ = make(http.Header)
74067	}
74068	return c.header_
74069}
74070
74071func (c *ImagesGetCall) doRequest(alt string) (*http.Response, error) {
74072	reqHeaders := make(http.Header)
74073	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
74074	for k, v := range c.header_ {
74075		reqHeaders[k] = v
74076	}
74077	reqHeaders.Set("User-Agent", c.s.userAgent())
74078	if c.ifNoneMatch_ != "" {
74079		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74080	}
74081	var body io.Reader = nil
74082	c.urlParams_.Set("alt", alt)
74083	c.urlParams_.Set("prettyPrint", "false")
74084	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}")
74085	urls += "?" + c.urlParams_.Encode()
74086	req, err := http.NewRequest("GET", urls, body)
74087	if err != nil {
74088		return nil, err
74089	}
74090	req.Header = reqHeaders
74091	googleapi.Expand(req.URL, map[string]string{
74092		"project": c.project,
74093		"image":   c.image,
74094	})
74095	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74096}
74097
74098// Do executes the "compute.images.get" call.
74099// Exactly one of *Image or error will be non-nil. Any non-2xx status
74100// code is an error. Response headers are in either
74101// *Image.ServerResponse.Header or (if a response was returned at all)
74102// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
74103// check whether the returned error was because http.StatusNotModified
74104// was returned.
74105func (c *ImagesGetCall) Do(opts ...googleapi.CallOption) (*Image, error) {
74106	gensupport.SetOptions(c.urlParams_, opts...)
74107	res, err := c.doRequest("json")
74108	if res != nil && res.StatusCode == http.StatusNotModified {
74109		if res.Body != nil {
74110			res.Body.Close()
74111		}
74112		return nil, &googleapi.Error{
74113			Code:   res.StatusCode,
74114			Header: res.Header,
74115		}
74116	}
74117	if err != nil {
74118		return nil, err
74119	}
74120	defer googleapi.CloseBody(res)
74121	if err := googleapi.CheckResponse(res); err != nil {
74122		return nil, err
74123	}
74124	ret := &Image{
74125		ServerResponse: googleapi.ServerResponse{
74126			Header:         res.Header,
74127			HTTPStatusCode: res.StatusCode,
74128		},
74129	}
74130	target := &ret
74131	if err := gensupport.DecodeResponse(target, res); err != nil {
74132		return nil, err
74133	}
74134	return ret, nil
74135	// {
74136	//   "description": "Returns the specified image. Gets a list of available images by making a list() request.",
74137	//   "httpMethod": "GET",
74138	//   "id": "compute.images.get",
74139	//   "parameterOrder": [
74140	//     "project",
74141	//     "image"
74142	//   ],
74143	//   "parameters": {
74144	//     "image": {
74145	//       "description": "Name of the image resource to return.",
74146	//       "location": "path",
74147	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74148	//       "required": true,
74149	//       "type": "string"
74150	//     },
74151	//     "project": {
74152	//       "description": "Project ID for this request.",
74153	//       "location": "path",
74154	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74155	//       "required": true,
74156	//       "type": "string"
74157	//     }
74158	//   },
74159	//   "path": "{project}/global/images/{image}",
74160	//   "response": {
74161	//     "$ref": "Image"
74162	//   },
74163	//   "scopes": [
74164	//     "https://www.googleapis.com/auth/cloud-platform",
74165	//     "https://www.googleapis.com/auth/compute",
74166	//     "https://www.googleapis.com/auth/compute.readonly"
74167	//   ]
74168	// }
74169
74170}
74171
74172// method id "compute.images.getFromFamily":
74173
74174type ImagesGetFromFamilyCall struct {
74175	s            *Service
74176	project      string
74177	family       string
74178	urlParams_   gensupport.URLParams
74179	ifNoneMatch_ string
74180	ctx_         context.Context
74181	header_      http.Header
74182}
74183
74184// GetFromFamily: Returns the latest image that is part of an image
74185// family and is not deprecated.
74186func (r *ImagesService) GetFromFamily(project string, family string) *ImagesGetFromFamilyCall {
74187	c := &ImagesGetFromFamilyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74188	c.project = project
74189	c.family = family
74190	return c
74191}
74192
74193// Fields allows partial responses to be retrieved. See
74194// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74195// for more information.
74196func (c *ImagesGetFromFamilyCall) Fields(s ...googleapi.Field) *ImagesGetFromFamilyCall {
74197	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74198	return c
74199}
74200
74201// IfNoneMatch sets the optional parameter which makes the operation
74202// fail if the object's ETag matches the given value. This is useful for
74203// getting updates only after the object has changed since the last
74204// request. Use googleapi.IsNotModified to check whether the response
74205// error from Do is the result of In-None-Match.
74206func (c *ImagesGetFromFamilyCall) IfNoneMatch(entityTag string) *ImagesGetFromFamilyCall {
74207	c.ifNoneMatch_ = entityTag
74208	return c
74209}
74210
74211// Context sets the context to be used in this call's Do method. Any
74212// pending HTTP request will be aborted if the provided context is
74213// canceled.
74214func (c *ImagesGetFromFamilyCall) Context(ctx context.Context) *ImagesGetFromFamilyCall {
74215	c.ctx_ = ctx
74216	return c
74217}
74218
74219// Header returns an http.Header that can be modified by the caller to
74220// add HTTP headers to the request.
74221func (c *ImagesGetFromFamilyCall) Header() http.Header {
74222	if c.header_ == nil {
74223		c.header_ = make(http.Header)
74224	}
74225	return c.header_
74226}
74227
74228func (c *ImagesGetFromFamilyCall) doRequest(alt string) (*http.Response, error) {
74229	reqHeaders := make(http.Header)
74230	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
74231	for k, v := range c.header_ {
74232		reqHeaders[k] = v
74233	}
74234	reqHeaders.Set("User-Agent", c.s.userAgent())
74235	if c.ifNoneMatch_ != "" {
74236		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74237	}
74238	var body io.Reader = nil
74239	c.urlParams_.Set("alt", alt)
74240	c.urlParams_.Set("prettyPrint", "false")
74241	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/family/{family}")
74242	urls += "?" + c.urlParams_.Encode()
74243	req, err := http.NewRequest("GET", urls, body)
74244	if err != nil {
74245		return nil, err
74246	}
74247	req.Header = reqHeaders
74248	googleapi.Expand(req.URL, map[string]string{
74249		"project": c.project,
74250		"family":  c.family,
74251	})
74252	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74253}
74254
74255// Do executes the "compute.images.getFromFamily" call.
74256// Exactly one of *Image or error will be non-nil. Any non-2xx status
74257// code is an error. Response headers are in either
74258// *Image.ServerResponse.Header or (if a response was returned at all)
74259// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
74260// check whether the returned error was because http.StatusNotModified
74261// was returned.
74262func (c *ImagesGetFromFamilyCall) Do(opts ...googleapi.CallOption) (*Image, error) {
74263	gensupport.SetOptions(c.urlParams_, opts...)
74264	res, err := c.doRequest("json")
74265	if res != nil && res.StatusCode == http.StatusNotModified {
74266		if res.Body != nil {
74267			res.Body.Close()
74268		}
74269		return nil, &googleapi.Error{
74270			Code:   res.StatusCode,
74271			Header: res.Header,
74272		}
74273	}
74274	if err != nil {
74275		return nil, err
74276	}
74277	defer googleapi.CloseBody(res)
74278	if err := googleapi.CheckResponse(res); err != nil {
74279		return nil, err
74280	}
74281	ret := &Image{
74282		ServerResponse: googleapi.ServerResponse{
74283			Header:         res.Header,
74284			HTTPStatusCode: res.StatusCode,
74285		},
74286	}
74287	target := &ret
74288	if err := gensupport.DecodeResponse(target, res); err != nil {
74289		return nil, err
74290	}
74291	return ret, nil
74292	// {
74293	//   "description": "Returns the latest image that is part of an image family and is not deprecated.",
74294	//   "httpMethod": "GET",
74295	//   "id": "compute.images.getFromFamily",
74296	//   "parameterOrder": [
74297	//     "project",
74298	//     "family"
74299	//   ],
74300	//   "parameters": {
74301	//     "family": {
74302	//       "description": "Name of the image family to search for.",
74303	//       "location": "path",
74304	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74305	//       "required": true,
74306	//       "type": "string"
74307	//     },
74308	//     "project": {
74309	//       "description": "Project ID for this request.",
74310	//       "location": "path",
74311	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74312	//       "required": true,
74313	//       "type": "string"
74314	//     }
74315	//   },
74316	//   "path": "{project}/global/images/family/{family}",
74317	//   "response": {
74318	//     "$ref": "Image"
74319	//   },
74320	//   "scopes": [
74321	//     "https://www.googleapis.com/auth/cloud-platform",
74322	//     "https://www.googleapis.com/auth/compute",
74323	//     "https://www.googleapis.com/auth/compute.readonly"
74324	//   ]
74325	// }
74326
74327}
74328
74329// method id "compute.images.getIamPolicy":
74330
74331type ImagesGetIamPolicyCall struct {
74332	s            *Service
74333	project      string
74334	resource     string
74335	urlParams_   gensupport.URLParams
74336	ifNoneMatch_ string
74337	ctx_         context.Context
74338	header_      http.Header
74339}
74340
74341// GetIamPolicy: Gets the access control policy for a resource. May be
74342// empty if no such policy or resource exists.
74343func (r *ImagesService) GetIamPolicy(project string, resource string) *ImagesGetIamPolicyCall {
74344	c := &ImagesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74345	c.project = project
74346	c.resource = resource
74347	return c
74348}
74349
74350// OptionsRequestedPolicyVersion sets the optional parameter
74351// "optionsRequestedPolicyVersion": Requested IAM Policy version.
74352func (c *ImagesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ImagesGetIamPolicyCall {
74353	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
74354	return c
74355}
74356
74357// Fields allows partial responses to be retrieved. See
74358// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74359// for more information.
74360func (c *ImagesGetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesGetIamPolicyCall {
74361	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74362	return c
74363}
74364
74365// IfNoneMatch sets the optional parameter which makes the operation
74366// fail if the object's ETag matches the given value. This is useful for
74367// getting updates only after the object has changed since the last
74368// request. Use googleapi.IsNotModified to check whether the response
74369// error from Do is the result of In-None-Match.
74370func (c *ImagesGetIamPolicyCall) IfNoneMatch(entityTag string) *ImagesGetIamPolicyCall {
74371	c.ifNoneMatch_ = entityTag
74372	return c
74373}
74374
74375// Context sets the context to be used in this call's Do method. Any
74376// pending HTTP request will be aborted if the provided context is
74377// canceled.
74378func (c *ImagesGetIamPolicyCall) Context(ctx context.Context) *ImagesGetIamPolicyCall {
74379	c.ctx_ = ctx
74380	return c
74381}
74382
74383// Header returns an http.Header that can be modified by the caller to
74384// add HTTP headers to the request.
74385func (c *ImagesGetIamPolicyCall) Header() http.Header {
74386	if c.header_ == nil {
74387		c.header_ = make(http.Header)
74388	}
74389	return c.header_
74390}
74391
74392func (c *ImagesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
74393	reqHeaders := make(http.Header)
74394	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
74395	for k, v := range c.header_ {
74396		reqHeaders[k] = v
74397	}
74398	reqHeaders.Set("User-Agent", c.s.userAgent())
74399	if c.ifNoneMatch_ != "" {
74400		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74401	}
74402	var body io.Reader = nil
74403	c.urlParams_.Set("alt", alt)
74404	c.urlParams_.Set("prettyPrint", "false")
74405	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/getIamPolicy")
74406	urls += "?" + c.urlParams_.Encode()
74407	req, err := http.NewRequest("GET", urls, body)
74408	if err != nil {
74409		return nil, err
74410	}
74411	req.Header = reqHeaders
74412	googleapi.Expand(req.URL, map[string]string{
74413		"project":  c.project,
74414		"resource": c.resource,
74415	})
74416	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74417}
74418
74419// Do executes the "compute.images.getIamPolicy" call.
74420// Exactly one of *Policy or error will be non-nil. Any non-2xx status
74421// code is an error. Response headers are in either
74422// *Policy.ServerResponse.Header or (if a response was returned at all)
74423// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
74424// check whether the returned error was because http.StatusNotModified
74425// was returned.
74426func (c *ImagesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
74427	gensupport.SetOptions(c.urlParams_, opts...)
74428	res, err := c.doRequest("json")
74429	if res != nil && res.StatusCode == http.StatusNotModified {
74430		if res.Body != nil {
74431			res.Body.Close()
74432		}
74433		return nil, &googleapi.Error{
74434			Code:   res.StatusCode,
74435			Header: res.Header,
74436		}
74437	}
74438	if err != nil {
74439		return nil, err
74440	}
74441	defer googleapi.CloseBody(res)
74442	if err := googleapi.CheckResponse(res); err != nil {
74443		return nil, err
74444	}
74445	ret := &Policy{
74446		ServerResponse: googleapi.ServerResponse{
74447			Header:         res.Header,
74448			HTTPStatusCode: res.StatusCode,
74449		},
74450	}
74451	target := &ret
74452	if err := gensupport.DecodeResponse(target, res); err != nil {
74453		return nil, err
74454	}
74455	return ret, nil
74456	// {
74457	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
74458	//   "httpMethod": "GET",
74459	//   "id": "compute.images.getIamPolicy",
74460	//   "parameterOrder": [
74461	//     "project",
74462	//     "resource"
74463	//   ],
74464	//   "parameters": {
74465	//     "optionsRequestedPolicyVersion": {
74466	//       "description": "Requested IAM Policy version.",
74467	//       "format": "int32",
74468	//       "location": "query",
74469	//       "type": "integer"
74470	//     },
74471	//     "project": {
74472	//       "description": "Project ID for this request.",
74473	//       "location": "path",
74474	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74475	//       "required": true,
74476	//       "type": "string"
74477	//     },
74478	//     "resource": {
74479	//       "description": "Name or id of the resource for this request.",
74480	//       "location": "path",
74481	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74482	//       "required": true,
74483	//       "type": "string"
74484	//     }
74485	//   },
74486	//   "path": "{project}/global/images/{resource}/getIamPolicy",
74487	//   "response": {
74488	//     "$ref": "Policy"
74489	//   },
74490	//   "scopes": [
74491	//     "https://www.googleapis.com/auth/cloud-platform",
74492	//     "https://www.googleapis.com/auth/compute",
74493	//     "https://www.googleapis.com/auth/compute.readonly"
74494	//   ]
74495	// }
74496
74497}
74498
74499// method id "compute.images.insert":
74500
74501type ImagesInsertCall struct {
74502	s          *Service
74503	project    string
74504	image      *Image
74505	urlParams_ gensupport.URLParams
74506	ctx_       context.Context
74507	header_    http.Header
74508}
74509
74510// Insert: Creates an image in the specified project using the data
74511// included in the request.
74512// For details, see https://cloud.google.com/compute/docs/reference/latest/images/insert
74513func (r *ImagesService) Insert(project string, image *Image) *ImagesInsertCall {
74514	c := &ImagesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74515	c.project = project
74516	c.image = image
74517	return c
74518}
74519
74520// ForceCreate sets the optional parameter "forceCreate": Force image
74521// creation if true.
74522func (c *ImagesInsertCall) ForceCreate(forceCreate bool) *ImagesInsertCall {
74523	c.urlParams_.Set("forceCreate", fmt.Sprint(forceCreate))
74524	return c
74525}
74526
74527// RequestId sets the optional parameter "requestId": An optional
74528// request ID to identify requests. Specify a unique request ID so that
74529// if you must retry your request, the server will know to ignore the
74530// request if it has already been completed.
74531//
74532// For example, consider a situation where you make an initial request
74533// and the request times out. If you make the request again with the
74534// same request ID, the server can check if original operation with the
74535// same request ID was received, and if so, will ignore the second
74536// request. This prevents clients from accidentally creating duplicate
74537// commitments.
74538//
74539// The request ID must be a valid UUID with the exception that zero UUID
74540// is not supported (00000000-0000-0000-0000-000000000000).
74541func (c *ImagesInsertCall) RequestId(requestId string) *ImagesInsertCall {
74542	c.urlParams_.Set("requestId", requestId)
74543	return c
74544}
74545
74546// Fields allows partial responses to be retrieved. See
74547// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74548// for more information.
74549func (c *ImagesInsertCall) Fields(s ...googleapi.Field) *ImagesInsertCall {
74550	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74551	return c
74552}
74553
74554// Context sets the context to be used in this call's Do method. Any
74555// pending HTTP request will be aborted if the provided context is
74556// canceled.
74557func (c *ImagesInsertCall) Context(ctx context.Context) *ImagesInsertCall {
74558	c.ctx_ = ctx
74559	return c
74560}
74561
74562// Header returns an http.Header that can be modified by the caller to
74563// add HTTP headers to the request.
74564func (c *ImagesInsertCall) Header() http.Header {
74565	if c.header_ == nil {
74566		c.header_ = make(http.Header)
74567	}
74568	return c.header_
74569}
74570
74571func (c *ImagesInsertCall) doRequest(alt string) (*http.Response, error) {
74572	reqHeaders := make(http.Header)
74573	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
74574	for k, v := range c.header_ {
74575		reqHeaders[k] = v
74576	}
74577	reqHeaders.Set("User-Agent", c.s.userAgent())
74578	var body io.Reader = nil
74579	body, err := googleapi.WithoutDataWrapper.JSONReader(c.image)
74580	if err != nil {
74581		return nil, err
74582	}
74583	reqHeaders.Set("Content-Type", "application/json")
74584	c.urlParams_.Set("alt", alt)
74585	c.urlParams_.Set("prettyPrint", "false")
74586	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images")
74587	urls += "?" + c.urlParams_.Encode()
74588	req, err := http.NewRequest("POST", urls, body)
74589	if err != nil {
74590		return nil, err
74591	}
74592	req.Header = reqHeaders
74593	googleapi.Expand(req.URL, map[string]string{
74594		"project": c.project,
74595	})
74596	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74597}
74598
74599// Do executes the "compute.images.insert" call.
74600// Exactly one of *Operation or error will be non-nil. Any non-2xx
74601// status code is an error. Response headers are in either
74602// *Operation.ServerResponse.Header or (if a response was returned at
74603// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74604// to check whether the returned error was because
74605// http.StatusNotModified was returned.
74606func (c *ImagesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74607	gensupport.SetOptions(c.urlParams_, opts...)
74608	res, err := c.doRequest("json")
74609	if res != nil && res.StatusCode == http.StatusNotModified {
74610		if res.Body != nil {
74611			res.Body.Close()
74612		}
74613		return nil, &googleapi.Error{
74614			Code:   res.StatusCode,
74615			Header: res.Header,
74616		}
74617	}
74618	if err != nil {
74619		return nil, err
74620	}
74621	defer googleapi.CloseBody(res)
74622	if err := googleapi.CheckResponse(res); err != nil {
74623		return nil, err
74624	}
74625	ret := &Operation{
74626		ServerResponse: googleapi.ServerResponse{
74627			Header:         res.Header,
74628			HTTPStatusCode: res.StatusCode,
74629		},
74630	}
74631	target := &ret
74632	if err := gensupport.DecodeResponse(target, res); err != nil {
74633		return nil, err
74634	}
74635	return ret, nil
74636	// {
74637	//   "description": "Creates an image in the specified project using the data included in the request.",
74638	//   "httpMethod": "POST",
74639	//   "id": "compute.images.insert",
74640	//   "parameterOrder": [
74641	//     "project"
74642	//   ],
74643	//   "parameters": {
74644	//     "forceCreate": {
74645	//       "description": "Force image creation if true.",
74646	//       "location": "query",
74647	//       "type": "boolean"
74648	//     },
74649	//     "project": {
74650	//       "description": "Project ID for this request.",
74651	//       "location": "path",
74652	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74653	//       "required": true,
74654	//       "type": "string"
74655	//     },
74656	//     "requestId": {
74657	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74658	//       "location": "query",
74659	//       "type": "string"
74660	//     }
74661	//   },
74662	//   "path": "{project}/global/images",
74663	//   "request": {
74664	//     "$ref": "Image"
74665	//   },
74666	//   "response": {
74667	//     "$ref": "Operation"
74668	//   },
74669	//   "scopes": [
74670	//     "https://www.googleapis.com/auth/cloud-platform",
74671	//     "https://www.googleapis.com/auth/compute",
74672	//     "https://www.googleapis.com/auth/devstorage.full_control",
74673	//     "https://www.googleapis.com/auth/devstorage.read_only",
74674	//     "https://www.googleapis.com/auth/devstorage.read_write"
74675	//   ]
74676	// }
74677
74678}
74679
74680// method id "compute.images.list":
74681
74682type ImagesListCall struct {
74683	s            *Service
74684	project      string
74685	urlParams_   gensupport.URLParams
74686	ifNoneMatch_ string
74687	ctx_         context.Context
74688	header_      http.Header
74689}
74690
74691// List: Retrieves the list of custom images available to the specified
74692// project. Custom images are images you create that belong to your
74693// project. This method does not get any images that belong to other
74694// projects, including publicly-available images, like Debian 8. If you
74695// want to get a list of publicly-available images, use this method to
74696// make a request to the respective image project, such as debian-cloud
74697// or windows-cloud.
74698// For details, see https://cloud.google.com/compute/docs/reference/latest/images/list
74699func (r *ImagesService) List(project string) *ImagesListCall {
74700	c := &ImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74701	c.project = project
74702	return c
74703}
74704
74705// Filter sets the optional parameter "filter": A filter expression that
74706// filters resources listed in the response. The expression must specify
74707// the field name, a comparison operator, and the value that you want to
74708// use for filtering. The value must be a string, a number, or a
74709// boolean. The comparison operator must be either =, !=, >, or <.
74710//
74711// For example, if you are filtering Compute Engine instances, you can
74712// exclude instances named example-instance by specifying name !=
74713// example-instance.
74714//
74715// You can also filter nested fields. For example, you could specify
74716// scheduling.automaticRestart = false to include instances only if they
74717// are not scheduled for automatic restarts. You can use filtering on
74718// nested fields to filter based on resource labels.
74719//
74720// To filter on multiple expressions, provide each separate expression
74721// within parentheses. For example, (scheduling.automaticRestart = true)
74722// (cpuPlatform = "Intel Skylake"). By default, each expression is an
74723// AND expression. However, you can include AND and OR expressions
74724// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
74725// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
74726// true).
74727func (c *ImagesListCall) Filter(filter string) *ImagesListCall {
74728	c.urlParams_.Set("filter", filter)
74729	return c
74730}
74731
74732// MaxResults sets the optional parameter "maxResults": The maximum
74733// number of results per page that should be returned. If the number of
74734// available results is larger than maxResults, Compute Engine returns a
74735// nextPageToken that can be used to get the next page of results in
74736// subsequent list requests. Acceptable values are 0 to 500, inclusive.
74737// (Default: 500)
74738func (c *ImagesListCall) MaxResults(maxResults int64) *ImagesListCall {
74739	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
74740	return c
74741}
74742
74743// OrderBy sets the optional parameter "orderBy": Sorts list results by
74744// a certain order. By default, results are returned in alphanumerical
74745// order based on the resource name.
74746//
74747// You can also sort results in descending order based on the creation
74748// timestamp using orderBy="creationTimestamp desc". This sorts results
74749// based on the creationTimestamp field in reverse chronological order
74750// (newest result first). Use this to sort resources like operations so
74751// that the newest operation is returned first.
74752//
74753// Currently, only sorting by name or creationTimestamp desc is
74754// supported.
74755func (c *ImagesListCall) OrderBy(orderBy string) *ImagesListCall {
74756	c.urlParams_.Set("orderBy", orderBy)
74757	return c
74758}
74759
74760// PageToken sets the optional parameter "pageToken": Specifies a page
74761// token to use. Set pageToken to the nextPageToken returned by a
74762// previous list request to get the next page of results.
74763func (c *ImagesListCall) PageToken(pageToken string) *ImagesListCall {
74764	c.urlParams_.Set("pageToken", pageToken)
74765	return c
74766}
74767
74768// Fields allows partial responses to be retrieved. See
74769// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74770// for more information.
74771func (c *ImagesListCall) Fields(s ...googleapi.Field) *ImagesListCall {
74772	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74773	return c
74774}
74775
74776// IfNoneMatch sets the optional parameter which makes the operation
74777// fail if the object's ETag matches the given value. This is useful for
74778// getting updates only after the object has changed since the last
74779// request. Use googleapi.IsNotModified to check whether the response
74780// error from Do is the result of In-None-Match.
74781func (c *ImagesListCall) IfNoneMatch(entityTag string) *ImagesListCall {
74782	c.ifNoneMatch_ = entityTag
74783	return c
74784}
74785
74786// Context sets the context to be used in this call's Do method. Any
74787// pending HTTP request will be aborted if the provided context is
74788// canceled.
74789func (c *ImagesListCall) Context(ctx context.Context) *ImagesListCall {
74790	c.ctx_ = ctx
74791	return c
74792}
74793
74794// Header returns an http.Header that can be modified by the caller to
74795// add HTTP headers to the request.
74796func (c *ImagesListCall) Header() http.Header {
74797	if c.header_ == nil {
74798		c.header_ = make(http.Header)
74799	}
74800	return c.header_
74801}
74802
74803func (c *ImagesListCall) doRequest(alt string) (*http.Response, error) {
74804	reqHeaders := make(http.Header)
74805	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
74806	for k, v := range c.header_ {
74807		reqHeaders[k] = v
74808	}
74809	reqHeaders.Set("User-Agent", c.s.userAgent())
74810	if c.ifNoneMatch_ != "" {
74811		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74812	}
74813	var body io.Reader = nil
74814	c.urlParams_.Set("alt", alt)
74815	c.urlParams_.Set("prettyPrint", "false")
74816	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images")
74817	urls += "?" + c.urlParams_.Encode()
74818	req, err := http.NewRequest("GET", urls, body)
74819	if err != nil {
74820		return nil, err
74821	}
74822	req.Header = reqHeaders
74823	googleapi.Expand(req.URL, map[string]string{
74824		"project": c.project,
74825	})
74826	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74827}
74828
74829// Do executes the "compute.images.list" call.
74830// Exactly one of *ImageList or error will be non-nil. Any non-2xx
74831// status code is an error. Response headers are in either
74832// *ImageList.ServerResponse.Header or (if a response was returned at
74833// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74834// to check whether the returned error was because
74835// http.StatusNotModified was returned.
74836func (c *ImagesListCall) Do(opts ...googleapi.CallOption) (*ImageList, error) {
74837	gensupport.SetOptions(c.urlParams_, opts...)
74838	res, err := c.doRequest("json")
74839	if res != nil && res.StatusCode == http.StatusNotModified {
74840		if res.Body != nil {
74841			res.Body.Close()
74842		}
74843		return nil, &googleapi.Error{
74844			Code:   res.StatusCode,
74845			Header: res.Header,
74846		}
74847	}
74848	if err != nil {
74849		return nil, err
74850	}
74851	defer googleapi.CloseBody(res)
74852	if err := googleapi.CheckResponse(res); err != nil {
74853		return nil, err
74854	}
74855	ret := &ImageList{
74856		ServerResponse: googleapi.ServerResponse{
74857			Header:         res.Header,
74858			HTTPStatusCode: res.StatusCode,
74859		},
74860	}
74861	target := &ret
74862	if err := gensupport.DecodeResponse(target, res); err != nil {
74863		return nil, err
74864	}
74865	return ret, nil
74866	// {
74867	//   "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.",
74868	//   "httpMethod": "GET",
74869	//   "id": "compute.images.list",
74870	//   "parameterOrder": [
74871	//     "project"
74872	//   ],
74873	//   "parameters": {
74874	//     "filter": {
74875	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
74876	//       "location": "query",
74877	//       "type": "string"
74878	//     },
74879	//     "maxResults": {
74880	//       "default": "500",
74881	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
74882	//       "format": "uint32",
74883	//       "location": "query",
74884	//       "minimum": "0",
74885	//       "type": "integer"
74886	//     },
74887	//     "orderBy": {
74888	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
74889	//       "location": "query",
74890	//       "type": "string"
74891	//     },
74892	//     "pageToken": {
74893	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
74894	//       "location": "query",
74895	//       "type": "string"
74896	//     },
74897	//     "project": {
74898	//       "description": "Project ID for this request.",
74899	//       "location": "path",
74900	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74901	//       "required": true,
74902	//       "type": "string"
74903	//     }
74904	//   },
74905	//   "path": "{project}/global/images",
74906	//   "response": {
74907	//     "$ref": "ImageList"
74908	//   },
74909	//   "scopes": [
74910	//     "https://www.googleapis.com/auth/cloud-platform",
74911	//     "https://www.googleapis.com/auth/compute",
74912	//     "https://www.googleapis.com/auth/compute.readonly"
74913	//   ]
74914	// }
74915
74916}
74917
74918// Pages invokes f for each page of results.
74919// A non-nil error returned from f will halt the iteration.
74920// The provided context supersedes any context provided to the Context method.
74921func (c *ImagesListCall) Pages(ctx context.Context, f func(*ImageList) error) error {
74922	c.ctx_ = ctx
74923	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
74924	for {
74925		x, err := c.Do()
74926		if err != nil {
74927			return err
74928		}
74929		if err := f(x); err != nil {
74930			return err
74931		}
74932		if x.NextPageToken == "" {
74933			return nil
74934		}
74935		c.PageToken(x.NextPageToken)
74936	}
74937}
74938
74939// method id "compute.images.setIamPolicy":
74940
74941type ImagesSetIamPolicyCall struct {
74942	s                      *Service
74943	project                string
74944	resource               string
74945	globalsetpolicyrequest *GlobalSetPolicyRequest
74946	urlParams_             gensupport.URLParams
74947	ctx_                   context.Context
74948	header_                http.Header
74949}
74950
74951// SetIamPolicy: Sets the access control policy on the specified
74952// resource. Replaces any existing policy.
74953func (r *ImagesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *ImagesSetIamPolicyCall {
74954	c := &ImagesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74955	c.project = project
74956	c.resource = resource
74957	c.globalsetpolicyrequest = globalsetpolicyrequest
74958	return c
74959}
74960
74961// Fields allows partial responses to be retrieved. See
74962// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74963// for more information.
74964func (c *ImagesSetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesSetIamPolicyCall {
74965	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74966	return c
74967}
74968
74969// Context sets the context to be used in this call's Do method. Any
74970// pending HTTP request will be aborted if the provided context is
74971// canceled.
74972func (c *ImagesSetIamPolicyCall) Context(ctx context.Context) *ImagesSetIamPolicyCall {
74973	c.ctx_ = ctx
74974	return c
74975}
74976
74977// Header returns an http.Header that can be modified by the caller to
74978// add HTTP headers to the request.
74979func (c *ImagesSetIamPolicyCall) Header() http.Header {
74980	if c.header_ == nil {
74981		c.header_ = make(http.Header)
74982	}
74983	return c.header_
74984}
74985
74986func (c *ImagesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
74987	reqHeaders := make(http.Header)
74988	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
74989	for k, v := range c.header_ {
74990		reqHeaders[k] = v
74991	}
74992	reqHeaders.Set("User-Agent", c.s.userAgent())
74993	var body io.Reader = nil
74994	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
74995	if err != nil {
74996		return nil, err
74997	}
74998	reqHeaders.Set("Content-Type", "application/json")
74999	c.urlParams_.Set("alt", alt)
75000	c.urlParams_.Set("prettyPrint", "false")
75001	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/setIamPolicy")
75002	urls += "?" + c.urlParams_.Encode()
75003	req, err := http.NewRequest("POST", urls, body)
75004	if err != nil {
75005		return nil, err
75006	}
75007	req.Header = reqHeaders
75008	googleapi.Expand(req.URL, map[string]string{
75009		"project":  c.project,
75010		"resource": c.resource,
75011	})
75012	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75013}
75014
75015// Do executes the "compute.images.setIamPolicy" call.
75016// Exactly one of *Policy or error will be non-nil. Any non-2xx status
75017// code is an error. Response headers are in either
75018// *Policy.ServerResponse.Header or (if a response was returned at all)
75019// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
75020// check whether the returned error was because http.StatusNotModified
75021// was returned.
75022func (c *ImagesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
75023	gensupport.SetOptions(c.urlParams_, opts...)
75024	res, err := c.doRequest("json")
75025	if res != nil && res.StatusCode == http.StatusNotModified {
75026		if res.Body != nil {
75027			res.Body.Close()
75028		}
75029		return nil, &googleapi.Error{
75030			Code:   res.StatusCode,
75031			Header: res.Header,
75032		}
75033	}
75034	if err != nil {
75035		return nil, err
75036	}
75037	defer googleapi.CloseBody(res)
75038	if err := googleapi.CheckResponse(res); err != nil {
75039		return nil, err
75040	}
75041	ret := &Policy{
75042		ServerResponse: googleapi.ServerResponse{
75043			Header:         res.Header,
75044			HTTPStatusCode: res.StatusCode,
75045		},
75046	}
75047	target := &ret
75048	if err := gensupport.DecodeResponse(target, res); err != nil {
75049		return nil, err
75050	}
75051	return ret, nil
75052	// {
75053	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
75054	//   "httpMethod": "POST",
75055	//   "id": "compute.images.setIamPolicy",
75056	//   "parameterOrder": [
75057	//     "project",
75058	//     "resource"
75059	//   ],
75060	//   "parameters": {
75061	//     "project": {
75062	//       "description": "Project ID for this request.",
75063	//       "location": "path",
75064	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75065	//       "required": true,
75066	//       "type": "string"
75067	//     },
75068	//     "resource": {
75069	//       "description": "Name or id of the resource for this request.",
75070	//       "location": "path",
75071	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75072	//       "required": true,
75073	//       "type": "string"
75074	//     }
75075	//   },
75076	//   "path": "{project}/global/images/{resource}/setIamPolicy",
75077	//   "request": {
75078	//     "$ref": "GlobalSetPolicyRequest"
75079	//   },
75080	//   "response": {
75081	//     "$ref": "Policy"
75082	//   },
75083	//   "scopes": [
75084	//     "https://www.googleapis.com/auth/cloud-platform",
75085	//     "https://www.googleapis.com/auth/compute"
75086	//   ]
75087	// }
75088
75089}
75090
75091// method id "compute.images.setLabels":
75092
75093type ImagesSetLabelsCall struct {
75094	s                      *Service
75095	project                string
75096	resource               string
75097	globalsetlabelsrequest *GlobalSetLabelsRequest
75098	urlParams_             gensupport.URLParams
75099	ctx_                   context.Context
75100	header_                http.Header
75101}
75102
75103// SetLabels: Sets the labels on an image. To learn more about labels,
75104// read the Labeling Resources documentation.
75105func (r *ImagesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ImagesSetLabelsCall {
75106	c := &ImagesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75107	c.project = project
75108	c.resource = resource
75109	c.globalsetlabelsrequest = globalsetlabelsrequest
75110	return c
75111}
75112
75113// Fields allows partial responses to be retrieved. See
75114// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75115// for more information.
75116func (c *ImagesSetLabelsCall) Fields(s ...googleapi.Field) *ImagesSetLabelsCall {
75117	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75118	return c
75119}
75120
75121// Context sets the context to be used in this call's Do method. Any
75122// pending HTTP request will be aborted if the provided context is
75123// canceled.
75124func (c *ImagesSetLabelsCall) Context(ctx context.Context) *ImagesSetLabelsCall {
75125	c.ctx_ = ctx
75126	return c
75127}
75128
75129// Header returns an http.Header that can be modified by the caller to
75130// add HTTP headers to the request.
75131func (c *ImagesSetLabelsCall) Header() http.Header {
75132	if c.header_ == nil {
75133		c.header_ = make(http.Header)
75134	}
75135	return c.header_
75136}
75137
75138func (c *ImagesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
75139	reqHeaders := make(http.Header)
75140	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
75141	for k, v := range c.header_ {
75142		reqHeaders[k] = v
75143	}
75144	reqHeaders.Set("User-Agent", c.s.userAgent())
75145	var body io.Reader = nil
75146	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
75147	if err != nil {
75148		return nil, err
75149	}
75150	reqHeaders.Set("Content-Type", "application/json")
75151	c.urlParams_.Set("alt", alt)
75152	c.urlParams_.Set("prettyPrint", "false")
75153	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/setLabels")
75154	urls += "?" + c.urlParams_.Encode()
75155	req, err := http.NewRequest("POST", urls, body)
75156	if err != nil {
75157		return nil, err
75158	}
75159	req.Header = reqHeaders
75160	googleapi.Expand(req.URL, map[string]string{
75161		"project":  c.project,
75162		"resource": c.resource,
75163	})
75164	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75165}
75166
75167// Do executes the "compute.images.setLabels" call.
75168// Exactly one of *Operation or error will be non-nil. Any non-2xx
75169// status code is an error. Response headers are in either
75170// *Operation.ServerResponse.Header or (if a response was returned at
75171// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75172// to check whether the returned error was because
75173// http.StatusNotModified was returned.
75174func (c *ImagesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75175	gensupport.SetOptions(c.urlParams_, opts...)
75176	res, err := c.doRequest("json")
75177	if res != nil && res.StatusCode == http.StatusNotModified {
75178		if res.Body != nil {
75179			res.Body.Close()
75180		}
75181		return nil, &googleapi.Error{
75182			Code:   res.StatusCode,
75183			Header: res.Header,
75184		}
75185	}
75186	if err != nil {
75187		return nil, err
75188	}
75189	defer googleapi.CloseBody(res)
75190	if err := googleapi.CheckResponse(res); err != nil {
75191		return nil, err
75192	}
75193	ret := &Operation{
75194		ServerResponse: googleapi.ServerResponse{
75195			Header:         res.Header,
75196			HTTPStatusCode: res.StatusCode,
75197		},
75198	}
75199	target := &ret
75200	if err := gensupport.DecodeResponse(target, res); err != nil {
75201		return nil, err
75202	}
75203	return ret, nil
75204	// {
75205	//   "description": "Sets the labels on an image. To learn more about labels, read the Labeling Resources documentation.",
75206	//   "httpMethod": "POST",
75207	//   "id": "compute.images.setLabels",
75208	//   "parameterOrder": [
75209	//     "project",
75210	//     "resource"
75211	//   ],
75212	//   "parameters": {
75213	//     "project": {
75214	//       "description": "Project ID for this request.",
75215	//       "location": "path",
75216	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75217	//       "required": true,
75218	//       "type": "string"
75219	//     },
75220	//     "resource": {
75221	//       "description": "Name or id of the resource for this request.",
75222	//       "location": "path",
75223	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75224	//       "required": true,
75225	//       "type": "string"
75226	//     }
75227	//   },
75228	//   "path": "{project}/global/images/{resource}/setLabels",
75229	//   "request": {
75230	//     "$ref": "GlobalSetLabelsRequest"
75231	//   },
75232	//   "response": {
75233	//     "$ref": "Operation"
75234	//   },
75235	//   "scopes": [
75236	//     "https://www.googleapis.com/auth/cloud-platform",
75237	//     "https://www.googleapis.com/auth/compute"
75238	//   ]
75239	// }
75240
75241}
75242
75243// method id "compute.images.testIamPermissions":
75244
75245type ImagesTestIamPermissionsCall struct {
75246	s                      *Service
75247	project                string
75248	resource               string
75249	testpermissionsrequest *TestPermissionsRequest
75250	urlParams_             gensupport.URLParams
75251	ctx_                   context.Context
75252	header_                http.Header
75253}
75254
75255// TestIamPermissions: Returns permissions that a caller has on the
75256// specified resource.
75257func (r *ImagesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *ImagesTestIamPermissionsCall {
75258	c := &ImagesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75259	c.project = project
75260	c.resource = resource
75261	c.testpermissionsrequest = testpermissionsrequest
75262	return c
75263}
75264
75265// Fields allows partial responses to be retrieved. See
75266// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75267// for more information.
75268func (c *ImagesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ImagesTestIamPermissionsCall {
75269	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75270	return c
75271}
75272
75273// Context sets the context to be used in this call's Do method. Any
75274// pending HTTP request will be aborted if the provided context is
75275// canceled.
75276func (c *ImagesTestIamPermissionsCall) Context(ctx context.Context) *ImagesTestIamPermissionsCall {
75277	c.ctx_ = ctx
75278	return c
75279}
75280
75281// Header returns an http.Header that can be modified by the caller to
75282// add HTTP headers to the request.
75283func (c *ImagesTestIamPermissionsCall) Header() http.Header {
75284	if c.header_ == nil {
75285		c.header_ = make(http.Header)
75286	}
75287	return c.header_
75288}
75289
75290func (c *ImagesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
75291	reqHeaders := make(http.Header)
75292	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
75293	for k, v := range c.header_ {
75294		reqHeaders[k] = v
75295	}
75296	reqHeaders.Set("User-Agent", c.s.userAgent())
75297	var body io.Reader = nil
75298	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
75299	if err != nil {
75300		return nil, err
75301	}
75302	reqHeaders.Set("Content-Type", "application/json")
75303	c.urlParams_.Set("alt", alt)
75304	c.urlParams_.Set("prettyPrint", "false")
75305	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/testIamPermissions")
75306	urls += "?" + c.urlParams_.Encode()
75307	req, err := http.NewRequest("POST", urls, body)
75308	if err != nil {
75309		return nil, err
75310	}
75311	req.Header = reqHeaders
75312	googleapi.Expand(req.URL, map[string]string{
75313		"project":  c.project,
75314		"resource": c.resource,
75315	})
75316	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75317}
75318
75319// Do executes the "compute.images.testIamPermissions" call.
75320// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
75321// non-2xx status code is an error. Response headers are in either
75322// *TestPermissionsResponse.ServerResponse.Header or (if a response was
75323// returned at all) in error.(*googleapi.Error).Header. Use
75324// googleapi.IsNotModified to check whether the returned error was
75325// because http.StatusNotModified was returned.
75326func (c *ImagesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
75327	gensupport.SetOptions(c.urlParams_, opts...)
75328	res, err := c.doRequest("json")
75329	if res != nil && res.StatusCode == http.StatusNotModified {
75330		if res.Body != nil {
75331			res.Body.Close()
75332		}
75333		return nil, &googleapi.Error{
75334			Code:   res.StatusCode,
75335			Header: res.Header,
75336		}
75337	}
75338	if err != nil {
75339		return nil, err
75340	}
75341	defer googleapi.CloseBody(res)
75342	if err := googleapi.CheckResponse(res); err != nil {
75343		return nil, err
75344	}
75345	ret := &TestPermissionsResponse{
75346		ServerResponse: googleapi.ServerResponse{
75347			Header:         res.Header,
75348			HTTPStatusCode: res.StatusCode,
75349		},
75350	}
75351	target := &ret
75352	if err := gensupport.DecodeResponse(target, res); err != nil {
75353		return nil, err
75354	}
75355	return ret, nil
75356	// {
75357	//   "description": "Returns permissions that a caller has on the specified resource.",
75358	//   "httpMethod": "POST",
75359	//   "id": "compute.images.testIamPermissions",
75360	//   "parameterOrder": [
75361	//     "project",
75362	//     "resource"
75363	//   ],
75364	//   "parameters": {
75365	//     "project": {
75366	//       "description": "Project ID for this request.",
75367	//       "location": "path",
75368	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75369	//       "required": true,
75370	//       "type": "string"
75371	//     },
75372	//     "resource": {
75373	//       "description": "Name or id of the resource for this request.",
75374	//       "location": "path",
75375	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75376	//       "required": true,
75377	//       "type": "string"
75378	//     }
75379	//   },
75380	//   "path": "{project}/global/images/{resource}/testIamPermissions",
75381	//   "request": {
75382	//     "$ref": "TestPermissionsRequest"
75383	//   },
75384	//   "response": {
75385	//     "$ref": "TestPermissionsResponse"
75386	//   },
75387	//   "scopes": [
75388	//     "https://www.googleapis.com/auth/cloud-platform",
75389	//     "https://www.googleapis.com/auth/compute",
75390	//     "https://www.googleapis.com/auth/compute.readonly"
75391	//   ]
75392	// }
75393
75394}
75395
75396// method id "compute.instanceGroupManagers.abandonInstances":
75397
75398type InstanceGroupManagersAbandonInstancesCall struct {
75399	s                                            *Service
75400	project                                      string
75401	zone                                         string
75402	instanceGroupManager                         string
75403	instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest
75404	urlParams_                                   gensupport.URLParams
75405	ctx_                                         context.Context
75406	header_                                      http.Header
75407}
75408
75409// AbandonInstances: Flags the specified instances to be removed from
75410// the managed instance group. Abandoning an instance does not delete
75411// the instance, but it does remove the instance from any target pools
75412// that are applied by the managed instance group. This method reduces
75413// the targetSize of the managed instance group by the number of
75414// instances that you abandon. This operation is marked as DONE when the
75415// action is scheduled even if the instances have not yet been removed
75416// from the group. You must separately verify the status of the
75417// abandoning action with the listmanagedinstances method.
75418//
75419// If the group is part of a backend service that has enabled connection
75420// draining, it can take up to 60 seconds after the connection draining
75421// duration has elapsed before the VM instance is removed or
75422// deleted.
75423//
75424// You can specify a maximum of 1000 instances with this method per
75425// request.
75426func (r *InstanceGroupManagersService) AbandonInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest) *InstanceGroupManagersAbandonInstancesCall {
75427	c := &InstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75428	c.project = project
75429	c.zone = zone
75430	c.instanceGroupManager = instanceGroupManager
75431	c.instancegroupmanagersabandoninstancesrequest = instancegroupmanagersabandoninstancesrequest
75432	return c
75433}
75434
75435// RequestId sets the optional parameter "requestId": An optional
75436// request ID to identify requests. Specify a unique request ID so that
75437// if you must retry your request, the server will know to ignore the
75438// request if it has already been completed.
75439//
75440// For example, consider a situation where you make an initial request
75441// and the request times out. If you make the request again with the
75442// same request ID, the server can check if original operation with the
75443// same request ID was received, and if so, will ignore the second
75444// request. This prevents clients from accidentally creating duplicate
75445// commitments.
75446//
75447// The request ID must be a valid UUID with the exception that zero UUID
75448// is not supported (00000000-0000-0000-0000-000000000000).
75449func (c *InstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *InstanceGroupManagersAbandonInstancesCall {
75450	c.urlParams_.Set("requestId", requestId)
75451	return c
75452}
75453
75454// Fields allows partial responses to be retrieved. See
75455// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75456// for more information.
75457func (c *InstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAbandonInstancesCall {
75458	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75459	return c
75460}
75461
75462// Context sets the context to be used in this call's Do method. Any
75463// pending HTTP request will be aborted if the provided context is
75464// canceled.
75465func (c *InstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *InstanceGroupManagersAbandonInstancesCall {
75466	c.ctx_ = ctx
75467	return c
75468}
75469
75470// Header returns an http.Header that can be modified by the caller to
75471// add HTTP headers to the request.
75472func (c *InstanceGroupManagersAbandonInstancesCall) Header() http.Header {
75473	if c.header_ == nil {
75474		c.header_ = make(http.Header)
75475	}
75476	return c.header_
75477}
75478
75479func (c *InstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) {
75480	reqHeaders := make(http.Header)
75481	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
75482	for k, v := range c.header_ {
75483		reqHeaders[k] = v
75484	}
75485	reqHeaders.Set("User-Agent", c.s.userAgent())
75486	var body io.Reader = nil
75487	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersabandoninstancesrequest)
75488	if err != nil {
75489		return nil, err
75490	}
75491	reqHeaders.Set("Content-Type", "application/json")
75492	c.urlParams_.Set("alt", alt)
75493	c.urlParams_.Set("prettyPrint", "false")
75494	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances")
75495	urls += "?" + c.urlParams_.Encode()
75496	req, err := http.NewRequest("POST", urls, body)
75497	if err != nil {
75498		return nil, err
75499	}
75500	req.Header = reqHeaders
75501	googleapi.Expand(req.URL, map[string]string{
75502		"project":              c.project,
75503		"zone":                 c.zone,
75504		"instanceGroupManager": c.instanceGroupManager,
75505	})
75506	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75507}
75508
75509// Do executes the "compute.instanceGroupManagers.abandonInstances" call.
75510// Exactly one of *Operation or error will be non-nil. Any non-2xx
75511// status code is an error. Response headers are in either
75512// *Operation.ServerResponse.Header or (if a response was returned at
75513// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75514// to check whether the returned error was because
75515// http.StatusNotModified was returned.
75516func (c *InstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75517	gensupport.SetOptions(c.urlParams_, opts...)
75518	res, err := c.doRequest("json")
75519	if res != nil && res.StatusCode == http.StatusNotModified {
75520		if res.Body != nil {
75521			res.Body.Close()
75522		}
75523		return nil, &googleapi.Error{
75524			Code:   res.StatusCode,
75525			Header: res.Header,
75526		}
75527	}
75528	if err != nil {
75529		return nil, err
75530	}
75531	defer googleapi.CloseBody(res)
75532	if err := googleapi.CheckResponse(res); err != nil {
75533		return nil, err
75534	}
75535	ret := &Operation{
75536		ServerResponse: googleapi.ServerResponse{
75537			Header:         res.Header,
75538			HTTPStatusCode: res.StatusCode,
75539		},
75540	}
75541	target := &ret
75542	if err := gensupport.DecodeResponse(target, res); err != nil {
75543		return nil, err
75544	}
75545	return ret, nil
75546	// {
75547	//   "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.",
75548	//   "httpMethod": "POST",
75549	//   "id": "compute.instanceGroupManagers.abandonInstances",
75550	//   "parameterOrder": [
75551	//     "project",
75552	//     "zone",
75553	//     "instanceGroupManager"
75554	//   ],
75555	//   "parameters": {
75556	//     "instanceGroupManager": {
75557	//       "description": "The name of the managed instance group.",
75558	//       "location": "path",
75559	//       "required": true,
75560	//       "type": "string"
75561	//     },
75562	//     "project": {
75563	//       "description": "Project ID for this request.",
75564	//       "location": "path",
75565	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75566	//       "required": true,
75567	//       "type": "string"
75568	//     },
75569	//     "requestId": {
75570	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75571	//       "location": "query",
75572	//       "type": "string"
75573	//     },
75574	//     "zone": {
75575	//       "description": "The name of the zone where the managed instance group is located.",
75576	//       "location": "path",
75577	//       "required": true,
75578	//       "type": "string"
75579	//     }
75580	//   },
75581	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
75582	//   "request": {
75583	//     "$ref": "InstanceGroupManagersAbandonInstancesRequest"
75584	//   },
75585	//   "response": {
75586	//     "$ref": "Operation"
75587	//   },
75588	//   "scopes": [
75589	//     "https://www.googleapis.com/auth/cloud-platform",
75590	//     "https://www.googleapis.com/auth/compute"
75591	//   ]
75592	// }
75593
75594}
75595
75596// method id "compute.instanceGroupManagers.aggregatedList":
75597
75598type InstanceGroupManagersAggregatedListCall struct {
75599	s            *Service
75600	project      string
75601	urlParams_   gensupport.URLParams
75602	ifNoneMatch_ string
75603	ctx_         context.Context
75604	header_      http.Header
75605}
75606
75607// AggregatedList: Retrieves the list of managed instance groups and
75608// groups them by zone.
75609func (r *InstanceGroupManagersService) AggregatedList(project string) *InstanceGroupManagersAggregatedListCall {
75610	c := &InstanceGroupManagersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75611	c.project = project
75612	return c
75613}
75614
75615// Filter sets the optional parameter "filter": A filter expression that
75616// filters resources listed in the response. The expression must specify
75617// the field name, a comparison operator, and the value that you want to
75618// use for filtering. The value must be a string, a number, or a
75619// boolean. The comparison operator must be either =, !=, >, or <.
75620//
75621// For example, if you are filtering Compute Engine instances, you can
75622// exclude instances named example-instance by specifying name !=
75623// example-instance.
75624//
75625// You can also filter nested fields. For example, you could specify
75626// scheduling.automaticRestart = false to include instances only if they
75627// are not scheduled for automatic restarts. You can use filtering on
75628// nested fields to filter based on resource labels.
75629//
75630// To filter on multiple expressions, provide each separate expression
75631// within parentheses. For example, (scheduling.automaticRestart = true)
75632// (cpuPlatform = "Intel Skylake"). By default, each expression is an
75633// AND expression. However, you can include AND and OR expressions
75634// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
75635// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
75636// true).
75637func (c *InstanceGroupManagersAggregatedListCall) Filter(filter string) *InstanceGroupManagersAggregatedListCall {
75638	c.urlParams_.Set("filter", filter)
75639	return c
75640}
75641
75642// IncludeAllScopes sets the optional parameter "includeAllScopes":
75643// Indicates whether every visible scope for each scope type (zone,
75644// region, global) should be included in the response. For new resource
75645// types added after this field, the flag has no effect as new resource
75646// types will always include every visible scope for each scope type in
75647// response. For resource types which predate this field, if this flag
75648// is omitted or false, only scopes of the scope types where the
75649// resource type is expected to be found will be included.
75650func (c *InstanceGroupManagersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstanceGroupManagersAggregatedListCall {
75651	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
75652	return c
75653}
75654
75655// MaxResults sets the optional parameter "maxResults": The maximum
75656// number of results per page that should be returned. If the number of
75657// available results is larger than maxResults, Compute Engine returns a
75658// nextPageToken that can be used to get the next page of results in
75659// subsequent list requests. Acceptable values are 0 to 500, inclusive.
75660// (Default: 500)
75661func (c *InstanceGroupManagersAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupManagersAggregatedListCall {
75662	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
75663	return c
75664}
75665
75666// OrderBy sets the optional parameter "orderBy": Sorts list results by
75667// a certain order. By default, results are returned in alphanumerical
75668// order based on the resource name.
75669//
75670// You can also sort results in descending order based on the creation
75671// timestamp using orderBy="creationTimestamp desc". This sorts results
75672// based on the creationTimestamp field in reverse chronological order
75673// (newest result first). Use this to sort resources like operations so
75674// that the newest operation is returned first.
75675//
75676// Currently, only sorting by name or creationTimestamp desc is
75677// supported.
75678func (c *InstanceGroupManagersAggregatedListCall) OrderBy(orderBy string) *InstanceGroupManagersAggregatedListCall {
75679	c.urlParams_.Set("orderBy", orderBy)
75680	return c
75681}
75682
75683// PageToken sets the optional parameter "pageToken": Specifies a page
75684// token to use. Set pageToken to the nextPageToken returned by a
75685// previous list request to get the next page of results.
75686func (c *InstanceGroupManagersAggregatedListCall) PageToken(pageToken string) *InstanceGroupManagersAggregatedListCall {
75687	c.urlParams_.Set("pageToken", pageToken)
75688	return c
75689}
75690
75691// Fields allows partial responses to be retrieved. See
75692// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75693// for more information.
75694func (c *InstanceGroupManagersAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAggregatedListCall {
75695	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75696	return c
75697}
75698
75699// IfNoneMatch sets the optional parameter which makes the operation
75700// fail if the object's ETag matches the given value. This is useful for
75701// getting updates only after the object has changed since the last
75702// request. Use googleapi.IsNotModified to check whether the response
75703// error from Do is the result of In-None-Match.
75704func (c *InstanceGroupManagersAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersAggregatedListCall {
75705	c.ifNoneMatch_ = entityTag
75706	return c
75707}
75708
75709// Context sets the context to be used in this call's Do method. Any
75710// pending HTTP request will be aborted if the provided context is
75711// canceled.
75712func (c *InstanceGroupManagersAggregatedListCall) Context(ctx context.Context) *InstanceGroupManagersAggregatedListCall {
75713	c.ctx_ = ctx
75714	return c
75715}
75716
75717// Header returns an http.Header that can be modified by the caller to
75718// add HTTP headers to the request.
75719func (c *InstanceGroupManagersAggregatedListCall) Header() http.Header {
75720	if c.header_ == nil {
75721		c.header_ = make(http.Header)
75722	}
75723	return c.header_
75724}
75725
75726func (c *InstanceGroupManagersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
75727	reqHeaders := make(http.Header)
75728	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
75729	for k, v := range c.header_ {
75730		reqHeaders[k] = v
75731	}
75732	reqHeaders.Set("User-Agent", c.s.userAgent())
75733	if c.ifNoneMatch_ != "" {
75734		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
75735	}
75736	var body io.Reader = nil
75737	c.urlParams_.Set("alt", alt)
75738	c.urlParams_.Set("prettyPrint", "false")
75739	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/instanceGroupManagers")
75740	urls += "?" + c.urlParams_.Encode()
75741	req, err := http.NewRequest("GET", urls, body)
75742	if err != nil {
75743		return nil, err
75744	}
75745	req.Header = reqHeaders
75746	googleapi.Expand(req.URL, map[string]string{
75747		"project": c.project,
75748	})
75749	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75750}
75751
75752// Do executes the "compute.instanceGroupManagers.aggregatedList" call.
75753// Exactly one of *InstanceGroupManagerAggregatedList or error will be
75754// non-nil. Any non-2xx status code is an error. Response headers are in
75755// either *InstanceGroupManagerAggregatedList.ServerResponse.Header or
75756// (if a response was returned at all) in
75757// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
75758// whether the returned error was because http.StatusNotModified was
75759// returned.
75760func (c *InstanceGroupManagersAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerAggregatedList, error) {
75761	gensupport.SetOptions(c.urlParams_, opts...)
75762	res, err := c.doRequest("json")
75763	if res != nil && res.StatusCode == http.StatusNotModified {
75764		if res.Body != nil {
75765			res.Body.Close()
75766		}
75767		return nil, &googleapi.Error{
75768			Code:   res.StatusCode,
75769			Header: res.Header,
75770		}
75771	}
75772	if err != nil {
75773		return nil, err
75774	}
75775	defer googleapi.CloseBody(res)
75776	if err := googleapi.CheckResponse(res); err != nil {
75777		return nil, err
75778	}
75779	ret := &InstanceGroupManagerAggregatedList{
75780		ServerResponse: googleapi.ServerResponse{
75781			Header:         res.Header,
75782			HTTPStatusCode: res.StatusCode,
75783		},
75784	}
75785	target := &ret
75786	if err := gensupport.DecodeResponse(target, res); err != nil {
75787		return nil, err
75788	}
75789	return ret, nil
75790	// {
75791	//   "description": "Retrieves the list of managed instance groups and groups them by zone.",
75792	//   "httpMethod": "GET",
75793	//   "id": "compute.instanceGroupManagers.aggregatedList",
75794	//   "parameterOrder": [
75795	//     "project"
75796	//   ],
75797	//   "parameters": {
75798	//     "filter": {
75799	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
75800	//       "location": "query",
75801	//       "type": "string"
75802	//     },
75803	//     "includeAllScopes": {
75804	//       "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.",
75805	//       "location": "query",
75806	//       "type": "boolean"
75807	//     },
75808	//     "maxResults": {
75809	//       "default": "500",
75810	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
75811	//       "format": "uint32",
75812	//       "location": "query",
75813	//       "minimum": "0",
75814	//       "type": "integer"
75815	//     },
75816	//     "orderBy": {
75817	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
75818	//       "location": "query",
75819	//       "type": "string"
75820	//     },
75821	//     "pageToken": {
75822	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
75823	//       "location": "query",
75824	//       "type": "string"
75825	//     },
75826	//     "project": {
75827	//       "description": "Project ID for this request.",
75828	//       "location": "path",
75829	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75830	//       "required": true,
75831	//       "type": "string"
75832	//     }
75833	//   },
75834	//   "path": "{project}/aggregated/instanceGroupManagers",
75835	//   "response": {
75836	//     "$ref": "InstanceGroupManagerAggregatedList"
75837	//   },
75838	//   "scopes": [
75839	//     "https://www.googleapis.com/auth/cloud-platform",
75840	//     "https://www.googleapis.com/auth/compute",
75841	//     "https://www.googleapis.com/auth/compute.readonly"
75842	//   ]
75843	// }
75844
75845}
75846
75847// Pages invokes f for each page of results.
75848// A non-nil error returned from f will halt the iteration.
75849// The provided context supersedes any context provided to the Context method.
75850func (c *InstanceGroupManagersAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerAggregatedList) error) error {
75851	c.ctx_ = ctx
75852	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
75853	for {
75854		x, err := c.Do()
75855		if err != nil {
75856			return err
75857		}
75858		if err := f(x); err != nil {
75859			return err
75860		}
75861		if x.NextPageToken == "" {
75862			return nil
75863		}
75864		c.PageToken(x.NextPageToken)
75865	}
75866}
75867
75868// method id "compute.instanceGroupManagers.applyUpdatesToInstances":
75869
75870type InstanceGroupManagersApplyUpdatesToInstancesCall struct {
75871	s                                        *Service
75872	project                                  string
75873	zone                                     string
75874	instanceGroupManager                     string
75875	instancegroupmanagersapplyupdatesrequest *InstanceGroupManagersApplyUpdatesRequest
75876	urlParams_                               gensupport.URLParams
75877	ctx_                                     context.Context
75878	header_                                  http.Header
75879}
75880
75881// ApplyUpdatesToInstances: Apply changes to selected instances on the
75882// managed instance group. This method can be used to apply new
75883// overrides and/or new versions.
75884func (r *InstanceGroupManagersService) ApplyUpdatesToInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersapplyupdatesrequest *InstanceGroupManagersApplyUpdatesRequest) *InstanceGroupManagersApplyUpdatesToInstancesCall {
75885	c := &InstanceGroupManagersApplyUpdatesToInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75886	c.project = project
75887	c.zone = zone
75888	c.instanceGroupManager = instanceGroupManager
75889	c.instancegroupmanagersapplyupdatesrequest = instancegroupmanagersapplyupdatesrequest
75890	return c
75891}
75892
75893// Fields allows partial responses to be retrieved. See
75894// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75895// for more information.
75896func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersApplyUpdatesToInstancesCall {
75897	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75898	return c
75899}
75900
75901// Context sets the context to be used in this call's Do method. Any
75902// pending HTTP request will be aborted if the provided context is
75903// canceled.
75904func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Context(ctx context.Context) *InstanceGroupManagersApplyUpdatesToInstancesCall {
75905	c.ctx_ = ctx
75906	return c
75907}
75908
75909// Header returns an http.Header that can be modified by the caller to
75910// add HTTP headers to the request.
75911func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Header() http.Header {
75912	if c.header_ == nil {
75913		c.header_ = make(http.Header)
75914	}
75915	return c.header_
75916}
75917
75918func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) doRequest(alt string) (*http.Response, error) {
75919	reqHeaders := make(http.Header)
75920	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
75921	for k, v := range c.header_ {
75922		reqHeaders[k] = v
75923	}
75924	reqHeaders.Set("User-Agent", c.s.userAgent())
75925	var body io.Reader = nil
75926	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersapplyupdatesrequest)
75927	if err != nil {
75928		return nil, err
75929	}
75930	reqHeaders.Set("Content-Type", "application/json")
75931	c.urlParams_.Set("alt", alt)
75932	c.urlParams_.Set("prettyPrint", "false")
75933	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances")
75934	urls += "?" + c.urlParams_.Encode()
75935	req, err := http.NewRequest("POST", urls, body)
75936	if err != nil {
75937		return nil, err
75938	}
75939	req.Header = reqHeaders
75940	googleapi.Expand(req.URL, map[string]string{
75941		"project":              c.project,
75942		"zone":                 c.zone,
75943		"instanceGroupManager": c.instanceGroupManager,
75944	})
75945	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75946}
75947
75948// Do executes the "compute.instanceGroupManagers.applyUpdatesToInstances" call.
75949// Exactly one of *Operation or error will be non-nil. Any non-2xx
75950// status code is an error. Response headers are in either
75951// *Operation.ServerResponse.Header or (if a response was returned at
75952// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75953// to check whether the returned error was because
75954// http.StatusNotModified was returned.
75955func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75956	gensupport.SetOptions(c.urlParams_, opts...)
75957	res, err := c.doRequest("json")
75958	if res != nil && res.StatusCode == http.StatusNotModified {
75959		if res.Body != nil {
75960			res.Body.Close()
75961		}
75962		return nil, &googleapi.Error{
75963			Code:   res.StatusCode,
75964			Header: res.Header,
75965		}
75966	}
75967	if err != nil {
75968		return nil, err
75969	}
75970	defer googleapi.CloseBody(res)
75971	if err := googleapi.CheckResponse(res); err != nil {
75972		return nil, err
75973	}
75974	ret := &Operation{
75975		ServerResponse: googleapi.ServerResponse{
75976			Header:         res.Header,
75977			HTTPStatusCode: res.StatusCode,
75978		},
75979	}
75980	target := &ret
75981	if err := gensupport.DecodeResponse(target, res); err != nil {
75982		return nil, err
75983	}
75984	return ret, nil
75985	// {
75986	//   "description": "Apply changes to selected instances on the managed instance group. This method can be used to apply new overrides and/or new versions.",
75987	//   "httpMethod": "POST",
75988	//   "id": "compute.instanceGroupManagers.applyUpdatesToInstances",
75989	//   "parameterOrder": [
75990	//     "project",
75991	//     "zone",
75992	//     "instanceGroupManager"
75993	//   ],
75994	//   "parameters": {
75995	//     "instanceGroupManager": {
75996	//       "description": "The name of the managed instance group, should conform to RFC1035.",
75997	//       "location": "path",
75998	//       "required": true,
75999	//       "type": "string"
76000	//     },
76001	//     "project": {
76002	//       "description": "Project ID for this request.",
76003	//       "location": "path",
76004	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76005	//       "required": true,
76006	//       "type": "string"
76007	//     },
76008	//     "zone": {
76009	//       "description": "The name of the zone where the managed instance group is located. Should conform to RFC1035.",
76010	//       "location": "path",
76011	//       "required": true,
76012	//       "type": "string"
76013	//     }
76014	//   },
76015	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
76016	//   "request": {
76017	//     "$ref": "InstanceGroupManagersApplyUpdatesRequest"
76018	//   },
76019	//   "response": {
76020	//     "$ref": "Operation"
76021	//   },
76022	//   "scopes": [
76023	//     "https://www.googleapis.com/auth/cloud-platform",
76024	//     "https://www.googleapis.com/auth/compute"
76025	//   ]
76026	// }
76027
76028}
76029
76030// method id "compute.instanceGroupManagers.createInstances":
76031
76032type InstanceGroupManagersCreateInstancesCall struct {
76033	s                                           *Service
76034	project                                     string
76035	zone                                        string
76036	instanceGroupManager                        string
76037	instancegroupmanagerscreateinstancesrequest *InstanceGroupManagersCreateInstancesRequest
76038	urlParams_                                  gensupport.URLParams
76039	ctx_                                        context.Context
76040	header_                                     http.Header
76041}
76042
76043// CreateInstances: Creates instances with per-instance configs in this
76044// managed instance group. Instances are created using the current
76045// instance template. The create instances operation is marked DONE if
76046// the createInstances request is successful. The underlying actions
76047// take additional time. You must separately verify the status of the
76048// creating or actions with the listmanagedinstances method.
76049func (r *InstanceGroupManagersService) CreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagerscreateinstancesrequest *InstanceGroupManagersCreateInstancesRequest) *InstanceGroupManagersCreateInstancesCall {
76050	c := &InstanceGroupManagersCreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76051	c.project = project
76052	c.zone = zone
76053	c.instanceGroupManager = instanceGroupManager
76054	c.instancegroupmanagerscreateinstancesrequest = instancegroupmanagerscreateinstancesrequest
76055	return c
76056}
76057
76058// RequestId sets the optional parameter "requestId": An optional
76059// request ID to identify requests. Specify a unique request ID so that
76060// if you must retry your request, the server will know to ignore the
76061// request if it has already been completed.
76062//
76063// For example, consider a situation where you make an initial request
76064// and the request times out. If you make the request again with the
76065// same request ID, the server can check if original operation with the
76066// same request ID was received, and if so, will ignore the second
76067// request.
76068//
76069// The request ID must be a valid UUID with the exception that zero UUID
76070// is not supported (00000000-0000-0000-0000-000000000000).
76071func (c *InstanceGroupManagersCreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersCreateInstancesCall {
76072	c.urlParams_.Set("requestId", requestId)
76073	return c
76074}
76075
76076// Fields allows partial responses to be retrieved. See
76077// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76078// for more information.
76079func (c *InstanceGroupManagersCreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersCreateInstancesCall {
76080	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76081	return c
76082}
76083
76084// Context sets the context to be used in this call's Do method. Any
76085// pending HTTP request will be aborted if the provided context is
76086// canceled.
76087func (c *InstanceGroupManagersCreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersCreateInstancesCall {
76088	c.ctx_ = ctx
76089	return c
76090}
76091
76092// Header returns an http.Header that can be modified by the caller to
76093// add HTTP headers to the request.
76094func (c *InstanceGroupManagersCreateInstancesCall) Header() http.Header {
76095	if c.header_ == nil {
76096		c.header_ = make(http.Header)
76097	}
76098	return c.header_
76099}
76100
76101func (c *InstanceGroupManagersCreateInstancesCall) doRequest(alt string) (*http.Response, error) {
76102	reqHeaders := make(http.Header)
76103	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
76104	for k, v := range c.header_ {
76105		reqHeaders[k] = v
76106	}
76107	reqHeaders.Set("User-Agent", c.s.userAgent())
76108	var body io.Reader = nil
76109	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerscreateinstancesrequest)
76110	if err != nil {
76111		return nil, err
76112	}
76113	reqHeaders.Set("Content-Type", "application/json")
76114	c.urlParams_.Set("alt", alt)
76115	c.urlParams_.Set("prettyPrint", "false")
76116	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances")
76117	urls += "?" + c.urlParams_.Encode()
76118	req, err := http.NewRequest("POST", urls, body)
76119	if err != nil {
76120		return nil, err
76121	}
76122	req.Header = reqHeaders
76123	googleapi.Expand(req.URL, map[string]string{
76124		"project":              c.project,
76125		"zone":                 c.zone,
76126		"instanceGroupManager": c.instanceGroupManager,
76127	})
76128	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76129}
76130
76131// Do executes the "compute.instanceGroupManagers.createInstances" call.
76132// Exactly one of *Operation or error will be non-nil. Any non-2xx
76133// status code is an error. Response headers are in either
76134// *Operation.ServerResponse.Header or (if a response was returned at
76135// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76136// to check whether the returned error was because
76137// http.StatusNotModified was returned.
76138func (c *InstanceGroupManagersCreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76139	gensupport.SetOptions(c.urlParams_, opts...)
76140	res, err := c.doRequest("json")
76141	if res != nil && res.StatusCode == http.StatusNotModified {
76142		if res.Body != nil {
76143			res.Body.Close()
76144		}
76145		return nil, &googleapi.Error{
76146			Code:   res.StatusCode,
76147			Header: res.Header,
76148		}
76149	}
76150	if err != nil {
76151		return nil, err
76152	}
76153	defer googleapi.CloseBody(res)
76154	if err := googleapi.CheckResponse(res); err != nil {
76155		return nil, err
76156	}
76157	ret := &Operation{
76158		ServerResponse: googleapi.ServerResponse{
76159			Header:         res.Header,
76160			HTTPStatusCode: res.StatusCode,
76161		},
76162	}
76163	target := &ret
76164	if err := gensupport.DecodeResponse(target, res); err != nil {
76165		return nil, err
76166	}
76167	return ret, nil
76168	// {
76169	//   "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.",
76170	//   "httpMethod": "POST",
76171	//   "id": "compute.instanceGroupManagers.createInstances",
76172	//   "parameterOrder": [
76173	//     "project",
76174	//     "zone",
76175	//     "instanceGroupManager"
76176	//   ],
76177	//   "parameters": {
76178	//     "instanceGroupManager": {
76179	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
76180	//       "location": "path",
76181	//       "required": true,
76182	//       "type": "string"
76183	//     },
76184	//     "project": {
76185	//       "description": "Project ID for this request.",
76186	//       "location": "path",
76187	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76188	//       "required": true,
76189	//       "type": "string"
76190	//     },
76191	//     "requestId": {
76192	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same 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).",
76193	//       "location": "query",
76194	//       "type": "string"
76195	//     },
76196	//     "zone": {
76197	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
76198	//       "location": "path",
76199	//       "required": true,
76200	//       "type": "string"
76201	//     }
76202	//   },
76203	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances",
76204	//   "request": {
76205	//     "$ref": "InstanceGroupManagersCreateInstancesRequest"
76206	//   },
76207	//   "response": {
76208	//     "$ref": "Operation"
76209	//   },
76210	//   "scopes": [
76211	//     "https://www.googleapis.com/auth/cloud-platform",
76212	//     "https://www.googleapis.com/auth/compute"
76213	//   ]
76214	// }
76215
76216}
76217
76218// method id "compute.instanceGroupManagers.delete":
76219
76220type InstanceGroupManagersDeleteCall struct {
76221	s                    *Service
76222	project              string
76223	zone                 string
76224	instanceGroupManager string
76225	urlParams_           gensupport.URLParams
76226	ctx_                 context.Context
76227	header_              http.Header
76228}
76229
76230// Delete: Deletes the specified managed instance group and all of the
76231// instances in that group. Note that the instance group must not belong
76232// to a backend service. Read  Deleting an instance group for more
76233// information.
76234func (r *InstanceGroupManagersService) Delete(project string, zone string, instanceGroupManager string) *InstanceGroupManagersDeleteCall {
76235	c := &InstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76236	c.project = project
76237	c.zone = zone
76238	c.instanceGroupManager = instanceGroupManager
76239	return c
76240}
76241
76242// RequestId sets the optional parameter "requestId": An optional
76243// request ID to identify requests. Specify a unique request ID so that
76244// if you must retry your request, the server will know to ignore the
76245// request if it has already been completed.
76246//
76247// For example, consider a situation where you make an initial request
76248// and the request times out. If you make the request again with the
76249// same request ID, the server can check if original operation with the
76250// same request ID was received, and if so, will ignore the second
76251// request. This prevents clients from accidentally creating duplicate
76252// commitments.
76253//
76254// The request ID must be a valid UUID with the exception that zero UUID
76255// is not supported (00000000-0000-0000-0000-000000000000).
76256func (c *InstanceGroupManagersDeleteCall) RequestId(requestId string) *InstanceGroupManagersDeleteCall {
76257	c.urlParams_.Set("requestId", requestId)
76258	return c
76259}
76260
76261// Fields allows partial responses to be retrieved. See
76262// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76263// for more information.
76264func (c *InstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteCall {
76265	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76266	return c
76267}
76268
76269// Context sets the context to be used in this call's Do method. Any
76270// pending HTTP request will be aborted if the provided context is
76271// canceled.
76272func (c *InstanceGroupManagersDeleteCall) Context(ctx context.Context) *InstanceGroupManagersDeleteCall {
76273	c.ctx_ = ctx
76274	return c
76275}
76276
76277// Header returns an http.Header that can be modified by the caller to
76278// add HTTP headers to the request.
76279func (c *InstanceGroupManagersDeleteCall) Header() http.Header {
76280	if c.header_ == nil {
76281		c.header_ = make(http.Header)
76282	}
76283	return c.header_
76284}
76285
76286func (c *InstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) {
76287	reqHeaders := make(http.Header)
76288	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
76289	for k, v := range c.header_ {
76290		reqHeaders[k] = v
76291	}
76292	reqHeaders.Set("User-Agent", c.s.userAgent())
76293	var body io.Reader = nil
76294	c.urlParams_.Set("alt", alt)
76295	c.urlParams_.Set("prettyPrint", "false")
76296	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
76297	urls += "?" + c.urlParams_.Encode()
76298	req, err := http.NewRequest("DELETE", urls, body)
76299	if err != nil {
76300		return nil, err
76301	}
76302	req.Header = reqHeaders
76303	googleapi.Expand(req.URL, map[string]string{
76304		"project":              c.project,
76305		"zone":                 c.zone,
76306		"instanceGroupManager": c.instanceGroupManager,
76307	})
76308	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76309}
76310
76311// Do executes the "compute.instanceGroupManagers.delete" call.
76312// Exactly one of *Operation or error will be non-nil. Any non-2xx
76313// status code is an error. Response headers are in either
76314// *Operation.ServerResponse.Header or (if a response was returned at
76315// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76316// to check whether the returned error was because
76317// http.StatusNotModified was returned.
76318func (c *InstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76319	gensupport.SetOptions(c.urlParams_, opts...)
76320	res, err := c.doRequest("json")
76321	if res != nil && res.StatusCode == http.StatusNotModified {
76322		if res.Body != nil {
76323			res.Body.Close()
76324		}
76325		return nil, &googleapi.Error{
76326			Code:   res.StatusCode,
76327			Header: res.Header,
76328		}
76329	}
76330	if err != nil {
76331		return nil, err
76332	}
76333	defer googleapi.CloseBody(res)
76334	if err := googleapi.CheckResponse(res); err != nil {
76335		return nil, err
76336	}
76337	ret := &Operation{
76338		ServerResponse: googleapi.ServerResponse{
76339			Header:         res.Header,
76340			HTTPStatusCode: res.StatusCode,
76341		},
76342	}
76343	target := &ret
76344	if err := gensupport.DecodeResponse(target, res); err != nil {
76345		return nil, err
76346	}
76347	return ret, nil
76348	// {
76349	//   "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.",
76350	//   "httpMethod": "DELETE",
76351	//   "id": "compute.instanceGroupManagers.delete",
76352	//   "parameterOrder": [
76353	//     "project",
76354	//     "zone",
76355	//     "instanceGroupManager"
76356	//   ],
76357	//   "parameters": {
76358	//     "instanceGroupManager": {
76359	//       "description": "The name of the managed instance group to delete.",
76360	//       "location": "path",
76361	//       "required": true,
76362	//       "type": "string"
76363	//     },
76364	//     "project": {
76365	//       "description": "Project ID for this request.",
76366	//       "location": "path",
76367	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76368	//       "required": true,
76369	//       "type": "string"
76370	//     },
76371	//     "requestId": {
76372	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
76373	//       "location": "query",
76374	//       "type": "string"
76375	//     },
76376	//     "zone": {
76377	//       "description": "The name of the zone where the managed instance group is located.",
76378	//       "location": "path",
76379	//       "required": true,
76380	//       "type": "string"
76381	//     }
76382	//   },
76383	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
76384	//   "response": {
76385	//     "$ref": "Operation"
76386	//   },
76387	//   "scopes": [
76388	//     "https://www.googleapis.com/auth/cloud-platform",
76389	//     "https://www.googleapis.com/auth/compute"
76390	//   ]
76391	// }
76392
76393}
76394
76395// method id "compute.instanceGroupManagers.deleteInstances":
76396
76397type InstanceGroupManagersDeleteInstancesCall struct {
76398	s                                           *Service
76399	project                                     string
76400	zone                                        string
76401	instanceGroupManager                        string
76402	instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest
76403	urlParams_                                  gensupport.URLParams
76404	ctx_                                        context.Context
76405	header_                                     http.Header
76406}
76407
76408// DeleteInstances: Flags the specified instances in the managed
76409// instance group for immediate deletion. The instances are also removed
76410// from any target pools of which they were a member. This method
76411// reduces the targetSize of the managed instance group by the number of
76412// instances that you delete. This operation is marked as DONE when the
76413// action is scheduled even if the instances are still being deleted.
76414// You must separately verify the status of the deleting action with the
76415// listmanagedinstances method.
76416//
76417// If the group is part of a backend service that has enabled connection
76418// draining, it can take up to 60 seconds after the connection draining
76419// duration has elapsed before the VM instance is removed or
76420// deleted.
76421//
76422// You can specify a maximum of 1000 instances with this method per
76423// request.
76424func (r *InstanceGroupManagersService) DeleteInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest) *InstanceGroupManagersDeleteInstancesCall {
76425	c := &InstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76426	c.project = project
76427	c.zone = zone
76428	c.instanceGroupManager = instanceGroupManager
76429	c.instancegroupmanagersdeleteinstancesrequest = instancegroupmanagersdeleteinstancesrequest
76430	return c
76431}
76432
76433// RequestId sets the optional parameter "requestId": An optional
76434// request ID to identify requests. Specify a unique request ID so that
76435// if you must retry your request, the server will know to ignore the
76436// request if it has already been completed.
76437//
76438// For example, consider a situation where you make an initial request
76439// and the request times out. If you make the request again with the
76440// same request ID, the server can check if original operation with the
76441// same request ID was received, and if so, will ignore the second
76442// request. This prevents clients from accidentally creating duplicate
76443// commitments.
76444//
76445// The request ID must be a valid UUID with the exception that zero UUID
76446// is not supported (00000000-0000-0000-0000-000000000000).
76447func (c *InstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *InstanceGroupManagersDeleteInstancesCall {
76448	c.urlParams_.Set("requestId", requestId)
76449	return c
76450}
76451
76452// Fields allows partial responses to be retrieved. See
76453// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76454// for more information.
76455func (c *InstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteInstancesCall {
76456	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76457	return c
76458}
76459
76460// Context sets the context to be used in this call's Do method. Any
76461// pending HTTP request will be aborted if the provided context is
76462// canceled.
76463func (c *InstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *InstanceGroupManagersDeleteInstancesCall {
76464	c.ctx_ = ctx
76465	return c
76466}
76467
76468// Header returns an http.Header that can be modified by the caller to
76469// add HTTP headers to the request.
76470func (c *InstanceGroupManagersDeleteInstancesCall) Header() http.Header {
76471	if c.header_ == nil {
76472		c.header_ = make(http.Header)
76473	}
76474	return c.header_
76475}
76476
76477func (c *InstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) {
76478	reqHeaders := make(http.Header)
76479	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
76480	for k, v := range c.header_ {
76481		reqHeaders[k] = v
76482	}
76483	reqHeaders.Set("User-Agent", c.s.userAgent())
76484	var body io.Reader = nil
76485	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersdeleteinstancesrequest)
76486	if err != nil {
76487		return nil, err
76488	}
76489	reqHeaders.Set("Content-Type", "application/json")
76490	c.urlParams_.Set("alt", alt)
76491	c.urlParams_.Set("prettyPrint", "false")
76492	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances")
76493	urls += "?" + c.urlParams_.Encode()
76494	req, err := http.NewRequest("POST", urls, body)
76495	if err != nil {
76496		return nil, err
76497	}
76498	req.Header = reqHeaders
76499	googleapi.Expand(req.URL, map[string]string{
76500		"project":              c.project,
76501		"zone":                 c.zone,
76502		"instanceGroupManager": c.instanceGroupManager,
76503	})
76504	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76505}
76506
76507// Do executes the "compute.instanceGroupManagers.deleteInstances" call.
76508// Exactly one of *Operation or error will be non-nil. Any non-2xx
76509// status code is an error. Response headers are in either
76510// *Operation.ServerResponse.Header or (if a response was returned at
76511// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76512// to check whether the returned error was because
76513// http.StatusNotModified was returned.
76514func (c *InstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76515	gensupport.SetOptions(c.urlParams_, opts...)
76516	res, err := c.doRequest("json")
76517	if res != nil && res.StatusCode == http.StatusNotModified {
76518		if res.Body != nil {
76519			res.Body.Close()
76520		}
76521		return nil, &googleapi.Error{
76522			Code:   res.StatusCode,
76523			Header: res.Header,
76524		}
76525	}
76526	if err != nil {
76527		return nil, err
76528	}
76529	defer googleapi.CloseBody(res)
76530	if err := googleapi.CheckResponse(res); err != nil {
76531		return nil, err
76532	}
76533	ret := &Operation{
76534		ServerResponse: googleapi.ServerResponse{
76535			Header:         res.Header,
76536			HTTPStatusCode: res.StatusCode,
76537		},
76538	}
76539	target := &ret
76540	if err := gensupport.DecodeResponse(target, res); err != nil {
76541		return nil, err
76542	}
76543	return ret, nil
76544	// {
76545	//   "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.",
76546	//   "httpMethod": "POST",
76547	//   "id": "compute.instanceGroupManagers.deleteInstances",
76548	//   "parameterOrder": [
76549	//     "project",
76550	//     "zone",
76551	//     "instanceGroupManager"
76552	//   ],
76553	//   "parameters": {
76554	//     "instanceGroupManager": {
76555	//       "description": "The name of the managed instance group.",
76556	//       "location": "path",
76557	//       "required": true,
76558	//       "type": "string"
76559	//     },
76560	//     "project": {
76561	//       "description": "Project ID for this request.",
76562	//       "location": "path",
76563	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76564	//       "required": true,
76565	//       "type": "string"
76566	//     },
76567	//     "requestId": {
76568	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
76569	//       "location": "query",
76570	//       "type": "string"
76571	//     },
76572	//     "zone": {
76573	//       "description": "The name of the zone where the managed instance group is located.",
76574	//       "location": "path",
76575	//       "required": true,
76576	//       "type": "string"
76577	//     }
76578	//   },
76579	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
76580	//   "request": {
76581	//     "$ref": "InstanceGroupManagersDeleteInstancesRequest"
76582	//   },
76583	//   "response": {
76584	//     "$ref": "Operation"
76585	//   },
76586	//   "scopes": [
76587	//     "https://www.googleapis.com/auth/cloud-platform",
76588	//     "https://www.googleapis.com/auth/compute"
76589	//   ]
76590	// }
76591
76592}
76593
76594// method id "compute.instanceGroupManagers.deletePerInstanceConfigs":
76595
76596type InstanceGroupManagersDeletePerInstanceConfigsCall struct {
76597	s                                                *Service
76598	project                                          string
76599	zone                                             string
76600	instanceGroupManager                             string
76601	instancegroupmanagersdeleteperinstanceconfigsreq *InstanceGroupManagersDeletePerInstanceConfigsReq
76602	urlParams_                                       gensupport.URLParams
76603	ctx_                                             context.Context
76604	header_                                          http.Header
76605}
76606
76607// DeletePerInstanceConfigs: Deletes selected per-instance configs for
76608// the managed instance group.
76609func (r *InstanceGroupManagersService) DeletePerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagersdeleteperinstanceconfigsreq *InstanceGroupManagersDeletePerInstanceConfigsReq) *InstanceGroupManagersDeletePerInstanceConfigsCall {
76610	c := &InstanceGroupManagersDeletePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76611	c.project = project
76612	c.zone = zone
76613	c.instanceGroupManager = instanceGroupManager
76614	c.instancegroupmanagersdeleteperinstanceconfigsreq = instancegroupmanagersdeleteperinstanceconfigsreq
76615	return c
76616}
76617
76618// Fields allows partial responses to be retrieved. See
76619// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76620// for more information.
76621func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeletePerInstanceConfigsCall {
76622	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76623	return c
76624}
76625
76626// Context sets the context to be used in this call's Do method. Any
76627// pending HTTP request will be aborted if the provided context is
76628// canceled.
76629func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersDeletePerInstanceConfigsCall {
76630	c.ctx_ = ctx
76631	return c
76632}
76633
76634// Header returns an http.Header that can be modified by the caller to
76635// add HTTP headers to the request.
76636func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Header() http.Header {
76637	if c.header_ == nil {
76638		c.header_ = make(http.Header)
76639	}
76640	return c.header_
76641}
76642
76643func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
76644	reqHeaders := make(http.Header)
76645	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
76646	for k, v := range c.header_ {
76647		reqHeaders[k] = v
76648	}
76649	reqHeaders.Set("User-Agent", c.s.userAgent())
76650	var body io.Reader = nil
76651	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersdeleteperinstanceconfigsreq)
76652	if err != nil {
76653		return nil, err
76654	}
76655	reqHeaders.Set("Content-Type", "application/json")
76656	c.urlParams_.Set("alt", alt)
76657	c.urlParams_.Set("prettyPrint", "false")
76658	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs")
76659	urls += "?" + c.urlParams_.Encode()
76660	req, err := http.NewRequest("POST", urls, body)
76661	if err != nil {
76662		return nil, err
76663	}
76664	req.Header = reqHeaders
76665	googleapi.Expand(req.URL, map[string]string{
76666		"project":              c.project,
76667		"zone":                 c.zone,
76668		"instanceGroupManager": c.instanceGroupManager,
76669	})
76670	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76671}
76672
76673// Do executes the "compute.instanceGroupManagers.deletePerInstanceConfigs" call.
76674// Exactly one of *Operation or error will be non-nil. Any non-2xx
76675// status code is an error. Response headers are in either
76676// *Operation.ServerResponse.Header or (if a response was returned at
76677// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76678// to check whether the returned error was because
76679// http.StatusNotModified was returned.
76680func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76681	gensupport.SetOptions(c.urlParams_, opts...)
76682	res, err := c.doRequest("json")
76683	if res != nil && res.StatusCode == http.StatusNotModified {
76684		if res.Body != nil {
76685			res.Body.Close()
76686		}
76687		return nil, &googleapi.Error{
76688			Code:   res.StatusCode,
76689			Header: res.Header,
76690		}
76691	}
76692	if err != nil {
76693		return nil, err
76694	}
76695	defer googleapi.CloseBody(res)
76696	if err := googleapi.CheckResponse(res); err != nil {
76697		return nil, err
76698	}
76699	ret := &Operation{
76700		ServerResponse: googleapi.ServerResponse{
76701			Header:         res.Header,
76702			HTTPStatusCode: res.StatusCode,
76703		},
76704	}
76705	target := &ret
76706	if err := gensupport.DecodeResponse(target, res); err != nil {
76707		return nil, err
76708	}
76709	return ret, nil
76710	// {
76711	//   "description": "Deletes selected per-instance configs for the managed instance group.",
76712	//   "httpMethod": "POST",
76713	//   "id": "compute.instanceGroupManagers.deletePerInstanceConfigs",
76714	//   "parameterOrder": [
76715	//     "project",
76716	//     "zone",
76717	//     "instanceGroupManager"
76718	//   ],
76719	//   "parameters": {
76720	//     "instanceGroupManager": {
76721	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
76722	//       "location": "path",
76723	//       "required": true,
76724	//       "type": "string"
76725	//     },
76726	//     "project": {
76727	//       "description": "Project ID for this request.",
76728	//       "location": "path",
76729	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76730	//       "required": true,
76731	//       "type": "string"
76732	//     },
76733	//     "zone": {
76734	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
76735	//       "location": "path",
76736	//       "required": true,
76737	//       "type": "string"
76738	//     }
76739	//   },
76740	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs",
76741	//   "request": {
76742	//     "$ref": "InstanceGroupManagersDeletePerInstanceConfigsReq"
76743	//   },
76744	//   "response": {
76745	//     "$ref": "Operation"
76746	//   },
76747	//   "scopes": [
76748	//     "https://www.googleapis.com/auth/cloud-platform",
76749	//     "https://www.googleapis.com/auth/compute"
76750	//   ]
76751	// }
76752
76753}
76754
76755// method id "compute.instanceGroupManagers.get":
76756
76757type InstanceGroupManagersGetCall struct {
76758	s                    *Service
76759	project              string
76760	zone                 string
76761	instanceGroupManager string
76762	urlParams_           gensupport.URLParams
76763	ifNoneMatch_         string
76764	ctx_                 context.Context
76765	header_              http.Header
76766}
76767
76768// Get: Returns all of the details about the specified managed instance
76769// group. Gets a list of available managed instance groups by making a
76770// list() request.
76771func (r *InstanceGroupManagersService) Get(project string, zone string, instanceGroupManager string) *InstanceGroupManagersGetCall {
76772	c := &InstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76773	c.project = project
76774	c.zone = zone
76775	c.instanceGroupManager = instanceGroupManager
76776	return c
76777}
76778
76779// Fields allows partial responses to be retrieved. See
76780// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76781// for more information.
76782func (c *InstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *InstanceGroupManagersGetCall {
76783	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76784	return c
76785}
76786
76787// IfNoneMatch sets the optional parameter which makes the operation
76788// fail if the object's ETag matches the given value. This is useful for
76789// getting updates only after the object has changed since the last
76790// request. Use googleapi.IsNotModified to check whether the response
76791// error from Do is the result of In-None-Match.
76792func (c *InstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *InstanceGroupManagersGetCall {
76793	c.ifNoneMatch_ = entityTag
76794	return c
76795}
76796
76797// Context sets the context to be used in this call's Do method. Any
76798// pending HTTP request will be aborted if the provided context is
76799// canceled.
76800func (c *InstanceGroupManagersGetCall) Context(ctx context.Context) *InstanceGroupManagersGetCall {
76801	c.ctx_ = ctx
76802	return c
76803}
76804
76805// Header returns an http.Header that can be modified by the caller to
76806// add HTTP headers to the request.
76807func (c *InstanceGroupManagersGetCall) Header() http.Header {
76808	if c.header_ == nil {
76809		c.header_ = make(http.Header)
76810	}
76811	return c.header_
76812}
76813
76814func (c *InstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) {
76815	reqHeaders := make(http.Header)
76816	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
76817	for k, v := range c.header_ {
76818		reqHeaders[k] = v
76819	}
76820	reqHeaders.Set("User-Agent", c.s.userAgent())
76821	if c.ifNoneMatch_ != "" {
76822		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
76823	}
76824	var body io.Reader = nil
76825	c.urlParams_.Set("alt", alt)
76826	c.urlParams_.Set("prettyPrint", "false")
76827	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
76828	urls += "?" + c.urlParams_.Encode()
76829	req, err := http.NewRequest("GET", urls, body)
76830	if err != nil {
76831		return nil, err
76832	}
76833	req.Header = reqHeaders
76834	googleapi.Expand(req.URL, map[string]string{
76835		"project":              c.project,
76836		"zone":                 c.zone,
76837		"instanceGroupManager": c.instanceGroupManager,
76838	})
76839	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76840}
76841
76842// Do executes the "compute.instanceGroupManagers.get" call.
76843// Exactly one of *InstanceGroupManager or error will be non-nil. Any
76844// non-2xx status code is an error. Response headers are in either
76845// *InstanceGroupManager.ServerResponse.Header or (if a response was
76846// returned at all) in error.(*googleapi.Error).Header. Use
76847// googleapi.IsNotModified to check whether the returned error was
76848// because http.StatusNotModified was returned.
76849func (c *InstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) {
76850	gensupport.SetOptions(c.urlParams_, opts...)
76851	res, err := c.doRequest("json")
76852	if res != nil && res.StatusCode == http.StatusNotModified {
76853		if res.Body != nil {
76854			res.Body.Close()
76855		}
76856		return nil, &googleapi.Error{
76857			Code:   res.StatusCode,
76858			Header: res.Header,
76859		}
76860	}
76861	if err != nil {
76862		return nil, err
76863	}
76864	defer googleapi.CloseBody(res)
76865	if err := googleapi.CheckResponse(res); err != nil {
76866		return nil, err
76867	}
76868	ret := &InstanceGroupManager{
76869		ServerResponse: googleapi.ServerResponse{
76870			Header:         res.Header,
76871			HTTPStatusCode: res.StatusCode,
76872		},
76873	}
76874	target := &ret
76875	if err := gensupport.DecodeResponse(target, res); err != nil {
76876		return nil, err
76877	}
76878	return ret, nil
76879	// {
76880	//   "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.",
76881	//   "httpMethod": "GET",
76882	//   "id": "compute.instanceGroupManagers.get",
76883	//   "parameterOrder": [
76884	//     "project",
76885	//     "zone",
76886	//     "instanceGroupManager"
76887	//   ],
76888	//   "parameters": {
76889	//     "instanceGroupManager": {
76890	//       "description": "The name of the managed instance group.",
76891	//       "location": "path",
76892	//       "required": true,
76893	//       "type": "string"
76894	//     },
76895	//     "project": {
76896	//       "description": "Project ID for this request.",
76897	//       "location": "path",
76898	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76899	//       "required": true,
76900	//       "type": "string"
76901	//     },
76902	//     "zone": {
76903	//       "description": "The name of the zone where the managed instance group is located.",
76904	//       "location": "path",
76905	//       "required": true,
76906	//       "type": "string"
76907	//     }
76908	//   },
76909	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
76910	//   "response": {
76911	//     "$ref": "InstanceGroupManager"
76912	//   },
76913	//   "scopes": [
76914	//     "https://www.googleapis.com/auth/cloud-platform",
76915	//     "https://www.googleapis.com/auth/compute",
76916	//     "https://www.googleapis.com/auth/compute.readonly"
76917	//   ]
76918	// }
76919
76920}
76921
76922// method id "compute.instanceGroupManagers.insert":
76923
76924type InstanceGroupManagersInsertCall struct {
76925	s                    *Service
76926	project              string
76927	zone                 string
76928	instancegroupmanager *InstanceGroupManager
76929	urlParams_           gensupport.URLParams
76930	ctx_                 context.Context
76931	header_              http.Header
76932}
76933
76934// Insert: Creates a managed instance group using the information that
76935// you specify in the request. After the group is created, instances in
76936// the group are created using the specified instance template. This
76937// operation is marked as DONE when the group is created even if the
76938// instances in the group have not yet been created. You must separately
76939// verify the status of the individual instances with the
76940// listmanagedinstances method.
76941//
76942// A managed instance group can have up to 1000 VM instances per group.
76943// Please contact Cloud Support if you need an increase in this limit.
76944func (r *InstanceGroupManagersService) Insert(project string, zone string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersInsertCall {
76945	c := &InstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76946	c.project = project
76947	c.zone = zone
76948	c.instancegroupmanager = instancegroupmanager
76949	return c
76950}
76951
76952// RequestId sets the optional parameter "requestId": An optional
76953// request ID to identify requests. Specify a unique request ID so that
76954// if you must retry your request, the server will know to ignore the
76955// request if it has already been completed.
76956//
76957// For example, consider a situation where you make an initial request
76958// and the request times out. If you make the request again with the
76959// same request ID, the server can check if original operation with the
76960// same request ID was received, and if so, will ignore the second
76961// request. This prevents clients from accidentally creating duplicate
76962// commitments.
76963//
76964// The request ID must be a valid UUID with the exception that zero UUID
76965// is not supported (00000000-0000-0000-0000-000000000000).
76966func (c *InstanceGroupManagersInsertCall) RequestId(requestId string) *InstanceGroupManagersInsertCall {
76967	c.urlParams_.Set("requestId", requestId)
76968	return c
76969}
76970
76971// Fields allows partial responses to be retrieved. See
76972// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76973// for more information.
76974func (c *InstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *InstanceGroupManagersInsertCall {
76975	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76976	return c
76977}
76978
76979// Context sets the context to be used in this call's Do method. Any
76980// pending HTTP request will be aborted if the provided context is
76981// canceled.
76982func (c *InstanceGroupManagersInsertCall) Context(ctx context.Context) *InstanceGroupManagersInsertCall {
76983	c.ctx_ = ctx
76984	return c
76985}
76986
76987// Header returns an http.Header that can be modified by the caller to
76988// add HTTP headers to the request.
76989func (c *InstanceGroupManagersInsertCall) Header() http.Header {
76990	if c.header_ == nil {
76991		c.header_ = make(http.Header)
76992	}
76993	return c.header_
76994}
76995
76996func (c *InstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) {
76997	reqHeaders := make(http.Header)
76998	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
76999	for k, v := range c.header_ {
77000		reqHeaders[k] = v
77001	}
77002	reqHeaders.Set("User-Agent", c.s.userAgent())
77003	var body io.Reader = nil
77004	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
77005	if err != nil {
77006		return nil, err
77007	}
77008	reqHeaders.Set("Content-Type", "application/json")
77009	c.urlParams_.Set("alt", alt)
77010	c.urlParams_.Set("prettyPrint", "false")
77011	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers")
77012	urls += "?" + c.urlParams_.Encode()
77013	req, err := http.NewRequest("POST", urls, body)
77014	if err != nil {
77015		return nil, err
77016	}
77017	req.Header = reqHeaders
77018	googleapi.Expand(req.URL, map[string]string{
77019		"project": c.project,
77020		"zone":    c.zone,
77021	})
77022	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77023}
77024
77025// Do executes the "compute.instanceGroupManagers.insert" call.
77026// Exactly one of *Operation or error will be non-nil. Any non-2xx
77027// status code is an error. Response headers are in either
77028// *Operation.ServerResponse.Header or (if a response was returned at
77029// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77030// to check whether the returned error was because
77031// http.StatusNotModified was returned.
77032func (c *InstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77033	gensupport.SetOptions(c.urlParams_, opts...)
77034	res, err := c.doRequest("json")
77035	if res != nil && res.StatusCode == http.StatusNotModified {
77036		if res.Body != nil {
77037			res.Body.Close()
77038		}
77039		return nil, &googleapi.Error{
77040			Code:   res.StatusCode,
77041			Header: res.Header,
77042		}
77043	}
77044	if err != nil {
77045		return nil, err
77046	}
77047	defer googleapi.CloseBody(res)
77048	if err := googleapi.CheckResponse(res); err != nil {
77049		return nil, err
77050	}
77051	ret := &Operation{
77052		ServerResponse: googleapi.ServerResponse{
77053			Header:         res.Header,
77054			HTTPStatusCode: res.StatusCode,
77055		},
77056	}
77057	target := &ret
77058	if err := gensupport.DecodeResponse(target, res); err != nil {
77059		return nil, err
77060	}
77061	return ret, nil
77062	// {
77063	//   "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.",
77064	//   "httpMethod": "POST",
77065	//   "id": "compute.instanceGroupManagers.insert",
77066	//   "parameterOrder": [
77067	//     "project",
77068	//     "zone"
77069	//   ],
77070	//   "parameters": {
77071	//     "project": {
77072	//       "description": "Project ID for this request.",
77073	//       "location": "path",
77074	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77075	//       "required": true,
77076	//       "type": "string"
77077	//     },
77078	//     "requestId": {
77079	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77080	//       "location": "query",
77081	//       "type": "string"
77082	//     },
77083	//     "zone": {
77084	//       "description": "The name of the zone where you want to create the managed instance group.",
77085	//       "location": "path",
77086	//       "required": true,
77087	//       "type": "string"
77088	//     }
77089	//   },
77090	//   "path": "{project}/zones/{zone}/instanceGroupManagers",
77091	//   "request": {
77092	//     "$ref": "InstanceGroupManager"
77093	//   },
77094	//   "response": {
77095	//     "$ref": "Operation"
77096	//   },
77097	//   "scopes": [
77098	//     "https://www.googleapis.com/auth/cloud-platform",
77099	//     "https://www.googleapis.com/auth/compute"
77100	//   ]
77101	// }
77102
77103}
77104
77105// method id "compute.instanceGroupManagers.list":
77106
77107type InstanceGroupManagersListCall struct {
77108	s            *Service
77109	project      string
77110	zone         string
77111	urlParams_   gensupport.URLParams
77112	ifNoneMatch_ string
77113	ctx_         context.Context
77114	header_      http.Header
77115}
77116
77117// List: Retrieves a list of managed instance groups that are contained
77118// within the specified project and zone.
77119func (r *InstanceGroupManagersService) List(project string, zone string) *InstanceGroupManagersListCall {
77120	c := &InstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77121	c.project = project
77122	c.zone = zone
77123	return c
77124}
77125
77126// Filter sets the optional parameter "filter": A filter expression that
77127// filters resources listed in the response. The expression must specify
77128// the field name, a comparison operator, and the value that you want to
77129// use for filtering. The value must be a string, a number, or a
77130// boolean. The comparison operator must be either =, !=, >, or <.
77131//
77132// For example, if you are filtering Compute Engine instances, you can
77133// exclude instances named example-instance by specifying name !=
77134// example-instance.
77135//
77136// You can also filter nested fields. For example, you could specify
77137// scheduling.automaticRestart = false to include instances only if they
77138// are not scheduled for automatic restarts. You can use filtering on
77139// nested fields to filter based on resource labels.
77140//
77141// To filter on multiple expressions, provide each separate expression
77142// within parentheses. For example, (scheduling.automaticRestart = true)
77143// (cpuPlatform = "Intel Skylake"). By default, each expression is an
77144// AND expression. However, you can include AND and OR expressions
77145// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
77146// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
77147// true).
77148func (c *InstanceGroupManagersListCall) Filter(filter string) *InstanceGroupManagersListCall {
77149	c.urlParams_.Set("filter", filter)
77150	return c
77151}
77152
77153// MaxResults sets the optional parameter "maxResults": The maximum
77154// number of results per page that should be returned. If the number of
77155// available results is larger than maxResults, Compute Engine returns a
77156// nextPageToken that can be used to get the next page of results in
77157// subsequent list requests. Acceptable values are 0 to 500, inclusive.
77158// (Default: 500)
77159func (c *InstanceGroupManagersListCall) MaxResults(maxResults int64) *InstanceGroupManagersListCall {
77160	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
77161	return c
77162}
77163
77164// OrderBy sets the optional parameter "orderBy": Sorts list results by
77165// a certain order. By default, results are returned in alphanumerical
77166// order based on the resource name.
77167//
77168// You can also sort results in descending order based on the creation
77169// timestamp using orderBy="creationTimestamp desc". This sorts results
77170// based on the creationTimestamp field in reverse chronological order
77171// (newest result first). Use this to sort resources like operations so
77172// that the newest operation is returned first.
77173//
77174// Currently, only sorting by name or creationTimestamp desc is
77175// supported.
77176func (c *InstanceGroupManagersListCall) OrderBy(orderBy string) *InstanceGroupManagersListCall {
77177	c.urlParams_.Set("orderBy", orderBy)
77178	return c
77179}
77180
77181// PageToken sets the optional parameter "pageToken": Specifies a page
77182// token to use. Set pageToken to the nextPageToken returned by a
77183// previous list request to get the next page of results.
77184func (c *InstanceGroupManagersListCall) PageToken(pageToken string) *InstanceGroupManagersListCall {
77185	c.urlParams_.Set("pageToken", pageToken)
77186	return c
77187}
77188
77189// Fields allows partial responses to be retrieved. See
77190// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77191// for more information.
77192func (c *InstanceGroupManagersListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListCall {
77193	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77194	return c
77195}
77196
77197// IfNoneMatch sets the optional parameter which makes the operation
77198// fail if the object's ETag matches the given value. This is useful for
77199// getting updates only after the object has changed since the last
77200// request. Use googleapi.IsNotModified to check whether the response
77201// error from Do is the result of In-None-Match.
77202func (c *InstanceGroupManagersListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListCall {
77203	c.ifNoneMatch_ = entityTag
77204	return c
77205}
77206
77207// Context sets the context to be used in this call's Do method. Any
77208// pending HTTP request will be aborted if the provided context is
77209// canceled.
77210func (c *InstanceGroupManagersListCall) Context(ctx context.Context) *InstanceGroupManagersListCall {
77211	c.ctx_ = ctx
77212	return c
77213}
77214
77215// Header returns an http.Header that can be modified by the caller to
77216// add HTTP headers to the request.
77217func (c *InstanceGroupManagersListCall) Header() http.Header {
77218	if c.header_ == nil {
77219		c.header_ = make(http.Header)
77220	}
77221	return c.header_
77222}
77223
77224func (c *InstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) {
77225	reqHeaders := make(http.Header)
77226	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
77227	for k, v := range c.header_ {
77228		reqHeaders[k] = v
77229	}
77230	reqHeaders.Set("User-Agent", c.s.userAgent())
77231	if c.ifNoneMatch_ != "" {
77232		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
77233	}
77234	var body io.Reader = nil
77235	c.urlParams_.Set("alt", alt)
77236	c.urlParams_.Set("prettyPrint", "false")
77237	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers")
77238	urls += "?" + c.urlParams_.Encode()
77239	req, err := http.NewRequest("GET", urls, body)
77240	if err != nil {
77241		return nil, err
77242	}
77243	req.Header = reqHeaders
77244	googleapi.Expand(req.URL, map[string]string{
77245		"project": c.project,
77246		"zone":    c.zone,
77247	})
77248	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77249}
77250
77251// Do executes the "compute.instanceGroupManagers.list" call.
77252// Exactly one of *InstanceGroupManagerList or error will be non-nil.
77253// Any non-2xx status code is an error. Response headers are in either
77254// *InstanceGroupManagerList.ServerResponse.Header or (if a response was
77255// returned at all) in error.(*googleapi.Error).Header. Use
77256// googleapi.IsNotModified to check whether the returned error was
77257// because http.StatusNotModified was returned.
77258func (c *InstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerList, error) {
77259	gensupport.SetOptions(c.urlParams_, opts...)
77260	res, err := c.doRequest("json")
77261	if res != nil && res.StatusCode == http.StatusNotModified {
77262		if res.Body != nil {
77263			res.Body.Close()
77264		}
77265		return nil, &googleapi.Error{
77266			Code:   res.StatusCode,
77267			Header: res.Header,
77268		}
77269	}
77270	if err != nil {
77271		return nil, err
77272	}
77273	defer googleapi.CloseBody(res)
77274	if err := googleapi.CheckResponse(res); err != nil {
77275		return nil, err
77276	}
77277	ret := &InstanceGroupManagerList{
77278		ServerResponse: googleapi.ServerResponse{
77279			Header:         res.Header,
77280			HTTPStatusCode: res.StatusCode,
77281		},
77282	}
77283	target := &ret
77284	if err := gensupport.DecodeResponse(target, res); err != nil {
77285		return nil, err
77286	}
77287	return ret, nil
77288	// {
77289	//   "description": "Retrieves a list of managed instance groups that are contained within the specified project and zone.",
77290	//   "httpMethod": "GET",
77291	//   "id": "compute.instanceGroupManagers.list",
77292	//   "parameterOrder": [
77293	//     "project",
77294	//     "zone"
77295	//   ],
77296	//   "parameters": {
77297	//     "filter": {
77298	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
77299	//       "location": "query",
77300	//       "type": "string"
77301	//     },
77302	//     "maxResults": {
77303	//       "default": "500",
77304	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
77305	//       "format": "uint32",
77306	//       "location": "query",
77307	//       "minimum": "0",
77308	//       "type": "integer"
77309	//     },
77310	//     "orderBy": {
77311	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
77312	//       "location": "query",
77313	//       "type": "string"
77314	//     },
77315	//     "pageToken": {
77316	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
77317	//       "location": "query",
77318	//       "type": "string"
77319	//     },
77320	//     "project": {
77321	//       "description": "Project ID for this request.",
77322	//       "location": "path",
77323	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77324	//       "required": true,
77325	//       "type": "string"
77326	//     },
77327	//     "zone": {
77328	//       "description": "The name of the zone where the managed instance group is located.",
77329	//       "location": "path",
77330	//       "required": true,
77331	//       "type": "string"
77332	//     }
77333	//   },
77334	//   "path": "{project}/zones/{zone}/instanceGroupManagers",
77335	//   "response": {
77336	//     "$ref": "InstanceGroupManagerList"
77337	//   },
77338	//   "scopes": [
77339	//     "https://www.googleapis.com/auth/cloud-platform",
77340	//     "https://www.googleapis.com/auth/compute",
77341	//     "https://www.googleapis.com/auth/compute.readonly"
77342	//   ]
77343	// }
77344
77345}
77346
77347// Pages invokes f for each page of results.
77348// A non-nil error returned from f will halt the iteration.
77349// The provided context supersedes any context provided to the Context method.
77350func (c *InstanceGroupManagersListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerList) error) error {
77351	c.ctx_ = ctx
77352	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
77353	for {
77354		x, err := c.Do()
77355		if err != nil {
77356			return err
77357		}
77358		if err := f(x); err != nil {
77359			return err
77360		}
77361		if x.NextPageToken == "" {
77362			return nil
77363		}
77364		c.PageToken(x.NextPageToken)
77365	}
77366}
77367
77368// method id "compute.instanceGroupManagers.listErrors":
77369
77370type InstanceGroupManagersListErrorsCall struct {
77371	s                    *Service
77372	project              string
77373	zone                 string
77374	instanceGroupManager string
77375	urlParams_           gensupport.URLParams
77376	ifNoneMatch_         string
77377	ctx_                 context.Context
77378	header_              http.Header
77379}
77380
77381// ListErrors: Lists all errors thrown by actions on instances for a
77382// given managed instance group.
77383func (r *InstanceGroupManagersService) ListErrors(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListErrorsCall {
77384	c := &InstanceGroupManagersListErrorsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77385	c.project = project
77386	c.zone = zone
77387	c.instanceGroupManager = instanceGroupManager
77388	return c
77389}
77390
77391// Filter sets the optional parameter "filter": A filter expression that
77392// filters resources listed in the response. The expression must specify
77393// the field name, a comparison operator, and the value that you want to
77394// use for filtering. The value must be a string, a number, or a
77395// boolean. The comparison operator must be either =, !=, >, or <.
77396//
77397// For example, if you are filtering Compute Engine instances, you can
77398// exclude instances named example-instance by specifying name !=
77399// example-instance.
77400//
77401// You can also filter nested fields. For example, you could specify
77402// scheduling.automaticRestart = false to include instances only if they
77403// are not scheduled for automatic restarts. You can use filtering on
77404// nested fields to filter based on resource labels.
77405//
77406// To filter on multiple expressions, provide each separate expression
77407// within parentheses. For example, (scheduling.automaticRestart = true)
77408// (cpuPlatform = "Intel Skylake"). By default, each expression is an
77409// AND expression. However, you can include AND and OR expressions
77410// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
77411// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
77412// true).
77413func (c *InstanceGroupManagersListErrorsCall) Filter(filter string) *InstanceGroupManagersListErrorsCall {
77414	c.urlParams_.Set("filter", filter)
77415	return c
77416}
77417
77418// MaxResults sets the optional parameter "maxResults": The maximum
77419// number of results per page that should be returned. If the number of
77420// available results is larger than maxResults, Compute Engine returns a
77421// nextPageToken that can be used to get the next page of results in
77422// subsequent list requests. Acceptable values are 0 to 500, inclusive.
77423// (Default: 500)
77424func (c *InstanceGroupManagersListErrorsCall) MaxResults(maxResults int64) *InstanceGroupManagersListErrorsCall {
77425	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
77426	return c
77427}
77428
77429// OrderBy sets the optional parameter "orderBy": Sorts list results by
77430// a certain order. By default, results are returned in alphanumerical
77431// order based on the resource name.
77432//
77433// You can also sort results in descending order based on the creation
77434// timestamp using orderBy="creationTimestamp desc". This sorts results
77435// based on the creationTimestamp field in reverse chronological order
77436// (newest result first). Use this to sort resources like operations so
77437// that the newest operation is returned first.
77438//
77439// Currently, only sorting by name or creationTimestamp desc is
77440// supported.
77441func (c *InstanceGroupManagersListErrorsCall) OrderBy(orderBy string) *InstanceGroupManagersListErrorsCall {
77442	c.urlParams_.Set("orderBy", orderBy)
77443	return c
77444}
77445
77446// PageToken sets the optional parameter "pageToken": Specifies a page
77447// token to use. Set pageToken to the nextPageToken returned by a
77448// previous list request to get the next page of results.
77449func (c *InstanceGroupManagersListErrorsCall) PageToken(pageToken string) *InstanceGroupManagersListErrorsCall {
77450	c.urlParams_.Set("pageToken", pageToken)
77451	return c
77452}
77453
77454// Fields allows partial responses to be retrieved. See
77455// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77456// for more information.
77457func (c *InstanceGroupManagersListErrorsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListErrorsCall {
77458	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77459	return c
77460}
77461
77462// IfNoneMatch sets the optional parameter which makes the operation
77463// fail if the object's ETag matches the given value. This is useful for
77464// getting updates only after the object has changed since the last
77465// request. Use googleapi.IsNotModified to check whether the response
77466// error from Do is the result of In-None-Match.
77467func (c *InstanceGroupManagersListErrorsCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListErrorsCall {
77468	c.ifNoneMatch_ = entityTag
77469	return c
77470}
77471
77472// Context sets the context to be used in this call's Do method. Any
77473// pending HTTP request will be aborted if the provided context is
77474// canceled.
77475func (c *InstanceGroupManagersListErrorsCall) Context(ctx context.Context) *InstanceGroupManagersListErrorsCall {
77476	c.ctx_ = ctx
77477	return c
77478}
77479
77480// Header returns an http.Header that can be modified by the caller to
77481// add HTTP headers to the request.
77482func (c *InstanceGroupManagersListErrorsCall) Header() http.Header {
77483	if c.header_ == nil {
77484		c.header_ = make(http.Header)
77485	}
77486	return c.header_
77487}
77488
77489func (c *InstanceGroupManagersListErrorsCall) doRequest(alt string) (*http.Response, error) {
77490	reqHeaders := make(http.Header)
77491	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
77492	for k, v := range c.header_ {
77493		reqHeaders[k] = v
77494	}
77495	reqHeaders.Set("User-Agent", c.s.userAgent())
77496	if c.ifNoneMatch_ != "" {
77497		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
77498	}
77499	var body io.Reader = nil
77500	c.urlParams_.Set("alt", alt)
77501	c.urlParams_.Set("prettyPrint", "false")
77502	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors")
77503	urls += "?" + c.urlParams_.Encode()
77504	req, err := http.NewRequest("GET", urls, body)
77505	if err != nil {
77506		return nil, err
77507	}
77508	req.Header = reqHeaders
77509	googleapi.Expand(req.URL, map[string]string{
77510		"project":              c.project,
77511		"zone":                 c.zone,
77512		"instanceGroupManager": c.instanceGroupManager,
77513	})
77514	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77515}
77516
77517// Do executes the "compute.instanceGroupManagers.listErrors" call.
77518// Exactly one of *InstanceGroupManagersListErrorsResponse or error will
77519// be non-nil. Any non-2xx status code is an error. Response headers are
77520// in either
77521// *InstanceGroupManagersListErrorsResponse.ServerResponse.Header or (if
77522// a response was returned at all) in error.(*googleapi.Error).Header.
77523// Use googleapi.IsNotModified to check whether the returned error was
77524// because http.StatusNotModified was returned.
77525func (c *InstanceGroupManagersListErrorsCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListErrorsResponse, error) {
77526	gensupport.SetOptions(c.urlParams_, opts...)
77527	res, err := c.doRequest("json")
77528	if res != nil && res.StatusCode == http.StatusNotModified {
77529		if res.Body != nil {
77530			res.Body.Close()
77531		}
77532		return nil, &googleapi.Error{
77533			Code:   res.StatusCode,
77534			Header: res.Header,
77535		}
77536	}
77537	if err != nil {
77538		return nil, err
77539	}
77540	defer googleapi.CloseBody(res)
77541	if err := googleapi.CheckResponse(res); err != nil {
77542		return nil, err
77543	}
77544	ret := &InstanceGroupManagersListErrorsResponse{
77545		ServerResponse: googleapi.ServerResponse{
77546			Header:         res.Header,
77547			HTTPStatusCode: res.StatusCode,
77548		},
77549	}
77550	target := &ret
77551	if err := gensupport.DecodeResponse(target, res); err != nil {
77552		return nil, err
77553	}
77554	return ret, nil
77555	// {
77556	//   "description": "Lists all errors thrown by actions on instances for a given managed instance group.",
77557	//   "httpMethod": "GET",
77558	//   "id": "compute.instanceGroupManagers.listErrors",
77559	//   "parameterOrder": [
77560	//     "project",
77561	//     "zone",
77562	//     "instanceGroupManager"
77563	//   ],
77564	//   "parameters": {
77565	//     "filter": {
77566	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
77567	//       "location": "query",
77568	//       "type": "string"
77569	//     },
77570	//     "instanceGroupManager": {
77571	//       "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}.",
77572	//       "location": "path",
77573	//       "required": true,
77574	//       "type": "string"
77575	//     },
77576	//     "maxResults": {
77577	//       "default": "500",
77578	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
77579	//       "format": "uint32",
77580	//       "location": "query",
77581	//       "minimum": "0",
77582	//       "type": "integer"
77583	//     },
77584	//     "orderBy": {
77585	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
77586	//       "location": "query",
77587	//       "type": "string"
77588	//     },
77589	//     "pageToken": {
77590	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
77591	//       "location": "query",
77592	//       "type": "string"
77593	//     },
77594	//     "project": {
77595	//       "description": "Project ID for this request.",
77596	//       "location": "path",
77597	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77598	//       "required": true,
77599	//       "type": "string"
77600	//     },
77601	//     "zone": {
77602	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
77603	//       "location": "path",
77604	//       "required": true,
77605	//       "type": "string"
77606	//     }
77607	//   },
77608	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors",
77609	//   "response": {
77610	//     "$ref": "InstanceGroupManagersListErrorsResponse"
77611	//   },
77612	//   "scopes": [
77613	//     "https://www.googleapis.com/auth/cloud-platform",
77614	//     "https://www.googleapis.com/auth/compute",
77615	//     "https://www.googleapis.com/auth/compute.readonly"
77616	//   ]
77617	// }
77618
77619}
77620
77621// Pages invokes f for each page of results.
77622// A non-nil error returned from f will halt the iteration.
77623// The provided context supersedes any context provided to the Context method.
77624func (c *InstanceGroupManagersListErrorsCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListErrorsResponse) error) error {
77625	c.ctx_ = ctx
77626	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
77627	for {
77628		x, err := c.Do()
77629		if err != nil {
77630			return err
77631		}
77632		if err := f(x); err != nil {
77633			return err
77634		}
77635		if x.NextPageToken == "" {
77636			return nil
77637		}
77638		c.PageToken(x.NextPageToken)
77639	}
77640}
77641
77642// method id "compute.instanceGroupManagers.listManagedInstances":
77643
77644type InstanceGroupManagersListManagedInstancesCall struct {
77645	s                    *Service
77646	project              string
77647	zone                 string
77648	instanceGroupManager string
77649	urlParams_           gensupport.URLParams
77650	ctx_                 context.Context
77651	header_              http.Header
77652}
77653
77654// ListManagedInstances: Lists all of the instances in the managed
77655// instance group. Each instance in the list has a currentAction, which
77656// indicates the action that the managed instance group is performing on
77657// the instance. For example, if the group is still creating an
77658// instance, the currentAction is CREATING. If a previous action failed,
77659// the list displays the errors for that failed action.
77660func (r *InstanceGroupManagersService) ListManagedInstances(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListManagedInstancesCall {
77661	c := &InstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77662	c.project = project
77663	c.zone = zone
77664	c.instanceGroupManager = instanceGroupManager
77665	return c
77666}
77667
77668// Filter sets the optional parameter "filter": A filter expression that
77669// filters resources listed in the response. The expression must specify
77670// the field name, a comparison operator, and the value that you want to
77671// use for filtering. The value must be a string, a number, or a
77672// boolean. The comparison operator must be either =, !=, >, or <.
77673//
77674// For example, if you are filtering Compute Engine instances, you can
77675// exclude instances named example-instance by specifying name !=
77676// example-instance.
77677//
77678// You can also filter nested fields. For example, you could specify
77679// scheduling.automaticRestart = false to include instances only if they
77680// are not scheduled for automatic restarts. You can use filtering on
77681// nested fields to filter based on resource labels.
77682//
77683// To filter on multiple expressions, provide each separate expression
77684// within parentheses. For example, (scheduling.automaticRestart = true)
77685// (cpuPlatform = "Intel Skylake"). By default, each expression is an
77686// AND expression. However, you can include AND and OR expressions
77687// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
77688// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
77689// true).
77690func (c *InstanceGroupManagersListManagedInstancesCall) Filter(filter string) *InstanceGroupManagersListManagedInstancesCall {
77691	c.urlParams_.Set("filter", filter)
77692	return c
77693}
77694
77695// MaxResults sets the optional parameter "maxResults": The maximum
77696// number of results per page that should be returned. If the number of
77697// available results is larger than maxResults, Compute Engine returns a
77698// nextPageToken that can be used to get the next page of results in
77699// subsequent list requests. Acceptable values are 0 to 500, inclusive.
77700// (Default: 500)
77701func (c *InstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *InstanceGroupManagersListManagedInstancesCall {
77702	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
77703	return c
77704}
77705
77706// OrderBy sets the optional parameter "order_by": Sorts list results by
77707// a certain order. By default, results are returned in alphanumerical
77708// order based on the resource name.
77709//
77710// You can also sort results in descending order based on the creation
77711// timestamp using orderBy="creationTimestamp desc". This sorts results
77712// based on the creationTimestamp field in reverse chronological order
77713// (newest result first). Use this to sort resources like operations so
77714// that the newest operation is returned first.
77715//
77716// Currently, only sorting by name or creationTimestamp desc is
77717// supported.
77718func (c *InstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *InstanceGroupManagersListManagedInstancesCall {
77719	c.urlParams_.Set("order_by", orderBy)
77720	return c
77721}
77722
77723// PageToken sets the optional parameter "pageToken": Specifies a page
77724// token to use. Set pageToken to the nextPageToken returned by a
77725// previous list request to get the next page of results.
77726func (c *InstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *InstanceGroupManagersListManagedInstancesCall {
77727	c.urlParams_.Set("pageToken", pageToken)
77728	return c
77729}
77730
77731// Fields allows partial responses to be retrieved. See
77732// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77733// for more information.
77734func (c *InstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListManagedInstancesCall {
77735	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77736	return c
77737}
77738
77739// Context sets the context to be used in this call's Do method. Any
77740// pending HTTP request will be aborted if the provided context is
77741// canceled.
77742func (c *InstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *InstanceGroupManagersListManagedInstancesCall {
77743	c.ctx_ = ctx
77744	return c
77745}
77746
77747// Header returns an http.Header that can be modified by the caller to
77748// add HTTP headers to the request.
77749func (c *InstanceGroupManagersListManagedInstancesCall) Header() http.Header {
77750	if c.header_ == nil {
77751		c.header_ = make(http.Header)
77752	}
77753	return c.header_
77754}
77755
77756func (c *InstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) {
77757	reqHeaders := make(http.Header)
77758	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
77759	for k, v := range c.header_ {
77760		reqHeaders[k] = v
77761	}
77762	reqHeaders.Set("User-Agent", c.s.userAgent())
77763	var body io.Reader = nil
77764	c.urlParams_.Set("alt", alt)
77765	c.urlParams_.Set("prettyPrint", "false")
77766	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances")
77767	urls += "?" + c.urlParams_.Encode()
77768	req, err := http.NewRequest("POST", urls, body)
77769	if err != nil {
77770		return nil, err
77771	}
77772	req.Header = reqHeaders
77773	googleapi.Expand(req.URL, map[string]string{
77774		"project":              c.project,
77775		"zone":                 c.zone,
77776		"instanceGroupManager": c.instanceGroupManager,
77777	})
77778	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77779}
77780
77781// Do executes the "compute.instanceGroupManagers.listManagedInstances" call.
77782// Exactly one of *InstanceGroupManagersListManagedInstancesResponse or
77783// error will be non-nil. Any non-2xx status code is an error. Response
77784// headers are in either
77785// *InstanceGroupManagersListManagedInstancesResponse.ServerResponse.Head
77786// er or (if a response was returned at all) in
77787// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
77788// whether the returned error was because http.StatusNotModified was
77789// returned.
77790func (c *InstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListManagedInstancesResponse, error) {
77791	gensupport.SetOptions(c.urlParams_, opts...)
77792	res, err := c.doRequest("json")
77793	if res != nil && res.StatusCode == http.StatusNotModified {
77794		if res.Body != nil {
77795			res.Body.Close()
77796		}
77797		return nil, &googleapi.Error{
77798			Code:   res.StatusCode,
77799			Header: res.Header,
77800		}
77801	}
77802	if err != nil {
77803		return nil, err
77804	}
77805	defer googleapi.CloseBody(res)
77806	if err := googleapi.CheckResponse(res); err != nil {
77807		return nil, err
77808	}
77809	ret := &InstanceGroupManagersListManagedInstancesResponse{
77810		ServerResponse: googleapi.ServerResponse{
77811			Header:         res.Header,
77812			HTTPStatusCode: res.StatusCode,
77813		},
77814	}
77815	target := &ret
77816	if err := gensupport.DecodeResponse(target, res); err != nil {
77817		return nil, err
77818	}
77819	return ret, nil
77820	// {
77821	//   "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.",
77822	//   "httpMethod": "POST",
77823	//   "id": "compute.instanceGroupManagers.listManagedInstances",
77824	//   "parameterOrder": [
77825	//     "project",
77826	//     "zone",
77827	//     "instanceGroupManager"
77828	//   ],
77829	//   "parameters": {
77830	//     "filter": {
77831	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
77832	//       "location": "query",
77833	//       "type": "string"
77834	//     },
77835	//     "instanceGroupManager": {
77836	//       "description": "The name of the managed instance group.",
77837	//       "location": "path",
77838	//       "required": true,
77839	//       "type": "string"
77840	//     },
77841	//     "maxResults": {
77842	//       "default": "500",
77843	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
77844	//       "format": "uint32",
77845	//       "location": "query",
77846	//       "minimum": "0",
77847	//       "type": "integer"
77848	//     },
77849	//     "order_by": {
77850	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
77851	//       "location": "query",
77852	//       "type": "string"
77853	//     },
77854	//     "pageToken": {
77855	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
77856	//       "location": "query",
77857	//       "type": "string"
77858	//     },
77859	//     "project": {
77860	//       "description": "Project ID for this request.",
77861	//       "location": "path",
77862	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77863	//       "required": true,
77864	//       "type": "string"
77865	//     },
77866	//     "zone": {
77867	//       "description": "The name of the zone where the managed instance group is located.",
77868	//       "location": "path",
77869	//       "required": true,
77870	//       "type": "string"
77871	//     }
77872	//   },
77873	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
77874	//   "response": {
77875	//     "$ref": "InstanceGroupManagersListManagedInstancesResponse"
77876	//   },
77877	//   "scopes": [
77878	//     "https://www.googleapis.com/auth/cloud-platform",
77879	//     "https://www.googleapis.com/auth/compute",
77880	//     "https://www.googleapis.com/auth/compute.readonly"
77881	//   ]
77882	// }
77883
77884}
77885
77886// Pages invokes f for each page of results.
77887// A non-nil error returned from f will halt the iteration.
77888// The provided context supersedes any context provided to the Context method.
77889func (c *InstanceGroupManagersListManagedInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListManagedInstancesResponse) error) error {
77890	c.ctx_ = ctx
77891	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
77892	for {
77893		x, err := c.Do()
77894		if err != nil {
77895			return err
77896		}
77897		if err := f(x); err != nil {
77898			return err
77899		}
77900		if x.NextPageToken == "" {
77901			return nil
77902		}
77903		c.PageToken(x.NextPageToken)
77904	}
77905}
77906
77907// method id "compute.instanceGroupManagers.listPerInstanceConfigs":
77908
77909type InstanceGroupManagersListPerInstanceConfigsCall struct {
77910	s                    *Service
77911	project              string
77912	zone                 string
77913	instanceGroupManager string
77914	urlParams_           gensupport.URLParams
77915	ctx_                 context.Context
77916	header_              http.Header
77917}
77918
77919// ListPerInstanceConfigs: Lists all of the per-instance configs defined
77920// for the managed instance group.
77921func (r *InstanceGroupManagersService) ListPerInstanceConfigs(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListPerInstanceConfigsCall {
77922	c := &InstanceGroupManagersListPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77923	c.project = project
77924	c.zone = zone
77925	c.instanceGroupManager = instanceGroupManager
77926	return c
77927}
77928
77929// Filter sets the optional parameter "filter": A filter expression that
77930// filters resources listed in the response. The expression must specify
77931// the field name, a comparison operator, and the value that you want to
77932// use for filtering. The value must be a string, a number, or a
77933// boolean. The comparison operator must be either =, !=, >, or <.
77934//
77935// For example, if you are filtering Compute Engine instances, you can
77936// exclude instances named example-instance by specifying name !=
77937// example-instance.
77938//
77939// You can also filter nested fields. For example, you could specify
77940// scheduling.automaticRestart = false to include instances only if they
77941// are not scheduled for automatic restarts. You can use filtering on
77942// nested fields to filter based on resource labels.
77943//
77944// To filter on multiple expressions, provide each separate expression
77945// within parentheses. For example, (scheduling.automaticRestart = true)
77946// (cpuPlatform = "Intel Skylake"). By default, each expression is an
77947// AND expression. However, you can include AND and OR expressions
77948// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
77949// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
77950// true).
77951func (c *InstanceGroupManagersListPerInstanceConfigsCall) Filter(filter string) *InstanceGroupManagersListPerInstanceConfigsCall {
77952	c.urlParams_.Set("filter", filter)
77953	return c
77954}
77955
77956// MaxResults sets the optional parameter "maxResults": The maximum
77957// number of results per page that should be returned. If the number of
77958// available results is larger than maxResults, Compute Engine returns a
77959// nextPageToken that can be used to get the next page of results in
77960// subsequent list requests. Acceptable values are 0 to 500, inclusive.
77961// (Default: 500)
77962func (c *InstanceGroupManagersListPerInstanceConfigsCall) MaxResults(maxResults int64) *InstanceGroupManagersListPerInstanceConfigsCall {
77963	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
77964	return c
77965}
77966
77967// OrderBy sets the optional parameter "orderBy": Sorts list results by
77968// a certain order. By default, results are returned in alphanumerical
77969// order based on the resource name.
77970//
77971// You can also sort results in descending order based on the creation
77972// timestamp using orderBy="creationTimestamp desc". This sorts results
77973// based on the creationTimestamp field in reverse chronological order
77974// (newest result first). Use this to sort resources like operations so
77975// that the newest operation is returned first.
77976//
77977// Currently, only sorting by name or creationTimestamp desc is
77978// supported.
77979func (c *InstanceGroupManagersListPerInstanceConfigsCall) OrderBy(orderBy string) *InstanceGroupManagersListPerInstanceConfigsCall {
77980	c.urlParams_.Set("orderBy", orderBy)
77981	return c
77982}
77983
77984// PageToken sets the optional parameter "pageToken": Specifies a page
77985// token to use. Set pageToken to the nextPageToken returned by a
77986// previous list request to get the next page of results.
77987func (c *InstanceGroupManagersListPerInstanceConfigsCall) PageToken(pageToken string) *InstanceGroupManagersListPerInstanceConfigsCall {
77988	c.urlParams_.Set("pageToken", pageToken)
77989	return c
77990}
77991
77992// Fields allows partial responses to be retrieved. See
77993// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77994// for more information.
77995func (c *InstanceGroupManagersListPerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListPerInstanceConfigsCall {
77996	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77997	return c
77998}
77999
78000// Context sets the context to be used in this call's Do method. Any
78001// pending HTTP request will be aborted if the provided context is
78002// canceled.
78003func (c *InstanceGroupManagersListPerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersListPerInstanceConfigsCall {
78004	c.ctx_ = ctx
78005	return c
78006}
78007
78008// Header returns an http.Header that can be modified by the caller to
78009// add HTTP headers to the request.
78010func (c *InstanceGroupManagersListPerInstanceConfigsCall) Header() http.Header {
78011	if c.header_ == nil {
78012		c.header_ = make(http.Header)
78013	}
78014	return c.header_
78015}
78016
78017func (c *InstanceGroupManagersListPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
78018	reqHeaders := make(http.Header)
78019	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
78020	for k, v := range c.header_ {
78021		reqHeaders[k] = v
78022	}
78023	reqHeaders.Set("User-Agent", c.s.userAgent())
78024	var body io.Reader = nil
78025	c.urlParams_.Set("alt", alt)
78026	c.urlParams_.Set("prettyPrint", "false")
78027	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs")
78028	urls += "?" + c.urlParams_.Encode()
78029	req, err := http.NewRequest("POST", urls, body)
78030	if err != nil {
78031		return nil, err
78032	}
78033	req.Header = reqHeaders
78034	googleapi.Expand(req.URL, map[string]string{
78035		"project":              c.project,
78036		"zone":                 c.zone,
78037		"instanceGroupManager": c.instanceGroupManager,
78038	})
78039	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78040}
78041
78042// Do executes the "compute.instanceGroupManagers.listPerInstanceConfigs" call.
78043// Exactly one of *InstanceGroupManagersListPerInstanceConfigsResp or
78044// error will be non-nil. Any non-2xx status code is an error. Response
78045// headers are in either
78046// *InstanceGroupManagersListPerInstanceConfigsResp.ServerResponse.Header
78047//  or (if a response was returned at all) in
78048// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
78049// whether the returned error was because http.StatusNotModified was
78050// returned.
78051func (c *InstanceGroupManagersListPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListPerInstanceConfigsResp, error) {
78052	gensupport.SetOptions(c.urlParams_, opts...)
78053	res, err := c.doRequest("json")
78054	if res != nil && res.StatusCode == http.StatusNotModified {
78055		if res.Body != nil {
78056			res.Body.Close()
78057		}
78058		return nil, &googleapi.Error{
78059			Code:   res.StatusCode,
78060			Header: res.Header,
78061		}
78062	}
78063	if err != nil {
78064		return nil, err
78065	}
78066	defer googleapi.CloseBody(res)
78067	if err := googleapi.CheckResponse(res); err != nil {
78068		return nil, err
78069	}
78070	ret := &InstanceGroupManagersListPerInstanceConfigsResp{
78071		ServerResponse: googleapi.ServerResponse{
78072			Header:         res.Header,
78073			HTTPStatusCode: res.StatusCode,
78074		},
78075	}
78076	target := &ret
78077	if err := gensupport.DecodeResponse(target, res); err != nil {
78078		return nil, err
78079	}
78080	return ret, nil
78081	// {
78082	//   "description": "Lists all of the per-instance configs defined for the managed instance group.",
78083	//   "httpMethod": "POST",
78084	//   "id": "compute.instanceGroupManagers.listPerInstanceConfigs",
78085	//   "parameterOrder": [
78086	//     "project",
78087	//     "zone",
78088	//     "instanceGroupManager"
78089	//   ],
78090	//   "parameters": {
78091	//     "filter": {
78092	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
78093	//       "location": "query",
78094	//       "type": "string"
78095	//     },
78096	//     "instanceGroupManager": {
78097	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
78098	//       "location": "path",
78099	//       "required": true,
78100	//       "type": "string"
78101	//     },
78102	//     "maxResults": {
78103	//       "default": "500",
78104	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
78105	//       "format": "uint32",
78106	//       "location": "query",
78107	//       "minimum": "0",
78108	//       "type": "integer"
78109	//     },
78110	//     "orderBy": {
78111	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
78112	//       "location": "query",
78113	//       "type": "string"
78114	//     },
78115	//     "pageToken": {
78116	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
78117	//       "location": "query",
78118	//       "type": "string"
78119	//     },
78120	//     "project": {
78121	//       "description": "Project ID for this request.",
78122	//       "location": "path",
78123	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78124	//       "required": true,
78125	//       "type": "string"
78126	//     },
78127	//     "zone": {
78128	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
78129	//       "location": "path",
78130	//       "required": true,
78131	//       "type": "string"
78132	//     }
78133	//   },
78134	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs",
78135	//   "response": {
78136	//     "$ref": "InstanceGroupManagersListPerInstanceConfigsResp"
78137	//   },
78138	//   "scopes": [
78139	//     "https://www.googleapis.com/auth/cloud-platform",
78140	//     "https://www.googleapis.com/auth/compute",
78141	//     "https://www.googleapis.com/auth/compute.readonly"
78142	//   ]
78143	// }
78144
78145}
78146
78147// Pages invokes f for each page of results.
78148// A non-nil error returned from f will halt the iteration.
78149// The provided context supersedes any context provided to the Context method.
78150func (c *InstanceGroupManagersListPerInstanceConfigsCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListPerInstanceConfigsResp) error) error {
78151	c.ctx_ = ctx
78152	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
78153	for {
78154		x, err := c.Do()
78155		if err != nil {
78156			return err
78157		}
78158		if err := f(x); err != nil {
78159			return err
78160		}
78161		if x.NextPageToken == "" {
78162			return nil
78163		}
78164		c.PageToken(x.NextPageToken)
78165	}
78166}
78167
78168// method id "compute.instanceGroupManagers.patch":
78169
78170type InstanceGroupManagersPatchCall struct {
78171	s                    *Service
78172	project              string
78173	zone                 string
78174	instanceGroupManager string
78175	instancegroupmanager *InstanceGroupManager
78176	urlParams_           gensupport.URLParams
78177	ctx_                 context.Context
78178	header_              http.Header
78179}
78180
78181// Patch: Updates a managed instance group using the information that
78182// you specify in the request. This operation is marked as DONE when the
78183// group is patched even if the instances in the group are still in the
78184// process of being patched. You must separately verify the status of
78185// the individual instances with the listManagedInstances method. This
78186// method supports PATCH semantics and uses the JSON merge patch format
78187// and processing rules.
78188func (r *InstanceGroupManagersService) Patch(project string, zone string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersPatchCall {
78189	c := &InstanceGroupManagersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78190	c.project = project
78191	c.zone = zone
78192	c.instanceGroupManager = instanceGroupManager
78193	c.instancegroupmanager = instancegroupmanager
78194	return c
78195}
78196
78197// RequestId sets the optional parameter "requestId": An optional
78198// request ID to identify requests. Specify a unique request ID so that
78199// if you must retry your request, the server will know to ignore the
78200// request if it has already been completed.
78201//
78202// For example, consider a situation where you make an initial request
78203// and the request times out. If you make the request again with the
78204// same request ID, the server can check if original operation with the
78205// same request ID was received, and if so, will ignore the second
78206// request. This prevents clients from accidentally creating duplicate
78207// commitments.
78208//
78209// The request ID must be a valid UUID with the exception that zero UUID
78210// is not supported (00000000-0000-0000-0000-000000000000).
78211func (c *InstanceGroupManagersPatchCall) RequestId(requestId string) *InstanceGroupManagersPatchCall {
78212	c.urlParams_.Set("requestId", requestId)
78213	return c
78214}
78215
78216// Fields allows partial responses to be retrieved. See
78217// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78218// for more information.
78219func (c *InstanceGroupManagersPatchCall) Fields(s ...googleapi.Field) *InstanceGroupManagersPatchCall {
78220	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78221	return c
78222}
78223
78224// Context sets the context to be used in this call's Do method. Any
78225// pending HTTP request will be aborted if the provided context is
78226// canceled.
78227func (c *InstanceGroupManagersPatchCall) Context(ctx context.Context) *InstanceGroupManagersPatchCall {
78228	c.ctx_ = ctx
78229	return c
78230}
78231
78232// Header returns an http.Header that can be modified by the caller to
78233// add HTTP headers to the request.
78234func (c *InstanceGroupManagersPatchCall) Header() http.Header {
78235	if c.header_ == nil {
78236		c.header_ = make(http.Header)
78237	}
78238	return c.header_
78239}
78240
78241func (c *InstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, error) {
78242	reqHeaders := make(http.Header)
78243	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
78244	for k, v := range c.header_ {
78245		reqHeaders[k] = v
78246	}
78247	reqHeaders.Set("User-Agent", c.s.userAgent())
78248	var body io.Reader = nil
78249	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
78250	if err != nil {
78251		return nil, err
78252	}
78253	reqHeaders.Set("Content-Type", "application/json")
78254	c.urlParams_.Set("alt", alt)
78255	c.urlParams_.Set("prettyPrint", "false")
78256	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
78257	urls += "?" + c.urlParams_.Encode()
78258	req, err := http.NewRequest("PATCH", urls, body)
78259	if err != nil {
78260		return nil, err
78261	}
78262	req.Header = reqHeaders
78263	googleapi.Expand(req.URL, map[string]string{
78264		"project":              c.project,
78265		"zone":                 c.zone,
78266		"instanceGroupManager": c.instanceGroupManager,
78267	})
78268	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78269}
78270
78271// Do executes the "compute.instanceGroupManagers.patch" call.
78272// Exactly one of *Operation or error will be non-nil. Any non-2xx
78273// status code is an error. Response headers are in either
78274// *Operation.ServerResponse.Header or (if a response was returned at
78275// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78276// to check whether the returned error was because
78277// http.StatusNotModified was returned.
78278func (c *InstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78279	gensupport.SetOptions(c.urlParams_, opts...)
78280	res, err := c.doRequest("json")
78281	if res != nil && res.StatusCode == http.StatusNotModified {
78282		if res.Body != nil {
78283			res.Body.Close()
78284		}
78285		return nil, &googleapi.Error{
78286			Code:   res.StatusCode,
78287			Header: res.Header,
78288		}
78289	}
78290	if err != nil {
78291		return nil, err
78292	}
78293	defer googleapi.CloseBody(res)
78294	if err := googleapi.CheckResponse(res); err != nil {
78295		return nil, err
78296	}
78297	ret := &Operation{
78298		ServerResponse: googleapi.ServerResponse{
78299			Header:         res.Header,
78300			HTTPStatusCode: res.StatusCode,
78301		},
78302	}
78303	target := &ret
78304	if err := gensupport.DecodeResponse(target, res); err != nil {
78305		return nil, err
78306	}
78307	return ret, nil
78308	// {
78309	//   "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.",
78310	//   "httpMethod": "PATCH",
78311	//   "id": "compute.instanceGroupManagers.patch",
78312	//   "parameterOrder": [
78313	//     "project",
78314	//     "zone",
78315	//     "instanceGroupManager"
78316	//   ],
78317	//   "parameters": {
78318	//     "instanceGroupManager": {
78319	//       "description": "The name of the instance group manager.",
78320	//       "location": "path",
78321	//       "required": true,
78322	//       "type": "string"
78323	//     },
78324	//     "project": {
78325	//       "description": "Project ID for this request.",
78326	//       "location": "path",
78327	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78328	//       "required": true,
78329	//       "type": "string"
78330	//     },
78331	//     "requestId": {
78332	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78333	//       "location": "query",
78334	//       "type": "string"
78335	//     },
78336	//     "zone": {
78337	//       "description": "The name of the zone where you want to create the managed instance group.",
78338	//       "location": "path",
78339	//       "required": true,
78340	//       "type": "string"
78341	//     }
78342	//   },
78343	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
78344	//   "request": {
78345	//     "$ref": "InstanceGroupManager"
78346	//   },
78347	//   "response": {
78348	//     "$ref": "Operation"
78349	//   },
78350	//   "scopes": [
78351	//     "https://www.googleapis.com/auth/cloud-platform",
78352	//     "https://www.googleapis.com/auth/compute"
78353	//   ]
78354	// }
78355
78356}
78357
78358// method id "compute.instanceGroupManagers.patchPerInstanceConfigs":
78359
78360type InstanceGroupManagersPatchPerInstanceConfigsCall struct {
78361	s                                               *Service
78362	project                                         string
78363	zone                                            string
78364	instanceGroupManager                            string
78365	instancegroupmanagerspatchperinstanceconfigsreq *InstanceGroupManagersPatchPerInstanceConfigsReq
78366	urlParams_                                      gensupport.URLParams
78367	ctx_                                            context.Context
78368	header_                                         http.Header
78369}
78370
78371// PatchPerInstanceConfigs: Insert or patch (for the ones that already
78372// exist) per-instance configs for the managed instance group.
78373// perInstanceConfig.instance serves as a key used to distinguish
78374// whether to perform insert or patch.
78375func (r *InstanceGroupManagersService) PatchPerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagerspatchperinstanceconfigsreq *InstanceGroupManagersPatchPerInstanceConfigsReq) *InstanceGroupManagersPatchPerInstanceConfigsCall {
78376	c := &InstanceGroupManagersPatchPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78377	c.project = project
78378	c.zone = zone
78379	c.instanceGroupManager = instanceGroupManager
78380	c.instancegroupmanagerspatchperinstanceconfigsreq = instancegroupmanagerspatchperinstanceconfigsreq
78381	return c
78382}
78383
78384// RequestId sets the optional parameter "requestId": An optional
78385// request ID to identify requests. Specify a unique request ID so that
78386// if you must retry your request, the server will know to ignore the
78387// request if it has already been completed.
78388//
78389// For example, consider a situation where you make an initial request
78390// and the request times out. If you make the request again with the
78391// same request ID, the server can check if original operation with the
78392// same request ID was received, and if so, will ignore the second
78393// request. This prevents clients from accidentally creating duplicate
78394// commitments.
78395//
78396// The request ID must be a valid UUID with the exception that zero UUID
78397// is not supported (00000000-0000-0000-0000-000000000000).
78398func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) RequestId(requestId string) *InstanceGroupManagersPatchPerInstanceConfigsCall {
78399	c.urlParams_.Set("requestId", requestId)
78400	return c
78401}
78402
78403// Fields allows partial responses to be retrieved. See
78404// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78405// for more information.
78406func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersPatchPerInstanceConfigsCall {
78407	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78408	return c
78409}
78410
78411// Context sets the context to be used in this call's Do method. Any
78412// pending HTTP request will be aborted if the provided context is
78413// canceled.
78414func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersPatchPerInstanceConfigsCall {
78415	c.ctx_ = ctx
78416	return c
78417}
78418
78419// Header returns an http.Header that can be modified by the caller to
78420// add HTTP headers to the request.
78421func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Header() http.Header {
78422	if c.header_ == nil {
78423		c.header_ = make(http.Header)
78424	}
78425	return c.header_
78426}
78427
78428func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
78429	reqHeaders := make(http.Header)
78430	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
78431	for k, v := range c.header_ {
78432		reqHeaders[k] = v
78433	}
78434	reqHeaders.Set("User-Agent", c.s.userAgent())
78435	var body io.Reader = nil
78436	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerspatchperinstanceconfigsreq)
78437	if err != nil {
78438		return nil, err
78439	}
78440	reqHeaders.Set("Content-Type", "application/json")
78441	c.urlParams_.Set("alt", alt)
78442	c.urlParams_.Set("prettyPrint", "false")
78443	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs")
78444	urls += "?" + c.urlParams_.Encode()
78445	req, err := http.NewRequest("POST", urls, body)
78446	if err != nil {
78447		return nil, err
78448	}
78449	req.Header = reqHeaders
78450	googleapi.Expand(req.URL, map[string]string{
78451		"project":              c.project,
78452		"zone":                 c.zone,
78453		"instanceGroupManager": c.instanceGroupManager,
78454	})
78455	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78456}
78457
78458// Do executes the "compute.instanceGroupManagers.patchPerInstanceConfigs" call.
78459// Exactly one of *Operation or error will be non-nil. Any non-2xx
78460// status code is an error. Response headers are in either
78461// *Operation.ServerResponse.Header or (if a response was returned at
78462// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78463// to check whether the returned error was because
78464// http.StatusNotModified was returned.
78465func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78466	gensupport.SetOptions(c.urlParams_, opts...)
78467	res, err := c.doRequest("json")
78468	if res != nil && res.StatusCode == http.StatusNotModified {
78469		if res.Body != nil {
78470			res.Body.Close()
78471		}
78472		return nil, &googleapi.Error{
78473			Code:   res.StatusCode,
78474			Header: res.Header,
78475		}
78476	}
78477	if err != nil {
78478		return nil, err
78479	}
78480	defer googleapi.CloseBody(res)
78481	if err := googleapi.CheckResponse(res); err != nil {
78482		return nil, err
78483	}
78484	ret := &Operation{
78485		ServerResponse: googleapi.ServerResponse{
78486			Header:         res.Header,
78487			HTTPStatusCode: res.StatusCode,
78488		},
78489	}
78490	target := &ret
78491	if err := gensupport.DecodeResponse(target, res); err != nil {
78492		return nil, err
78493	}
78494	return ret, nil
78495	// {
78496	//   "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.",
78497	//   "httpMethod": "POST",
78498	//   "id": "compute.instanceGroupManagers.patchPerInstanceConfigs",
78499	//   "parameterOrder": [
78500	//     "project",
78501	//     "zone",
78502	//     "instanceGroupManager"
78503	//   ],
78504	//   "parameters": {
78505	//     "instanceGroupManager": {
78506	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
78507	//       "location": "path",
78508	//       "required": true,
78509	//       "type": "string"
78510	//     },
78511	//     "project": {
78512	//       "description": "Project ID for this request.",
78513	//       "location": "path",
78514	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78515	//       "required": true,
78516	//       "type": "string"
78517	//     },
78518	//     "requestId": {
78519	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78520	//       "location": "query",
78521	//       "type": "string"
78522	//     },
78523	//     "zone": {
78524	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
78525	//       "location": "path",
78526	//       "required": true,
78527	//       "type": "string"
78528	//     }
78529	//   },
78530	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs",
78531	//   "request": {
78532	//     "$ref": "InstanceGroupManagersPatchPerInstanceConfigsReq"
78533	//   },
78534	//   "response": {
78535	//     "$ref": "Operation"
78536	//   },
78537	//   "scopes": [
78538	//     "https://www.googleapis.com/auth/cloud-platform",
78539	//     "https://www.googleapis.com/auth/compute"
78540	//   ]
78541	// }
78542
78543}
78544
78545// method id "compute.instanceGroupManagers.recreateInstances":
78546
78547type InstanceGroupManagersRecreateInstancesCall struct {
78548	s                                             *Service
78549	project                                       string
78550	zone                                          string
78551	instanceGroupManager                          string
78552	instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest
78553	urlParams_                                    gensupport.URLParams
78554	ctx_                                          context.Context
78555	header_                                       http.Header
78556}
78557
78558// RecreateInstances: Flags the specified instances in the managed
78559// instance group to be immediately recreated. The instances are deleted
78560// and recreated using the current instance template for the managed
78561// instance group. This operation is marked as DONE when the flag is set
78562// even if the instances have not yet been recreated. You must
78563// separately verify the status of the recreating action with the
78564// listmanagedinstances method.
78565//
78566// If the group is part of a backend service that has enabled connection
78567// draining, it can take up to 60 seconds after the connection draining
78568// duration has elapsed before the VM instance is removed or
78569// deleted.
78570//
78571// You can specify a maximum of 1000 instances with this method per
78572// request.
78573func (r *InstanceGroupManagersService) RecreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest) *InstanceGroupManagersRecreateInstancesCall {
78574	c := &InstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78575	c.project = project
78576	c.zone = zone
78577	c.instanceGroupManager = instanceGroupManager
78578	c.instancegroupmanagersrecreateinstancesrequest = instancegroupmanagersrecreateinstancesrequest
78579	return c
78580}
78581
78582// RequestId sets the optional parameter "requestId": An optional
78583// request ID to identify requests. Specify a unique request ID so that
78584// if you must retry your request, the server will know to ignore the
78585// request if it has already been completed.
78586//
78587// For example, consider a situation where you make an initial request
78588// and the request times out. If you make the request again with the
78589// same request ID, the server can check if original operation with the
78590// same request ID was received, and if so, will ignore the second
78591// request. This prevents clients from accidentally creating duplicate
78592// commitments.
78593//
78594// The request ID must be a valid UUID with the exception that zero UUID
78595// is not supported (00000000-0000-0000-0000-000000000000).
78596func (c *InstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersRecreateInstancesCall {
78597	c.urlParams_.Set("requestId", requestId)
78598	return c
78599}
78600
78601// Fields allows partial responses to be retrieved. See
78602// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78603// for more information.
78604func (c *InstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersRecreateInstancesCall {
78605	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78606	return c
78607}
78608
78609// Context sets the context to be used in this call's Do method. Any
78610// pending HTTP request will be aborted if the provided context is
78611// canceled.
78612func (c *InstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersRecreateInstancesCall {
78613	c.ctx_ = ctx
78614	return c
78615}
78616
78617// Header returns an http.Header that can be modified by the caller to
78618// add HTTP headers to the request.
78619func (c *InstanceGroupManagersRecreateInstancesCall) Header() http.Header {
78620	if c.header_ == nil {
78621		c.header_ = make(http.Header)
78622	}
78623	return c.header_
78624}
78625
78626func (c *InstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) {
78627	reqHeaders := make(http.Header)
78628	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
78629	for k, v := range c.header_ {
78630		reqHeaders[k] = v
78631	}
78632	reqHeaders.Set("User-Agent", c.s.userAgent())
78633	var body io.Reader = nil
78634	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersrecreateinstancesrequest)
78635	if err != nil {
78636		return nil, err
78637	}
78638	reqHeaders.Set("Content-Type", "application/json")
78639	c.urlParams_.Set("alt", alt)
78640	c.urlParams_.Set("prettyPrint", "false")
78641	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances")
78642	urls += "?" + c.urlParams_.Encode()
78643	req, err := http.NewRequest("POST", urls, body)
78644	if err != nil {
78645		return nil, err
78646	}
78647	req.Header = reqHeaders
78648	googleapi.Expand(req.URL, map[string]string{
78649		"project":              c.project,
78650		"zone":                 c.zone,
78651		"instanceGroupManager": c.instanceGroupManager,
78652	})
78653	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78654}
78655
78656// Do executes the "compute.instanceGroupManagers.recreateInstances" call.
78657// Exactly one of *Operation or error will be non-nil. Any non-2xx
78658// status code is an error. Response headers are in either
78659// *Operation.ServerResponse.Header or (if a response was returned at
78660// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78661// to check whether the returned error was because
78662// http.StatusNotModified was returned.
78663func (c *InstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78664	gensupport.SetOptions(c.urlParams_, opts...)
78665	res, err := c.doRequest("json")
78666	if res != nil && res.StatusCode == http.StatusNotModified {
78667		if res.Body != nil {
78668			res.Body.Close()
78669		}
78670		return nil, &googleapi.Error{
78671			Code:   res.StatusCode,
78672			Header: res.Header,
78673		}
78674	}
78675	if err != nil {
78676		return nil, err
78677	}
78678	defer googleapi.CloseBody(res)
78679	if err := googleapi.CheckResponse(res); err != nil {
78680		return nil, err
78681	}
78682	ret := &Operation{
78683		ServerResponse: googleapi.ServerResponse{
78684			Header:         res.Header,
78685			HTTPStatusCode: res.StatusCode,
78686		},
78687	}
78688	target := &ret
78689	if err := gensupport.DecodeResponse(target, res); err != nil {
78690		return nil, err
78691	}
78692	return ret, nil
78693	// {
78694	//   "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.",
78695	//   "httpMethod": "POST",
78696	//   "id": "compute.instanceGroupManagers.recreateInstances",
78697	//   "parameterOrder": [
78698	//     "project",
78699	//     "zone",
78700	//     "instanceGroupManager"
78701	//   ],
78702	//   "parameters": {
78703	//     "instanceGroupManager": {
78704	//       "description": "The name of the managed instance group.",
78705	//       "location": "path",
78706	//       "required": true,
78707	//       "type": "string"
78708	//     },
78709	//     "project": {
78710	//       "description": "Project ID for this request.",
78711	//       "location": "path",
78712	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78713	//       "required": true,
78714	//       "type": "string"
78715	//     },
78716	//     "requestId": {
78717	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78718	//       "location": "query",
78719	//       "type": "string"
78720	//     },
78721	//     "zone": {
78722	//       "description": "The name of the zone where the managed instance group is located.",
78723	//       "location": "path",
78724	//       "required": true,
78725	//       "type": "string"
78726	//     }
78727	//   },
78728	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
78729	//   "request": {
78730	//     "$ref": "InstanceGroupManagersRecreateInstancesRequest"
78731	//   },
78732	//   "response": {
78733	//     "$ref": "Operation"
78734	//   },
78735	//   "scopes": [
78736	//     "https://www.googleapis.com/auth/cloud-platform",
78737	//     "https://www.googleapis.com/auth/compute"
78738	//   ]
78739	// }
78740
78741}
78742
78743// method id "compute.instanceGroupManagers.resize":
78744
78745type InstanceGroupManagersResizeCall struct {
78746	s                    *Service
78747	project              string
78748	zone                 string
78749	instanceGroupManager string
78750	urlParams_           gensupport.URLParams
78751	ctx_                 context.Context
78752	header_              http.Header
78753}
78754
78755// Resize: Resizes the managed instance group. If you increase the size,
78756// the group creates new instances using the current instance template.
78757// If you decrease the size, the group deletes instances. The resize
78758// operation is marked DONE when the resize actions are scheduled even
78759// if the group has not yet added or deleted any instances. You must
78760// separately verify the status of the creating or deleting actions with
78761// the listmanagedinstances method.
78762//
78763// When resizing down, the instance group arbitrarily chooses the order
78764// in which VMs are deleted. The group takes into account some VM
78765// attributes when making the selection including:
78766//
78767// + The status of the VM instance. + The health of the VM instance. +
78768// The instance template version the VM is based on. + For regional
78769// managed instance groups, the location of the VM instance.
78770//
78771// This list is subject to change.
78772//
78773// If the group is part of a backend service that has enabled connection
78774// draining, it can take up to 60 seconds after the connection draining
78775// duration has elapsed before the VM instance is removed or deleted.
78776func (r *InstanceGroupManagersService) Resize(project string, zone string, instanceGroupManager string, size int64) *InstanceGroupManagersResizeCall {
78777	c := &InstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78778	c.project = project
78779	c.zone = zone
78780	c.instanceGroupManager = instanceGroupManager
78781	c.urlParams_.Set("size", fmt.Sprint(size))
78782	return c
78783}
78784
78785// RequestId sets the optional parameter "requestId": An optional
78786// request ID to identify requests. Specify a unique request ID so that
78787// if you must retry your request, the server will know to ignore the
78788// request if it has already been completed.
78789//
78790// For example, consider a situation where you make an initial request
78791// and the request times out. If you make the request again with the
78792// same request ID, the server can check if original operation with the
78793// same request ID was received, and if so, will ignore the second
78794// request. This prevents clients from accidentally creating duplicate
78795// commitments.
78796//
78797// The request ID must be a valid UUID with the exception that zero UUID
78798// is not supported (00000000-0000-0000-0000-000000000000).
78799func (c *InstanceGroupManagersResizeCall) RequestId(requestId string) *InstanceGroupManagersResizeCall {
78800	c.urlParams_.Set("requestId", requestId)
78801	return c
78802}
78803
78804// Fields allows partial responses to be retrieved. See
78805// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78806// for more information.
78807func (c *InstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *InstanceGroupManagersResizeCall {
78808	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78809	return c
78810}
78811
78812// Context sets the context to be used in this call's Do method. Any
78813// pending HTTP request will be aborted if the provided context is
78814// canceled.
78815func (c *InstanceGroupManagersResizeCall) Context(ctx context.Context) *InstanceGroupManagersResizeCall {
78816	c.ctx_ = ctx
78817	return c
78818}
78819
78820// Header returns an http.Header that can be modified by the caller to
78821// add HTTP headers to the request.
78822func (c *InstanceGroupManagersResizeCall) Header() http.Header {
78823	if c.header_ == nil {
78824		c.header_ = make(http.Header)
78825	}
78826	return c.header_
78827}
78828
78829func (c *InstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) {
78830	reqHeaders := make(http.Header)
78831	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
78832	for k, v := range c.header_ {
78833		reqHeaders[k] = v
78834	}
78835	reqHeaders.Set("User-Agent", c.s.userAgent())
78836	var body io.Reader = nil
78837	c.urlParams_.Set("alt", alt)
78838	c.urlParams_.Set("prettyPrint", "false")
78839	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize")
78840	urls += "?" + c.urlParams_.Encode()
78841	req, err := http.NewRequest("POST", urls, body)
78842	if err != nil {
78843		return nil, err
78844	}
78845	req.Header = reqHeaders
78846	googleapi.Expand(req.URL, map[string]string{
78847		"project":              c.project,
78848		"zone":                 c.zone,
78849		"instanceGroupManager": c.instanceGroupManager,
78850	})
78851	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78852}
78853
78854// Do executes the "compute.instanceGroupManagers.resize" call.
78855// Exactly one of *Operation or error will be non-nil. Any non-2xx
78856// status code is an error. Response headers are in either
78857// *Operation.ServerResponse.Header or (if a response was returned at
78858// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78859// to check whether the returned error was because
78860// http.StatusNotModified was returned.
78861func (c *InstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78862	gensupport.SetOptions(c.urlParams_, opts...)
78863	res, err := c.doRequest("json")
78864	if res != nil && res.StatusCode == http.StatusNotModified {
78865		if res.Body != nil {
78866			res.Body.Close()
78867		}
78868		return nil, &googleapi.Error{
78869			Code:   res.StatusCode,
78870			Header: res.Header,
78871		}
78872	}
78873	if err != nil {
78874		return nil, err
78875	}
78876	defer googleapi.CloseBody(res)
78877	if err := googleapi.CheckResponse(res); err != nil {
78878		return nil, err
78879	}
78880	ret := &Operation{
78881		ServerResponse: googleapi.ServerResponse{
78882			Header:         res.Header,
78883			HTTPStatusCode: res.StatusCode,
78884		},
78885	}
78886	target := &ret
78887	if err := gensupport.DecodeResponse(target, res); err != nil {
78888		return nil, err
78889	}
78890	return ret, nil
78891	// {
78892	//   "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.",
78893	//   "httpMethod": "POST",
78894	//   "id": "compute.instanceGroupManagers.resize",
78895	//   "parameterOrder": [
78896	//     "project",
78897	//     "zone",
78898	//     "instanceGroupManager",
78899	//     "size"
78900	//   ],
78901	//   "parameters": {
78902	//     "instanceGroupManager": {
78903	//       "description": "The name of the managed instance group.",
78904	//       "location": "path",
78905	//       "required": true,
78906	//       "type": "string"
78907	//     },
78908	//     "project": {
78909	//       "description": "Project ID for this request.",
78910	//       "location": "path",
78911	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78912	//       "required": true,
78913	//       "type": "string"
78914	//     },
78915	//     "requestId": {
78916	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78917	//       "location": "query",
78918	//       "type": "string"
78919	//     },
78920	//     "size": {
78921	//       "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.",
78922	//       "format": "int32",
78923	//       "location": "query",
78924	//       "required": true,
78925	//       "type": "integer"
78926	//     },
78927	//     "zone": {
78928	//       "description": "The name of the zone where the managed instance group is located.",
78929	//       "location": "path",
78930	//       "required": true,
78931	//       "type": "string"
78932	//     }
78933	//   },
78934	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize",
78935	//   "response": {
78936	//     "$ref": "Operation"
78937	//   },
78938	//   "scopes": [
78939	//     "https://www.googleapis.com/auth/cloud-platform",
78940	//     "https://www.googleapis.com/auth/compute"
78941	//   ]
78942	// }
78943
78944}
78945
78946// method id "compute.instanceGroupManagers.resizeAdvanced":
78947
78948type InstanceGroupManagersResizeAdvancedCall struct {
78949	s                                          *Service
78950	project                                    string
78951	zone                                       string
78952	instanceGroupManager                       string
78953	instancegroupmanagersresizeadvancedrequest *InstanceGroupManagersResizeAdvancedRequest
78954	urlParams_                                 gensupport.URLParams
78955	ctx_                                       context.Context
78956	header_                                    http.Header
78957}
78958
78959// ResizeAdvanced: Resizes the managed instance group with advanced
78960// configuration options like disabling creation retries. This is an
78961// extended version of the resize method.
78962//
78963// If you increase the size of the instance group, the group creates new
78964// instances using the current instance template. If you decrease the
78965// size, the group deletes instances. The resize operation is marked
78966// DONE when the resize actions are scheduled even if the group has not
78967// yet added or deleted any instances. You must separately verify the
78968// status of the creating, creatingWithoutRetries, or deleting actions
78969// with the get or listmanagedinstances method.
78970//
78971// If the group is part of a backend service that has enabled connection
78972// draining, it can take up to 60 seconds after the connection draining
78973// duration has elapsed before the VM instance is removed or deleted.
78974func (r *InstanceGroupManagersService) ResizeAdvanced(project string, zone string, instanceGroupManager string, instancegroupmanagersresizeadvancedrequest *InstanceGroupManagersResizeAdvancedRequest) *InstanceGroupManagersResizeAdvancedCall {
78975	c := &InstanceGroupManagersResizeAdvancedCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78976	c.project = project
78977	c.zone = zone
78978	c.instanceGroupManager = instanceGroupManager
78979	c.instancegroupmanagersresizeadvancedrequest = instancegroupmanagersresizeadvancedrequest
78980	return c
78981}
78982
78983// RequestId sets the optional parameter "requestId": An optional
78984// request ID to identify requests. Specify a unique request ID so that
78985// if you must retry your request, the server will know to ignore the
78986// request if it has already been completed.
78987//
78988// For example, consider a situation where you make an initial request
78989// and the request times out. If you make the request again with the
78990// same request ID, the server can check if original operation with the
78991// same request ID was received, and if so, will ignore the second
78992// request. This prevents clients from accidentally creating duplicate
78993// commitments.
78994//
78995// The request ID must be a valid UUID with the exception that zero UUID
78996// is not supported (00000000-0000-0000-0000-000000000000).
78997func (c *InstanceGroupManagersResizeAdvancedCall) RequestId(requestId string) *InstanceGroupManagersResizeAdvancedCall {
78998	c.urlParams_.Set("requestId", requestId)
78999	return c
79000}
79001
79002// Fields allows partial responses to be retrieved. See
79003// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79004// for more information.
79005func (c *InstanceGroupManagersResizeAdvancedCall) Fields(s ...googleapi.Field) *InstanceGroupManagersResizeAdvancedCall {
79006	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79007	return c
79008}
79009
79010// Context sets the context to be used in this call's Do method. Any
79011// pending HTTP request will be aborted if the provided context is
79012// canceled.
79013func (c *InstanceGroupManagersResizeAdvancedCall) Context(ctx context.Context) *InstanceGroupManagersResizeAdvancedCall {
79014	c.ctx_ = ctx
79015	return c
79016}
79017
79018// Header returns an http.Header that can be modified by the caller to
79019// add HTTP headers to the request.
79020func (c *InstanceGroupManagersResizeAdvancedCall) Header() http.Header {
79021	if c.header_ == nil {
79022		c.header_ = make(http.Header)
79023	}
79024	return c.header_
79025}
79026
79027func (c *InstanceGroupManagersResizeAdvancedCall) doRequest(alt string) (*http.Response, error) {
79028	reqHeaders := make(http.Header)
79029	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
79030	for k, v := range c.header_ {
79031		reqHeaders[k] = v
79032	}
79033	reqHeaders.Set("User-Agent", c.s.userAgent())
79034	var body io.Reader = nil
79035	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersresizeadvancedrequest)
79036	if err != nil {
79037		return nil, err
79038	}
79039	reqHeaders.Set("Content-Type", "application/json")
79040	c.urlParams_.Set("alt", alt)
79041	c.urlParams_.Set("prettyPrint", "false")
79042	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeAdvanced")
79043	urls += "?" + c.urlParams_.Encode()
79044	req, err := http.NewRequest("POST", urls, body)
79045	if err != nil {
79046		return nil, err
79047	}
79048	req.Header = reqHeaders
79049	googleapi.Expand(req.URL, map[string]string{
79050		"project":              c.project,
79051		"zone":                 c.zone,
79052		"instanceGroupManager": c.instanceGroupManager,
79053	})
79054	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79055}
79056
79057// Do executes the "compute.instanceGroupManagers.resizeAdvanced" call.
79058// Exactly one of *Operation or error will be non-nil. Any non-2xx
79059// status code is an error. Response headers are in either
79060// *Operation.ServerResponse.Header or (if a response was returned at
79061// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79062// to check whether the returned error was because
79063// http.StatusNotModified was returned.
79064func (c *InstanceGroupManagersResizeAdvancedCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79065	gensupport.SetOptions(c.urlParams_, opts...)
79066	res, err := c.doRequest("json")
79067	if res != nil && res.StatusCode == http.StatusNotModified {
79068		if res.Body != nil {
79069			res.Body.Close()
79070		}
79071		return nil, &googleapi.Error{
79072			Code:   res.StatusCode,
79073			Header: res.Header,
79074		}
79075	}
79076	if err != nil {
79077		return nil, err
79078	}
79079	defer googleapi.CloseBody(res)
79080	if err := googleapi.CheckResponse(res); err != nil {
79081		return nil, err
79082	}
79083	ret := &Operation{
79084		ServerResponse: googleapi.ServerResponse{
79085			Header:         res.Header,
79086			HTTPStatusCode: res.StatusCode,
79087		},
79088	}
79089	target := &ret
79090	if err := gensupport.DecodeResponse(target, res); err != nil {
79091		return nil, err
79092	}
79093	return ret, nil
79094	// {
79095	//   "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.",
79096	//   "httpMethod": "POST",
79097	//   "id": "compute.instanceGroupManagers.resizeAdvanced",
79098	//   "parameterOrder": [
79099	//     "project",
79100	//     "zone",
79101	//     "instanceGroupManager"
79102	//   ],
79103	//   "parameters": {
79104	//     "instanceGroupManager": {
79105	//       "description": "The name of the managed instance group.",
79106	//       "location": "path",
79107	//       "required": true,
79108	//       "type": "string"
79109	//     },
79110	//     "project": {
79111	//       "description": "Project ID for this request.",
79112	//       "location": "path",
79113	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79114	//       "required": true,
79115	//       "type": "string"
79116	//     },
79117	//     "requestId": {
79118	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79119	//       "location": "query",
79120	//       "type": "string"
79121	//     },
79122	//     "zone": {
79123	//       "description": "The name of the zone where the managed instance group is located.",
79124	//       "location": "path",
79125	//       "required": true,
79126	//       "type": "string"
79127	//     }
79128	//   },
79129	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeAdvanced",
79130	//   "request": {
79131	//     "$ref": "InstanceGroupManagersResizeAdvancedRequest"
79132	//   },
79133	//   "response": {
79134	//     "$ref": "Operation"
79135	//   },
79136	//   "scopes": [
79137	//     "https://www.googleapis.com/auth/cloud-platform",
79138	//     "https://www.googleapis.com/auth/compute"
79139	//   ]
79140	// }
79141
79142}
79143
79144// method id "compute.instanceGroupManagers.setAutoHealingPolicies":
79145
79146type InstanceGroupManagersSetAutoHealingPoliciesCall struct {
79147	s                                          *Service
79148	project                                    string
79149	zone                                       string
79150	instanceGroupManager                       string
79151	instancegroupmanagerssetautohealingrequest *InstanceGroupManagersSetAutoHealingRequest
79152	urlParams_                                 gensupport.URLParams
79153	ctx_                                       context.Context
79154	header_                                    http.Header
79155}
79156
79157// SetAutoHealingPolicies: Modifies the autohealing policies.
79158// [Deprecated] This method is deprecated. Please use Patch instead.
79159func (r *InstanceGroupManagersService) SetAutoHealingPolicies(project string, zone string, instanceGroupManager string, instancegroupmanagerssetautohealingrequest *InstanceGroupManagersSetAutoHealingRequest) *InstanceGroupManagersSetAutoHealingPoliciesCall {
79160	c := &InstanceGroupManagersSetAutoHealingPoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79161	c.project = project
79162	c.zone = zone
79163	c.instanceGroupManager = instanceGroupManager
79164	c.instancegroupmanagerssetautohealingrequest = instancegroupmanagerssetautohealingrequest
79165	return c
79166}
79167
79168// RequestId sets the optional parameter "requestId": An optional
79169// request ID to identify requests. Specify a unique request ID so that
79170// if you must retry your request, the server will know to ignore the
79171// request if it has already been completed.
79172//
79173// For example, consider a situation where you make an initial request
79174// and the request times out. If you make the request again with the
79175// same request ID, the server can check if original operation with the
79176// same request ID was received, and if so, will ignore the second
79177// request. This prevents clients from accidentally creating duplicate
79178// commitments.
79179//
79180// The request ID must be a valid UUID with the exception that zero UUID
79181// is not supported (00000000-0000-0000-0000-000000000000).
79182func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) RequestId(requestId string) *InstanceGroupManagersSetAutoHealingPoliciesCall {
79183	c.urlParams_.Set("requestId", requestId)
79184	return c
79185}
79186
79187// Fields allows partial responses to be retrieved. See
79188// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79189// for more information.
79190func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetAutoHealingPoliciesCall {
79191	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79192	return c
79193}
79194
79195// Context sets the context to be used in this call's Do method. Any
79196// pending HTTP request will be aborted if the provided context is
79197// canceled.
79198func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Context(ctx context.Context) *InstanceGroupManagersSetAutoHealingPoliciesCall {
79199	c.ctx_ = ctx
79200	return c
79201}
79202
79203// Header returns an http.Header that can be modified by the caller to
79204// add HTTP headers to the request.
79205func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Header() http.Header {
79206	if c.header_ == nil {
79207		c.header_ = make(http.Header)
79208	}
79209	return c.header_
79210}
79211
79212func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) doRequest(alt string) (*http.Response, error) {
79213	reqHeaders := make(http.Header)
79214	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
79215	for k, v := range c.header_ {
79216		reqHeaders[k] = v
79217	}
79218	reqHeaders.Set("User-Agent", c.s.userAgent())
79219	var body io.Reader = nil
79220	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssetautohealingrequest)
79221	if err != nil {
79222		return nil, err
79223	}
79224	reqHeaders.Set("Content-Type", "application/json")
79225	c.urlParams_.Set("alt", alt)
79226	c.urlParams_.Set("prettyPrint", "false")
79227	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies")
79228	urls += "?" + c.urlParams_.Encode()
79229	req, err := http.NewRequest("POST", urls, body)
79230	if err != nil {
79231		return nil, err
79232	}
79233	req.Header = reqHeaders
79234	googleapi.Expand(req.URL, map[string]string{
79235		"project":              c.project,
79236		"zone":                 c.zone,
79237		"instanceGroupManager": c.instanceGroupManager,
79238	})
79239	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79240}
79241
79242// Do executes the "compute.instanceGroupManagers.setAutoHealingPolicies" call.
79243// Exactly one of *Operation or error will be non-nil. Any non-2xx
79244// status code is an error. Response headers are in either
79245// *Operation.ServerResponse.Header or (if a response was returned at
79246// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79247// to check whether the returned error was because
79248// http.StatusNotModified was returned.
79249func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79250	gensupport.SetOptions(c.urlParams_, opts...)
79251	res, err := c.doRequest("json")
79252	if res != nil && res.StatusCode == http.StatusNotModified {
79253		if res.Body != nil {
79254			res.Body.Close()
79255		}
79256		return nil, &googleapi.Error{
79257			Code:   res.StatusCode,
79258			Header: res.Header,
79259		}
79260	}
79261	if err != nil {
79262		return nil, err
79263	}
79264	defer googleapi.CloseBody(res)
79265	if err := googleapi.CheckResponse(res); err != nil {
79266		return nil, err
79267	}
79268	ret := &Operation{
79269		ServerResponse: googleapi.ServerResponse{
79270			Header:         res.Header,
79271			HTTPStatusCode: res.StatusCode,
79272		},
79273	}
79274	target := &ret
79275	if err := gensupport.DecodeResponse(target, res); err != nil {
79276		return nil, err
79277	}
79278	return ret, nil
79279	// {
79280	//   "description": "Modifies the autohealing policies. [Deprecated] This method is deprecated. Please use Patch instead.",
79281	//   "httpMethod": "POST",
79282	//   "id": "compute.instanceGroupManagers.setAutoHealingPolicies",
79283	//   "parameterOrder": [
79284	//     "project",
79285	//     "zone",
79286	//     "instanceGroupManager"
79287	//   ],
79288	//   "parameters": {
79289	//     "instanceGroupManager": {
79290	//       "description": "The name of the instance group manager.",
79291	//       "location": "path",
79292	//       "required": true,
79293	//       "type": "string"
79294	//     },
79295	//     "project": {
79296	//       "description": "Project ID for this request.",
79297	//       "location": "path",
79298	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79299	//       "required": true,
79300	//       "type": "string"
79301	//     },
79302	//     "requestId": {
79303	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79304	//       "location": "query",
79305	//       "type": "string"
79306	//     },
79307	//     "zone": {
79308	//       "description": "The name of the zone where the managed instance group is located.",
79309	//       "location": "path",
79310	//       "required": true,
79311	//       "type": "string"
79312	//     }
79313	//   },
79314	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies",
79315	//   "request": {
79316	//     "$ref": "InstanceGroupManagersSetAutoHealingRequest"
79317	//   },
79318	//   "response": {
79319	//     "$ref": "Operation"
79320	//   },
79321	//   "scopes": [
79322	//     "https://www.googleapis.com/auth/cloud-platform",
79323	//     "https://www.googleapis.com/auth/compute"
79324	//   ]
79325	// }
79326
79327}
79328
79329// method id "compute.instanceGroupManagers.setInstanceTemplate":
79330
79331type InstanceGroupManagersSetInstanceTemplateCall struct {
79332	s                                               *Service
79333	project                                         string
79334	zone                                            string
79335	instanceGroupManager                            string
79336	instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest
79337	urlParams_                                      gensupport.URLParams
79338	ctx_                                            context.Context
79339	header_                                         http.Header
79340}
79341
79342// SetInstanceTemplate: Specifies the instance template to use when
79343// creating new instances in this group. The templates for existing
79344// instances in the group do not change unless you recreate them.
79345func (r *InstanceGroupManagersService) SetInstanceTemplate(project string, zone string, instanceGroupManager string, instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest) *InstanceGroupManagersSetInstanceTemplateCall {
79346	c := &InstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79347	c.project = project
79348	c.zone = zone
79349	c.instanceGroupManager = instanceGroupManager
79350	c.instancegroupmanagerssetinstancetemplaterequest = instancegroupmanagerssetinstancetemplaterequest
79351	return c
79352}
79353
79354// RequestId sets the optional parameter "requestId": An optional
79355// request ID to identify requests. Specify a unique request ID so that
79356// if you must retry your request, the server will know to ignore the
79357// request if it has already been completed.
79358//
79359// For example, consider a situation where you make an initial request
79360// and the request times out. If you make the request again with the
79361// same request ID, the server can check if original operation with the
79362// same request ID was received, and if so, will ignore the second
79363// request. This prevents clients from accidentally creating duplicate
79364// commitments.
79365//
79366// The request ID must be a valid UUID with the exception that zero UUID
79367// is not supported (00000000-0000-0000-0000-000000000000).
79368func (c *InstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *InstanceGroupManagersSetInstanceTemplateCall {
79369	c.urlParams_.Set("requestId", requestId)
79370	return c
79371}
79372
79373// Fields allows partial responses to be retrieved. See
79374// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79375// for more information.
79376func (c *InstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetInstanceTemplateCall {
79377	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79378	return c
79379}
79380
79381// Context sets the context to be used in this call's Do method. Any
79382// pending HTTP request will be aborted if the provided context is
79383// canceled.
79384func (c *InstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *InstanceGroupManagersSetInstanceTemplateCall {
79385	c.ctx_ = ctx
79386	return c
79387}
79388
79389// Header returns an http.Header that can be modified by the caller to
79390// add HTTP headers to the request.
79391func (c *InstanceGroupManagersSetInstanceTemplateCall) Header() http.Header {
79392	if c.header_ == nil {
79393		c.header_ = make(http.Header)
79394	}
79395	return c.header_
79396}
79397
79398func (c *InstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) {
79399	reqHeaders := make(http.Header)
79400	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
79401	for k, v := range c.header_ {
79402		reqHeaders[k] = v
79403	}
79404	reqHeaders.Set("User-Agent", c.s.userAgent())
79405	var body io.Reader = nil
79406	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssetinstancetemplaterequest)
79407	if err != nil {
79408		return nil, err
79409	}
79410	reqHeaders.Set("Content-Type", "application/json")
79411	c.urlParams_.Set("alt", alt)
79412	c.urlParams_.Set("prettyPrint", "false")
79413	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate")
79414	urls += "?" + c.urlParams_.Encode()
79415	req, err := http.NewRequest("POST", urls, body)
79416	if err != nil {
79417		return nil, err
79418	}
79419	req.Header = reqHeaders
79420	googleapi.Expand(req.URL, map[string]string{
79421		"project":              c.project,
79422		"zone":                 c.zone,
79423		"instanceGroupManager": c.instanceGroupManager,
79424	})
79425	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79426}
79427
79428// Do executes the "compute.instanceGroupManagers.setInstanceTemplate" call.
79429// Exactly one of *Operation or error will be non-nil. Any non-2xx
79430// status code is an error. Response headers are in either
79431// *Operation.ServerResponse.Header or (if a response was returned at
79432// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79433// to check whether the returned error was because
79434// http.StatusNotModified was returned.
79435func (c *InstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79436	gensupport.SetOptions(c.urlParams_, opts...)
79437	res, err := c.doRequest("json")
79438	if res != nil && res.StatusCode == http.StatusNotModified {
79439		if res.Body != nil {
79440			res.Body.Close()
79441		}
79442		return nil, &googleapi.Error{
79443			Code:   res.StatusCode,
79444			Header: res.Header,
79445		}
79446	}
79447	if err != nil {
79448		return nil, err
79449	}
79450	defer googleapi.CloseBody(res)
79451	if err := googleapi.CheckResponse(res); err != nil {
79452		return nil, err
79453	}
79454	ret := &Operation{
79455		ServerResponse: googleapi.ServerResponse{
79456			Header:         res.Header,
79457			HTTPStatusCode: res.StatusCode,
79458		},
79459	}
79460	target := &ret
79461	if err := gensupport.DecodeResponse(target, res); err != nil {
79462		return nil, err
79463	}
79464	return ret, nil
79465	// {
79466	//   "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.",
79467	//   "httpMethod": "POST",
79468	//   "id": "compute.instanceGroupManagers.setInstanceTemplate",
79469	//   "parameterOrder": [
79470	//     "project",
79471	//     "zone",
79472	//     "instanceGroupManager"
79473	//   ],
79474	//   "parameters": {
79475	//     "instanceGroupManager": {
79476	//       "description": "The name of the managed instance group.",
79477	//       "location": "path",
79478	//       "required": true,
79479	//       "type": "string"
79480	//     },
79481	//     "project": {
79482	//       "description": "Project ID for this request.",
79483	//       "location": "path",
79484	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79485	//       "required": true,
79486	//       "type": "string"
79487	//     },
79488	//     "requestId": {
79489	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79490	//       "location": "query",
79491	//       "type": "string"
79492	//     },
79493	//     "zone": {
79494	//       "description": "The name of the zone where the managed instance group is located.",
79495	//       "location": "path",
79496	//       "required": true,
79497	//       "type": "string"
79498	//     }
79499	//   },
79500	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
79501	//   "request": {
79502	//     "$ref": "InstanceGroupManagersSetInstanceTemplateRequest"
79503	//   },
79504	//   "response": {
79505	//     "$ref": "Operation"
79506	//   },
79507	//   "scopes": [
79508	//     "https://www.googleapis.com/auth/cloud-platform",
79509	//     "https://www.googleapis.com/auth/compute"
79510	//   ]
79511	// }
79512
79513}
79514
79515// method id "compute.instanceGroupManagers.setTargetPools":
79516
79517type InstanceGroupManagersSetTargetPoolsCall struct {
79518	s                                          *Service
79519	project                                    string
79520	zone                                       string
79521	instanceGroupManager                       string
79522	instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest
79523	urlParams_                                 gensupport.URLParams
79524	ctx_                                       context.Context
79525	header_                                    http.Header
79526}
79527
79528// SetTargetPools: Modifies the target pools to which all instances in
79529// this managed instance group are assigned. The target pools
79530// automatically apply to all of the instances in the managed instance
79531// group. This operation is marked DONE when you make the request even
79532// if the instances have not yet been added to their target pools. The
79533// change might take some time to apply to all of the instances in the
79534// group depending on the size of the group.
79535func (r *InstanceGroupManagersService) SetTargetPools(project string, zone string, instanceGroupManager string, instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest) *InstanceGroupManagersSetTargetPoolsCall {
79536	c := &InstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79537	c.project = project
79538	c.zone = zone
79539	c.instanceGroupManager = instanceGroupManager
79540	c.instancegroupmanagerssettargetpoolsrequest = instancegroupmanagerssettargetpoolsrequest
79541	return c
79542}
79543
79544// RequestId sets the optional parameter "requestId": An optional
79545// request ID to identify requests. Specify a unique request ID so that
79546// if you must retry your request, the server will know to ignore the
79547// request if it has already been completed.
79548//
79549// For example, consider a situation where you make an initial request
79550// and the request times out. If you make the request again with the
79551// same request ID, the server can check if original operation with the
79552// same request ID was received, and if so, will ignore the second
79553// request. This prevents clients from accidentally creating duplicate
79554// commitments.
79555//
79556// The request ID must be a valid UUID with the exception that zero UUID
79557// is not supported (00000000-0000-0000-0000-000000000000).
79558func (c *InstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *InstanceGroupManagersSetTargetPoolsCall {
79559	c.urlParams_.Set("requestId", requestId)
79560	return c
79561}
79562
79563// Fields allows partial responses to be retrieved. See
79564// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79565// for more information.
79566func (c *InstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetTargetPoolsCall {
79567	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79568	return c
79569}
79570
79571// Context sets the context to be used in this call's Do method. Any
79572// pending HTTP request will be aborted if the provided context is
79573// canceled.
79574func (c *InstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *InstanceGroupManagersSetTargetPoolsCall {
79575	c.ctx_ = ctx
79576	return c
79577}
79578
79579// Header returns an http.Header that can be modified by the caller to
79580// add HTTP headers to the request.
79581func (c *InstanceGroupManagersSetTargetPoolsCall) Header() http.Header {
79582	if c.header_ == nil {
79583		c.header_ = make(http.Header)
79584	}
79585	return c.header_
79586}
79587
79588func (c *InstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) {
79589	reqHeaders := make(http.Header)
79590	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
79591	for k, v := range c.header_ {
79592		reqHeaders[k] = v
79593	}
79594	reqHeaders.Set("User-Agent", c.s.userAgent())
79595	var body io.Reader = nil
79596	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssettargetpoolsrequest)
79597	if err != nil {
79598		return nil, err
79599	}
79600	reqHeaders.Set("Content-Type", "application/json")
79601	c.urlParams_.Set("alt", alt)
79602	c.urlParams_.Set("prettyPrint", "false")
79603	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools")
79604	urls += "?" + c.urlParams_.Encode()
79605	req, err := http.NewRequest("POST", urls, body)
79606	if err != nil {
79607		return nil, err
79608	}
79609	req.Header = reqHeaders
79610	googleapi.Expand(req.URL, map[string]string{
79611		"project":              c.project,
79612		"zone":                 c.zone,
79613		"instanceGroupManager": c.instanceGroupManager,
79614	})
79615	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79616}
79617
79618// Do executes the "compute.instanceGroupManagers.setTargetPools" call.
79619// Exactly one of *Operation or error will be non-nil. Any non-2xx
79620// status code is an error. Response headers are in either
79621// *Operation.ServerResponse.Header or (if a response was returned at
79622// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79623// to check whether the returned error was because
79624// http.StatusNotModified was returned.
79625func (c *InstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79626	gensupport.SetOptions(c.urlParams_, opts...)
79627	res, err := c.doRequest("json")
79628	if res != nil && res.StatusCode == http.StatusNotModified {
79629		if res.Body != nil {
79630			res.Body.Close()
79631		}
79632		return nil, &googleapi.Error{
79633			Code:   res.StatusCode,
79634			Header: res.Header,
79635		}
79636	}
79637	if err != nil {
79638		return nil, err
79639	}
79640	defer googleapi.CloseBody(res)
79641	if err := googleapi.CheckResponse(res); err != nil {
79642		return nil, err
79643	}
79644	ret := &Operation{
79645		ServerResponse: googleapi.ServerResponse{
79646			Header:         res.Header,
79647			HTTPStatusCode: res.StatusCode,
79648		},
79649	}
79650	target := &ret
79651	if err := gensupport.DecodeResponse(target, res); err != nil {
79652		return nil, err
79653	}
79654	return ret, nil
79655	// {
79656	//   "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.",
79657	//   "httpMethod": "POST",
79658	//   "id": "compute.instanceGroupManagers.setTargetPools",
79659	//   "parameterOrder": [
79660	//     "project",
79661	//     "zone",
79662	//     "instanceGroupManager"
79663	//   ],
79664	//   "parameters": {
79665	//     "instanceGroupManager": {
79666	//       "description": "The name of the managed instance group.",
79667	//       "location": "path",
79668	//       "required": true,
79669	//       "type": "string"
79670	//     },
79671	//     "project": {
79672	//       "description": "Project ID for this request.",
79673	//       "location": "path",
79674	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79675	//       "required": true,
79676	//       "type": "string"
79677	//     },
79678	//     "requestId": {
79679	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79680	//       "location": "query",
79681	//       "type": "string"
79682	//     },
79683	//     "zone": {
79684	//       "description": "The name of the zone where the managed instance group is located.",
79685	//       "location": "path",
79686	//       "required": true,
79687	//       "type": "string"
79688	//     }
79689	//   },
79690	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
79691	//   "request": {
79692	//     "$ref": "InstanceGroupManagersSetTargetPoolsRequest"
79693	//   },
79694	//   "response": {
79695	//     "$ref": "Operation"
79696	//   },
79697	//   "scopes": [
79698	//     "https://www.googleapis.com/auth/cloud-platform",
79699	//     "https://www.googleapis.com/auth/compute"
79700	//   ]
79701	// }
79702
79703}
79704
79705// method id "compute.instanceGroupManagers.testIamPermissions":
79706
79707type InstanceGroupManagersTestIamPermissionsCall struct {
79708	s                      *Service
79709	project                string
79710	zone                   string
79711	resource               string
79712	testpermissionsrequest *TestPermissionsRequest
79713	urlParams_             gensupport.URLParams
79714	ctx_                   context.Context
79715	header_                http.Header
79716}
79717
79718// TestIamPermissions: Returns permissions that a caller has on the
79719// specified resource.
79720func (r *InstanceGroupManagersService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceGroupManagersTestIamPermissionsCall {
79721	c := &InstanceGroupManagersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79722	c.project = project
79723	c.zone = zone
79724	c.resource = resource
79725	c.testpermissionsrequest = testpermissionsrequest
79726	return c
79727}
79728
79729// Fields allows partial responses to be retrieved. See
79730// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79731// for more information.
79732func (c *InstanceGroupManagersTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersTestIamPermissionsCall {
79733	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79734	return c
79735}
79736
79737// Context sets the context to be used in this call's Do method. Any
79738// pending HTTP request will be aborted if the provided context is
79739// canceled.
79740func (c *InstanceGroupManagersTestIamPermissionsCall) Context(ctx context.Context) *InstanceGroupManagersTestIamPermissionsCall {
79741	c.ctx_ = ctx
79742	return c
79743}
79744
79745// Header returns an http.Header that can be modified by the caller to
79746// add HTTP headers to the request.
79747func (c *InstanceGroupManagersTestIamPermissionsCall) Header() http.Header {
79748	if c.header_ == nil {
79749		c.header_ = make(http.Header)
79750	}
79751	return c.header_
79752}
79753
79754func (c *InstanceGroupManagersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
79755	reqHeaders := make(http.Header)
79756	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
79757	for k, v := range c.header_ {
79758		reqHeaders[k] = v
79759	}
79760	reqHeaders.Set("User-Agent", c.s.userAgent())
79761	var body io.Reader = nil
79762	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
79763	if err != nil {
79764		return nil, err
79765	}
79766	reqHeaders.Set("Content-Type", "application/json")
79767	c.urlParams_.Set("alt", alt)
79768	c.urlParams_.Set("prettyPrint", "false")
79769	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{resource}/testIamPermissions")
79770	urls += "?" + c.urlParams_.Encode()
79771	req, err := http.NewRequest("POST", urls, body)
79772	if err != nil {
79773		return nil, err
79774	}
79775	req.Header = reqHeaders
79776	googleapi.Expand(req.URL, map[string]string{
79777		"project":  c.project,
79778		"zone":     c.zone,
79779		"resource": c.resource,
79780	})
79781	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79782}
79783
79784// Do executes the "compute.instanceGroupManagers.testIamPermissions" call.
79785// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
79786// non-2xx status code is an error. Response headers are in either
79787// *TestPermissionsResponse.ServerResponse.Header or (if a response was
79788// returned at all) in error.(*googleapi.Error).Header. Use
79789// googleapi.IsNotModified to check whether the returned error was
79790// because http.StatusNotModified was returned.
79791func (c *InstanceGroupManagersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
79792	gensupport.SetOptions(c.urlParams_, opts...)
79793	res, err := c.doRequest("json")
79794	if res != nil && res.StatusCode == http.StatusNotModified {
79795		if res.Body != nil {
79796			res.Body.Close()
79797		}
79798		return nil, &googleapi.Error{
79799			Code:   res.StatusCode,
79800			Header: res.Header,
79801		}
79802	}
79803	if err != nil {
79804		return nil, err
79805	}
79806	defer googleapi.CloseBody(res)
79807	if err := googleapi.CheckResponse(res); err != nil {
79808		return nil, err
79809	}
79810	ret := &TestPermissionsResponse{
79811		ServerResponse: googleapi.ServerResponse{
79812			Header:         res.Header,
79813			HTTPStatusCode: res.StatusCode,
79814		},
79815	}
79816	target := &ret
79817	if err := gensupport.DecodeResponse(target, res); err != nil {
79818		return nil, err
79819	}
79820	return ret, nil
79821	// {
79822	//   "description": "Returns permissions that a caller has on the specified resource.",
79823	//   "httpMethod": "POST",
79824	//   "id": "compute.instanceGroupManagers.testIamPermissions",
79825	//   "parameterOrder": [
79826	//     "project",
79827	//     "zone",
79828	//     "resource"
79829	//   ],
79830	//   "parameters": {
79831	//     "project": {
79832	//       "description": "Project ID for this request.",
79833	//       "location": "path",
79834	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79835	//       "required": true,
79836	//       "type": "string"
79837	//     },
79838	//     "resource": {
79839	//       "description": "Name or id of the resource for this request.",
79840	//       "location": "path",
79841	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
79842	//       "required": true,
79843	//       "type": "string"
79844	//     },
79845	//     "zone": {
79846	//       "description": "The name of the zone for this request.",
79847	//       "location": "path",
79848	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
79849	//       "required": true,
79850	//       "type": "string"
79851	//     }
79852	//   },
79853	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{resource}/testIamPermissions",
79854	//   "request": {
79855	//     "$ref": "TestPermissionsRequest"
79856	//   },
79857	//   "response": {
79858	//     "$ref": "TestPermissionsResponse"
79859	//   },
79860	//   "scopes": [
79861	//     "https://www.googleapis.com/auth/cloud-platform",
79862	//     "https://www.googleapis.com/auth/compute",
79863	//     "https://www.googleapis.com/auth/compute.readonly"
79864	//   ]
79865	// }
79866
79867}
79868
79869// method id "compute.instanceGroupManagers.update":
79870
79871type InstanceGroupManagersUpdateCall struct {
79872	s                    *Service
79873	project              string
79874	zone                 string
79875	instanceGroupManager string
79876	instancegroupmanager *InstanceGroupManager
79877	urlParams_           gensupport.URLParams
79878	ctx_                 context.Context
79879	header_              http.Header
79880}
79881
79882// Update: Updates a managed instance group using the information that
79883// you specify in the request. This operation is marked as DONE when the
79884// group is updated even if the instances in the group have not yet been
79885// updated. You must separately verify the status of the individual
79886// instances with the listManagedInstances method.
79887func (r *InstanceGroupManagersService) Update(project string, zone string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersUpdateCall {
79888	c := &InstanceGroupManagersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79889	c.project = project
79890	c.zone = zone
79891	c.instanceGroupManager = instanceGroupManager
79892	c.instancegroupmanager = instancegroupmanager
79893	return c
79894}
79895
79896// RequestId sets the optional parameter "requestId": An optional
79897// request ID to identify requests. Specify a unique request ID so that
79898// if you must retry your request, the server will know to ignore the
79899// request if it has already been completed.
79900//
79901// For example, consider a situation where you make an initial request
79902// and the request times out. If you make the request again with the
79903// same request ID, the server can check if original operation with the
79904// same request ID was received, and if so, will ignore the second
79905// request. This prevents clients from accidentally creating duplicate
79906// commitments.
79907//
79908// The request ID must be a valid UUID with the exception that zero UUID
79909// is not supported (00000000-0000-0000-0000-000000000000).
79910func (c *InstanceGroupManagersUpdateCall) RequestId(requestId string) *InstanceGroupManagersUpdateCall {
79911	c.urlParams_.Set("requestId", requestId)
79912	return c
79913}
79914
79915// Fields allows partial responses to be retrieved. See
79916// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79917// for more information.
79918func (c *InstanceGroupManagersUpdateCall) Fields(s ...googleapi.Field) *InstanceGroupManagersUpdateCall {
79919	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79920	return c
79921}
79922
79923// Context sets the context to be used in this call's Do method. Any
79924// pending HTTP request will be aborted if the provided context is
79925// canceled.
79926func (c *InstanceGroupManagersUpdateCall) Context(ctx context.Context) *InstanceGroupManagersUpdateCall {
79927	c.ctx_ = ctx
79928	return c
79929}
79930
79931// Header returns an http.Header that can be modified by the caller to
79932// add HTTP headers to the request.
79933func (c *InstanceGroupManagersUpdateCall) Header() http.Header {
79934	if c.header_ == nil {
79935		c.header_ = make(http.Header)
79936	}
79937	return c.header_
79938}
79939
79940func (c *InstanceGroupManagersUpdateCall) doRequest(alt string) (*http.Response, error) {
79941	reqHeaders := make(http.Header)
79942	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
79943	for k, v := range c.header_ {
79944		reqHeaders[k] = v
79945	}
79946	reqHeaders.Set("User-Agent", c.s.userAgent())
79947	var body io.Reader = nil
79948	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
79949	if err != nil {
79950		return nil, err
79951	}
79952	reqHeaders.Set("Content-Type", "application/json")
79953	c.urlParams_.Set("alt", alt)
79954	c.urlParams_.Set("prettyPrint", "false")
79955	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
79956	urls += "?" + c.urlParams_.Encode()
79957	req, err := http.NewRequest("PUT", urls, body)
79958	if err != nil {
79959		return nil, err
79960	}
79961	req.Header = reqHeaders
79962	googleapi.Expand(req.URL, map[string]string{
79963		"project":              c.project,
79964		"zone":                 c.zone,
79965		"instanceGroupManager": c.instanceGroupManager,
79966	})
79967	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79968}
79969
79970// Do executes the "compute.instanceGroupManagers.update" call.
79971// Exactly one of *Operation or error will be non-nil. Any non-2xx
79972// status code is an error. Response headers are in either
79973// *Operation.ServerResponse.Header or (if a response was returned at
79974// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79975// to check whether the returned error was because
79976// http.StatusNotModified was returned.
79977func (c *InstanceGroupManagersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79978	gensupport.SetOptions(c.urlParams_, opts...)
79979	res, err := c.doRequest("json")
79980	if res != nil && res.StatusCode == http.StatusNotModified {
79981		if res.Body != nil {
79982			res.Body.Close()
79983		}
79984		return nil, &googleapi.Error{
79985			Code:   res.StatusCode,
79986			Header: res.Header,
79987		}
79988	}
79989	if err != nil {
79990		return nil, err
79991	}
79992	defer googleapi.CloseBody(res)
79993	if err := googleapi.CheckResponse(res); err != nil {
79994		return nil, err
79995	}
79996	ret := &Operation{
79997		ServerResponse: googleapi.ServerResponse{
79998			Header:         res.Header,
79999			HTTPStatusCode: res.StatusCode,
80000		},
80001	}
80002	target := &ret
80003	if err := gensupport.DecodeResponse(target, res); err != nil {
80004		return nil, err
80005	}
80006	return ret, nil
80007	// {
80008	//   "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.",
80009	//   "httpMethod": "PUT",
80010	//   "id": "compute.instanceGroupManagers.update",
80011	//   "parameterOrder": [
80012	//     "project",
80013	//     "zone",
80014	//     "instanceGroupManager"
80015	//   ],
80016	//   "parameters": {
80017	//     "instanceGroupManager": {
80018	//       "description": "The name of the instance group manager.",
80019	//       "location": "path",
80020	//       "required": true,
80021	//       "type": "string"
80022	//     },
80023	//     "project": {
80024	//       "description": "Project ID for this request.",
80025	//       "location": "path",
80026	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80027	//       "required": true,
80028	//       "type": "string"
80029	//     },
80030	//     "requestId": {
80031	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80032	//       "location": "query",
80033	//       "type": "string"
80034	//     },
80035	//     "zone": {
80036	//       "description": "The name of the zone where you want to create the managed instance group.",
80037	//       "location": "path",
80038	//       "required": true,
80039	//       "type": "string"
80040	//     }
80041	//   },
80042	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
80043	//   "request": {
80044	//     "$ref": "InstanceGroupManager"
80045	//   },
80046	//   "response": {
80047	//     "$ref": "Operation"
80048	//   },
80049	//   "scopes": [
80050	//     "https://www.googleapis.com/auth/cloud-platform",
80051	//     "https://www.googleapis.com/auth/compute"
80052	//   ]
80053	// }
80054
80055}
80056
80057// method id "compute.instanceGroupManagers.updatePerInstanceConfigs":
80058
80059type InstanceGroupManagersUpdatePerInstanceConfigsCall struct {
80060	s                                                *Service
80061	project                                          string
80062	zone                                             string
80063	instanceGroupManager                             string
80064	instancegroupmanagersupdateperinstanceconfigsreq *InstanceGroupManagersUpdatePerInstanceConfigsReq
80065	urlParams_                                       gensupport.URLParams
80066	ctx_                                             context.Context
80067	header_                                          http.Header
80068}
80069
80070// UpdatePerInstanceConfigs: Insert or update (for the ones that already
80071// exist) per-instance configs for the managed instance group.
80072// perInstanceConfig.instance serves as a key used to distinguish
80073// whether to perform insert or patch.
80074func (r *InstanceGroupManagersService) UpdatePerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagersupdateperinstanceconfigsreq *InstanceGroupManagersUpdatePerInstanceConfigsReq) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
80075	c := &InstanceGroupManagersUpdatePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80076	c.project = project
80077	c.zone = zone
80078	c.instanceGroupManager = instanceGroupManager
80079	c.instancegroupmanagersupdateperinstanceconfigsreq = instancegroupmanagersupdateperinstanceconfigsreq
80080	return c
80081}
80082
80083// RequestId sets the optional parameter "requestId": An optional
80084// request ID to identify requests. Specify a unique request ID so that
80085// if you must retry your request, the server will know to ignore the
80086// request if it has already been completed.
80087//
80088// For example, consider a situation where you make an initial request
80089// and the request times out. If you make the request again with the
80090// same request ID, the server can check if original operation with the
80091// same request ID was received, and if so, will ignore the second
80092// request. This prevents clients from accidentally creating duplicate
80093// commitments.
80094//
80095// The request ID must be a valid UUID with the exception that zero UUID
80096// is not supported (00000000-0000-0000-0000-000000000000).
80097func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) RequestId(requestId string) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
80098	c.urlParams_.Set("requestId", requestId)
80099	return c
80100}
80101
80102// Fields allows partial responses to be retrieved. See
80103// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80104// for more information.
80105func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
80106	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80107	return c
80108}
80109
80110// Context sets the context to be used in this call's Do method. Any
80111// pending HTTP request will be aborted if the provided context is
80112// canceled.
80113func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
80114	c.ctx_ = ctx
80115	return c
80116}
80117
80118// Header returns an http.Header that can be modified by the caller to
80119// add HTTP headers to the request.
80120func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Header() http.Header {
80121	if c.header_ == nil {
80122		c.header_ = make(http.Header)
80123	}
80124	return c.header_
80125}
80126
80127func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
80128	reqHeaders := make(http.Header)
80129	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
80130	for k, v := range c.header_ {
80131		reqHeaders[k] = v
80132	}
80133	reqHeaders.Set("User-Agent", c.s.userAgent())
80134	var body io.Reader = nil
80135	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersupdateperinstanceconfigsreq)
80136	if err != nil {
80137		return nil, err
80138	}
80139	reqHeaders.Set("Content-Type", "application/json")
80140	c.urlParams_.Set("alt", alt)
80141	c.urlParams_.Set("prettyPrint", "false")
80142	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs")
80143	urls += "?" + c.urlParams_.Encode()
80144	req, err := http.NewRequest("POST", urls, body)
80145	if err != nil {
80146		return nil, err
80147	}
80148	req.Header = reqHeaders
80149	googleapi.Expand(req.URL, map[string]string{
80150		"project":              c.project,
80151		"zone":                 c.zone,
80152		"instanceGroupManager": c.instanceGroupManager,
80153	})
80154	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80155}
80156
80157// Do executes the "compute.instanceGroupManagers.updatePerInstanceConfigs" call.
80158// Exactly one of *Operation or error will be non-nil. Any non-2xx
80159// status code is an error. Response headers are in either
80160// *Operation.ServerResponse.Header or (if a response was returned at
80161// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80162// to check whether the returned error was because
80163// http.StatusNotModified was returned.
80164func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80165	gensupport.SetOptions(c.urlParams_, opts...)
80166	res, err := c.doRequest("json")
80167	if res != nil && res.StatusCode == http.StatusNotModified {
80168		if res.Body != nil {
80169			res.Body.Close()
80170		}
80171		return nil, &googleapi.Error{
80172			Code:   res.StatusCode,
80173			Header: res.Header,
80174		}
80175	}
80176	if err != nil {
80177		return nil, err
80178	}
80179	defer googleapi.CloseBody(res)
80180	if err := googleapi.CheckResponse(res); err != nil {
80181		return nil, err
80182	}
80183	ret := &Operation{
80184		ServerResponse: googleapi.ServerResponse{
80185			Header:         res.Header,
80186			HTTPStatusCode: res.StatusCode,
80187		},
80188	}
80189	target := &ret
80190	if err := gensupport.DecodeResponse(target, res); err != nil {
80191		return nil, err
80192	}
80193	return ret, nil
80194	// {
80195	//   "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.",
80196	//   "httpMethod": "POST",
80197	//   "id": "compute.instanceGroupManagers.updatePerInstanceConfigs",
80198	//   "parameterOrder": [
80199	//     "project",
80200	//     "zone",
80201	//     "instanceGroupManager"
80202	//   ],
80203	//   "parameters": {
80204	//     "instanceGroupManager": {
80205	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
80206	//       "location": "path",
80207	//       "required": true,
80208	//       "type": "string"
80209	//     },
80210	//     "project": {
80211	//       "description": "Project ID for this request.",
80212	//       "location": "path",
80213	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80214	//       "required": true,
80215	//       "type": "string"
80216	//     },
80217	//     "requestId": {
80218	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80219	//       "location": "query",
80220	//       "type": "string"
80221	//     },
80222	//     "zone": {
80223	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
80224	//       "location": "path",
80225	//       "required": true,
80226	//       "type": "string"
80227	//     }
80228	//   },
80229	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs",
80230	//   "request": {
80231	//     "$ref": "InstanceGroupManagersUpdatePerInstanceConfigsReq"
80232	//   },
80233	//   "response": {
80234	//     "$ref": "Operation"
80235	//   },
80236	//   "scopes": [
80237	//     "https://www.googleapis.com/auth/cloud-platform",
80238	//     "https://www.googleapis.com/auth/compute"
80239	//   ]
80240	// }
80241
80242}
80243
80244// method id "compute.instanceGroups.addInstances":
80245
80246type InstanceGroupsAddInstancesCall struct {
80247	s                                 *Service
80248	project                           string
80249	zone                              string
80250	instanceGroup                     string
80251	instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest
80252	urlParams_                        gensupport.URLParams
80253	ctx_                              context.Context
80254	header_                           http.Header
80255}
80256
80257// AddInstances: Adds a list of instances to the specified instance
80258// group. All of the instances in the instance group must be in the same
80259// network/subnetwork. Read  Adding instances for more information.
80260func (r *InstanceGroupsService) AddInstances(project string, zone string, instanceGroup string, instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest) *InstanceGroupsAddInstancesCall {
80261	c := &InstanceGroupsAddInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80262	c.project = project
80263	c.zone = zone
80264	c.instanceGroup = instanceGroup
80265	c.instancegroupsaddinstancesrequest = instancegroupsaddinstancesrequest
80266	return c
80267}
80268
80269// RequestId sets the optional parameter "requestId": An optional
80270// request ID to identify requests. Specify a unique request ID so that
80271// if you must retry your request, the server will know to ignore the
80272// request if it has already been completed.
80273//
80274// For example, consider a situation where you make an initial request
80275// and the request times out. If you make the request again with the
80276// same request ID, the server can check if original operation with the
80277// same request ID was received, and if so, will ignore the second
80278// request. This prevents clients from accidentally creating duplicate
80279// commitments.
80280//
80281// The request ID must be a valid UUID with the exception that zero UUID
80282// is not supported (00000000-0000-0000-0000-000000000000).
80283func (c *InstanceGroupsAddInstancesCall) RequestId(requestId string) *InstanceGroupsAddInstancesCall {
80284	c.urlParams_.Set("requestId", requestId)
80285	return c
80286}
80287
80288// Fields allows partial responses to be retrieved. See
80289// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80290// for more information.
80291func (c *InstanceGroupsAddInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsAddInstancesCall {
80292	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80293	return c
80294}
80295
80296// Context sets the context to be used in this call's Do method. Any
80297// pending HTTP request will be aborted if the provided context is
80298// canceled.
80299func (c *InstanceGroupsAddInstancesCall) Context(ctx context.Context) *InstanceGroupsAddInstancesCall {
80300	c.ctx_ = ctx
80301	return c
80302}
80303
80304// Header returns an http.Header that can be modified by the caller to
80305// add HTTP headers to the request.
80306func (c *InstanceGroupsAddInstancesCall) Header() http.Header {
80307	if c.header_ == nil {
80308		c.header_ = make(http.Header)
80309	}
80310	return c.header_
80311}
80312
80313func (c *InstanceGroupsAddInstancesCall) doRequest(alt string) (*http.Response, error) {
80314	reqHeaders := make(http.Header)
80315	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
80316	for k, v := range c.header_ {
80317		reqHeaders[k] = v
80318	}
80319	reqHeaders.Set("User-Agent", c.s.userAgent())
80320	var body io.Reader = nil
80321	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsaddinstancesrequest)
80322	if err != nil {
80323		return nil, err
80324	}
80325	reqHeaders.Set("Content-Type", "application/json")
80326	c.urlParams_.Set("alt", alt)
80327	c.urlParams_.Set("prettyPrint", "false")
80328	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances")
80329	urls += "?" + c.urlParams_.Encode()
80330	req, err := http.NewRequest("POST", urls, body)
80331	if err != nil {
80332		return nil, err
80333	}
80334	req.Header = reqHeaders
80335	googleapi.Expand(req.URL, map[string]string{
80336		"project":       c.project,
80337		"zone":          c.zone,
80338		"instanceGroup": c.instanceGroup,
80339	})
80340	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80341}
80342
80343// Do executes the "compute.instanceGroups.addInstances" call.
80344// Exactly one of *Operation or error will be non-nil. Any non-2xx
80345// status code is an error. Response headers are in either
80346// *Operation.ServerResponse.Header or (if a response was returned at
80347// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80348// to check whether the returned error was because
80349// http.StatusNotModified was returned.
80350func (c *InstanceGroupsAddInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80351	gensupport.SetOptions(c.urlParams_, opts...)
80352	res, err := c.doRequest("json")
80353	if res != nil && res.StatusCode == http.StatusNotModified {
80354		if res.Body != nil {
80355			res.Body.Close()
80356		}
80357		return nil, &googleapi.Error{
80358			Code:   res.StatusCode,
80359			Header: res.Header,
80360		}
80361	}
80362	if err != nil {
80363		return nil, err
80364	}
80365	defer googleapi.CloseBody(res)
80366	if err := googleapi.CheckResponse(res); err != nil {
80367		return nil, err
80368	}
80369	ret := &Operation{
80370		ServerResponse: googleapi.ServerResponse{
80371			Header:         res.Header,
80372			HTTPStatusCode: res.StatusCode,
80373		},
80374	}
80375	target := &ret
80376	if err := gensupport.DecodeResponse(target, res); err != nil {
80377		return nil, err
80378	}
80379	return ret, nil
80380	// {
80381	//   "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.",
80382	//   "httpMethod": "POST",
80383	//   "id": "compute.instanceGroups.addInstances",
80384	//   "parameterOrder": [
80385	//     "project",
80386	//     "zone",
80387	//     "instanceGroup"
80388	//   ],
80389	//   "parameters": {
80390	//     "instanceGroup": {
80391	//       "description": "The name of the instance group where you are adding instances.",
80392	//       "location": "path",
80393	//       "required": true,
80394	//       "type": "string"
80395	//     },
80396	//     "project": {
80397	//       "description": "Project ID for this request.",
80398	//       "location": "path",
80399	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80400	//       "required": true,
80401	//       "type": "string"
80402	//     },
80403	//     "requestId": {
80404	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80405	//       "location": "query",
80406	//       "type": "string"
80407	//     },
80408	//     "zone": {
80409	//       "description": "The name of the zone where the instance group is located.",
80410	//       "location": "path",
80411	//       "required": true,
80412	//       "type": "string"
80413	//     }
80414	//   },
80415	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances",
80416	//   "request": {
80417	//     "$ref": "InstanceGroupsAddInstancesRequest"
80418	//   },
80419	//   "response": {
80420	//     "$ref": "Operation"
80421	//   },
80422	//   "scopes": [
80423	//     "https://www.googleapis.com/auth/cloud-platform",
80424	//     "https://www.googleapis.com/auth/compute"
80425	//   ]
80426	// }
80427
80428}
80429
80430// method id "compute.instanceGroups.aggregatedList":
80431
80432type InstanceGroupsAggregatedListCall struct {
80433	s            *Service
80434	project      string
80435	urlParams_   gensupport.URLParams
80436	ifNoneMatch_ string
80437	ctx_         context.Context
80438	header_      http.Header
80439}
80440
80441// AggregatedList: Retrieves the list of instance groups and sorts them
80442// by zone.
80443func (r *InstanceGroupsService) AggregatedList(project string) *InstanceGroupsAggregatedListCall {
80444	c := &InstanceGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80445	c.project = project
80446	return c
80447}
80448
80449// Filter sets the optional parameter "filter": A filter expression that
80450// filters resources listed in the response. The expression must specify
80451// the field name, a comparison operator, and the value that you want to
80452// use for filtering. The value must be a string, a number, or a
80453// boolean. The comparison operator must be either =, !=, >, or <.
80454//
80455// For example, if you are filtering Compute Engine instances, you can
80456// exclude instances named example-instance by specifying name !=
80457// example-instance.
80458//
80459// You can also filter nested fields. For example, you could specify
80460// scheduling.automaticRestart = false to include instances only if they
80461// are not scheduled for automatic restarts. You can use filtering on
80462// nested fields to filter based on resource labels.
80463//
80464// To filter on multiple expressions, provide each separate expression
80465// within parentheses. For example, (scheduling.automaticRestart = true)
80466// (cpuPlatform = "Intel Skylake"). By default, each expression is an
80467// AND expression. However, you can include AND and OR expressions
80468// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
80469// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
80470// true).
80471func (c *InstanceGroupsAggregatedListCall) Filter(filter string) *InstanceGroupsAggregatedListCall {
80472	c.urlParams_.Set("filter", filter)
80473	return c
80474}
80475
80476// IncludeAllScopes sets the optional parameter "includeAllScopes":
80477// Indicates whether every visible scope for each scope type (zone,
80478// region, global) should be included in the response. For new resource
80479// types added after this field, the flag has no effect as new resource
80480// types will always include every visible scope for each scope type in
80481// response. For resource types which predate this field, if this flag
80482// is omitted or false, only scopes of the scope types where the
80483// resource type is expected to be found will be included.
80484func (c *InstanceGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstanceGroupsAggregatedListCall {
80485	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
80486	return c
80487}
80488
80489// MaxResults sets the optional parameter "maxResults": The maximum
80490// number of results per page that should be returned. If the number of
80491// available results is larger than maxResults, Compute Engine returns a
80492// nextPageToken that can be used to get the next page of results in
80493// subsequent list requests. Acceptable values are 0 to 500, inclusive.
80494// (Default: 500)
80495func (c *InstanceGroupsAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupsAggregatedListCall {
80496	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
80497	return c
80498}
80499
80500// OrderBy sets the optional parameter "orderBy": Sorts list results by
80501// a certain order. By default, results are returned in alphanumerical
80502// order based on the resource name.
80503//
80504// You can also sort results in descending order based on the creation
80505// timestamp using orderBy="creationTimestamp desc". This sorts results
80506// based on the creationTimestamp field in reverse chronological order
80507// (newest result first). Use this to sort resources like operations so
80508// that the newest operation is returned first.
80509//
80510// Currently, only sorting by name or creationTimestamp desc is
80511// supported.
80512func (c *InstanceGroupsAggregatedListCall) OrderBy(orderBy string) *InstanceGroupsAggregatedListCall {
80513	c.urlParams_.Set("orderBy", orderBy)
80514	return c
80515}
80516
80517// PageToken sets the optional parameter "pageToken": Specifies a page
80518// token to use. Set pageToken to the nextPageToken returned by a
80519// previous list request to get the next page of results.
80520func (c *InstanceGroupsAggregatedListCall) PageToken(pageToken string) *InstanceGroupsAggregatedListCall {
80521	c.urlParams_.Set("pageToken", pageToken)
80522	return c
80523}
80524
80525// Fields allows partial responses to be retrieved. See
80526// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80527// for more information.
80528func (c *InstanceGroupsAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupsAggregatedListCall {
80529	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80530	return c
80531}
80532
80533// IfNoneMatch sets the optional parameter which makes the operation
80534// fail if the object's ETag matches the given value. This is useful for
80535// getting updates only after the object has changed since the last
80536// request. Use googleapi.IsNotModified to check whether the response
80537// error from Do is the result of In-None-Match.
80538func (c *InstanceGroupsAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupsAggregatedListCall {
80539	c.ifNoneMatch_ = entityTag
80540	return c
80541}
80542
80543// Context sets the context to be used in this call's Do method. Any
80544// pending HTTP request will be aborted if the provided context is
80545// canceled.
80546func (c *InstanceGroupsAggregatedListCall) Context(ctx context.Context) *InstanceGroupsAggregatedListCall {
80547	c.ctx_ = ctx
80548	return c
80549}
80550
80551// Header returns an http.Header that can be modified by the caller to
80552// add HTTP headers to the request.
80553func (c *InstanceGroupsAggregatedListCall) Header() http.Header {
80554	if c.header_ == nil {
80555		c.header_ = make(http.Header)
80556	}
80557	return c.header_
80558}
80559
80560func (c *InstanceGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
80561	reqHeaders := make(http.Header)
80562	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
80563	for k, v := range c.header_ {
80564		reqHeaders[k] = v
80565	}
80566	reqHeaders.Set("User-Agent", c.s.userAgent())
80567	if c.ifNoneMatch_ != "" {
80568		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
80569	}
80570	var body io.Reader = nil
80571	c.urlParams_.Set("alt", alt)
80572	c.urlParams_.Set("prettyPrint", "false")
80573	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/instanceGroups")
80574	urls += "?" + c.urlParams_.Encode()
80575	req, err := http.NewRequest("GET", urls, body)
80576	if err != nil {
80577		return nil, err
80578	}
80579	req.Header = reqHeaders
80580	googleapi.Expand(req.URL, map[string]string{
80581		"project": c.project,
80582	})
80583	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80584}
80585
80586// Do executes the "compute.instanceGroups.aggregatedList" call.
80587// Exactly one of *InstanceGroupAggregatedList or error will be non-nil.
80588// Any non-2xx status code is an error. Response headers are in either
80589// *InstanceGroupAggregatedList.ServerResponse.Header or (if a response
80590// was returned at all) in error.(*googleapi.Error).Header. Use
80591// googleapi.IsNotModified to check whether the returned error was
80592// because http.StatusNotModified was returned.
80593func (c *InstanceGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupAggregatedList, error) {
80594	gensupport.SetOptions(c.urlParams_, opts...)
80595	res, err := c.doRequest("json")
80596	if res != nil && res.StatusCode == http.StatusNotModified {
80597		if res.Body != nil {
80598			res.Body.Close()
80599		}
80600		return nil, &googleapi.Error{
80601			Code:   res.StatusCode,
80602			Header: res.Header,
80603		}
80604	}
80605	if err != nil {
80606		return nil, err
80607	}
80608	defer googleapi.CloseBody(res)
80609	if err := googleapi.CheckResponse(res); err != nil {
80610		return nil, err
80611	}
80612	ret := &InstanceGroupAggregatedList{
80613		ServerResponse: googleapi.ServerResponse{
80614			Header:         res.Header,
80615			HTTPStatusCode: res.StatusCode,
80616		},
80617	}
80618	target := &ret
80619	if err := gensupport.DecodeResponse(target, res); err != nil {
80620		return nil, err
80621	}
80622	return ret, nil
80623	// {
80624	//   "description": "Retrieves the list of instance groups and sorts them by zone.",
80625	//   "httpMethod": "GET",
80626	//   "id": "compute.instanceGroups.aggregatedList",
80627	//   "parameterOrder": [
80628	//     "project"
80629	//   ],
80630	//   "parameters": {
80631	//     "filter": {
80632	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
80633	//       "location": "query",
80634	//       "type": "string"
80635	//     },
80636	//     "includeAllScopes": {
80637	//       "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.",
80638	//       "location": "query",
80639	//       "type": "boolean"
80640	//     },
80641	//     "maxResults": {
80642	//       "default": "500",
80643	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
80644	//       "format": "uint32",
80645	//       "location": "query",
80646	//       "minimum": "0",
80647	//       "type": "integer"
80648	//     },
80649	//     "orderBy": {
80650	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
80651	//       "location": "query",
80652	//       "type": "string"
80653	//     },
80654	//     "pageToken": {
80655	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
80656	//       "location": "query",
80657	//       "type": "string"
80658	//     },
80659	//     "project": {
80660	//       "description": "Project ID for this request.",
80661	//       "location": "path",
80662	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80663	//       "required": true,
80664	//       "type": "string"
80665	//     }
80666	//   },
80667	//   "path": "{project}/aggregated/instanceGroups",
80668	//   "response": {
80669	//     "$ref": "InstanceGroupAggregatedList"
80670	//   },
80671	//   "scopes": [
80672	//     "https://www.googleapis.com/auth/cloud-platform",
80673	//     "https://www.googleapis.com/auth/compute",
80674	//     "https://www.googleapis.com/auth/compute.readonly"
80675	//   ]
80676	// }
80677
80678}
80679
80680// Pages invokes f for each page of results.
80681// A non-nil error returned from f will halt the iteration.
80682// The provided context supersedes any context provided to the Context method.
80683func (c *InstanceGroupsAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupAggregatedList) error) error {
80684	c.ctx_ = ctx
80685	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
80686	for {
80687		x, err := c.Do()
80688		if err != nil {
80689			return err
80690		}
80691		if err := f(x); err != nil {
80692			return err
80693		}
80694		if x.NextPageToken == "" {
80695			return nil
80696		}
80697		c.PageToken(x.NextPageToken)
80698	}
80699}
80700
80701// method id "compute.instanceGroups.delete":
80702
80703type InstanceGroupsDeleteCall struct {
80704	s             *Service
80705	project       string
80706	zone          string
80707	instanceGroup string
80708	urlParams_    gensupport.URLParams
80709	ctx_          context.Context
80710	header_       http.Header
80711}
80712
80713// Delete: Deletes the specified instance group. The instances in the
80714// group are not deleted. Note that instance group must not belong to a
80715// backend service. Read  Deleting an instance group for more
80716// information.
80717func (r *InstanceGroupsService) Delete(project string, zone string, instanceGroup string) *InstanceGroupsDeleteCall {
80718	c := &InstanceGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80719	c.project = project
80720	c.zone = zone
80721	c.instanceGroup = instanceGroup
80722	return c
80723}
80724
80725// RequestId sets the optional parameter "requestId": An optional
80726// request ID to identify requests. Specify a unique request ID so that
80727// if you must retry your request, the server will know to ignore the
80728// request if it has already been completed.
80729//
80730// For example, consider a situation where you make an initial request
80731// and the request times out. If you make the request again with the
80732// same request ID, the server can check if original operation with the
80733// same request ID was received, and if so, will ignore the second
80734// request. This prevents clients from accidentally creating duplicate
80735// commitments.
80736//
80737// The request ID must be a valid UUID with the exception that zero UUID
80738// is not supported (00000000-0000-0000-0000-000000000000).
80739func (c *InstanceGroupsDeleteCall) RequestId(requestId string) *InstanceGroupsDeleteCall {
80740	c.urlParams_.Set("requestId", requestId)
80741	return c
80742}
80743
80744// Fields allows partial responses to be retrieved. See
80745// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80746// for more information.
80747func (c *InstanceGroupsDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupsDeleteCall {
80748	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80749	return c
80750}
80751
80752// Context sets the context to be used in this call's Do method. Any
80753// pending HTTP request will be aborted if the provided context is
80754// canceled.
80755func (c *InstanceGroupsDeleteCall) Context(ctx context.Context) *InstanceGroupsDeleteCall {
80756	c.ctx_ = ctx
80757	return c
80758}
80759
80760// Header returns an http.Header that can be modified by the caller to
80761// add HTTP headers to the request.
80762func (c *InstanceGroupsDeleteCall) Header() http.Header {
80763	if c.header_ == nil {
80764		c.header_ = make(http.Header)
80765	}
80766	return c.header_
80767}
80768
80769func (c *InstanceGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
80770	reqHeaders := make(http.Header)
80771	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
80772	for k, v := range c.header_ {
80773		reqHeaders[k] = v
80774	}
80775	reqHeaders.Set("User-Agent", c.s.userAgent())
80776	var body io.Reader = nil
80777	c.urlParams_.Set("alt", alt)
80778	c.urlParams_.Set("prettyPrint", "false")
80779	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}")
80780	urls += "?" + c.urlParams_.Encode()
80781	req, err := http.NewRequest("DELETE", urls, body)
80782	if err != nil {
80783		return nil, err
80784	}
80785	req.Header = reqHeaders
80786	googleapi.Expand(req.URL, map[string]string{
80787		"project":       c.project,
80788		"zone":          c.zone,
80789		"instanceGroup": c.instanceGroup,
80790	})
80791	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80792}
80793
80794// Do executes the "compute.instanceGroups.delete" call.
80795// Exactly one of *Operation or error will be non-nil. Any non-2xx
80796// status code is an error. Response headers are in either
80797// *Operation.ServerResponse.Header or (if a response was returned at
80798// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80799// to check whether the returned error was because
80800// http.StatusNotModified was returned.
80801func (c *InstanceGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80802	gensupport.SetOptions(c.urlParams_, opts...)
80803	res, err := c.doRequest("json")
80804	if res != nil && res.StatusCode == http.StatusNotModified {
80805		if res.Body != nil {
80806			res.Body.Close()
80807		}
80808		return nil, &googleapi.Error{
80809			Code:   res.StatusCode,
80810			Header: res.Header,
80811		}
80812	}
80813	if err != nil {
80814		return nil, err
80815	}
80816	defer googleapi.CloseBody(res)
80817	if err := googleapi.CheckResponse(res); err != nil {
80818		return nil, err
80819	}
80820	ret := &Operation{
80821		ServerResponse: googleapi.ServerResponse{
80822			Header:         res.Header,
80823			HTTPStatusCode: res.StatusCode,
80824		},
80825	}
80826	target := &ret
80827	if err := gensupport.DecodeResponse(target, res); err != nil {
80828		return nil, err
80829	}
80830	return ret, nil
80831	// {
80832	//   "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.",
80833	//   "httpMethod": "DELETE",
80834	//   "id": "compute.instanceGroups.delete",
80835	//   "parameterOrder": [
80836	//     "project",
80837	//     "zone",
80838	//     "instanceGroup"
80839	//   ],
80840	//   "parameters": {
80841	//     "instanceGroup": {
80842	//       "description": "The name of the instance group to delete.",
80843	//       "location": "path",
80844	//       "required": true,
80845	//       "type": "string"
80846	//     },
80847	//     "project": {
80848	//       "description": "Project ID for this request.",
80849	//       "location": "path",
80850	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80851	//       "required": true,
80852	//       "type": "string"
80853	//     },
80854	//     "requestId": {
80855	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80856	//       "location": "query",
80857	//       "type": "string"
80858	//     },
80859	//     "zone": {
80860	//       "description": "The name of the zone where the instance group is located.",
80861	//       "location": "path",
80862	//       "required": true,
80863	//       "type": "string"
80864	//     }
80865	//   },
80866	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}",
80867	//   "response": {
80868	//     "$ref": "Operation"
80869	//   },
80870	//   "scopes": [
80871	//     "https://www.googleapis.com/auth/cloud-platform",
80872	//     "https://www.googleapis.com/auth/compute"
80873	//   ]
80874	// }
80875
80876}
80877
80878// method id "compute.instanceGroups.get":
80879
80880type InstanceGroupsGetCall struct {
80881	s             *Service
80882	project       string
80883	zone          string
80884	instanceGroup string
80885	urlParams_    gensupport.URLParams
80886	ifNoneMatch_  string
80887	ctx_          context.Context
80888	header_       http.Header
80889}
80890
80891// Get: Returns the specified instance group. Gets a list of available
80892// instance groups by making a list() request.
80893func (r *InstanceGroupsService) Get(project string, zone string, instanceGroup string) *InstanceGroupsGetCall {
80894	c := &InstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80895	c.project = project
80896	c.zone = zone
80897	c.instanceGroup = instanceGroup
80898	return c
80899}
80900
80901// Fields allows partial responses to be retrieved. See
80902// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80903// for more information.
80904func (c *InstanceGroupsGetCall) Fields(s ...googleapi.Field) *InstanceGroupsGetCall {
80905	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80906	return c
80907}
80908
80909// IfNoneMatch sets the optional parameter which makes the operation
80910// fail if the object's ETag matches the given value. This is useful for
80911// getting updates only after the object has changed since the last
80912// request. Use googleapi.IsNotModified to check whether the response
80913// error from Do is the result of In-None-Match.
80914func (c *InstanceGroupsGetCall) IfNoneMatch(entityTag string) *InstanceGroupsGetCall {
80915	c.ifNoneMatch_ = entityTag
80916	return c
80917}
80918
80919// Context sets the context to be used in this call's Do method. Any
80920// pending HTTP request will be aborted if the provided context is
80921// canceled.
80922func (c *InstanceGroupsGetCall) Context(ctx context.Context) *InstanceGroupsGetCall {
80923	c.ctx_ = ctx
80924	return c
80925}
80926
80927// Header returns an http.Header that can be modified by the caller to
80928// add HTTP headers to the request.
80929func (c *InstanceGroupsGetCall) Header() http.Header {
80930	if c.header_ == nil {
80931		c.header_ = make(http.Header)
80932	}
80933	return c.header_
80934}
80935
80936func (c *InstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
80937	reqHeaders := make(http.Header)
80938	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
80939	for k, v := range c.header_ {
80940		reqHeaders[k] = v
80941	}
80942	reqHeaders.Set("User-Agent", c.s.userAgent())
80943	if c.ifNoneMatch_ != "" {
80944		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
80945	}
80946	var body io.Reader = nil
80947	c.urlParams_.Set("alt", alt)
80948	c.urlParams_.Set("prettyPrint", "false")
80949	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}")
80950	urls += "?" + c.urlParams_.Encode()
80951	req, err := http.NewRequest("GET", urls, body)
80952	if err != nil {
80953		return nil, err
80954	}
80955	req.Header = reqHeaders
80956	googleapi.Expand(req.URL, map[string]string{
80957		"project":       c.project,
80958		"zone":          c.zone,
80959		"instanceGroup": c.instanceGroup,
80960	})
80961	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80962}
80963
80964// Do executes the "compute.instanceGroups.get" call.
80965// Exactly one of *InstanceGroup or error will be non-nil. Any non-2xx
80966// status code is an error. Response headers are in either
80967// *InstanceGroup.ServerResponse.Header or (if a response was returned
80968// at all) in error.(*googleapi.Error).Header. Use
80969// googleapi.IsNotModified to check whether the returned error was
80970// because http.StatusNotModified was returned.
80971func (c *InstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) {
80972	gensupport.SetOptions(c.urlParams_, opts...)
80973	res, err := c.doRequest("json")
80974	if res != nil && res.StatusCode == http.StatusNotModified {
80975		if res.Body != nil {
80976			res.Body.Close()
80977		}
80978		return nil, &googleapi.Error{
80979			Code:   res.StatusCode,
80980			Header: res.Header,
80981		}
80982	}
80983	if err != nil {
80984		return nil, err
80985	}
80986	defer googleapi.CloseBody(res)
80987	if err := googleapi.CheckResponse(res); err != nil {
80988		return nil, err
80989	}
80990	ret := &InstanceGroup{
80991		ServerResponse: googleapi.ServerResponse{
80992			Header:         res.Header,
80993			HTTPStatusCode: res.StatusCode,
80994		},
80995	}
80996	target := &ret
80997	if err := gensupport.DecodeResponse(target, res); err != nil {
80998		return nil, err
80999	}
81000	return ret, nil
81001	// {
81002	//   "description": "Returns the specified instance group. Gets a list of available instance groups by making a list() request.",
81003	//   "httpMethod": "GET",
81004	//   "id": "compute.instanceGroups.get",
81005	//   "parameterOrder": [
81006	//     "project",
81007	//     "zone",
81008	//     "instanceGroup"
81009	//   ],
81010	//   "parameters": {
81011	//     "instanceGroup": {
81012	//       "description": "The name of the instance group.",
81013	//       "location": "path",
81014	//       "required": true,
81015	//       "type": "string"
81016	//     },
81017	//     "project": {
81018	//       "description": "Project ID for this request.",
81019	//       "location": "path",
81020	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81021	//       "required": true,
81022	//       "type": "string"
81023	//     },
81024	//     "zone": {
81025	//       "description": "The name of the zone where the instance group is located.",
81026	//       "location": "path",
81027	//       "required": true,
81028	//       "type": "string"
81029	//     }
81030	//   },
81031	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}",
81032	//   "response": {
81033	//     "$ref": "InstanceGroup"
81034	//   },
81035	//   "scopes": [
81036	//     "https://www.googleapis.com/auth/cloud-platform",
81037	//     "https://www.googleapis.com/auth/compute",
81038	//     "https://www.googleapis.com/auth/compute.readonly"
81039	//   ]
81040	// }
81041
81042}
81043
81044// method id "compute.instanceGroups.insert":
81045
81046type InstanceGroupsInsertCall struct {
81047	s             *Service
81048	project       string
81049	zone          string
81050	instancegroup *InstanceGroup
81051	urlParams_    gensupport.URLParams
81052	ctx_          context.Context
81053	header_       http.Header
81054}
81055
81056// Insert: Creates an instance group in the specified project using the
81057// parameters that are included in the request.
81058func (r *InstanceGroupsService) Insert(project string, zone string, instancegroup *InstanceGroup) *InstanceGroupsInsertCall {
81059	c := &InstanceGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81060	c.project = project
81061	c.zone = zone
81062	c.instancegroup = instancegroup
81063	return c
81064}
81065
81066// RequestId sets the optional parameter "requestId": An optional
81067// request ID to identify requests. Specify a unique request ID so that
81068// if you must retry your request, the server will know to ignore the
81069// request if it has already been completed.
81070//
81071// For example, consider a situation where you make an initial request
81072// and the request times out. If you make the request again with the
81073// same request ID, the server can check if original operation with the
81074// same request ID was received, and if so, will ignore the second
81075// request. This prevents clients from accidentally creating duplicate
81076// commitments.
81077//
81078// The request ID must be a valid UUID with the exception that zero UUID
81079// is not supported (00000000-0000-0000-0000-000000000000).
81080func (c *InstanceGroupsInsertCall) RequestId(requestId string) *InstanceGroupsInsertCall {
81081	c.urlParams_.Set("requestId", requestId)
81082	return c
81083}
81084
81085// Fields allows partial responses to be retrieved. See
81086// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81087// for more information.
81088func (c *InstanceGroupsInsertCall) Fields(s ...googleapi.Field) *InstanceGroupsInsertCall {
81089	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81090	return c
81091}
81092
81093// Context sets the context to be used in this call's Do method. Any
81094// pending HTTP request will be aborted if the provided context is
81095// canceled.
81096func (c *InstanceGroupsInsertCall) Context(ctx context.Context) *InstanceGroupsInsertCall {
81097	c.ctx_ = ctx
81098	return c
81099}
81100
81101// Header returns an http.Header that can be modified by the caller to
81102// add HTTP headers to the request.
81103func (c *InstanceGroupsInsertCall) Header() http.Header {
81104	if c.header_ == nil {
81105		c.header_ = make(http.Header)
81106	}
81107	return c.header_
81108}
81109
81110func (c *InstanceGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
81111	reqHeaders := make(http.Header)
81112	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
81113	for k, v := range c.header_ {
81114		reqHeaders[k] = v
81115	}
81116	reqHeaders.Set("User-Agent", c.s.userAgent())
81117	var body io.Reader = nil
81118	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroup)
81119	if err != nil {
81120		return nil, err
81121	}
81122	reqHeaders.Set("Content-Type", "application/json")
81123	c.urlParams_.Set("alt", alt)
81124	c.urlParams_.Set("prettyPrint", "false")
81125	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups")
81126	urls += "?" + c.urlParams_.Encode()
81127	req, err := http.NewRequest("POST", urls, body)
81128	if err != nil {
81129		return nil, err
81130	}
81131	req.Header = reqHeaders
81132	googleapi.Expand(req.URL, map[string]string{
81133		"project": c.project,
81134		"zone":    c.zone,
81135	})
81136	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81137}
81138
81139// Do executes the "compute.instanceGroups.insert" call.
81140// Exactly one of *Operation or error will be non-nil. Any non-2xx
81141// status code is an error. Response headers are in either
81142// *Operation.ServerResponse.Header or (if a response was returned at
81143// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81144// to check whether the returned error was because
81145// http.StatusNotModified was returned.
81146func (c *InstanceGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81147	gensupport.SetOptions(c.urlParams_, opts...)
81148	res, err := c.doRequest("json")
81149	if res != nil && res.StatusCode == http.StatusNotModified {
81150		if res.Body != nil {
81151			res.Body.Close()
81152		}
81153		return nil, &googleapi.Error{
81154			Code:   res.StatusCode,
81155			Header: res.Header,
81156		}
81157	}
81158	if err != nil {
81159		return nil, err
81160	}
81161	defer googleapi.CloseBody(res)
81162	if err := googleapi.CheckResponse(res); err != nil {
81163		return nil, err
81164	}
81165	ret := &Operation{
81166		ServerResponse: googleapi.ServerResponse{
81167			Header:         res.Header,
81168			HTTPStatusCode: res.StatusCode,
81169		},
81170	}
81171	target := &ret
81172	if err := gensupport.DecodeResponse(target, res); err != nil {
81173		return nil, err
81174	}
81175	return ret, nil
81176	// {
81177	//   "description": "Creates an instance group in the specified project using the parameters that are included in the request.",
81178	//   "httpMethod": "POST",
81179	//   "id": "compute.instanceGroups.insert",
81180	//   "parameterOrder": [
81181	//     "project",
81182	//     "zone"
81183	//   ],
81184	//   "parameters": {
81185	//     "project": {
81186	//       "description": "Project ID for this request.",
81187	//       "location": "path",
81188	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81189	//       "required": true,
81190	//       "type": "string"
81191	//     },
81192	//     "requestId": {
81193	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81194	//       "location": "query",
81195	//       "type": "string"
81196	//     },
81197	//     "zone": {
81198	//       "description": "The name of the zone where you want to create the instance group.",
81199	//       "location": "path",
81200	//       "required": true,
81201	//       "type": "string"
81202	//     }
81203	//   },
81204	//   "path": "{project}/zones/{zone}/instanceGroups",
81205	//   "request": {
81206	//     "$ref": "InstanceGroup"
81207	//   },
81208	//   "response": {
81209	//     "$ref": "Operation"
81210	//   },
81211	//   "scopes": [
81212	//     "https://www.googleapis.com/auth/cloud-platform",
81213	//     "https://www.googleapis.com/auth/compute"
81214	//   ]
81215	// }
81216
81217}
81218
81219// method id "compute.instanceGroups.list":
81220
81221type InstanceGroupsListCall struct {
81222	s            *Service
81223	project      string
81224	zone         string
81225	urlParams_   gensupport.URLParams
81226	ifNoneMatch_ string
81227	ctx_         context.Context
81228	header_      http.Header
81229}
81230
81231// List: Retrieves the list of instance groups that are located in the
81232// specified project and zone.
81233func (r *InstanceGroupsService) List(project string, zone string) *InstanceGroupsListCall {
81234	c := &InstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81235	c.project = project
81236	c.zone = zone
81237	return c
81238}
81239
81240// Filter sets the optional parameter "filter": A filter expression that
81241// filters resources listed in the response. The expression must specify
81242// the field name, a comparison operator, and the value that you want to
81243// use for filtering. The value must be a string, a number, or a
81244// boolean. The comparison operator must be either =, !=, >, or <.
81245//
81246// For example, if you are filtering Compute Engine instances, you can
81247// exclude instances named example-instance by specifying name !=
81248// example-instance.
81249//
81250// You can also filter nested fields. For example, you could specify
81251// scheduling.automaticRestart = false to include instances only if they
81252// are not scheduled for automatic restarts. You can use filtering on
81253// nested fields to filter based on resource labels.
81254//
81255// To filter on multiple expressions, provide each separate expression
81256// within parentheses. For example, (scheduling.automaticRestart = true)
81257// (cpuPlatform = "Intel Skylake"). By default, each expression is an
81258// AND expression. However, you can include AND and OR expressions
81259// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
81260// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
81261// true).
81262func (c *InstanceGroupsListCall) Filter(filter string) *InstanceGroupsListCall {
81263	c.urlParams_.Set("filter", filter)
81264	return c
81265}
81266
81267// MaxResults sets the optional parameter "maxResults": The maximum
81268// number of results per page that should be returned. If the number of
81269// available results is larger than maxResults, Compute Engine returns a
81270// nextPageToken that can be used to get the next page of results in
81271// subsequent list requests. Acceptable values are 0 to 500, inclusive.
81272// (Default: 500)
81273func (c *InstanceGroupsListCall) MaxResults(maxResults int64) *InstanceGroupsListCall {
81274	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
81275	return c
81276}
81277
81278// OrderBy sets the optional parameter "orderBy": Sorts list results by
81279// a certain order. By default, results are returned in alphanumerical
81280// order based on the resource name.
81281//
81282// You can also sort results in descending order based on the creation
81283// timestamp using orderBy="creationTimestamp desc". This sorts results
81284// based on the creationTimestamp field in reverse chronological order
81285// (newest result first). Use this to sort resources like operations so
81286// that the newest operation is returned first.
81287//
81288// Currently, only sorting by name or creationTimestamp desc is
81289// supported.
81290func (c *InstanceGroupsListCall) OrderBy(orderBy string) *InstanceGroupsListCall {
81291	c.urlParams_.Set("orderBy", orderBy)
81292	return c
81293}
81294
81295// PageToken sets the optional parameter "pageToken": Specifies a page
81296// token to use. Set pageToken to the nextPageToken returned by a
81297// previous list request to get the next page of results.
81298func (c *InstanceGroupsListCall) PageToken(pageToken string) *InstanceGroupsListCall {
81299	c.urlParams_.Set("pageToken", pageToken)
81300	return c
81301}
81302
81303// Fields allows partial responses to be retrieved. See
81304// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81305// for more information.
81306func (c *InstanceGroupsListCall) Fields(s ...googleapi.Field) *InstanceGroupsListCall {
81307	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81308	return c
81309}
81310
81311// IfNoneMatch sets the optional parameter which makes the operation
81312// fail if the object's ETag matches the given value. This is useful for
81313// getting updates only after the object has changed since the last
81314// request. Use googleapi.IsNotModified to check whether the response
81315// error from Do is the result of In-None-Match.
81316func (c *InstanceGroupsListCall) IfNoneMatch(entityTag string) *InstanceGroupsListCall {
81317	c.ifNoneMatch_ = entityTag
81318	return c
81319}
81320
81321// Context sets the context to be used in this call's Do method. Any
81322// pending HTTP request will be aborted if the provided context is
81323// canceled.
81324func (c *InstanceGroupsListCall) Context(ctx context.Context) *InstanceGroupsListCall {
81325	c.ctx_ = ctx
81326	return c
81327}
81328
81329// Header returns an http.Header that can be modified by the caller to
81330// add HTTP headers to the request.
81331func (c *InstanceGroupsListCall) Header() http.Header {
81332	if c.header_ == nil {
81333		c.header_ = make(http.Header)
81334	}
81335	return c.header_
81336}
81337
81338func (c *InstanceGroupsListCall) doRequest(alt string) (*http.Response, error) {
81339	reqHeaders := make(http.Header)
81340	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
81341	for k, v := range c.header_ {
81342		reqHeaders[k] = v
81343	}
81344	reqHeaders.Set("User-Agent", c.s.userAgent())
81345	if c.ifNoneMatch_ != "" {
81346		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
81347	}
81348	var body io.Reader = nil
81349	c.urlParams_.Set("alt", alt)
81350	c.urlParams_.Set("prettyPrint", "false")
81351	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups")
81352	urls += "?" + c.urlParams_.Encode()
81353	req, err := http.NewRequest("GET", urls, body)
81354	if err != nil {
81355		return nil, err
81356	}
81357	req.Header = reqHeaders
81358	googleapi.Expand(req.URL, map[string]string{
81359		"project": c.project,
81360		"zone":    c.zone,
81361	})
81362	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81363}
81364
81365// Do executes the "compute.instanceGroups.list" call.
81366// Exactly one of *InstanceGroupList or error will be non-nil. Any
81367// non-2xx status code is an error. Response headers are in either
81368// *InstanceGroupList.ServerResponse.Header or (if a response was
81369// returned at all) in error.(*googleapi.Error).Header. Use
81370// googleapi.IsNotModified to check whether the returned error was
81371// because http.StatusNotModified was returned.
81372func (c *InstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupList, error) {
81373	gensupport.SetOptions(c.urlParams_, opts...)
81374	res, err := c.doRequest("json")
81375	if res != nil && res.StatusCode == http.StatusNotModified {
81376		if res.Body != nil {
81377			res.Body.Close()
81378		}
81379		return nil, &googleapi.Error{
81380			Code:   res.StatusCode,
81381			Header: res.Header,
81382		}
81383	}
81384	if err != nil {
81385		return nil, err
81386	}
81387	defer googleapi.CloseBody(res)
81388	if err := googleapi.CheckResponse(res); err != nil {
81389		return nil, err
81390	}
81391	ret := &InstanceGroupList{
81392		ServerResponse: googleapi.ServerResponse{
81393			Header:         res.Header,
81394			HTTPStatusCode: res.StatusCode,
81395		},
81396	}
81397	target := &ret
81398	if err := gensupport.DecodeResponse(target, res); err != nil {
81399		return nil, err
81400	}
81401	return ret, nil
81402	// {
81403	//   "description": "Retrieves the list of instance groups that are located in the specified project and zone.",
81404	//   "httpMethod": "GET",
81405	//   "id": "compute.instanceGroups.list",
81406	//   "parameterOrder": [
81407	//     "project",
81408	//     "zone"
81409	//   ],
81410	//   "parameters": {
81411	//     "filter": {
81412	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
81413	//       "location": "query",
81414	//       "type": "string"
81415	//     },
81416	//     "maxResults": {
81417	//       "default": "500",
81418	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
81419	//       "format": "uint32",
81420	//       "location": "query",
81421	//       "minimum": "0",
81422	//       "type": "integer"
81423	//     },
81424	//     "orderBy": {
81425	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
81426	//       "location": "query",
81427	//       "type": "string"
81428	//     },
81429	//     "pageToken": {
81430	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
81431	//       "location": "query",
81432	//       "type": "string"
81433	//     },
81434	//     "project": {
81435	//       "description": "Project ID for this request.",
81436	//       "location": "path",
81437	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81438	//       "required": true,
81439	//       "type": "string"
81440	//     },
81441	//     "zone": {
81442	//       "description": "The name of the zone where the instance group is located.",
81443	//       "location": "path",
81444	//       "required": true,
81445	//       "type": "string"
81446	//     }
81447	//   },
81448	//   "path": "{project}/zones/{zone}/instanceGroups",
81449	//   "response": {
81450	//     "$ref": "InstanceGroupList"
81451	//   },
81452	//   "scopes": [
81453	//     "https://www.googleapis.com/auth/cloud-platform",
81454	//     "https://www.googleapis.com/auth/compute",
81455	//     "https://www.googleapis.com/auth/compute.readonly"
81456	//   ]
81457	// }
81458
81459}
81460
81461// Pages invokes f for each page of results.
81462// A non-nil error returned from f will halt the iteration.
81463// The provided context supersedes any context provided to the Context method.
81464func (c *InstanceGroupsListCall) Pages(ctx context.Context, f func(*InstanceGroupList) error) error {
81465	c.ctx_ = ctx
81466	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
81467	for {
81468		x, err := c.Do()
81469		if err != nil {
81470			return err
81471		}
81472		if err := f(x); err != nil {
81473			return err
81474		}
81475		if x.NextPageToken == "" {
81476			return nil
81477		}
81478		c.PageToken(x.NextPageToken)
81479	}
81480}
81481
81482// method id "compute.instanceGroups.listInstances":
81483
81484type InstanceGroupsListInstancesCall struct {
81485	s                                  *Service
81486	project                            string
81487	zone                               string
81488	instanceGroup                      string
81489	instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest
81490	urlParams_                         gensupport.URLParams
81491	ctx_                               context.Context
81492	header_                            http.Header
81493}
81494
81495// ListInstances: Lists the instances in the specified instance group.
81496func (r *InstanceGroupsService) ListInstances(project string, zone string, instanceGroup string, instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest) *InstanceGroupsListInstancesCall {
81497	c := &InstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81498	c.project = project
81499	c.zone = zone
81500	c.instanceGroup = instanceGroup
81501	c.instancegroupslistinstancesrequest = instancegroupslistinstancesrequest
81502	return c
81503}
81504
81505// Filter sets the optional parameter "filter": A filter expression that
81506// filters resources listed in the response. The expression must specify
81507// the field name, a comparison operator, and the value that you want to
81508// use for filtering. The value must be a string, a number, or a
81509// boolean. The comparison operator must be either =, !=, >, or <.
81510//
81511// For example, if you are filtering Compute Engine instances, you can
81512// exclude instances named example-instance by specifying name !=
81513// example-instance.
81514//
81515// You can also filter nested fields. For example, you could specify
81516// scheduling.automaticRestart = false to include instances only if they
81517// are not scheduled for automatic restarts. You can use filtering on
81518// nested fields to filter based on resource labels.
81519//
81520// To filter on multiple expressions, provide each separate expression
81521// within parentheses. For example, (scheduling.automaticRestart = true)
81522// (cpuPlatform = "Intel Skylake"). By default, each expression is an
81523// AND expression. However, you can include AND and OR expressions
81524// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
81525// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
81526// true).
81527func (c *InstanceGroupsListInstancesCall) Filter(filter string) *InstanceGroupsListInstancesCall {
81528	c.urlParams_.Set("filter", filter)
81529	return c
81530}
81531
81532// MaxResults sets the optional parameter "maxResults": The maximum
81533// number of results per page that should be returned. If the number of
81534// available results is larger than maxResults, Compute Engine returns a
81535// nextPageToken that can be used to get the next page of results in
81536// subsequent list requests. Acceptable values are 0 to 500, inclusive.
81537// (Default: 500)
81538func (c *InstanceGroupsListInstancesCall) MaxResults(maxResults int64) *InstanceGroupsListInstancesCall {
81539	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
81540	return c
81541}
81542
81543// OrderBy sets the optional parameter "orderBy": Sorts list results by
81544// a certain order. By default, results are returned in alphanumerical
81545// order based on the resource name.
81546//
81547// You can also sort results in descending order based on the creation
81548// timestamp using orderBy="creationTimestamp desc". This sorts results
81549// based on the creationTimestamp field in reverse chronological order
81550// (newest result first). Use this to sort resources like operations so
81551// that the newest operation is returned first.
81552//
81553// Currently, only sorting by name or creationTimestamp desc is
81554// supported.
81555func (c *InstanceGroupsListInstancesCall) OrderBy(orderBy string) *InstanceGroupsListInstancesCall {
81556	c.urlParams_.Set("orderBy", orderBy)
81557	return c
81558}
81559
81560// PageToken sets the optional parameter "pageToken": Specifies a page
81561// token to use. Set pageToken to the nextPageToken returned by a
81562// previous list request to get the next page of results.
81563func (c *InstanceGroupsListInstancesCall) PageToken(pageToken string) *InstanceGroupsListInstancesCall {
81564	c.urlParams_.Set("pageToken", pageToken)
81565	return c
81566}
81567
81568// Fields allows partial responses to be retrieved. See
81569// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81570// for more information.
81571func (c *InstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsListInstancesCall {
81572	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81573	return c
81574}
81575
81576// Context sets the context to be used in this call's Do method. Any
81577// pending HTTP request will be aborted if the provided context is
81578// canceled.
81579func (c *InstanceGroupsListInstancesCall) Context(ctx context.Context) *InstanceGroupsListInstancesCall {
81580	c.ctx_ = ctx
81581	return c
81582}
81583
81584// Header returns an http.Header that can be modified by the caller to
81585// add HTTP headers to the request.
81586func (c *InstanceGroupsListInstancesCall) Header() http.Header {
81587	if c.header_ == nil {
81588		c.header_ = make(http.Header)
81589	}
81590	return c.header_
81591}
81592
81593func (c *InstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) {
81594	reqHeaders := make(http.Header)
81595	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
81596	for k, v := range c.header_ {
81597		reqHeaders[k] = v
81598	}
81599	reqHeaders.Set("User-Agent", c.s.userAgent())
81600	var body io.Reader = nil
81601	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupslistinstancesrequest)
81602	if err != nil {
81603		return nil, err
81604	}
81605	reqHeaders.Set("Content-Type", "application/json")
81606	c.urlParams_.Set("alt", alt)
81607	c.urlParams_.Set("prettyPrint", "false")
81608	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances")
81609	urls += "?" + c.urlParams_.Encode()
81610	req, err := http.NewRequest("POST", urls, body)
81611	if err != nil {
81612		return nil, err
81613	}
81614	req.Header = reqHeaders
81615	googleapi.Expand(req.URL, map[string]string{
81616		"project":       c.project,
81617		"zone":          c.zone,
81618		"instanceGroup": c.instanceGroup,
81619	})
81620	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81621}
81622
81623// Do executes the "compute.instanceGroups.listInstances" call.
81624// Exactly one of *InstanceGroupsListInstances or error will be non-nil.
81625// Any non-2xx status code is an error. Response headers are in either
81626// *InstanceGroupsListInstances.ServerResponse.Header or (if a response
81627// was returned at all) in error.(*googleapi.Error).Header. Use
81628// googleapi.IsNotModified to check whether the returned error was
81629// because http.StatusNotModified was returned.
81630func (c *InstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupsListInstances, error) {
81631	gensupport.SetOptions(c.urlParams_, opts...)
81632	res, err := c.doRequest("json")
81633	if res != nil && res.StatusCode == http.StatusNotModified {
81634		if res.Body != nil {
81635			res.Body.Close()
81636		}
81637		return nil, &googleapi.Error{
81638			Code:   res.StatusCode,
81639			Header: res.Header,
81640		}
81641	}
81642	if err != nil {
81643		return nil, err
81644	}
81645	defer googleapi.CloseBody(res)
81646	if err := googleapi.CheckResponse(res); err != nil {
81647		return nil, err
81648	}
81649	ret := &InstanceGroupsListInstances{
81650		ServerResponse: googleapi.ServerResponse{
81651			Header:         res.Header,
81652			HTTPStatusCode: res.StatusCode,
81653		},
81654	}
81655	target := &ret
81656	if err := gensupport.DecodeResponse(target, res); err != nil {
81657		return nil, err
81658	}
81659	return ret, nil
81660	// {
81661	//   "description": "Lists the instances in the specified instance group.",
81662	//   "httpMethod": "POST",
81663	//   "id": "compute.instanceGroups.listInstances",
81664	//   "parameterOrder": [
81665	//     "project",
81666	//     "zone",
81667	//     "instanceGroup"
81668	//   ],
81669	//   "parameters": {
81670	//     "filter": {
81671	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
81672	//       "location": "query",
81673	//       "type": "string"
81674	//     },
81675	//     "instanceGroup": {
81676	//       "description": "The name of the instance group from which you want to generate a list of included instances.",
81677	//       "location": "path",
81678	//       "required": true,
81679	//       "type": "string"
81680	//     },
81681	//     "maxResults": {
81682	//       "default": "500",
81683	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
81684	//       "format": "uint32",
81685	//       "location": "query",
81686	//       "minimum": "0",
81687	//       "type": "integer"
81688	//     },
81689	//     "orderBy": {
81690	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
81691	//       "location": "query",
81692	//       "type": "string"
81693	//     },
81694	//     "pageToken": {
81695	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
81696	//       "location": "query",
81697	//       "type": "string"
81698	//     },
81699	//     "project": {
81700	//       "description": "Project ID for this request.",
81701	//       "location": "path",
81702	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81703	//       "required": true,
81704	//       "type": "string"
81705	//     },
81706	//     "zone": {
81707	//       "description": "The name of the zone where the instance group is located.",
81708	//       "location": "path",
81709	//       "required": true,
81710	//       "type": "string"
81711	//     }
81712	//   },
81713	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances",
81714	//   "request": {
81715	//     "$ref": "InstanceGroupsListInstancesRequest"
81716	//   },
81717	//   "response": {
81718	//     "$ref": "InstanceGroupsListInstances"
81719	//   },
81720	//   "scopes": [
81721	//     "https://www.googleapis.com/auth/cloud-platform",
81722	//     "https://www.googleapis.com/auth/compute",
81723	//     "https://www.googleapis.com/auth/compute.readonly"
81724	//   ]
81725	// }
81726
81727}
81728
81729// Pages invokes f for each page of results.
81730// A non-nil error returned from f will halt the iteration.
81731// The provided context supersedes any context provided to the Context method.
81732func (c *InstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupsListInstances) error) error {
81733	c.ctx_ = ctx
81734	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
81735	for {
81736		x, err := c.Do()
81737		if err != nil {
81738			return err
81739		}
81740		if err := f(x); err != nil {
81741			return err
81742		}
81743		if x.NextPageToken == "" {
81744			return nil
81745		}
81746		c.PageToken(x.NextPageToken)
81747	}
81748}
81749
81750// method id "compute.instanceGroups.removeInstances":
81751
81752type InstanceGroupsRemoveInstancesCall struct {
81753	s                                    *Service
81754	project                              string
81755	zone                                 string
81756	instanceGroup                        string
81757	instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest
81758	urlParams_                           gensupport.URLParams
81759	ctx_                                 context.Context
81760	header_                              http.Header
81761}
81762
81763// RemoveInstances: Removes one or more instances from the specified
81764// instance group, but does not delete those instances.
81765//
81766// If the group is part of a backend service that has enabled connection
81767// draining, it can take up to 60 seconds after the connection draining
81768// duration before the VM instance is removed or deleted.
81769func (r *InstanceGroupsService) RemoveInstances(project string, zone string, instanceGroup string, instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest) *InstanceGroupsRemoveInstancesCall {
81770	c := &InstanceGroupsRemoveInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81771	c.project = project
81772	c.zone = zone
81773	c.instanceGroup = instanceGroup
81774	c.instancegroupsremoveinstancesrequest = instancegroupsremoveinstancesrequest
81775	return c
81776}
81777
81778// RequestId sets the optional parameter "requestId": An optional
81779// request ID to identify requests. Specify a unique request ID so that
81780// if you must retry your request, the server will know to ignore the
81781// request if it has already been completed.
81782//
81783// For example, consider a situation where you make an initial request
81784// and the request times out. If you make the request again with the
81785// same request ID, the server can check if original operation with the
81786// same request ID was received, and if so, will ignore the second
81787// request. This prevents clients from accidentally creating duplicate
81788// commitments.
81789//
81790// The request ID must be a valid UUID with the exception that zero UUID
81791// is not supported (00000000-0000-0000-0000-000000000000).
81792func (c *InstanceGroupsRemoveInstancesCall) RequestId(requestId string) *InstanceGroupsRemoveInstancesCall {
81793	c.urlParams_.Set("requestId", requestId)
81794	return c
81795}
81796
81797// Fields allows partial responses to be retrieved. See
81798// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81799// for more information.
81800func (c *InstanceGroupsRemoveInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsRemoveInstancesCall {
81801	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81802	return c
81803}
81804
81805// Context sets the context to be used in this call's Do method. Any
81806// pending HTTP request will be aborted if the provided context is
81807// canceled.
81808func (c *InstanceGroupsRemoveInstancesCall) Context(ctx context.Context) *InstanceGroupsRemoveInstancesCall {
81809	c.ctx_ = ctx
81810	return c
81811}
81812
81813// Header returns an http.Header that can be modified by the caller to
81814// add HTTP headers to the request.
81815func (c *InstanceGroupsRemoveInstancesCall) Header() http.Header {
81816	if c.header_ == nil {
81817		c.header_ = make(http.Header)
81818	}
81819	return c.header_
81820}
81821
81822func (c *InstanceGroupsRemoveInstancesCall) doRequest(alt string) (*http.Response, error) {
81823	reqHeaders := make(http.Header)
81824	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
81825	for k, v := range c.header_ {
81826		reqHeaders[k] = v
81827	}
81828	reqHeaders.Set("User-Agent", c.s.userAgent())
81829	var body io.Reader = nil
81830	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsremoveinstancesrequest)
81831	if err != nil {
81832		return nil, err
81833	}
81834	reqHeaders.Set("Content-Type", "application/json")
81835	c.urlParams_.Set("alt", alt)
81836	c.urlParams_.Set("prettyPrint", "false")
81837	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances")
81838	urls += "?" + c.urlParams_.Encode()
81839	req, err := http.NewRequest("POST", urls, body)
81840	if err != nil {
81841		return nil, err
81842	}
81843	req.Header = reqHeaders
81844	googleapi.Expand(req.URL, map[string]string{
81845		"project":       c.project,
81846		"zone":          c.zone,
81847		"instanceGroup": c.instanceGroup,
81848	})
81849	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81850}
81851
81852// Do executes the "compute.instanceGroups.removeInstances" call.
81853// Exactly one of *Operation or error will be non-nil. Any non-2xx
81854// status code is an error. Response headers are in either
81855// *Operation.ServerResponse.Header or (if a response was returned at
81856// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81857// to check whether the returned error was because
81858// http.StatusNotModified was returned.
81859func (c *InstanceGroupsRemoveInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81860	gensupport.SetOptions(c.urlParams_, opts...)
81861	res, err := c.doRequest("json")
81862	if res != nil && res.StatusCode == http.StatusNotModified {
81863		if res.Body != nil {
81864			res.Body.Close()
81865		}
81866		return nil, &googleapi.Error{
81867			Code:   res.StatusCode,
81868			Header: res.Header,
81869		}
81870	}
81871	if err != nil {
81872		return nil, err
81873	}
81874	defer googleapi.CloseBody(res)
81875	if err := googleapi.CheckResponse(res); err != nil {
81876		return nil, err
81877	}
81878	ret := &Operation{
81879		ServerResponse: googleapi.ServerResponse{
81880			Header:         res.Header,
81881			HTTPStatusCode: res.StatusCode,
81882		},
81883	}
81884	target := &ret
81885	if err := gensupport.DecodeResponse(target, res); err != nil {
81886		return nil, err
81887	}
81888	return ret, nil
81889	// {
81890	//   "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.",
81891	//   "httpMethod": "POST",
81892	//   "id": "compute.instanceGroups.removeInstances",
81893	//   "parameterOrder": [
81894	//     "project",
81895	//     "zone",
81896	//     "instanceGroup"
81897	//   ],
81898	//   "parameters": {
81899	//     "instanceGroup": {
81900	//       "description": "The name of the instance group where the specified instances will be removed.",
81901	//       "location": "path",
81902	//       "required": true,
81903	//       "type": "string"
81904	//     },
81905	//     "project": {
81906	//       "description": "Project ID for this request.",
81907	//       "location": "path",
81908	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81909	//       "required": true,
81910	//       "type": "string"
81911	//     },
81912	//     "requestId": {
81913	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81914	//       "location": "query",
81915	//       "type": "string"
81916	//     },
81917	//     "zone": {
81918	//       "description": "The name of the zone where the instance group is located.",
81919	//       "location": "path",
81920	//       "required": true,
81921	//       "type": "string"
81922	//     }
81923	//   },
81924	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances",
81925	//   "request": {
81926	//     "$ref": "InstanceGroupsRemoveInstancesRequest"
81927	//   },
81928	//   "response": {
81929	//     "$ref": "Operation"
81930	//   },
81931	//   "scopes": [
81932	//     "https://www.googleapis.com/auth/cloud-platform",
81933	//     "https://www.googleapis.com/auth/compute"
81934	//   ]
81935	// }
81936
81937}
81938
81939// method id "compute.instanceGroups.setNamedPorts":
81940
81941type InstanceGroupsSetNamedPortsCall struct {
81942	s                                  *Service
81943	project                            string
81944	zone                               string
81945	instanceGroup                      string
81946	instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest
81947	urlParams_                         gensupport.URLParams
81948	ctx_                               context.Context
81949	header_                            http.Header
81950}
81951
81952// SetNamedPorts: Sets the named ports for the specified instance group.
81953func (r *InstanceGroupsService) SetNamedPorts(project string, zone string, instanceGroup string, instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest) *InstanceGroupsSetNamedPortsCall {
81954	c := &InstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81955	c.project = project
81956	c.zone = zone
81957	c.instanceGroup = instanceGroup
81958	c.instancegroupssetnamedportsrequest = instancegroupssetnamedportsrequest
81959	return c
81960}
81961
81962// RequestId sets the optional parameter "requestId": An optional
81963// request ID to identify requests. Specify a unique request ID so that
81964// if you must retry your request, the server will know to ignore the
81965// request if it has already been completed.
81966//
81967// For example, consider a situation where you make an initial request
81968// and the request times out. If you make the request again with the
81969// same request ID, the server can check if original operation with the
81970// same request ID was received, and if so, will ignore the second
81971// request. This prevents clients from accidentally creating duplicate
81972// commitments.
81973//
81974// The request ID must be a valid UUID with the exception that zero UUID
81975// is not supported (00000000-0000-0000-0000-000000000000).
81976func (c *InstanceGroupsSetNamedPortsCall) RequestId(requestId string) *InstanceGroupsSetNamedPortsCall {
81977	c.urlParams_.Set("requestId", requestId)
81978	return c
81979}
81980
81981// Fields allows partial responses to be retrieved. See
81982// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81983// for more information.
81984func (c *InstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *InstanceGroupsSetNamedPortsCall {
81985	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81986	return c
81987}
81988
81989// Context sets the context to be used in this call's Do method. Any
81990// pending HTTP request will be aborted if the provided context is
81991// canceled.
81992func (c *InstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *InstanceGroupsSetNamedPortsCall {
81993	c.ctx_ = ctx
81994	return c
81995}
81996
81997// Header returns an http.Header that can be modified by the caller to
81998// add HTTP headers to the request.
81999func (c *InstanceGroupsSetNamedPortsCall) Header() http.Header {
82000	if c.header_ == nil {
82001		c.header_ = make(http.Header)
82002	}
82003	return c.header_
82004}
82005
82006func (c *InstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) {
82007	reqHeaders := make(http.Header)
82008	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
82009	for k, v := range c.header_ {
82010		reqHeaders[k] = v
82011	}
82012	reqHeaders.Set("User-Agent", c.s.userAgent())
82013	var body io.Reader = nil
82014	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupssetnamedportsrequest)
82015	if err != nil {
82016		return nil, err
82017	}
82018	reqHeaders.Set("Content-Type", "application/json")
82019	c.urlParams_.Set("alt", alt)
82020	c.urlParams_.Set("prettyPrint", "false")
82021	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts")
82022	urls += "?" + c.urlParams_.Encode()
82023	req, err := http.NewRequest("POST", urls, body)
82024	if err != nil {
82025		return nil, err
82026	}
82027	req.Header = reqHeaders
82028	googleapi.Expand(req.URL, map[string]string{
82029		"project":       c.project,
82030		"zone":          c.zone,
82031		"instanceGroup": c.instanceGroup,
82032	})
82033	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82034}
82035
82036// Do executes the "compute.instanceGroups.setNamedPorts" call.
82037// Exactly one of *Operation or error will be non-nil. Any non-2xx
82038// status code is an error. Response headers are in either
82039// *Operation.ServerResponse.Header or (if a response was returned at
82040// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82041// to check whether the returned error was because
82042// http.StatusNotModified was returned.
82043func (c *InstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82044	gensupport.SetOptions(c.urlParams_, opts...)
82045	res, err := c.doRequest("json")
82046	if res != nil && res.StatusCode == http.StatusNotModified {
82047		if res.Body != nil {
82048			res.Body.Close()
82049		}
82050		return nil, &googleapi.Error{
82051			Code:   res.StatusCode,
82052			Header: res.Header,
82053		}
82054	}
82055	if err != nil {
82056		return nil, err
82057	}
82058	defer googleapi.CloseBody(res)
82059	if err := googleapi.CheckResponse(res); err != nil {
82060		return nil, err
82061	}
82062	ret := &Operation{
82063		ServerResponse: googleapi.ServerResponse{
82064			Header:         res.Header,
82065			HTTPStatusCode: res.StatusCode,
82066		},
82067	}
82068	target := &ret
82069	if err := gensupport.DecodeResponse(target, res); err != nil {
82070		return nil, err
82071	}
82072	return ret, nil
82073	// {
82074	//   "description": "Sets the named ports for the specified instance group.",
82075	//   "httpMethod": "POST",
82076	//   "id": "compute.instanceGroups.setNamedPorts",
82077	//   "parameterOrder": [
82078	//     "project",
82079	//     "zone",
82080	//     "instanceGroup"
82081	//   ],
82082	//   "parameters": {
82083	//     "instanceGroup": {
82084	//       "description": "The name of the instance group where the named ports are updated.",
82085	//       "location": "path",
82086	//       "required": true,
82087	//       "type": "string"
82088	//     },
82089	//     "project": {
82090	//       "description": "Project ID for this request.",
82091	//       "location": "path",
82092	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82093	//       "required": true,
82094	//       "type": "string"
82095	//     },
82096	//     "requestId": {
82097	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
82098	//       "location": "query",
82099	//       "type": "string"
82100	//     },
82101	//     "zone": {
82102	//       "description": "The name of the zone where the instance group is located.",
82103	//       "location": "path",
82104	//       "required": true,
82105	//       "type": "string"
82106	//     }
82107	//   },
82108	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts",
82109	//   "request": {
82110	//     "$ref": "InstanceGroupsSetNamedPortsRequest"
82111	//   },
82112	//   "response": {
82113	//     "$ref": "Operation"
82114	//   },
82115	//   "scopes": [
82116	//     "https://www.googleapis.com/auth/cloud-platform",
82117	//     "https://www.googleapis.com/auth/compute"
82118	//   ]
82119	// }
82120
82121}
82122
82123// method id "compute.instanceGroups.testIamPermissions":
82124
82125type InstanceGroupsTestIamPermissionsCall struct {
82126	s                      *Service
82127	project                string
82128	zone                   string
82129	resource               string
82130	testpermissionsrequest *TestPermissionsRequest
82131	urlParams_             gensupport.URLParams
82132	ctx_                   context.Context
82133	header_                http.Header
82134}
82135
82136// TestIamPermissions: Returns permissions that a caller has on the
82137// specified resource.
82138func (r *InstanceGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceGroupsTestIamPermissionsCall {
82139	c := &InstanceGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82140	c.project = project
82141	c.zone = zone
82142	c.resource = resource
82143	c.testpermissionsrequest = testpermissionsrequest
82144	return c
82145}
82146
82147// Fields allows partial responses to be retrieved. See
82148// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82149// for more information.
82150func (c *InstanceGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceGroupsTestIamPermissionsCall {
82151	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82152	return c
82153}
82154
82155// Context sets the context to be used in this call's Do method. Any
82156// pending HTTP request will be aborted if the provided context is
82157// canceled.
82158func (c *InstanceGroupsTestIamPermissionsCall) Context(ctx context.Context) *InstanceGroupsTestIamPermissionsCall {
82159	c.ctx_ = ctx
82160	return c
82161}
82162
82163// Header returns an http.Header that can be modified by the caller to
82164// add HTTP headers to the request.
82165func (c *InstanceGroupsTestIamPermissionsCall) Header() http.Header {
82166	if c.header_ == nil {
82167		c.header_ = make(http.Header)
82168	}
82169	return c.header_
82170}
82171
82172func (c *InstanceGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
82173	reqHeaders := make(http.Header)
82174	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
82175	for k, v := range c.header_ {
82176		reqHeaders[k] = v
82177	}
82178	reqHeaders.Set("User-Agent", c.s.userAgent())
82179	var body io.Reader = nil
82180	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
82181	if err != nil {
82182		return nil, err
82183	}
82184	reqHeaders.Set("Content-Type", "application/json")
82185	c.urlParams_.Set("alt", alt)
82186	c.urlParams_.Set("prettyPrint", "false")
82187	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{resource}/testIamPermissions")
82188	urls += "?" + c.urlParams_.Encode()
82189	req, err := http.NewRequest("POST", urls, body)
82190	if err != nil {
82191		return nil, err
82192	}
82193	req.Header = reqHeaders
82194	googleapi.Expand(req.URL, map[string]string{
82195		"project":  c.project,
82196		"zone":     c.zone,
82197		"resource": c.resource,
82198	})
82199	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82200}
82201
82202// Do executes the "compute.instanceGroups.testIamPermissions" call.
82203// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
82204// non-2xx status code is an error. Response headers are in either
82205// *TestPermissionsResponse.ServerResponse.Header or (if a response was
82206// returned at all) in error.(*googleapi.Error).Header. Use
82207// googleapi.IsNotModified to check whether the returned error was
82208// because http.StatusNotModified was returned.
82209func (c *InstanceGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
82210	gensupport.SetOptions(c.urlParams_, opts...)
82211	res, err := c.doRequest("json")
82212	if res != nil && res.StatusCode == http.StatusNotModified {
82213		if res.Body != nil {
82214			res.Body.Close()
82215		}
82216		return nil, &googleapi.Error{
82217			Code:   res.StatusCode,
82218			Header: res.Header,
82219		}
82220	}
82221	if err != nil {
82222		return nil, err
82223	}
82224	defer googleapi.CloseBody(res)
82225	if err := googleapi.CheckResponse(res); err != nil {
82226		return nil, err
82227	}
82228	ret := &TestPermissionsResponse{
82229		ServerResponse: googleapi.ServerResponse{
82230			Header:         res.Header,
82231			HTTPStatusCode: res.StatusCode,
82232		},
82233	}
82234	target := &ret
82235	if err := gensupport.DecodeResponse(target, res); err != nil {
82236		return nil, err
82237	}
82238	return ret, nil
82239	// {
82240	//   "description": "Returns permissions that a caller has on the specified resource.",
82241	//   "httpMethod": "POST",
82242	//   "id": "compute.instanceGroups.testIamPermissions",
82243	//   "parameterOrder": [
82244	//     "project",
82245	//     "zone",
82246	//     "resource"
82247	//   ],
82248	//   "parameters": {
82249	//     "project": {
82250	//       "description": "Project ID for this request.",
82251	//       "location": "path",
82252	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82253	//       "required": true,
82254	//       "type": "string"
82255	//     },
82256	//     "resource": {
82257	//       "description": "Name or id of the resource for this request.",
82258	//       "location": "path",
82259	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82260	//       "required": true,
82261	//       "type": "string"
82262	//     },
82263	//     "zone": {
82264	//       "description": "The name of the zone for this request.",
82265	//       "location": "path",
82266	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
82267	//       "required": true,
82268	//       "type": "string"
82269	//     }
82270	//   },
82271	//   "path": "{project}/zones/{zone}/instanceGroups/{resource}/testIamPermissions",
82272	//   "request": {
82273	//     "$ref": "TestPermissionsRequest"
82274	//   },
82275	//   "response": {
82276	//     "$ref": "TestPermissionsResponse"
82277	//   },
82278	//   "scopes": [
82279	//     "https://www.googleapis.com/auth/cloud-platform",
82280	//     "https://www.googleapis.com/auth/compute",
82281	//     "https://www.googleapis.com/auth/compute.readonly"
82282	//   ]
82283	// }
82284
82285}
82286
82287// method id "compute.instanceTemplates.delete":
82288
82289type InstanceTemplatesDeleteCall struct {
82290	s                *Service
82291	project          string
82292	instanceTemplate string
82293	urlParams_       gensupport.URLParams
82294	ctx_             context.Context
82295	header_          http.Header
82296}
82297
82298// Delete: Deletes the specified instance template. Deleting an instance
82299// template is permanent and cannot be undone. It is not possible to
82300// delete templates that are already in use by a managed instance group.
82301// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/delete
82302func (r *InstanceTemplatesService) Delete(project string, instanceTemplate string) *InstanceTemplatesDeleteCall {
82303	c := &InstanceTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82304	c.project = project
82305	c.instanceTemplate = instanceTemplate
82306	return c
82307}
82308
82309// RequestId sets the optional parameter "requestId": An optional
82310// request ID to identify requests. Specify a unique request ID so that
82311// if you must retry your request, the server will know to ignore the
82312// request if it has already been completed.
82313//
82314// For example, consider a situation where you make an initial request
82315// and the request times out. If you make the request again with the
82316// same request ID, the server can check if original operation with the
82317// same request ID was received, and if so, will ignore the second
82318// request. This prevents clients from accidentally creating duplicate
82319// commitments.
82320//
82321// The request ID must be a valid UUID with the exception that zero UUID
82322// is not supported (00000000-0000-0000-0000-000000000000).
82323func (c *InstanceTemplatesDeleteCall) RequestId(requestId string) *InstanceTemplatesDeleteCall {
82324	c.urlParams_.Set("requestId", requestId)
82325	return c
82326}
82327
82328// Fields allows partial responses to be retrieved. See
82329// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82330// for more information.
82331func (c *InstanceTemplatesDeleteCall) Fields(s ...googleapi.Field) *InstanceTemplatesDeleteCall {
82332	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82333	return c
82334}
82335
82336// Context sets the context to be used in this call's Do method. Any
82337// pending HTTP request will be aborted if the provided context is
82338// canceled.
82339func (c *InstanceTemplatesDeleteCall) Context(ctx context.Context) *InstanceTemplatesDeleteCall {
82340	c.ctx_ = ctx
82341	return c
82342}
82343
82344// Header returns an http.Header that can be modified by the caller to
82345// add HTTP headers to the request.
82346func (c *InstanceTemplatesDeleteCall) Header() http.Header {
82347	if c.header_ == nil {
82348		c.header_ = make(http.Header)
82349	}
82350	return c.header_
82351}
82352
82353func (c *InstanceTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) {
82354	reqHeaders := make(http.Header)
82355	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
82356	for k, v := range c.header_ {
82357		reqHeaders[k] = v
82358	}
82359	reqHeaders.Set("User-Agent", c.s.userAgent())
82360	var body io.Reader = nil
82361	c.urlParams_.Set("alt", alt)
82362	c.urlParams_.Set("prettyPrint", "false")
82363	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{instanceTemplate}")
82364	urls += "?" + c.urlParams_.Encode()
82365	req, err := http.NewRequest("DELETE", urls, body)
82366	if err != nil {
82367		return nil, err
82368	}
82369	req.Header = reqHeaders
82370	googleapi.Expand(req.URL, map[string]string{
82371		"project":          c.project,
82372		"instanceTemplate": c.instanceTemplate,
82373	})
82374	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82375}
82376
82377// Do executes the "compute.instanceTemplates.delete" call.
82378// Exactly one of *Operation or error will be non-nil. Any non-2xx
82379// status code is an error. Response headers are in either
82380// *Operation.ServerResponse.Header or (if a response was returned at
82381// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82382// to check whether the returned error was because
82383// http.StatusNotModified was returned.
82384func (c *InstanceTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82385	gensupport.SetOptions(c.urlParams_, opts...)
82386	res, err := c.doRequest("json")
82387	if res != nil && res.StatusCode == http.StatusNotModified {
82388		if res.Body != nil {
82389			res.Body.Close()
82390		}
82391		return nil, &googleapi.Error{
82392			Code:   res.StatusCode,
82393			Header: res.Header,
82394		}
82395	}
82396	if err != nil {
82397		return nil, err
82398	}
82399	defer googleapi.CloseBody(res)
82400	if err := googleapi.CheckResponse(res); err != nil {
82401		return nil, err
82402	}
82403	ret := &Operation{
82404		ServerResponse: googleapi.ServerResponse{
82405			Header:         res.Header,
82406			HTTPStatusCode: res.StatusCode,
82407		},
82408	}
82409	target := &ret
82410	if err := gensupport.DecodeResponse(target, res); err != nil {
82411		return nil, err
82412	}
82413	return ret, nil
82414	// {
82415	//   "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.",
82416	//   "httpMethod": "DELETE",
82417	//   "id": "compute.instanceTemplates.delete",
82418	//   "parameterOrder": [
82419	//     "project",
82420	//     "instanceTemplate"
82421	//   ],
82422	//   "parameters": {
82423	//     "instanceTemplate": {
82424	//       "description": "The name of the instance template to delete.",
82425	//       "location": "path",
82426	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82427	//       "required": true,
82428	//       "type": "string"
82429	//     },
82430	//     "project": {
82431	//       "description": "Project ID for this request.",
82432	//       "location": "path",
82433	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82434	//       "required": true,
82435	//       "type": "string"
82436	//     },
82437	//     "requestId": {
82438	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
82439	//       "location": "query",
82440	//       "type": "string"
82441	//     }
82442	//   },
82443	//   "path": "{project}/global/instanceTemplates/{instanceTemplate}",
82444	//   "response": {
82445	//     "$ref": "Operation"
82446	//   },
82447	//   "scopes": [
82448	//     "https://www.googleapis.com/auth/cloud-platform",
82449	//     "https://www.googleapis.com/auth/compute"
82450	//   ]
82451	// }
82452
82453}
82454
82455// method id "compute.instanceTemplates.get":
82456
82457type InstanceTemplatesGetCall struct {
82458	s                *Service
82459	project          string
82460	instanceTemplate string
82461	urlParams_       gensupport.URLParams
82462	ifNoneMatch_     string
82463	ctx_             context.Context
82464	header_          http.Header
82465}
82466
82467// Get: Returns the specified instance template. Gets a list of
82468// available instance templates by making a list() request.
82469// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/get
82470func (r *InstanceTemplatesService) Get(project string, instanceTemplate string) *InstanceTemplatesGetCall {
82471	c := &InstanceTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82472	c.project = project
82473	c.instanceTemplate = instanceTemplate
82474	return c
82475}
82476
82477// Fields allows partial responses to be retrieved. See
82478// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82479// for more information.
82480func (c *InstanceTemplatesGetCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetCall {
82481	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82482	return c
82483}
82484
82485// IfNoneMatch sets the optional parameter which makes the operation
82486// fail if the object's ETag matches the given value. This is useful for
82487// getting updates only after the object has changed since the last
82488// request. Use googleapi.IsNotModified to check whether the response
82489// error from Do is the result of In-None-Match.
82490func (c *InstanceTemplatesGetCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetCall {
82491	c.ifNoneMatch_ = entityTag
82492	return c
82493}
82494
82495// Context sets the context to be used in this call's Do method. Any
82496// pending HTTP request will be aborted if the provided context is
82497// canceled.
82498func (c *InstanceTemplatesGetCall) Context(ctx context.Context) *InstanceTemplatesGetCall {
82499	c.ctx_ = ctx
82500	return c
82501}
82502
82503// Header returns an http.Header that can be modified by the caller to
82504// add HTTP headers to the request.
82505func (c *InstanceTemplatesGetCall) Header() http.Header {
82506	if c.header_ == nil {
82507		c.header_ = make(http.Header)
82508	}
82509	return c.header_
82510}
82511
82512func (c *InstanceTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
82513	reqHeaders := make(http.Header)
82514	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
82515	for k, v := range c.header_ {
82516		reqHeaders[k] = v
82517	}
82518	reqHeaders.Set("User-Agent", c.s.userAgent())
82519	if c.ifNoneMatch_ != "" {
82520		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
82521	}
82522	var body io.Reader = nil
82523	c.urlParams_.Set("alt", alt)
82524	c.urlParams_.Set("prettyPrint", "false")
82525	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{instanceTemplate}")
82526	urls += "?" + c.urlParams_.Encode()
82527	req, err := http.NewRequest("GET", urls, body)
82528	if err != nil {
82529		return nil, err
82530	}
82531	req.Header = reqHeaders
82532	googleapi.Expand(req.URL, map[string]string{
82533		"project":          c.project,
82534		"instanceTemplate": c.instanceTemplate,
82535	})
82536	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82537}
82538
82539// Do executes the "compute.instanceTemplates.get" call.
82540// Exactly one of *InstanceTemplate or error will be non-nil. Any
82541// non-2xx status code is an error. Response headers are in either
82542// *InstanceTemplate.ServerResponse.Header or (if a response was
82543// returned at all) in error.(*googleapi.Error).Header. Use
82544// googleapi.IsNotModified to check whether the returned error was
82545// because http.StatusNotModified was returned.
82546func (c *InstanceTemplatesGetCall) Do(opts ...googleapi.CallOption) (*InstanceTemplate, error) {
82547	gensupport.SetOptions(c.urlParams_, opts...)
82548	res, err := c.doRequest("json")
82549	if res != nil && res.StatusCode == http.StatusNotModified {
82550		if res.Body != nil {
82551			res.Body.Close()
82552		}
82553		return nil, &googleapi.Error{
82554			Code:   res.StatusCode,
82555			Header: res.Header,
82556		}
82557	}
82558	if err != nil {
82559		return nil, err
82560	}
82561	defer googleapi.CloseBody(res)
82562	if err := googleapi.CheckResponse(res); err != nil {
82563		return nil, err
82564	}
82565	ret := &InstanceTemplate{
82566		ServerResponse: googleapi.ServerResponse{
82567			Header:         res.Header,
82568			HTTPStatusCode: res.StatusCode,
82569		},
82570	}
82571	target := &ret
82572	if err := gensupport.DecodeResponse(target, res); err != nil {
82573		return nil, err
82574	}
82575	return ret, nil
82576	// {
82577	//   "description": "Returns the specified instance template. Gets a list of available instance templates by making a list() request.",
82578	//   "httpMethod": "GET",
82579	//   "id": "compute.instanceTemplates.get",
82580	//   "parameterOrder": [
82581	//     "project",
82582	//     "instanceTemplate"
82583	//   ],
82584	//   "parameters": {
82585	//     "instanceTemplate": {
82586	//       "description": "The name of the instance template.",
82587	//       "location": "path",
82588	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82589	//       "required": true,
82590	//       "type": "string"
82591	//     },
82592	//     "project": {
82593	//       "description": "Project ID for this request.",
82594	//       "location": "path",
82595	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82596	//       "required": true,
82597	//       "type": "string"
82598	//     }
82599	//   },
82600	//   "path": "{project}/global/instanceTemplates/{instanceTemplate}",
82601	//   "response": {
82602	//     "$ref": "InstanceTemplate"
82603	//   },
82604	//   "scopes": [
82605	//     "https://www.googleapis.com/auth/cloud-platform",
82606	//     "https://www.googleapis.com/auth/compute",
82607	//     "https://www.googleapis.com/auth/compute.readonly"
82608	//   ]
82609	// }
82610
82611}
82612
82613// method id "compute.instanceTemplates.getIamPolicy":
82614
82615type InstanceTemplatesGetIamPolicyCall struct {
82616	s            *Service
82617	project      string
82618	resource     string
82619	urlParams_   gensupport.URLParams
82620	ifNoneMatch_ string
82621	ctx_         context.Context
82622	header_      http.Header
82623}
82624
82625// GetIamPolicy: Gets the access control policy for a resource. May be
82626// empty if no such policy or resource exists.
82627func (r *InstanceTemplatesService) GetIamPolicy(project string, resource string) *InstanceTemplatesGetIamPolicyCall {
82628	c := &InstanceTemplatesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82629	c.project = project
82630	c.resource = resource
82631	return c
82632}
82633
82634// OptionsRequestedPolicyVersion sets the optional parameter
82635// "optionsRequestedPolicyVersion": Requested IAM Policy version.
82636func (c *InstanceTemplatesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InstanceTemplatesGetIamPolicyCall {
82637	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
82638	return c
82639}
82640
82641// Fields allows partial responses to be retrieved. See
82642// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82643// for more information.
82644func (c *InstanceTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetIamPolicyCall {
82645	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82646	return c
82647}
82648
82649// IfNoneMatch sets the optional parameter which makes the operation
82650// fail if the object's ETag matches the given value. This is useful for
82651// getting updates only after the object has changed since the last
82652// request. Use googleapi.IsNotModified to check whether the response
82653// error from Do is the result of In-None-Match.
82654func (c *InstanceTemplatesGetIamPolicyCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetIamPolicyCall {
82655	c.ifNoneMatch_ = entityTag
82656	return c
82657}
82658
82659// Context sets the context to be used in this call's Do method. Any
82660// pending HTTP request will be aborted if the provided context is
82661// canceled.
82662func (c *InstanceTemplatesGetIamPolicyCall) Context(ctx context.Context) *InstanceTemplatesGetIamPolicyCall {
82663	c.ctx_ = ctx
82664	return c
82665}
82666
82667// Header returns an http.Header that can be modified by the caller to
82668// add HTTP headers to the request.
82669func (c *InstanceTemplatesGetIamPolicyCall) Header() http.Header {
82670	if c.header_ == nil {
82671		c.header_ = make(http.Header)
82672	}
82673	return c.header_
82674}
82675
82676func (c *InstanceTemplatesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
82677	reqHeaders := make(http.Header)
82678	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
82679	for k, v := range c.header_ {
82680		reqHeaders[k] = v
82681	}
82682	reqHeaders.Set("User-Agent", c.s.userAgent())
82683	if c.ifNoneMatch_ != "" {
82684		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
82685	}
82686	var body io.Reader = nil
82687	c.urlParams_.Set("alt", alt)
82688	c.urlParams_.Set("prettyPrint", "false")
82689	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{resource}/getIamPolicy")
82690	urls += "?" + c.urlParams_.Encode()
82691	req, err := http.NewRequest("GET", urls, body)
82692	if err != nil {
82693		return nil, err
82694	}
82695	req.Header = reqHeaders
82696	googleapi.Expand(req.URL, map[string]string{
82697		"project":  c.project,
82698		"resource": c.resource,
82699	})
82700	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82701}
82702
82703// Do executes the "compute.instanceTemplates.getIamPolicy" call.
82704// Exactly one of *Policy or error will be non-nil. Any non-2xx status
82705// code is an error. Response headers are in either
82706// *Policy.ServerResponse.Header or (if a response was returned at all)
82707// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
82708// check whether the returned error was because http.StatusNotModified
82709// was returned.
82710func (c *InstanceTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
82711	gensupport.SetOptions(c.urlParams_, opts...)
82712	res, err := c.doRequest("json")
82713	if res != nil && res.StatusCode == http.StatusNotModified {
82714		if res.Body != nil {
82715			res.Body.Close()
82716		}
82717		return nil, &googleapi.Error{
82718			Code:   res.StatusCode,
82719			Header: res.Header,
82720		}
82721	}
82722	if err != nil {
82723		return nil, err
82724	}
82725	defer googleapi.CloseBody(res)
82726	if err := googleapi.CheckResponse(res); err != nil {
82727		return nil, err
82728	}
82729	ret := &Policy{
82730		ServerResponse: googleapi.ServerResponse{
82731			Header:         res.Header,
82732			HTTPStatusCode: res.StatusCode,
82733		},
82734	}
82735	target := &ret
82736	if err := gensupport.DecodeResponse(target, res); err != nil {
82737		return nil, err
82738	}
82739	return ret, nil
82740	// {
82741	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
82742	//   "httpMethod": "GET",
82743	//   "id": "compute.instanceTemplates.getIamPolicy",
82744	//   "parameterOrder": [
82745	//     "project",
82746	//     "resource"
82747	//   ],
82748	//   "parameters": {
82749	//     "optionsRequestedPolicyVersion": {
82750	//       "description": "Requested IAM Policy version.",
82751	//       "format": "int32",
82752	//       "location": "query",
82753	//       "type": "integer"
82754	//     },
82755	//     "project": {
82756	//       "description": "Project ID for this request.",
82757	//       "location": "path",
82758	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82759	//       "required": true,
82760	//       "type": "string"
82761	//     },
82762	//     "resource": {
82763	//       "description": "Name or id of the resource for this request.",
82764	//       "location": "path",
82765	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82766	//       "required": true,
82767	//       "type": "string"
82768	//     }
82769	//   },
82770	//   "path": "{project}/global/instanceTemplates/{resource}/getIamPolicy",
82771	//   "response": {
82772	//     "$ref": "Policy"
82773	//   },
82774	//   "scopes": [
82775	//     "https://www.googleapis.com/auth/cloud-platform",
82776	//     "https://www.googleapis.com/auth/compute",
82777	//     "https://www.googleapis.com/auth/compute.readonly"
82778	//   ]
82779	// }
82780
82781}
82782
82783// method id "compute.instanceTemplates.insert":
82784
82785type InstanceTemplatesInsertCall struct {
82786	s                *Service
82787	project          string
82788	instancetemplate *InstanceTemplate
82789	urlParams_       gensupport.URLParams
82790	ctx_             context.Context
82791	header_          http.Header
82792}
82793
82794// Insert: Creates an instance template in the specified project using
82795// the data that is included in the request. If you are creating a new
82796// template to update an existing instance group, your new instance
82797// template must use the same network or, if applicable, the same
82798// subnetwork as the original template.
82799// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/insert
82800func (r *InstanceTemplatesService) Insert(project string, instancetemplate *InstanceTemplate) *InstanceTemplatesInsertCall {
82801	c := &InstanceTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82802	c.project = project
82803	c.instancetemplate = instancetemplate
82804	return c
82805}
82806
82807// RequestId sets the optional parameter "requestId": An optional
82808// request ID to identify requests. Specify a unique request ID so that
82809// if you must retry your request, the server will know to ignore the
82810// request if it has already been completed.
82811//
82812// For example, consider a situation where you make an initial request
82813// and the request times out. If you make the request again with the
82814// same request ID, the server can check if original operation with the
82815// same request ID was received, and if so, will ignore the second
82816// request. This prevents clients from accidentally creating duplicate
82817// commitments.
82818//
82819// The request ID must be a valid UUID with the exception that zero UUID
82820// is not supported (00000000-0000-0000-0000-000000000000).
82821func (c *InstanceTemplatesInsertCall) RequestId(requestId string) *InstanceTemplatesInsertCall {
82822	c.urlParams_.Set("requestId", requestId)
82823	return c
82824}
82825
82826// Fields allows partial responses to be retrieved. See
82827// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82828// for more information.
82829func (c *InstanceTemplatesInsertCall) Fields(s ...googleapi.Field) *InstanceTemplatesInsertCall {
82830	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82831	return c
82832}
82833
82834// Context sets the context to be used in this call's Do method. Any
82835// pending HTTP request will be aborted if the provided context is
82836// canceled.
82837func (c *InstanceTemplatesInsertCall) Context(ctx context.Context) *InstanceTemplatesInsertCall {
82838	c.ctx_ = ctx
82839	return c
82840}
82841
82842// Header returns an http.Header that can be modified by the caller to
82843// add HTTP headers to the request.
82844func (c *InstanceTemplatesInsertCall) Header() http.Header {
82845	if c.header_ == nil {
82846		c.header_ = make(http.Header)
82847	}
82848	return c.header_
82849}
82850
82851func (c *InstanceTemplatesInsertCall) doRequest(alt string) (*http.Response, error) {
82852	reqHeaders := make(http.Header)
82853	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
82854	for k, v := range c.header_ {
82855		reqHeaders[k] = v
82856	}
82857	reqHeaders.Set("User-Agent", c.s.userAgent())
82858	var body io.Reader = nil
82859	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancetemplate)
82860	if err != nil {
82861		return nil, err
82862	}
82863	reqHeaders.Set("Content-Type", "application/json")
82864	c.urlParams_.Set("alt", alt)
82865	c.urlParams_.Set("prettyPrint", "false")
82866	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates")
82867	urls += "?" + c.urlParams_.Encode()
82868	req, err := http.NewRequest("POST", urls, body)
82869	if err != nil {
82870		return nil, err
82871	}
82872	req.Header = reqHeaders
82873	googleapi.Expand(req.URL, map[string]string{
82874		"project": c.project,
82875	})
82876	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82877}
82878
82879// Do executes the "compute.instanceTemplates.insert" call.
82880// Exactly one of *Operation or error will be non-nil. Any non-2xx
82881// status code is an error. Response headers are in either
82882// *Operation.ServerResponse.Header or (if a response was returned at
82883// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82884// to check whether the returned error was because
82885// http.StatusNotModified was returned.
82886func (c *InstanceTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82887	gensupport.SetOptions(c.urlParams_, opts...)
82888	res, err := c.doRequest("json")
82889	if res != nil && res.StatusCode == http.StatusNotModified {
82890		if res.Body != nil {
82891			res.Body.Close()
82892		}
82893		return nil, &googleapi.Error{
82894			Code:   res.StatusCode,
82895			Header: res.Header,
82896		}
82897	}
82898	if err != nil {
82899		return nil, err
82900	}
82901	defer googleapi.CloseBody(res)
82902	if err := googleapi.CheckResponse(res); err != nil {
82903		return nil, err
82904	}
82905	ret := &Operation{
82906		ServerResponse: googleapi.ServerResponse{
82907			Header:         res.Header,
82908			HTTPStatusCode: res.StatusCode,
82909		},
82910	}
82911	target := &ret
82912	if err := gensupport.DecodeResponse(target, res); err != nil {
82913		return nil, err
82914	}
82915	return ret, nil
82916	// {
82917	//   "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.",
82918	//   "httpMethod": "POST",
82919	//   "id": "compute.instanceTemplates.insert",
82920	//   "parameterOrder": [
82921	//     "project"
82922	//   ],
82923	//   "parameters": {
82924	//     "project": {
82925	//       "description": "Project ID for this request.",
82926	//       "location": "path",
82927	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82928	//       "required": true,
82929	//       "type": "string"
82930	//     },
82931	//     "requestId": {
82932	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
82933	//       "location": "query",
82934	//       "type": "string"
82935	//     }
82936	//   },
82937	//   "path": "{project}/global/instanceTemplates",
82938	//   "request": {
82939	//     "$ref": "InstanceTemplate"
82940	//   },
82941	//   "response": {
82942	//     "$ref": "Operation"
82943	//   },
82944	//   "scopes": [
82945	//     "https://www.googleapis.com/auth/cloud-platform",
82946	//     "https://www.googleapis.com/auth/compute"
82947	//   ]
82948	// }
82949
82950}
82951
82952// method id "compute.instanceTemplates.list":
82953
82954type InstanceTemplatesListCall struct {
82955	s            *Service
82956	project      string
82957	urlParams_   gensupport.URLParams
82958	ifNoneMatch_ string
82959	ctx_         context.Context
82960	header_      http.Header
82961}
82962
82963// List: Retrieves a list of instance templates that are contained
82964// within the specified project.
82965// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/list
82966func (r *InstanceTemplatesService) List(project string) *InstanceTemplatesListCall {
82967	c := &InstanceTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82968	c.project = project
82969	return c
82970}
82971
82972// Filter sets the optional parameter "filter": A filter expression that
82973// filters resources listed in the response. The expression must specify
82974// the field name, a comparison operator, and the value that you want to
82975// use for filtering. The value must be a string, a number, or a
82976// boolean. The comparison operator must be either =, !=, >, or <.
82977//
82978// For example, if you are filtering Compute Engine instances, you can
82979// exclude instances named example-instance by specifying name !=
82980// example-instance.
82981//
82982// You can also filter nested fields. For example, you could specify
82983// scheduling.automaticRestart = false to include instances only if they
82984// are not scheduled for automatic restarts. You can use filtering on
82985// nested fields to filter based on resource labels.
82986//
82987// To filter on multiple expressions, provide each separate expression
82988// within parentheses. For example, (scheduling.automaticRestart = true)
82989// (cpuPlatform = "Intel Skylake"). By default, each expression is an
82990// AND expression. However, you can include AND and OR expressions
82991// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
82992// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
82993// true).
82994func (c *InstanceTemplatesListCall) Filter(filter string) *InstanceTemplatesListCall {
82995	c.urlParams_.Set("filter", filter)
82996	return c
82997}
82998
82999// MaxResults sets the optional parameter "maxResults": The maximum
83000// number of results per page that should be returned. If the number of
83001// available results is larger than maxResults, Compute Engine returns a
83002// nextPageToken that can be used to get the next page of results in
83003// subsequent list requests. Acceptable values are 0 to 500, inclusive.
83004// (Default: 500)
83005func (c *InstanceTemplatesListCall) MaxResults(maxResults int64) *InstanceTemplatesListCall {
83006	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
83007	return c
83008}
83009
83010// OrderBy sets the optional parameter "orderBy": Sorts list results by
83011// a certain order. By default, results are returned in alphanumerical
83012// order based on the resource name.
83013//
83014// You can also sort results in descending order based on the creation
83015// timestamp using orderBy="creationTimestamp desc". This sorts results
83016// based on the creationTimestamp field in reverse chronological order
83017// (newest result first). Use this to sort resources like operations so
83018// that the newest operation is returned first.
83019//
83020// Currently, only sorting by name or creationTimestamp desc is
83021// supported.
83022func (c *InstanceTemplatesListCall) OrderBy(orderBy string) *InstanceTemplatesListCall {
83023	c.urlParams_.Set("orderBy", orderBy)
83024	return c
83025}
83026
83027// PageToken sets the optional parameter "pageToken": Specifies a page
83028// token to use. Set pageToken to the nextPageToken returned by a
83029// previous list request to get the next page of results.
83030func (c *InstanceTemplatesListCall) PageToken(pageToken string) *InstanceTemplatesListCall {
83031	c.urlParams_.Set("pageToken", pageToken)
83032	return c
83033}
83034
83035// Fields allows partial responses to be retrieved. See
83036// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83037// for more information.
83038func (c *InstanceTemplatesListCall) Fields(s ...googleapi.Field) *InstanceTemplatesListCall {
83039	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83040	return c
83041}
83042
83043// IfNoneMatch sets the optional parameter which makes the operation
83044// fail if the object's ETag matches the given value. This is useful for
83045// getting updates only after the object has changed since the last
83046// request. Use googleapi.IsNotModified to check whether the response
83047// error from Do is the result of In-None-Match.
83048func (c *InstanceTemplatesListCall) IfNoneMatch(entityTag string) *InstanceTemplatesListCall {
83049	c.ifNoneMatch_ = entityTag
83050	return c
83051}
83052
83053// Context sets the context to be used in this call's Do method. Any
83054// pending HTTP request will be aborted if the provided context is
83055// canceled.
83056func (c *InstanceTemplatesListCall) Context(ctx context.Context) *InstanceTemplatesListCall {
83057	c.ctx_ = ctx
83058	return c
83059}
83060
83061// Header returns an http.Header that can be modified by the caller to
83062// add HTTP headers to the request.
83063func (c *InstanceTemplatesListCall) Header() http.Header {
83064	if c.header_ == nil {
83065		c.header_ = make(http.Header)
83066	}
83067	return c.header_
83068}
83069
83070func (c *InstanceTemplatesListCall) doRequest(alt string) (*http.Response, error) {
83071	reqHeaders := make(http.Header)
83072	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
83073	for k, v := range c.header_ {
83074		reqHeaders[k] = v
83075	}
83076	reqHeaders.Set("User-Agent", c.s.userAgent())
83077	if c.ifNoneMatch_ != "" {
83078		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
83079	}
83080	var body io.Reader = nil
83081	c.urlParams_.Set("alt", alt)
83082	c.urlParams_.Set("prettyPrint", "false")
83083	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates")
83084	urls += "?" + c.urlParams_.Encode()
83085	req, err := http.NewRequest("GET", urls, body)
83086	if err != nil {
83087		return nil, err
83088	}
83089	req.Header = reqHeaders
83090	googleapi.Expand(req.URL, map[string]string{
83091		"project": c.project,
83092	})
83093	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83094}
83095
83096// Do executes the "compute.instanceTemplates.list" call.
83097// Exactly one of *InstanceTemplateList or error will be non-nil. Any
83098// non-2xx status code is an error. Response headers are in either
83099// *InstanceTemplateList.ServerResponse.Header or (if a response was
83100// returned at all) in error.(*googleapi.Error).Header. Use
83101// googleapi.IsNotModified to check whether the returned error was
83102// because http.StatusNotModified was returned.
83103func (c *InstanceTemplatesListCall) Do(opts ...googleapi.CallOption) (*InstanceTemplateList, error) {
83104	gensupport.SetOptions(c.urlParams_, opts...)
83105	res, err := c.doRequest("json")
83106	if res != nil && res.StatusCode == http.StatusNotModified {
83107		if res.Body != nil {
83108			res.Body.Close()
83109		}
83110		return nil, &googleapi.Error{
83111			Code:   res.StatusCode,
83112			Header: res.Header,
83113		}
83114	}
83115	if err != nil {
83116		return nil, err
83117	}
83118	defer googleapi.CloseBody(res)
83119	if err := googleapi.CheckResponse(res); err != nil {
83120		return nil, err
83121	}
83122	ret := &InstanceTemplateList{
83123		ServerResponse: googleapi.ServerResponse{
83124			Header:         res.Header,
83125			HTTPStatusCode: res.StatusCode,
83126		},
83127	}
83128	target := &ret
83129	if err := gensupport.DecodeResponse(target, res); err != nil {
83130		return nil, err
83131	}
83132	return ret, nil
83133	// {
83134	//   "description": "Retrieves a list of instance templates that are contained within the specified project.",
83135	//   "httpMethod": "GET",
83136	//   "id": "compute.instanceTemplates.list",
83137	//   "parameterOrder": [
83138	//     "project"
83139	//   ],
83140	//   "parameters": {
83141	//     "filter": {
83142	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
83143	//       "location": "query",
83144	//       "type": "string"
83145	//     },
83146	//     "maxResults": {
83147	//       "default": "500",
83148	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
83149	//       "format": "uint32",
83150	//       "location": "query",
83151	//       "minimum": "0",
83152	//       "type": "integer"
83153	//     },
83154	//     "orderBy": {
83155	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
83156	//       "location": "query",
83157	//       "type": "string"
83158	//     },
83159	//     "pageToken": {
83160	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
83161	//       "location": "query",
83162	//       "type": "string"
83163	//     },
83164	//     "project": {
83165	//       "description": "Project ID for this request.",
83166	//       "location": "path",
83167	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83168	//       "required": true,
83169	//       "type": "string"
83170	//     }
83171	//   },
83172	//   "path": "{project}/global/instanceTemplates",
83173	//   "response": {
83174	//     "$ref": "InstanceTemplateList"
83175	//   },
83176	//   "scopes": [
83177	//     "https://www.googleapis.com/auth/cloud-platform",
83178	//     "https://www.googleapis.com/auth/compute",
83179	//     "https://www.googleapis.com/auth/compute.readonly"
83180	//   ]
83181	// }
83182
83183}
83184
83185// Pages invokes f for each page of results.
83186// A non-nil error returned from f will halt the iteration.
83187// The provided context supersedes any context provided to the Context method.
83188func (c *InstanceTemplatesListCall) Pages(ctx context.Context, f func(*InstanceTemplateList) error) error {
83189	c.ctx_ = ctx
83190	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
83191	for {
83192		x, err := c.Do()
83193		if err != nil {
83194			return err
83195		}
83196		if err := f(x); err != nil {
83197			return err
83198		}
83199		if x.NextPageToken == "" {
83200			return nil
83201		}
83202		c.PageToken(x.NextPageToken)
83203	}
83204}
83205
83206// method id "compute.instanceTemplates.setIamPolicy":
83207
83208type InstanceTemplatesSetIamPolicyCall struct {
83209	s                      *Service
83210	project                string
83211	resource               string
83212	globalsetpolicyrequest *GlobalSetPolicyRequest
83213	urlParams_             gensupport.URLParams
83214	ctx_                   context.Context
83215	header_                http.Header
83216}
83217
83218// SetIamPolicy: Sets the access control policy on the specified
83219// resource. Replaces any existing policy.
83220func (r *InstanceTemplatesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *InstanceTemplatesSetIamPolicyCall {
83221	c := &InstanceTemplatesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83222	c.project = project
83223	c.resource = resource
83224	c.globalsetpolicyrequest = globalsetpolicyrequest
83225	return c
83226}
83227
83228// Fields allows partial responses to be retrieved. See
83229// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83230// for more information.
83231func (c *InstanceTemplatesSetIamPolicyCall) Fields(s ...googleapi.Field) *InstanceTemplatesSetIamPolicyCall {
83232	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83233	return c
83234}
83235
83236// Context sets the context to be used in this call's Do method. Any
83237// pending HTTP request will be aborted if the provided context is
83238// canceled.
83239func (c *InstanceTemplatesSetIamPolicyCall) Context(ctx context.Context) *InstanceTemplatesSetIamPolicyCall {
83240	c.ctx_ = ctx
83241	return c
83242}
83243
83244// Header returns an http.Header that can be modified by the caller to
83245// add HTTP headers to the request.
83246func (c *InstanceTemplatesSetIamPolicyCall) Header() http.Header {
83247	if c.header_ == nil {
83248		c.header_ = make(http.Header)
83249	}
83250	return c.header_
83251}
83252
83253func (c *InstanceTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
83254	reqHeaders := make(http.Header)
83255	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
83256	for k, v := range c.header_ {
83257		reqHeaders[k] = v
83258	}
83259	reqHeaders.Set("User-Agent", c.s.userAgent())
83260	var body io.Reader = nil
83261	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
83262	if err != nil {
83263		return nil, err
83264	}
83265	reqHeaders.Set("Content-Type", "application/json")
83266	c.urlParams_.Set("alt", alt)
83267	c.urlParams_.Set("prettyPrint", "false")
83268	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{resource}/setIamPolicy")
83269	urls += "?" + c.urlParams_.Encode()
83270	req, err := http.NewRequest("POST", urls, body)
83271	if err != nil {
83272		return nil, err
83273	}
83274	req.Header = reqHeaders
83275	googleapi.Expand(req.URL, map[string]string{
83276		"project":  c.project,
83277		"resource": c.resource,
83278	})
83279	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83280}
83281
83282// Do executes the "compute.instanceTemplates.setIamPolicy" call.
83283// Exactly one of *Policy or error will be non-nil. Any non-2xx status
83284// code is an error. Response headers are in either
83285// *Policy.ServerResponse.Header or (if a response was returned at all)
83286// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
83287// check whether the returned error was because http.StatusNotModified
83288// was returned.
83289func (c *InstanceTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
83290	gensupport.SetOptions(c.urlParams_, opts...)
83291	res, err := c.doRequest("json")
83292	if res != nil && res.StatusCode == http.StatusNotModified {
83293		if res.Body != nil {
83294			res.Body.Close()
83295		}
83296		return nil, &googleapi.Error{
83297			Code:   res.StatusCode,
83298			Header: res.Header,
83299		}
83300	}
83301	if err != nil {
83302		return nil, err
83303	}
83304	defer googleapi.CloseBody(res)
83305	if err := googleapi.CheckResponse(res); err != nil {
83306		return nil, err
83307	}
83308	ret := &Policy{
83309		ServerResponse: googleapi.ServerResponse{
83310			Header:         res.Header,
83311			HTTPStatusCode: res.StatusCode,
83312		},
83313	}
83314	target := &ret
83315	if err := gensupport.DecodeResponse(target, res); err != nil {
83316		return nil, err
83317	}
83318	return ret, nil
83319	// {
83320	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
83321	//   "httpMethod": "POST",
83322	//   "id": "compute.instanceTemplates.setIamPolicy",
83323	//   "parameterOrder": [
83324	//     "project",
83325	//     "resource"
83326	//   ],
83327	//   "parameters": {
83328	//     "project": {
83329	//       "description": "Project ID for this request.",
83330	//       "location": "path",
83331	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83332	//       "required": true,
83333	//       "type": "string"
83334	//     },
83335	//     "resource": {
83336	//       "description": "Name or id of the resource for this request.",
83337	//       "location": "path",
83338	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
83339	//       "required": true,
83340	//       "type": "string"
83341	//     }
83342	//   },
83343	//   "path": "{project}/global/instanceTemplates/{resource}/setIamPolicy",
83344	//   "request": {
83345	//     "$ref": "GlobalSetPolicyRequest"
83346	//   },
83347	//   "response": {
83348	//     "$ref": "Policy"
83349	//   },
83350	//   "scopes": [
83351	//     "https://www.googleapis.com/auth/cloud-platform",
83352	//     "https://www.googleapis.com/auth/compute"
83353	//   ]
83354	// }
83355
83356}
83357
83358// method id "compute.instanceTemplates.testIamPermissions":
83359
83360type InstanceTemplatesTestIamPermissionsCall struct {
83361	s                      *Service
83362	project                string
83363	resource               string
83364	testpermissionsrequest *TestPermissionsRequest
83365	urlParams_             gensupport.URLParams
83366	ctx_                   context.Context
83367	header_                http.Header
83368}
83369
83370// TestIamPermissions: Returns permissions that a caller has on the
83371// specified resource.
83372func (r *InstanceTemplatesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceTemplatesTestIamPermissionsCall {
83373	c := &InstanceTemplatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83374	c.project = project
83375	c.resource = resource
83376	c.testpermissionsrequest = testpermissionsrequest
83377	return c
83378}
83379
83380// Fields allows partial responses to be retrieved. See
83381// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83382// for more information.
83383func (c *InstanceTemplatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceTemplatesTestIamPermissionsCall {
83384	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83385	return c
83386}
83387
83388// Context sets the context to be used in this call's Do method. Any
83389// pending HTTP request will be aborted if the provided context is
83390// canceled.
83391func (c *InstanceTemplatesTestIamPermissionsCall) Context(ctx context.Context) *InstanceTemplatesTestIamPermissionsCall {
83392	c.ctx_ = ctx
83393	return c
83394}
83395
83396// Header returns an http.Header that can be modified by the caller to
83397// add HTTP headers to the request.
83398func (c *InstanceTemplatesTestIamPermissionsCall) Header() http.Header {
83399	if c.header_ == nil {
83400		c.header_ = make(http.Header)
83401	}
83402	return c.header_
83403}
83404
83405func (c *InstanceTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
83406	reqHeaders := make(http.Header)
83407	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
83408	for k, v := range c.header_ {
83409		reqHeaders[k] = v
83410	}
83411	reqHeaders.Set("User-Agent", c.s.userAgent())
83412	var body io.Reader = nil
83413	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
83414	if err != nil {
83415		return nil, err
83416	}
83417	reqHeaders.Set("Content-Type", "application/json")
83418	c.urlParams_.Set("alt", alt)
83419	c.urlParams_.Set("prettyPrint", "false")
83420	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{resource}/testIamPermissions")
83421	urls += "?" + c.urlParams_.Encode()
83422	req, err := http.NewRequest("POST", urls, body)
83423	if err != nil {
83424		return nil, err
83425	}
83426	req.Header = reqHeaders
83427	googleapi.Expand(req.URL, map[string]string{
83428		"project":  c.project,
83429		"resource": c.resource,
83430	})
83431	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83432}
83433
83434// Do executes the "compute.instanceTemplates.testIamPermissions" call.
83435// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
83436// non-2xx status code is an error. Response headers are in either
83437// *TestPermissionsResponse.ServerResponse.Header or (if a response was
83438// returned at all) in error.(*googleapi.Error).Header. Use
83439// googleapi.IsNotModified to check whether the returned error was
83440// because http.StatusNotModified was returned.
83441func (c *InstanceTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
83442	gensupport.SetOptions(c.urlParams_, opts...)
83443	res, err := c.doRequest("json")
83444	if res != nil && res.StatusCode == http.StatusNotModified {
83445		if res.Body != nil {
83446			res.Body.Close()
83447		}
83448		return nil, &googleapi.Error{
83449			Code:   res.StatusCode,
83450			Header: res.Header,
83451		}
83452	}
83453	if err != nil {
83454		return nil, err
83455	}
83456	defer googleapi.CloseBody(res)
83457	if err := googleapi.CheckResponse(res); err != nil {
83458		return nil, err
83459	}
83460	ret := &TestPermissionsResponse{
83461		ServerResponse: googleapi.ServerResponse{
83462			Header:         res.Header,
83463			HTTPStatusCode: res.StatusCode,
83464		},
83465	}
83466	target := &ret
83467	if err := gensupport.DecodeResponse(target, res); err != nil {
83468		return nil, err
83469	}
83470	return ret, nil
83471	// {
83472	//   "description": "Returns permissions that a caller has on the specified resource.",
83473	//   "httpMethod": "POST",
83474	//   "id": "compute.instanceTemplates.testIamPermissions",
83475	//   "parameterOrder": [
83476	//     "project",
83477	//     "resource"
83478	//   ],
83479	//   "parameters": {
83480	//     "project": {
83481	//       "description": "Project ID for this request.",
83482	//       "location": "path",
83483	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83484	//       "required": true,
83485	//       "type": "string"
83486	//     },
83487	//     "resource": {
83488	//       "description": "Name or id of the resource for this request.",
83489	//       "location": "path",
83490	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
83491	//       "required": true,
83492	//       "type": "string"
83493	//     }
83494	//   },
83495	//   "path": "{project}/global/instanceTemplates/{resource}/testIamPermissions",
83496	//   "request": {
83497	//     "$ref": "TestPermissionsRequest"
83498	//   },
83499	//   "response": {
83500	//     "$ref": "TestPermissionsResponse"
83501	//   },
83502	//   "scopes": [
83503	//     "https://www.googleapis.com/auth/cloud-platform",
83504	//     "https://www.googleapis.com/auth/compute",
83505	//     "https://www.googleapis.com/auth/compute.readonly"
83506	//   ]
83507	// }
83508
83509}
83510
83511// method id "compute.instances.addAccessConfig":
83512
83513type InstancesAddAccessConfigCall struct {
83514	s            *Service
83515	project      string
83516	zone         string
83517	instance     string
83518	accessconfig *AccessConfig
83519	urlParams_   gensupport.URLParams
83520	ctx_         context.Context
83521	header_      http.Header
83522}
83523
83524// AddAccessConfig: Adds an access config to an instance's network
83525// interface.
83526// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/addAccessConfig
83527func (r *InstancesService) AddAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesAddAccessConfigCall {
83528	c := &InstancesAddAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83529	c.project = project
83530	c.zone = zone
83531	c.instance = instance
83532	c.urlParams_.Set("networkInterface", networkInterface)
83533	c.accessconfig = accessconfig
83534	return c
83535}
83536
83537// RequestId sets the optional parameter "requestId": An optional
83538// request ID to identify requests. Specify a unique request ID so that
83539// if you must retry your request, the server will know to ignore the
83540// request if it has already been completed.
83541//
83542// For example, consider a situation where you make an initial request
83543// and the request times out. If you make the request again with the
83544// same request ID, the server can check if original operation with the
83545// same request ID was received, and if so, will ignore the second
83546// request. This prevents clients from accidentally creating duplicate
83547// commitments.
83548//
83549// The request ID must be a valid UUID with the exception that zero UUID
83550// is not supported (00000000-0000-0000-0000-000000000000).
83551func (c *InstancesAddAccessConfigCall) RequestId(requestId string) *InstancesAddAccessConfigCall {
83552	c.urlParams_.Set("requestId", requestId)
83553	return c
83554}
83555
83556// Fields allows partial responses to be retrieved. See
83557// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83558// for more information.
83559func (c *InstancesAddAccessConfigCall) Fields(s ...googleapi.Field) *InstancesAddAccessConfigCall {
83560	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83561	return c
83562}
83563
83564// Context sets the context to be used in this call's Do method. Any
83565// pending HTTP request will be aborted if the provided context is
83566// canceled.
83567func (c *InstancesAddAccessConfigCall) Context(ctx context.Context) *InstancesAddAccessConfigCall {
83568	c.ctx_ = ctx
83569	return c
83570}
83571
83572// Header returns an http.Header that can be modified by the caller to
83573// add HTTP headers to the request.
83574func (c *InstancesAddAccessConfigCall) Header() http.Header {
83575	if c.header_ == nil {
83576		c.header_ = make(http.Header)
83577	}
83578	return c.header_
83579}
83580
83581func (c *InstancesAddAccessConfigCall) doRequest(alt string) (*http.Response, error) {
83582	reqHeaders := make(http.Header)
83583	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
83584	for k, v := range c.header_ {
83585		reqHeaders[k] = v
83586	}
83587	reqHeaders.Set("User-Agent", c.s.userAgent())
83588	var body io.Reader = nil
83589	body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig)
83590	if err != nil {
83591		return nil, err
83592	}
83593	reqHeaders.Set("Content-Type", "application/json")
83594	c.urlParams_.Set("alt", alt)
83595	c.urlParams_.Set("prettyPrint", "false")
83596	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/addAccessConfig")
83597	urls += "?" + c.urlParams_.Encode()
83598	req, err := http.NewRequest("POST", urls, body)
83599	if err != nil {
83600		return nil, err
83601	}
83602	req.Header = reqHeaders
83603	googleapi.Expand(req.URL, map[string]string{
83604		"project":  c.project,
83605		"zone":     c.zone,
83606		"instance": c.instance,
83607	})
83608	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83609}
83610
83611// Do executes the "compute.instances.addAccessConfig" call.
83612// Exactly one of *Operation or error will be non-nil. Any non-2xx
83613// status code is an error. Response headers are in either
83614// *Operation.ServerResponse.Header or (if a response was returned at
83615// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83616// to check whether the returned error was because
83617// http.StatusNotModified was returned.
83618func (c *InstancesAddAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83619	gensupport.SetOptions(c.urlParams_, opts...)
83620	res, err := c.doRequest("json")
83621	if res != nil && res.StatusCode == http.StatusNotModified {
83622		if res.Body != nil {
83623			res.Body.Close()
83624		}
83625		return nil, &googleapi.Error{
83626			Code:   res.StatusCode,
83627			Header: res.Header,
83628		}
83629	}
83630	if err != nil {
83631		return nil, err
83632	}
83633	defer googleapi.CloseBody(res)
83634	if err := googleapi.CheckResponse(res); err != nil {
83635		return nil, err
83636	}
83637	ret := &Operation{
83638		ServerResponse: googleapi.ServerResponse{
83639			Header:         res.Header,
83640			HTTPStatusCode: res.StatusCode,
83641		},
83642	}
83643	target := &ret
83644	if err := gensupport.DecodeResponse(target, res); err != nil {
83645		return nil, err
83646	}
83647	return ret, nil
83648	// {
83649	//   "description": "Adds an access config to an instance's network interface.",
83650	//   "httpMethod": "POST",
83651	//   "id": "compute.instances.addAccessConfig",
83652	//   "parameterOrder": [
83653	//     "project",
83654	//     "zone",
83655	//     "instance",
83656	//     "networkInterface"
83657	//   ],
83658	//   "parameters": {
83659	//     "instance": {
83660	//       "description": "The instance name for this request.",
83661	//       "location": "path",
83662	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
83663	//       "required": true,
83664	//       "type": "string"
83665	//     },
83666	//     "networkInterface": {
83667	//       "description": "The name of the network interface to add to this instance.",
83668	//       "location": "query",
83669	//       "required": true,
83670	//       "type": "string"
83671	//     },
83672	//     "project": {
83673	//       "description": "Project ID for this request.",
83674	//       "location": "path",
83675	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83676	//       "required": true,
83677	//       "type": "string"
83678	//     },
83679	//     "requestId": {
83680	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83681	//       "location": "query",
83682	//       "type": "string"
83683	//     },
83684	//     "zone": {
83685	//       "description": "The name of the zone for this request.",
83686	//       "location": "path",
83687	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
83688	//       "required": true,
83689	//       "type": "string"
83690	//     }
83691	//   },
83692	//   "path": "{project}/zones/{zone}/instances/{instance}/addAccessConfig",
83693	//   "request": {
83694	//     "$ref": "AccessConfig"
83695	//   },
83696	//   "response": {
83697	//     "$ref": "Operation"
83698	//   },
83699	//   "scopes": [
83700	//     "https://www.googleapis.com/auth/cloud-platform",
83701	//     "https://www.googleapis.com/auth/compute"
83702	//   ]
83703	// }
83704
83705}
83706
83707// method id "compute.instances.addResourcePolicies":
83708
83709type InstancesAddResourcePoliciesCall struct {
83710	s                                   *Service
83711	project                             string
83712	zone                                string
83713	instance                            string
83714	instancesaddresourcepoliciesrequest *InstancesAddResourcePoliciesRequest
83715	urlParams_                          gensupport.URLParams
83716	ctx_                                context.Context
83717	header_                             http.Header
83718}
83719
83720// AddResourcePolicies: Adds existing resource policies to an instance.
83721// You can only add one policy right now which will be applied to this
83722// instance for scheduling live migrations.
83723func (r *InstancesService) AddResourcePolicies(project string, zone string, instance string, instancesaddresourcepoliciesrequest *InstancesAddResourcePoliciesRequest) *InstancesAddResourcePoliciesCall {
83724	c := &InstancesAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83725	c.project = project
83726	c.zone = zone
83727	c.instance = instance
83728	c.instancesaddresourcepoliciesrequest = instancesaddresourcepoliciesrequest
83729	return c
83730}
83731
83732// RequestId sets the optional parameter "requestId": An optional
83733// request ID to identify requests. Specify a unique request ID so that
83734// if you must retry your request, the server will know to ignore the
83735// request if it has already been completed.
83736//
83737// For example, consider a situation where you make an initial request
83738// and the request times out. If you make the request again with the
83739// same request ID, the server can check if original operation with the
83740// same request ID was received, and if so, will ignore the second
83741// request. This prevents clients from accidentally creating duplicate
83742// commitments.
83743//
83744// The request ID must be a valid UUID with the exception that zero UUID
83745// is not supported (00000000-0000-0000-0000-000000000000).
83746func (c *InstancesAddResourcePoliciesCall) RequestId(requestId string) *InstancesAddResourcePoliciesCall {
83747	c.urlParams_.Set("requestId", requestId)
83748	return c
83749}
83750
83751// Fields allows partial responses to be retrieved. See
83752// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83753// for more information.
83754func (c *InstancesAddResourcePoliciesCall) Fields(s ...googleapi.Field) *InstancesAddResourcePoliciesCall {
83755	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83756	return c
83757}
83758
83759// Context sets the context to be used in this call's Do method. Any
83760// pending HTTP request will be aborted if the provided context is
83761// canceled.
83762func (c *InstancesAddResourcePoliciesCall) Context(ctx context.Context) *InstancesAddResourcePoliciesCall {
83763	c.ctx_ = ctx
83764	return c
83765}
83766
83767// Header returns an http.Header that can be modified by the caller to
83768// add HTTP headers to the request.
83769func (c *InstancesAddResourcePoliciesCall) Header() http.Header {
83770	if c.header_ == nil {
83771		c.header_ = make(http.Header)
83772	}
83773	return c.header_
83774}
83775
83776func (c *InstancesAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
83777	reqHeaders := make(http.Header)
83778	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
83779	for k, v := range c.header_ {
83780		reqHeaders[k] = v
83781	}
83782	reqHeaders.Set("User-Agent", c.s.userAgent())
83783	var body io.Reader = nil
83784	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesaddresourcepoliciesrequest)
83785	if err != nil {
83786		return nil, err
83787	}
83788	reqHeaders.Set("Content-Type", "application/json")
83789	c.urlParams_.Set("alt", alt)
83790	c.urlParams_.Set("prettyPrint", "false")
83791	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/addResourcePolicies")
83792	urls += "?" + c.urlParams_.Encode()
83793	req, err := http.NewRequest("POST", urls, body)
83794	if err != nil {
83795		return nil, err
83796	}
83797	req.Header = reqHeaders
83798	googleapi.Expand(req.URL, map[string]string{
83799		"project":  c.project,
83800		"zone":     c.zone,
83801		"instance": c.instance,
83802	})
83803	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83804}
83805
83806// Do executes the "compute.instances.addResourcePolicies" call.
83807// Exactly one of *Operation or error will be non-nil. Any non-2xx
83808// status code is an error. Response headers are in either
83809// *Operation.ServerResponse.Header or (if a response was returned at
83810// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83811// to check whether the returned error was because
83812// http.StatusNotModified was returned.
83813func (c *InstancesAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83814	gensupport.SetOptions(c.urlParams_, opts...)
83815	res, err := c.doRequest("json")
83816	if res != nil && res.StatusCode == http.StatusNotModified {
83817		if res.Body != nil {
83818			res.Body.Close()
83819		}
83820		return nil, &googleapi.Error{
83821			Code:   res.StatusCode,
83822			Header: res.Header,
83823		}
83824	}
83825	if err != nil {
83826		return nil, err
83827	}
83828	defer googleapi.CloseBody(res)
83829	if err := googleapi.CheckResponse(res); err != nil {
83830		return nil, err
83831	}
83832	ret := &Operation{
83833		ServerResponse: googleapi.ServerResponse{
83834			Header:         res.Header,
83835			HTTPStatusCode: res.StatusCode,
83836		},
83837	}
83838	target := &ret
83839	if err := gensupport.DecodeResponse(target, res); err != nil {
83840		return nil, err
83841	}
83842	return ret, nil
83843	// {
83844	//   "description": "Adds existing resource policies to an instance. You can only add one policy right now which will be applied to this instance for scheduling live migrations.",
83845	//   "httpMethod": "POST",
83846	//   "id": "compute.instances.addResourcePolicies",
83847	//   "parameterOrder": [
83848	//     "project",
83849	//     "zone",
83850	//     "instance"
83851	//   ],
83852	//   "parameters": {
83853	//     "instance": {
83854	//       "description": "The instance name for this request.",
83855	//       "location": "path",
83856	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
83857	//       "required": true,
83858	//       "type": "string"
83859	//     },
83860	//     "project": {
83861	//       "description": "Project ID for this request.",
83862	//       "location": "path",
83863	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83864	//       "required": true,
83865	//       "type": "string"
83866	//     },
83867	//     "requestId": {
83868	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83869	//       "location": "query",
83870	//       "type": "string"
83871	//     },
83872	//     "zone": {
83873	//       "description": "The name of the zone for this request.",
83874	//       "location": "path",
83875	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
83876	//       "required": true,
83877	//       "type": "string"
83878	//     }
83879	//   },
83880	//   "path": "{project}/zones/{zone}/instances/{instance}/addResourcePolicies",
83881	//   "request": {
83882	//     "$ref": "InstancesAddResourcePoliciesRequest"
83883	//   },
83884	//   "response": {
83885	//     "$ref": "Operation"
83886	//   },
83887	//   "scopes": [
83888	//     "https://www.googleapis.com/auth/cloud-platform",
83889	//     "https://www.googleapis.com/auth/compute"
83890	//   ]
83891	// }
83892
83893}
83894
83895// method id "compute.instances.aggregatedList":
83896
83897type InstancesAggregatedListCall struct {
83898	s            *Service
83899	project      string
83900	urlParams_   gensupport.URLParams
83901	ifNoneMatch_ string
83902	ctx_         context.Context
83903	header_      http.Header
83904}
83905
83906// AggregatedList: Retrieves aggregated list of all of the instances in
83907// your project across all regions and zones.
83908// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/aggregatedList
83909func (r *InstancesService) AggregatedList(project string) *InstancesAggregatedListCall {
83910	c := &InstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83911	c.project = project
83912	return c
83913}
83914
83915// Filter sets the optional parameter "filter": A filter expression that
83916// filters resources listed in the response. The expression must specify
83917// the field name, a comparison operator, and the value that you want to
83918// use for filtering. The value must be a string, a number, or a
83919// boolean. The comparison operator must be either =, !=, >, or <.
83920//
83921// For example, if you are filtering Compute Engine instances, you can
83922// exclude instances named example-instance by specifying name !=
83923// example-instance.
83924//
83925// You can also filter nested fields. For example, you could specify
83926// scheduling.automaticRestart = false to include instances only if they
83927// are not scheduled for automatic restarts. You can use filtering on
83928// nested fields to filter based on resource labels.
83929//
83930// To filter on multiple expressions, provide each separate expression
83931// within parentheses. For example, (scheduling.automaticRestart = true)
83932// (cpuPlatform = "Intel Skylake"). By default, each expression is an
83933// AND expression. However, you can include AND and OR expressions
83934// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
83935// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
83936// true).
83937func (c *InstancesAggregatedListCall) Filter(filter string) *InstancesAggregatedListCall {
83938	c.urlParams_.Set("filter", filter)
83939	return c
83940}
83941
83942// IncludeAllScopes sets the optional parameter "includeAllScopes":
83943// Indicates whether every visible scope for each scope type (zone,
83944// region, global) should be included in the response. For new resource
83945// types added after this field, the flag has no effect as new resource
83946// types will always include every visible scope for each scope type in
83947// response. For resource types which predate this field, if this flag
83948// is omitted or false, only scopes of the scope types where the
83949// resource type is expected to be found will be included.
83950func (c *InstancesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstancesAggregatedListCall {
83951	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
83952	return c
83953}
83954
83955// MaxResults sets the optional parameter "maxResults": The maximum
83956// number of results per page that should be returned. If the number of
83957// available results is larger than maxResults, Compute Engine returns a
83958// nextPageToken that can be used to get the next page of results in
83959// subsequent list requests. Acceptable values are 0 to 500, inclusive.
83960// (Default: 500)
83961func (c *InstancesAggregatedListCall) MaxResults(maxResults int64) *InstancesAggregatedListCall {
83962	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
83963	return c
83964}
83965
83966// OrderBy sets the optional parameter "orderBy": Sorts list results by
83967// a certain order. By default, results are returned in alphanumerical
83968// order based on the resource name.
83969//
83970// You can also sort results in descending order based on the creation
83971// timestamp using orderBy="creationTimestamp desc". This sorts results
83972// based on the creationTimestamp field in reverse chronological order
83973// (newest result first). Use this to sort resources like operations so
83974// that the newest operation is returned first.
83975//
83976// Currently, only sorting by name or creationTimestamp desc is
83977// supported.
83978func (c *InstancesAggregatedListCall) OrderBy(orderBy string) *InstancesAggregatedListCall {
83979	c.urlParams_.Set("orderBy", orderBy)
83980	return c
83981}
83982
83983// PageToken sets the optional parameter "pageToken": Specifies a page
83984// token to use. Set pageToken to the nextPageToken returned by a
83985// previous list request to get the next page of results.
83986func (c *InstancesAggregatedListCall) PageToken(pageToken string) *InstancesAggregatedListCall {
83987	c.urlParams_.Set("pageToken", pageToken)
83988	return c
83989}
83990
83991// Fields allows partial responses to be retrieved. See
83992// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83993// for more information.
83994func (c *InstancesAggregatedListCall) Fields(s ...googleapi.Field) *InstancesAggregatedListCall {
83995	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83996	return c
83997}
83998
83999// IfNoneMatch sets the optional parameter which makes the operation
84000// fail if the object's ETag matches the given value. This is useful for
84001// getting updates only after the object has changed since the last
84002// request. Use googleapi.IsNotModified to check whether the response
84003// error from Do is the result of In-None-Match.
84004func (c *InstancesAggregatedListCall) IfNoneMatch(entityTag string) *InstancesAggregatedListCall {
84005	c.ifNoneMatch_ = entityTag
84006	return c
84007}
84008
84009// Context sets the context to be used in this call's Do method. Any
84010// pending HTTP request will be aborted if the provided context is
84011// canceled.
84012func (c *InstancesAggregatedListCall) Context(ctx context.Context) *InstancesAggregatedListCall {
84013	c.ctx_ = ctx
84014	return c
84015}
84016
84017// Header returns an http.Header that can be modified by the caller to
84018// add HTTP headers to the request.
84019func (c *InstancesAggregatedListCall) Header() http.Header {
84020	if c.header_ == nil {
84021		c.header_ = make(http.Header)
84022	}
84023	return c.header_
84024}
84025
84026func (c *InstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
84027	reqHeaders := make(http.Header)
84028	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
84029	for k, v := range c.header_ {
84030		reqHeaders[k] = v
84031	}
84032	reqHeaders.Set("User-Agent", c.s.userAgent())
84033	if c.ifNoneMatch_ != "" {
84034		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
84035	}
84036	var body io.Reader = nil
84037	c.urlParams_.Set("alt", alt)
84038	c.urlParams_.Set("prettyPrint", "false")
84039	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/instances")
84040	urls += "?" + c.urlParams_.Encode()
84041	req, err := http.NewRequest("GET", urls, body)
84042	if err != nil {
84043		return nil, err
84044	}
84045	req.Header = reqHeaders
84046	googleapi.Expand(req.URL, map[string]string{
84047		"project": c.project,
84048	})
84049	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84050}
84051
84052// Do executes the "compute.instances.aggregatedList" call.
84053// Exactly one of *InstanceAggregatedList or error will be non-nil. Any
84054// non-2xx status code is an error. Response headers are in either
84055// *InstanceAggregatedList.ServerResponse.Header or (if a response was
84056// returned at all) in error.(*googleapi.Error).Header. Use
84057// googleapi.IsNotModified to check whether the returned error was
84058// because http.StatusNotModified was returned.
84059func (c *InstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceAggregatedList, error) {
84060	gensupport.SetOptions(c.urlParams_, opts...)
84061	res, err := c.doRequest("json")
84062	if res != nil && res.StatusCode == http.StatusNotModified {
84063		if res.Body != nil {
84064			res.Body.Close()
84065		}
84066		return nil, &googleapi.Error{
84067			Code:   res.StatusCode,
84068			Header: res.Header,
84069		}
84070	}
84071	if err != nil {
84072		return nil, err
84073	}
84074	defer googleapi.CloseBody(res)
84075	if err := googleapi.CheckResponse(res); err != nil {
84076		return nil, err
84077	}
84078	ret := &InstanceAggregatedList{
84079		ServerResponse: googleapi.ServerResponse{
84080			Header:         res.Header,
84081			HTTPStatusCode: res.StatusCode,
84082		},
84083	}
84084	target := &ret
84085	if err := gensupport.DecodeResponse(target, res); err != nil {
84086		return nil, err
84087	}
84088	return ret, nil
84089	// {
84090	//   "description": "Retrieves aggregated list of all of the instances in your project across all regions and zones.",
84091	//   "httpMethod": "GET",
84092	//   "id": "compute.instances.aggregatedList",
84093	//   "parameterOrder": [
84094	//     "project"
84095	//   ],
84096	//   "parameters": {
84097	//     "filter": {
84098	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
84099	//       "location": "query",
84100	//       "type": "string"
84101	//     },
84102	//     "includeAllScopes": {
84103	//       "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.",
84104	//       "location": "query",
84105	//       "type": "boolean"
84106	//     },
84107	//     "maxResults": {
84108	//       "default": "500",
84109	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
84110	//       "format": "uint32",
84111	//       "location": "query",
84112	//       "minimum": "0",
84113	//       "type": "integer"
84114	//     },
84115	//     "orderBy": {
84116	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
84117	//       "location": "query",
84118	//       "type": "string"
84119	//     },
84120	//     "pageToken": {
84121	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
84122	//       "location": "query",
84123	//       "type": "string"
84124	//     },
84125	//     "project": {
84126	//       "description": "Project ID for this request.",
84127	//       "location": "path",
84128	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84129	//       "required": true,
84130	//       "type": "string"
84131	//     }
84132	//   },
84133	//   "path": "{project}/aggregated/instances",
84134	//   "response": {
84135	//     "$ref": "InstanceAggregatedList"
84136	//   },
84137	//   "scopes": [
84138	//     "https://www.googleapis.com/auth/cloud-platform",
84139	//     "https://www.googleapis.com/auth/compute",
84140	//     "https://www.googleapis.com/auth/compute.readonly"
84141	//   ]
84142	// }
84143
84144}
84145
84146// Pages invokes f for each page of results.
84147// A non-nil error returned from f will halt the iteration.
84148// The provided context supersedes any context provided to the Context method.
84149func (c *InstancesAggregatedListCall) Pages(ctx context.Context, f func(*InstanceAggregatedList) error) error {
84150	c.ctx_ = ctx
84151	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
84152	for {
84153		x, err := c.Do()
84154		if err != nil {
84155			return err
84156		}
84157		if err := f(x); err != nil {
84158			return err
84159		}
84160		if x.NextPageToken == "" {
84161			return nil
84162		}
84163		c.PageToken(x.NextPageToken)
84164	}
84165}
84166
84167// method id "compute.instances.attachDisk":
84168
84169type InstancesAttachDiskCall struct {
84170	s            *Service
84171	project      string
84172	zone         string
84173	instance     string
84174	attacheddisk *AttachedDisk
84175	urlParams_   gensupport.URLParams
84176	ctx_         context.Context
84177	header_      http.Header
84178}
84179
84180// AttachDisk: Attaches an existing Disk resource to an instance. You
84181// must first create the disk before you can attach it. It is not
84182// possible to create and attach a disk at the same time. For more
84183// information, read Adding a persistent disk to your instance.
84184// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/attachDisk
84185func (r *InstancesService) AttachDisk(project string, zone string, instance string, attacheddisk *AttachedDisk) *InstancesAttachDiskCall {
84186	c := &InstancesAttachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84187	c.project = project
84188	c.zone = zone
84189	c.instance = instance
84190	c.attacheddisk = attacheddisk
84191	return c
84192}
84193
84194// ForceAttach sets the optional parameter "forceAttach": Whether to
84195// force attach the disk even if it's currently attached to another
84196// instance.
84197func (c *InstancesAttachDiskCall) ForceAttach(forceAttach bool) *InstancesAttachDiskCall {
84198	c.urlParams_.Set("forceAttach", fmt.Sprint(forceAttach))
84199	return c
84200}
84201
84202// RequestId sets the optional parameter "requestId": An optional
84203// request ID to identify requests. Specify a unique request ID so that
84204// if you must retry your request, the server will know to ignore the
84205// request if it has already been completed.
84206//
84207// For example, consider a situation where you make an initial request
84208// and the request times out. If you make the request again with the
84209// same request ID, the server can check if original operation with the
84210// same request ID was received, and if so, will ignore the second
84211// request. This prevents clients from accidentally creating duplicate
84212// commitments.
84213//
84214// The request ID must be a valid UUID with the exception that zero UUID
84215// is not supported (00000000-0000-0000-0000-000000000000).
84216func (c *InstancesAttachDiskCall) RequestId(requestId string) *InstancesAttachDiskCall {
84217	c.urlParams_.Set("requestId", requestId)
84218	return c
84219}
84220
84221// Fields allows partial responses to be retrieved. See
84222// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84223// for more information.
84224func (c *InstancesAttachDiskCall) Fields(s ...googleapi.Field) *InstancesAttachDiskCall {
84225	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84226	return c
84227}
84228
84229// Context sets the context to be used in this call's Do method. Any
84230// pending HTTP request will be aborted if the provided context is
84231// canceled.
84232func (c *InstancesAttachDiskCall) Context(ctx context.Context) *InstancesAttachDiskCall {
84233	c.ctx_ = ctx
84234	return c
84235}
84236
84237// Header returns an http.Header that can be modified by the caller to
84238// add HTTP headers to the request.
84239func (c *InstancesAttachDiskCall) Header() http.Header {
84240	if c.header_ == nil {
84241		c.header_ = make(http.Header)
84242	}
84243	return c.header_
84244}
84245
84246func (c *InstancesAttachDiskCall) doRequest(alt string) (*http.Response, error) {
84247	reqHeaders := make(http.Header)
84248	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
84249	for k, v := range c.header_ {
84250		reqHeaders[k] = v
84251	}
84252	reqHeaders.Set("User-Agent", c.s.userAgent())
84253	var body io.Reader = nil
84254	body, err := googleapi.WithoutDataWrapper.JSONReader(c.attacheddisk)
84255	if err != nil {
84256		return nil, err
84257	}
84258	reqHeaders.Set("Content-Type", "application/json")
84259	c.urlParams_.Set("alt", alt)
84260	c.urlParams_.Set("prettyPrint", "false")
84261	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/attachDisk")
84262	urls += "?" + c.urlParams_.Encode()
84263	req, err := http.NewRequest("POST", urls, body)
84264	if err != nil {
84265		return nil, err
84266	}
84267	req.Header = reqHeaders
84268	googleapi.Expand(req.URL, map[string]string{
84269		"project":  c.project,
84270		"zone":     c.zone,
84271		"instance": c.instance,
84272	})
84273	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84274}
84275
84276// Do executes the "compute.instances.attachDisk" call.
84277// Exactly one of *Operation or error will be non-nil. Any non-2xx
84278// status code is an error. Response headers are in either
84279// *Operation.ServerResponse.Header or (if a response was returned at
84280// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84281// to check whether the returned error was because
84282// http.StatusNotModified was returned.
84283func (c *InstancesAttachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84284	gensupport.SetOptions(c.urlParams_, opts...)
84285	res, err := c.doRequest("json")
84286	if res != nil && res.StatusCode == http.StatusNotModified {
84287		if res.Body != nil {
84288			res.Body.Close()
84289		}
84290		return nil, &googleapi.Error{
84291			Code:   res.StatusCode,
84292			Header: res.Header,
84293		}
84294	}
84295	if err != nil {
84296		return nil, err
84297	}
84298	defer googleapi.CloseBody(res)
84299	if err := googleapi.CheckResponse(res); err != nil {
84300		return nil, err
84301	}
84302	ret := &Operation{
84303		ServerResponse: googleapi.ServerResponse{
84304			Header:         res.Header,
84305			HTTPStatusCode: res.StatusCode,
84306		},
84307	}
84308	target := &ret
84309	if err := gensupport.DecodeResponse(target, res); err != nil {
84310		return nil, err
84311	}
84312	return ret, nil
84313	// {
84314	//   "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.",
84315	//   "httpMethod": "POST",
84316	//   "id": "compute.instances.attachDisk",
84317	//   "parameterOrder": [
84318	//     "project",
84319	//     "zone",
84320	//     "instance"
84321	//   ],
84322	//   "parameters": {
84323	//     "forceAttach": {
84324	//       "description": "Whether to force attach the disk even if it's currently attached to another instance.",
84325	//       "location": "query",
84326	//       "type": "boolean"
84327	//     },
84328	//     "instance": {
84329	//       "description": "The instance name for this request.",
84330	//       "location": "path",
84331	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
84332	//       "required": true,
84333	//       "type": "string"
84334	//     },
84335	//     "project": {
84336	//       "description": "Project ID for this request.",
84337	//       "location": "path",
84338	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84339	//       "required": true,
84340	//       "type": "string"
84341	//     },
84342	//     "requestId": {
84343	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84344	//       "location": "query",
84345	//       "type": "string"
84346	//     },
84347	//     "zone": {
84348	//       "description": "The name of the zone for this request.",
84349	//       "location": "path",
84350	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84351	//       "required": true,
84352	//       "type": "string"
84353	//     }
84354	//   },
84355	//   "path": "{project}/zones/{zone}/instances/{instance}/attachDisk",
84356	//   "request": {
84357	//     "$ref": "AttachedDisk"
84358	//   },
84359	//   "response": {
84360	//     "$ref": "Operation"
84361	//   },
84362	//   "scopes": [
84363	//     "https://www.googleapis.com/auth/cloud-platform",
84364	//     "https://www.googleapis.com/auth/compute"
84365	//   ]
84366	// }
84367
84368}
84369
84370// method id "compute.instances.delete":
84371
84372type InstancesDeleteCall struct {
84373	s          *Service
84374	project    string
84375	zone       string
84376	instance   string
84377	urlParams_ gensupport.URLParams
84378	ctx_       context.Context
84379	header_    http.Header
84380}
84381
84382// Delete: Deletes the specified Instance resource. For more
84383// information, see Stopping or Deleting an Instance.
84384// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/delete
84385func (r *InstancesService) Delete(project string, zone string, instance string) *InstancesDeleteCall {
84386	c := &InstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84387	c.project = project
84388	c.zone = zone
84389	c.instance = instance
84390	return c
84391}
84392
84393// RequestId sets the optional parameter "requestId": An optional
84394// request ID to identify requests. Specify a unique request ID so that
84395// if you must retry your request, the server will know to ignore the
84396// request if it has already been completed.
84397//
84398// For example, consider a situation where you make an initial request
84399// and the request times out. If you make the request again with the
84400// same request ID, the server can check if original operation with the
84401// same request ID was received, and if so, will ignore the second
84402// request. This prevents clients from accidentally creating duplicate
84403// commitments.
84404//
84405// The request ID must be a valid UUID with the exception that zero UUID
84406// is not supported (00000000-0000-0000-0000-000000000000).
84407func (c *InstancesDeleteCall) RequestId(requestId string) *InstancesDeleteCall {
84408	c.urlParams_.Set("requestId", requestId)
84409	return c
84410}
84411
84412// Fields allows partial responses to be retrieved. See
84413// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84414// for more information.
84415func (c *InstancesDeleteCall) Fields(s ...googleapi.Field) *InstancesDeleteCall {
84416	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84417	return c
84418}
84419
84420// Context sets the context to be used in this call's Do method. Any
84421// pending HTTP request will be aborted if the provided context is
84422// canceled.
84423func (c *InstancesDeleteCall) Context(ctx context.Context) *InstancesDeleteCall {
84424	c.ctx_ = ctx
84425	return c
84426}
84427
84428// Header returns an http.Header that can be modified by the caller to
84429// add HTTP headers to the request.
84430func (c *InstancesDeleteCall) Header() http.Header {
84431	if c.header_ == nil {
84432		c.header_ = make(http.Header)
84433	}
84434	return c.header_
84435}
84436
84437func (c *InstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
84438	reqHeaders := make(http.Header)
84439	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
84440	for k, v := range c.header_ {
84441		reqHeaders[k] = v
84442	}
84443	reqHeaders.Set("User-Agent", c.s.userAgent())
84444	var body io.Reader = nil
84445	c.urlParams_.Set("alt", alt)
84446	c.urlParams_.Set("prettyPrint", "false")
84447	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}")
84448	urls += "?" + c.urlParams_.Encode()
84449	req, err := http.NewRequest("DELETE", urls, body)
84450	if err != nil {
84451		return nil, err
84452	}
84453	req.Header = reqHeaders
84454	googleapi.Expand(req.URL, map[string]string{
84455		"project":  c.project,
84456		"zone":     c.zone,
84457		"instance": c.instance,
84458	})
84459	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84460}
84461
84462// Do executes the "compute.instances.delete" call.
84463// Exactly one of *Operation or error will be non-nil. Any non-2xx
84464// status code is an error. Response headers are in either
84465// *Operation.ServerResponse.Header or (if a response was returned at
84466// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84467// to check whether the returned error was because
84468// http.StatusNotModified was returned.
84469func (c *InstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84470	gensupport.SetOptions(c.urlParams_, opts...)
84471	res, err := c.doRequest("json")
84472	if res != nil && res.StatusCode == http.StatusNotModified {
84473		if res.Body != nil {
84474			res.Body.Close()
84475		}
84476		return nil, &googleapi.Error{
84477			Code:   res.StatusCode,
84478			Header: res.Header,
84479		}
84480	}
84481	if err != nil {
84482		return nil, err
84483	}
84484	defer googleapi.CloseBody(res)
84485	if err := googleapi.CheckResponse(res); err != nil {
84486		return nil, err
84487	}
84488	ret := &Operation{
84489		ServerResponse: googleapi.ServerResponse{
84490			Header:         res.Header,
84491			HTTPStatusCode: res.StatusCode,
84492		},
84493	}
84494	target := &ret
84495	if err := gensupport.DecodeResponse(target, res); err != nil {
84496		return nil, err
84497	}
84498	return ret, nil
84499	// {
84500	//   "description": "Deletes the specified Instance resource. For more information, see Stopping or Deleting an Instance.",
84501	//   "httpMethod": "DELETE",
84502	//   "id": "compute.instances.delete",
84503	//   "parameterOrder": [
84504	//     "project",
84505	//     "zone",
84506	//     "instance"
84507	//   ],
84508	//   "parameters": {
84509	//     "instance": {
84510	//       "description": "Name of the instance resource to delete.",
84511	//       "location": "path",
84512	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
84513	//       "required": true,
84514	//       "type": "string"
84515	//     },
84516	//     "project": {
84517	//       "description": "Project ID for this request.",
84518	//       "location": "path",
84519	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84520	//       "required": true,
84521	//       "type": "string"
84522	//     },
84523	//     "requestId": {
84524	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84525	//       "location": "query",
84526	//       "type": "string"
84527	//     },
84528	//     "zone": {
84529	//       "description": "The name of the zone for this request.",
84530	//       "location": "path",
84531	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84532	//       "required": true,
84533	//       "type": "string"
84534	//     }
84535	//   },
84536	//   "path": "{project}/zones/{zone}/instances/{instance}",
84537	//   "response": {
84538	//     "$ref": "Operation"
84539	//   },
84540	//   "scopes": [
84541	//     "https://www.googleapis.com/auth/cloud-platform",
84542	//     "https://www.googleapis.com/auth/compute"
84543	//   ]
84544	// }
84545
84546}
84547
84548// method id "compute.instances.deleteAccessConfig":
84549
84550type InstancesDeleteAccessConfigCall struct {
84551	s          *Service
84552	project    string
84553	zone       string
84554	instance   string
84555	urlParams_ gensupport.URLParams
84556	ctx_       context.Context
84557	header_    http.Header
84558}
84559
84560// DeleteAccessConfig: Deletes an access config from an instance's
84561// network interface.
84562// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/deleteAccessConfig
84563func (r *InstancesService) DeleteAccessConfig(project string, zone string, instance string, accessConfig string, networkInterface string) *InstancesDeleteAccessConfigCall {
84564	c := &InstancesDeleteAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84565	c.project = project
84566	c.zone = zone
84567	c.instance = instance
84568	c.urlParams_.Set("accessConfig", accessConfig)
84569	c.urlParams_.Set("networkInterface", networkInterface)
84570	return c
84571}
84572
84573// RequestId sets the optional parameter "requestId": An optional
84574// request ID to identify requests. Specify a unique request ID so that
84575// if you must retry your request, the server will know to ignore the
84576// request if it has already been completed.
84577//
84578// For example, consider a situation where you make an initial request
84579// and the request times out. If you make the request again with the
84580// same request ID, the server can check if original operation with the
84581// same request ID was received, and if so, will ignore the second
84582// request. This prevents clients from accidentally creating duplicate
84583// commitments.
84584//
84585// The request ID must be a valid UUID with the exception that zero UUID
84586// is not supported (00000000-0000-0000-0000-000000000000).
84587func (c *InstancesDeleteAccessConfigCall) RequestId(requestId string) *InstancesDeleteAccessConfigCall {
84588	c.urlParams_.Set("requestId", requestId)
84589	return c
84590}
84591
84592// Fields allows partial responses to be retrieved. See
84593// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84594// for more information.
84595func (c *InstancesDeleteAccessConfigCall) Fields(s ...googleapi.Field) *InstancesDeleteAccessConfigCall {
84596	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84597	return c
84598}
84599
84600// Context sets the context to be used in this call's Do method. Any
84601// pending HTTP request will be aborted if the provided context is
84602// canceled.
84603func (c *InstancesDeleteAccessConfigCall) Context(ctx context.Context) *InstancesDeleteAccessConfigCall {
84604	c.ctx_ = ctx
84605	return c
84606}
84607
84608// Header returns an http.Header that can be modified by the caller to
84609// add HTTP headers to the request.
84610func (c *InstancesDeleteAccessConfigCall) Header() http.Header {
84611	if c.header_ == nil {
84612		c.header_ = make(http.Header)
84613	}
84614	return c.header_
84615}
84616
84617func (c *InstancesDeleteAccessConfigCall) doRequest(alt string) (*http.Response, error) {
84618	reqHeaders := make(http.Header)
84619	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
84620	for k, v := range c.header_ {
84621		reqHeaders[k] = v
84622	}
84623	reqHeaders.Set("User-Agent", c.s.userAgent())
84624	var body io.Reader = nil
84625	c.urlParams_.Set("alt", alt)
84626	c.urlParams_.Set("prettyPrint", "false")
84627	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/deleteAccessConfig")
84628	urls += "?" + c.urlParams_.Encode()
84629	req, err := http.NewRequest("POST", urls, body)
84630	if err != nil {
84631		return nil, err
84632	}
84633	req.Header = reqHeaders
84634	googleapi.Expand(req.URL, map[string]string{
84635		"project":  c.project,
84636		"zone":     c.zone,
84637		"instance": c.instance,
84638	})
84639	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84640}
84641
84642// Do executes the "compute.instances.deleteAccessConfig" call.
84643// Exactly one of *Operation or error will be non-nil. Any non-2xx
84644// status code is an error. Response headers are in either
84645// *Operation.ServerResponse.Header or (if a response was returned at
84646// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84647// to check whether the returned error was because
84648// http.StatusNotModified was returned.
84649func (c *InstancesDeleteAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84650	gensupport.SetOptions(c.urlParams_, opts...)
84651	res, err := c.doRequest("json")
84652	if res != nil && res.StatusCode == http.StatusNotModified {
84653		if res.Body != nil {
84654			res.Body.Close()
84655		}
84656		return nil, &googleapi.Error{
84657			Code:   res.StatusCode,
84658			Header: res.Header,
84659		}
84660	}
84661	if err != nil {
84662		return nil, err
84663	}
84664	defer googleapi.CloseBody(res)
84665	if err := googleapi.CheckResponse(res); err != nil {
84666		return nil, err
84667	}
84668	ret := &Operation{
84669		ServerResponse: googleapi.ServerResponse{
84670			Header:         res.Header,
84671			HTTPStatusCode: res.StatusCode,
84672		},
84673	}
84674	target := &ret
84675	if err := gensupport.DecodeResponse(target, res); err != nil {
84676		return nil, err
84677	}
84678	return ret, nil
84679	// {
84680	//   "description": "Deletes an access config from an instance's network interface.",
84681	//   "httpMethod": "POST",
84682	//   "id": "compute.instances.deleteAccessConfig",
84683	//   "parameterOrder": [
84684	//     "project",
84685	//     "zone",
84686	//     "instance",
84687	//     "accessConfig",
84688	//     "networkInterface"
84689	//   ],
84690	//   "parameters": {
84691	//     "accessConfig": {
84692	//       "description": "The name of the access config to delete.",
84693	//       "location": "query",
84694	//       "required": true,
84695	//       "type": "string"
84696	//     },
84697	//     "instance": {
84698	//       "description": "The instance name for this request.",
84699	//       "location": "path",
84700	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
84701	//       "required": true,
84702	//       "type": "string"
84703	//     },
84704	//     "networkInterface": {
84705	//       "description": "The name of the network interface.",
84706	//       "location": "query",
84707	//       "required": true,
84708	//       "type": "string"
84709	//     },
84710	//     "project": {
84711	//       "description": "Project ID for this request.",
84712	//       "location": "path",
84713	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84714	//       "required": true,
84715	//       "type": "string"
84716	//     },
84717	//     "requestId": {
84718	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84719	//       "location": "query",
84720	//       "type": "string"
84721	//     },
84722	//     "zone": {
84723	//       "description": "The name of the zone for this request.",
84724	//       "location": "path",
84725	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84726	//       "required": true,
84727	//       "type": "string"
84728	//     }
84729	//   },
84730	//   "path": "{project}/zones/{zone}/instances/{instance}/deleteAccessConfig",
84731	//   "response": {
84732	//     "$ref": "Operation"
84733	//   },
84734	//   "scopes": [
84735	//     "https://www.googleapis.com/auth/cloud-platform",
84736	//     "https://www.googleapis.com/auth/compute"
84737	//   ]
84738	// }
84739
84740}
84741
84742// method id "compute.instances.detachDisk":
84743
84744type InstancesDetachDiskCall struct {
84745	s          *Service
84746	project    string
84747	zone       string
84748	instance   string
84749	urlParams_ gensupport.URLParams
84750	ctx_       context.Context
84751	header_    http.Header
84752}
84753
84754// DetachDisk: Detaches a disk from an instance.
84755// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/detachDisk
84756func (r *InstancesService) DetachDisk(project string, zone string, instance string, deviceName string) *InstancesDetachDiskCall {
84757	c := &InstancesDetachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84758	c.project = project
84759	c.zone = zone
84760	c.instance = instance
84761	c.urlParams_.Set("deviceName", deviceName)
84762	return c
84763}
84764
84765// RequestId sets the optional parameter "requestId": An optional
84766// request ID to identify requests. Specify a unique request ID so that
84767// if you must retry your request, the server will know to ignore the
84768// request if it has already been completed.
84769//
84770// For example, consider a situation where you make an initial request
84771// and the request times out. If you make the request again with the
84772// same request ID, the server can check if original operation with the
84773// same request ID was received, and if so, will ignore the second
84774// request. This prevents clients from accidentally creating duplicate
84775// commitments.
84776//
84777// The request ID must be a valid UUID with the exception that zero UUID
84778// is not supported (00000000-0000-0000-0000-000000000000).
84779func (c *InstancesDetachDiskCall) RequestId(requestId string) *InstancesDetachDiskCall {
84780	c.urlParams_.Set("requestId", requestId)
84781	return c
84782}
84783
84784// Fields allows partial responses to be retrieved. See
84785// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84786// for more information.
84787func (c *InstancesDetachDiskCall) Fields(s ...googleapi.Field) *InstancesDetachDiskCall {
84788	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84789	return c
84790}
84791
84792// Context sets the context to be used in this call's Do method. Any
84793// pending HTTP request will be aborted if the provided context is
84794// canceled.
84795func (c *InstancesDetachDiskCall) Context(ctx context.Context) *InstancesDetachDiskCall {
84796	c.ctx_ = ctx
84797	return c
84798}
84799
84800// Header returns an http.Header that can be modified by the caller to
84801// add HTTP headers to the request.
84802func (c *InstancesDetachDiskCall) Header() http.Header {
84803	if c.header_ == nil {
84804		c.header_ = make(http.Header)
84805	}
84806	return c.header_
84807}
84808
84809func (c *InstancesDetachDiskCall) doRequest(alt string) (*http.Response, error) {
84810	reqHeaders := make(http.Header)
84811	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
84812	for k, v := range c.header_ {
84813		reqHeaders[k] = v
84814	}
84815	reqHeaders.Set("User-Agent", c.s.userAgent())
84816	var body io.Reader = nil
84817	c.urlParams_.Set("alt", alt)
84818	c.urlParams_.Set("prettyPrint", "false")
84819	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/detachDisk")
84820	urls += "?" + c.urlParams_.Encode()
84821	req, err := http.NewRequest("POST", urls, body)
84822	if err != nil {
84823		return nil, err
84824	}
84825	req.Header = reqHeaders
84826	googleapi.Expand(req.URL, map[string]string{
84827		"project":  c.project,
84828		"zone":     c.zone,
84829		"instance": c.instance,
84830	})
84831	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84832}
84833
84834// Do executes the "compute.instances.detachDisk" call.
84835// Exactly one of *Operation or error will be non-nil. Any non-2xx
84836// status code is an error. Response headers are in either
84837// *Operation.ServerResponse.Header or (if a response was returned at
84838// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84839// to check whether the returned error was because
84840// http.StatusNotModified was returned.
84841func (c *InstancesDetachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84842	gensupport.SetOptions(c.urlParams_, opts...)
84843	res, err := c.doRequest("json")
84844	if res != nil && res.StatusCode == http.StatusNotModified {
84845		if res.Body != nil {
84846			res.Body.Close()
84847		}
84848		return nil, &googleapi.Error{
84849			Code:   res.StatusCode,
84850			Header: res.Header,
84851		}
84852	}
84853	if err != nil {
84854		return nil, err
84855	}
84856	defer googleapi.CloseBody(res)
84857	if err := googleapi.CheckResponse(res); err != nil {
84858		return nil, err
84859	}
84860	ret := &Operation{
84861		ServerResponse: googleapi.ServerResponse{
84862			Header:         res.Header,
84863			HTTPStatusCode: res.StatusCode,
84864		},
84865	}
84866	target := &ret
84867	if err := gensupport.DecodeResponse(target, res); err != nil {
84868		return nil, err
84869	}
84870	return ret, nil
84871	// {
84872	//   "description": "Detaches a disk from an instance.",
84873	//   "httpMethod": "POST",
84874	//   "id": "compute.instances.detachDisk",
84875	//   "parameterOrder": [
84876	//     "project",
84877	//     "zone",
84878	//     "instance",
84879	//     "deviceName"
84880	//   ],
84881	//   "parameters": {
84882	//     "deviceName": {
84883	//       "description": "The device name of the disk to detach. Make a get() request on the instance to view currently attached disks and device names.",
84884	//       "location": "query",
84885	//       "required": true,
84886	//       "type": "string"
84887	//     },
84888	//     "instance": {
84889	//       "description": "Instance name for this request.",
84890	//       "location": "path",
84891	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
84892	//       "required": true,
84893	//       "type": "string"
84894	//     },
84895	//     "project": {
84896	//       "description": "Project ID for this request.",
84897	//       "location": "path",
84898	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84899	//       "required": true,
84900	//       "type": "string"
84901	//     },
84902	//     "requestId": {
84903	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84904	//       "location": "query",
84905	//       "type": "string"
84906	//     },
84907	//     "zone": {
84908	//       "description": "The name of the zone for this request.",
84909	//       "location": "path",
84910	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84911	//       "required": true,
84912	//       "type": "string"
84913	//     }
84914	//   },
84915	//   "path": "{project}/zones/{zone}/instances/{instance}/detachDisk",
84916	//   "response": {
84917	//     "$ref": "Operation"
84918	//   },
84919	//   "scopes": [
84920	//     "https://www.googleapis.com/auth/cloud-platform",
84921	//     "https://www.googleapis.com/auth/compute"
84922	//   ]
84923	// }
84924
84925}
84926
84927// method id "compute.instances.get":
84928
84929type InstancesGetCall struct {
84930	s            *Service
84931	project      string
84932	zone         string
84933	instance     string
84934	urlParams_   gensupport.URLParams
84935	ifNoneMatch_ string
84936	ctx_         context.Context
84937	header_      http.Header
84938}
84939
84940// Get: Returns the specified Instance resource. Gets a list of
84941// available instances by making a list() request.
84942// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/get
84943func (r *InstancesService) Get(project string, zone string, instance string) *InstancesGetCall {
84944	c := &InstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84945	c.project = project
84946	c.zone = zone
84947	c.instance = instance
84948	return c
84949}
84950
84951// Fields allows partial responses to be retrieved. See
84952// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84953// for more information.
84954func (c *InstancesGetCall) Fields(s ...googleapi.Field) *InstancesGetCall {
84955	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84956	return c
84957}
84958
84959// IfNoneMatch sets the optional parameter which makes the operation
84960// fail if the object's ETag matches the given value. This is useful for
84961// getting updates only after the object has changed since the last
84962// request. Use googleapi.IsNotModified to check whether the response
84963// error from Do is the result of In-None-Match.
84964func (c *InstancesGetCall) IfNoneMatch(entityTag string) *InstancesGetCall {
84965	c.ifNoneMatch_ = entityTag
84966	return c
84967}
84968
84969// Context sets the context to be used in this call's Do method. Any
84970// pending HTTP request will be aborted if the provided context is
84971// canceled.
84972func (c *InstancesGetCall) Context(ctx context.Context) *InstancesGetCall {
84973	c.ctx_ = ctx
84974	return c
84975}
84976
84977// Header returns an http.Header that can be modified by the caller to
84978// add HTTP headers to the request.
84979func (c *InstancesGetCall) Header() http.Header {
84980	if c.header_ == nil {
84981		c.header_ = make(http.Header)
84982	}
84983	return c.header_
84984}
84985
84986func (c *InstancesGetCall) doRequest(alt string) (*http.Response, error) {
84987	reqHeaders := make(http.Header)
84988	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
84989	for k, v := range c.header_ {
84990		reqHeaders[k] = v
84991	}
84992	reqHeaders.Set("User-Agent", c.s.userAgent())
84993	if c.ifNoneMatch_ != "" {
84994		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
84995	}
84996	var body io.Reader = nil
84997	c.urlParams_.Set("alt", alt)
84998	c.urlParams_.Set("prettyPrint", "false")
84999	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}")
85000	urls += "?" + c.urlParams_.Encode()
85001	req, err := http.NewRequest("GET", urls, body)
85002	if err != nil {
85003		return nil, err
85004	}
85005	req.Header = reqHeaders
85006	googleapi.Expand(req.URL, map[string]string{
85007		"project":  c.project,
85008		"zone":     c.zone,
85009		"instance": c.instance,
85010	})
85011	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85012}
85013
85014// Do executes the "compute.instances.get" call.
85015// Exactly one of *Instance or error will be non-nil. Any non-2xx status
85016// code is an error. Response headers are in either
85017// *Instance.ServerResponse.Header or (if a response was returned at
85018// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
85019// to check whether the returned error was because
85020// http.StatusNotModified was returned.
85021func (c *InstancesGetCall) Do(opts ...googleapi.CallOption) (*Instance, error) {
85022	gensupport.SetOptions(c.urlParams_, opts...)
85023	res, err := c.doRequest("json")
85024	if res != nil && res.StatusCode == http.StatusNotModified {
85025		if res.Body != nil {
85026			res.Body.Close()
85027		}
85028		return nil, &googleapi.Error{
85029			Code:   res.StatusCode,
85030			Header: res.Header,
85031		}
85032	}
85033	if err != nil {
85034		return nil, err
85035	}
85036	defer googleapi.CloseBody(res)
85037	if err := googleapi.CheckResponse(res); err != nil {
85038		return nil, err
85039	}
85040	ret := &Instance{
85041		ServerResponse: googleapi.ServerResponse{
85042			Header:         res.Header,
85043			HTTPStatusCode: res.StatusCode,
85044		},
85045	}
85046	target := &ret
85047	if err := gensupport.DecodeResponse(target, res); err != nil {
85048		return nil, err
85049	}
85050	return ret, nil
85051	// {
85052	//   "description": "Returns the specified Instance resource. Gets a list of available instances by making a list() request.",
85053	//   "httpMethod": "GET",
85054	//   "id": "compute.instances.get",
85055	//   "parameterOrder": [
85056	//     "project",
85057	//     "zone",
85058	//     "instance"
85059	//   ],
85060	//   "parameters": {
85061	//     "instance": {
85062	//       "description": "Name of the instance resource to return.",
85063	//       "location": "path",
85064	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85065	//       "required": true,
85066	//       "type": "string"
85067	//     },
85068	//     "project": {
85069	//       "description": "Project ID for this request.",
85070	//       "location": "path",
85071	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85072	//       "required": true,
85073	//       "type": "string"
85074	//     },
85075	//     "zone": {
85076	//       "description": "The name of the zone for this request.",
85077	//       "location": "path",
85078	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85079	//       "required": true,
85080	//       "type": "string"
85081	//     }
85082	//   },
85083	//   "path": "{project}/zones/{zone}/instances/{instance}",
85084	//   "response": {
85085	//     "$ref": "Instance"
85086	//   },
85087	//   "scopes": [
85088	//     "https://www.googleapis.com/auth/cloud-platform",
85089	//     "https://www.googleapis.com/auth/compute",
85090	//     "https://www.googleapis.com/auth/compute.readonly"
85091	//   ]
85092	// }
85093
85094}
85095
85096// method id "compute.instances.getEffectiveFirewalls":
85097
85098type InstancesGetEffectiveFirewallsCall struct {
85099	s            *Service
85100	project      string
85101	zone         string
85102	instance     string
85103	urlParams_   gensupport.URLParams
85104	ifNoneMatch_ string
85105	ctx_         context.Context
85106	header_      http.Header
85107}
85108
85109// GetEffectiveFirewalls: Returns effective firewalls applied to an
85110// interface of the instance.
85111func (r *InstancesService) GetEffectiveFirewalls(project string, zone string, instance string, networkInterface string) *InstancesGetEffectiveFirewallsCall {
85112	c := &InstancesGetEffectiveFirewallsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85113	c.project = project
85114	c.zone = zone
85115	c.instance = instance
85116	c.urlParams_.Set("networkInterface", networkInterface)
85117	return c
85118}
85119
85120// Fields allows partial responses to be retrieved. See
85121// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85122// for more information.
85123func (c *InstancesGetEffectiveFirewallsCall) Fields(s ...googleapi.Field) *InstancesGetEffectiveFirewallsCall {
85124	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85125	return c
85126}
85127
85128// IfNoneMatch sets the optional parameter which makes the operation
85129// fail if the object's ETag matches the given value. This is useful for
85130// getting updates only after the object has changed since the last
85131// request. Use googleapi.IsNotModified to check whether the response
85132// error from Do is the result of In-None-Match.
85133func (c *InstancesGetEffectiveFirewallsCall) IfNoneMatch(entityTag string) *InstancesGetEffectiveFirewallsCall {
85134	c.ifNoneMatch_ = entityTag
85135	return c
85136}
85137
85138// Context sets the context to be used in this call's Do method. Any
85139// pending HTTP request will be aborted if the provided context is
85140// canceled.
85141func (c *InstancesGetEffectiveFirewallsCall) Context(ctx context.Context) *InstancesGetEffectiveFirewallsCall {
85142	c.ctx_ = ctx
85143	return c
85144}
85145
85146// Header returns an http.Header that can be modified by the caller to
85147// add HTTP headers to the request.
85148func (c *InstancesGetEffectiveFirewallsCall) Header() http.Header {
85149	if c.header_ == nil {
85150		c.header_ = make(http.Header)
85151	}
85152	return c.header_
85153}
85154
85155func (c *InstancesGetEffectiveFirewallsCall) doRequest(alt string) (*http.Response, error) {
85156	reqHeaders := make(http.Header)
85157	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
85158	for k, v := range c.header_ {
85159		reqHeaders[k] = v
85160	}
85161	reqHeaders.Set("User-Agent", c.s.userAgent())
85162	if c.ifNoneMatch_ != "" {
85163		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
85164	}
85165	var body io.Reader = nil
85166	c.urlParams_.Set("alt", alt)
85167	c.urlParams_.Set("prettyPrint", "false")
85168	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls")
85169	urls += "?" + c.urlParams_.Encode()
85170	req, err := http.NewRequest("GET", urls, body)
85171	if err != nil {
85172		return nil, err
85173	}
85174	req.Header = reqHeaders
85175	googleapi.Expand(req.URL, map[string]string{
85176		"project":  c.project,
85177		"zone":     c.zone,
85178		"instance": c.instance,
85179	})
85180	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85181}
85182
85183// Do executes the "compute.instances.getEffectiveFirewalls" call.
85184// Exactly one of *InstancesGetEffectiveFirewallsResponse or error will
85185// be non-nil. Any non-2xx status code is an error. Response headers are
85186// in either
85187// *InstancesGetEffectiveFirewallsResponse.ServerResponse.Header or (if
85188// a response was returned at all) in error.(*googleapi.Error).Header.
85189// Use googleapi.IsNotModified to check whether the returned error was
85190// because http.StatusNotModified was returned.
85191func (c *InstancesGetEffectiveFirewallsCall) Do(opts ...googleapi.CallOption) (*InstancesGetEffectiveFirewallsResponse, error) {
85192	gensupport.SetOptions(c.urlParams_, opts...)
85193	res, err := c.doRequest("json")
85194	if res != nil && res.StatusCode == http.StatusNotModified {
85195		if res.Body != nil {
85196			res.Body.Close()
85197		}
85198		return nil, &googleapi.Error{
85199			Code:   res.StatusCode,
85200			Header: res.Header,
85201		}
85202	}
85203	if err != nil {
85204		return nil, err
85205	}
85206	defer googleapi.CloseBody(res)
85207	if err := googleapi.CheckResponse(res); err != nil {
85208		return nil, err
85209	}
85210	ret := &InstancesGetEffectiveFirewallsResponse{
85211		ServerResponse: googleapi.ServerResponse{
85212			Header:         res.Header,
85213			HTTPStatusCode: res.StatusCode,
85214		},
85215	}
85216	target := &ret
85217	if err := gensupport.DecodeResponse(target, res); err != nil {
85218		return nil, err
85219	}
85220	return ret, nil
85221	// {
85222	//   "description": "Returns effective firewalls applied to an interface of the instance.",
85223	//   "httpMethod": "GET",
85224	//   "id": "compute.instances.getEffectiveFirewalls",
85225	//   "parameterOrder": [
85226	//     "project",
85227	//     "zone",
85228	//     "instance",
85229	//     "networkInterface"
85230	//   ],
85231	//   "parameters": {
85232	//     "instance": {
85233	//       "description": "Name of the instance scoping this request.",
85234	//       "location": "path",
85235	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85236	//       "required": true,
85237	//       "type": "string"
85238	//     },
85239	//     "networkInterface": {
85240	//       "description": "The name of the network interface to get the effective firewalls.",
85241	//       "location": "query",
85242	//       "required": true,
85243	//       "type": "string"
85244	//     },
85245	//     "project": {
85246	//       "description": "Project ID for this request.",
85247	//       "location": "path",
85248	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85249	//       "required": true,
85250	//       "type": "string"
85251	//     },
85252	//     "zone": {
85253	//       "description": "The name of the zone for this request.",
85254	//       "location": "path",
85255	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85256	//       "required": true,
85257	//       "type": "string"
85258	//     }
85259	//   },
85260	//   "path": "{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls",
85261	//   "response": {
85262	//     "$ref": "InstancesGetEffectiveFirewallsResponse"
85263	//   },
85264	//   "scopes": [
85265	//     "https://www.googleapis.com/auth/cloud-platform",
85266	//     "https://www.googleapis.com/auth/compute",
85267	//     "https://www.googleapis.com/auth/compute.readonly"
85268	//   ]
85269	// }
85270
85271}
85272
85273// method id "compute.instances.getGuestAttributes":
85274
85275type InstancesGetGuestAttributesCall struct {
85276	s            *Service
85277	project      string
85278	zone         string
85279	instance     string
85280	urlParams_   gensupport.URLParams
85281	ifNoneMatch_ string
85282	ctx_         context.Context
85283	header_      http.Header
85284}
85285
85286// GetGuestAttributes: Returns the specified guest attributes entry.
85287func (r *InstancesService) GetGuestAttributes(project string, zone string, instance string) *InstancesGetGuestAttributesCall {
85288	c := &InstancesGetGuestAttributesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85289	c.project = project
85290	c.zone = zone
85291	c.instance = instance
85292	return c
85293}
85294
85295// QueryPath sets the optional parameter "queryPath": Specifies the
85296// guest attributes path to be queried.
85297func (c *InstancesGetGuestAttributesCall) QueryPath(queryPath string) *InstancesGetGuestAttributesCall {
85298	c.urlParams_.Set("queryPath", queryPath)
85299	return c
85300}
85301
85302// VariableKey sets the optional parameter "variableKey": Specifies the
85303// key for the guest attributes entry.
85304func (c *InstancesGetGuestAttributesCall) VariableKey(variableKey string) *InstancesGetGuestAttributesCall {
85305	c.urlParams_.Set("variableKey", variableKey)
85306	return c
85307}
85308
85309// Fields allows partial responses to be retrieved. See
85310// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85311// for more information.
85312func (c *InstancesGetGuestAttributesCall) Fields(s ...googleapi.Field) *InstancesGetGuestAttributesCall {
85313	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85314	return c
85315}
85316
85317// IfNoneMatch sets the optional parameter which makes the operation
85318// fail if the object's ETag matches the given value. This is useful for
85319// getting updates only after the object has changed since the last
85320// request. Use googleapi.IsNotModified to check whether the response
85321// error from Do is the result of In-None-Match.
85322func (c *InstancesGetGuestAttributesCall) IfNoneMatch(entityTag string) *InstancesGetGuestAttributesCall {
85323	c.ifNoneMatch_ = entityTag
85324	return c
85325}
85326
85327// Context sets the context to be used in this call's Do method. Any
85328// pending HTTP request will be aborted if the provided context is
85329// canceled.
85330func (c *InstancesGetGuestAttributesCall) Context(ctx context.Context) *InstancesGetGuestAttributesCall {
85331	c.ctx_ = ctx
85332	return c
85333}
85334
85335// Header returns an http.Header that can be modified by the caller to
85336// add HTTP headers to the request.
85337func (c *InstancesGetGuestAttributesCall) Header() http.Header {
85338	if c.header_ == nil {
85339		c.header_ = make(http.Header)
85340	}
85341	return c.header_
85342}
85343
85344func (c *InstancesGetGuestAttributesCall) doRequest(alt string) (*http.Response, error) {
85345	reqHeaders := make(http.Header)
85346	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
85347	for k, v := range c.header_ {
85348		reqHeaders[k] = v
85349	}
85350	reqHeaders.Set("User-Agent", c.s.userAgent())
85351	if c.ifNoneMatch_ != "" {
85352		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
85353	}
85354	var body io.Reader = nil
85355	c.urlParams_.Set("alt", alt)
85356	c.urlParams_.Set("prettyPrint", "false")
85357	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/getGuestAttributes")
85358	urls += "?" + c.urlParams_.Encode()
85359	req, err := http.NewRequest("GET", urls, body)
85360	if err != nil {
85361		return nil, err
85362	}
85363	req.Header = reqHeaders
85364	googleapi.Expand(req.URL, map[string]string{
85365		"project":  c.project,
85366		"zone":     c.zone,
85367		"instance": c.instance,
85368	})
85369	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85370}
85371
85372// Do executes the "compute.instances.getGuestAttributes" call.
85373// Exactly one of *GuestAttributes or error will be non-nil. Any non-2xx
85374// status code is an error. Response headers are in either
85375// *GuestAttributes.ServerResponse.Header or (if a response was returned
85376// at all) in error.(*googleapi.Error).Header. Use
85377// googleapi.IsNotModified to check whether the returned error was
85378// because http.StatusNotModified was returned.
85379func (c *InstancesGetGuestAttributesCall) Do(opts ...googleapi.CallOption) (*GuestAttributes, error) {
85380	gensupport.SetOptions(c.urlParams_, opts...)
85381	res, err := c.doRequest("json")
85382	if res != nil && res.StatusCode == http.StatusNotModified {
85383		if res.Body != nil {
85384			res.Body.Close()
85385		}
85386		return nil, &googleapi.Error{
85387			Code:   res.StatusCode,
85388			Header: res.Header,
85389		}
85390	}
85391	if err != nil {
85392		return nil, err
85393	}
85394	defer googleapi.CloseBody(res)
85395	if err := googleapi.CheckResponse(res); err != nil {
85396		return nil, err
85397	}
85398	ret := &GuestAttributes{
85399		ServerResponse: googleapi.ServerResponse{
85400			Header:         res.Header,
85401			HTTPStatusCode: res.StatusCode,
85402		},
85403	}
85404	target := &ret
85405	if err := gensupport.DecodeResponse(target, res); err != nil {
85406		return nil, err
85407	}
85408	return ret, nil
85409	// {
85410	//   "description": "Returns the specified guest attributes entry.",
85411	//   "httpMethod": "GET",
85412	//   "id": "compute.instances.getGuestAttributes",
85413	//   "parameterOrder": [
85414	//     "project",
85415	//     "zone",
85416	//     "instance"
85417	//   ],
85418	//   "parameters": {
85419	//     "instance": {
85420	//       "description": "Name of the instance scoping this request.",
85421	//       "location": "path",
85422	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85423	//       "required": true,
85424	//       "type": "string"
85425	//     },
85426	//     "project": {
85427	//       "description": "Project ID for this request.",
85428	//       "location": "path",
85429	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85430	//       "required": true,
85431	//       "type": "string"
85432	//     },
85433	//     "queryPath": {
85434	//       "description": "Specifies the guest attributes path to be queried.",
85435	//       "location": "query",
85436	//       "type": "string"
85437	//     },
85438	//     "variableKey": {
85439	//       "description": "Specifies the key for the guest attributes entry.",
85440	//       "location": "query",
85441	//       "type": "string"
85442	//     },
85443	//     "zone": {
85444	//       "description": "The name of the zone for this request.",
85445	//       "location": "path",
85446	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85447	//       "required": true,
85448	//       "type": "string"
85449	//     }
85450	//   },
85451	//   "path": "{project}/zones/{zone}/instances/{instance}/getGuestAttributes",
85452	//   "response": {
85453	//     "$ref": "GuestAttributes"
85454	//   },
85455	//   "scopes": [
85456	//     "https://www.googleapis.com/auth/cloud-platform",
85457	//     "https://www.googleapis.com/auth/compute",
85458	//     "https://www.googleapis.com/auth/compute.readonly"
85459	//   ]
85460	// }
85461
85462}
85463
85464// method id "compute.instances.getIamPolicy":
85465
85466type InstancesGetIamPolicyCall struct {
85467	s            *Service
85468	project      string
85469	zone         string
85470	resource     string
85471	urlParams_   gensupport.URLParams
85472	ifNoneMatch_ string
85473	ctx_         context.Context
85474	header_      http.Header
85475}
85476
85477// GetIamPolicy: Gets the access control policy for a resource. May be
85478// empty if no such policy or resource exists.
85479func (r *InstancesService) GetIamPolicy(project string, zone string, resource string) *InstancesGetIamPolicyCall {
85480	c := &InstancesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85481	c.project = project
85482	c.zone = zone
85483	c.resource = resource
85484	return c
85485}
85486
85487// OptionsRequestedPolicyVersion sets the optional parameter
85488// "optionsRequestedPolicyVersion": Requested IAM Policy version.
85489func (c *InstancesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InstancesGetIamPolicyCall {
85490	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
85491	return c
85492}
85493
85494// Fields allows partial responses to be retrieved. See
85495// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85496// for more information.
85497func (c *InstancesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesGetIamPolicyCall {
85498	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85499	return c
85500}
85501
85502// IfNoneMatch sets the optional parameter which makes the operation
85503// fail if the object's ETag matches the given value. This is useful for
85504// getting updates only after the object has changed since the last
85505// request. Use googleapi.IsNotModified to check whether the response
85506// error from Do is the result of In-None-Match.
85507func (c *InstancesGetIamPolicyCall) IfNoneMatch(entityTag string) *InstancesGetIamPolicyCall {
85508	c.ifNoneMatch_ = entityTag
85509	return c
85510}
85511
85512// Context sets the context to be used in this call's Do method. Any
85513// pending HTTP request will be aborted if the provided context is
85514// canceled.
85515func (c *InstancesGetIamPolicyCall) Context(ctx context.Context) *InstancesGetIamPolicyCall {
85516	c.ctx_ = ctx
85517	return c
85518}
85519
85520// Header returns an http.Header that can be modified by the caller to
85521// add HTTP headers to the request.
85522func (c *InstancesGetIamPolicyCall) Header() http.Header {
85523	if c.header_ == nil {
85524		c.header_ = make(http.Header)
85525	}
85526	return c.header_
85527}
85528
85529func (c *InstancesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
85530	reqHeaders := make(http.Header)
85531	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
85532	for k, v := range c.header_ {
85533		reqHeaders[k] = v
85534	}
85535	reqHeaders.Set("User-Agent", c.s.userAgent())
85536	if c.ifNoneMatch_ != "" {
85537		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
85538	}
85539	var body io.Reader = nil
85540	c.urlParams_.Set("alt", alt)
85541	c.urlParams_.Set("prettyPrint", "false")
85542	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/getIamPolicy")
85543	urls += "?" + c.urlParams_.Encode()
85544	req, err := http.NewRequest("GET", urls, body)
85545	if err != nil {
85546		return nil, err
85547	}
85548	req.Header = reqHeaders
85549	googleapi.Expand(req.URL, map[string]string{
85550		"project":  c.project,
85551		"zone":     c.zone,
85552		"resource": c.resource,
85553	})
85554	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85555}
85556
85557// Do executes the "compute.instances.getIamPolicy" call.
85558// Exactly one of *Policy or error will be non-nil. Any non-2xx status
85559// code is an error. Response headers are in either
85560// *Policy.ServerResponse.Header or (if a response was returned at all)
85561// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
85562// check whether the returned error was because http.StatusNotModified
85563// was returned.
85564func (c *InstancesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
85565	gensupport.SetOptions(c.urlParams_, opts...)
85566	res, err := c.doRequest("json")
85567	if res != nil && res.StatusCode == http.StatusNotModified {
85568		if res.Body != nil {
85569			res.Body.Close()
85570		}
85571		return nil, &googleapi.Error{
85572			Code:   res.StatusCode,
85573			Header: res.Header,
85574		}
85575	}
85576	if err != nil {
85577		return nil, err
85578	}
85579	defer googleapi.CloseBody(res)
85580	if err := googleapi.CheckResponse(res); err != nil {
85581		return nil, err
85582	}
85583	ret := &Policy{
85584		ServerResponse: googleapi.ServerResponse{
85585			Header:         res.Header,
85586			HTTPStatusCode: res.StatusCode,
85587		},
85588	}
85589	target := &ret
85590	if err := gensupport.DecodeResponse(target, res); err != nil {
85591		return nil, err
85592	}
85593	return ret, nil
85594	// {
85595	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
85596	//   "httpMethod": "GET",
85597	//   "id": "compute.instances.getIamPolicy",
85598	//   "parameterOrder": [
85599	//     "project",
85600	//     "zone",
85601	//     "resource"
85602	//   ],
85603	//   "parameters": {
85604	//     "optionsRequestedPolicyVersion": {
85605	//       "description": "Requested IAM Policy version.",
85606	//       "format": "int32",
85607	//       "location": "query",
85608	//       "type": "integer"
85609	//     },
85610	//     "project": {
85611	//       "description": "Project ID for this request.",
85612	//       "location": "path",
85613	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85614	//       "required": true,
85615	//       "type": "string"
85616	//     },
85617	//     "resource": {
85618	//       "description": "Name or id of the resource for this request.",
85619	//       "location": "path",
85620	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85621	//       "required": true,
85622	//       "type": "string"
85623	//     },
85624	//     "zone": {
85625	//       "description": "The name of the zone for this request.",
85626	//       "location": "path",
85627	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85628	//       "required": true,
85629	//       "type": "string"
85630	//     }
85631	//   },
85632	//   "path": "{project}/zones/{zone}/instances/{resource}/getIamPolicy",
85633	//   "response": {
85634	//     "$ref": "Policy"
85635	//   },
85636	//   "scopes": [
85637	//     "https://www.googleapis.com/auth/cloud-platform",
85638	//     "https://www.googleapis.com/auth/compute",
85639	//     "https://www.googleapis.com/auth/compute.readonly"
85640	//   ]
85641	// }
85642
85643}
85644
85645// method id "compute.instances.getScreenshot":
85646
85647type InstancesGetScreenshotCall struct {
85648	s            *Service
85649	project      string
85650	zone         string
85651	instance     string
85652	urlParams_   gensupport.URLParams
85653	ifNoneMatch_ string
85654	ctx_         context.Context
85655	header_      http.Header
85656}
85657
85658// GetScreenshot: Returns the screenshot from the specified instance.
85659func (r *InstancesService) GetScreenshot(project string, zone string, instance string) *InstancesGetScreenshotCall {
85660	c := &InstancesGetScreenshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85661	c.project = project
85662	c.zone = zone
85663	c.instance = instance
85664	return c
85665}
85666
85667// Fields allows partial responses to be retrieved. See
85668// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85669// for more information.
85670func (c *InstancesGetScreenshotCall) Fields(s ...googleapi.Field) *InstancesGetScreenshotCall {
85671	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85672	return c
85673}
85674
85675// IfNoneMatch sets the optional parameter which makes the operation
85676// fail if the object's ETag matches the given value. This is useful for
85677// getting updates only after the object has changed since the last
85678// request. Use googleapi.IsNotModified to check whether the response
85679// error from Do is the result of In-None-Match.
85680func (c *InstancesGetScreenshotCall) IfNoneMatch(entityTag string) *InstancesGetScreenshotCall {
85681	c.ifNoneMatch_ = entityTag
85682	return c
85683}
85684
85685// Context sets the context to be used in this call's Do method. Any
85686// pending HTTP request will be aborted if the provided context is
85687// canceled.
85688func (c *InstancesGetScreenshotCall) Context(ctx context.Context) *InstancesGetScreenshotCall {
85689	c.ctx_ = ctx
85690	return c
85691}
85692
85693// Header returns an http.Header that can be modified by the caller to
85694// add HTTP headers to the request.
85695func (c *InstancesGetScreenshotCall) Header() http.Header {
85696	if c.header_ == nil {
85697		c.header_ = make(http.Header)
85698	}
85699	return c.header_
85700}
85701
85702func (c *InstancesGetScreenshotCall) doRequest(alt string) (*http.Response, error) {
85703	reqHeaders := make(http.Header)
85704	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
85705	for k, v := range c.header_ {
85706		reqHeaders[k] = v
85707	}
85708	reqHeaders.Set("User-Agent", c.s.userAgent())
85709	if c.ifNoneMatch_ != "" {
85710		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
85711	}
85712	var body io.Reader = nil
85713	c.urlParams_.Set("alt", alt)
85714	c.urlParams_.Set("prettyPrint", "false")
85715	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/screenshot")
85716	urls += "?" + c.urlParams_.Encode()
85717	req, err := http.NewRequest("GET", urls, body)
85718	if err != nil {
85719		return nil, err
85720	}
85721	req.Header = reqHeaders
85722	googleapi.Expand(req.URL, map[string]string{
85723		"project":  c.project,
85724		"zone":     c.zone,
85725		"instance": c.instance,
85726	})
85727	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85728}
85729
85730// Do executes the "compute.instances.getScreenshot" call.
85731// Exactly one of *Screenshot or error will be non-nil. Any non-2xx
85732// status code is an error. Response headers are in either
85733// *Screenshot.ServerResponse.Header or (if a response was returned at
85734// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
85735// to check whether the returned error was because
85736// http.StatusNotModified was returned.
85737func (c *InstancesGetScreenshotCall) Do(opts ...googleapi.CallOption) (*Screenshot, error) {
85738	gensupport.SetOptions(c.urlParams_, opts...)
85739	res, err := c.doRequest("json")
85740	if res != nil && res.StatusCode == http.StatusNotModified {
85741		if res.Body != nil {
85742			res.Body.Close()
85743		}
85744		return nil, &googleapi.Error{
85745			Code:   res.StatusCode,
85746			Header: res.Header,
85747		}
85748	}
85749	if err != nil {
85750		return nil, err
85751	}
85752	defer googleapi.CloseBody(res)
85753	if err := googleapi.CheckResponse(res); err != nil {
85754		return nil, err
85755	}
85756	ret := &Screenshot{
85757		ServerResponse: googleapi.ServerResponse{
85758			Header:         res.Header,
85759			HTTPStatusCode: res.StatusCode,
85760		},
85761	}
85762	target := &ret
85763	if err := gensupport.DecodeResponse(target, res); err != nil {
85764		return nil, err
85765	}
85766	return ret, nil
85767	// {
85768	//   "description": "Returns the screenshot from the specified instance.",
85769	//   "httpMethod": "GET",
85770	//   "id": "compute.instances.getScreenshot",
85771	//   "parameterOrder": [
85772	//     "project",
85773	//     "zone",
85774	//     "instance"
85775	//   ],
85776	//   "parameters": {
85777	//     "instance": {
85778	//       "description": "Name of the instance scoping this request.",
85779	//       "location": "path",
85780	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85781	//       "required": true,
85782	//       "type": "string"
85783	//     },
85784	//     "project": {
85785	//       "description": "Project ID for this request.",
85786	//       "location": "path",
85787	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85788	//       "required": true,
85789	//       "type": "string"
85790	//     },
85791	//     "zone": {
85792	//       "description": "The name of the zone for this request.",
85793	//       "location": "path",
85794	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85795	//       "required": true,
85796	//       "type": "string"
85797	//     }
85798	//   },
85799	//   "path": "{project}/zones/{zone}/instances/{instance}/screenshot",
85800	//   "response": {
85801	//     "$ref": "Screenshot"
85802	//   },
85803	//   "scopes": [
85804	//     "https://www.googleapis.com/auth/cloud-platform",
85805	//     "https://www.googleapis.com/auth/compute",
85806	//     "https://www.googleapis.com/auth/compute.readonly"
85807	//   ]
85808	// }
85809
85810}
85811
85812// method id "compute.instances.getSerialPortOutput":
85813
85814type InstancesGetSerialPortOutputCall struct {
85815	s            *Service
85816	project      string
85817	zone         string
85818	instance     string
85819	urlParams_   gensupport.URLParams
85820	ifNoneMatch_ string
85821	ctx_         context.Context
85822	header_      http.Header
85823}
85824
85825// GetSerialPortOutput: Returns the last 1 MB of serial port output from
85826// the specified instance.
85827// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/getSerialPortOutput
85828func (r *InstancesService) GetSerialPortOutput(project string, zone string, instance string) *InstancesGetSerialPortOutputCall {
85829	c := &InstancesGetSerialPortOutputCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85830	c.project = project
85831	c.zone = zone
85832	c.instance = instance
85833	return c
85834}
85835
85836// Port sets the optional parameter "port": Specifies which COM or
85837// serial port to retrieve data from.
85838func (c *InstancesGetSerialPortOutputCall) Port(port int64) *InstancesGetSerialPortOutputCall {
85839	c.urlParams_.Set("port", fmt.Sprint(port))
85840	return c
85841}
85842
85843// Start sets the optional parameter "start": Returns output starting
85844// from a specific byte position. Use this to page through output when
85845// the output is too large to return in a single request. For the
85846// initial request, leave this field unspecified. For subsequent calls,
85847// this field should be set to the next value returned in the previous
85848// call.
85849func (c *InstancesGetSerialPortOutputCall) Start(start int64) *InstancesGetSerialPortOutputCall {
85850	c.urlParams_.Set("start", fmt.Sprint(start))
85851	return c
85852}
85853
85854// Fields allows partial responses to be retrieved. See
85855// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85856// for more information.
85857func (c *InstancesGetSerialPortOutputCall) Fields(s ...googleapi.Field) *InstancesGetSerialPortOutputCall {
85858	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85859	return c
85860}
85861
85862// IfNoneMatch sets the optional parameter which makes the operation
85863// fail if the object's ETag matches the given value. This is useful for
85864// getting updates only after the object has changed since the last
85865// request. Use googleapi.IsNotModified to check whether the response
85866// error from Do is the result of In-None-Match.
85867func (c *InstancesGetSerialPortOutputCall) IfNoneMatch(entityTag string) *InstancesGetSerialPortOutputCall {
85868	c.ifNoneMatch_ = entityTag
85869	return c
85870}
85871
85872// Context sets the context to be used in this call's Do method. Any
85873// pending HTTP request will be aborted if the provided context is
85874// canceled.
85875func (c *InstancesGetSerialPortOutputCall) Context(ctx context.Context) *InstancesGetSerialPortOutputCall {
85876	c.ctx_ = ctx
85877	return c
85878}
85879
85880// Header returns an http.Header that can be modified by the caller to
85881// add HTTP headers to the request.
85882func (c *InstancesGetSerialPortOutputCall) Header() http.Header {
85883	if c.header_ == nil {
85884		c.header_ = make(http.Header)
85885	}
85886	return c.header_
85887}
85888
85889func (c *InstancesGetSerialPortOutputCall) doRequest(alt string) (*http.Response, error) {
85890	reqHeaders := make(http.Header)
85891	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
85892	for k, v := range c.header_ {
85893		reqHeaders[k] = v
85894	}
85895	reqHeaders.Set("User-Agent", c.s.userAgent())
85896	if c.ifNoneMatch_ != "" {
85897		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
85898	}
85899	var body io.Reader = nil
85900	c.urlParams_.Set("alt", alt)
85901	c.urlParams_.Set("prettyPrint", "false")
85902	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/serialPort")
85903	urls += "?" + c.urlParams_.Encode()
85904	req, err := http.NewRequest("GET", urls, body)
85905	if err != nil {
85906		return nil, err
85907	}
85908	req.Header = reqHeaders
85909	googleapi.Expand(req.URL, map[string]string{
85910		"project":  c.project,
85911		"zone":     c.zone,
85912		"instance": c.instance,
85913	})
85914	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85915}
85916
85917// Do executes the "compute.instances.getSerialPortOutput" call.
85918// Exactly one of *SerialPortOutput or error will be non-nil. Any
85919// non-2xx status code is an error. Response headers are in either
85920// *SerialPortOutput.ServerResponse.Header or (if a response was
85921// returned at all) in error.(*googleapi.Error).Header. Use
85922// googleapi.IsNotModified to check whether the returned error was
85923// because http.StatusNotModified was returned.
85924func (c *InstancesGetSerialPortOutputCall) Do(opts ...googleapi.CallOption) (*SerialPortOutput, error) {
85925	gensupport.SetOptions(c.urlParams_, opts...)
85926	res, err := c.doRequest("json")
85927	if res != nil && res.StatusCode == http.StatusNotModified {
85928		if res.Body != nil {
85929			res.Body.Close()
85930		}
85931		return nil, &googleapi.Error{
85932			Code:   res.StatusCode,
85933			Header: res.Header,
85934		}
85935	}
85936	if err != nil {
85937		return nil, err
85938	}
85939	defer googleapi.CloseBody(res)
85940	if err := googleapi.CheckResponse(res); err != nil {
85941		return nil, err
85942	}
85943	ret := &SerialPortOutput{
85944		ServerResponse: googleapi.ServerResponse{
85945			Header:         res.Header,
85946			HTTPStatusCode: res.StatusCode,
85947		},
85948	}
85949	target := &ret
85950	if err := gensupport.DecodeResponse(target, res); err != nil {
85951		return nil, err
85952	}
85953	return ret, nil
85954	// {
85955	//   "description": "Returns the last 1 MB of serial port output from the specified instance.",
85956	//   "httpMethod": "GET",
85957	//   "id": "compute.instances.getSerialPortOutput",
85958	//   "parameterOrder": [
85959	//     "project",
85960	//     "zone",
85961	//     "instance"
85962	//   ],
85963	//   "parameters": {
85964	//     "instance": {
85965	//       "description": "Name of the instance scoping this request.",
85966	//       "location": "path",
85967	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85968	//       "required": true,
85969	//       "type": "string"
85970	//     },
85971	//     "port": {
85972	//       "default": "1",
85973	//       "description": "Specifies which COM or serial port to retrieve data from.",
85974	//       "format": "int32",
85975	//       "location": "query",
85976	//       "maximum": "4",
85977	//       "minimum": "1",
85978	//       "type": "integer"
85979	//     },
85980	//     "project": {
85981	//       "description": "Project ID for this request.",
85982	//       "location": "path",
85983	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85984	//       "required": true,
85985	//       "type": "string"
85986	//     },
85987	//     "start": {
85988	//       "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.",
85989	//       "format": "int64",
85990	//       "location": "query",
85991	//       "type": "string"
85992	//     },
85993	//     "zone": {
85994	//       "description": "The name of the zone for this request.",
85995	//       "location": "path",
85996	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85997	//       "required": true,
85998	//       "type": "string"
85999	//     }
86000	//   },
86001	//   "path": "{project}/zones/{zone}/instances/{instance}/serialPort",
86002	//   "response": {
86003	//     "$ref": "SerialPortOutput"
86004	//   },
86005	//   "scopes": [
86006	//     "https://www.googleapis.com/auth/cloud-platform",
86007	//     "https://www.googleapis.com/auth/compute",
86008	//     "https://www.googleapis.com/auth/compute.readonly"
86009	//   ]
86010	// }
86011
86012}
86013
86014// method id "compute.instances.getShieldedInstanceIdentity":
86015
86016type InstancesGetShieldedInstanceIdentityCall struct {
86017	s            *Service
86018	project      string
86019	zone         string
86020	instance     string
86021	urlParams_   gensupport.URLParams
86022	ifNoneMatch_ string
86023	ctx_         context.Context
86024	header_      http.Header
86025}
86026
86027// GetShieldedInstanceIdentity: Returns the Shielded Instance Identity
86028// of an instance
86029func (r *InstancesService) GetShieldedInstanceIdentity(project string, zone string, instance string) *InstancesGetShieldedInstanceIdentityCall {
86030	c := &InstancesGetShieldedInstanceIdentityCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86031	c.project = project
86032	c.zone = zone
86033	c.instance = instance
86034	return c
86035}
86036
86037// Fields allows partial responses to be retrieved. See
86038// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86039// for more information.
86040func (c *InstancesGetShieldedInstanceIdentityCall) Fields(s ...googleapi.Field) *InstancesGetShieldedInstanceIdentityCall {
86041	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86042	return c
86043}
86044
86045// IfNoneMatch sets the optional parameter which makes the operation
86046// fail if the object's ETag matches the given value. This is useful for
86047// getting updates only after the object has changed since the last
86048// request. Use googleapi.IsNotModified to check whether the response
86049// error from Do is the result of In-None-Match.
86050func (c *InstancesGetShieldedInstanceIdentityCall) IfNoneMatch(entityTag string) *InstancesGetShieldedInstanceIdentityCall {
86051	c.ifNoneMatch_ = entityTag
86052	return c
86053}
86054
86055// Context sets the context to be used in this call's Do method. Any
86056// pending HTTP request will be aborted if the provided context is
86057// canceled.
86058func (c *InstancesGetShieldedInstanceIdentityCall) Context(ctx context.Context) *InstancesGetShieldedInstanceIdentityCall {
86059	c.ctx_ = ctx
86060	return c
86061}
86062
86063// Header returns an http.Header that can be modified by the caller to
86064// add HTTP headers to the request.
86065func (c *InstancesGetShieldedInstanceIdentityCall) Header() http.Header {
86066	if c.header_ == nil {
86067		c.header_ = make(http.Header)
86068	}
86069	return c.header_
86070}
86071
86072func (c *InstancesGetShieldedInstanceIdentityCall) doRequest(alt string) (*http.Response, error) {
86073	reqHeaders := make(http.Header)
86074	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
86075	for k, v := range c.header_ {
86076		reqHeaders[k] = v
86077	}
86078	reqHeaders.Set("User-Agent", c.s.userAgent())
86079	if c.ifNoneMatch_ != "" {
86080		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
86081	}
86082	var body io.Reader = nil
86083	c.urlParams_.Set("alt", alt)
86084	c.urlParams_.Set("prettyPrint", "false")
86085	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity")
86086	urls += "?" + c.urlParams_.Encode()
86087	req, err := http.NewRequest("GET", urls, body)
86088	if err != nil {
86089		return nil, err
86090	}
86091	req.Header = reqHeaders
86092	googleapi.Expand(req.URL, map[string]string{
86093		"project":  c.project,
86094		"zone":     c.zone,
86095		"instance": c.instance,
86096	})
86097	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86098}
86099
86100// Do executes the "compute.instances.getShieldedInstanceIdentity" call.
86101// Exactly one of *ShieldedInstanceIdentity or error will be non-nil.
86102// Any non-2xx status code is an error. Response headers are in either
86103// *ShieldedInstanceIdentity.ServerResponse.Header or (if a response was
86104// returned at all) in error.(*googleapi.Error).Header. Use
86105// googleapi.IsNotModified to check whether the returned error was
86106// because http.StatusNotModified was returned.
86107func (c *InstancesGetShieldedInstanceIdentityCall) Do(opts ...googleapi.CallOption) (*ShieldedInstanceIdentity, error) {
86108	gensupport.SetOptions(c.urlParams_, opts...)
86109	res, err := c.doRequest("json")
86110	if res != nil && res.StatusCode == http.StatusNotModified {
86111		if res.Body != nil {
86112			res.Body.Close()
86113		}
86114		return nil, &googleapi.Error{
86115			Code:   res.StatusCode,
86116			Header: res.Header,
86117		}
86118	}
86119	if err != nil {
86120		return nil, err
86121	}
86122	defer googleapi.CloseBody(res)
86123	if err := googleapi.CheckResponse(res); err != nil {
86124		return nil, err
86125	}
86126	ret := &ShieldedInstanceIdentity{
86127		ServerResponse: googleapi.ServerResponse{
86128			Header:         res.Header,
86129			HTTPStatusCode: res.StatusCode,
86130		},
86131	}
86132	target := &ret
86133	if err := gensupport.DecodeResponse(target, res); err != nil {
86134		return nil, err
86135	}
86136	return ret, nil
86137	// {
86138	//   "description": "Returns the Shielded Instance Identity of an instance",
86139	//   "httpMethod": "GET",
86140	//   "id": "compute.instances.getShieldedInstanceIdentity",
86141	//   "parameterOrder": [
86142	//     "project",
86143	//     "zone",
86144	//     "instance"
86145	//   ],
86146	//   "parameters": {
86147	//     "instance": {
86148	//       "description": "Name or id of the instance scoping this request.",
86149	//       "location": "path",
86150	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86151	//       "required": true,
86152	//       "type": "string"
86153	//     },
86154	//     "project": {
86155	//       "description": "Project ID for this request.",
86156	//       "location": "path",
86157	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86158	//       "required": true,
86159	//       "type": "string"
86160	//     },
86161	//     "zone": {
86162	//       "description": "The name of the zone for this request.",
86163	//       "location": "path",
86164	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86165	//       "required": true,
86166	//       "type": "string"
86167	//     }
86168	//   },
86169	//   "path": "{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity",
86170	//   "response": {
86171	//     "$ref": "ShieldedInstanceIdentity"
86172	//   },
86173	//   "scopes": [
86174	//     "https://www.googleapis.com/auth/cloud-platform",
86175	//     "https://www.googleapis.com/auth/compute",
86176	//     "https://www.googleapis.com/auth/compute.readonly"
86177	//   ]
86178	// }
86179
86180}
86181
86182// method id "compute.instances.getShieldedVmIdentity":
86183
86184type InstancesGetShieldedVmIdentityCall struct {
86185	s            *Service
86186	project      string
86187	zone         string
86188	instance     string
86189	urlParams_   gensupport.URLParams
86190	ifNoneMatch_ string
86191	ctx_         context.Context
86192	header_      http.Header
86193}
86194
86195// GetShieldedVmIdentity: Returns the Shielded VM Identity of an
86196// instance
86197func (r *InstancesService) GetShieldedVmIdentity(project string, zone string, instance string) *InstancesGetShieldedVmIdentityCall {
86198	c := &InstancesGetShieldedVmIdentityCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86199	c.project = project
86200	c.zone = zone
86201	c.instance = instance
86202	return c
86203}
86204
86205// Fields allows partial responses to be retrieved. See
86206// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86207// for more information.
86208func (c *InstancesGetShieldedVmIdentityCall) Fields(s ...googleapi.Field) *InstancesGetShieldedVmIdentityCall {
86209	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86210	return c
86211}
86212
86213// IfNoneMatch sets the optional parameter which makes the operation
86214// fail if the object's ETag matches the given value. This is useful for
86215// getting updates only after the object has changed since the last
86216// request. Use googleapi.IsNotModified to check whether the response
86217// error from Do is the result of In-None-Match.
86218func (c *InstancesGetShieldedVmIdentityCall) IfNoneMatch(entityTag string) *InstancesGetShieldedVmIdentityCall {
86219	c.ifNoneMatch_ = entityTag
86220	return c
86221}
86222
86223// Context sets the context to be used in this call's Do method. Any
86224// pending HTTP request will be aborted if the provided context is
86225// canceled.
86226func (c *InstancesGetShieldedVmIdentityCall) Context(ctx context.Context) *InstancesGetShieldedVmIdentityCall {
86227	c.ctx_ = ctx
86228	return c
86229}
86230
86231// Header returns an http.Header that can be modified by the caller to
86232// add HTTP headers to the request.
86233func (c *InstancesGetShieldedVmIdentityCall) Header() http.Header {
86234	if c.header_ == nil {
86235		c.header_ = make(http.Header)
86236	}
86237	return c.header_
86238}
86239
86240func (c *InstancesGetShieldedVmIdentityCall) doRequest(alt string) (*http.Response, error) {
86241	reqHeaders := make(http.Header)
86242	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
86243	for k, v := range c.header_ {
86244		reqHeaders[k] = v
86245	}
86246	reqHeaders.Set("User-Agent", c.s.userAgent())
86247	if c.ifNoneMatch_ != "" {
86248		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
86249	}
86250	var body io.Reader = nil
86251	c.urlParams_.Set("alt", alt)
86252	c.urlParams_.Set("prettyPrint", "false")
86253	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/getShieldedVmIdentity")
86254	urls += "?" + c.urlParams_.Encode()
86255	req, err := http.NewRequest("GET", urls, body)
86256	if err != nil {
86257		return nil, err
86258	}
86259	req.Header = reqHeaders
86260	googleapi.Expand(req.URL, map[string]string{
86261		"project":  c.project,
86262		"zone":     c.zone,
86263		"instance": c.instance,
86264	})
86265	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86266}
86267
86268// Do executes the "compute.instances.getShieldedVmIdentity" call.
86269// Exactly one of *ShieldedVmIdentity or error will be non-nil. Any
86270// non-2xx status code is an error. Response headers are in either
86271// *ShieldedVmIdentity.ServerResponse.Header or (if a response was
86272// returned at all) in error.(*googleapi.Error).Header. Use
86273// googleapi.IsNotModified to check whether the returned error was
86274// because http.StatusNotModified was returned.
86275func (c *InstancesGetShieldedVmIdentityCall) Do(opts ...googleapi.CallOption) (*ShieldedVmIdentity, error) {
86276	gensupport.SetOptions(c.urlParams_, opts...)
86277	res, err := c.doRequest("json")
86278	if res != nil && res.StatusCode == http.StatusNotModified {
86279		if res.Body != nil {
86280			res.Body.Close()
86281		}
86282		return nil, &googleapi.Error{
86283			Code:   res.StatusCode,
86284			Header: res.Header,
86285		}
86286	}
86287	if err != nil {
86288		return nil, err
86289	}
86290	defer googleapi.CloseBody(res)
86291	if err := googleapi.CheckResponse(res); err != nil {
86292		return nil, err
86293	}
86294	ret := &ShieldedVmIdentity{
86295		ServerResponse: googleapi.ServerResponse{
86296			Header:         res.Header,
86297			HTTPStatusCode: res.StatusCode,
86298		},
86299	}
86300	target := &ret
86301	if err := gensupport.DecodeResponse(target, res); err != nil {
86302		return nil, err
86303	}
86304	return ret, nil
86305	// {
86306	//   "description": "Returns the Shielded VM Identity of an instance",
86307	//   "httpMethod": "GET",
86308	//   "id": "compute.instances.getShieldedVmIdentity",
86309	//   "parameterOrder": [
86310	//     "project",
86311	//     "zone",
86312	//     "instance"
86313	//   ],
86314	//   "parameters": {
86315	//     "instance": {
86316	//       "description": "Name of the instance scoping this request.",
86317	//       "location": "path",
86318	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86319	//       "required": true,
86320	//       "type": "string"
86321	//     },
86322	//     "project": {
86323	//       "description": "Project ID for this request.",
86324	//       "location": "path",
86325	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86326	//       "required": true,
86327	//       "type": "string"
86328	//     },
86329	//     "zone": {
86330	//       "description": "The name of the zone for this request.",
86331	//       "location": "path",
86332	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86333	//       "required": true,
86334	//       "type": "string"
86335	//     }
86336	//   },
86337	//   "path": "{project}/zones/{zone}/instances/{instance}/getShieldedVmIdentity",
86338	//   "response": {
86339	//     "$ref": "ShieldedVmIdentity"
86340	//   },
86341	//   "scopes": [
86342	//     "https://www.googleapis.com/auth/cloud-platform",
86343	//     "https://www.googleapis.com/auth/compute",
86344	//     "https://www.googleapis.com/auth/compute.readonly"
86345	//   ]
86346	// }
86347
86348}
86349
86350// method id "compute.instances.insert":
86351
86352type InstancesInsertCall struct {
86353	s          *Service
86354	project    string
86355	zone       string
86356	instance   *Instance
86357	urlParams_ gensupport.URLParams
86358	ctx_       context.Context
86359	header_    http.Header
86360}
86361
86362// Insert: Creates an instance resource in the specified project using
86363// the data included in the request.
86364// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/insert
86365func (r *InstancesService) Insert(project string, zone string, instance *Instance) *InstancesInsertCall {
86366	c := &InstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86367	c.project = project
86368	c.zone = zone
86369	c.instance = instance
86370	return c
86371}
86372
86373// RequestId sets the optional parameter "requestId": An optional
86374// request ID to identify requests. Specify a unique request ID so that
86375// if you must retry your request, the server will know to ignore the
86376// request if it has already been completed.
86377//
86378// For example, consider a situation where you make an initial request
86379// and the request times out. If you make the request again with the
86380// same request ID, the server can check if original operation with the
86381// same request ID was received, and if so, will ignore the second
86382// request. This prevents clients from accidentally creating duplicate
86383// commitments.
86384//
86385// The request ID must be a valid UUID with the exception that zero UUID
86386// is not supported (00000000-0000-0000-0000-000000000000).
86387func (c *InstancesInsertCall) RequestId(requestId string) *InstancesInsertCall {
86388	c.urlParams_.Set("requestId", requestId)
86389	return c
86390}
86391
86392// SourceInstanceTemplate sets the optional parameter
86393// "sourceInstanceTemplate": Specifies instance template to create the
86394// instance.
86395//
86396// This field is optional. It can be a full or partial URL. For example,
86397// the following are all valid URLs to an instance template:
86398// -
86399// https://www.googleapis.com/compute/v1/projects/project/global/instanceTemplates/instanceTemplate
86400// - projects/project/global/instanceTemplates/instanceTemplate
86401// - global/instanceTemplates/instanceTemplate
86402func (c *InstancesInsertCall) SourceInstanceTemplate(sourceInstanceTemplate string) *InstancesInsertCall {
86403	c.urlParams_.Set("sourceInstanceTemplate", sourceInstanceTemplate)
86404	return c
86405}
86406
86407// SourceMachineImage sets the optional parameter "sourceMachineImage":
86408// Specifies instance machine to create the instance.
86409//
86410// This field is optional. It can be a full or partial URL. For example,
86411// the following are all valid URLs to an instance template:
86412// -
86413// https://www.googleapis.com/compute/v1/projects/project/global/global/machineImages/machineImage
86414// - projects/project/global/global/machineImages/machineImage
86415// - global/machineImages/machineImage
86416func (c *InstancesInsertCall) SourceMachineImage(sourceMachineImage string) *InstancesInsertCall {
86417	c.urlParams_.Set("sourceMachineImage", sourceMachineImage)
86418	return c
86419}
86420
86421// Fields allows partial responses to be retrieved. See
86422// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86423// for more information.
86424func (c *InstancesInsertCall) Fields(s ...googleapi.Field) *InstancesInsertCall {
86425	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86426	return c
86427}
86428
86429// Context sets the context to be used in this call's Do method. Any
86430// pending HTTP request will be aborted if the provided context is
86431// canceled.
86432func (c *InstancesInsertCall) Context(ctx context.Context) *InstancesInsertCall {
86433	c.ctx_ = ctx
86434	return c
86435}
86436
86437// Header returns an http.Header that can be modified by the caller to
86438// add HTTP headers to the request.
86439func (c *InstancesInsertCall) Header() http.Header {
86440	if c.header_ == nil {
86441		c.header_ = make(http.Header)
86442	}
86443	return c.header_
86444}
86445
86446func (c *InstancesInsertCall) doRequest(alt string) (*http.Response, error) {
86447	reqHeaders := make(http.Header)
86448	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
86449	for k, v := range c.header_ {
86450		reqHeaders[k] = v
86451	}
86452	reqHeaders.Set("User-Agent", c.s.userAgent())
86453	var body io.Reader = nil
86454	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance)
86455	if err != nil {
86456		return nil, err
86457	}
86458	reqHeaders.Set("Content-Type", "application/json")
86459	c.urlParams_.Set("alt", alt)
86460	c.urlParams_.Set("prettyPrint", "false")
86461	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances")
86462	urls += "?" + c.urlParams_.Encode()
86463	req, err := http.NewRequest("POST", urls, body)
86464	if err != nil {
86465		return nil, err
86466	}
86467	req.Header = reqHeaders
86468	googleapi.Expand(req.URL, map[string]string{
86469		"project": c.project,
86470		"zone":    c.zone,
86471	})
86472	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86473}
86474
86475// Do executes the "compute.instances.insert" call.
86476// Exactly one of *Operation or error will be non-nil. Any non-2xx
86477// status code is an error. Response headers are in either
86478// *Operation.ServerResponse.Header or (if a response was returned at
86479// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86480// to check whether the returned error was because
86481// http.StatusNotModified was returned.
86482func (c *InstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86483	gensupport.SetOptions(c.urlParams_, opts...)
86484	res, err := c.doRequest("json")
86485	if res != nil && res.StatusCode == http.StatusNotModified {
86486		if res.Body != nil {
86487			res.Body.Close()
86488		}
86489		return nil, &googleapi.Error{
86490			Code:   res.StatusCode,
86491			Header: res.Header,
86492		}
86493	}
86494	if err != nil {
86495		return nil, err
86496	}
86497	defer googleapi.CloseBody(res)
86498	if err := googleapi.CheckResponse(res); err != nil {
86499		return nil, err
86500	}
86501	ret := &Operation{
86502		ServerResponse: googleapi.ServerResponse{
86503			Header:         res.Header,
86504			HTTPStatusCode: res.StatusCode,
86505		},
86506	}
86507	target := &ret
86508	if err := gensupport.DecodeResponse(target, res); err != nil {
86509		return nil, err
86510	}
86511	return ret, nil
86512	// {
86513	//   "description": "Creates an instance resource in the specified project using the data included in the request.",
86514	//   "httpMethod": "POST",
86515	//   "id": "compute.instances.insert",
86516	//   "parameterOrder": [
86517	//     "project",
86518	//     "zone"
86519	//   ],
86520	//   "parameters": {
86521	//     "project": {
86522	//       "description": "Project ID for this request.",
86523	//       "location": "path",
86524	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86525	//       "required": true,
86526	//       "type": "string"
86527	//     },
86528	//     "requestId": {
86529	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
86530	//       "location": "query",
86531	//       "type": "string"
86532	//     },
86533	//     "sourceInstanceTemplate": {
86534	//       "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",
86535	//       "location": "query",
86536	//       "type": "string"
86537	//     },
86538	//     "sourceMachineImage": {
86539	//       "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",
86540	//       "location": "query",
86541	//       "type": "string"
86542	//     },
86543	//     "zone": {
86544	//       "description": "The name of the zone for this request.",
86545	//       "location": "path",
86546	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86547	//       "required": true,
86548	//       "type": "string"
86549	//     }
86550	//   },
86551	//   "path": "{project}/zones/{zone}/instances",
86552	//   "request": {
86553	//     "$ref": "Instance"
86554	//   },
86555	//   "response": {
86556	//     "$ref": "Operation"
86557	//   },
86558	//   "scopes": [
86559	//     "https://www.googleapis.com/auth/cloud-platform",
86560	//     "https://www.googleapis.com/auth/compute"
86561	//   ]
86562	// }
86563
86564}
86565
86566// method id "compute.instances.list":
86567
86568type InstancesListCall struct {
86569	s            *Service
86570	project      string
86571	zone         string
86572	urlParams_   gensupport.URLParams
86573	ifNoneMatch_ string
86574	ctx_         context.Context
86575	header_      http.Header
86576}
86577
86578// List: Retrieves the list of instances contained within the specified
86579// zone.
86580// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/list
86581func (r *InstancesService) List(project string, zone string) *InstancesListCall {
86582	c := &InstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86583	c.project = project
86584	c.zone = zone
86585	return c
86586}
86587
86588// Filter sets the optional parameter "filter": A filter expression that
86589// filters resources listed in the response. The expression must specify
86590// the field name, a comparison operator, and the value that you want to
86591// use for filtering. The value must be a string, a number, or a
86592// boolean. The comparison operator must be either =, !=, >, or <.
86593//
86594// For example, if you are filtering Compute Engine instances, you can
86595// exclude instances named example-instance by specifying name !=
86596// example-instance.
86597//
86598// You can also filter nested fields. For example, you could specify
86599// scheduling.automaticRestart = false to include instances only if they
86600// are not scheduled for automatic restarts. You can use filtering on
86601// nested fields to filter based on resource labels.
86602//
86603// To filter on multiple expressions, provide each separate expression
86604// within parentheses. For example, (scheduling.automaticRestart = true)
86605// (cpuPlatform = "Intel Skylake"). By default, each expression is an
86606// AND expression. However, you can include AND and OR expressions
86607// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
86608// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
86609// true).
86610func (c *InstancesListCall) Filter(filter string) *InstancesListCall {
86611	c.urlParams_.Set("filter", filter)
86612	return c
86613}
86614
86615// MaxResults sets the optional parameter "maxResults": The maximum
86616// number of results per page that should be returned. If the number of
86617// available results is larger than maxResults, Compute Engine returns a
86618// nextPageToken that can be used to get the next page of results in
86619// subsequent list requests. Acceptable values are 0 to 500, inclusive.
86620// (Default: 500)
86621func (c *InstancesListCall) MaxResults(maxResults int64) *InstancesListCall {
86622	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
86623	return c
86624}
86625
86626// OrderBy sets the optional parameter "orderBy": Sorts list results by
86627// a certain order. By default, results are returned in alphanumerical
86628// order based on the resource name.
86629//
86630// You can also sort results in descending order based on the creation
86631// timestamp using orderBy="creationTimestamp desc". This sorts results
86632// based on the creationTimestamp field in reverse chronological order
86633// (newest result first). Use this to sort resources like operations so
86634// that the newest operation is returned first.
86635//
86636// Currently, only sorting by name or creationTimestamp desc is
86637// supported.
86638func (c *InstancesListCall) OrderBy(orderBy string) *InstancesListCall {
86639	c.urlParams_.Set("orderBy", orderBy)
86640	return c
86641}
86642
86643// PageToken sets the optional parameter "pageToken": Specifies a page
86644// token to use. Set pageToken to the nextPageToken returned by a
86645// previous list request to get the next page of results.
86646func (c *InstancesListCall) PageToken(pageToken string) *InstancesListCall {
86647	c.urlParams_.Set("pageToken", pageToken)
86648	return c
86649}
86650
86651// Fields allows partial responses to be retrieved. See
86652// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86653// for more information.
86654func (c *InstancesListCall) Fields(s ...googleapi.Field) *InstancesListCall {
86655	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86656	return c
86657}
86658
86659// IfNoneMatch sets the optional parameter which makes the operation
86660// fail if the object's ETag matches the given value. This is useful for
86661// getting updates only after the object has changed since the last
86662// request. Use googleapi.IsNotModified to check whether the response
86663// error from Do is the result of In-None-Match.
86664func (c *InstancesListCall) IfNoneMatch(entityTag string) *InstancesListCall {
86665	c.ifNoneMatch_ = entityTag
86666	return c
86667}
86668
86669// Context sets the context to be used in this call's Do method. Any
86670// pending HTTP request will be aborted if the provided context is
86671// canceled.
86672func (c *InstancesListCall) Context(ctx context.Context) *InstancesListCall {
86673	c.ctx_ = ctx
86674	return c
86675}
86676
86677// Header returns an http.Header that can be modified by the caller to
86678// add HTTP headers to the request.
86679func (c *InstancesListCall) Header() http.Header {
86680	if c.header_ == nil {
86681		c.header_ = make(http.Header)
86682	}
86683	return c.header_
86684}
86685
86686func (c *InstancesListCall) doRequest(alt string) (*http.Response, error) {
86687	reqHeaders := make(http.Header)
86688	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
86689	for k, v := range c.header_ {
86690		reqHeaders[k] = v
86691	}
86692	reqHeaders.Set("User-Agent", c.s.userAgent())
86693	if c.ifNoneMatch_ != "" {
86694		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
86695	}
86696	var body io.Reader = nil
86697	c.urlParams_.Set("alt", alt)
86698	c.urlParams_.Set("prettyPrint", "false")
86699	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances")
86700	urls += "?" + c.urlParams_.Encode()
86701	req, err := http.NewRequest("GET", urls, body)
86702	if err != nil {
86703		return nil, err
86704	}
86705	req.Header = reqHeaders
86706	googleapi.Expand(req.URL, map[string]string{
86707		"project": c.project,
86708		"zone":    c.zone,
86709	})
86710	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86711}
86712
86713// Do executes the "compute.instances.list" call.
86714// Exactly one of *InstanceList or error will be non-nil. Any non-2xx
86715// status code is an error. Response headers are in either
86716// *InstanceList.ServerResponse.Header or (if a response was returned at
86717// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86718// to check whether the returned error was because
86719// http.StatusNotModified was returned.
86720func (c *InstancesListCall) Do(opts ...googleapi.CallOption) (*InstanceList, error) {
86721	gensupport.SetOptions(c.urlParams_, opts...)
86722	res, err := c.doRequest("json")
86723	if res != nil && res.StatusCode == http.StatusNotModified {
86724		if res.Body != nil {
86725			res.Body.Close()
86726		}
86727		return nil, &googleapi.Error{
86728			Code:   res.StatusCode,
86729			Header: res.Header,
86730		}
86731	}
86732	if err != nil {
86733		return nil, err
86734	}
86735	defer googleapi.CloseBody(res)
86736	if err := googleapi.CheckResponse(res); err != nil {
86737		return nil, err
86738	}
86739	ret := &InstanceList{
86740		ServerResponse: googleapi.ServerResponse{
86741			Header:         res.Header,
86742			HTTPStatusCode: res.StatusCode,
86743		},
86744	}
86745	target := &ret
86746	if err := gensupport.DecodeResponse(target, res); err != nil {
86747		return nil, err
86748	}
86749	return ret, nil
86750	// {
86751	//   "description": "Retrieves the list of instances contained within the specified zone.",
86752	//   "httpMethod": "GET",
86753	//   "id": "compute.instances.list",
86754	//   "parameterOrder": [
86755	//     "project",
86756	//     "zone"
86757	//   ],
86758	//   "parameters": {
86759	//     "filter": {
86760	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
86761	//       "location": "query",
86762	//       "type": "string"
86763	//     },
86764	//     "maxResults": {
86765	//       "default": "500",
86766	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
86767	//       "format": "uint32",
86768	//       "location": "query",
86769	//       "minimum": "0",
86770	//       "type": "integer"
86771	//     },
86772	//     "orderBy": {
86773	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
86774	//       "location": "query",
86775	//       "type": "string"
86776	//     },
86777	//     "pageToken": {
86778	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
86779	//       "location": "query",
86780	//       "type": "string"
86781	//     },
86782	//     "project": {
86783	//       "description": "Project ID for this request.",
86784	//       "location": "path",
86785	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86786	//       "required": true,
86787	//       "type": "string"
86788	//     },
86789	//     "zone": {
86790	//       "description": "The name of the zone for this request.",
86791	//       "location": "path",
86792	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86793	//       "required": true,
86794	//       "type": "string"
86795	//     }
86796	//   },
86797	//   "path": "{project}/zones/{zone}/instances",
86798	//   "response": {
86799	//     "$ref": "InstanceList"
86800	//   },
86801	//   "scopes": [
86802	//     "https://www.googleapis.com/auth/cloud-platform",
86803	//     "https://www.googleapis.com/auth/compute",
86804	//     "https://www.googleapis.com/auth/compute.readonly"
86805	//   ]
86806	// }
86807
86808}
86809
86810// Pages invokes f for each page of results.
86811// A non-nil error returned from f will halt the iteration.
86812// The provided context supersedes any context provided to the Context method.
86813func (c *InstancesListCall) Pages(ctx context.Context, f func(*InstanceList) error) error {
86814	c.ctx_ = ctx
86815	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
86816	for {
86817		x, err := c.Do()
86818		if err != nil {
86819			return err
86820		}
86821		if err := f(x); err != nil {
86822			return err
86823		}
86824		if x.NextPageToken == "" {
86825			return nil
86826		}
86827		c.PageToken(x.NextPageToken)
86828	}
86829}
86830
86831// method id "compute.instances.listReferrers":
86832
86833type InstancesListReferrersCall struct {
86834	s            *Service
86835	project      string
86836	zone         string
86837	instance     string
86838	urlParams_   gensupport.URLParams
86839	ifNoneMatch_ string
86840	ctx_         context.Context
86841	header_      http.Header
86842}
86843
86844// ListReferrers: Retrieves the list of referrers to instances contained
86845// within the specified zone. For more information, read Viewing
86846// Referrers to VM Instances.
86847func (r *InstancesService) ListReferrers(project string, zone string, instance string) *InstancesListReferrersCall {
86848	c := &InstancesListReferrersCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86849	c.project = project
86850	c.zone = zone
86851	c.instance = instance
86852	return c
86853}
86854
86855// Filter sets the optional parameter "filter": A filter expression that
86856// filters resources listed in the response. The expression must specify
86857// the field name, a comparison operator, and the value that you want to
86858// use for filtering. The value must be a string, a number, or a
86859// boolean. The comparison operator must be either =, !=, >, or <.
86860//
86861// For example, if you are filtering Compute Engine instances, you can
86862// exclude instances named example-instance by specifying name !=
86863// example-instance.
86864//
86865// You can also filter nested fields. For example, you could specify
86866// scheduling.automaticRestart = false to include instances only if they
86867// are not scheduled for automatic restarts. You can use filtering on
86868// nested fields to filter based on resource labels.
86869//
86870// To filter on multiple expressions, provide each separate expression
86871// within parentheses. For example, (scheduling.automaticRestart = true)
86872// (cpuPlatform = "Intel Skylake"). By default, each expression is an
86873// AND expression. However, you can include AND and OR expressions
86874// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
86875// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
86876// true).
86877func (c *InstancesListReferrersCall) Filter(filter string) *InstancesListReferrersCall {
86878	c.urlParams_.Set("filter", filter)
86879	return c
86880}
86881
86882// MaxResults sets the optional parameter "maxResults": The maximum
86883// number of results per page that should be returned. If the number of
86884// available results is larger than maxResults, Compute Engine returns a
86885// nextPageToken that can be used to get the next page of results in
86886// subsequent list requests. Acceptable values are 0 to 500, inclusive.
86887// (Default: 500)
86888func (c *InstancesListReferrersCall) MaxResults(maxResults int64) *InstancesListReferrersCall {
86889	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
86890	return c
86891}
86892
86893// OrderBy sets the optional parameter "orderBy": Sorts list results by
86894// a certain order. By default, results are returned in alphanumerical
86895// order based on the resource name.
86896//
86897// You can also sort results in descending order based on the creation
86898// timestamp using orderBy="creationTimestamp desc". This sorts results
86899// based on the creationTimestamp field in reverse chronological order
86900// (newest result first). Use this to sort resources like operations so
86901// that the newest operation is returned first.
86902//
86903// Currently, only sorting by name or creationTimestamp desc is
86904// supported.
86905func (c *InstancesListReferrersCall) OrderBy(orderBy string) *InstancesListReferrersCall {
86906	c.urlParams_.Set("orderBy", orderBy)
86907	return c
86908}
86909
86910// PageToken sets the optional parameter "pageToken": Specifies a page
86911// token to use. Set pageToken to the nextPageToken returned by a
86912// previous list request to get the next page of results.
86913func (c *InstancesListReferrersCall) PageToken(pageToken string) *InstancesListReferrersCall {
86914	c.urlParams_.Set("pageToken", pageToken)
86915	return c
86916}
86917
86918// Fields allows partial responses to be retrieved. See
86919// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86920// for more information.
86921func (c *InstancesListReferrersCall) Fields(s ...googleapi.Field) *InstancesListReferrersCall {
86922	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86923	return c
86924}
86925
86926// IfNoneMatch sets the optional parameter which makes the operation
86927// fail if the object's ETag matches the given value. This is useful for
86928// getting updates only after the object has changed since the last
86929// request. Use googleapi.IsNotModified to check whether the response
86930// error from Do is the result of In-None-Match.
86931func (c *InstancesListReferrersCall) IfNoneMatch(entityTag string) *InstancesListReferrersCall {
86932	c.ifNoneMatch_ = entityTag
86933	return c
86934}
86935
86936// Context sets the context to be used in this call's Do method. Any
86937// pending HTTP request will be aborted if the provided context is
86938// canceled.
86939func (c *InstancesListReferrersCall) Context(ctx context.Context) *InstancesListReferrersCall {
86940	c.ctx_ = ctx
86941	return c
86942}
86943
86944// Header returns an http.Header that can be modified by the caller to
86945// add HTTP headers to the request.
86946func (c *InstancesListReferrersCall) Header() http.Header {
86947	if c.header_ == nil {
86948		c.header_ = make(http.Header)
86949	}
86950	return c.header_
86951}
86952
86953func (c *InstancesListReferrersCall) doRequest(alt string) (*http.Response, error) {
86954	reqHeaders := make(http.Header)
86955	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
86956	for k, v := range c.header_ {
86957		reqHeaders[k] = v
86958	}
86959	reqHeaders.Set("User-Agent", c.s.userAgent())
86960	if c.ifNoneMatch_ != "" {
86961		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
86962	}
86963	var body io.Reader = nil
86964	c.urlParams_.Set("alt", alt)
86965	c.urlParams_.Set("prettyPrint", "false")
86966	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/referrers")
86967	urls += "?" + c.urlParams_.Encode()
86968	req, err := http.NewRequest("GET", urls, body)
86969	if err != nil {
86970		return nil, err
86971	}
86972	req.Header = reqHeaders
86973	googleapi.Expand(req.URL, map[string]string{
86974		"project":  c.project,
86975		"zone":     c.zone,
86976		"instance": c.instance,
86977	})
86978	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86979}
86980
86981// Do executes the "compute.instances.listReferrers" call.
86982// Exactly one of *InstanceListReferrers or error will be non-nil. Any
86983// non-2xx status code is an error. Response headers are in either
86984// *InstanceListReferrers.ServerResponse.Header or (if a response was
86985// returned at all) in error.(*googleapi.Error).Header. Use
86986// googleapi.IsNotModified to check whether the returned error was
86987// because http.StatusNotModified was returned.
86988func (c *InstancesListReferrersCall) Do(opts ...googleapi.CallOption) (*InstanceListReferrers, error) {
86989	gensupport.SetOptions(c.urlParams_, opts...)
86990	res, err := c.doRequest("json")
86991	if res != nil && res.StatusCode == http.StatusNotModified {
86992		if res.Body != nil {
86993			res.Body.Close()
86994		}
86995		return nil, &googleapi.Error{
86996			Code:   res.StatusCode,
86997			Header: res.Header,
86998		}
86999	}
87000	if err != nil {
87001		return nil, err
87002	}
87003	defer googleapi.CloseBody(res)
87004	if err := googleapi.CheckResponse(res); err != nil {
87005		return nil, err
87006	}
87007	ret := &InstanceListReferrers{
87008		ServerResponse: googleapi.ServerResponse{
87009			Header:         res.Header,
87010			HTTPStatusCode: res.StatusCode,
87011		},
87012	}
87013	target := &ret
87014	if err := gensupport.DecodeResponse(target, res); err != nil {
87015		return nil, err
87016	}
87017	return ret, nil
87018	// {
87019	//   "description": "Retrieves the list of referrers to instances contained within the specified zone. For more information, read Viewing Referrers to VM Instances.",
87020	//   "httpMethod": "GET",
87021	//   "id": "compute.instances.listReferrers",
87022	//   "parameterOrder": [
87023	//     "project",
87024	//     "zone",
87025	//     "instance"
87026	//   ],
87027	//   "parameters": {
87028	//     "filter": {
87029	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
87030	//       "location": "query",
87031	//       "type": "string"
87032	//     },
87033	//     "instance": {
87034	//       "description": "Name of the target instance scoping this request, or '-' if the request should span over all instances in the container.",
87035	//       "location": "path",
87036	//       "pattern": "-|[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87037	//       "required": true,
87038	//       "type": "string"
87039	//     },
87040	//     "maxResults": {
87041	//       "default": "500",
87042	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
87043	//       "format": "uint32",
87044	//       "location": "query",
87045	//       "minimum": "0",
87046	//       "type": "integer"
87047	//     },
87048	//     "orderBy": {
87049	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
87050	//       "location": "query",
87051	//       "type": "string"
87052	//     },
87053	//     "pageToken": {
87054	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
87055	//       "location": "query",
87056	//       "type": "string"
87057	//     },
87058	//     "project": {
87059	//       "description": "Project ID for this request.",
87060	//       "location": "path",
87061	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87062	//       "required": true,
87063	//       "type": "string"
87064	//     },
87065	//     "zone": {
87066	//       "description": "The name of the zone for this request.",
87067	//       "location": "path",
87068	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87069	//       "required": true,
87070	//       "type": "string"
87071	//     }
87072	//   },
87073	//   "path": "{project}/zones/{zone}/instances/{instance}/referrers",
87074	//   "response": {
87075	//     "$ref": "InstanceListReferrers"
87076	//   },
87077	//   "scopes": [
87078	//     "https://www.googleapis.com/auth/cloud-platform",
87079	//     "https://www.googleapis.com/auth/compute",
87080	//     "https://www.googleapis.com/auth/compute.readonly"
87081	//   ]
87082	// }
87083
87084}
87085
87086// Pages invokes f for each page of results.
87087// A non-nil error returned from f will halt the iteration.
87088// The provided context supersedes any context provided to the Context method.
87089func (c *InstancesListReferrersCall) Pages(ctx context.Context, f func(*InstanceListReferrers) error) error {
87090	c.ctx_ = ctx
87091	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
87092	for {
87093		x, err := c.Do()
87094		if err != nil {
87095			return err
87096		}
87097		if err := f(x); err != nil {
87098			return err
87099		}
87100		if x.NextPageToken == "" {
87101			return nil
87102		}
87103		c.PageToken(x.NextPageToken)
87104	}
87105}
87106
87107// method id "compute.instances.removeResourcePolicies":
87108
87109type InstancesRemoveResourcePoliciesCall struct {
87110	s                                      *Service
87111	project                                string
87112	zone                                   string
87113	instance                               string
87114	instancesremoveresourcepoliciesrequest *InstancesRemoveResourcePoliciesRequest
87115	urlParams_                             gensupport.URLParams
87116	ctx_                                   context.Context
87117	header_                                http.Header
87118}
87119
87120// RemoveResourcePolicies: Removes resource policies from an instance.
87121func (r *InstancesService) RemoveResourcePolicies(project string, zone string, instance string, instancesremoveresourcepoliciesrequest *InstancesRemoveResourcePoliciesRequest) *InstancesRemoveResourcePoliciesCall {
87122	c := &InstancesRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87123	c.project = project
87124	c.zone = zone
87125	c.instance = instance
87126	c.instancesremoveresourcepoliciesrequest = instancesremoveresourcepoliciesrequest
87127	return c
87128}
87129
87130// RequestId sets the optional parameter "requestId": An optional
87131// request ID to identify requests. Specify a unique request ID so that
87132// if you must retry your request, the server will know to ignore the
87133// request if it has already been completed.
87134//
87135// For example, consider a situation where you make an initial request
87136// and the request times out. If you make the request again with the
87137// same request ID, the server can check if original operation with the
87138// same request ID was received, and if so, will ignore the second
87139// request. This prevents clients from accidentally creating duplicate
87140// commitments.
87141//
87142// The request ID must be a valid UUID with the exception that zero UUID
87143// is not supported (00000000-0000-0000-0000-000000000000).
87144func (c *InstancesRemoveResourcePoliciesCall) RequestId(requestId string) *InstancesRemoveResourcePoliciesCall {
87145	c.urlParams_.Set("requestId", requestId)
87146	return c
87147}
87148
87149// Fields allows partial responses to be retrieved. See
87150// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87151// for more information.
87152func (c *InstancesRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *InstancesRemoveResourcePoliciesCall {
87153	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87154	return c
87155}
87156
87157// Context sets the context to be used in this call's Do method. Any
87158// pending HTTP request will be aborted if the provided context is
87159// canceled.
87160func (c *InstancesRemoveResourcePoliciesCall) Context(ctx context.Context) *InstancesRemoveResourcePoliciesCall {
87161	c.ctx_ = ctx
87162	return c
87163}
87164
87165// Header returns an http.Header that can be modified by the caller to
87166// add HTTP headers to the request.
87167func (c *InstancesRemoveResourcePoliciesCall) Header() http.Header {
87168	if c.header_ == nil {
87169		c.header_ = make(http.Header)
87170	}
87171	return c.header_
87172}
87173
87174func (c *InstancesRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
87175	reqHeaders := make(http.Header)
87176	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
87177	for k, v := range c.header_ {
87178		reqHeaders[k] = v
87179	}
87180	reqHeaders.Set("User-Agent", c.s.userAgent())
87181	var body io.Reader = nil
87182	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesremoveresourcepoliciesrequest)
87183	if err != nil {
87184		return nil, err
87185	}
87186	reqHeaders.Set("Content-Type", "application/json")
87187	c.urlParams_.Set("alt", alt)
87188	c.urlParams_.Set("prettyPrint", "false")
87189	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/removeResourcePolicies")
87190	urls += "?" + c.urlParams_.Encode()
87191	req, err := http.NewRequest("POST", urls, body)
87192	if err != nil {
87193		return nil, err
87194	}
87195	req.Header = reqHeaders
87196	googleapi.Expand(req.URL, map[string]string{
87197		"project":  c.project,
87198		"zone":     c.zone,
87199		"instance": c.instance,
87200	})
87201	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87202}
87203
87204// Do executes the "compute.instances.removeResourcePolicies" call.
87205// Exactly one of *Operation or error will be non-nil. Any non-2xx
87206// status code is an error. Response headers are in either
87207// *Operation.ServerResponse.Header or (if a response was returned at
87208// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87209// to check whether the returned error was because
87210// http.StatusNotModified was returned.
87211func (c *InstancesRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87212	gensupport.SetOptions(c.urlParams_, opts...)
87213	res, err := c.doRequest("json")
87214	if res != nil && res.StatusCode == http.StatusNotModified {
87215		if res.Body != nil {
87216			res.Body.Close()
87217		}
87218		return nil, &googleapi.Error{
87219			Code:   res.StatusCode,
87220			Header: res.Header,
87221		}
87222	}
87223	if err != nil {
87224		return nil, err
87225	}
87226	defer googleapi.CloseBody(res)
87227	if err := googleapi.CheckResponse(res); err != nil {
87228		return nil, err
87229	}
87230	ret := &Operation{
87231		ServerResponse: googleapi.ServerResponse{
87232			Header:         res.Header,
87233			HTTPStatusCode: res.StatusCode,
87234		},
87235	}
87236	target := &ret
87237	if err := gensupport.DecodeResponse(target, res); err != nil {
87238		return nil, err
87239	}
87240	return ret, nil
87241	// {
87242	//   "description": "Removes resource policies from an instance.",
87243	//   "httpMethod": "POST",
87244	//   "id": "compute.instances.removeResourcePolicies",
87245	//   "parameterOrder": [
87246	//     "project",
87247	//     "zone",
87248	//     "instance"
87249	//   ],
87250	//   "parameters": {
87251	//     "instance": {
87252	//       "description": "The instance name for this request.",
87253	//       "location": "path",
87254	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87255	//       "required": true,
87256	//       "type": "string"
87257	//     },
87258	//     "project": {
87259	//       "description": "Project ID for this request.",
87260	//       "location": "path",
87261	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87262	//       "required": true,
87263	//       "type": "string"
87264	//     },
87265	//     "requestId": {
87266	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87267	//       "location": "query",
87268	//       "type": "string"
87269	//     },
87270	//     "zone": {
87271	//       "description": "The name of the zone for this request.",
87272	//       "location": "path",
87273	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87274	//       "required": true,
87275	//       "type": "string"
87276	//     }
87277	//   },
87278	//   "path": "{project}/zones/{zone}/instances/{instance}/removeResourcePolicies",
87279	//   "request": {
87280	//     "$ref": "InstancesRemoveResourcePoliciesRequest"
87281	//   },
87282	//   "response": {
87283	//     "$ref": "Operation"
87284	//   },
87285	//   "scopes": [
87286	//     "https://www.googleapis.com/auth/cloud-platform",
87287	//     "https://www.googleapis.com/auth/compute"
87288	//   ]
87289	// }
87290
87291}
87292
87293// method id "compute.instances.reset":
87294
87295type InstancesResetCall struct {
87296	s          *Service
87297	project    string
87298	zone       string
87299	instance   string
87300	urlParams_ gensupport.URLParams
87301	ctx_       context.Context
87302	header_    http.Header
87303}
87304
87305// Reset: Performs a reset on the instance. This is a hard reset the VM
87306// does not do a graceful shutdown. For more information, see Resetting
87307// an instance.
87308// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/reset
87309func (r *InstancesService) Reset(project string, zone string, instance string) *InstancesResetCall {
87310	c := &InstancesResetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87311	c.project = project
87312	c.zone = zone
87313	c.instance = instance
87314	return c
87315}
87316
87317// RequestId sets the optional parameter "requestId": An optional
87318// request ID to identify requests. Specify a unique request ID so that
87319// if you must retry your request, the server will know to ignore the
87320// request if it has already been completed.
87321//
87322// For example, consider a situation where you make an initial request
87323// and the request times out. If you make the request again with the
87324// same request ID, the server can check if original operation with the
87325// same request ID was received, and if so, will ignore the second
87326// request. This prevents clients from accidentally creating duplicate
87327// commitments.
87328//
87329// The request ID must be a valid UUID with the exception that zero UUID
87330// is not supported (00000000-0000-0000-0000-000000000000).
87331func (c *InstancesResetCall) RequestId(requestId string) *InstancesResetCall {
87332	c.urlParams_.Set("requestId", requestId)
87333	return c
87334}
87335
87336// Fields allows partial responses to be retrieved. See
87337// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87338// for more information.
87339func (c *InstancesResetCall) Fields(s ...googleapi.Field) *InstancesResetCall {
87340	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87341	return c
87342}
87343
87344// Context sets the context to be used in this call's Do method. Any
87345// pending HTTP request will be aborted if the provided context is
87346// canceled.
87347func (c *InstancesResetCall) Context(ctx context.Context) *InstancesResetCall {
87348	c.ctx_ = ctx
87349	return c
87350}
87351
87352// Header returns an http.Header that can be modified by the caller to
87353// add HTTP headers to the request.
87354func (c *InstancesResetCall) Header() http.Header {
87355	if c.header_ == nil {
87356		c.header_ = make(http.Header)
87357	}
87358	return c.header_
87359}
87360
87361func (c *InstancesResetCall) doRequest(alt string) (*http.Response, error) {
87362	reqHeaders := make(http.Header)
87363	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
87364	for k, v := range c.header_ {
87365		reqHeaders[k] = v
87366	}
87367	reqHeaders.Set("User-Agent", c.s.userAgent())
87368	var body io.Reader = nil
87369	c.urlParams_.Set("alt", alt)
87370	c.urlParams_.Set("prettyPrint", "false")
87371	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/reset")
87372	urls += "?" + c.urlParams_.Encode()
87373	req, err := http.NewRequest("POST", urls, body)
87374	if err != nil {
87375		return nil, err
87376	}
87377	req.Header = reqHeaders
87378	googleapi.Expand(req.URL, map[string]string{
87379		"project":  c.project,
87380		"zone":     c.zone,
87381		"instance": c.instance,
87382	})
87383	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87384}
87385
87386// Do executes the "compute.instances.reset" call.
87387// Exactly one of *Operation or error will be non-nil. Any non-2xx
87388// status code is an error. Response headers are in either
87389// *Operation.ServerResponse.Header or (if a response was returned at
87390// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87391// to check whether the returned error was because
87392// http.StatusNotModified was returned.
87393func (c *InstancesResetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87394	gensupport.SetOptions(c.urlParams_, opts...)
87395	res, err := c.doRequest("json")
87396	if res != nil && res.StatusCode == http.StatusNotModified {
87397		if res.Body != nil {
87398			res.Body.Close()
87399		}
87400		return nil, &googleapi.Error{
87401			Code:   res.StatusCode,
87402			Header: res.Header,
87403		}
87404	}
87405	if err != nil {
87406		return nil, err
87407	}
87408	defer googleapi.CloseBody(res)
87409	if err := googleapi.CheckResponse(res); err != nil {
87410		return nil, err
87411	}
87412	ret := &Operation{
87413		ServerResponse: googleapi.ServerResponse{
87414			Header:         res.Header,
87415			HTTPStatusCode: res.StatusCode,
87416		},
87417	}
87418	target := &ret
87419	if err := gensupport.DecodeResponse(target, res); err != nil {
87420		return nil, err
87421	}
87422	return ret, nil
87423	// {
87424	//   "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.",
87425	//   "httpMethod": "POST",
87426	//   "id": "compute.instances.reset",
87427	//   "parameterOrder": [
87428	//     "project",
87429	//     "zone",
87430	//     "instance"
87431	//   ],
87432	//   "parameters": {
87433	//     "instance": {
87434	//       "description": "Name of the instance scoping this request.",
87435	//       "location": "path",
87436	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87437	//       "required": true,
87438	//       "type": "string"
87439	//     },
87440	//     "project": {
87441	//       "description": "Project ID for this request.",
87442	//       "location": "path",
87443	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87444	//       "required": true,
87445	//       "type": "string"
87446	//     },
87447	//     "requestId": {
87448	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87449	//       "location": "query",
87450	//       "type": "string"
87451	//     },
87452	//     "zone": {
87453	//       "description": "The name of the zone for this request.",
87454	//       "location": "path",
87455	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87456	//       "required": true,
87457	//       "type": "string"
87458	//     }
87459	//   },
87460	//   "path": "{project}/zones/{zone}/instances/{instance}/reset",
87461	//   "response": {
87462	//     "$ref": "Operation"
87463	//   },
87464	//   "scopes": [
87465	//     "https://www.googleapis.com/auth/cloud-platform",
87466	//     "https://www.googleapis.com/auth/compute"
87467	//   ]
87468	// }
87469
87470}
87471
87472// method id "compute.instances.resume":
87473
87474type InstancesResumeCall struct {
87475	s                      *Service
87476	project                string
87477	zone                   string
87478	instance               string
87479	instancesresumerequest *InstancesResumeRequest
87480	urlParams_             gensupport.URLParams
87481	ctx_                   context.Context
87482	header_                http.Header
87483}
87484
87485// Resume: Resumes an instance that was suspended using the
87486// instances().suspend method.
87487func (r *InstancesService) Resume(project string, zone string, instance string, instancesresumerequest *InstancesResumeRequest) *InstancesResumeCall {
87488	c := &InstancesResumeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87489	c.project = project
87490	c.zone = zone
87491	c.instance = instance
87492	c.instancesresumerequest = instancesresumerequest
87493	return c
87494}
87495
87496// RequestId sets the optional parameter "requestId": An optional
87497// request ID to identify requests. Specify a unique request ID so that
87498// if you must retry your request, the server will know to ignore the
87499// request if it has already been completed.
87500//
87501// For example, consider a situation where you make an initial request
87502// and the request times out. If you make the request again with the
87503// same request ID, the server can check if original operation with the
87504// same request ID was received, and if so, will ignore the second
87505// request. This prevents clients from accidentally creating duplicate
87506// commitments.
87507//
87508// The request ID must be a valid UUID with the exception that zero UUID
87509// is not supported (00000000-0000-0000-0000-000000000000).
87510func (c *InstancesResumeCall) RequestId(requestId string) *InstancesResumeCall {
87511	c.urlParams_.Set("requestId", requestId)
87512	return c
87513}
87514
87515// Fields allows partial responses to be retrieved. See
87516// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87517// for more information.
87518func (c *InstancesResumeCall) Fields(s ...googleapi.Field) *InstancesResumeCall {
87519	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87520	return c
87521}
87522
87523// Context sets the context to be used in this call's Do method. Any
87524// pending HTTP request will be aborted if the provided context is
87525// canceled.
87526func (c *InstancesResumeCall) Context(ctx context.Context) *InstancesResumeCall {
87527	c.ctx_ = ctx
87528	return c
87529}
87530
87531// Header returns an http.Header that can be modified by the caller to
87532// add HTTP headers to the request.
87533func (c *InstancesResumeCall) Header() http.Header {
87534	if c.header_ == nil {
87535		c.header_ = make(http.Header)
87536	}
87537	return c.header_
87538}
87539
87540func (c *InstancesResumeCall) doRequest(alt string) (*http.Response, error) {
87541	reqHeaders := make(http.Header)
87542	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
87543	for k, v := range c.header_ {
87544		reqHeaders[k] = v
87545	}
87546	reqHeaders.Set("User-Agent", c.s.userAgent())
87547	var body io.Reader = nil
87548	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesresumerequest)
87549	if err != nil {
87550		return nil, err
87551	}
87552	reqHeaders.Set("Content-Type", "application/json")
87553	c.urlParams_.Set("alt", alt)
87554	c.urlParams_.Set("prettyPrint", "false")
87555	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/resume")
87556	urls += "?" + c.urlParams_.Encode()
87557	req, err := http.NewRequest("POST", urls, body)
87558	if err != nil {
87559		return nil, err
87560	}
87561	req.Header = reqHeaders
87562	googleapi.Expand(req.URL, map[string]string{
87563		"project":  c.project,
87564		"zone":     c.zone,
87565		"instance": c.instance,
87566	})
87567	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87568}
87569
87570// Do executes the "compute.instances.resume" call.
87571// Exactly one of *Operation or error will be non-nil. Any non-2xx
87572// status code is an error. Response headers are in either
87573// *Operation.ServerResponse.Header or (if a response was returned at
87574// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87575// to check whether the returned error was because
87576// http.StatusNotModified was returned.
87577func (c *InstancesResumeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87578	gensupport.SetOptions(c.urlParams_, opts...)
87579	res, err := c.doRequest("json")
87580	if res != nil && res.StatusCode == http.StatusNotModified {
87581		if res.Body != nil {
87582			res.Body.Close()
87583		}
87584		return nil, &googleapi.Error{
87585			Code:   res.StatusCode,
87586			Header: res.Header,
87587		}
87588	}
87589	if err != nil {
87590		return nil, err
87591	}
87592	defer googleapi.CloseBody(res)
87593	if err := googleapi.CheckResponse(res); err != nil {
87594		return nil, err
87595	}
87596	ret := &Operation{
87597		ServerResponse: googleapi.ServerResponse{
87598			Header:         res.Header,
87599			HTTPStatusCode: res.StatusCode,
87600		},
87601	}
87602	target := &ret
87603	if err := gensupport.DecodeResponse(target, res); err != nil {
87604		return nil, err
87605	}
87606	return ret, nil
87607	// {
87608	//   "description": "Resumes an instance that was suspended using the instances().suspend method.",
87609	//   "httpMethod": "POST",
87610	//   "id": "compute.instances.resume",
87611	//   "parameterOrder": [
87612	//     "project",
87613	//     "zone",
87614	//     "instance"
87615	//   ],
87616	//   "parameters": {
87617	//     "instance": {
87618	//       "description": "Name of the instance resource to resume.",
87619	//       "location": "path",
87620	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87621	//       "required": true,
87622	//       "type": "string"
87623	//     },
87624	//     "project": {
87625	//       "description": "Project ID for this request.",
87626	//       "location": "path",
87627	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87628	//       "required": true,
87629	//       "type": "string"
87630	//     },
87631	//     "requestId": {
87632	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87633	//       "location": "query",
87634	//       "type": "string"
87635	//     },
87636	//     "zone": {
87637	//       "description": "The name of the zone for this request.",
87638	//       "location": "path",
87639	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87640	//       "required": true,
87641	//       "type": "string"
87642	//     }
87643	//   },
87644	//   "path": "{project}/zones/{zone}/instances/{instance}/resume",
87645	//   "request": {
87646	//     "$ref": "InstancesResumeRequest"
87647	//   },
87648	//   "response": {
87649	//     "$ref": "Operation"
87650	//   },
87651	//   "scopes": [
87652	//     "https://www.googleapis.com/auth/cloud-platform",
87653	//     "https://www.googleapis.com/auth/compute"
87654	//   ]
87655	// }
87656
87657}
87658
87659// method id "compute.instances.setDeletionProtection":
87660
87661type InstancesSetDeletionProtectionCall struct {
87662	s          *Service
87663	project    string
87664	zone       string
87665	resource   string
87666	urlParams_ gensupport.URLParams
87667	ctx_       context.Context
87668	header_    http.Header
87669}
87670
87671// SetDeletionProtection: Sets deletion protection on the instance.
87672func (r *InstancesService) SetDeletionProtection(project string, zone string, resource string) *InstancesSetDeletionProtectionCall {
87673	c := &InstancesSetDeletionProtectionCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87674	c.project = project
87675	c.zone = zone
87676	c.resource = resource
87677	return c
87678}
87679
87680// DeletionProtection sets the optional parameter "deletionProtection":
87681// Whether the resource should be protected against deletion.
87682func (c *InstancesSetDeletionProtectionCall) DeletionProtection(deletionProtection bool) *InstancesSetDeletionProtectionCall {
87683	c.urlParams_.Set("deletionProtection", fmt.Sprint(deletionProtection))
87684	return c
87685}
87686
87687// RequestId sets the optional parameter "requestId": An optional
87688// request ID to identify requests. Specify a unique request ID so that
87689// if you must retry your request, the server will know to ignore the
87690// request if it has already been completed.
87691//
87692// For example, consider a situation where you make an initial request
87693// and the request times out. If you make the request again with the
87694// same request ID, the server can check if original operation with the
87695// same request ID was received, and if so, will ignore the second
87696// request. This prevents clients from accidentally creating duplicate
87697// commitments.
87698//
87699// The request ID must be a valid UUID with the exception that zero UUID
87700// is not supported (00000000-0000-0000-0000-000000000000).
87701func (c *InstancesSetDeletionProtectionCall) RequestId(requestId string) *InstancesSetDeletionProtectionCall {
87702	c.urlParams_.Set("requestId", requestId)
87703	return c
87704}
87705
87706// Fields allows partial responses to be retrieved. See
87707// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87708// for more information.
87709func (c *InstancesSetDeletionProtectionCall) Fields(s ...googleapi.Field) *InstancesSetDeletionProtectionCall {
87710	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87711	return c
87712}
87713
87714// Context sets the context to be used in this call's Do method. Any
87715// pending HTTP request will be aborted if the provided context is
87716// canceled.
87717func (c *InstancesSetDeletionProtectionCall) Context(ctx context.Context) *InstancesSetDeletionProtectionCall {
87718	c.ctx_ = ctx
87719	return c
87720}
87721
87722// Header returns an http.Header that can be modified by the caller to
87723// add HTTP headers to the request.
87724func (c *InstancesSetDeletionProtectionCall) Header() http.Header {
87725	if c.header_ == nil {
87726		c.header_ = make(http.Header)
87727	}
87728	return c.header_
87729}
87730
87731func (c *InstancesSetDeletionProtectionCall) doRequest(alt string) (*http.Response, error) {
87732	reqHeaders := make(http.Header)
87733	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
87734	for k, v := range c.header_ {
87735		reqHeaders[k] = v
87736	}
87737	reqHeaders.Set("User-Agent", c.s.userAgent())
87738	var body io.Reader = nil
87739	c.urlParams_.Set("alt", alt)
87740	c.urlParams_.Set("prettyPrint", "false")
87741	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/setDeletionProtection")
87742	urls += "?" + c.urlParams_.Encode()
87743	req, err := http.NewRequest("POST", urls, body)
87744	if err != nil {
87745		return nil, err
87746	}
87747	req.Header = reqHeaders
87748	googleapi.Expand(req.URL, map[string]string{
87749		"project":  c.project,
87750		"zone":     c.zone,
87751		"resource": c.resource,
87752	})
87753	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87754}
87755
87756// Do executes the "compute.instances.setDeletionProtection" call.
87757// Exactly one of *Operation or error will be non-nil. Any non-2xx
87758// status code is an error. Response headers are in either
87759// *Operation.ServerResponse.Header or (if a response was returned at
87760// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87761// to check whether the returned error was because
87762// http.StatusNotModified was returned.
87763func (c *InstancesSetDeletionProtectionCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87764	gensupport.SetOptions(c.urlParams_, opts...)
87765	res, err := c.doRequest("json")
87766	if res != nil && res.StatusCode == http.StatusNotModified {
87767		if res.Body != nil {
87768			res.Body.Close()
87769		}
87770		return nil, &googleapi.Error{
87771			Code:   res.StatusCode,
87772			Header: res.Header,
87773		}
87774	}
87775	if err != nil {
87776		return nil, err
87777	}
87778	defer googleapi.CloseBody(res)
87779	if err := googleapi.CheckResponse(res); err != nil {
87780		return nil, err
87781	}
87782	ret := &Operation{
87783		ServerResponse: googleapi.ServerResponse{
87784			Header:         res.Header,
87785			HTTPStatusCode: res.StatusCode,
87786		},
87787	}
87788	target := &ret
87789	if err := gensupport.DecodeResponse(target, res); err != nil {
87790		return nil, err
87791	}
87792	return ret, nil
87793	// {
87794	//   "description": "Sets deletion protection on the instance.",
87795	//   "httpMethod": "POST",
87796	//   "id": "compute.instances.setDeletionProtection",
87797	//   "parameterOrder": [
87798	//     "project",
87799	//     "zone",
87800	//     "resource"
87801	//   ],
87802	//   "parameters": {
87803	//     "deletionProtection": {
87804	//       "default": "true",
87805	//       "description": "Whether the resource should be protected against deletion.",
87806	//       "location": "query",
87807	//       "type": "boolean"
87808	//     },
87809	//     "project": {
87810	//       "description": "Project ID for this request.",
87811	//       "location": "path",
87812	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87813	//       "required": true,
87814	//       "type": "string"
87815	//     },
87816	//     "requestId": {
87817	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87818	//       "location": "query",
87819	//       "type": "string"
87820	//     },
87821	//     "resource": {
87822	//       "description": "Name or id of the resource for this request.",
87823	//       "location": "path",
87824	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87825	//       "required": true,
87826	//       "type": "string"
87827	//     },
87828	//     "zone": {
87829	//       "description": "The name of the zone for this request.",
87830	//       "location": "path",
87831	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87832	//       "required": true,
87833	//       "type": "string"
87834	//     }
87835	//   },
87836	//   "path": "{project}/zones/{zone}/instances/{resource}/setDeletionProtection",
87837	//   "response": {
87838	//     "$ref": "Operation"
87839	//   },
87840	//   "scopes": [
87841	//     "https://www.googleapis.com/auth/cloud-platform",
87842	//     "https://www.googleapis.com/auth/compute"
87843	//   ]
87844	// }
87845
87846}
87847
87848// method id "compute.instances.setDiskAutoDelete":
87849
87850type InstancesSetDiskAutoDeleteCall struct {
87851	s          *Service
87852	project    string
87853	zone       string
87854	instance   string
87855	urlParams_ gensupport.URLParams
87856	ctx_       context.Context
87857	header_    http.Header
87858}
87859
87860// SetDiskAutoDelete: Sets the auto-delete flag for a disk attached to
87861// an instance.
87862// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setDiskAutoDelete
87863func (r *InstancesService) SetDiskAutoDelete(project string, zone string, instance string, autoDelete bool, deviceName string) *InstancesSetDiskAutoDeleteCall {
87864	c := &InstancesSetDiskAutoDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87865	c.project = project
87866	c.zone = zone
87867	c.instance = instance
87868	c.urlParams_.Set("autoDelete", fmt.Sprint(autoDelete))
87869	c.urlParams_.Set("deviceName", deviceName)
87870	return c
87871}
87872
87873// RequestId sets the optional parameter "requestId": An optional
87874// request ID to identify requests. Specify a unique request ID so that
87875// if you must retry your request, the server will know to ignore the
87876// request if it has already been completed.
87877//
87878// For example, consider a situation where you make an initial request
87879// and the request times out. If you make the request again with the
87880// same request ID, the server can check if original operation with the
87881// same request ID was received, and if so, will ignore the second
87882// request. This prevents clients from accidentally creating duplicate
87883// commitments.
87884//
87885// The request ID must be a valid UUID with the exception that zero UUID
87886// is not supported (00000000-0000-0000-0000-000000000000).
87887func (c *InstancesSetDiskAutoDeleteCall) RequestId(requestId string) *InstancesSetDiskAutoDeleteCall {
87888	c.urlParams_.Set("requestId", requestId)
87889	return c
87890}
87891
87892// Fields allows partial responses to be retrieved. See
87893// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87894// for more information.
87895func (c *InstancesSetDiskAutoDeleteCall) Fields(s ...googleapi.Field) *InstancesSetDiskAutoDeleteCall {
87896	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87897	return c
87898}
87899
87900// Context sets the context to be used in this call's Do method. Any
87901// pending HTTP request will be aborted if the provided context is
87902// canceled.
87903func (c *InstancesSetDiskAutoDeleteCall) Context(ctx context.Context) *InstancesSetDiskAutoDeleteCall {
87904	c.ctx_ = ctx
87905	return c
87906}
87907
87908// Header returns an http.Header that can be modified by the caller to
87909// add HTTP headers to the request.
87910func (c *InstancesSetDiskAutoDeleteCall) Header() http.Header {
87911	if c.header_ == nil {
87912		c.header_ = make(http.Header)
87913	}
87914	return c.header_
87915}
87916
87917func (c *InstancesSetDiskAutoDeleteCall) doRequest(alt string) (*http.Response, error) {
87918	reqHeaders := make(http.Header)
87919	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
87920	for k, v := range c.header_ {
87921		reqHeaders[k] = v
87922	}
87923	reqHeaders.Set("User-Agent", c.s.userAgent())
87924	var body io.Reader = nil
87925	c.urlParams_.Set("alt", alt)
87926	c.urlParams_.Set("prettyPrint", "false")
87927	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete")
87928	urls += "?" + c.urlParams_.Encode()
87929	req, err := http.NewRequest("POST", urls, body)
87930	if err != nil {
87931		return nil, err
87932	}
87933	req.Header = reqHeaders
87934	googleapi.Expand(req.URL, map[string]string{
87935		"project":  c.project,
87936		"zone":     c.zone,
87937		"instance": c.instance,
87938	})
87939	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87940}
87941
87942// Do executes the "compute.instances.setDiskAutoDelete" call.
87943// Exactly one of *Operation or error will be non-nil. Any non-2xx
87944// status code is an error. Response headers are in either
87945// *Operation.ServerResponse.Header or (if a response was returned at
87946// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87947// to check whether the returned error was because
87948// http.StatusNotModified was returned.
87949func (c *InstancesSetDiskAutoDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87950	gensupport.SetOptions(c.urlParams_, opts...)
87951	res, err := c.doRequest("json")
87952	if res != nil && res.StatusCode == http.StatusNotModified {
87953		if res.Body != nil {
87954			res.Body.Close()
87955		}
87956		return nil, &googleapi.Error{
87957			Code:   res.StatusCode,
87958			Header: res.Header,
87959		}
87960	}
87961	if err != nil {
87962		return nil, err
87963	}
87964	defer googleapi.CloseBody(res)
87965	if err := googleapi.CheckResponse(res); err != nil {
87966		return nil, err
87967	}
87968	ret := &Operation{
87969		ServerResponse: googleapi.ServerResponse{
87970			Header:         res.Header,
87971			HTTPStatusCode: res.StatusCode,
87972		},
87973	}
87974	target := &ret
87975	if err := gensupport.DecodeResponse(target, res); err != nil {
87976		return nil, err
87977	}
87978	return ret, nil
87979	// {
87980	//   "description": "Sets the auto-delete flag for a disk attached to an instance.",
87981	//   "httpMethod": "POST",
87982	//   "id": "compute.instances.setDiskAutoDelete",
87983	//   "parameterOrder": [
87984	//     "project",
87985	//     "zone",
87986	//     "instance",
87987	//     "autoDelete",
87988	//     "deviceName"
87989	//   ],
87990	//   "parameters": {
87991	//     "autoDelete": {
87992	//       "description": "Whether to auto-delete the disk when the instance is deleted.",
87993	//       "location": "query",
87994	//       "required": true,
87995	//       "type": "boolean"
87996	//     },
87997	//     "deviceName": {
87998	//       "description": "The device name of the disk to modify. Make a get() request on the instance to view currently attached disks and device names.",
87999	//       "location": "query",
88000	//       "pattern": "\\w[\\w.-]{0,254}",
88001	//       "required": true,
88002	//       "type": "string"
88003	//     },
88004	//     "instance": {
88005	//       "description": "The instance name for this request.",
88006	//       "location": "path",
88007	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88008	//       "required": true,
88009	//       "type": "string"
88010	//     },
88011	//     "project": {
88012	//       "description": "Project ID for this request.",
88013	//       "location": "path",
88014	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88015	//       "required": true,
88016	//       "type": "string"
88017	//     },
88018	//     "requestId": {
88019	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
88020	//       "location": "query",
88021	//       "type": "string"
88022	//     },
88023	//     "zone": {
88024	//       "description": "The name of the zone for this request.",
88025	//       "location": "path",
88026	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88027	//       "required": true,
88028	//       "type": "string"
88029	//     }
88030	//   },
88031	//   "path": "{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete",
88032	//   "response": {
88033	//     "$ref": "Operation"
88034	//   },
88035	//   "scopes": [
88036	//     "https://www.googleapis.com/auth/cloud-platform",
88037	//     "https://www.googleapis.com/auth/compute"
88038	//   ]
88039	// }
88040
88041}
88042
88043// method id "compute.instances.setIamPolicy":
88044
88045type InstancesSetIamPolicyCall struct {
88046	s                    *Service
88047	project              string
88048	zone                 string
88049	resource             string
88050	zonesetpolicyrequest *ZoneSetPolicyRequest
88051	urlParams_           gensupport.URLParams
88052	ctx_                 context.Context
88053	header_              http.Header
88054}
88055
88056// SetIamPolicy: Sets the access control policy on the specified
88057// resource. Replaces any existing policy.
88058func (r *InstancesService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *InstancesSetIamPolicyCall {
88059	c := &InstancesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88060	c.project = project
88061	c.zone = zone
88062	c.resource = resource
88063	c.zonesetpolicyrequest = zonesetpolicyrequest
88064	return c
88065}
88066
88067// Fields allows partial responses to be retrieved. See
88068// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88069// for more information.
88070func (c *InstancesSetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesSetIamPolicyCall {
88071	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88072	return c
88073}
88074
88075// Context sets the context to be used in this call's Do method. Any
88076// pending HTTP request will be aborted if the provided context is
88077// canceled.
88078func (c *InstancesSetIamPolicyCall) Context(ctx context.Context) *InstancesSetIamPolicyCall {
88079	c.ctx_ = ctx
88080	return c
88081}
88082
88083// Header returns an http.Header that can be modified by the caller to
88084// add HTTP headers to the request.
88085func (c *InstancesSetIamPolicyCall) Header() http.Header {
88086	if c.header_ == nil {
88087		c.header_ = make(http.Header)
88088	}
88089	return c.header_
88090}
88091
88092func (c *InstancesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
88093	reqHeaders := make(http.Header)
88094	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
88095	for k, v := range c.header_ {
88096		reqHeaders[k] = v
88097	}
88098	reqHeaders.Set("User-Agent", c.s.userAgent())
88099	var body io.Reader = nil
88100	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
88101	if err != nil {
88102		return nil, err
88103	}
88104	reqHeaders.Set("Content-Type", "application/json")
88105	c.urlParams_.Set("alt", alt)
88106	c.urlParams_.Set("prettyPrint", "false")
88107	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/setIamPolicy")
88108	urls += "?" + c.urlParams_.Encode()
88109	req, err := http.NewRequest("POST", urls, body)
88110	if err != nil {
88111		return nil, err
88112	}
88113	req.Header = reqHeaders
88114	googleapi.Expand(req.URL, map[string]string{
88115		"project":  c.project,
88116		"zone":     c.zone,
88117		"resource": c.resource,
88118	})
88119	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88120}
88121
88122// Do executes the "compute.instances.setIamPolicy" call.
88123// Exactly one of *Policy or error will be non-nil. Any non-2xx status
88124// code is an error. Response headers are in either
88125// *Policy.ServerResponse.Header or (if a response was returned at all)
88126// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
88127// check whether the returned error was because http.StatusNotModified
88128// was returned.
88129func (c *InstancesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
88130	gensupport.SetOptions(c.urlParams_, opts...)
88131	res, err := c.doRequest("json")
88132	if res != nil && res.StatusCode == http.StatusNotModified {
88133		if res.Body != nil {
88134			res.Body.Close()
88135		}
88136		return nil, &googleapi.Error{
88137			Code:   res.StatusCode,
88138			Header: res.Header,
88139		}
88140	}
88141	if err != nil {
88142		return nil, err
88143	}
88144	defer googleapi.CloseBody(res)
88145	if err := googleapi.CheckResponse(res); err != nil {
88146		return nil, err
88147	}
88148	ret := &Policy{
88149		ServerResponse: googleapi.ServerResponse{
88150			Header:         res.Header,
88151			HTTPStatusCode: res.StatusCode,
88152		},
88153	}
88154	target := &ret
88155	if err := gensupport.DecodeResponse(target, res); err != nil {
88156		return nil, err
88157	}
88158	return ret, nil
88159	// {
88160	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
88161	//   "httpMethod": "POST",
88162	//   "id": "compute.instances.setIamPolicy",
88163	//   "parameterOrder": [
88164	//     "project",
88165	//     "zone",
88166	//     "resource"
88167	//   ],
88168	//   "parameters": {
88169	//     "project": {
88170	//       "description": "Project ID for this request.",
88171	//       "location": "path",
88172	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88173	//       "required": true,
88174	//       "type": "string"
88175	//     },
88176	//     "resource": {
88177	//       "description": "Name or id of the resource for this request.",
88178	//       "location": "path",
88179	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88180	//       "required": true,
88181	//       "type": "string"
88182	//     },
88183	//     "zone": {
88184	//       "description": "The name of the zone for this request.",
88185	//       "location": "path",
88186	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88187	//       "required": true,
88188	//       "type": "string"
88189	//     }
88190	//   },
88191	//   "path": "{project}/zones/{zone}/instances/{resource}/setIamPolicy",
88192	//   "request": {
88193	//     "$ref": "ZoneSetPolicyRequest"
88194	//   },
88195	//   "response": {
88196	//     "$ref": "Policy"
88197	//   },
88198	//   "scopes": [
88199	//     "https://www.googleapis.com/auth/cloud-platform",
88200	//     "https://www.googleapis.com/auth/compute"
88201	//   ]
88202	// }
88203
88204}
88205
88206// method id "compute.instances.setLabels":
88207
88208type InstancesSetLabelsCall struct {
88209	s                         *Service
88210	project                   string
88211	zone                      string
88212	instance                  string
88213	instancessetlabelsrequest *InstancesSetLabelsRequest
88214	urlParams_                gensupport.URLParams
88215	ctx_                      context.Context
88216	header_                   http.Header
88217}
88218
88219// SetLabels: Sets labels on an instance. To learn more about labels,
88220// read the Labeling Resources documentation.
88221func (r *InstancesService) SetLabels(project string, zone string, instance string, instancessetlabelsrequest *InstancesSetLabelsRequest) *InstancesSetLabelsCall {
88222	c := &InstancesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88223	c.project = project
88224	c.zone = zone
88225	c.instance = instance
88226	c.instancessetlabelsrequest = instancessetlabelsrequest
88227	return c
88228}
88229
88230// RequestId sets the optional parameter "requestId": An optional
88231// request ID to identify requests. Specify a unique request ID so that
88232// if you must retry your request, the server will know to ignore the
88233// request if it has already been completed.
88234//
88235// For example, consider a situation where you make an initial request
88236// and the request times out. If you make the request again with the
88237// same request ID, the server can check if original operation with the
88238// same request ID was received, and if so, will ignore the second
88239// request. This prevents clients from accidentally creating duplicate
88240// commitments.
88241//
88242// The request ID must be a valid UUID with the exception that zero UUID
88243// is not supported (00000000-0000-0000-0000-000000000000).
88244func (c *InstancesSetLabelsCall) RequestId(requestId string) *InstancesSetLabelsCall {
88245	c.urlParams_.Set("requestId", requestId)
88246	return c
88247}
88248
88249// Fields allows partial responses to be retrieved. See
88250// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88251// for more information.
88252func (c *InstancesSetLabelsCall) Fields(s ...googleapi.Field) *InstancesSetLabelsCall {
88253	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88254	return c
88255}
88256
88257// Context sets the context to be used in this call's Do method. Any
88258// pending HTTP request will be aborted if the provided context is
88259// canceled.
88260func (c *InstancesSetLabelsCall) Context(ctx context.Context) *InstancesSetLabelsCall {
88261	c.ctx_ = ctx
88262	return c
88263}
88264
88265// Header returns an http.Header that can be modified by the caller to
88266// add HTTP headers to the request.
88267func (c *InstancesSetLabelsCall) Header() http.Header {
88268	if c.header_ == nil {
88269		c.header_ = make(http.Header)
88270	}
88271	return c.header_
88272}
88273
88274func (c *InstancesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
88275	reqHeaders := make(http.Header)
88276	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
88277	for k, v := range c.header_ {
88278		reqHeaders[k] = v
88279	}
88280	reqHeaders.Set("User-Agent", c.s.userAgent())
88281	var body io.Reader = nil
88282	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetlabelsrequest)
88283	if err != nil {
88284		return nil, err
88285	}
88286	reqHeaders.Set("Content-Type", "application/json")
88287	c.urlParams_.Set("alt", alt)
88288	c.urlParams_.Set("prettyPrint", "false")
88289	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setLabels")
88290	urls += "?" + c.urlParams_.Encode()
88291	req, err := http.NewRequest("POST", urls, body)
88292	if err != nil {
88293		return nil, err
88294	}
88295	req.Header = reqHeaders
88296	googleapi.Expand(req.URL, map[string]string{
88297		"project":  c.project,
88298		"zone":     c.zone,
88299		"instance": c.instance,
88300	})
88301	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88302}
88303
88304// Do executes the "compute.instances.setLabels" call.
88305// Exactly one of *Operation or error will be non-nil. Any non-2xx
88306// status code is an error. Response headers are in either
88307// *Operation.ServerResponse.Header or (if a response was returned at
88308// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88309// to check whether the returned error was because
88310// http.StatusNotModified was returned.
88311func (c *InstancesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88312	gensupport.SetOptions(c.urlParams_, opts...)
88313	res, err := c.doRequest("json")
88314	if res != nil && res.StatusCode == http.StatusNotModified {
88315		if res.Body != nil {
88316			res.Body.Close()
88317		}
88318		return nil, &googleapi.Error{
88319			Code:   res.StatusCode,
88320			Header: res.Header,
88321		}
88322	}
88323	if err != nil {
88324		return nil, err
88325	}
88326	defer googleapi.CloseBody(res)
88327	if err := googleapi.CheckResponse(res); err != nil {
88328		return nil, err
88329	}
88330	ret := &Operation{
88331		ServerResponse: googleapi.ServerResponse{
88332			Header:         res.Header,
88333			HTTPStatusCode: res.StatusCode,
88334		},
88335	}
88336	target := &ret
88337	if err := gensupport.DecodeResponse(target, res); err != nil {
88338		return nil, err
88339	}
88340	return ret, nil
88341	// {
88342	//   "description": "Sets labels on an instance. To learn more about labels, read the Labeling Resources documentation.",
88343	//   "httpMethod": "POST",
88344	//   "id": "compute.instances.setLabels",
88345	//   "parameterOrder": [
88346	//     "project",
88347	//     "zone",
88348	//     "instance"
88349	//   ],
88350	//   "parameters": {
88351	//     "instance": {
88352	//       "description": "Name of the instance scoping this request.",
88353	//       "location": "path",
88354	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88355	//       "required": true,
88356	//       "type": "string"
88357	//     },
88358	//     "project": {
88359	//       "description": "Project ID for this request.",
88360	//       "location": "path",
88361	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88362	//       "required": true,
88363	//       "type": "string"
88364	//     },
88365	//     "requestId": {
88366	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
88367	//       "location": "query",
88368	//       "type": "string"
88369	//     },
88370	//     "zone": {
88371	//       "description": "The name of the zone for this request.",
88372	//       "location": "path",
88373	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88374	//       "required": true,
88375	//       "type": "string"
88376	//     }
88377	//   },
88378	//   "path": "{project}/zones/{zone}/instances/{instance}/setLabels",
88379	//   "request": {
88380	//     "$ref": "InstancesSetLabelsRequest"
88381	//   },
88382	//   "response": {
88383	//     "$ref": "Operation"
88384	//   },
88385	//   "scopes": [
88386	//     "https://www.googleapis.com/auth/cloud-platform",
88387	//     "https://www.googleapis.com/auth/compute"
88388	//   ]
88389	// }
88390
88391}
88392
88393// method id "compute.instances.setMachineResources":
88394
88395type InstancesSetMachineResourcesCall struct {
88396	s                                   *Service
88397	project                             string
88398	zone                                string
88399	instance                            string
88400	instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest
88401	urlParams_                          gensupport.URLParams
88402	ctx_                                context.Context
88403	header_                             http.Header
88404}
88405
88406// SetMachineResources: Changes the number and/or type of accelerator
88407// for a stopped instance to the values specified in the request.
88408func (r *InstancesService) SetMachineResources(project string, zone string, instance string, instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest) *InstancesSetMachineResourcesCall {
88409	c := &InstancesSetMachineResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88410	c.project = project
88411	c.zone = zone
88412	c.instance = instance
88413	c.instancessetmachineresourcesrequest = instancessetmachineresourcesrequest
88414	return c
88415}
88416
88417// RequestId sets the optional parameter "requestId": An optional
88418// request ID to identify requests. Specify a unique request ID so that
88419// if you must retry your request, the server will know to ignore the
88420// request if it has already been completed.
88421//
88422// For example, consider a situation where you make an initial request
88423// and the request times out. If you make the request again with the
88424// same request ID, the server can check if original operation with the
88425// same request ID was received, and if so, will ignore the second
88426// request. This prevents clients from accidentally creating duplicate
88427// commitments.
88428//
88429// The request ID must be a valid UUID with the exception that zero UUID
88430// is not supported (00000000-0000-0000-0000-000000000000).
88431func (c *InstancesSetMachineResourcesCall) RequestId(requestId string) *InstancesSetMachineResourcesCall {
88432	c.urlParams_.Set("requestId", requestId)
88433	return c
88434}
88435
88436// Fields allows partial responses to be retrieved. See
88437// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88438// for more information.
88439func (c *InstancesSetMachineResourcesCall) Fields(s ...googleapi.Field) *InstancesSetMachineResourcesCall {
88440	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88441	return c
88442}
88443
88444// Context sets the context to be used in this call's Do method. Any
88445// pending HTTP request will be aborted if the provided context is
88446// canceled.
88447func (c *InstancesSetMachineResourcesCall) Context(ctx context.Context) *InstancesSetMachineResourcesCall {
88448	c.ctx_ = ctx
88449	return c
88450}
88451
88452// Header returns an http.Header that can be modified by the caller to
88453// add HTTP headers to the request.
88454func (c *InstancesSetMachineResourcesCall) Header() http.Header {
88455	if c.header_ == nil {
88456		c.header_ = make(http.Header)
88457	}
88458	return c.header_
88459}
88460
88461func (c *InstancesSetMachineResourcesCall) doRequest(alt string) (*http.Response, error) {
88462	reqHeaders := make(http.Header)
88463	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
88464	for k, v := range c.header_ {
88465		reqHeaders[k] = v
88466	}
88467	reqHeaders.Set("User-Agent", c.s.userAgent())
88468	var body io.Reader = nil
88469	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachineresourcesrequest)
88470	if err != nil {
88471		return nil, err
88472	}
88473	reqHeaders.Set("Content-Type", "application/json")
88474	c.urlParams_.Set("alt", alt)
88475	c.urlParams_.Set("prettyPrint", "false")
88476	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMachineResources")
88477	urls += "?" + c.urlParams_.Encode()
88478	req, err := http.NewRequest("POST", urls, body)
88479	if err != nil {
88480		return nil, err
88481	}
88482	req.Header = reqHeaders
88483	googleapi.Expand(req.URL, map[string]string{
88484		"project":  c.project,
88485		"zone":     c.zone,
88486		"instance": c.instance,
88487	})
88488	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88489}
88490
88491// Do executes the "compute.instances.setMachineResources" call.
88492// Exactly one of *Operation or error will be non-nil. Any non-2xx
88493// status code is an error. Response headers are in either
88494// *Operation.ServerResponse.Header or (if a response was returned at
88495// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88496// to check whether the returned error was because
88497// http.StatusNotModified was returned.
88498func (c *InstancesSetMachineResourcesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88499	gensupport.SetOptions(c.urlParams_, opts...)
88500	res, err := c.doRequest("json")
88501	if res != nil && res.StatusCode == http.StatusNotModified {
88502		if res.Body != nil {
88503			res.Body.Close()
88504		}
88505		return nil, &googleapi.Error{
88506			Code:   res.StatusCode,
88507			Header: res.Header,
88508		}
88509	}
88510	if err != nil {
88511		return nil, err
88512	}
88513	defer googleapi.CloseBody(res)
88514	if err := googleapi.CheckResponse(res); err != nil {
88515		return nil, err
88516	}
88517	ret := &Operation{
88518		ServerResponse: googleapi.ServerResponse{
88519			Header:         res.Header,
88520			HTTPStatusCode: res.StatusCode,
88521		},
88522	}
88523	target := &ret
88524	if err := gensupport.DecodeResponse(target, res); err != nil {
88525		return nil, err
88526	}
88527	return ret, nil
88528	// {
88529	//   "description": "Changes the number and/or type of accelerator for a stopped instance to the values specified in the request.",
88530	//   "httpMethod": "POST",
88531	//   "id": "compute.instances.setMachineResources",
88532	//   "parameterOrder": [
88533	//     "project",
88534	//     "zone",
88535	//     "instance"
88536	//   ],
88537	//   "parameters": {
88538	//     "instance": {
88539	//       "description": "Name of the instance scoping this request.",
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	//     "zone": {
88558	//       "description": "The name of the zone for this request.",
88559	//       "location": "path",
88560	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88561	//       "required": true,
88562	//       "type": "string"
88563	//     }
88564	//   },
88565	//   "path": "{project}/zones/{zone}/instances/{instance}/setMachineResources",
88566	//   "request": {
88567	//     "$ref": "InstancesSetMachineResourcesRequest"
88568	//   },
88569	//   "response": {
88570	//     "$ref": "Operation"
88571	//   },
88572	//   "scopes": [
88573	//     "https://www.googleapis.com/auth/cloud-platform",
88574	//     "https://www.googleapis.com/auth/compute"
88575	//   ]
88576	// }
88577
88578}
88579
88580// method id "compute.instances.setMachineType":
88581
88582type InstancesSetMachineTypeCall struct {
88583	s                              *Service
88584	project                        string
88585	zone                           string
88586	instance                       string
88587	instancessetmachinetyperequest *InstancesSetMachineTypeRequest
88588	urlParams_                     gensupport.URLParams
88589	ctx_                           context.Context
88590	header_                        http.Header
88591}
88592
88593// SetMachineType: Changes the machine type for a stopped instance to
88594// the machine type specified in the request.
88595func (r *InstancesService) SetMachineType(project string, zone string, instance string, instancessetmachinetyperequest *InstancesSetMachineTypeRequest) *InstancesSetMachineTypeCall {
88596	c := &InstancesSetMachineTypeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88597	c.project = project
88598	c.zone = zone
88599	c.instance = instance
88600	c.instancessetmachinetyperequest = instancessetmachinetyperequest
88601	return c
88602}
88603
88604// RequestId sets the optional parameter "requestId": An optional
88605// request ID to identify requests. Specify a unique request ID so that
88606// if you must retry your request, the server will know to ignore the
88607// request if it has already been completed.
88608//
88609// For example, consider a situation where you make an initial request
88610// and the request times out. If you make the request again with the
88611// same request ID, the server can check if original operation with the
88612// same request ID was received, and if so, will ignore the second
88613// request. This prevents clients from accidentally creating duplicate
88614// commitments.
88615//
88616// The request ID must be a valid UUID with the exception that zero UUID
88617// is not supported (00000000-0000-0000-0000-000000000000).
88618func (c *InstancesSetMachineTypeCall) RequestId(requestId string) *InstancesSetMachineTypeCall {
88619	c.urlParams_.Set("requestId", requestId)
88620	return c
88621}
88622
88623// Fields allows partial responses to be retrieved. See
88624// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88625// for more information.
88626func (c *InstancesSetMachineTypeCall) Fields(s ...googleapi.Field) *InstancesSetMachineTypeCall {
88627	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88628	return c
88629}
88630
88631// Context sets the context to be used in this call's Do method. Any
88632// pending HTTP request will be aborted if the provided context is
88633// canceled.
88634func (c *InstancesSetMachineTypeCall) Context(ctx context.Context) *InstancesSetMachineTypeCall {
88635	c.ctx_ = ctx
88636	return c
88637}
88638
88639// Header returns an http.Header that can be modified by the caller to
88640// add HTTP headers to the request.
88641func (c *InstancesSetMachineTypeCall) Header() http.Header {
88642	if c.header_ == nil {
88643		c.header_ = make(http.Header)
88644	}
88645	return c.header_
88646}
88647
88648func (c *InstancesSetMachineTypeCall) doRequest(alt string) (*http.Response, error) {
88649	reqHeaders := make(http.Header)
88650	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
88651	for k, v := range c.header_ {
88652		reqHeaders[k] = v
88653	}
88654	reqHeaders.Set("User-Agent", c.s.userAgent())
88655	var body io.Reader = nil
88656	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachinetyperequest)
88657	if err != nil {
88658		return nil, err
88659	}
88660	reqHeaders.Set("Content-Type", "application/json")
88661	c.urlParams_.Set("alt", alt)
88662	c.urlParams_.Set("prettyPrint", "false")
88663	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMachineType")
88664	urls += "?" + c.urlParams_.Encode()
88665	req, err := http.NewRequest("POST", urls, body)
88666	if err != nil {
88667		return nil, err
88668	}
88669	req.Header = reqHeaders
88670	googleapi.Expand(req.URL, map[string]string{
88671		"project":  c.project,
88672		"zone":     c.zone,
88673		"instance": c.instance,
88674	})
88675	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88676}
88677
88678// Do executes the "compute.instances.setMachineType" call.
88679// Exactly one of *Operation or error will be non-nil. Any non-2xx
88680// status code is an error. Response headers are in either
88681// *Operation.ServerResponse.Header or (if a response was returned at
88682// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88683// to check whether the returned error was because
88684// http.StatusNotModified was returned.
88685func (c *InstancesSetMachineTypeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88686	gensupport.SetOptions(c.urlParams_, opts...)
88687	res, err := c.doRequest("json")
88688	if res != nil && res.StatusCode == http.StatusNotModified {
88689		if res.Body != nil {
88690			res.Body.Close()
88691		}
88692		return nil, &googleapi.Error{
88693			Code:   res.StatusCode,
88694			Header: res.Header,
88695		}
88696	}
88697	if err != nil {
88698		return nil, err
88699	}
88700	defer googleapi.CloseBody(res)
88701	if err := googleapi.CheckResponse(res); err != nil {
88702		return nil, err
88703	}
88704	ret := &Operation{
88705		ServerResponse: googleapi.ServerResponse{
88706			Header:         res.Header,
88707			HTTPStatusCode: res.StatusCode,
88708		},
88709	}
88710	target := &ret
88711	if err := gensupport.DecodeResponse(target, res); err != nil {
88712		return nil, err
88713	}
88714	return ret, nil
88715	// {
88716	//   "description": "Changes the machine type for a stopped instance to the machine type specified in the request.",
88717	//   "httpMethod": "POST",
88718	//   "id": "compute.instances.setMachineType",
88719	//   "parameterOrder": [
88720	//     "project",
88721	//     "zone",
88722	//     "instance"
88723	//   ],
88724	//   "parameters": {
88725	//     "instance": {
88726	//       "description": "Name of the instance scoping this request.",
88727	//       "location": "path",
88728	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88729	//       "required": true,
88730	//       "type": "string"
88731	//     },
88732	//     "project": {
88733	//       "description": "Project ID for this request.",
88734	//       "location": "path",
88735	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88736	//       "required": true,
88737	//       "type": "string"
88738	//     },
88739	//     "requestId": {
88740	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
88741	//       "location": "query",
88742	//       "type": "string"
88743	//     },
88744	//     "zone": {
88745	//       "description": "The name of the zone for this request.",
88746	//       "location": "path",
88747	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88748	//       "required": true,
88749	//       "type": "string"
88750	//     }
88751	//   },
88752	//   "path": "{project}/zones/{zone}/instances/{instance}/setMachineType",
88753	//   "request": {
88754	//     "$ref": "InstancesSetMachineTypeRequest"
88755	//   },
88756	//   "response": {
88757	//     "$ref": "Operation"
88758	//   },
88759	//   "scopes": [
88760	//     "https://www.googleapis.com/auth/cloud-platform",
88761	//     "https://www.googleapis.com/auth/compute"
88762	//   ]
88763	// }
88764
88765}
88766
88767// method id "compute.instances.setMetadata":
88768
88769type InstancesSetMetadataCall struct {
88770	s          *Service
88771	project    string
88772	zone       string
88773	instance   string
88774	metadata   *Metadata
88775	urlParams_ gensupport.URLParams
88776	ctx_       context.Context
88777	header_    http.Header
88778}
88779
88780// SetMetadata: Sets metadata for the specified instance to the data
88781// included in the request.
88782// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setMetadata
88783func (r *InstancesService) SetMetadata(project string, zone string, instance string, metadata *Metadata) *InstancesSetMetadataCall {
88784	c := &InstancesSetMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88785	c.project = project
88786	c.zone = zone
88787	c.instance = instance
88788	c.metadata = metadata
88789	return c
88790}
88791
88792// RequestId sets the optional parameter "requestId": An optional
88793// request ID to identify requests. Specify a unique request ID so that
88794// if you must retry your request, the server will know to ignore the
88795// request if it has already been completed.
88796//
88797// For example, consider a situation where you make an initial request
88798// and the request times out. If you make the request again with the
88799// same request ID, the server can check if original operation with the
88800// same request ID was received, and if so, will ignore the second
88801// request. This prevents clients from accidentally creating duplicate
88802// commitments.
88803//
88804// The request ID must be a valid UUID with the exception that zero UUID
88805// is not supported (00000000-0000-0000-0000-000000000000).
88806func (c *InstancesSetMetadataCall) RequestId(requestId string) *InstancesSetMetadataCall {
88807	c.urlParams_.Set("requestId", requestId)
88808	return c
88809}
88810
88811// Fields allows partial responses to be retrieved. See
88812// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88813// for more information.
88814func (c *InstancesSetMetadataCall) Fields(s ...googleapi.Field) *InstancesSetMetadataCall {
88815	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88816	return c
88817}
88818
88819// Context sets the context to be used in this call's Do method. Any
88820// pending HTTP request will be aborted if the provided context is
88821// canceled.
88822func (c *InstancesSetMetadataCall) Context(ctx context.Context) *InstancesSetMetadataCall {
88823	c.ctx_ = ctx
88824	return c
88825}
88826
88827// Header returns an http.Header that can be modified by the caller to
88828// add HTTP headers to the request.
88829func (c *InstancesSetMetadataCall) Header() http.Header {
88830	if c.header_ == nil {
88831		c.header_ = make(http.Header)
88832	}
88833	return c.header_
88834}
88835
88836func (c *InstancesSetMetadataCall) doRequest(alt string) (*http.Response, error) {
88837	reqHeaders := make(http.Header)
88838	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
88839	for k, v := range c.header_ {
88840		reqHeaders[k] = v
88841	}
88842	reqHeaders.Set("User-Agent", c.s.userAgent())
88843	var body io.Reader = nil
88844	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata)
88845	if err != nil {
88846		return nil, err
88847	}
88848	reqHeaders.Set("Content-Type", "application/json")
88849	c.urlParams_.Set("alt", alt)
88850	c.urlParams_.Set("prettyPrint", "false")
88851	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMetadata")
88852	urls += "?" + c.urlParams_.Encode()
88853	req, err := http.NewRequest("POST", urls, body)
88854	if err != nil {
88855		return nil, err
88856	}
88857	req.Header = reqHeaders
88858	googleapi.Expand(req.URL, map[string]string{
88859		"project":  c.project,
88860		"zone":     c.zone,
88861		"instance": c.instance,
88862	})
88863	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88864}
88865
88866// Do executes the "compute.instances.setMetadata" call.
88867// Exactly one of *Operation or error will be non-nil. Any non-2xx
88868// status code is an error. Response headers are in either
88869// *Operation.ServerResponse.Header or (if a response was returned at
88870// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88871// to check whether the returned error was because
88872// http.StatusNotModified was returned.
88873func (c *InstancesSetMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88874	gensupport.SetOptions(c.urlParams_, opts...)
88875	res, err := c.doRequest("json")
88876	if res != nil && res.StatusCode == http.StatusNotModified {
88877		if res.Body != nil {
88878			res.Body.Close()
88879		}
88880		return nil, &googleapi.Error{
88881			Code:   res.StatusCode,
88882			Header: res.Header,
88883		}
88884	}
88885	if err != nil {
88886		return nil, err
88887	}
88888	defer googleapi.CloseBody(res)
88889	if err := googleapi.CheckResponse(res); err != nil {
88890		return nil, err
88891	}
88892	ret := &Operation{
88893		ServerResponse: googleapi.ServerResponse{
88894			Header:         res.Header,
88895			HTTPStatusCode: res.StatusCode,
88896		},
88897	}
88898	target := &ret
88899	if err := gensupport.DecodeResponse(target, res); err != nil {
88900		return nil, err
88901	}
88902	return ret, nil
88903	// {
88904	//   "description": "Sets metadata for the specified instance to the data included in the request.",
88905	//   "httpMethod": "POST",
88906	//   "id": "compute.instances.setMetadata",
88907	//   "parameterOrder": [
88908	//     "project",
88909	//     "zone",
88910	//     "instance"
88911	//   ],
88912	//   "parameters": {
88913	//     "instance": {
88914	//       "description": "Name of the instance scoping this request.",
88915	//       "location": "path",
88916	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88917	//       "required": true,
88918	//       "type": "string"
88919	//     },
88920	//     "project": {
88921	//       "description": "Project ID for this request.",
88922	//       "location": "path",
88923	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88924	//       "required": true,
88925	//       "type": "string"
88926	//     },
88927	//     "requestId": {
88928	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
88929	//       "location": "query",
88930	//       "type": "string"
88931	//     },
88932	//     "zone": {
88933	//       "description": "The name of the zone for this request.",
88934	//       "location": "path",
88935	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88936	//       "required": true,
88937	//       "type": "string"
88938	//     }
88939	//   },
88940	//   "path": "{project}/zones/{zone}/instances/{instance}/setMetadata",
88941	//   "request": {
88942	//     "$ref": "Metadata"
88943	//   },
88944	//   "response": {
88945	//     "$ref": "Operation"
88946	//   },
88947	//   "scopes": [
88948	//     "https://www.googleapis.com/auth/cloud-platform",
88949	//     "https://www.googleapis.com/auth/compute"
88950	//   ]
88951	// }
88952
88953}
88954
88955// method id "compute.instances.setMinCpuPlatform":
88956
88957type InstancesSetMinCpuPlatformCall struct {
88958	s                                 *Service
88959	project                           string
88960	zone                              string
88961	instance                          string
88962	instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest
88963	urlParams_                        gensupport.URLParams
88964	ctx_                              context.Context
88965	header_                           http.Header
88966}
88967
88968// SetMinCpuPlatform: Changes the minimum CPU platform that this
88969// instance should use. This method can only be called on a stopped
88970// instance. For more information, read Specifying a Minimum CPU
88971// Platform.
88972func (r *InstancesService) SetMinCpuPlatform(project string, zone string, instance string, instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest) *InstancesSetMinCpuPlatformCall {
88973	c := &InstancesSetMinCpuPlatformCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88974	c.project = project
88975	c.zone = zone
88976	c.instance = instance
88977	c.instancessetmincpuplatformrequest = instancessetmincpuplatformrequest
88978	return c
88979}
88980
88981// RequestId sets the optional parameter "requestId": An optional
88982// request ID to identify requests. Specify a unique request ID so that
88983// if you must retry your request, the server will know to ignore the
88984// request if it has already been completed.
88985//
88986// For example, consider a situation where you make an initial request
88987// and the request times out. If you make the request again with the
88988// same request ID, the server can check if original operation with the
88989// same request ID was received, and if so, will ignore the second
88990// request. This prevents clients from accidentally creating duplicate
88991// commitments.
88992//
88993// The request ID must be a valid UUID with the exception that zero UUID
88994// is not supported (00000000-0000-0000-0000-000000000000).
88995func (c *InstancesSetMinCpuPlatformCall) RequestId(requestId string) *InstancesSetMinCpuPlatformCall {
88996	c.urlParams_.Set("requestId", requestId)
88997	return c
88998}
88999
89000// Fields allows partial responses to be retrieved. See
89001// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89002// for more information.
89003func (c *InstancesSetMinCpuPlatformCall) Fields(s ...googleapi.Field) *InstancesSetMinCpuPlatformCall {
89004	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89005	return c
89006}
89007
89008// Context sets the context to be used in this call's Do method. Any
89009// pending HTTP request will be aborted if the provided context is
89010// canceled.
89011func (c *InstancesSetMinCpuPlatformCall) Context(ctx context.Context) *InstancesSetMinCpuPlatformCall {
89012	c.ctx_ = ctx
89013	return c
89014}
89015
89016// Header returns an http.Header that can be modified by the caller to
89017// add HTTP headers to the request.
89018func (c *InstancesSetMinCpuPlatformCall) Header() http.Header {
89019	if c.header_ == nil {
89020		c.header_ = make(http.Header)
89021	}
89022	return c.header_
89023}
89024
89025func (c *InstancesSetMinCpuPlatformCall) doRequest(alt string) (*http.Response, error) {
89026	reqHeaders := make(http.Header)
89027	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
89028	for k, v := range c.header_ {
89029		reqHeaders[k] = v
89030	}
89031	reqHeaders.Set("User-Agent", c.s.userAgent())
89032	var body io.Reader = nil
89033	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmincpuplatformrequest)
89034	if err != nil {
89035		return nil, err
89036	}
89037	reqHeaders.Set("Content-Type", "application/json")
89038	c.urlParams_.Set("alt", alt)
89039	c.urlParams_.Set("prettyPrint", "false")
89040	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform")
89041	urls += "?" + c.urlParams_.Encode()
89042	req, err := http.NewRequest("POST", urls, body)
89043	if err != nil {
89044		return nil, err
89045	}
89046	req.Header = reqHeaders
89047	googleapi.Expand(req.URL, map[string]string{
89048		"project":  c.project,
89049		"zone":     c.zone,
89050		"instance": c.instance,
89051	})
89052	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89053}
89054
89055// Do executes the "compute.instances.setMinCpuPlatform" call.
89056// Exactly one of *Operation or error will be non-nil. Any non-2xx
89057// status code is an error. Response headers are in either
89058// *Operation.ServerResponse.Header or (if a response was returned at
89059// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89060// to check whether the returned error was because
89061// http.StatusNotModified was returned.
89062func (c *InstancesSetMinCpuPlatformCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89063	gensupport.SetOptions(c.urlParams_, opts...)
89064	res, err := c.doRequest("json")
89065	if res != nil && res.StatusCode == http.StatusNotModified {
89066		if res.Body != nil {
89067			res.Body.Close()
89068		}
89069		return nil, &googleapi.Error{
89070			Code:   res.StatusCode,
89071			Header: res.Header,
89072		}
89073	}
89074	if err != nil {
89075		return nil, err
89076	}
89077	defer googleapi.CloseBody(res)
89078	if err := googleapi.CheckResponse(res); err != nil {
89079		return nil, err
89080	}
89081	ret := &Operation{
89082		ServerResponse: googleapi.ServerResponse{
89083			Header:         res.Header,
89084			HTTPStatusCode: res.StatusCode,
89085		},
89086	}
89087	target := &ret
89088	if err := gensupport.DecodeResponse(target, res); err != nil {
89089		return nil, err
89090	}
89091	return ret, nil
89092	// {
89093	//   "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.",
89094	//   "httpMethod": "POST",
89095	//   "id": "compute.instances.setMinCpuPlatform",
89096	//   "parameterOrder": [
89097	//     "project",
89098	//     "zone",
89099	//     "instance"
89100	//   ],
89101	//   "parameters": {
89102	//     "instance": {
89103	//       "description": "Name of the instance scoping this request.",
89104	//       "location": "path",
89105	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89106	//       "required": true,
89107	//       "type": "string"
89108	//     },
89109	//     "project": {
89110	//       "description": "Project ID for this request.",
89111	//       "location": "path",
89112	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89113	//       "required": true,
89114	//       "type": "string"
89115	//     },
89116	//     "requestId": {
89117	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89118	//       "location": "query",
89119	//       "type": "string"
89120	//     },
89121	//     "zone": {
89122	//       "description": "The name of the zone for this request.",
89123	//       "location": "path",
89124	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89125	//       "required": true,
89126	//       "type": "string"
89127	//     }
89128	//   },
89129	//   "path": "{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform",
89130	//   "request": {
89131	//     "$ref": "InstancesSetMinCpuPlatformRequest"
89132	//   },
89133	//   "response": {
89134	//     "$ref": "Operation"
89135	//   },
89136	//   "scopes": [
89137	//     "https://www.googleapis.com/auth/cloud-platform",
89138	//     "https://www.googleapis.com/auth/compute"
89139	//   ]
89140	// }
89141
89142}
89143
89144// method id "compute.instances.setName":
89145
89146type InstancesSetNameCall struct {
89147	s                       *Service
89148	project                 string
89149	zone                    string
89150	instance                string
89151	instancessetnamerequest *InstancesSetNameRequest
89152	urlParams_              gensupport.URLParams
89153	ctx_                    context.Context
89154	header_                 http.Header
89155}
89156
89157// SetName: Sets name of an instance.
89158func (r *InstancesService) SetName(project string, zone string, instance string, instancessetnamerequest *InstancesSetNameRequest) *InstancesSetNameCall {
89159	c := &InstancesSetNameCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89160	c.project = project
89161	c.zone = zone
89162	c.instance = instance
89163	c.instancessetnamerequest = instancessetnamerequest
89164	return c
89165}
89166
89167// RequestId sets the optional parameter "requestId": An optional
89168// request ID to identify requests. Specify a unique request ID so that
89169// if you must retry your request, the server will know to ignore the
89170// request if it has already been completed.
89171//
89172// For example, consider a situation where you make an initial request
89173// and the request times out. If you make the request again with the
89174// same request ID, the server can check if original operation with the
89175// same request ID was received, and if so, will ignore the second
89176// request. This prevents clients from accidentally creating duplicate
89177// commitments.
89178//
89179// The request ID must be a valid UUID with the exception that zero UUID
89180// is not supported (00000000-0000-0000-0000-000000000000).
89181func (c *InstancesSetNameCall) RequestId(requestId string) *InstancesSetNameCall {
89182	c.urlParams_.Set("requestId", requestId)
89183	return c
89184}
89185
89186// Fields allows partial responses to be retrieved. See
89187// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89188// for more information.
89189func (c *InstancesSetNameCall) Fields(s ...googleapi.Field) *InstancesSetNameCall {
89190	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89191	return c
89192}
89193
89194// Context sets the context to be used in this call's Do method. Any
89195// pending HTTP request will be aborted if the provided context is
89196// canceled.
89197func (c *InstancesSetNameCall) Context(ctx context.Context) *InstancesSetNameCall {
89198	c.ctx_ = ctx
89199	return c
89200}
89201
89202// Header returns an http.Header that can be modified by the caller to
89203// add HTTP headers to the request.
89204func (c *InstancesSetNameCall) Header() http.Header {
89205	if c.header_ == nil {
89206		c.header_ = make(http.Header)
89207	}
89208	return c.header_
89209}
89210
89211func (c *InstancesSetNameCall) doRequest(alt string) (*http.Response, error) {
89212	reqHeaders := make(http.Header)
89213	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
89214	for k, v := range c.header_ {
89215		reqHeaders[k] = v
89216	}
89217	reqHeaders.Set("User-Agent", c.s.userAgent())
89218	var body io.Reader = nil
89219	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetnamerequest)
89220	if err != nil {
89221		return nil, err
89222	}
89223	reqHeaders.Set("Content-Type", "application/json")
89224	c.urlParams_.Set("alt", alt)
89225	c.urlParams_.Set("prettyPrint", "false")
89226	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setName")
89227	urls += "?" + c.urlParams_.Encode()
89228	req, err := http.NewRequest("POST", urls, body)
89229	if err != nil {
89230		return nil, err
89231	}
89232	req.Header = reqHeaders
89233	googleapi.Expand(req.URL, map[string]string{
89234		"project":  c.project,
89235		"zone":     c.zone,
89236		"instance": c.instance,
89237	})
89238	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89239}
89240
89241// Do executes the "compute.instances.setName" call.
89242// Exactly one of *Operation or error will be non-nil. Any non-2xx
89243// status code is an error. Response headers are in either
89244// *Operation.ServerResponse.Header or (if a response was returned at
89245// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89246// to check whether the returned error was because
89247// http.StatusNotModified was returned.
89248func (c *InstancesSetNameCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89249	gensupport.SetOptions(c.urlParams_, opts...)
89250	res, err := c.doRequest("json")
89251	if res != nil && res.StatusCode == http.StatusNotModified {
89252		if res.Body != nil {
89253			res.Body.Close()
89254		}
89255		return nil, &googleapi.Error{
89256			Code:   res.StatusCode,
89257			Header: res.Header,
89258		}
89259	}
89260	if err != nil {
89261		return nil, err
89262	}
89263	defer googleapi.CloseBody(res)
89264	if err := googleapi.CheckResponse(res); err != nil {
89265		return nil, err
89266	}
89267	ret := &Operation{
89268		ServerResponse: googleapi.ServerResponse{
89269			Header:         res.Header,
89270			HTTPStatusCode: res.StatusCode,
89271		},
89272	}
89273	target := &ret
89274	if err := gensupport.DecodeResponse(target, res); err != nil {
89275		return nil, err
89276	}
89277	return ret, nil
89278	// {
89279	//   "description": "Sets name of an instance.",
89280	//   "httpMethod": "POST",
89281	//   "id": "compute.instances.setName",
89282	//   "parameterOrder": [
89283	//     "project",
89284	//     "zone",
89285	//     "instance"
89286	//   ],
89287	//   "parameters": {
89288	//     "instance": {
89289	//       "description": "The instance name for this request.",
89290	//       "location": "path",
89291	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89292	//       "required": true,
89293	//       "type": "string"
89294	//     },
89295	//     "project": {
89296	//       "description": "Project ID for this request.",
89297	//       "location": "path",
89298	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89299	//       "required": true,
89300	//       "type": "string"
89301	//     },
89302	//     "requestId": {
89303	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89304	//       "location": "query",
89305	//       "type": "string"
89306	//     },
89307	//     "zone": {
89308	//       "description": "The name of the zone for this request.",
89309	//       "location": "path",
89310	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89311	//       "required": true,
89312	//       "type": "string"
89313	//     }
89314	//   },
89315	//   "path": "{project}/zones/{zone}/instances/{instance}/setName",
89316	//   "request": {
89317	//     "$ref": "InstancesSetNameRequest"
89318	//   },
89319	//   "response": {
89320	//     "$ref": "Operation"
89321	//   },
89322	//   "scopes": [
89323	//     "https://www.googleapis.com/auth/cloud-platform",
89324	//     "https://www.googleapis.com/auth/compute"
89325	//   ]
89326	// }
89327
89328}
89329
89330// method id "compute.instances.setScheduling":
89331
89332type InstancesSetSchedulingCall struct {
89333	s          *Service
89334	project    string
89335	zone       string
89336	instance   string
89337	scheduling *Scheduling
89338	urlParams_ gensupport.URLParams
89339	ctx_       context.Context
89340	header_    http.Header
89341}
89342
89343// SetScheduling: Sets an instance's scheduling options.
89344// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setScheduling
89345func (r *InstancesService) SetScheduling(project string, zone string, instance string, scheduling *Scheduling) *InstancesSetSchedulingCall {
89346	c := &InstancesSetSchedulingCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89347	c.project = project
89348	c.zone = zone
89349	c.instance = instance
89350	c.scheduling = scheduling
89351	return c
89352}
89353
89354// RequestId sets the optional parameter "requestId": An optional
89355// request ID to identify requests. Specify a unique request ID so that
89356// if you must retry your request, the server will know to ignore the
89357// request if it has already been completed.
89358//
89359// For example, consider a situation where you make an initial request
89360// and the request times out. If you make the request again with the
89361// same request ID, the server can check if original operation with the
89362// same request ID was received, and if so, will ignore the second
89363// request. This prevents clients from accidentally creating duplicate
89364// commitments.
89365//
89366// The request ID must be a valid UUID with the exception that zero UUID
89367// is not supported (00000000-0000-0000-0000-000000000000).
89368func (c *InstancesSetSchedulingCall) RequestId(requestId string) *InstancesSetSchedulingCall {
89369	c.urlParams_.Set("requestId", requestId)
89370	return c
89371}
89372
89373// Fields allows partial responses to be retrieved. See
89374// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89375// for more information.
89376func (c *InstancesSetSchedulingCall) Fields(s ...googleapi.Field) *InstancesSetSchedulingCall {
89377	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89378	return c
89379}
89380
89381// Context sets the context to be used in this call's Do method. Any
89382// pending HTTP request will be aborted if the provided context is
89383// canceled.
89384func (c *InstancesSetSchedulingCall) Context(ctx context.Context) *InstancesSetSchedulingCall {
89385	c.ctx_ = ctx
89386	return c
89387}
89388
89389// Header returns an http.Header that can be modified by the caller to
89390// add HTTP headers to the request.
89391func (c *InstancesSetSchedulingCall) Header() http.Header {
89392	if c.header_ == nil {
89393		c.header_ = make(http.Header)
89394	}
89395	return c.header_
89396}
89397
89398func (c *InstancesSetSchedulingCall) doRequest(alt string) (*http.Response, error) {
89399	reqHeaders := make(http.Header)
89400	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
89401	for k, v := range c.header_ {
89402		reqHeaders[k] = v
89403	}
89404	reqHeaders.Set("User-Agent", c.s.userAgent())
89405	var body io.Reader = nil
89406	body, err := googleapi.WithoutDataWrapper.JSONReader(c.scheduling)
89407	if err != nil {
89408		return nil, err
89409	}
89410	reqHeaders.Set("Content-Type", "application/json")
89411	c.urlParams_.Set("alt", alt)
89412	c.urlParams_.Set("prettyPrint", "false")
89413	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setScheduling")
89414	urls += "?" + c.urlParams_.Encode()
89415	req, err := http.NewRequest("POST", urls, body)
89416	if err != nil {
89417		return nil, err
89418	}
89419	req.Header = reqHeaders
89420	googleapi.Expand(req.URL, map[string]string{
89421		"project":  c.project,
89422		"zone":     c.zone,
89423		"instance": c.instance,
89424	})
89425	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89426}
89427
89428// Do executes the "compute.instances.setScheduling" call.
89429// Exactly one of *Operation or error will be non-nil. Any non-2xx
89430// status code is an error. Response headers are in either
89431// *Operation.ServerResponse.Header or (if a response was returned at
89432// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89433// to check whether the returned error was because
89434// http.StatusNotModified was returned.
89435func (c *InstancesSetSchedulingCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89436	gensupport.SetOptions(c.urlParams_, opts...)
89437	res, err := c.doRequest("json")
89438	if res != nil && res.StatusCode == http.StatusNotModified {
89439		if res.Body != nil {
89440			res.Body.Close()
89441		}
89442		return nil, &googleapi.Error{
89443			Code:   res.StatusCode,
89444			Header: res.Header,
89445		}
89446	}
89447	if err != nil {
89448		return nil, err
89449	}
89450	defer googleapi.CloseBody(res)
89451	if err := googleapi.CheckResponse(res); err != nil {
89452		return nil, err
89453	}
89454	ret := &Operation{
89455		ServerResponse: googleapi.ServerResponse{
89456			Header:         res.Header,
89457			HTTPStatusCode: res.StatusCode,
89458		},
89459	}
89460	target := &ret
89461	if err := gensupport.DecodeResponse(target, res); err != nil {
89462		return nil, err
89463	}
89464	return ret, nil
89465	// {
89466	//   "description": "Sets an instance's scheduling options.",
89467	//   "httpMethod": "POST",
89468	//   "id": "compute.instances.setScheduling",
89469	//   "parameterOrder": [
89470	//     "project",
89471	//     "zone",
89472	//     "instance"
89473	//   ],
89474	//   "parameters": {
89475	//     "instance": {
89476	//       "description": "Instance name for this request.",
89477	//       "location": "path",
89478	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89479	//       "required": true,
89480	//       "type": "string"
89481	//     },
89482	//     "project": {
89483	//       "description": "Project ID for this request.",
89484	//       "location": "path",
89485	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89486	//       "required": true,
89487	//       "type": "string"
89488	//     },
89489	//     "requestId": {
89490	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89491	//       "location": "query",
89492	//       "type": "string"
89493	//     },
89494	//     "zone": {
89495	//       "description": "The name of the zone for this request.",
89496	//       "location": "path",
89497	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89498	//       "required": true,
89499	//       "type": "string"
89500	//     }
89501	//   },
89502	//   "path": "{project}/zones/{zone}/instances/{instance}/setScheduling",
89503	//   "request": {
89504	//     "$ref": "Scheduling"
89505	//   },
89506	//   "response": {
89507	//     "$ref": "Operation"
89508	//   },
89509	//   "scopes": [
89510	//     "https://www.googleapis.com/auth/cloud-platform",
89511	//     "https://www.googleapis.com/auth/compute"
89512	//   ]
89513	// }
89514
89515}
89516
89517// method id "compute.instances.setServiceAccount":
89518
89519type InstancesSetServiceAccountCall struct {
89520	s                                 *Service
89521	project                           string
89522	zone                              string
89523	instance                          string
89524	instancessetserviceaccountrequest *InstancesSetServiceAccountRequest
89525	urlParams_                        gensupport.URLParams
89526	ctx_                              context.Context
89527	header_                           http.Header
89528}
89529
89530// SetServiceAccount: Sets the service account on the instance. For more
89531// information, read Changing the service account and access scopes for
89532// an instance.
89533func (r *InstancesService) SetServiceAccount(project string, zone string, instance string, instancessetserviceaccountrequest *InstancesSetServiceAccountRequest) *InstancesSetServiceAccountCall {
89534	c := &InstancesSetServiceAccountCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89535	c.project = project
89536	c.zone = zone
89537	c.instance = instance
89538	c.instancessetserviceaccountrequest = instancessetserviceaccountrequest
89539	return c
89540}
89541
89542// RequestId sets the optional parameter "requestId": An optional
89543// request ID to identify requests. Specify a unique request ID so that
89544// if you must retry your request, the server will know to ignore the
89545// request if it has already been completed.
89546//
89547// For example, consider a situation where you make an initial request
89548// and the request times out. If you make the request again with the
89549// same request ID, the server can check if original operation with the
89550// same request ID was received, and if so, will ignore the second
89551// request. This prevents clients from accidentally creating duplicate
89552// commitments.
89553//
89554// The request ID must be a valid UUID with the exception that zero UUID
89555// is not supported (00000000-0000-0000-0000-000000000000).
89556func (c *InstancesSetServiceAccountCall) RequestId(requestId string) *InstancesSetServiceAccountCall {
89557	c.urlParams_.Set("requestId", requestId)
89558	return c
89559}
89560
89561// Fields allows partial responses to be retrieved. See
89562// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89563// for more information.
89564func (c *InstancesSetServiceAccountCall) Fields(s ...googleapi.Field) *InstancesSetServiceAccountCall {
89565	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89566	return c
89567}
89568
89569// Context sets the context to be used in this call's Do method. Any
89570// pending HTTP request will be aborted if the provided context is
89571// canceled.
89572func (c *InstancesSetServiceAccountCall) Context(ctx context.Context) *InstancesSetServiceAccountCall {
89573	c.ctx_ = ctx
89574	return c
89575}
89576
89577// Header returns an http.Header that can be modified by the caller to
89578// add HTTP headers to the request.
89579func (c *InstancesSetServiceAccountCall) Header() http.Header {
89580	if c.header_ == nil {
89581		c.header_ = make(http.Header)
89582	}
89583	return c.header_
89584}
89585
89586func (c *InstancesSetServiceAccountCall) doRequest(alt string) (*http.Response, error) {
89587	reqHeaders := make(http.Header)
89588	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
89589	for k, v := range c.header_ {
89590		reqHeaders[k] = v
89591	}
89592	reqHeaders.Set("User-Agent", c.s.userAgent())
89593	var body io.Reader = nil
89594	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetserviceaccountrequest)
89595	if err != nil {
89596		return nil, err
89597	}
89598	reqHeaders.Set("Content-Type", "application/json")
89599	c.urlParams_.Set("alt", alt)
89600	c.urlParams_.Set("prettyPrint", "false")
89601	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setServiceAccount")
89602	urls += "?" + c.urlParams_.Encode()
89603	req, err := http.NewRequest("POST", urls, body)
89604	if err != nil {
89605		return nil, err
89606	}
89607	req.Header = reqHeaders
89608	googleapi.Expand(req.URL, map[string]string{
89609		"project":  c.project,
89610		"zone":     c.zone,
89611		"instance": c.instance,
89612	})
89613	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89614}
89615
89616// Do executes the "compute.instances.setServiceAccount" call.
89617// Exactly one of *Operation or error will be non-nil. Any non-2xx
89618// status code is an error. Response headers are in either
89619// *Operation.ServerResponse.Header or (if a response was returned at
89620// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89621// to check whether the returned error was because
89622// http.StatusNotModified was returned.
89623func (c *InstancesSetServiceAccountCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89624	gensupport.SetOptions(c.urlParams_, opts...)
89625	res, err := c.doRequest("json")
89626	if res != nil && res.StatusCode == http.StatusNotModified {
89627		if res.Body != nil {
89628			res.Body.Close()
89629		}
89630		return nil, &googleapi.Error{
89631			Code:   res.StatusCode,
89632			Header: res.Header,
89633		}
89634	}
89635	if err != nil {
89636		return nil, err
89637	}
89638	defer googleapi.CloseBody(res)
89639	if err := googleapi.CheckResponse(res); err != nil {
89640		return nil, err
89641	}
89642	ret := &Operation{
89643		ServerResponse: googleapi.ServerResponse{
89644			Header:         res.Header,
89645			HTTPStatusCode: res.StatusCode,
89646		},
89647	}
89648	target := &ret
89649	if err := gensupport.DecodeResponse(target, res); err != nil {
89650		return nil, err
89651	}
89652	return ret, nil
89653	// {
89654	//   "description": "Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance.",
89655	//   "httpMethod": "POST",
89656	//   "id": "compute.instances.setServiceAccount",
89657	//   "parameterOrder": [
89658	//     "project",
89659	//     "zone",
89660	//     "instance"
89661	//   ],
89662	//   "parameters": {
89663	//     "instance": {
89664	//       "description": "Name of the instance resource to start.",
89665	//       "location": "path",
89666	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89667	//       "required": true,
89668	//       "type": "string"
89669	//     },
89670	//     "project": {
89671	//       "description": "Project ID for this request.",
89672	//       "location": "path",
89673	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89674	//       "required": true,
89675	//       "type": "string"
89676	//     },
89677	//     "requestId": {
89678	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89679	//       "location": "query",
89680	//       "type": "string"
89681	//     },
89682	//     "zone": {
89683	//       "description": "The name of the zone for this request.",
89684	//       "location": "path",
89685	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89686	//       "required": true,
89687	//       "type": "string"
89688	//     }
89689	//   },
89690	//   "path": "{project}/zones/{zone}/instances/{instance}/setServiceAccount",
89691	//   "request": {
89692	//     "$ref": "InstancesSetServiceAccountRequest"
89693	//   },
89694	//   "response": {
89695	//     "$ref": "Operation"
89696	//   },
89697	//   "scopes": [
89698	//     "https://www.googleapis.com/auth/cloud-platform",
89699	//     "https://www.googleapis.com/auth/compute"
89700	//   ]
89701	// }
89702
89703}
89704
89705// method id "compute.instances.setShieldedInstanceIntegrityPolicy":
89706
89707type InstancesSetShieldedInstanceIntegrityPolicyCall struct {
89708	s                               *Service
89709	project                         string
89710	zone                            string
89711	instance                        string
89712	shieldedinstanceintegritypolicy *ShieldedInstanceIntegrityPolicy
89713	urlParams_                      gensupport.URLParams
89714	ctx_                            context.Context
89715	header_                         http.Header
89716}
89717
89718// SetShieldedInstanceIntegrityPolicy: Sets the Shielded Instance
89719// integrity policy for an instance. You can only use this method on a
89720// running instance. This method supports PATCH semantics and uses the
89721// JSON merge patch format and processing rules.
89722func (r *InstancesService) SetShieldedInstanceIntegrityPolicy(project string, zone string, instance string, shieldedinstanceintegritypolicy *ShieldedInstanceIntegrityPolicy) *InstancesSetShieldedInstanceIntegrityPolicyCall {
89723	c := &InstancesSetShieldedInstanceIntegrityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89724	c.project = project
89725	c.zone = zone
89726	c.instance = instance
89727	c.shieldedinstanceintegritypolicy = shieldedinstanceintegritypolicy
89728	return c
89729}
89730
89731// RequestId sets the optional parameter "requestId": An optional
89732// request ID to identify requests. Specify a unique request ID so that
89733// if you must retry your request, the server will know to ignore the
89734// request if it has already been completed.
89735//
89736// For example, consider a situation where you make an initial request
89737// and the request times out. If you make the request again with the
89738// same request ID, the server can check if original operation with the
89739// same request ID was received, and if so, will ignore the second
89740// request. This prevents clients from accidentally creating duplicate
89741// commitments.
89742//
89743// The request ID must be a valid UUID with the exception that zero UUID
89744// is not supported (00000000-0000-0000-0000-000000000000).
89745func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) RequestId(requestId string) *InstancesSetShieldedInstanceIntegrityPolicyCall {
89746	c.urlParams_.Set("requestId", requestId)
89747	return c
89748}
89749
89750// Fields allows partial responses to be retrieved. See
89751// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89752// for more information.
89753func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Fields(s ...googleapi.Field) *InstancesSetShieldedInstanceIntegrityPolicyCall {
89754	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89755	return c
89756}
89757
89758// Context sets the context to be used in this call's Do method. Any
89759// pending HTTP request will be aborted if the provided context is
89760// canceled.
89761func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Context(ctx context.Context) *InstancesSetShieldedInstanceIntegrityPolicyCall {
89762	c.ctx_ = ctx
89763	return c
89764}
89765
89766// Header returns an http.Header that can be modified by the caller to
89767// add HTTP headers to the request.
89768func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Header() http.Header {
89769	if c.header_ == nil {
89770		c.header_ = make(http.Header)
89771	}
89772	return c.header_
89773}
89774
89775func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) doRequest(alt string) (*http.Response, error) {
89776	reqHeaders := make(http.Header)
89777	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
89778	for k, v := range c.header_ {
89779		reqHeaders[k] = v
89780	}
89781	reqHeaders.Set("User-Agent", c.s.userAgent())
89782	var body io.Reader = nil
89783	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedinstanceintegritypolicy)
89784	if err != nil {
89785		return nil, err
89786	}
89787	reqHeaders.Set("Content-Type", "application/json")
89788	c.urlParams_.Set("alt", alt)
89789	c.urlParams_.Set("prettyPrint", "false")
89790	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy")
89791	urls += "?" + c.urlParams_.Encode()
89792	req, err := http.NewRequest("PATCH", urls, body)
89793	if err != nil {
89794		return nil, err
89795	}
89796	req.Header = reqHeaders
89797	googleapi.Expand(req.URL, map[string]string{
89798		"project":  c.project,
89799		"zone":     c.zone,
89800		"instance": c.instance,
89801	})
89802	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89803}
89804
89805// Do executes the "compute.instances.setShieldedInstanceIntegrityPolicy" call.
89806// Exactly one of *Operation or error will be non-nil. Any non-2xx
89807// status code is an error. Response headers are in either
89808// *Operation.ServerResponse.Header or (if a response was returned at
89809// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89810// to check whether the returned error was because
89811// http.StatusNotModified was returned.
89812func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89813	gensupport.SetOptions(c.urlParams_, opts...)
89814	res, err := c.doRequest("json")
89815	if res != nil && res.StatusCode == http.StatusNotModified {
89816		if res.Body != nil {
89817			res.Body.Close()
89818		}
89819		return nil, &googleapi.Error{
89820			Code:   res.StatusCode,
89821			Header: res.Header,
89822		}
89823	}
89824	if err != nil {
89825		return nil, err
89826	}
89827	defer googleapi.CloseBody(res)
89828	if err := googleapi.CheckResponse(res); err != nil {
89829		return nil, err
89830	}
89831	ret := &Operation{
89832		ServerResponse: googleapi.ServerResponse{
89833			Header:         res.Header,
89834			HTTPStatusCode: res.StatusCode,
89835		},
89836	}
89837	target := &ret
89838	if err := gensupport.DecodeResponse(target, res); err != nil {
89839		return nil, err
89840	}
89841	return ret, nil
89842	// {
89843	//   "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.",
89844	//   "httpMethod": "PATCH",
89845	//   "id": "compute.instances.setShieldedInstanceIntegrityPolicy",
89846	//   "parameterOrder": [
89847	//     "project",
89848	//     "zone",
89849	//     "instance"
89850	//   ],
89851	//   "parameters": {
89852	//     "instance": {
89853	//       "description": "Name or id of the instance scoping this request.",
89854	//       "location": "path",
89855	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89856	//       "required": true,
89857	//       "type": "string"
89858	//     },
89859	//     "project": {
89860	//       "description": "Project ID for this request.",
89861	//       "location": "path",
89862	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89863	//       "required": true,
89864	//       "type": "string"
89865	//     },
89866	//     "requestId": {
89867	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89868	//       "location": "query",
89869	//       "type": "string"
89870	//     },
89871	//     "zone": {
89872	//       "description": "The name of the zone for this request.",
89873	//       "location": "path",
89874	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89875	//       "required": true,
89876	//       "type": "string"
89877	//     }
89878	//   },
89879	//   "path": "{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy",
89880	//   "request": {
89881	//     "$ref": "ShieldedInstanceIntegrityPolicy"
89882	//   },
89883	//   "response": {
89884	//     "$ref": "Operation"
89885	//   },
89886	//   "scopes": [
89887	//     "https://www.googleapis.com/auth/cloud-platform",
89888	//     "https://www.googleapis.com/auth/compute"
89889	//   ]
89890	// }
89891
89892}
89893
89894// method id "compute.instances.setShieldedVmIntegrityPolicy":
89895
89896type InstancesSetShieldedVmIntegrityPolicyCall struct {
89897	s                         *Service
89898	project                   string
89899	zone                      string
89900	instance                  string
89901	shieldedvmintegritypolicy *ShieldedVmIntegrityPolicy
89902	urlParams_                gensupport.URLParams
89903	ctx_                      context.Context
89904	header_                   http.Header
89905}
89906
89907// SetShieldedVmIntegrityPolicy: Sets the Shielded VM integrity policy
89908// for a VM instance. You can only use this method on a running VM
89909// instance. This method supports PATCH semantics and uses the JSON
89910// merge patch format and processing rules.
89911func (r *InstancesService) SetShieldedVmIntegrityPolicy(project string, zone string, instance string, shieldedvmintegritypolicy *ShieldedVmIntegrityPolicy) *InstancesSetShieldedVmIntegrityPolicyCall {
89912	c := &InstancesSetShieldedVmIntegrityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89913	c.project = project
89914	c.zone = zone
89915	c.instance = instance
89916	c.shieldedvmintegritypolicy = shieldedvmintegritypolicy
89917	return c
89918}
89919
89920// RequestId sets the optional parameter "requestId": An optional
89921// request ID to identify requests. Specify a unique request ID so that
89922// if you must retry your request, the server will know to ignore the
89923// request if it has already been completed.
89924//
89925// For example, consider a situation where you make an initial request
89926// and the request times out. If you make the request again with the
89927// same request ID, the server can check if original operation with the
89928// same request ID was received, and if so, will ignore the second
89929// request. This prevents clients from accidentally creating duplicate
89930// commitments.
89931//
89932// The request ID must be a valid UUID with the exception that zero UUID
89933// is not supported (00000000-0000-0000-0000-000000000000).
89934func (c *InstancesSetShieldedVmIntegrityPolicyCall) RequestId(requestId string) *InstancesSetShieldedVmIntegrityPolicyCall {
89935	c.urlParams_.Set("requestId", requestId)
89936	return c
89937}
89938
89939// Fields allows partial responses to be retrieved. See
89940// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89941// for more information.
89942func (c *InstancesSetShieldedVmIntegrityPolicyCall) Fields(s ...googleapi.Field) *InstancesSetShieldedVmIntegrityPolicyCall {
89943	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89944	return c
89945}
89946
89947// Context sets the context to be used in this call's Do method. Any
89948// pending HTTP request will be aborted if the provided context is
89949// canceled.
89950func (c *InstancesSetShieldedVmIntegrityPolicyCall) Context(ctx context.Context) *InstancesSetShieldedVmIntegrityPolicyCall {
89951	c.ctx_ = ctx
89952	return c
89953}
89954
89955// Header returns an http.Header that can be modified by the caller to
89956// add HTTP headers to the request.
89957func (c *InstancesSetShieldedVmIntegrityPolicyCall) Header() http.Header {
89958	if c.header_ == nil {
89959		c.header_ = make(http.Header)
89960	}
89961	return c.header_
89962}
89963
89964func (c *InstancesSetShieldedVmIntegrityPolicyCall) doRequest(alt string) (*http.Response, error) {
89965	reqHeaders := make(http.Header)
89966	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
89967	for k, v := range c.header_ {
89968		reqHeaders[k] = v
89969	}
89970	reqHeaders.Set("User-Agent", c.s.userAgent())
89971	var body io.Reader = nil
89972	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedvmintegritypolicy)
89973	if err != nil {
89974		return nil, err
89975	}
89976	reqHeaders.Set("Content-Type", "application/json")
89977	c.urlParams_.Set("alt", alt)
89978	c.urlParams_.Set("prettyPrint", "false")
89979	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setShieldedVmIntegrityPolicy")
89980	urls += "?" + c.urlParams_.Encode()
89981	req, err := http.NewRequest("PATCH", urls, body)
89982	if err != nil {
89983		return nil, err
89984	}
89985	req.Header = reqHeaders
89986	googleapi.Expand(req.URL, map[string]string{
89987		"project":  c.project,
89988		"zone":     c.zone,
89989		"instance": c.instance,
89990	})
89991	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89992}
89993
89994// Do executes the "compute.instances.setShieldedVmIntegrityPolicy" call.
89995// Exactly one of *Operation or error will be non-nil. Any non-2xx
89996// status code is an error. Response headers are in either
89997// *Operation.ServerResponse.Header or (if a response was returned at
89998// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89999// to check whether the returned error was because
90000// http.StatusNotModified was returned.
90001func (c *InstancesSetShieldedVmIntegrityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90002	gensupport.SetOptions(c.urlParams_, opts...)
90003	res, err := c.doRequest("json")
90004	if res != nil && res.StatusCode == http.StatusNotModified {
90005		if res.Body != nil {
90006			res.Body.Close()
90007		}
90008		return nil, &googleapi.Error{
90009			Code:   res.StatusCode,
90010			Header: res.Header,
90011		}
90012	}
90013	if err != nil {
90014		return nil, err
90015	}
90016	defer googleapi.CloseBody(res)
90017	if err := googleapi.CheckResponse(res); err != nil {
90018		return nil, err
90019	}
90020	ret := &Operation{
90021		ServerResponse: googleapi.ServerResponse{
90022			Header:         res.Header,
90023			HTTPStatusCode: res.StatusCode,
90024		},
90025	}
90026	target := &ret
90027	if err := gensupport.DecodeResponse(target, res); err != nil {
90028		return nil, err
90029	}
90030	return ret, nil
90031	// {
90032	//   "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.",
90033	//   "httpMethod": "PATCH",
90034	//   "id": "compute.instances.setShieldedVmIntegrityPolicy",
90035	//   "parameterOrder": [
90036	//     "project",
90037	//     "zone",
90038	//     "instance"
90039	//   ],
90040	//   "parameters": {
90041	//     "instance": {
90042	//       "description": "Name of the instance scoping this request.",
90043	//       "location": "path",
90044	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90045	//       "required": true,
90046	//       "type": "string"
90047	//     },
90048	//     "project": {
90049	//       "description": "Project ID for this request.",
90050	//       "location": "path",
90051	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90052	//       "required": true,
90053	//       "type": "string"
90054	//     },
90055	//     "requestId": {
90056	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90057	//       "location": "query",
90058	//       "type": "string"
90059	//     },
90060	//     "zone": {
90061	//       "description": "The name of the zone for this request.",
90062	//       "location": "path",
90063	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90064	//       "required": true,
90065	//       "type": "string"
90066	//     }
90067	//   },
90068	//   "path": "{project}/zones/{zone}/instances/{instance}/setShieldedVmIntegrityPolicy",
90069	//   "request": {
90070	//     "$ref": "ShieldedVmIntegrityPolicy"
90071	//   },
90072	//   "response": {
90073	//     "$ref": "Operation"
90074	//   },
90075	//   "scopes": [
90076	//     "https://www.googleapis.com/auth/cloud-platform",
90077	//     "https://www.googleapis.com/auth/compute"
90078	//   ]
90079	// }
90080
90081}
90082
90083// method id "compute.instances.setTags":
90084
90085type InstancesSetTagsCall struct {
90086	s          *Service
90087	project    string
90088	zone       string
90089	instance   string
90090	tags       *Tags
90091	urlParams_ gensupport.URLParams
90092	ctx_       context.Context
90093	header_    http.Header
90094}
90095
90096// SetTags: Sets network tags for the specified instance to the data
90097// included in the request.
90098// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setTags
90099func (r *InstancesService) SetTags(project string, zone string, instance string, tags *Tags) *InstancesSetTagsCall {
90100	c := &InstancesSetTagsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90101	c.project = project
90102	c.zone = zone
90103	c.instance = instance
90104	c.tags = tags
90105	return c
90106}
90107
90108// RequestId sets the optional parameter "requestId": An optional
90109// request ID to identify requests. Specify a unique request ID so that
90110// if you must retry your request, the server will know to ignore the
90111// request if it has already been completed.
90112//
90113// For example, consider a situation where you make an initial request
90114// and the request times out. If you make the request again with the
90115// same request ID, the server can check if original operation with the
90116// same request ID was received, and if so, will ignore the second
90117// request. This prevents clients from accidentally creating duplicate
90118// commitments.
90119//
90120// The request ID must be a valid UUID with the exception that zero UUID
90121// is not supported (00000000-0000-0000-0000-000000000000).
90122func (c *InstancesSetTagsCall) RequestId(requestId string) *InstancesSetTagsCall {
90123	c.urlParams_.Set("requestId", requestId)
90124	return c
90125}
90126
90127// Fields allows partial responses to be retrieved. See
90128// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90129// for more information.
90130func (c *InstancesSetTagsCall) Fields(s ...googleapi.Field) *InstancesSetTagsCall {
90131	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90132	return c
90133}
90134
90135// Context sets the context to be used in this call's Do method. Any
90136// pending HTTP request will be aborted if the provided context is
90137// canceled.
90138func (c *InstancesSetTagsCall) Context(ctx context.Context) *InstancesSetTagsCall {
90139	c.ctx_ = ctx
90140	return c
90141}
90142
90143// Header returns an http.Header that can be modified by the caller to
90144// add HTTP headers to the request.
90145func (c *InstancesSetTagsCall) Header() http.Header {
90146	if c.header_ == nil {
90147		c.header_ = make(http.Header)
90148	}
90149	return c.header_
90150}
90151
90152func (c *InstancesSetTagsCall) doRequest(alt string) (*http.Response, error) {
90153	reqHeaders := make(http.Header)
90154	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
90155	for k, v := range c.header_ {
90156		reqHeaders[k] = v
90157	}
90158	reqHeaders.Set("User-Agent", c.s.userAgent())
90159	var body io.Reader = nil
90160	body, err := googleapi.WithoutDataWrapper.JSONReader(c.tags)
90161	if err != nil {
90162		return nil, err
90163	}
90164	reqHeaders.Set("Content-Type", "application/json")
90165	c.urlParams_.Set("alt", alt)
90166	c.urlParams_.Set("prettyPrint", "false")
90167	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setTags")
90168	urls += "?" + c.urlParams_.Encode()
90169	req, err := http.NewRequest("POST", urls, body)
90170	if err != nil {
90171		return nil, err
90172	}
90173	req.Header = reqHeaders
90174	googleapi.Expand(req.URL, map[string]string{
90175		"project":  c.project,
90176		"zone":     c.zone,
90177		"instance": c.instance,
90178	})
90179	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90180}
90181
90182// Do executes the "compute.instances.setTags" call.
90183// Exactly one of *Operation or error will be non-nil. Any non-2xx
90184// status code is an error. Response headers are in either
90185// *Operation.ServerResponse.Header or (if a response was returned at
90186// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90187// to check whether the returned error was because
90188// http.StatusNotModified was returned.
90189func (c *InstancesSetTagsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90190	gensupport.SetOptions(c.urlParams_, opts...)
90191	res, err := c.doRequest("json")
90192	if res != nil && res.StatusCode == http.StatusNotModified {
90193		if res.Body != nil {
90194			res.Body.Close()
90195		}
90196		return nil, &googleapi.Error{
90197			Code:   res.StatusCode,
90198			Header: res.Header,
90199		}
90200	}
90201	if err != nil {
90202		return nil, err
90203	}
90204	defer googleapi.CloseBody(res)
90205	if err := googleapi.CheckResponse(res); err != nil {
90206		return nil, err
90207	}
90208	ret := &Operation{
90209		ServerResponse: googleapi.ServerResponse{
90210			Header:         res.Header,
90211			HTTPStatusCode: res.StatusCode,
90212		},
90213	}
90214	target := &ret
90215	if err := gensupport.DecodeResponse(target, res); err != nil {
90216		return nil, err
90217	}
90218	return ret, nil
90219	// {
90220	//   "description": "Sets network tags for the specified instance to the data included in the request.",
90221	//   "httpMethod": "POST",
90222	//   "id": "compute.instances.setTags",
90223	//   "parameterOrder": [
90224	//     "project",
90225	//     "zone",
90226	//     "instance"
90227	//   ],
90228	//   "parameters": {
90229	//     "instance": {
90230	//       "description": "Name of the instance scoping this request.",
90231	//       "location": "path",
90232	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90233	//       "required": true,
90234	//       "type": "string"
90235	//     },
90236	//     "project": {
90237	//       "description": "Project ID for this request.",
90238	//       "location": "path",
90239	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90240	//       "required": true,
90241	//       "type": "string"
90242	//     },
90243	//     "requestId": {
90244	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90245	//       "location": "query",
90246	//       "type": "string"
90247	//     },
90248	//     "zone": {
90249	//       "description": "The name of the zone for this request.",
90250	//       "location": "path",
90251	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90252	//       "required": true,
90253	//       "type": "string"
90254	//     }
90255	//   },
90256	//   "path": "{project}/zones/{zone}/instances/{instance}/setTags",
90257	//   "request": {
90258	//     "$ref": "Tags"
90259	//   },
90260	//   "response": {
90261	//     "$ref": "Operation"
90262	//   },
90263	//   "scopes": [
90264	//     "https://www.googleapis.com/auth/cloud-platform",
90265	//     "https://www.googleapis.com/auth/compute"
90266	//   ]
90267	// }
90268
90269}
90270
90271// method id "compute.instances.simulateMaintenanceEvent":
90272
90273type InstancesSimulateMaintenanceEventCall struct {
90274	s          *Service
90275	project    string
90276	zone       string
90277	instance   string
90278	urlParams_ gensupport.URLParams
90279	ctx_       context.Context
90280	header_    http.Header
90281}
90282
90283// SimulateMaintenanceEvent: Simulates a maintenance event on the
90284// instance.
90285func (r *InstancesService) SimulateMaintenanceEvent(project string, zone string, instance string) *InstancesSimulateMaintenanceEventCall {
90286	c := &InstancesSimulateMaintenanceEventCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90287	c.project = project
90288	c.zone = zone
90289	c.instance = instance
90290	return c
90291}
90292
90293// Fields allows partial responses to be retrieved. See
90294// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90295// for more information.
90296func (c *InstancesSimulateMaintenanceEventCall) Fields(s ...googleapi.Field) *InstancesSimulateMaintenanceEventCall {
90297	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90298	return c
90299}
90300
90301// Context sets the context to be used in this call's Do method. Any
90302// pending HTTP request will be aborted if the provided context is
90303// canceled.
90304func (c *InstancesSimulateMaintenanceEventCall) Context(ctx context.Context) *InstancesSimulateMaintenanceEventCall {
90305	c.ctx_ = ctx
90306	return c
90307}
90308
90309// Header returns an http.Header that can be modified by the caller to
90310// add HTTP headers to the request.
90311func (c *InstancesSimulateMaintenanceEventCall) Header() http.Header {
90312	if c.header_ == nil {
90313		c.header_ = make(http.Header)
90314	}
90315	return c.header_
90316}
90317
90318func (c *InstancesSimulateMaintenanceEventCall) doRequest(alt string) (*http.Response, error) {
90319	reqHeaders := make(http.Header)
90320	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
90321	for k, v := range c.header_ {
90322		reqHeaders[k] = v
90323	}
90324	reqHeaders.Set("User-Agent", c.s.userAgent())
90325	var body io.Reader = nil
90326	c.urlParams_.Set("alt", alt)
90327	c.urlParams_.Set("prettyPrint", "false")
90328	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent")
90329	urls += "?" + c.urlParams_.Encode()
90330	req, err := http.NewRequest("POST", urls, body)
90331	if err != nil {
90332		return nil, err
90333	}
90334	req.Header = reqHeaders
90335	googleapi.Expand(req.URL, map[string]string{
90336		"project":  c.project,
90337		"zone":     c.zone,
90338		"instance": c.instance,
90339	})
90340	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90341}
90342
90343// Do executes the "compute.instances.simulateMaintenanceEvent" call.
90344// Exactly one of *Operation or error will be non-nil. Any non-2xx
90345// status code is an error. Response headers are in either
90346// *Operation.ServerResponse.Header or (if a response was returned at
90347// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90348// to check whether the returned error was because
90349// http.StatusNotModified was returned.
90350func (c *InstancesSimulateMaintenanceEventCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90351	gensupport.SetOptions(c.urlParams_, opts...)
90352	res, err := c.doRequest("json")
90353	if res != nil && res.StatusCode == http.StatusNotModified {
90354		if res.Body != nil {
90355			res.Body.Close()
90356		}
90357		return nil, &googleapi.Error{
90358			Code:   res.StatusCode,
90359			Header: res.Header,
90360		}
90361	}
90362	if err != nil {
90363		return nil, err
90364	}
90365	defer googleapi.CloseBody(res)
90366	if err := googleapi.CheckResponse(res); err != nil {
90367		return nil, err
90368	}
90369	ret := &Operation{
90370		ServerResponse: googleapi.ServerResponse{
90371			Header:         res.Header,
90372			HTTPStatusCode: res.StatusCode,
90373		},
90374	}
90375	target := &ret
90376	if err := gensupport.DecodeResponse(target, res); err != nil {
90377		return nil, err
90378	}
90379	return ret, nil
90380	// {
90381	//   "description": "Simulates a maintenance event on the instance.",
90382	//   "httpMethod": "POST",
90383	//   "id": "compute.instances.simulateMaintenanceEvent",
90384	//   "parameterOrder": [
90385	//     "project",
90386	//     "zone",
90387	//     "instance"
90388	//   ],
90389	//   "parameters": {
90390	//     "instance": {
90391	//       "description": "Name of the instance scoping this request.",
90392	//       "location": "path",
90393	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90394	//       "required": true,
90395	//       "type": "string"
90396	//     },
90397	//     "project": {
90398	//       "description": "Project ID for this request.",
90399	//       "location": "path",
90400	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90401	//       "required": true,
90402	//       "type": "string"
90403	//     },
90404	//     "zone": {
90405	//       "description": "The name of the zone for this request.",
90406	//       "location": "path",
90407	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90408	//       "required": true,
90409	//       "type": "string"
90410	//     }
90411	//   },
90412	//   "path": "{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent",
90413	//   "response": {
90414	//     "$ref": "Operation"
90415	//   },
90416	//   "scopes": [
90417	//     "https://www.googleapis.com/auth/cloud-platform",
90418	//     "https://www.googleapis.com/auth/compute"
90419	//   ]
90420	// }
90421
90422}
90423
90424// method id "compute.instances.start":
90425
90426type InstancesStartCall struct {
90427	s          *Service
90428	project    string
90429	zone       string
90430	instance   string
90431	urlParams_ gensupport.URLParams
90432	ctx_       context.Context
90433	header_    http.Header
90434}
90435
90436// Start: Starts an instance that was stopped using the instances().stop
90437// method. For more information, see Restart an instance.
90438// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/start
90439func (r *InstancesService) Start(project string, zone string, instance string) *InstancesStartCall {
90440	c := &InstancesStartCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90441	c.project = project
90442	c.zone = zone
90443	c.instance = instance
90444	return c
90445}
90446
90447// RequestId sets the optional parameter "requestId": An optional
90448// request ID to identify requests. Specify a unique request ID so that
90449// if you must retry your request, the server will know to ignore the
90450// request if it has already been completed.
90451//
90452// For example, consider a situation where you make an initial request
90453// and the request times out. If you make the request again with the
90454// same request ID, the server can check if original operation with the
90455// same request ID was received, and if so, will ignore the second
90456// request. This prevents clients from accidentally creating duplicate
90457// commitments.
90458//
90459// The request ID must be a valid UUID with the exception that zero UUID
90460// is not supported (00000000-0000-0000-0000-000000000000).
90461func (c *InstancesStartCall) RequestId(requestId string) *InstancesStartCall {
90462	c.urlParams_.Set("requestId", requestId)
90463	return c
90464}
90465
90466// Fields allows partial responses to be retrieved. See
90467// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90468// for more information.
90469func (c *InstancesStartCall) Fields(s ...googleapi.Field) *InstancesStartCall {
90470	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90471	return c
90472}
90473
90474// Context sets the context to be used in this call's Do method. Any
90475// pending HTTP request will be aborted if the provided context is
90476// canceled.
90477func (c *InstancesStartCall) Context(ctx context.Context) *InstancesStartCall {
90478	c.ctx_ = ctx
90479	return c
90480}
90481
90482// Header returns an http.Header that can be modified by the caller to
90483// add HTTP headers to the request.
90484func (c *InstancesStartCall) Header() http.Header {
90485	if c.header_ == nil {
90486		c.header_ = make(http.Header)
90487	}
90488	return c.header_
90489}
90490
90491func (c *InstancesStartCall) doRequest(alt string) (*http.Response, error) {
90492	reqHeaders := make(http.Header)
90493	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
90494	for k, v := range c.header_ {
90495		reqHeaders[k] = v
90496	}
90497	reqHeaders.Set("User-Agent", c.s.userAgent())
90498	var body io.Reader = nil
90499	c.urlParams_.Set("alt", alt)
90500	c.urlParams_.Set("prettyPrint", "false")
90501	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/start")
90502	urls += "?" + c.urlParams_.Encode()
90503	req, err := http.NewRequest("POST", urls, body)
90504	if err != nil {
90505		return nil, err
90506	}
90507	req.Header = reqHeaders
90508	googleapi.Expand(req.URL, map[string]string{
90509		"project":  c.project,
90510		"zone":     c.zone,
90511		"instance": c.instance,
90512	})
90513	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90514}
90515
90516// Do executes the "compute.instances.start" call.
90517// Exactly one of *Operation or error will be non-nil. Any non-2xx
90518// status code is an error. Response headers are in either
90519// *Operation.ServerResponse.Header or (if a response was returned at
90520// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90521// to check whether the returned error was because
90522// http.StatusNotModified was returned.
90523func (c *InstancesStartCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90524	gensupport.SetOptions(c.urlParams_, opts...)
90525	res, err := c.doRequest("json")
90526	if res != nil && res.StatusCode == http.StatusNotModified {
90527		if res.Body != nil {
90528			res.Body.Close()
90529		}
90530		return nil, &googleapi.Error{
90531			Code:   res.StatusCode,
90532			Header: res.Header,
90533		}
90534	}
90535	if err != nil {
90536		return nil, err
90537	}
90538	defer googleapi.CloseBody(res)
90539	if err := googleapi.CheckResponse(res); err != nil {
90540		return nil, err
90541	}
90542	ret := &Operation{
90543		ServerResponse: googleapi.ServerResponse{
90544			Header:         res.Header,
90545			HTTPStatusCode: res.StatusCode,
90546		},
90547	}
90548	target := &ret
90549	if err := gensupport.DecodeResponse(target, res); err != nil {
90550		return nil, err
90551	}
90552	return ret, nil
90553	// {
90554	//   "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.",
90555	//   "httpMethod": "POST",
90556	//   "id": "compute.instances.start",
90557	//   "parameterOrder": [
90558	//     "project",
90559	//     "zone",
90560	//     "instance"
90561	//   ],
90562	//   "parameters": {
90563	//     "instance": {
90564	//       "description": "Name of the instance resource to start.",
90565	//       "location": "path",
90566	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90567	//       "required": true,
90568	//       "type": "string"
90569	//     },
90570	//     "project": {
90571	//       "description": "Project ID for this request.",
90572	//       "location": "path",
90573	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90574	//       "required": true,
90575	//       "type": "string"
90576	//     },
90577	//     "requestId": {
90578	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90579	//       "location": "query",
90580	//       "type": "string"
90581	//     },
90582	//     "zone": {
90583	//       "description": "The name of the zone for this request.",
90584	//       "location": "path",
90585	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90586	//       "required": true,
90587	//       "type": "string"
90588	//     }
90589	//   },
90590	//   "path": "{project}/zones/{zone}/instances/{instance}/start",
90591	//   "response": {
90592	//     "$ref": "Operation"
90593	//   },
90594	//   "scopes": [
90595	//     "https://www.googleapis.com/auth/cloud-platform",
90596	//     "https://www.googleapis.com/auth/compute"
90597	//   ]
90598	// }
90599
90600}
90601
90602// method id "compute.instances.startWithEncryptionKey":
90603
90604type InstancesStartWithEncryptionKeyCall struct {
90605	s                                      *Service
90606	project                                string
90607	zone                                   string
90608	instance                               string
90609	instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest
90610	urlParams_                             gensupport.URLParams
90611	ctx_                                   context.Context
90612	header_                                http.Header
90613}
90614
90615// StartWithEncryptionKey: Starts an instance that was stopped using the
90616// instances().stop method. For more information, see Restart an
90617// instance.
90618func (r *InstancesService) StartWithEncryptionKey(project string, zone string, instance string, instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest) *InstancesStartWithEncryptionKeyCall {
90619	c := &InstancesStartWithEncryptionKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90620	c.project = project
90621	c.zone = zone
90622	c.instance = instance
90623	c.instancesstartwithencryptionkeyrequest = instancesstartwithencryptionkeyrequest
90624	return c
90625}
90626
90627// RequestId sets the optional parameter "requestId": An optional
90628// request ID to identify requests. Specify a unique request ID so that
90629// if you must retry your request, the server will know to ignore the
90630// request if it has already been completed.
90631//
90632// For example, consider a situation where you make an initial request
90633// and the request times out. If you make the request again with the
90634// same request ID, the server can check if original operation with the
90635// same request ID was received, and if so, will ignore the second
90636// request. This prevents clients from accidentally creating duplicate
90637// commitments.
90638//
90639// The request ID must be a valid UUID with the exception that zero UUID
90640// is not supported (00000000-0000-0000-0000-000000000000).
90641func (c *InstancesStartWithEncryptionKeyCall) RequestId(requestId string) *InstancesStartWithEncryptionKeyCall {
90642	c.urlParams_.Set("requestId", requestId)
90643	return c
90644}
90645
90646// Fields allows partial responses to be retrieved. See
90647// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90648// for more information.
90649func (c *InstancesStartWithEncryptionKeyCall) Fields(s ...googleapi.Field) *InstancesStartWithEncryptionKeyCall {
90650	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90651	return c
90652}
90653
90654// Context sets the context to be used in this call's Do method. Any
90655// pending HTTP request will be aborted if the provided context is
90656// canceled.
90657func (c *InstancesStartWithEncryptionKeyCall) Context(ctx context.Context) *InstancesStartWithEncryptionKeyCall {
90658	c.ctx_ = ctx
90659	return c
90660}
90661
90662// Header returns an http.Header that can be modified by the caller to
90663// add HTTP headers to the request.
90664func (c *InstancesStartWithEncryptionKeyCall) Header() http.Header {
90665	if c.header_ == nil {
90666		c.header_ = make(http.Header)
90667	}
90668	return c.header_
90669}
90670
90671func (c *InstancesStartWithEncryptionKeyCall) doRequest(alt string) (*http.Response, error) {
90672	reqHeaders := make(http.Header)
90673	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
90674	for k, v := range c.header_ {
90675		reqHeaders[k] = v
90676	}
90677	reqHeaders.Set("User-Agent", c.s.userAgent())
90678	var body io.Reader = nil
90679	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesstartwithencryptionkeyrequest)
90680	if err != nil {
90681		return nil, err
90682	}
90683	reqHeaders.Set("Content-Type", "application/json")
90684	c.urlParams_.Set("alt", alt)
90685	c.urlParams_.Set("prettyPrint", "false")
90686	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey")
90687	urls += "?" + c.urlParams_.Encode()
90688	req, err := http.NewRequest("POST", urls, body)
90689	if err != nil {
90690		return nil, err
90691	}
90692	req.Header = reqHeaders
90693	googleapi.Expand(req.URL, map[string]string{
90694		"project":  c.project,
90695		"zone":     c.zone,
90696		"instance": c.instance,
90697	})
90698	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90699}
90700
90701// Do executes the "compute.instances.startWithEncryptionKey" call.
90702// Exactly one of *Operation or error will be non-nil. Any non-2xx
90703// status code is an error. Response headers are in either
90704// *Operation.ServerResponse.Header or (if a response was returned at
90705// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90706// to check whether the returned error was because
90707// http.StatusNotModified was returned.
90708func (c *InstancesStartWithEncryptionKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90709	gensupport.SetOptions(c.urlParams_, opts...)
90710	res, err := c.doRequest("json")
90711	if res != nil && res.StatusCode == http.StatusNotModified {
90712		if res.Body != nil {
90713			res.Body.Close()
90714		}
90715		return nil, &googleapi.Error{
90716			Code:   res.StatusCode,
90717			Header: res.Header,
90718		}
90719	}
90720	if err != nil {
90721		return nil, err
90722	}
90723	defer googleapi.CloseBody(res)
90724	if err := googleapi.CheckResponse(res); err != nil {
90725		return nil, err
90726	}
90727	ret := &Operation{
90728		ServerResponse: googleapi.ServerResponse{
90729			Header:         res.Header,
90730			HTTPStatusCode: res.StatusCode,
90731		},
90732	}
90733	target := &ret
90734	if err := gensupport.DecodeResponse(target, res); err != nil {
90735		return nil, err
90736	}
90737	return ret, nil
90738	// {
90739	//   "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.",
90740	//   "httpMethod": "POST",
90741	//   "id": "compute.instances.startWithEncryptionKey",
90742	//   "parameterOrder": [
90743	//     "project",
90744	//     "zone",
90745	//     "instance"
90746	//   ],
90747	//   "parameters": {
90748	//     "instance": {
90749	//       "description": "Name of the instance resource to start.",
90750	//       "location": "path",
90751	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90752	//       "required": true,
90753	//       "type": "string"
90754	//     },
90755	//     "project": {
90756	//       "description": "Project ID for this request.",
90757	//       "location": "path",
90758	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90759	//       "required": true,
90760	//       "type": "string"
90761	//     },
90762	//     "requestId": {
90763	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90764	//       "location": "query",
90765	//       "type": "string"
90766	//     },
90767	//     "zone": {
90768	//       "description": "The name of the zone for this request.",
90769	//       "location": "path",
90770	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90771	//       "required": true,
90772	//       "type": "string"
90773	//     }
90774	//   },
90775	//   "path": "{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey",
90776	//   "request": {
90777	//     "$ref": "InstancesStartWithEncryptionKeyRequest"
90778	//   },
90779	//   "response": {
90780	//     "$ref": "Operation"
90781	//   },
90782	//   "scopes": [
90783	//     "https://www.googleapis.com/auth/cloud-platform",
90784	//     "https://www.googleapis.com/auth/compute"
90785	//   ]
90786	// }
90787
90788}
90789
90790// method id "compute.instances.stop":
90791
90792type InstancesStopCall struct {
90793	s          *Service
90794	project    string
90795	zone       string
90796	instance   string
90797	urlParams_ gensupport.URLParams
90798	ctx_       context.Context
90799	header_    http.Header
90800}
90801
90802// Stop: Stops a running instance, shutting it down cleanly, and allows
90803// you to restart the instance at a later time. Stopped instances do not
90804// incur VM usage charges while they are stopped. However, resources
90805// that the VM is using, such as persistent disks and static IP
90806// addresses, will continue to be charged until they are deleted. For
90807// more information, see Stopping an instance.
90808// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/stop
90809func (r *InstancesService) Stop(project string, zone string, instance string) *InstancesStopCall {
90810	c := &InstancesStopCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90811	c.project = project
90812	c.zone = zone
90813	c.instance = instance
90814	return c
90815}
90816
90817// DiscardLocalSsd sets the optional parameter "discardLocalSsd": If
90818// true, discard the contents of any attached localSSD partitions.
90819// Default value is false (== preserve localSSD data).
90820func (c *InstancesStopCall) DiscardLocalSsd(discardLocalSsd bool) *InstancesStopCall {
90821	c.urlParams_.Set("discardLocalSsd", fmt.Sprint(discardLocalSsd))
90822	return c
90823}
90824
90825// RequestId sets the optional parameter "requestId": An optional
90826// request ID to identify requests. Specify a unique request ID so that
90827// if you must retry your request, the server will know to ignore the
90828// request if it has already been completed.
90829//
90830// For example, consider a situation where you make an initial request
90831// and the request times out. If you make the request again with the
90832// same request ID, the server can check if original operation with the
90833// same request ID was received, and if so, will ignore the second
90834// request. This prevents clients from accidentally creating duplicate
90835// commitments.
90836//
90837// The request ID must be a valid UUID with the exception that zero UUID
90838// is not supported (00000000-0000-0000-0000-000000000000).
90839func (c *InstancesStopCall) RequestId(requestId string) *InstancesStopCall {
90840	c.urlParams_.Set("requestId", requestId)
90841	return c
90842}
90843
90844// Fields allows partial responses to be retrieved. See
90845// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90846// for more information.
90847func (c *InstancesStopCall) Fields(s ...googleapi.Field) *InstancesStopCall {
90848	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90849	return c
90850}
90851
90852// Context sets the context to be used in this call's Do method. Any
90853// pending HTTP request will be aborted if the provided context is
90854// canceled.
90855func (c *InstancesStopCall) Context(ctx context.Context) *InstancesStopCall {
90856	c.ctx_ = ctx
90857	return c
90858}
90859
90860// Header returns an http.Header that can be modified by the caller to
90861// add HTTP headers to the request.
90862func (c *InstancesStopCall) Header() http.Header {
90863	if c.header_ == nil {
90864		c.header_ = make(http.Header)
90865	}
90866	return c.header_
90867}
90868
90869func (c *InstancesStopCall) doRequest(alt string) (*http.Response, error) {
90870	reqHeaders := make(http.Header)
90871	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
90872	for k, v := range c.header_ {
90873		reqHeaders[k] = v
90874	}
90875	reqHeaders.Set("User-Agent", c.s.userAgent())
90876	var body io.Reader = nil
90877	c.urlParams_.Set("alt", alt)
90878	c.urlParams_.Set("prettyPrint", "false")
90879	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/stop")
90880	urls += "?" + c.urlParams_.Encode()
90881	req, err := http.NewRequest("POST", urls, body)
90882	if err != nil {
90883		return nil, err
90884	}
90885	req.Header = reqHeaders
90886	googleapi.Expand(req.URL, map[string]string{
90887		"project":  c.project,
90888		"zone":     c.zone,
90889		"instance": c.instance,
90890	})
90891	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90892}
90893
90894// Do executes the "compute.instances.stop" call.
90895// Exactly one of *Operation or error will be non-nil. Any non-2xx
90896// status code is an error. Response headers are in either
90897// *Operation.ServerResponse.Header or (if a response was returned at
90898// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90899// to check whether the returned error was because
90900// http.StatusNotModified was returned.
90901func (c *InstancesStopCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90902	gensupport.SetOptions(c.urlParams_, opts...)
90903	res, err := c.doRequest("json")
90904	if res != nil && res.StatusCode == http.StatusNotModified {
90905		if res.Body != nil {
90906			res.Body.Close()
90907		}
90908		return nil, &googleapi.Error{
90909			Code:   res.StatusCode,
90910			Header: res.Header,
90911		}
90912	}
90913	if err != nil {
90914		return nil, err
90915	}
90916	defer googleapi.CloseBody(res)
90917	if err := googleapi.CheckResponse(res); err != nil {
90918		return nil, err
90919	}
90920	ret := &Operation{
90921		ServerResponse: googleapi.ServerResponse{
90922			Header:         res.Header,
90923			HTTPStatusCode: res.StatusCode,
90924		},
90925	}
90926	target := &ret
90927	if err := gensupport.DecodeResponse(target, res); err != nil {
90928		return nil, err
90929	}
90930	return ret, nil
90931	// {
90932	//   "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.",
90933	//   "httpMethod": "POST",
90934	//   "id": "compute.instances.stop",
90935	//   "parameterOrder": [
90936	//     "project",
90937	//     "zone",
90938	//     "instance"
90939	//   ],
90940	//   "parameters": {
90941	//     "discardLocalSsd": {
90942	//       "description": "If true, discard the contents of any attached localSSD partitions. Default value is false (== preserve localSSD data).",
90943	//       "location": "query",
90944	//       "type": "boolean"
90945	//     },
90946	//     "instance": {
90947	//       "description": "Name of the instance resource to stop.",
90948	//       "location": "path",
90949	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90950	//       "required": true,
90951	//       "type": "string"
90952	//     },
90953	//     "project": {
90954	//       "description": "Project ID for this request.",
90955	//       "location": "path",
90956	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90957	//       "required": true,
90958	//       "type": "string"
90959	//     },
90960	//     "requestId": {
90961	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90962	//       "location": "query",
90963	//       "type": "string"
90964	//     },
90965	//     "zone": {
90966	//       "description": "The name of the zone for this request.",
90967	//       "location": "path",
90968	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90969	//       "required": true,
90970	//       "type": "string"
90971	//     }
90972	//   },
90973	//   "path": "{project}/zones/{zone}/instances/{instance}/stop",
90974	//   "response": {
90975	//     "$ref": "Operation"
90976	//   },
90977	//   "scopes": [
90978	//     "https://www.googleapis.com/auth/cloud-platform",
90979	//     "https://www.googleapis.com/auth/compute"
90980	//   ]
90981	// }
90982
90983}
90984
90985// method id "compute.instances.suspend":
90986
90987type InstancesSuspendCall struct {
90988	s          *Service
90989	project    string
90990	zone       string
90991	instance   string
90992	urlParams_ gensupport.URLParams
90993	ctx_       context.Context
90994	header_    http.Header
90995}
90996
90997// Suspend: This method suspends a running instance, saving its state to
90998// persistent storage, and allows you to resume the instance at a later
90999// time. Suspended instances incur reduced per-minute, virtual machine
91000// usage charges while they are suspended. Any resources the virtual
91001// machine is using, such as persistent disks and static IP addresses,
91002// will continue to be charged until they are deleted.
91003func (r *InstancesService) Suspend(project string, zone string, instance string) *InstancesSuspendCall {
91004	c := &InstancesSuspendCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91005	c.project = project
91006	c.zone = zone
91007	c.instance = instance
91008	return c
91009}
91010
91011// DiscardLocalSsd sets the optional parameter "discardLocalSsd": If
91012// true, discard the contents of any attached localSSD partitions.
91013// Default value is false (== preserve localSSD data).
91014func (c *InstancesSuspendCall) DiscardLocalSsd(discardLocalSsd bool) *InstancesSuspendCall {
91015	c.urlParams_.Set("discardLocalSsd", fmt.Sprint(discardLocalSsd))
91016	return c
91017}
91018
91019// RequestId sets the optional parameter "requestId": An optional
91020// request ID to identify requests. Specify a unique request ID so that
91021// if you must retry your request, the server will know to ignore the
91022// request if it has already been completed.
91023//
91024// For example, consider a situation where you make an initial request
91025// and the request times out. If you make the request again with the
91026// same request ID, the server can check if original operation with the
91027// same request ID was received, and if so, will ignore the second
91028// request. This prevents clients from accidentally creating duplicate
91029// commitments.
91030//
91031// The request ID must be a valid UUID with the exception that zero UUID
91032// is not supported (00000000-0000-0000-0000-000000000000).
91033func (c *InstancesSuspendCall) RequestId(requestId string) *InstancesSuspendCall {
91034	c.urlParams_.Set("requestId", requestId)
91035	return c
91036}
91037
91038// Fields allows partial responses to be retrieved. See
91039// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91040// for more information.
91041func (c *InstancesSuspendCall) Fields(s ...googleapi.Field) *InstancesSuspendCall {
91042	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91043	return c
91044}
91045
91046// Context sets the context to be used in this call's Do method. Any
91047// pending HTTP request will be aborted if the provided context is
91048// canceled.
91049func (c *InstancesSuspendCall) Context(ctx context.Context) *InstancesSuspendCall {
91050	c.ctx_ = ctx
91051	return c
91052}
91053
91054// Header returns an http.Header that can be modified by the caller to
91055// add HTTP headers to the request.
91056func (c *InstancesSuspendCall) Header() http.Header {
91057	if c.header_ == nil {
91058		c.header_ = make(http.Header)
91059	}
91060	return c.header_
91061}
91062
91063func (c *InstancesSuspendCall) doRequest(alt string) (*http.Response, error) {
91064	reqHeaders := make(http.Header)
91065	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
91066	for k, v := range c.header_ {
91067		reqHeaders[k] = v
91068	}
91069	reqHeaders.Set("User-Agent", c.s.userAgent())
91070	var body io.Reader = nil
91071	c.urlParams_.Set("alt", alt)
91072	c.urlParams_.Set("prettyPrint", "false")
91073	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/suspend")
91074	urls += "?" + c.urlParams_.Encode()
91075	req, err := http.NewRequest("POST", urls, body)
91076	if err != nil {
91077		return nil, err
91078	}
91079	req.Header = reqHeaders
91080	googleapi.Expand(req.URL, map[string]string{
91081		"project":  c.project,
91082		"zone":     c.zone,
91083		"instance": c.instance,
91084	})
91085	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91086}
91087
91088// Do executes the "compute.instances.suspend" call.
91089// Exactly one of *Operation or error will be non-nil. Any non-2xx
91090// status code is an error. Response headers are in either
91091// *Operation.ServerResponse.Header or (if a response was returned at
91092// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91093// to check whether the returned error was because
91094// http.StatusNotModified was returned.
91095func (c *InstancesSuspendCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91096	gensupport.SetOptions(c.urlParams_, opts...)
91097	res, err := c.doRequest("json")
91098	if res != nil && res.StatusCode == http.StatusNotModified {
91099		if res.Body != nil {
91100			res.Body.Close()
91101		}
91102		return nil, &googleapi.Error{
91103			Code:   res.StatusCode,
91104			Header: res.Header,
91105		}
91106	}
91107	if err != nil {
91108		return nil, err
91109	}
91110	defer googleapi.CloseBody(res)
91111	if err := googleapi.CheckResponse(res); err != nil {
91112		return nil, err
91113	}
91114	ret := &Operation{
91115		ServerResponse: googleapi.ServerResponse{
91116			Header:         res.Header,
91117			HTTPStatusCode: res.StatusCode,
91118		},
91119	}
91120	target := &ret
91121	if err := gensupport.DecodeResponse(target, res); err != nil {
91122		return nil, err
91123	}
91124	return ret, nil
91125	// {
91126	//   "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.",
91127	//   "httpMethod": "POST",
91128	//   "id": "compute.instances.suspend",
91129	//   "parameterOrder": [
91130	//     "project",
91131	//     "zone",
91132	//     "instance"
91133	//   ],
91134	//   "parameters": {
91135	//     "discardLocalSsd": {
91136	//       "description": "If true, discard the contents of any attached localSSD partitions. Default value is false (== preserve localSSD data).",
91137	//       "location": "query",
91138	//       "type": "boolean"
91139	//     },
91140	//     "instance": {
91141	//       "description": "Name of the instance resource to suspend.",
91142	//       "location": "path",
91143	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91144	//       "required": true,
91145	//       "type": "string"
91146	//     },
91147	//     "project": {
91148	//       "description": "Project ID for this request.",
91149	//       "location": "path",
91150	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91151	//       "required": true,
91152	//       "type": "string"
91153	//     },
91154	//     "requestId": {
91155	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
91156	//       "location": "query",
91157	//       "type": "string"
91158	//     },
91159	//     "zone": {
91160	//       "description": "The name of the zone for this request.",
91161	//       "location": "path",
91162	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91163	//       "required": true,
91164	//       "type": "string"
91165	//     }
91166	//   },
91167	//   "path": "{project}/zones/{zone}/instances/{instance}/suspend",
91168	//   "response": {
91169	//     "$ref": "Operation"
91170	//   },
91171	//   "scopes": [
91172	//     "https://www.googleapis.com/auth/cloud-platform",
91173	//     "https://www.googleapis.com/auth/compute"
91174	//   ]
91175	// }
91176
91177}
91178
91179// method id "compute.instances.testIamPermissions":
91180
91181type InstancesTestIamPermissionsCall struct {
91182	s                      *Service
91183	project                string
91184	zone                   string
91185	resource               string
91186	testpermissionsrequest *TestPermissionsRequest
91187	urlParams_             gensupport.URLParams
91188	ctx_                   context.Context
91189	header_                http.Header
91190}
91191
91192// TestIamPermissions: Returns permissions that a caller has on the
91193// specified resource.
91194func (r *InstancesService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstancesTestIamPermissionsCall {
91195	c := &InstancesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91196	c.project = project
91197	c.zone = zone
91198	c.resource = resource
91199	c.testpermissionsrequest = testpermissionsrequest
91200	return c
91201}
91202
91203// Fields allows partial responses to be retrieved. See
91204// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91205// for more information.
91206func (c *InstancesTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstancesTestIamPermissionsCall {
91207	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91208	return c
91209}
91210
91211// Context sets the context to be used in this call's Do method. Any
91212// pending HTTP request will be aborted if the provided context is
91213// canceled.
91214func (c *InstancesTestIamPermissionsCall) Context(ctx context.Context) *InstancesTestIamPermissionsCall {
91215	c.ctx_ = ctx
91216	return c
91217}
91218
91219// Header returns an http.Header that can be modified by the caller to
91220// add HTTP headers to the request.
91221func (c *InstancesTestIamPermissionsCall) Header() http.Header {
91222	if c.header_ == nil {
91223		c.header_ = make(http.Header)
91224	}
91225	return c.header_
91226}
91227
91228func (c *InstancesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
91229	reqHeaders := make(http.Header)
91230	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
91231	for k, v := range c.header_ {
91232		reqHeaders[k] = v
91233	}
91234	reqHeaders.Set("User-Agent", c.s.userAgent())
91235	var body io.Reader = nil
91236	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
91237	if err != nil {
91238		return nil, err
91239	}
91240	reqHeaders.Set("Content-Type", "application/json")
91241	c.urlParams_.Set("alt", alt)
91242	c.urlParams_.Set("prettyPrint", "false")
91243	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/testIamPermissions")
91244	urls += "?" + c.urlParams_.Encode()
91245	req, err := http.NewRequest("POST", urls, body)
91246	if err != nil {
91247		return nil, err
91248	}
91249	req.Header = reqHeaders
91250	googleapi.Expand(req.URL, map[string]string{
91251		"project":  c.project,
91252		"zone":     c.zone,
91253		"resource": c.resource,
91254	})
91255	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91256}
91257
91258// Do executes the "compute.instances.testIamPermissions" call.
91259// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
91260// non-2xx status code is an error. Response headers are in either
91261// *TestPermissionsResponse.ServerResponse.Header or (if a response was
91262// returned at all) in error.(*googleapi.Error).Header. Use
91263// googleapi.IsNotModified to check whether the returned error was
91264// because http.StatusNotModified was returned.
91265func (c *InstancesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
91266	gensupport.SetOptions(c.urlParams_, opts...)
91267	res, err := c.doRequest("json")
91268	if res != nil && res.StatusCode == http.StatusNotModified {
91269		if res.Body != nil {
91270			res.Body.Close()
91271		}
91272		return nil, &googleapi.Error{
91273			Code:   res.StatusCode,
91274			Header: res.Header,
91275		}
91276	}
91277	if err != nil {
91278		return nil, err
91279	}
91280	defer googleapi.CloseBody(res)
91281	if err := googleapi.CheckResponse(res); err != nil {
91282		return nil, err
91283	}
91284	ret := &TestPermissionsResponse{
91285		ServerResponse: googleapi.ServerResponse{
91286			Header:         res.Header,
91287			HTTPStatusCode: res.StatusCode,
91288		},
91289	}
91290	target := &ret
91291	if err := gensupport.DecodeResponse(target, res); err != nil {
91292		return nil, err
91293	}
91294	return ret, nil
91295	// {
91296	//   "description": "Returns permissions that a caller has on the specified resource.",
91297	//   "httpMethod": "POST",
91298	//   "id": "compute.instances.testIamPermissions",
91299	//   "parameterOrder": [
91300	//     "project",
91301	//     "zone",
91302	//     "resource"
91303	//   ],
91304	//   "parameters": {
91305	//     "project": {
91306	//       "description": "Project ID for this request.",
91307	//       "location": "path",
91308	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91309	//       "required": true,
91310	//       "type": "string"
91311	//     },
91312	//     "resource": {
91313	//       "description": "Name or id of the resource for this request.",
91314	//       "location": "path",
91315	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91316	//       "required": true,
91317	//       "type": "string"
91318	//     },
91319	//     "zone": {
91320	//       "description": "The name of the zone for this request.",
91321	//       "location": "path",
91322	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91323	//       "required": true,
91324	//       "type": "string"
91325	//     }
91326	//   },
91327	//   "path": "{project}/zones/{zone}/instances/{resource}/testIamPermissions",
91328	//   "request": {
91329	//     "$ref": "TestPermissionsRequest"
91330	//   },
91331	//   "response": {
91332	//     "$ref": "TestPermissionsResponse"
91333	//   },
91334	//   "scopes": [
91335	//     "https://www.googleapis.com/auth/cloud-platform",
91336	//     "https://www.googleapis.com/auth/compute",
91337	//     "https://www.googleapis.com/auth/compute.readonly"
91338	//   ]
91339	// }
91340
91341}
91342
91343// method id "compute.instances.update":
91344
91345type InstancesUpdateCall struct {
91346	s          *Service
91347	project    string
91348	zone       string
91349	instance   string
91350	instance2  *Instance
91351	urlParams_ gensupport.URLParams
91352	ctx_       context.Context
91353	header_    http.Header
91354}
91355
91356// Update: Updates an instance.
91357func (r *InstancesService) Update(project string, zone string, instance string, instance2 *Instance) *InstancesUpdateCall {
91358	c := &InstancesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91359	c.project = project
91360	c.zone = zone
91361	c.instance = instance
91362	c.instance2 = instance2
91363	return c
91364}
91365
91366// MinimalAction sets the optional parameter "minimalAction": If
91367// specified, this action or higher level action is performed on the
91368// instance irrespective of what action is required for the update to
91369// take effect. If not specified, then Compute Engine acts based on the
91370// minimum action required.
91371//
91372// Possible values:
91373//   "INVALID"
91374//   "NO_EFFECT"
91375//   "REFRESH"
91376//   "RESTART"
91377func (c *InstancesUpdateCall) MinimalAction(minimalAction string) *InstancesUpdateCall {
91378	c.urlParams_.Set("minimalAction", minimalAction)
91379	return c
91380}
91381
91382// MostDisruptiveAllowedAction sets the optional parameter
91383// "mostDisruptiveAllowedAction": If specified, Compute Engine returns
91384// an error if the update requires a higher action to be applied to the
91385// instance. If not specified, the default will be REFRESH.
91386//
91387// Possible values:
91388//   "INVALID"
91389//   "NO_EFFECT"
91390//   "REFRESH"
91391//   "RESTART"
91392func (c *InstancesUpdateCall) MostDisruptiveAllowedAction(mostDisruptiveAllowedAction string) *InstancesUpdateCall {
91393	c.urlParams_.Set("mostDisruptiveAllowedAction", mostDisruptiveAllowedAction)
91394	return c
91395}
91396
91397// RequestId sets the optional parameter "requestId": An optional
91398// request ID to identify requests. Specify a unique request ID so that
91399// if you must retry your request, the server will know to ignore the
91400// request if it has already been completed.
91401//
91402// For example, consider a situation where you make an initial request
91403// and the request times out. If you make the request again with the
91404// same request ID, the server can check if original operation with the
91405// same request ID was received, and if so, will ignore the second
91406// request. This prevents clients from accidentally creating duplicate
91407// commitments.
91408//
91409// The request ID must be a valid UUID with the exception that zero UUID
91410// is not supported (00000000-0000-0000-0000-000000000000).
91411func (c *InstancesUpdateCall) RequestId(requestId string) *InstancesUpdateCall {
91412	c.urlParams_.Set("requestId", requestId)
91413	return c
91414}
91415
91416// Fields allows partial responses to be retrieved. See
91417// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91418// for more information.
91419func (c *InstancesUpdateCall) Fields(s ...googleapi.Field) *InstancesUpdateCall {
91420	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91421	return c
91422}
91423
91424// Context sets the context to be used in this call's Do method. Any
91425// pending HTTP request will be aborted if the provided context is
91426// canceled.
91427func (c *InstancesUpdateCall) Context(ctx context.Context) *InstancesUpdateCall {
91428	c.ctx_ = ctx
91429	return c
91430}
91431
91432// Header returns an http.Header that can be modified by the caller to
91433// add HTTP headers to the request.
91434func (c *InstancesUpdateCall) Header() http.Header {
91435	if c.header_ == nil {
91436		c.header_ = make(http.Header)
91437	}
91438	return c.header_
91439}
91440
91441func (c *InstancesUpdateCall) doRequest(alt string) (*http.Response, error) {
91442	reqHeaders := make(http.Header)
91443	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
91444	for k, v := range c.header_ {
91445		reqHeaders[k] = v
91446	}
91447	reqHeaders.Set("User-Agent", c.s.userAgent())
91448	var body io.Reader = nil
91449	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance2)
91450	if err != nil {
91451		return nil, err
91452	}
91453	reqHeaders.Set("Content-Type", "application/json")
91454	c.urlParams_.Set("alt", alt)
91455	c.urlParams_.Set("prettyPrint", "false")
91456	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}")
91457	urls += "?" + c.urlParams_.Encode()
91458	req, err := http.NewRequest("PUT", urls, body)
91459	if err != nil {
91460		return nil, err
91461	}
91462	req.Header = reqHeaders
91463	googleapi.Expand(req.URL, map[string]string{
91464		"project":  c.project,
91465		"zone":     c.zone,
91466		"instance": c.instance,
91467	})
91468	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91469}
91470
91471// Do executes the "compute.instances.update" call.
91472// Exactly one of *Operation or error will be non-nil. Any non-2xx
91473// status code is an error. Response headers are in either
91474// *Operation.ServerResponse.Header or (if a response was returned at
91475// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91476// to check whether the returned error was because
91477// http.StatusNotModified was returned.
91478func (c *InstancesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91479	gensupport.SetOptions(c.urlParams_, opts...)
91480	res, err := c.doRequest("json")
91481	if res != nil && res.StatusCode == http.StatusNotModified {
91482		if res.Body != nil {
91483			res.Body.Close()
91484		}
91485		return nil, &googleapi.Error{
91486			Code:   res.StatusCode,
91487			Header: res.Header,
91488		}
91489	}
91490	if err != nil {
91491		return nil, err
91492	}
91493	defer googleapi.CloseBody(res)
91494	if err := googleapi.CheckResponse(res); err != nil {
91495		return nil, err
91496	}
91497	ret := &Operation{
91498		ServerResponse: googleapi.ServerResponse{
91499			Header:         res.Header,
91500			HTTPStatusCode: res.StatusCode,
91501		},
91502	}
91503	target := &ret
91504	if err := gensupport.DecodeResponse(target, res); err != nil {
91505		return nil, err
91506	}
91507	return ret, nil
91508	// {
91509	//   "description": "Updates an instance.",
91510	//   "httpMethod": "PUT",
91511	//   "id": "compute.instances.update",
91512	//   "parameterOrder": [
91513	//     "project",
91514	//     "zone",
91515	//     "instance"
91516	//   ],
91517	//   "parameters": {
91518	//     "instance": {
91519	//       "description": "Name of the instance resource to update.",
91520	//       "location": "path",
91521	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91522	//       "required": true,
91523	//       "type": "string"
91524	//     },
91525	//     "minimalAction": {
91526	//       "description": "If specified, this action or higher level action is performed on the instance irrespective of what action is required for the update to take effect. If not specified, then Compute Engine acts based on the minimum action required.",
91527	//       "enum": [
91528	//         "INVALID",
91529	//         "NO_EFFECT",
91530	//         "REFRESH",
91531	//         "RESTART"
91532	//       ],
91533	//       "enumDescriptions": [
91534	//         "",
91535	//         "",
91536	//         "",
91537	//         ""
91538	//       ],
91539	//       "location": "query",
91540	//       "type": "string"
91541	//     },
91542	//     "mostDisruptiveAllowedAction": {
91543	//       "description": "If specified, Compute Engine returns an error if the update requires a higher action to be applied to the instance. If not specified, the default will be REFRESH.",
91544	//       "enum": [
91545	//         "INVALID",
91546	//         "NO_EFFECT",
91547	//         "REFRESH",
91548	//         "RESTART"
91549	//       ],
91550	//       "enumDescriptions": [
91551	//         "",
91552	//         "",
91553	//         "",
91554	//         ""
91555	//       ],
91556	//       "location": "query",
91557	//       "type": "string"
91558	//     },
91559	//     "project": {
91560	//       "description": "Project ID for this request.",
91561	//       "location": "path",
91562	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91563	//       "required": true,
91564	//       "type": "string"
91565	//     },
91566	//     "requestId": {
91567	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
91568	//       "location": "query",
91569	//       "type": "string"
91570	//     },
91571	//     "zone": {
91572	//       "description": "The name of the zone for this request.",
91573	//       "location": "path",
91574	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91575	//       "required": true,
91576	//       "type": "string"
91577	//     }
91578	//   },
91579	//   "path": "{project}/zones/{zone}/instances/{instance}",
91580	//   "request": {
91581	//     "$ref": "Instance"
91582	//   },
91583	//   "response": {
91584	//     "$ref": "Operation"
91585	//   },
91586	//   "scopes": [
91587	//     "https://www.googleapis.com/auth/cloud-platform",
91588	//     "https://www.googleapis.com/auth/compute"
91589	//   ]
91590	// }
91591
91592}
91593
91594// method id "compute.instances.updateAccessConfig":
91595
91596type InstancesUpdateAccessConfigCall struct {
91597	s            *Service
91598	project      string
91599	zone         string
91600	instance     string
91601	accessconfig *AccessConfig
91602	urlParams_   gensupport.URLParams
91603	ctx_         context.Context
91604	header_      http.Header
91605}
91606
91607// UpdateAccessConfig: Updates the specified access config from an
91608// instance's network interface with the data included in the request.
91609// This method supports PATCH semantics and uses the JSON merge patch
91610// format and processing rules.
91611func (r *InstancesService) UpdateAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesUpdateAccessConfigCall {
91612	c := &InstancesUpdateAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91613	c.project = project
91614	c.zone = zone
91615	c.instance = instance
91616	c.urlParams_.Set("networkInterface", networkInterface)
91617	c.accessconfig = accessconfig
91618	return c
91619}
91620
91621// RequestId sets the optional parameter "requestId": An optional
91622// request ID to identify requests. Specify a unique request ID so that
91623// if you must retry your request, the server will know to ignore the
91624// request if it has already been completed.
91625//
91626// For example, consider a situation where you make an initial request
91627// and the request times out. If you make the request again with the
91628// same request ID, the server can check if original operation with the
91629// same request ID was received, and if so, will ignore the second
91630// request. This prevents clients from accidentally creating duplicate
91631// commitments.
91632//
91633// The request ID must be a valid UUID with the exception that zero UUID
91634// is not supported (00000000-0000-0000-0000-000000000000).
91635func (c *InstancesUpdateAccessConfigCall) RequestId(requestId string) *InstancesUpdateAccessConfigCall {
91636	c.urlParams_.Set("requestId", requestId)
91637	return c
91638}
91639
91640// Fields allows partial responses to be retrieved. See
91641// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91642// for more information.
91643func (c *InstancesUpdateAccessConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateAccessConfigCall {
91644	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91645	return c
91646}
91647
91648// Context sets the context to be used in this call's Do method. Any
91649// pending HTTP request will be aborted if the provided context is
91650// canceled.
91651func (c *InstancesUpdateAccessConfigCall) Context(ctx context.Context) *InstancesUpdateAccessConfigCall {
91652	c.ctx_ = ctx
91653	return c
91654}
91655
91656// Header returns an http.Header that can be modified by the caller to
91657// add HTTP headers to the request.
91658func (c *InstancesUpdateAccessConfigCall) Header() http.Header {
91659	if c.header_ == nil {
91660		c.header_ = make(http.Header)
91661	}
91662	return c.header_
91663}
91664
91665func (c *InstancesUpdateAccessConfigCall) doRequest(alt string) (*http.Response, error) {
91666	reqHeaders := make(http.Header)
91667	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
91668	for k, v := range c.header_ {
91669		reqHeaders[k] = v
91670	}
91671	reqHeaders.Set("User-Agent", c.s.userAgent())
91672	var body io.Reader = nil
91673	body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig)
91674	if err != nil {
91675		return nil, err
91676	}
91677	reqHeaders.Set("Content-Type", "application/json")
91678	c.urlParams_.Set("alt", alt)
91679	c.urlParams_.Set("prettyPrint", "false")
91680	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateAccessConfig")
91681	urls += "?" + c.urlParams_.Encode()
91682	req, err := http.NewRequest("POST", urls, body)
91683	if err != nil {
91684		return nil, err
91685	}
91686	req.Header = reqHeaders
91687	googleapi.Expand(req.URL, map[string]string{
91688		"project":  c.project,
91689		"zone":     c.zone,
91690		"instance": c.instance,
91691	})
91692	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91693}
91694
91695// Do executes the "compute.instances.updateAccessConfig" call.
91696// Exactly one of *Operation or error will be non-nil. Any non-2xx
91697// status code is an error. Response headers are in either
91698// *Operation.ServerResponse.Header or (if a response was returned at
91699// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91700// to check whether the returned error was because
91701// http.StatusNotModified was returned.
91702func (c *InstancesUpdateAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91703	gensupport.SetOptions(c.urlParams_, opts...)
91704	res, err := c.doRequest("json")
91705	if res != nil && res.StatusCode == http.StatusNotModified {
91706		if res.Body != nil {
91707			res.Body.Close()
91708		}
91709		return nil, &googleapi.Error{
91710			Code:   res.StatusCode,
91711			Header: res.Header,
91712		}
91713	}
91714	if err != nil {
91715		return nil, err
91716	}
91717	defer googleapi.CloseBody(res)
91718	if err := googleapi.CheckResponse(res); err != nil {
91719		return nil, err
91720	}
91721	ret := &Operation{
91722		ServerResponse: googleapi.ServerResponse{
91723			Header:         res.Header,
91724			HTTPStatusCode: res.StatusCode,
91725		},
91726	}
91727	target := &ret
91728	if err := gensupport.DecodeResponse(target, res); err != nil {
91729		return nil, err
91730	}
91731	return ret, nil
91732	// {
91733	//   "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.",
91734	//   "httpMethod": "POST",
91735	//   "id": "compute.instances.updateAccessConfig",
91736	//   "parameterOrder": [
91737	//     "project",
91738	//     "zone",
91739	//     "instance",
91740	//     "networkInterface"
91741	//   ],
91742	//   "parameters": {
91743	//     "instance": {
91744	//       "description": "The instance name for this request.",
91745	//       "location": "path",
91746	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91747	//       "required": true,
91748	//       "type": "string"
91749	//     },
91750	//     "networkInterface": {
91751	//       "description": "The name of the network interface where the access config is attached.",
91752	//       "location": "query",
91753	//       "required": true,
91754	//       "type": "string"
91755	//     },
91756	//     "project": {
91757	//       "description": "Project ID for this request.",
91758	//       "location": "path",
91759	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91760	//       "required": true,
91761	//       "type": "string"
91762	//     },
91763	//     "requestId": {
91764	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
91765	//       "location": "query",
91766	//       "type": "string"
91767	//     },
91768	//     "zone": {
91769	//       "description": "The name of the zone for this request.",
91770	//       "location": "path",
91771	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91772	//       "required": true,
91773	//       "type": "string"
91774	//     }
91775	//   },
91776	//   "path": "{project}/zones/{zone}/instances/{instance}/updateAccessConfig",
91777	//   "request": {
91778	//     "$ref": "AccessConfig"
91779	//   },
91780	//   "response": {
91781	//     "$ref": "Operation"
91782	//   },
91783	//   "scopes": [
91784	//     "https://www.googleapis.com/auth/cloud-platform",
91785	//     "https://www.googleapis.com/auth/compute"
91786	//   ]
91787	// }
91788
91789}
91790
91791// method id "compute.instances.updateDisplayDevice":
91792
91793type InstancesUpdateDisplayDeviceCall struct {
91794	s             *Service
91795	project       string
91796	zone          string
91797	instance      string
91798	displaydevice *DisplayDevice
91799	urlParams_    gensupport.URLParams
91800	ctx_          context.Context
91801	header_       http.Header
91802}
91803
91804// UpdateDisplayDevice: Updates the Display config for a VM instance.
91805// You can only use this method on a stopped VM instance. This method
91806// supports PATCH semantics and uses the JSON merge patch format and
91807// processing rules.
91808func (r *InstancesService) UpdateDisplayDevice(project string, zone string, instance string, displaydevice *DisplayDevice) *InstancesUpdateDisplayDeviceCall {
91809	c := &InstancesUpdateDisplayDeviceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91810	c.project = project
91811	c.zone = zone
91812	c.instance = instance
91813	c.displaydevice = displaydevice
91814	return c
91815}
91816
91817// RequestId sets the optional parameter "requestId": An optional
91818// request ID to identify requests. Specify a unique request ID so that
91819// if you must retry your request, the server will know to ignore the
91820// request if it has already been completed.
91821//
91822// For example, consider a situation where you make an initial request
91823// and the request times out. If you make the request again with the
91824// same request ID, the server can check if original operation with the
91825// same request ID was received, and if so, will ignore the second
91826// request. This prevents clients from accidentally creating duplicate
91827// commitments.
91828//
91829// The request ID must be a valid UUID with the exception that zero UUID
91830// is not supported (00000000-0000-0000-0000-000000000000).
91831func (c *InstancesUpdateDisplayDeviceCall) RequestId(requestId string) *InstancesUpdateDisplayDeviceCall {
91832	c.urlParams_.Set("requestId", requestId)
91833	return c
91834}
91835
91836// Fields allows partial responses to be retrieved. See
91837// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91838// for more information.
91839func (c *InstancesUpdateDisplayDeviceCall) Fields(s ...googleapi.Field) *InstancesUpdateDisplayDeviceCall {
91840	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91841	return c
91842}
91843
91844// Context sets the context to be used in this call's Do method. Any
91845// pending HTTP request will be aborted if the provided context is
91846// canceled.
91847func (c *InstancesUpdateDisplayDeviceCall) Context(ctx context.Context) *InstancesUpdateDisplayDeviceCall {
91848	c.ctx_ = ctx
91849	return c
91850}
91851
91852// Header returns an http.Header that can be modified by the caller to
91853// add HTTP headers to the request.
91854func (c *InstancesUpdateDisplayDeviceCall) Header() http.Header {
91855	if c.header_ == nil {
91856		c.header_ = make(http.Header)
91857	}
91858	return c.header_
91859}
91860
91861func (c *InstancesUpdateDisplayDeviceCall) doRequest(alt string) (*http.Response, error) {
91862	reqHeaders := make(http.Header)
91863	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
91864	for k, v := range c.header_ {
91865		reqHeaders[k] = v
91866	}
91867	reqHeaders.Set("User-Agent", c.s.userAgent())
91868	var body io.Reader = nil
91869	body, err := googleapi.WithoutDataWrapper.JSONReader(c.displaydevice)
91870	if err != nil {
91871		return nil, err
91872	}
91873	reqHeaders.Set("Content-Type", "application/json")
91874	c.urlParams_.Set("alt", alt)
91875	c.urlParams_.Set("prettyPrint", "false")
91876	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateDisplayDevice")
91877	urls += "?" + c.urlParams_.Encode()
91878	req, err := http.NewRequest("PATCH", urls, body)
91879	if err != nil {
91880		return nil, err
91881	}
91882	req.Header = reqHeaders
91883	googleapi.Expand(req.URL, map[string]string{
91884		"project":  c.project,
91885		"zone":     c.zone,
91886		"instance": c.instance,
91887	})
91888	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91889}
91890
91891// Do executes the "compute.instances.updateDisplayDevice" call.
91892// Exactly one of *Operation or error will be non-nil. Any non-2xx
91893// status code is an error. Response headers are in either
91894// *Operation.ServerResponse.Header or (if a response was returned at
91895// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91896// to check whether the returned error was because
91897// http.StatusNotModified was returned.
91898func (c *InstancesUpdateDisplayDeviceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91899	gensupport.SetOptions(c.urlParams_, opts...)
91900	res, err := c.doRequest("json")
91901	if res != nil && res.StatusCode == http.StatusNotModified {
91902		if res.Body != nil {
91903			res.Body.Close()
91904		}
91905		return nil, &googleapi.Error{
91906			Code:   res.StatusCode,
91907			Header: res.Header,
91908		}
91909	}
91910	if err != nil {
91911		return nil, err
91912	}
91913	defer googleapi.CloseBody(res)
91914	if err := googleapi.CheckResponse(res); err != nil {
91915		return nil, err
91916	}
91917	ret := &Operation{
91918		ServerResponse: googleapi.ServerResponse{
91919			Header:         res.Header,
91920			HTTPStatusCode: res.StatusCode,
91921		},
91922	}
91923	target := &ret
91924	if err := gensupport.DecodeResponse(target, res); err != nil {
91925		return nil, err
91926	}
91927	return ret, nil
91928	// {
91929	//   "description": "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.",
91930	//   "httpMethod": "PATCH",
91931	//   "id": "compute.instances.updateDisplayDevice",
91932	//   "parameterOrder": [
91933	//     "project",
91934	//     "zone",
91935	//     "instance"
91936	//   ],
91937	//   "parameters": {
91938	//     "instance": {
91939	//       "description": "Name of the instance scoping this request.",
91940	//       "location": "path",
91941	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91942	//       "required": true,
91943	//       "type": "string"
91944	//     },
91945	//     "project": {
91946	//       "description": "Project ID for this request.",
91947	//       "location": "path",
91948	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91949	//       "required": true,
91950	//       "type": "string"
91951	//     },
91952	//     "requestId": {
91953	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
91954	//       "location": "query",
91955	//       "type": "string"
91956	//     },
91957	//     "zone": {
91958	//       "description": "The name of the zone for this request.",
91959	//       "location": "path",
91960	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91961	//       "required": true,
91962	//       "type": "string"
91963	//     }
91964	//   },
91965	//   "path": "{project}/zones/{zone}/instances/{instance}/updateDisplayDevice",
91966	//   "request": {
91967	//     "$ref": "DisplayDevice"
91968	//   },
91969	//   "response": {
91970	//     "$ref": "Operation"
91971	//   },
91972	//   "scopes": [
91973	//     "https://www.googleapis.com/auth/cloud-platform",
91974	//     "https://www.googleapis.com/auth/compute"
91975	//   ]
91976	// }
91977
91978}
91979
91980// method id "compute.instances.updateNetworkInterface":
91981
91982type InstancesUpdateNetworkInterfaceCall struct {
91983	s                *Service
91984	project          string
91985	zone             string
91986	instance         string
91987	networkinterface *NetworkInterface
91988	urlParams_       gensupport.URLParams
91989	ctx_             context.Context
91990	header_          http.Header
91991}
91992
91993// UpdateNetworkInterface: Updates an instance's network interface. This
91994// method follows PATCH semantics.
91995func (r *InstancesService) UpdateNetworkInterface(project string, zone string, instance string, networkInterface string, networkinterface *NetworkInterface) *InstancesUpdateNetworkInterfaceCall {
91996	c := &InstancesUpdateNetworkInterfaceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91997	c.project = project
91998	c.zone = zone
91999	c.instance = instance
92000	c.urlParams_.Set("networkInterface", networkInterface)
92001	c.networkinterface = networkinterface
92002	return c
92003}
92004
92005// RequestId sets the optional parameter "requestId": An optional
92006// request ID to identify requests. Specify a unique request ID so that
92007// if you must retry your request, the server will know to ignore the
92008// request if it has already been completed.
92009//
92010// For example, consider a situation where you make an initial request
92011// and the request times out. If you make the request again with the
92012// same request ID, the server can check if original operation with the
92013// same request ID was received, and if so, will ignore the second
92014// request. This prevents clients from accidentally creating duplicate
92015// commitments.
92016//
92017// The request ID must be a valid UUID with the exception that zero UUID
92018// is not supported (00000000-0000-0000-0000-000000000000).
92019func (c *InstancesUpdateNetworkInterfaceCall) RequestId(requestId string) *InstancesUpdateNetworkInterfaceCall {
92020	c.urlParams_.Set("requestId", requestId)
92021	return c
92022}
92023
92024// Fields allows partial responses to be retrieved. See
92025// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92026// for more information.
92027func (c *InstancesUpdateNetworkInterfaceCall) Fields(s ...googleapi.Field) *InstancesUpdateNetworkInterfaceCall {
92028	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92029	return c
92030}
92031
92032// Context sets the context to be used in this call's Do method. Any
92033// pending HTTP request will be aborted if the provided context is
92034// canceled.
92035func (c *InstancesUpdateNetworkInterfaceCall) Context(ctx context.Context) *InstancesUpdateNetworkInterfaceCall {
92036	c.ctx_ = ctx
92037	return c
92038}
92039
92040// Header returns an http.Header that can be modified by the caller to
92041// add HTTP headers to the request.
92042func (c *InstancesUpdateNetworkInterfaceCall) Header() http.Header {
92043	if c.header_ == nil {
92044		c.header_ = make(http.Header)
92045	}
92046	return c.header_
92047}
92048
92049func (c *InstancesUpdateNetworkInterfaceCall) doRequest(alt string) (*http.Response, error) {
92050	reqHeaders := make(http.Header)
92051	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
92052	for k, v := range c.header_ {
92053		reqHeaders[k] = v
92054	}
92055	reqHeaders.Set("User-Agent", c.s.userAgent())
92056	var body io.Reader = nil
92057	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkinterface)
92058	if err != nil {
92059		return nil, err
92060	}
92061	reqHeaders.Set("Content-Type", "application/json")
92062	c.urlParams_.Set("alt", alt)
92063	c.urlParams_.Set("prettyPrint", "false")
92064	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateNetworkInterface")
92065	urls += "?" + c.urlParams_.Encode()
92066	req, err := http.NewRequest("PATCH", urls, body)
92067	if err != nil {
92068		return nil, err
92069	}
92070	req.Header = reqHeaders
92071	googleapi.Expand(req.URL, map[string]string{
92072		"project":  c.project,
92073		"zone":     c.zone,
92074		"instance": c.instance,
92075	})
92076	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92077}
92078
92079// Do executes the "compute.instances.updateNetworkInterface" call.
92080// Exactly one of *Operation or error will be non-nil. Any non-2xx
92081// status code is an error. Response headers are in either
92082// *Operation.ServerResponse.Header or (if a response was returned at
92083// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92084// to check whether the returned error was because
92085// http.StatusNotModified was returned.
92086func (c *InstancesUpdateNetworkInterfaceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92087	gensupport.SetOptions(c.urlParams_, opts...)
92088	res, err := c.doRequest("json")
92089	if res != nil && res.StatusCode == http.StatusNotModified {
92090		if res.Body != nil {
92091			res.Body.Close()
92092		}
92093		return nil, &googleapi.Error{
92094			Code:   res.StatusCode,
92095			Header: res.Header,
92096		}
92097	}
92098	if err != nil {
92099		return nil, err
92100	}
92101	defer googleapi.CloseBody(res)
92102	if err := googleapi.CheckResponse(res); err != nil {
92103		return nil, err
92104	}
92105	ret := &Operation{
92106		ServerResponse: googleapi.ServerResponse{
92107			Header:         res.Header,
92108			HTTPStatusCode: res.StatusCode,
92109		},
92110	}
92111	target := &ret
92112	if err := gensupport.DecodeResponse(target, res); err != nil {
92113		return nil, err
92114	}
92115	return ret, nil
92116	// {
92117	//   "description": "Updates an instance's network interface. This method follows PATCH semantics.",
92118	//   "httpMethod": "PATCH",
92119	//   "id": "compute.instances.updateNetworkInterface",
92120	//   "parameterOrder": [
92121	//     "project",
92122	//     "zone",
92123	//     "instance",
92124	//     "networkInterface"
92125	//   ],
92126	//   "parameters": {
92127	//     "instance": {
92128	//       "description": "The instance name for this request.",
92129	//       "location": "path",
92130	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92131	//       "required": true,
92132	//       "type": "string"
92133	//     },
92134	//     "networkInterface": {
92135	//       "description": "The name of the network interface to update.",
92136	//       "location": "query",
92137	//       "required": true,
92138	//       "type": "string"
92139	//     },
92140	//     "project": {
92141	//       "description": "Project ID for this request.",
92142	//       "location": "path",
92143	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92144	//       "required": true,
92145	//       "type": "string"
92146	//     },
92147	//     "requestId": {
92148	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
92149	//       "location": "query",
92150	//       "type": "string"
92151	//     },
92152	//     "zone": {
92153	//       "description": "The name of the zone for this request.",
92154	//       "location": "path",
92155	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92156	//       "required": true,
92157	//       "type": "string"
92158	//     }
92159	//   },
92160	//   "path": "{project}/zones/{zone}/instances/{instance}/updateNetworkInterface",
92161	//   "request": {
92162	//     "$ref": "NetworkInterface"
92163	//   },
92164	//   "response": {
92165	//     "$ref": "Operation"
92166	//   },
92167	//   "scopes": [
92168	//     "https://www.googleapis.com/auth/cloud-platform",
92169	//     "https://www.googleapis.com/auth/compute"
92170	//   ]
92171	// }
92172
92173}
92174
92175// method id "compute.instances.updateShieldedInstanceConfig":
92176
92177type InstancesUpdateShieldedInstanceConfigCall struct {
92178	s                      *Service
92179	project                string
92180	zone                   string
92181	instance               string
92182	shieldedinstanceconfig *ShieldedInstanceConfig
92183	urlParams_             gensupport.URLParams
92184	ctx_                   context.Context
92185	header_                http.Header
92186}
92187
92188// UpdateShieldedInstanceConfig: Updates the Shielded Instance config
92189// for an instance. You can only use this method on a stopped instance.
92190// This method supports PATCH semantics and uses the JSON merge patch
92191// format and processing rules.
92192func (r *InstancesService) UpdateShieldedInstanceConfig(project string, zone string, instance string, shieldedinstanceconfig *ShieldedInstanceConfig) *InstancesUpdateShieldedInstanceConfigCall {
92193	c := &InstancesUpdateShieldedInstanceConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92194	c.project = project
92195	c.zone = zone
92196	c.instance = instance
92197	c.shieldedinstanceconfig = shieldedinstanceconfig
92198	return c
92199}
92200
92201// RequestId sets the optional parameter "requestId": An optional
92202// request ID to identify requests. Specify a unique request ID so that
92203// if you must retry your request, the server will know to ignore the
92204// request if it has already been completed.
92205//
92206// For example, consider a situation where you make an initial request
92207// and the request times out. If you make the request again with the
92208// same request ID, the server can check if original operation with the
92209// same request ID was received, and if so, will ignore the second
92210// request. This prevents clients from accidentally creating duplicate
92211// commitments.
92212//
92213// The request ID must be a valid UUID with the exception that zero UUID
92214// is not supported (00000000-0000-0000-0000-000000000000).
92215func (c *InstancesUpdateShieldedInstanceConfigCall) RequestId(requestId string) *InstancesUpdateShieldedInstanceConfigCall {
92216	c.urlParams_.Set("requestId", requestId)
92217	return c
92218}
92219
92220// Fields allows partial responses to be retrieved. See
92221// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92222// for more information.
92223func (c *InstancesUpdateShieldedInstanceConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateShieldedInstanceConfigCall {
92224	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92225	return c
92226}
92227
92228// Context sets the context to be used in this call's Do method. Any
92229// pending HTTP request will be aborted if the provided context is
92230// canceled.
92231func (c *InstancesUpdateShieldedInstanceConfigCall) Context(ctx context.Context) *InstancesUpdateShieldedInstanceConfigCall {
92232	c.ctx_ = ctx
92233	return c
92234}
92235
92236// Header returns an http.Header that can be modified by the caller to
92237// add HTTP headers to the request.
92238func (c *InstancesUpdateShieldedInstanceConfigCall) Header() http.Header {
92239	if c.header_ == nil {
92240		c.header_ = make(http.Header)
92241	}
92242	return c.header_
92243}
92244
92245func (c *InstancesUpdateShieldedInstanceConfigCall) doRequest(alt string) (*http.Response, error) {
92246	reqHeaders := make(http.Header)
92247	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
92248	for k, v := range c.header_ {
92249		reqHeaders[k] = v
92250	}
92251	reqHeaders.Set("User-Agent", c.s.userAgent())
92252	var body io.Reader = nil
92253	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedinstanceconfig)
92254	if err != nil {
92255		return nil, err
92256	}
92257	reqHeaders.Set("Content-Type", "application/json")
92258	c.urlParams_.Set("alt", alt)
92259	c.urlParams_.Set("prettyPrint", "false")
92260	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig")
92261	urls += "?" + c.urlParams_.Encode()
92262	req, err := http.NewRequest("PATCH", urls, body)
92263	if err != nil {
92264		return nil, err
92265	}
92266	req.Header = reqHeaders
92267	googleapi.Expand(req.URL, map[string]string{
92268		"project":  c.project,
92269		"zone":     c.zone,
92270		"instance": c.instance,
92271	})
92272	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92273}
92274
92275// Do executes the "compute.instances.updateShieldedInstanceConfig" call.
92276// Exactly one of *Operation or error will be non-nil. Any non-2xx
92277// status code is an error. Response headers are in either
92278// *Operation.ServerResponse.Header or (if a response was returned at
92279// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92280// to check whether the returned error was because
92281// http.StatusNotModified was returned.
92282func (c *InstancesUpdateShieldedInstanceConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92283	gensupport.SetOptions(c.urlParams_, opts...)
92284	res, err := c.doRequest("json")
92285	if res != nil && res.StatusCode == http.StatusNotModified {
92286		if res.Body != nil {
92287			res.Body.Close()
92288		}
92289		return nil, &googleapi.Error{
92290			Code:   res.StatusCode,
92291			Header: res.Header,
92292		}
92293	}
92294	if err != nil {
92295		return nil, err
92296	}
92297	defer googleapi.CloseBody(res)
92298	if err := googleapi.CheckResponse(res); err != nil {
92299		return nil, err
92300	}
92301	ret := &Operation{
92302		ServerResponse: googleapi.ServerResponse{
92303			Header:         res.Header,
92304			HTTPStatusCode: res.StatusCode,
92305		},
92306	}
92307	target := &ret
92308	if err := gensupport.DecodeResponse(target, res); err != nil {
92309		return nil, err
92310	}
92311	return ret, nil
92312	// {
92313	//   "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.",
92314	//   "httpMethod": "PATCH",
92315	//   "id": "compute.instances.updateShieldedInstanceConfig",
92316	//   "parameterOrder": [
92317	//     "project",
92318	//     "zone",
92319	//     "instance"
92320	//   ],
92321	//   "parameters": {
92322	//     "instance": {
92323	//       "description": "Name or id of the instance scoping this request.",
92324	//       "location": "path",
92325	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92326	//       "required": true,
92327	//       "type": "string"
92328	//     },
92329	//     "project": {
92330	//       "description": "Project ID for this request.",
92331	//       "location": "path",
92332	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92333	//       "required": true,
92334	//       "type": "string"
92335	//     },
92336	//     "requestId": {
92337	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
92338	//       "location": "query",
92339	//       "type": "string"
92340	//     },
92341	//     "zone": {
92342	//       "description": "The name of the zone for this request.",
92343	//       "location": "path",
92344	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92345	//       "required": true,
92346	//       "type": "string"
92347	//     }
92348	//   },
92349	//   "path": "{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig",
92350	//   "request": {
92351	//     "$ref": "ShieldedInstanceConfig"
92352	//   },
92353	//   "response": {
92354	//     "$ref": "Operation"
92355	//   },
92356	//   "scopes": [
92357	//     "https://www.googleapis.com/auth/cloud-platform",
92358	//     "https://www.googleapis.com/auth/compute"
92359	//   ]
92360	// }
92361
92362}
92363
92364// method id "compute.instances.updateShieldedVmConfig":
92365
92366type InstancesUpdateShieldedVmConfigCall struct {
92367	s                *Service
92368	project          string
92369	zone             string
92370	instance         string
92371	shieldedvmconfig *ShieldedVmConfig
92372	urlParams_       gensupport.URLParams
92373	ctx_             context.Context
92374	header_          http.Header
92375}
92376
92377// UpdateShieldedVmConfig: Updates the Shielded VM config for a VM
92378// instance. You can only use this method on a stopped VM instance. This
92379// method supports PATCH semantics and uses the JSON merge patch format
92380// and processing rules.
92381func (r *InstancesService) UpdateShieldedVmConfig(project string, zone string, instance string, shieldedvmconfig *ShieldedVmConfig) *InstancesUpdateShieldedVmConfigCall {
92382	c := &InstancesUpdateShieldedVmConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92383	c.project = project
92384	c.zone = zone
92385	c.instance = instance
92386	c.shieldedvmconfig = shieldedvmconfig
92387	return c
92388}
92389
92390// RequestId sets the optional parameter "requestId": An optional
92391// request ID to identify requests. Specify a unique request ID so that
92392// if you must retry your request, the server will know to ignore the
92393// request if it has already been completed.
92394//
92395// For example, consider a situation where you make an initial request
92396// and the request times out. If you make the request again with the
92397// same request ID, the server can check if original operation with the
92398// same request ID was received, and if so, will ignore the second
92399// request. This prevents clients from accidentally creating duplicate
92400// commitments.
92401//
92402// The request ID must be a valid UUID with the exception that zero UUID
92403// is not supported (00000000-0000-0000-0000-000000000000).
92404func (c *InstancesUpdateShieldedVmConfigCall) RequestId(requestId string) *InstancesUpdateShieldedVmConfigCall {
92405	c.urlParams_.Set("requestId", requestId)
92406	return c
92407}
92408
92409// Fields allows partial responses to be retrieved. See
92410// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92411// for more information.
92412func (c *InstancesUpdateShieldedVmConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateShieldedVmConfigCall {
92413	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92414	return c
92415}
92416
92417// Context sets the context to be used in this call's Do method. Any
92418// pending HTTP request will be aborted if the provided context is
92419// canceled.
92420func (c *InstancesUpdateShieldedVmConfigCall) Context(ctx context.Context) *InstancesUpdateShieldedVmConfigCall {
92421	c.ctx_ = ctx
92422	return c
92423}
92424
92425// Header returns an http.Header that can be modified by the caller to
92426// add HTTP headers to the request.
92427func (c *InstancesUpdateShieldedVmConfigCall) Header() http.Header {
92428	if c.header_ == nil {
92429		c.header_ = make(http.Header)
92430	}
92431	return c.header_
92432}
92433
92434func (c *InstancesUpdateShieldedVmConfigCall) doRequest(alt string) (*http.Response, error) {
92435	reqHeaders := make(http.Header)
92436	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
92437	for k, v := range c.header_ {
92438		reqHeaders[k] = v
92439	}
92440	reqHeaders.Set("User-Agent", c.s.userAgent())
92441	var body io.Reader = nil
92442	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedvmconfig)
92443	if err != nil {
92444		return nil, err
92445	}
92446	reqHeaders.Set("Content-Type", "application/json")
92447	c.urlParams_.Set("alt", alt)
92448	c.urlParams_.Set("prettyPrint", "false")
92449	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateShieldedVmConfig")
92450	urls += "?" + c.urlParams_.Encode()
92451	req, err := http.NewRequest("PATCH", urls, body)
92452	if err != nil {
92453		return nil, err
92454	}
92455	req.Header = reqHeaders
92456	googleapi.Expand(req.URL, map[string]string{
92457		"project":  c.project,
92458		"zone":     c.zone,
92459		"instance": c.instance,
92460	})
92461	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92462}
92463
92464// Do executes the "compute.instances.updateShieldedVmConfig" call.
92465// Exactly one of *Operation or error will be non-nil. Any non-2xx
92466// status code is an error. Response headers are in either
92467// *Operation.ServerResponse.Header or (if a response was returned at
92468// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92469// to check whether the returned error was because
92470// http.StatusNotModified was returned.
92471func (c *InstancesUpdateShieldedVmConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92472	gensupport.SetOptions(c.urlParams_, opts...)
92473	res, err := c.doRequest("json")
92474	if res != nil && res.StatusCode == http.StatusNotModified {
92475		if res.Body != nil {
92476			res.Body.Close()
92477		}
92478		return nil, &googleapi.Error{
92479			Code:   res.StatusCode,
92480			Header: res.Header,
92481		}
92482	}
92483	if err != nil {
92484		return nil, err
92485	}
92486	defer googleapi.CloseBody(res)
92487	if err := googleapi.CheckResponse(res); err != nil {
92488		return nil, err
92489	}
92490	ret := &Operation{
92491		ServerResponse: googleapi.ServerResponse{
92492			Header:         res.Header,
92493			HTTPStatusCode: res.StatusCode,
92494		},
92495	}
92496	target := &ret
92497	if err := gensupport.DecodeResponse(target, res); err != nil {
92498		return nil, err
92499	}
92500	return ret, nil
92501	// {
92502	//   "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.",
92503	//   "httpMethod": "PATCH",
92504	//   "id": "compute.instances.updateShieldedVmConfig",
92505	//   "parameterOrder": [
92506	//     "project",
92507	//     "zone",
92508	//     "instance"
92509	//   ],
92510	//   "parameters": {
92511	//     "instance": {
92512	//       "description": "Name of the instance scoping this request.",
92513	//       "location": "path",
92514	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92515	//       "required": true,
92516	//       "type": "string"
92517	//     },
92518	//     "project": {
92519	//       "description": "Project ID for this request.",
92520	//       "location": "path",
92521	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92522	//       "required": true,
92523	//       "type": "string"
92524	//     },
92525	//     "requestId": {
92526	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
92527	//       "location": "query",
92528	//       "type": "string"
92529	//     },
92530	//     "zone": {
92531	//       "description": "The name of the zone for this request.",
92532	//       "location": "path",
92533	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92534	//       "required": true,
92535	//       "type": "string"
92536	//     }
92537	//   },
92538	//   "path": "{project}/zones/{zone}/instances/{instance}/updateShieldedVmConfig",
92539	//   "request": {
92540	//     "$ref": "ShieldedVmConfig"
92541	//   },
92542	//   "response": {
92543	//     "$ref": "Operation"
92544	//   },
92545	//   "scopes": [
92546	//     "https://www.googleapis.com/auth/cloud-platform",
92547	//     "https://www.googleapis.com/auth/compute"
92548	//   ]
92549	// }
92550
92551}
92552
92553// method id "compute.interconnectAttachments.aggregatedList":
92554
92555type InterconnectAttachmentsAggregatedListCall struct {
92556	s            *Service
92557	project      string
92558	urlParams_   gensupport.URLParams
92559	ifNoneMatch_ string
92560	ctx_         context.Context
92561	header_      http.Header
92562}
92563
92564// AggregatedList: Retrieves an aggregated list of interconnect
92565// attachments.
92566func (r *InterconnectAttachmentsService) AggregatedList(project string) *InterconnectAttachmentsAggregatedListCall {
92567	c := &InterconnectAttachmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92568	c.project = project
92569	return c
92570}
92571
92572// Filter sets the optional parameter "filter": A filter expression that
92573// filters resources listed in the response. The expression must specify
92574// the field name, a comparison operator, and the value that you want to
92575// use for filtering. The value must be a string, a number, or a
92576// boolean. The comparison operator must be either =, !=, >, or <.
92577//
92578// For example, if you are filtering Compute Engine instances, you can
92579// exclude instances named example-instance by specifying name !=
92580// example-instance.
92581//
92582// You can also filter nested fields. For example, you could specify
92583// scheduling.automaticRestart = false to include instances only if they
92584// are not scheduled for automatic restarts. You can use filtering on
92585// nested fields to filter based on resource labels.
92586//
92587// To filter on multiple expressions, provide each separate expression
92588// within parentheses. For example, (scheduling.automaticRestart = true)
92589// (cpuPlatform = "Intel Skylake"). By default, each expression is an
92590// AND expression. However, you can include AND and OR expressions
92591// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
92592// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
92593// true).
92594func (c *InterconnectAttachmentsAggregatedListCall) Filter(filter string) *InterconnectAttachmentsAggregatedListCall {
92595	c.urlParams_.Set("filter", filter)
92596	return c
92597}
92598
92599// IncludeAllScopes sets the optional parameter "includeAllScopes":
92600// Indicates whether every visible scope for each scope type (zone,
92601// region, global) should be included in the response. For new resource
92602// types added after this field, the flag has no effect as new resource
92603// types will always include every visible scope for each scope type in
92604// response. For resource types which predate this field, if this flag
92605// is omitted or false, only scopes of the scope types where the
92606// resource type is expected to be found will be included.
92607func (c *InterconnectAttachmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InterconnectAttachmentsAggregatedListCall {
92608	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
92609	return c
92610}
92611
92612// MaxResults sets the optional parameter "maxResults": The maximum
92613// number of results per page that should be returned. If the number of
92614// available results is larger than maxResults, Compute Engine returns a
92615// nextPageToken that can be used to get the next page of results in
92616// subsequent list requests. Acceptable values are 0 to 500, inclusive.
92617// (Default: 500)
92618func (c *InterconnectAttachmentsAggregatedListCall) MaxResults(maxResults int64) *InterconnectAttachmentsAggregatedListCall {
92619	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
92620	return c
92621}
92622
92623// OrderBy sets the optional parameter "orderBy": Sorts list results by
92624// a certain order. By default, results are returned in alphanumerical
92625// order based on the resource name.
92626//
92627// You can also sort results in descending order based on the creation
92628// timestamp using orderBy="creationTimestamp desc". This sorts results
92629// based on the creationTimestamp field in reverse chronological order
92630// (newest result first). Use this to sort resources like operations so
92631// that the newest operation is returned first.
92632//
92633// Currently, only sorting by name or creationTimestamp desc is
92634// supported.
92635func (c *InterconnectAttachmentsAggregatedListCall) OrderBy(orderBy string) *InterconnectAttachmentsAggregatedListCall {
92636	c.urlParams_.Set("orderBy", orderBy)
92637	return c
92638}
92639
92640// PageToken sets the optional parameter "pageToken": Specifies a page
92641// token to use. Set pageToken to the nextPageToken returned by a
92642// previous list request to get the next page of results.
92643func (c *InterconnectAttachmentsAggregatedListCall) PageToken(pageToken string) *InterconnectAttachmentsAggregatedListCall {
92644	c.urlParams_.Set("pageToken", pageToken)
92645	return c
92646}
92647
92648// Fields allows partial responses to be retrieved. See
92649// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92650// for more information.
92651func (c *InterconnectAttachmentsAggregatedListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsAggregatedListCall {
92652	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92653	return c
92654}
92655
92656// IfNoneMatch sets the optional parameter which makes the operation
92657// fail if the object's ETag matches the given value. This is useful for
92658// getting updates only after the object has changed since the last
92659// request. Use googleapi.IsNotModified to check whether the response
92660// error from Do is the result of In-None-Match.
92661func (c *InterconnectAttachmentsAggregatedListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsAggregatedListCall {
92662	c.ifNoneMatch_ = entityTag
92663	return c
92664}
92665
92666// Context sets the context to be used in this call's Do method. Any
92667// pending HTTP request will be aborted if the provided context is
92668// canceled.
92669func (c *InterconnectAttachmentsAggregatedListCall) Context(ctx context.Context) *InterconnectAttachmentsAggregatedListCall {
92670	c.ctx_ = ctx
92671	return c
92672}
92673
92674// Header returns an http.Header that can be modified by the caller to
92675// add HTTP headers to the request.
92676func (c *InterconnectAttachmentsAggregatedListCall) Header() http.Header {
92677	if c.header_ == nil {
92678		c.header_ = make(http.Header)
92679	}
92680	return c.header_
92681}
92682
92683func (c *InterconnectAttachmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
92684	reqHeaders := make(http.Header)
92685	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
92686	for k, v := range c.header_ {
92687		reqHeaders[k] = v
92688	}
92689	reqHeaders.Set("User-Agent", c.s.userAgent())
92690	if c.ifNoneMatch_ != "" {
92691		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
92692	}
92693	var body io.Reader = nil
92694	c.urlParams_.Set("alt", alt)
92695	c.urlParams_.Set("prettyPrint", "false")
92696	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/interconnectAttachments")
92697	urls += "?" + c.urlParams_.Encode()
92698	req, err := http.NewRequest("GET", urls, body)
92699	if err != nil {
92700		return nil, err
92701	}
92702	req.Header = reqHeaders
92703	googleapi.Expand(req.URL, map[string]string{
92704		"project": c.project,
92705	})
92706	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92707}
92708
92709// Do executes the "compute.interconnectAttachments.aggregatedList" call.
92710// Exactly one of *InterconnectAttachmentAggregatedList or error will be
92711// non-nil. Any non-2xx status code is an error. Response headers are in
92712// either *InterconnectAttachmentAggregatedList.ServerResponse.Header or
92713// (if a response was returned at all) in
92714// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
92715// whether the returned error was because http.StatusNotModified was
92716// returned.
92717func (c *InterconnectAttachmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentAggregatedList, error) {
92718	gensupport.SetOptions(c.urlParams_, opts...)
92719	res, err := c.doRequest("json")
92720	if res != nil && res.StatusCode == http.StatusNotModified {
92721		if res.Body != nil {
92722			res.Body.Close()
92723		}
92724		return nil, &googleapi.Error{
92725			Code:   res.StatusCode,
92726			Header: res.Header,
92727		}
92728	}
92729	if err != nil {
92730		return nil, err
92731	}
92732	defer googleapi.CloseBody(res)
92733	if err := googleapi.CheckResponse(res); err != nil {
92734		return nil, err
92735	}
92736	ret := &InterconnectAttachmentAggregatedList{
92737		ServerResponse: googleapi.ServerResponse{
92738			Header:         res.Header,
92739			HTTPStatusCode: res.StatusCode,
92740		},
92741	}
92742	target := &ret
92743	if err := gensupport.DecodeResponse(target, res); err != nil {
92744		return nil, err
92745	}
92746	return ret, nil
92747	// {
92748	//   "description": "Retrieves an aggregated list of interconnect attachments.",
92749	//   "httpMethod": "GET",
92750	//   "id": "compute.interconnectAttachments.aggregatedList",
92751	//   "parameterOrder": [
92752	//     "project"
92753	//   ],
92754	//   "parameters": {
92755	//     "filter": {
92756	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
92757	//       "location": "query",
92758	//       "type": "string"
92759	//     },
92760	//     "includeAllScopes": {
92761	//       "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.",
92762	//       "location": "query",
92763	//       "type": "boolean"
92764	//     },
92765	//     "maxResults": {
92766	//       "default": "500",
92767	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
92768	//       "format": "uint32",
92769	//       "location": "query",
92770	//       "minimum": "0",
92771	//       "type": "integer"
92772	//     },
92773	//     "orderBy": {
92774	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
92775	//       "location": "query",
92776	//       "type": "string"
92777	//     },
92778	//     "pageToken": {
92779	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
92780	//       "location": "query",
92781	//       "type": "string"
92782	//     },
92783	//     "project": {
92784	//       "description": "Project ID for this request.",
92785	//       "location": "path",
92786	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92787	//       "required": true,
92788	//       "type": "string"
92789	//     }
92790	//   },
92791	//   "path": "{project}/aggregated/interconnectAttachments",
92792	//   "response": {
92793	//     "$ref": "InterconnectAttachmentAggregatedList"
92794	//   },
92795	//   "scopes": [
92796	//     "https://www.googleapis.com/auth/cloud-platform",
92797	//     "https://www.googleapis.com/auth/compute",
92798	//     "https://www.googleapis.com/auth/compute.readonly"
92799	//   ]
92800	// }
92801
92802}
92803
92804// Pages invokes f for each page of results.
92805// A non-nil error returned from f will halt the iteration.
92806// The provided context supersedes any context provided to the Context method.
92807func (c *InterconnectAttachmentsAggregatedListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentAggregatedList) error) error {
92808	c.ctx_ = ctx
92809	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
92810	for {
92811		x, err := c.Do()
92812		if err != nil {
92813			return err
92814		}
92815		if err := f(x); err != nil {
92816			return err
92817		}
92818		if x.NextPageToken == "" {
92819			return nil
92820		}
92821		c.PageToken(x.NextPageToken)
92822	}
92823}
92824
92825// method id "compute.interconnectAttachments.delete":
92826
92827type InterconnectAttachmentsDeleteCall struct {
92828	s                      *Service
92829	project                string
92830	region                 string
92831	interconnectAttachment string
92832	urlParams_             gensupport.URLParams
92833	ctx_                   context.Context
92834	header_                http.Header
92835}
92836
92837// Delete: Deletes the specified interconnect attachment.
92838func (r *InterconnectAttachmentsService) Delete(project string, region string, interconnectAttachment string) *InterconnectAttachmentsDeleteCall {
92839	c := &InterconnectAttachmentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92840	c.project = project
92841	c.region = region
92842	c.interconnectAttachment = interconnectAttachment
92843	return c
92844}
92845
92846// RequestId sets the optional parameter "requestId": An optional
92847// request ID to identify requests. Specify a unique request ID so that
92848// if you must retry your request, the server will know to ignore the
92849// request if it has already been completed.
92850//
92851// For example, consider a situation where you make an initial request
92852// and the request times out. If you make the request again with the
92853// same request ID, the server can check if original operation with the
92854// same request ID was received, and if so, will ignore the second
92855// request. This prevents clients from accidentally creating duplicate
92856// commitments.
92857//
92858// The request ID must be a valid UUID with the exception that zero UUID
92859// is not supported (00000000-0000-0000-0000-000000000000).
92860func (c *InterconnectAttachmentsDeleteCall) RequestId(requestId string) *InterconnectAttachmentsDeleteCall {
92861	c.urlParams_.Set("requestId", requestId)
92862	return c
92863}
92864
92865// Fields allows partial responses to be retrieved. See
92866// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92867// for more information.
92868func (c *InterconnectAttachmentsDeleteCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsDeleteCall {
92869	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92870	return c
92871}
92872
92873// Context sets the context to be used in this call's Do method. Any
92874// pending HTTP request will be aborted if the provided context is
92875// canceled.
92876func (c *InterconnectAttachmentsDeleteCall) Context(ctx context.Context) *InterconnectAttachmentsDeleteCall {
92877	c.ctx_ = ctx
92878	return c
92879}
92880
92881// Header returns an http.Header that can be modified by the caller to
92882// add HTTP headers to the request.
92883func (c *InterconnectAttachmentsDeleteCall) Header() http.Header {
92884	if c.header_ == nil {
92885		c.header_ = make(http.Header)
92886	}
92887	return c.header_
92888}
92889
92890func (c *InterconnectAttachmentsDeleteCall) doRequest(alt string) (*http.Response, error) {
92891	reqHeaders := make(http.Header)
92892	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
92893	for k, v := range c.header_ {
92894		reqHeaders[k] = v
92895	}
92896	reqHeaders.Set("User-Agent", c.s.userAgent())
92897	var body io.Reader = nil
92898	c.urlParams_.Set("alt", alt)
92899	c.urlParams_.Set("prettyPrint", "false")
92900	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
92901	urls += "?" + c.urlParams_.Encode()
92902	req, err := http.NewRequest("DELETE", urls, body)
92903	if err != nil {
92904		return nil, err
92905	}
92906	req.Header = reqHeaders
92907	googleapi.Expand(req.URL, map[string]string{
92908		"project":                c.project,
92909		"region":                 c.region,
92910		"interconnectAttachment": c.interconnectAttachment,
92911	})
92912	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92913}
92914
92915// Do executes the "compute.interconnectAttachments.delete" call.
92916// Exactly one of *Operation or error will be non-nil. Any non-2xx
92917// status code is an error. Response headers are in either
92918// *Operation.ServerResponse.Header or (if a response was returned at
92919// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92920// to check whether the returned error was because
92921// http.StatusNotModified was returned.
92922func (c *InterconnectAttachmentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92923	gensupport.SetOptions(c.urlParams_, opts...)
92924	res, err := c.doRequest("json")
92925	if res != nil && res.StatusCode == http.StatusNotModified {
92926		if res.Body != nil {
92927			res.Body.Close()
92928		}
92929		return nil, &googleapi.Error{
92930			Code:   res.StatusCode,
92931			Header: res.Header,
92932		}
92933	}
92934	if err != nil {
92935		return nil, err
92936	}
92937	defer googleapi.CloseBody(res)
92938	if err := googleapi.CheckResponse(res); err != nil {
92939		return nil, err
92940	}
92941	ret := &Operation{
92942		ServerResponse: googleapi.ServerResponse{
92943			Header:         res.Header,
92944			HTTPStatusCode: res.StatusCode,
92945		},
92946	}
92947	target := &ret
92948	if err := gensupport.DecodeResponse(target, res); err != nil {
92949		return nil, err
92950	}
92951	return ret, nil
92952	// {
92953	//   "description": "Deletes the specified interconnect attachment.",
92954	//   "httpMethod": "DELETE",
92955	//   "id": "compute.interconnectAttachments.delete",
92956	//   "parameterOrder": [
92957	//     "project",
92958	//     "region",
92959	//     "interconnectAttachment"
92960	//   ],
92961	//   "parameters": {
92962	//     "interconnectAttachment": {
92963	//       "description": "Name of the interconnect attachment to delete.",
92964	//       "location": "path",
92965	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92966	//       "required": true,
92967	//       "type": "string"
92968	//     },
92969	//     "project": {
92970	//       "description": "Project ID for this request.",
92971	//       "location": "path",
92972	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92973	//       "required": true,
92974	//       "type": "string"
92975	//     },
92976	//     "region": {
92977	//       "description": "Name of the region for this request.",
92978	//       "location": "path",
92979	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92980	//       "required": true,
92981	//       "type": "string"
92982	//     },
92983	//     "requestId": {
92984	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
92985	//       "location": "query",
92986	//       "type": "string"
92987	//     }
92988	//   },
92989	//   "path": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
92990	//   "response": {
92991	//     "$ref": "Operation"
92992	//   },
92993	//   "scopes": [
92994	//     "https://www.googleapis.com/auth/cloud-platform",
92995	//     "https://www.googleapis.com/auth/compute"
92996	//   ]
92997	// }
92998
92999}
93000
93001// method id "compute.interconnectAttachments.get":
93002
93003type InterconnectAttachmentsGetCall struct {
93004	s                      *Service
93005	project                string
93006	region                 string
93007	interconnectAttachment string
93008	urlParams_             gensupport.URLParams
93009	ifNoneMatch_           string
93010	ctx_                   context.Context
93011	header_                http.Header
93012}
93013
93014// Get: Returns the specified interconnect attachment.
93015func (r *InterconnectAttachmentsService) Get(project string, region string, interconnectAttachment string) *InterconnectAttachmentsGetCall {
93016	c := &InterconnectAttachmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93017	c.project = project
93018	c.region = region
93019	c.interconnectAttachment = interconnectAttachment
93020	return c
93021}
93022
93023// Fields allows partial responses to be retrieved. See
93024// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93025// for more information.
93026func (c *InterconnectAttachmentsGetCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsGetCall {
93027	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93028	return c
93029}
93030
93031// IfNoneMatch sets the optional parameter which makes the operation
93032// fail if the object's ETag matches the given value. This is useful for
93033// getting updates only after the object has changed since the last
93034// request. Use googleapi.IsNotModified to check whether the response
93035// error from Do is the result of In-None-Match.
93036func (c *InterconnectAttachmentsGetCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsGetCall {
93037	c.ifNoneMatch_ = entityTag
93038	return c
93039}
93040
93041// Context sets the context to be used in this call's Do method. Any
93042// pending HTTP request will be aborted if the provided context is
93043// canceled.
93044func (c *InterconnectAttachmentsGetCall) Context(ctx context.Context) *InterconnectAttachmentsGetCall {
93045	c.ctx_ = ctx
93046	return c
93047}
93048
93049// Header returns an http.Header that can be modified by the caller to
93050// add HTTP headers to the request.
93051func (c *InterconnectAttachmentsGetCall) Header() http.Header {
93052	if c.header_ == nil {
93053		c.header_ = make(http.Header)
93054	}
93055	return c.header_
93056}
93057
93058func (c *InterconnectAttachmentsGetCall) doRequest(alt string) (*http.Response, error) {
93059	reqHeaders := make(http.Header)
93060	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
93061	for k, v := range c.header_ {
93062		reqHeaders[k] = v
93063	}
93064	reqHeaders.Set("User-Agent", c.s.userAgent())
93065	if c.ifNoneMatch_ != "" {
93066		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
93067	}
93068	var body io.Reader = nil
93069	c.urlParams_.Set("alt", alt)
93070	c.urlParams_.Set("prettyPrint", "false")
93071	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
93072	urls += "?" + c.urlParams_.Encode()
93073	req, err := http.NewRequest("GET", urls, body)
93074	if err != nil {
93075		return nil, err
93076	}
93077	req.Header = reqHeaders
93078	googleapi.Expand(req.URL, map[string]string{
93079		"project":                c.project,
93080		"region":                 c.region,
93081		"interconnectAttachment": c.interconnectAttachment,
93082	})
93083	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93084}
93085
93086// Do executes the "compute.interconnectAttachments.get" call.
93087// Exactly one of *InterconnectAttachment or error will be non-nil. Any
93088// non-2xx status code is an error. Response headers are in either
93089// *InterconnectAttachment.ServerResponse.Header or (if a response was
93090// returned at all) in error.(*googleapi.Error).Header. Use
93091// googleapi.IsNotModified to check whether the returned error was
93092// because http.StatusNotModified was returned.
93093func (c *InterconnectAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachment, error) {
93094	gensupport.SetOptions(c.urlParams_, opts...)
93095	res, err := c.doRequest("json")
93096	if res != nil && res.StatusCode == http.StatusNotModified {
93097		if res.Body != nil {
93098			res.Body.Close()
93099		}
93100		return nil, &googleapi.Error{
93101			Code:   res.StatusCode,
93102			Header: res.Header,
93103		}
93104	}
93105	if err != nil {
93106		return nil, err
93107	}
93108	defer googleapi.CloseBody(res)
93109	if err := googleapi.CheckResponse(res); err != nil {
93110		return nil, err
93111	}
93112	ret := &InterconnectAttachment{
93113		ServerResponse: googleapi.ServerResponse{
93114			Header:         res.Header,
93115			HTTPStatusCode: res.StatusCode,
93116		},
93117	}
93118	target := &ret
93119	if err := gensupport.DecodeResponse(target, res); err != nil {
93120		return nil, err
93121	}
93122	return ret, nil
93123	// {
93124	//   "description": "Returns the specified interconnect attachment.",
93125	//   "httpMethod": "GET",
93126	//   "id": "compute.interconnectAttachments.get",
93127	//   "parameterOrder": [
93128	//     "project",
93129	//     "region",
93130	//     "interconnectAttachment"
93131	//   ],
93132	//   "parameters": {
93133	//     "interconnectAttachment": {
93134	//       "description": "Name of the interconnect attachment to return.",
93135	//       "location": "path",
93136	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93137	//       "required": true,
93138	//       "type": "string"
93139	//     },
93140	//     "project": {
93141	//       "description": "Project ID for this request.",
93142	//       "location": "path",
93143	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93144	//       "required": true,
93145	//       "type": "string"
93146	//     },
93147	//     "region": {
93148	//       "description": "Name of the region for this request.",
93149	//       "location": "path",
93150	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93151	//       "required": true,
93152	//       "type": "string"
93153	//     }
93154	//   },
93155	//   "path": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
93156	//   "response": {
93157	//     "$ref": "InterconnectAttachment"
93158	//   },
93159	//   "scopes": [
93160	//     "https://www.googleapis.com/auth/cloud-platform",
93161	//     "https://www.googleapis.com/auth/compute",
93162	//     "https://www.googleapis.com/auth/compute.readonly"
93163	//   ]
93164	// }
93165
93166}
93167
93168// method id "compute.interconnectAttachments.getIamPolicy":
93169
93170type InterconnectAttachmentsGetIamPolicyCall struct {
93171	s            *Service
93172	project      string
93173	region       string
93174	resource     string
93175	urlParams_   gensupport.URLParams
93176	ifNoneMatch_ string
93177	ctx_         context.Context
93178	header_      http.Header
93179}
93180
93181// GetIamPolicy: Gets the access control policy for a resource. May be
93182// empty if no such policy or resource exists.
93183func (r *InterconnectAttachmentsService) GetIamPolicy(project string, region string, resource string) *InterconnectAttachmentsGetIamPolicyCall {
93184	c := &InterconnectAttachmentsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93185	c.project = project
93186	c.region = region
93187	c.resource = resource
93188	return c
93189}
93190
93191// OptionsRequestedPolicyVersion sets the optional parameter
93192// "optionsRequestedPolicyVersion": Requested IAM Policy version.
93193func (c *InterconnectAttachmentsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InterconnectAttachmentsGetIamPolicyCall {
93194	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
93195	return c
93196}
93197
93198// Fields allows partial responses to be retrieved. See
93199// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93200// for more information.
93201func (c *InterconnectAttachmentsGetIamPolicyCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsGetIamPolicyCall {
93202	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93203	return c
93204}
93205
93206// IfNoneMatch sets the optional parameter which makes the operation
93207// fail if the object's ETag matches the given value. This is useful for
93208// getting updates only after the object has changed since the last
93209// request. Use googleapi.IsNotModified to check whether the response
93210// error from Do is the result of In-None-Match.
93211func (c *InterconnectAttachmentsGetIamPolicyCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsGetIamPolicyCall {
93212	c.ifNoneMatch_ = entityTag
93213	return c
93214}
93215
93216// Context sets the context to be used in this call's Do method. Any
93217// pending HTTP request will be aborted if the provided context is
93218// canceled.
93219func (c *InterconnectAttachmentsGetIamPolicyCall) Context(ctx context.Context) *InterconnectAttachmentsGetIamPolicyCall {
93220	c.ctx_ = ctx
93221	return c
93222}
93223
93224// Header returns an http.Header that can be modified by the caller to
93225// add HTTP headers to the request.
93226func (c *InterconnectAttachmentsGetIamPolicyCall) Header() http.Header {
93227	if c.header_ == nil {
93228		c.header_ = make(http.Header)
93229	}
93230	return c.header_
93231}
93232
93233func (c *InterconnectAttachmentsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
93234	reqHeaders := make(http.Header)
93235	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
93236	for k, v := range c.header_ {
93237		reqHeaders[k] = v
93238	}
93239	reqHeaders.Set("User-Agent", c.s.userAgent())
93240	if c.ifNoneMatch_ != "" {
93241		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
93242	}
93243	var body io.Reader = nil
93244	c.urlParams_.Set("alt", alt)
93245	c.urlParams_.Set("prettyPrint", "false")
93246	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{resource}/getIamPolicy")
93247	urls += "?" + c.urlParams_.Encode()
93248	req, err := http.NewRequest("GET", urls, body)
93249	if err != nil {
93250		return nil, err
93251	}
93252	req.Header = reqHeaders
93253	googleapi.Expand(req.URL, map[string]string{
93254		"project":  c.project,
93255		"region":   c.region,
93256		"resource": c.resource,
93257	})
93258	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93259}
93260
93261// Do executes the "compute.interconnectAttachments.getIamPolicy" call.
93262// Exactly one of *Policy or error will be non-nil. Any non-2xx status
93263// code is an error. Response headers are in either
93264// *Policy.ServerResponse.Header or (if a response was returned at all)
93265// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
93266// check whether the returned error was because http.StatusNotModified
93267// was returned.
93268func (c *InterconnectAttachmentsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
93269	gensupport.SetOptions(c.urlParams_, opts...)
93270	res, err := c.doRequest("json")
93271	if res != nil && res.StatusCode == http.StatusNotModified {
93272		if res.Body != nil {
93273			res.Body.Close()
93274		}
93275		return nil, &googleapi.Error{
93276			Code:   res.StatusCode,
93277			Header: res.Header,
93278		}
93279	}
93280	if err != nil {
93281		return nil, err
93282	}
93283	defer googleapi.CloseBody(res)
93284	if err := googleapi.CheckResponse(res); err != nil {
93285		return nil, err
93286	}
93287	ret := &Policy{
93288		ServerResponse: googleapi.ServerResponse{
93289			Header:         res.Header,
93290			HTTPStatusCode: res.StatusCode,
93291		},
93292	}
93293	target := &ret
93294	if err := gensupport.DecodeResponse(target, res); err != nil {
93295		return nil, err
93296	}
93297	return ret, nil
93298	// {
93299	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
93300	//   "httpMethod": "GET",
93301	//   "id": "compute.interconnectAttachments.getIamPolicy",
93302	//   "parameterOrder": [
93303	//     "project",
93304	//     "region",
93305	//     "resource"
93306	//   ],
93307	//   "parameters": {
93308	//     "optionsRequestedPolicyVersion": {
93309	//       "description": "Requested IAM Policy version.",
93310	//       "format": "int32",
93311	//       "location": "query",
93312	//       "type": "integer"
93313	//     },
93314	//     "project": {
93315	//       "description": "Project ID for this request.",
93316	//       "location": "path",
93317	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93318	//       "required": true,
93319	//       "type": "string"
93320	//     },
93321	//     "region": {
93322	//       "description": "The name of the region for this request.",
93323	//       "location": "path",
93324	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93325	//       "required": true,
93326	//       "type": "string"
93327	//     },
93328	//     "resource": {
93329	//       "description": "Name or id of the resource for this request.",
93330	//       "location": "path",
93331	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93332	//       "required": true,
93333	//       "type": "string"
93334	//     }
93335	//   },
93336	//   "path": "{project}/regions/{region}/interconnectAttachments/{resource}/getIamPolicy",
93337	//   "response": {
93338	//     "$ref": "Policy"
93339	//   },
93340	//   "scopes": [
93341	//     "https://www.googleapis.com/auth/cloud-platform",
93342	//     "https://www.googleapis.com/auth/compute",
93343	//     "https://www.googleapis.com/auth/compute.readonly"
93344	//   ]
93345	// }
93346
93347}
93348
93349// method id "compute.interconnectAttachments.insert":
93350
93351type InterconnectAttachmentsInsertCall struct {
93352	s                      *Service
93353	project                string
93354	region                 string
93355	interconnectattachment *InterconnectAttachment
93356	urlParams_             gensupport.URLParams
93357	ctx_                   context.Context
93358	header_                http.Header
93359}
93360
93361// Insert: Creates an InterconnectAttachment in the specified project
93362// using the data included in the request.
93363func (r *InterconnectAttachmentsService) Insert(project string, region string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsInsertCall {
93364	c := &InterconnectAttachmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93365	c.project = project
93366	c.region = region
93367	c.interconnectattachment = interconnectattachment
93368	return c
93369}
93370
93371// RequestId sets the optional parameter "requestId": An optional
93372// request ID to identify requests. Specify a unique request ID so that
93373// if you must retry your request, the server will know to ignore the
93374// request if it has already been completed.
93375//
93376// For example, consider a situation where you make an initial request
93377// and the request times out. If you make the request again with the
93378// same request ID, the server can check if original operation with the
93379// same request ID was received, and if so, will ignore the second
93380// request. This prevents clients from accidentally creating duplicate
93381// commitments.
93382//
93383// The request ID must be a valid UUID with the exception that zero UUID
93384// is not supported (00000000-0000-0000-0000-000000000000).
93385func (c *InterconnectAttachmentsInsertCall) RequestId(requestId string) *InterconnectAttachmentsInsertCall {
93386	c.urlParams_.Set("requestId", requestId)
93387	return c
93388}
93389
93390// ValidateOnly sets the optional parameter "validateOnly": If true, the
93391// request will not be committed.
93392func (c *InterconnectAttachmentsInsertCall) ValidateOnly(validateOnly bool) *InterconnectAttachmentsInsertCall {
93393	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
93394	return c
93395}
93396
93397// Fields allows partial responses to be retrieved. See
93398// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93399// for more information.
93400func (c *InterconnectAttachmentsInsertCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsInsertCall {
93401	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93402	return c
93403}
93404
93405// Context sets the context to be used in this call's Do method. Any
93406// pending HTTP request will be aborted if the provided context is
93407// canceled.
93408func (c *InterconnectAttachmentsInsertCall) Context(ctx context.Context) *InterconnectAttachmentsInsertCall {
93409	c.ctx_ = ctx
93410	return c
93411}
93412
93413// Header returns an http.Header that can be modified by the caller to
93414// add HTTP headers to the request.
93415func (c *InterconnectAttachmentsInsertCall) Header() http.Header {
93416	if c.header_ == nil {
93417		c.header_ = make(http.Header)
93418	}
93419	return c.header_
93420}
93421
93422func (c *InterconnectAttachmentsInsertCall) doRequest(alt string) (*http.Response, error) {
93423	reqHeaders := make(http.Header)
93424	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
93425	for k, v := range c.header_ {
93426		reqHeaders[k] = v
93427	}
93428	reqHeaders.Set("User-Agent", c.s.userAgent())
93429	var body io.Reader = nil
93430	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment)
93431	if err != nil {
93432		return nil, err
93433	}
93434	reqHeaders.Set("Content-Type", "application/json")
93435	c.urlParams_.Set("alt", alt)
93436	c.urlParams_.Set("prettyPrint", "false")
93437	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments")
93438	urls += "?" + c.urlParams_.Encode()
93439	req, err := http.NewRequest("POST", urls, body)
93440	if err != nil {
93441		return nil, err
93442	}
93443	req.Header = reqHeaders
93444	googleapi.Expand(req.URL, map[string]string{
93445		"project": c.project,
93446		"region":  c.region,
93447	})
93448	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93449}
93450
93451// Do executes the "compute.interconnectAttachments.insert" call.
93452// Exactly one of *Operation or error will be non-nil. Any non-2xx
93453// status code is an error. Response headers are in either
93454// *Operation.ServerResponse.Header or (if a response was returned at
93455// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93456// to check whether the returned error was because
93457// http.StatusNotModified was returned.
93458func (c *InterconnectAttachmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93459	gensupport.SetOptions(c.urlParams_, opts...)
93460	res, err := c.doRequest("json")
93461	if res != nil && res.StatusCode == http.StatusNotModified {
93462		if res.Body != nil {
93463			res.Body.Close()
93464		}
93465		return nil, &googleapi.Error{
93466			Code:   res.StatusCode,
93467			Header: res.Header,
93468		}
93469	}
93470	if err != nil {
93471		return nil, err
93472	}
93473	defer googleapi.CloseBody(res)
93474	if err := googleapi.CheckResponse(res); err != nil {
93475		return nil, err
93476	}
93477	ret := &Operation{
93478		ServerResponse: googleapi.ServerResponse{
93479			Header:         res.Header,
93480			HTTPStatusCode: res.StatusCode,
93481		},
93482	}
93483	target := &ret
93484	if err := gensupport.DecodeResponse(target, res); err != nil {
93485		return nil, err
93486	}
93487	return ret, nil
93488	// {
93489	//   "description": "Creates an InterconnectAttachment in the specified project using the data included in the request.",
93490	//   "httpMethod": "POST",
93491	//   "id": "compute.interconnectAttachments.insert",
93492	//   "parameterOrder": [
93493	//     "project",
93494	//     "region"
93495	//   ],
93496	//   "parameters": {
93497	//     "project": {
93498	//       "description": "Project ID for this request.",
93499	//       "location": "path",
93500	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93501	//       "required": true,
93502	//       "type": "string"
93503	//     },
93504	//     "region": {
93505	//       "description": "Name of the region for this request.",
93506	//       "location": "path",
93507	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93508	//       "required": true,
93509	//       "type": "string"
93510	//     },
93511	//     "requestId": {
93512	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
93513	//       "location": "query",
93514	//       "type": "string"
93515	//     },
93516	//     "validateOnly": {
93517	//       "description": "If true, the request will not be committed.",
93518	//       "location": "query",
93519	//       "type": "boolean"
93520	//     }
93521	//   },
93522	//   "path": "{project}/regions/{region}/interconnectAttachments",
93523	//   "request": {
93524	//     "$ref": "InterconnectAttachment"
93525	//   },
93526	//   "response": {
93527	//     "$ref": "Operation"
93528	//   },
93529	//   "scopes": [
93530	//     "https://www.googleapis.com/auth/cloud-platform",
93531	//     "https://www.googleapis.com/auth/compute"
93532	//   ]
93533	// }
93534
93535}
93536
93537// method id "compute.interconnectAttachments.list":
93538
93539type InterconnectAttachmentsListCall struct {
93540	s            *Service
93541	project      string
93542	region       string
93543	urlParams_   gensupport.URLParams
93544	ifNoneMatch_ string
93545	ctx_         context.Context
93546	header_      http.Header
93547}
93548
93549// List: Retrieves the list of interconnect attachments contained within
93550// the specified region.
93551func (r *InterconnectAttachmentsService) List(project string, region string) *InterconnectAttachmentsListCall {
93552	c := &InterconnectAttachmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93553	c.project = project
93554	c.region = region
93555	return c
93556}
93557
93558// Filter sets the optional parameter "filter": A filter expression that
93559// filters resources listed in the response. The expression must specify
93560// the field name, a comparison operator, and the value that you want to
93561// use for filtering. The value must be a string, a number, or a
93562// boolean. The comparison operator must be either =, !=, >, or <.
93563//
93564// For example, if you are filtering Compute Engine instances, you can
93565// exclude instances named example-instance by specifying name !=
93566// example-instance.
93567//
93568// You can also filter nested fields. For example, you could specify
93569// scheduling.automaticRestart = false to include instances only if they
93570// are not scheduled for automatic restarts. You can use filtering on
93571// nested fields to filter based on resource labels.
93572//
93573// To filter on multiple expressions, provide each separate expression
93574// within parentheses. For example, (scheduling.automaticRestart = true)
93575// (cpuPlatform = "Intel Skylake"). By default, each expression is an
93576// AND expression. However, you can include AND and OR expressions
93577// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
93578// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
93579// true).
93580func (c *InterconnectAttachmentsListCall) Filter(filter string) *InterconnectAttachmentsListCall {
93581	c.urlParams_.Set("filter", filter)
93582	return c
93583}
93584
93585// MaxResults sets the optional parameter "maxResults": The maximum
93586// number of results per page that should be returned. If the number of
93587// available results is larger than maxResults, Compute Engine returns a
93588// nextPageToken that can be used to get the next page of results in
93589// subsequent list requests. Acceptable values are 0 to 500, inclusive.
93590// (Default: 500)
93591func (c *InterconnectAttachmentsListCall) MaxResults(maxResults int64) *InterconnectAttachmentsListCall {
93592	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
93593	return c
93594}
93595
93596// OrderBy sets the optional parameter "orderBy": Sorts list results by
93597// a certain order. By default, results are returned in alphanumerical
93598// order based on the resource name.
93599//
93600// You can also sort results in descending order based on the creation
93601// timestamp using orderBy="creationTimestamp desc". This sorts results
93602// based on the creationTimestamp field in reverse chronological order
93603// (newest result first). Use this to sort resources like operations so
93604// that the newest operation is returned first.
93605//
93606// Currently, only sorting by name or creationTimestamp desc is
93607// supported.
93608func (c *InterconnectAttachmentsListCall) OrderBy(orderBy string) *InterconnectAttachmentsListCall {
93609	c.urlParams_.Set("orderBy", orderBy)
93610	return c
93611}
93612
93613// PageToken sets the optional parameter "pageToken": Specifies a page
93614// token to use. Set pageToken to the nextPageToken returned by a
93615// previous list request to get the next page of results.
93616func (c *InterconnectAttachmentsListCall) PageToken(pageToken string) *InterconnectAttachmentsListCall {
93617	c.urlParams_.Set("pageToken", pageToken)
93618	return c
93619}
93620
93621// Fields allows partial responses to be retrieved. See
93622// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93623// for more information.
93624func (c *InterconnectAttachmentsListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsListCall {
93625	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93626	return c
93627}
93628
93629// IfNoneMatch sets the optional parameter which makes the operation
93630// fail if the object's ETag matches the given value. This is useful for
93631// getting updates only after the object has changed since the last
93632// request. Use googleapi.IsNotModified to check whether the response
93633// error from Do is the result of In-None-Match.
93634func (c *InterconnectAttachmentsListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsListCall {
93635	c.ifNoneMatch_ = entityTag
93636	return c
93637}
93638
93639// Context sets the context to be used in this call's Do method. Any
93640// pending HTTP request will be aborted if the provided context is
93641// canceled.
93642func (c *InterconnectAttachmentsListCall) Context(ctx context.Context) *InterconnectAttachmentsListCall {
93643	c.ctx_ = ctx
93644	return c
93645}
93646
93647// Header returns an http.Header that can be modified by the caller to
93648// add HTTP headers to the request.
93649func (c *InterconnectAttachmentsListCall) Header() http.Header {
93650	if c.header_ == nil {
93651		c.header_ = make(http.Header)
93652	}
93653	return c.header_
93654}
93655
93656func (c *InterconnectAttachmentsListCall) doRequest(alt string) (*http.Response, error) {
93657	reqHeaders := make(http.Header)
93658	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
93659	for k, v := range c.header_ {
93660		reqHeaders[k] = v
93661	}
93662	reqHeaders.Set("User-Agent", c.s.userAgent())
93663	if c.ifNoneMatch_ != "" {
93664		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
93665	}
93666	var body io.Reader = nil
93667	c.urlParams_.Set("alt", alt)
93668	c.urlParams_.Set("prettyPrint", "false")
93669	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments")
93670	urls += "?" + c.urlParams_.Encode()
93671	req, err := http.NewRequest("GET", urls, body)
93672	if err != nil {
93673		return nil, err
93674	}
93675	req.Header = reqHeaders
93676	googleapi.Expand(req.URL, map[string]string{
93677		"project": c.project,
93678		"region":  c.region,
93679	})
93680	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93681}
93682
93683// Do executes the "compute.interconnectAttachments.list" call.
93684// Exactly one of *InterconnectAttachmentList or error will be non-nil.
93685// Any non-2xx status code is an error. Response headers are in either
93686// *InterconnectAttachmentList.ServerResponse.Header or (if a response
93687// was returned at all) in error.(*googleapi.Error).Header. Use
93688// googleapi.IsNotModified to check whether the returned error was
93689// because http.StatusNotModified was returned.
93690func (c *InterconnectAttachmentsListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentList, error) {
93691	gensupport.SetOptions(c.urlParams_, opts...)
93692	res, err := c.doRequest("json")
93693	if res != nil && res.StatusCode == http.StatusNotModified {
93694		if res.Body != nil {
93695			res.Body.Close()
93696		}
93697		return nil, &googleapi.Error{
93698			Code:   res.StatusCode,
93699			Header: res.Header,
93700		}
93701	}
93702	if err != nil {
93703		return nil, err
93704	}
93705	defer googleapi.CloseBody(res)
93706	if err := googleapi.CheckResponse(res); err != nil {
93707		return nil, err
93708	}
93709	ret := &InterconnectAttachmentList{
93710		ServerResponse: googleapi.ServerResponse{
93711			Header:         res.Header,
93712			HTTPStatusCode: res.StatusCode,
93713		},
93714	}
93715	target := &ret
93716	if err := gensupport.DecodeResponse(target, res); err != nil {
93717		return nil, err
93718	}
93719	return ret, nil
93720	// {
93721	//   "description": "Retrieves the list of interconnect attachments contained within the specified region.",
93722	//   "httpMethod": "GET",
93723	//   "id": "compute.interconnectAttachments.list",
93724	//   "parameterOrder": [
93725	//     "project",
93726	//     "region"
93727	//   ],
93728	//   "parameters": {
93729	//     "filter": {
93730	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
93731	//       "location": "query",
93732	//       "type": "string"
93733	//     },
93734	//     "maxResults": {
93735	//       "default": "500",
93736	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
93737	//       "format": "uint32",
93738	//       "location": "query",
93739	//       "minimum": "0",
93740	//       "type": "integer"
93741	//     },
93742	//     "orderBy": {
93743	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
93744	//       "location": "query",
93745	//       "type": "string"
93746	//     },
93747	//     "pageToken": {
93748	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
93749	//       "location": "query",
93750	//       "type": "string"
93751	//     },
93752	//     "project": {
93753	//       "description": "Project ID for this request.",
93754	//       "location": "path",
93755	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93756	//       "required": true,
93757	//       "type": "string"
93758	//     },
93759	//     "region": {
93760	//       "description": "Name of the region for this request.",
93761	//       "location": "path",
93762	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93763	//       "required": true,
93764	//       "type": "string"
93765	//     }
93766	//   },
93767	//   "path": "{project}/regions/{region}/interconnectAttachments",
93768	//   "response": {
93769	//     "$ref": "InterconnectAttachmentList"
93770	//   },
93771	//   "scopes": [
93772	//     "https://www.googleapis.com/auth/cloud-platform",
93773	//     "https://www.googleapis.com/auth/compute",
93774	//     "https://www.googleapis.com/auth/compute.readonly"
93775	//   ]
93776	// }
93777
93778}
93779
93780// Pages invokes f for each page of results.
93781// A non-nil error returned from f will halt the iteration.
93782// The provided context supersedes any context provided to the Context method.
93783func (c *InterconnectAttachmentsListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentList) error) error {
93784	c.ctx_ = ctx
93785	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
93786	for {
93787		x, err := c.Do()
93788		if err != nil {
93789			return err
93790		}
93791		if err := f(x); err != nil {
93792			return err
93793		}
93794		if x.NextPageToken == "" {
93795			return nil
93796		}
93797		c.PageToken(x.NextPageToken)
93798	}
93799}
93800
93801// method id "compute.interconnectAttachments.patch":
93802
93803type InterconnectAttachmentsPatchCall struct {
93804	s                      *Service
93805	project                string
93806	region                 string
93807	interconnectAttachment string
93808	interconnectattachment *InterconnectAttachment
93809	urlParams_             gensupport.URLParams
93810	ctx_                   context.Context
93811	header_                http.Header
93812}
93813
93814// Patch: Updates the specified interconnect attachment with the data
93815// included in the request. This method supports PATCH semantics and
93816// uses the JSON merge patch format and processing rules.
93817func (r *InterconnectAttachmentsService) Patch(project string, region string, interconnectAttachment string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsPatchCall {
93818	c := &InterconnectAttachmentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93819	c.project = project
93820	c.region = region
93821	c.interconnectAttachment = interconnectAttachment
93822	c.interconnectattachment = interconnectattachment
93823	return c
93824}
93825
93826// RequestId sets the optional parameter "requestId": An optional
93827// request ID to identify requests. Specify a unique request ID so that
93828// if you must retry your request, the server will know to ignore the
93829// request if it has already been completed.
93830//
93831// For example, consider a situation where you make an initial request
93832// and the request times out. If you make the request again with the
93833// same request ID, the server can check if original operation with the
93834// same request ID was received, and if so, will ignore the second
93835// request. This prevents clients from accidentally creating duplicate
93836// commitments.
93837//
93838// The request ID must be a valid UUID with the exception that zero UUID
93839// is not supported (00000000-0000-0000-0000-000000000000).
93840func (c *InterconnectAttachmentsPatchCall) RequestId(requestId string) *InterconnectAttachmentsPatchCall {
93841	c.urlParams_.Set("requestId", requestId)
93842	return c
93843}
93844
93845// Fields allows partial responses to be retrieved. See
93846// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93847// for more information.
93848func (c *InterconnectAttachmentsPatchCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsPatchCall {
93849	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93850	return c
93851}
93852
93853// Context sets the context to be used in this call's Do method. Any
93854// pending HTTP request will be aborted if the provided context is
93855// canceled.
93856func (c *InterconnectAttachmentsPatchCall) Context(ctx context.Context) *InterconnectAttachmentsPatchCall {
93857	c.ctx_ = ctx
93858	return c
93859}
93860
93861// Header returns an http.Header that can be modified by the caller to
93862// add HTTP headers to the request.
93863func (c *InterconnectAttachmentsPatchCall) Header() http.Header {
93864	if c.header_ == nil {
93865		c.header_ = make(http.Header)
93866	}
93867	return c.header_
93868}
93869
93870func (c *InterconnectAttachmentsPatchCall) doRequest(alt string) (*http.Response, error) {
93871	reqHeaders := make(http.Header)
93872	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
93873	for k, v := range c.header_ {
93874		reqHeaders[k] = v
93875	}
93876	reqHeaders.Set("User-Agent", c.s.userAgent())
93877	var body io.Reader = nil
93878	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment)
93879	if err != nil {
93880		return nil, err
93881	}
93882	reqHeaders.Set("Content-Type", "application/json")
93883	c.urlParams_.Set("alt", alt)
93884	c.urlParams_.Set("prettyPrint", "false")
93885	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
93886	urls += "?" + c.urlParams_.Encode()
93887	req, err := http.NewRequest("PATCH", urls, body)
93888	if err != nil {
93889		return nil, err
93890	}
93891	req.Header = reqHeaders
93892	googleapi.Expand(req.URL, map[string]string{
93893		"project":                c.project,
93894		"region":                 c.region,
93895		"interconnectAttachment": c.interconnectAttachment,
93896	})
93897	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93898}
93899
93900// Do executes the "compute.interconnectAttachments.patch" call.
93901// Exactly one of *Operation or error will be non-nil. Any non-2xx
93902// status code is an error. Response headers are in either
93903// *Operation.ServerResponse.Header or (if a response was returned at
93904// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93905// to check whether the returned error was because
93906// http.StatusNotModified was returned.
93907func (c *InterconnectAttachmentsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93908	gensupport.SetOptions(c.urlParams_, opts...)
93909	res, err := c.doRequest("json")
93910	if res != nil && res.StatusCode == http.StatusNotModified {
93911		if res.Body != nil {
93912			res.Body.Close()
93913		}
93914		return nil, &googleapi.Error{
93915			Code:   res.StatusCode,
93916			Header: res.Header,
93917		}
93918	}
93919	if err != nil {
93920		return nil, err
93921	}
93922	defer googleapi.CloseBody(res)
93923	if err := googleapi.CheckResponse(res); err != nil {
93924		return nil, err
93925	}
93926	ret := &Operation{
93927		ServerResponse: googleapi.ServerResponse{
93928			Header:         res.Header,
93929			HTTPStatusCode: res.StatusCode,
93930		},
93931	}
93932	target := &ret
93933	if err := gensupport.DecodeResponse(target, res); err != nil {
93934		return nil, err
93935	}
93936	return ret, nil
93937	// {
93938	//   "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.",
93939	//   "httpMethod": "PATCH",
93940	//   "id": "compute.interconnectAttachments.patch",
93941	//   "parameterOrder": [
93942	//     "project",
93943	//     "region",
93944	//     "interconnectAttachment"
93945	//   ],
93946	//   "parameters": {
93947	//     "interconnectAttachment": {
93948	//       "description": "Name of the interconnect attachment to patch.",
93949	//       "location": "path",
93950	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93951	//       "required": true,
93952	//       "type": "string"
93953	//     },
93954	//     "project": {
93955	//       "description": "Project ID for this request.",
93956	//       "location": "path",
93957	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93958	//       "required": true,
93959	//       "type": "string"
93960	//     },
93961	//     "region": {
93962	//       "description": "Name of the region scoping this request.",
93963	//       "location": "path",
93964	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93965	//       "required": true,
93966	//       "type": "string"
93967	//     },
93968	//     "requestId": {
93969	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
93970	//       "location": "query",
93971	//       "type": "string"
93972	//     }
93973	//   },
93974	//   "path": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
93975	//   "request": {
93976	//     "$ref": "InterconnectAttachment"
93977	//   },
93978	//   "response": {
93979	//     "$ref": "Operation"
93980	//   },
93981	//   "scopes": [
93982	//     "https://www.googleapis.com/auth/cloud-platform",
93983	//     "https://www.googleapis.com/auth/compute"
93984	//   ]
93985	// }
93986
93987}
93988
93989// method id "compute.interconnectAttachments.setIamPolicy":
93990
93991type InterconnectAttachmentsSetIamPolicyCall struct {
93992	s                      *Service
93993	project                string
93994	region                 string
93995	resource               string
93996	regionsetpolicyrequest *RegionSetPolicyRequest
93997	urlParams_             gensupport.URLParams
93998	ctx_                   context.Context
93999	header_                http.Header
94000}
94001
94002// SetIamPolicy: Sets the access control policy on the specified
94003// resource. Replaces any existing policy.
94004func (r *InterconnectAttachmentsService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *InterconnectAttachmentsSetIamPolicyCall {
94005	c := &InterconnectAttachmentsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94006	c.project = project
94007	c.region = region
94008	c.resource = resource
94009	c.regionsetpolicyrequest = regionsetpolicyrequest
94010	return c
94011}
94012
94013// Fields allows partial responses to be retrieved. See
94014// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94015// for more information.
94016func (c *InterconnectAttachmentsSetIamPolicyCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsSetIamPolicyCall {
94017	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94018	return c
94019}
94020
94021// Context sets the context to be used in this call's Do method. Any
94022// pending HTTP request will be aborted if the provided context is
94023// canceled.
94024func (c *InterconnectAttachmentsSetIamPolicyCall) Context(ctx context.Context) *InterconnectAttachmentsSetIamPolicyCall {
94025	c.ctx_ = ctx
94026	return c
94027}
94028
94029// Header returns an http.Header that can be modified by the caller to
94030// add HTTP headers to the request.
94031func (c *InterconnectAttachmentsSetIamPolicyCall) Header() http.Header {
94032	if c.header_ == nil {
94033		c.header_ = make(http.Header)
94034	}
94035	return c.header_
94036}
94037
94038func (c *InterconnectAttachmentsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
94039	reqHeaders := make(http.Header)
94040	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
94041	for k, v := range c.header_ {
94042		reqHeaders[k] = v
94043	}
94044	reqHeaders.Set("User-Agent", c.s.userAgent())
94045	var body io.Reader = nil
94046	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
94047	if err != nil {
94048		return nil, err
94049	}
94050	reqHeaders.Set("Content-Type", "application/json")
94051	c.urlParams_.Set("alt", alt)
94052	c.urlParams_.Set("prettyPrint", "false")
94053	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{resource}/setIamPolicy")
94054	urls += "?" + c.urlParams_.Encode()
94055	req, err := http.NewRequest("POST", urls, body)
94056	if err != nil {
94057		return nil, err
94058	}
94059	req.Header = reqHeaders
94060	googleapi.Expand(req.URL, map[string]string{
94061		"project":  c.project,
94062		"region":   c.region,
94063		"resource": c.resource,
94064	})
94065	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94066}
94067
94068// Do executes the "compute.interconnectAttachments.setIamPolicy" call.
94069// Exactly one of *Policy or error will be non-nil. Any non-2xx status
94070// code is an error. Response headers are in either
94071// *Policy.ServerResponse.Header or (if a response was returned at all)
94072// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
94073// check whether the returned error was because http.StatusNotModified
94074// was returned.
94075func (c *InterconnectAttachmentsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
94076	gensupport.SetOptions(c.urlParams_, opts...)
94077	res, err := c.doRequest("json")
94078	if res != nil && res.StatusCode == http.StatusNotModified {
94079		if res.Body != nil {
94080			res.Body.Close()
94081		}
94082		return nil, &googleapi.Error{
94083			Code:   res.StatusCode,
94084			Header: res.Header,
94085		}
94086	}
94087	if err != nil {
94088		return nil, err
94089	}
94090	defer googleapi.CloseBody(res)
94091	if err := googleapi.CheckResponse(res); err != nil {
94092		return nil, err
94093	}
94094	ret := &Policy{
94095		ServerResponse: googleapi.ServerResponse{
94096			Header:         res.Header,
94097			HTTPStatusCode: res.StatusCode,
94098		},
94099	}
94100	target := &ret
94101	if err := gensupport.DecodeResponse(target, res); err != nil {
94102		return nil, err
94103	}
94104	return ret, nil
94105	// {
94106	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
94107	//   "httpMethod": "POST",
94108	//   "id": "compute.interconnectAttachments.setIamPolicy",
94109	//   "parameterOrder": [
94110	//     "project",
94111	//     "region",
94112	//     "resource"
94113	//   ],
94114	//   "parameters": {
94115	//     "project": {
94116	//       "description": "Project ID for this request.",
94117	//       "location": "path",
94118	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94119	//       "required": true,
94120	//       "type": "string"
94121	//     },
94122	//     "region": {
94123	//       "description": "The name of the region for this request.",
94124	//       "location": "path",
94125	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94126	//       "required": true,
94127	//       "type": "string"
94128	//     },
94129	//     "resource": {
94130	//       "description": "Name or id of the resource for this request.",
94131	//       "location": "path",
94132	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94133	//       "required": true,
94134	//       "type": "string"
94135	//     }
94136	//   },
94137	//   "path": "{project}/regions/{region}/interconnectAttachments/{resource}/setIamPolicy",
94138	//   "request": {
94139	//     "$ref": "RegionSetPolicyRequest"
94140	//   },
94141	//   "response": {
94142	//     "$ref": "Policy"
94143	//   },
94144	//   "scopes": [
94145	//     "https://www.googleapis.com/auth/cloud-platform",
94146	//     "https://www.googleapis.com/auth/compute"
94147	//   ]
94148	// }
94149
94150}
94151
94152// method id "compute.interconnectAttachments.setLabels":
94153
94154type InterconnectAttachmentsSetLabelsCall struct {
94155	s                      *Service
94156	project                string
94157	region                 string
94158	resource               string
94159	regionsetlabelsrequest *RegionSetLabelsRequest
94160	urlParams_             gensupport.URLParams
94161	ctx_                   context.Context
94162	header_                http.Header
94163}
94164
94165// SetLabels: Sets the labels on an InterconnectAttachment. To learn
94166// more about labels, read the Labeling Resources documentation.
94167func (r *InterconnectAttachmentsService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *InterconnectAttachmentsSetLabelsCall {
94168	c := &InterconnectAttachmentsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94169	c.project = project
94170	c.region = region
94171	c.resource = resource
94172	c.regionsetlabelsrequest = regionsetlabelsrequest
94173	return c
94174}
94175
94176// RequestId sets the optional parameter "requestId": An optional
94177// request ID to identify requests. Specify a unique request ID so that
94178// if you must retry your request, the server will know to ignore the
94179// request if it has already been completed.
94180//
94181// For example, consider a situation where you make an initial request
94182// and the request times out. If you make the request again with the
94183// same request ID, the server can check if original operation with the
94184// same request ID was received, and if so, will ignore the second
94185// request. This prevents clients from accidentally creating duplicate
94186// commitments.
94187//
94188// The request ID must be a valid UUID with the exception that zero UUID
94189// is not supported (00000000-0000-0000-0000-000000000000).
94190func (c *InterconnectAttachmentsSetLabelsCall) RequestId(requestId string) *InterconnectAttachmentsSetLabelsCall {
94191	c.urlParams_.Set("requestId", requestId)
94192	return c
94193}
94194
94195// Fields allows partial responses to be retrieved. See
94196// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94197// for more information.
94198func (c *InterconnectAttachmentsSetLabelsCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsSetLabelsCall {
94199	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94200	return c
94201}
94202
94203// Context sets the context to be used in this call's Do method. Any
94204// pending HTTP request will be aborted if the provided context is
94205// canceled.
94206func (c *InterconnectAttachmentsSetLabelsCall) Context(ctx context.Context) *InterconnectAttachmentsSetLabelsCall {
94207	c.ctx_ = ctx
94208	return c
94209}
94210
94211// Header returns an http.Header that can be modified by the caller to
94212// add HTTP headers to the request.
94213func (c *InterconnectAttachmentsSetLabelsCall) Header() http.Header {
94214	if c.header_ == nil {
94215		c.header_ = make(http.Header)
94216	}
94217	return c.header_
94218}
94219
94220func (c *InterconnectAttachmentsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
94221	reqHeaders := make(http.Header)
94222	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
94223	for k, v := range c.header_ {
94224		reqHeaders[k] = v
94225	}
94226	reqHeaders.Set("User-Agent", c.s.userAgent())
94227	var body io.Reader = nil
94228	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
94229	if err != nil {
94230		return nil, err
94231	}
94232	reqHeaders.Set("Content-Type", "application/json")
94233	c.urlParams_.Set("alt", alt)
94234	c.urlParams_.Set("prettyPrint", "false")
94235	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{resource}/setLabels")
94236	urls += "?" + c.urlParams_.Encode()
94237	req, err := http.NewRequest("POST", urls, body)
94238	if err != nil {
94239		return nil, err
94240	}
94241	req.Header = reqHeaders
94242	googleapi.Expand(req.URL, map[string]string{
94243		"project":  c.project,
94244		"region":   c.region,
94245		"resource": c.resource,
94246	})
94247	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94248}
94249
94250// Do executes the "compute.interconnectAttachments.setLabels" call.
94251// Exactly one of *Operation or error will be non-nil. Any non-2xx
94252// status code is an error. Response headers are in either
94253// *Operation.ServerResponse.Header or (if a response was returned at
94254// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94255// to check whether the returned error was because
94256// http.StatusNotModified was returned.
94257func (c *InterconnectAttachmentsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94258	gensupport.SetOptions(c.urlParams_, opts...)
94259	res, err := c.doRequest("json")
94260	if res != nil && res.StatusCode == http.StatusNotModified {
94261		if res.Body != nil {
94262			res.Body.Close()
94263		}
94264		return nil, &googleapi.Error{
94265			Code:   res.StatusCode,
94266			Header: res.Header,
94267		}
94268	}
94269	if err != nil {
94270		return nil, err
94271	}
94272	defer googleapi.CloseBody(res)
94273	if err := googleapi.CheckResponse(res); err != nil {
94274		return nil, err
94275	}
94276	ret := &Operation{
94277		ServerResponse: googleapi.ServerResponse{
94278			Header:         res.Header,
94279			HTTPStatusCode: res.StatusCode,
94280		},
94281	}
94282	target := &ret
94283	if err := gensupport.DecodeResponse(target, res); err != nil {
94284		return nil, err
94285	}
94286	return ret, nil
94287	// {
94288	//   "description": "Sets the labels on an InterconnectAttachment. To learn more about labels, read the Labeling Resources documentation.",
94289	//   "httpMethod": "POST",
94290	//   "id": "compute.interconnectAttachments.setLabels",
94291	//   "parameterOrder": [
94292	//     "project",
94293	//     "region",
94294	//     "resource"
94295	//   ],
94296	//   "parameters": {
94297	//     "project": {
94298	//       "description": "Project ID for this request.",
94299	//       "location": "path",
94300	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94301	//       "required": true,
94302	//       "type": "string"
94303	//     },
94304	//     "region": {
94305	//       "description": "The region for this request.",
94306	//       "location": "path",
94307	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94308	//       "required": true,
94309	//       "type": "string"
94310	//     },
94311	//     "requestId": {
94312	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
94313	//       "location": "query",
94314	//       "type": "string"
94315	//     },
94316	//     "resource": {
94317	//       "description": "Name or id of the resource for this request.",
94318	//       "location": "path",
94319	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94320	//       "required": true,
94321	//       "type": "string"
94322	//     }
94323	//   },
94324	//   "path": "{project}/regions/{region}/interconnectAttachments/{resource}/setLabels",
94325	//   "request": {
94326	//     "$ref": "RegionSetLabelsRequest"
94327	//   },
94328	//   "response": {
94329	//     "$ref": "Operation"
94330	//   },
94331	//   "scopes": [
94332	//     "https://www.googleapis.com/auth/cloud-platform",
94333	//     "https://www.googleapis.com/auth/compute"
94334	//   ]
94335	// }
94336
94337}
94338
94339// method id "compute.interconnectAttachments.testIamPermissions":
94340
94341type InterconnectAttachmentsTestIamPermissionsCall struct {
94342	s                      *Service
94343	project                string
94344	region                 string
94345	resource               string
94346	testpermissionsrequest *TestPermissionsRequest
94347	urlParams_             gensupport.URLParams
94348	ctx_                   context.Context
94349	header_                http.Header
94350}
94351
94352// TestIamPermissions: Returns permissions that a caller has on the
94353// specified resource.
94354func (r *InterconnectAttachmentsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *InterconnectAttachmentsTestIamPermissionsCall {
94355	c := &InterconnectAttachmentsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94356	c.project = project
94357	c.region = region
94358	c.resource = resource
94359	c.testpermissionsrequest = testpermissionsrequest
94360	return c
94361}
94362
94363// Fields allows partial responses to be retrieved. See
94364// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94365// for more information.
94366func (c *InterconnectAttachmentsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsTestIamPermissionsCall {
94367	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94368	return c
94369}
94370
94371// Context sets the context to be used in this call's Do method. Any
94372// pending HTTP request will be aborted if the provided context is
94373// canceled.
94374func (c *InterconnectAttachmentsTestIamPermissionsCall) Context(ctx context.Context) *InterconnectAttachmentsTestIamPermissionsCall {
94375	c.ctx_ = ctx
94376	return c
94377}
94378
94379// Header returns an http.Header that can be modified by the caller to
94380// add HTTP headers to the request.
94381func (c *InterconnectAttachmentsTestIamPermissionsCall) Header() http.Header {
94382	if c.header_ == nil {
94383		c.header_ = make(http.Header)
94384	}
94385	return c.header_
94386}
94387
94388func (c *InterconnectAttachmentsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
94389	reqHeaders := make(http.Header)
94390	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
94391	for k, v := range c.header_ {
94392		reqHeaders[k] = v
94393	}
94394	reqHeaders.Set("User-Agent", c.s.userAgent())
94395	var body io.Reader = nil
94396	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
94397	if err != nil {
94398		return nil, err
94399	}
94400	reqHeaders.Set("Content-Type", "application/json")
94401	c.urlParams_.Set("alt", alt)
94402	c.urlParams_.Set("prettyPrint", "false")
94403	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{resource}/testIamPermissions")
94404	urls += "?" + c.urlParams_.Encode()
94405	req, err := http.NewRequest("POST", urls, body)
94406	if err != nil {
94407		return nil, err
94408	}
94409	req.Header = reqHeaders
94410	googleapi.Expand(req.URL, map[string]string{
94411		"project":  c.project,
94412		"region":   c.region,
94413		"resource": c.resource,
94414	})
94415	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94416}
94417
94418// Do executes the "compute.interconnectAttachments.testIamPermissions" call.
94419// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
94420// non-2xx status code is an error. Response headers are in either
94421// *TestPermissionsResponse.ServerResponse.Header or (if a response was
94422// returned at all) in error.(*googleapi.Error).Header. Use
94423// googleapi.IsNotModified to check whether the returned error was
94424// because http.StatusNotModified was returned.
94425func (c *InterconnectAttachmentsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
94426	gensupport.SetOptions(c.urlParams_, opts...)
94427	res, err := c.doRequest("json")
94428	if res != nil && res.StatusCode == http.StatusNotModified {
94429		if res.Body != nil {
94430			res.Body.Close()
94431		}
94432		return nil, &googleapi.Error{
94433			Code:   res.StatusCode,
94434			Header: res.Header,
94435		}
94436	}
94437	if err != nil {
94438		return nil, err
94439	}
94440	defer googleapi.CloseBody(res)
94441	if err := googleapi.CheckResponse(res); err != nil {
94442		return nil, err
94443	}
94444	ret := &TestPermissionsResponse{
94445		ServerResponse: googleapi.ServerResponse{
94446			Header:         res.Header,
94447			HTTPStatusCode: res.StatusCode,
94448		},
94449	}
94450	target := &ret
94451	if err := gensupport.DecodeResponse(target, res); err != nil {
94452		return nil, err
94453	}
94454	return ret, nil
94455	// {
94456	//   "description": "Returns permissions that a caller has on the specified resource.",
94457	//   "httpMethod": "POST",
94458	//   "id": "compute.interconnectAttachments.testIamPermissions",
94459	//   "parameterOrder": [
94460	//     "project",
94461	//     "region",
94462	//     "resource"
94463	//   ],
94464	//   "parameters": {
94465	//     "project": {
94466	//       "description": "Project ID for this request.",
94467	//       "location": "path",
94468	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94469	//       "required": true,
94470	//       "type": "string"
94471	//     },
94472	//     "region": {
94473	//       "description": "The name of the region for this request.",
94474	//       "location": "path",
94475	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94476	//       "required": true,
94477	//       "type": "string"
94478	//     },
94479	//     "resource": {
94480	//       "description": "Name or id of the resource for this request.",
94481	//       "location": "path",
94482	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94483	//       "required": true,
94484	//       "type": "string"
94485	//     }
94486	//   },
94487	//   "path": "{project}/regions/{region}/interconnectAttachments/{resource}/testIamPermissions",
94488	//   "request": {
94489	//     "$ref": "TestPermissionsRequest"
94490	//   },
94491	//   "response": {
94492	//     "$ref": "TestPermissionsResponse"
94493	//   },
94494	//   "scopes": [
94495	//     "https://www.googleapis.com/auth/cloud-platform",
94496	//     "https://www.googleapis.com/auth/compute",
94497	//     "https://www.googleapis.com/auth/compute.readonly"
94498	//   ]
94499	// }
94500
94501}
94502
94503// method id "compute.interconnectLocations.get":
94504
94505type InterconnectLocationsGetCall struct {
94506	s                    *Service
94507	project              string
94508	interconnectLocation string
94509	urlParams_           gensupport.URLParams
94510	ifNoneMatch_         string
94511	ctx_                 context.Context
94512	header_              http.Header
94513}
94514
94515// Get: Returns the details for the specified interconnect location.
94516// Gets a list of available interconnect locations by making a list()
94517// request.
94518func (r *InterconnectLocationsService) Get(project string, interconnectLocation string) *InterconnectLocationsGetCall {
94519	c := &InterconnectLocationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94520	c.project = project
94521	c.interconnectLocation = interconnectLocation
94522	return c
94523}
94524
94525// Fields allows partial responses to be retrieved. See
94526// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94527// for more information.
94528func (c *InterconnectLocationsGetCall) Fields(s ...googleapi.Field) *InterconnectLocationsGetCall {
94529	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94530	return c
94531}
94532
94533// IfNoneMatch sets the optional parameter which makes the operation
94534// fail if the object's ETag matches the given value. This is useful for
94535// getting updates only after the object has changed since the last
94536// request. Use googleapi.IsNotModified to check whether the response
94537// error from Do is the result of In-None-Match.
94538func (c *InterconnectLocationsGetCall) IfNoneMatch(entityTag string) *InterconnectLocationsGetCall {
94539	c.ifNoneMatch_ = entityTag
94540	return c
94541}
94542
94543// Context sets the context to be used in this call's Do method. Any
94544// pending HTTP request will be aborted if the provided context is
94545// canceled.
94546func (c *InterconnectLocationsGetCall) Context(ctx context.Context) *InterconnectLocationsGetCall {
94547	c.ctx_ = ctx
94548	return c
94549}
94550
94551// Header returns an http.Header that can be modified by the caller to
94552// add HTTP headers to the request.
94553func (c *InterconnectLocationsGetCall) Header() http.Header {
94554	if c.header_ == nil {
94555		c.header_ = make(http.Header)
94556	}
94557	return c.header_
94558}
94559
94560func (c *InterconnectLocationsGetCall) doRequest(alt string) (*http.Response, error) {
94561	reqHeaders := make(http.Header)
94562	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
94563	for k, v := range c.header_ {
94564		reqHeaders[k] = v
94565	}
94566	reqHeaders.Set("User-Agent", c.s.userAgent())
94567	if c.ifNoneMatch_ != "" {
94568		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
94569	}
94570	var body io.Reader = nil
94571	c.urlParams_.Set("alt", alt)
94572	c.urlParams_.Set("prettyPrint", "false")
94573	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnectLocations/{interconnectLocation}")
94574	urls += "?" + c.urlParams_.Encode()
94575	req, err := http.NewRequest("GET", urls, body)
94576	if err != nil {
94577		return nil, err
94578	}
94579	req.Header = reqHeaders
94580	googleapi.Expand(req.URL, map[string]string{
94581		"project":              c.project,
94582		"interconnectLocation": c.interconnectLocation,
94583	})
94584	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94585}
94586
94587// Do executes the "compute.interconnectLocations.get" call.
94588// Exactly one of *InterconnectLocation or error will be non-nil. Any
94589// non-2xx status code is an error. Response headers are in either
94590// *InterconnectLocation.ServerResponse.Header or (if a response was
94591// returned at all) in error.(*googleapi.Error).Header. Use
94592// googleapi.IsNotModified to check whether the returned error was
94593// because http.StatusNotModified was returned.
94594func (c *InterconnectLocationsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectLocation, error) {
94595	gensupport.SetOptions(c.urlParams_, opts...)
94596	res, err := c.doRequest("json")
94597	if res != nil && res.StatusCode == http.StatusNotModified {
94598		if res.Body != nil {
94599			res.Body.Close()
94600		}
94601		return nil, &googleapi.Error{
94602			Code:   res.StatusCode,
94603			Header: res.Header,
94604		}
94605	}
94606	if err != nil {
94607		return nil, err
94608	}
94609	defer googleapi.CloseBody(res)
94610	if err := googleapi.CheckResponse(res); err != nil {
94611		return nil, err
94612	}
94613	ret := &InterconnectLocation{
94614		ServerResponse: googleapi.ServerResponse{
94615			Header:         res.Header,
94616			HTTPStatusCode: res.StatusCode,
94617		},
94618	}
94619	target := &ret
94620	if err := gensupport.DecodeResponse(target, res); err != nil {
94621		return nil, err
94622	}
94623	return ret, nil
94624	// {
94625	//   "description": "Returns the details for the specified interconnect location. Gets a list of available interconnect locations by making a list() request.",
94626	//   "httpMethod": "GET",
94627	//   "id": "compute.interconnectLocations.get",
94628	//   "parameterOrder": [
94629	//     "project",
94630	//     "interconnectLocation"
94631	//   ],
94632	//   "parameters": {
94633	//     "interconnectLocation": {
94634	//       "description": "Name of the interconnect location to return.",
94635	//       "location": "path",
94636	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94637	//       "required": true,
94638	//       "type": "string"
94639	//     },
94640	//     "project": {
94641	//       "description": "Project ID for this request.",
94642	//       "location": "path",
94643	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94644	//       "required": true,
94645	//       "type": "string"
94646	//     }
94647	//   },
94648	//   "path": "{project}/global/interconnectLocations/{interconnectLocation}",
94649	//   "response": {
94650	//     "$ref": "InterconnectLocation"
94651	//   },
94652	//   "scopes": [
94653	//     "https://www.googleapis.com/auth/cloud-platform",
94654	//     "https://www.googleapis.com/auth/compute",
94655	//     "https://www.googleapis.com/auth/compute.readonly"
94656	//   ]
94657	// }
94658
94659}
94660
94661// method id "compute.interconnectLocations.list":
94662
94663type InterconnectLocationsListCall struct {
94664	s            *Service
94665	project      string
94666	urlParams_   gensupport.URLParams
94667	ifNoneMatch_ string
94668	ctx_         context.Context
94669	header_      http.Header
94670}
94671
94672// List: Retrieves the list of interconnect locations available to the
94673// specified project.
94674func (r *InterconnectLocationsService) List(project string) *InterconnectLocationsListCall {
94675	c := &InterconnectLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94676	c.project = project
94677	return c
94678}
94679
94680// Filter sets the optional parameter "filter": A filter expression that
94681// filters resources listed in the response. The expression must specify
94682// the field name, a comparison operator, and the value that you want to
94683// use for filtering. The value must be a string, a number, or a
94684// boolean. The comparison operator must be either =, !=, >, or <.
94685//
94686// For example, if you are filtering Compute Engine instances, you can
94687// exclude instances named example-instance by specifying name !=
94688// example-instance.
94689//
94690// You can also filter nested fields. For example, you could specify
94691// scheduling.automaticRestart = false to include instances only if they
94692// are not scheduled for automatic restarts. You can use filtering on
94693// nested fields to filter based on resource labels.
94694//
94695// To filter on multiple expressions, provide each separate expression
94696// within parentheses. For example, (scheduling.automaticRestart = true)
94697// (cpuPlatform = "Intel Skylake"). By default, each expression is an
94698// AND expression. However, you can include AND and OR expressions
94699// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
94700// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
94701// true).
94702func (c *InterconnectLocationsListCall) Filter(filter string) *InterconnectLocationsListCall {
94703	c.urlParams_.Set("filter", filter)
94704	return c
94705}
94706
94707// MaxResults sets the optional parameter "maxResults": The maximum
94708// number of results per page that should be returned. If the number of
94709// available results is larger than maxResults, Compute Engine returns a
94710// nextPageToken that can be used to get the next page of results in
94711// subsequent list requests. Acceptable values are 0 to 500, inclusive.
94712// (Default: 500)
94713func (c *InterconnectLocationsListCall) MaxResults(maxResults int64) *InterconnectLocationsListCall {
94714	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
94715	return c
94716}
94717
94718// OrderBy sets the optional parameter "orderBy": Sorts list results by
94719// a certain order. By default, results are returned in alphanumerical
94720// order based on the resource name.
94721//
94722// You can also sort results in descending order based on the creation
94723// timestamp using orderBy="creationTimestamp desc". This sorts results
94724// based on the creationTimestamp field in reverse chronological order
94725// (newest result first). Use this to sort resources like operations so
94726// that the newest operation is returned first.
94727//
94728// Currently, only sorting by name or creationTimestamp desc is
94729// supported.
94730func (c *InterconnectLocationsListCall) OrderBy(orderBy string) *InterconnectLocationsListCall {
94731	c.urlParams_.Set("orderBy", orderBy)
94732	return c
94733}
94734
94735// PageToken sets the optional parameter "pageToken": Specifies a page
94736// token to use. Set pageToken to the nextPageToken returned by a
94737// previous list request to get the next page of results.
94738func (c *InterconnectLocationsListCall) PageToken(pageToken string) *InterconnectLocationsListCall {
94739	c.urlParams_.Set("pageToken", pageToken)
94740	return c
94741}
94742
94743// Fields allows partial responses to be retrieved. See
94744// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94745// for more information.
94746func (c *InterconnectLocationsListCall) Fields(s ...googleapi.Field) *InterconnectLocationsListCall {
94747	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94748	return c
94749}
94750
94751// IfNoneMatch sets the optional parameter which makes the operation
94752// fail if the object's ETag matches the given value. This is useful for
94753// getting updates only after the object has changed since the last
94754// request. Use googleapi.IsNotModified to check whether the response
94755// error from Do is the result of In-None-Match.
94756func (c *InterconnectLocationsListCall) IfNoneMatch(entityTag string) *InterconnectLocationsListCall {
94757	c.ifNoneMatch_ = entityTag
94758	return c
94759}
94760
94761// Context sets the context to be used in this call's Do method. Any
94762// pending HTTP request will be aborted if the provided context is
94763// canceled.
94764func (c *InterconnectLocationsListCall) Context(ctx context.Context) *InterconnectLocationsListCall {
94765	c.ctx_ = ctx
94766	return c
94767}
94768
94769// Header returns an http.Header that can be modified by the caller to
94770// add HTTP headers to the request.
94771func (c *InterconnectLocationsListCall) Header() http.Header {
94772	if c.header_ == nil {
94773		c.header_ = make(http.Header)
94774	}
94775	return c.header_
94776}
94777
94778func (c *InterconnectLocationsListCall) doRequest(alt string) (*http.Response, error) {
94779	reqHeaders := make(http.Header)
94780	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
94781	for k, v := range c.header_ {
94782		reqHeaders[k] = v
94783	}
94784	reqHeaders.Set("User-Agent", c.s.userAgent())
94785	if c.ifNoneMatch_ != "" {
94786		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
94787	}
94788	var body io.Reader = nil
94789	c.urlParams_.Set("alt", alt)
94790	c.urlParams_.Set("prettyPrint", "false")
94791	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnectLocations")
94792	urls += "?" + c.urlParams_.Encode()
94793	req, err := http.NewRequest("GET", urls, body)
94794	if err != nil {
94795		return nil, err
94796	}
94797	req.Header = reqHeaders
94798	googleapi.Expand(req.URL, map[string]string{
94799		"project": c.project,
94800	})
94801	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94802}
94803
94804// Do executes the "compute.interconnectLocations.list" call.
94805// Exactly one of *InterconnectLocationList or error will be non-nil.
94806// Any non-2xx status code is an error. Response headers are in either
94807// *InterconnectLocationList.ServerResponse.Header or (if a response was
94808// returned at all) in error.(*googleapi.Error).Header. Use
94809// googleapi.IsNotModified to check whether the returned error was
94810// because http.StatusNotModified was returned.
94811func (c *InterconnectLocationsListCall) Do(opts ...googleapi.CallOption) (*InterconnectLocationList, error) {
94812	gensupport.SetOptions(c.urlParams_, opts...)
94813	res, err := c.doRequest("json")
94814	if res != nil && res.StatusCode == http.StatusNotModified {
94815		if res.Body != nil {
94816			res.Body.Close()
94817		}
94818		return nil, &googleapi.Error{
94819			Code:   res.StatusCode,
94820			Header: res.Header,
94821		}
94822	}
94823	if err != nil {
94824		return nil, err
94825	}
94826	defer googleapi.CloseBody(res)
94827	if err := googleapi.CheckResponse(res); err != nil {
94828		return nil, err
94829	}
94830	ret := &InterconnectLocationList{
94831		ServerResponse: googleapi.ServerResponse{
94832			Header:         res.Header,
94833			HTTPStatusCode: res.StatusCode,
94834		},
94835	}
94836	target := &ret
94837	if err := gensupport.DecodeResponse(target, res); err != nil {
94838		return nil, err
94839	}
94840	return ret, nil
94841	// {
94842	//   "description": "Retrieves the list of interconnect locations available to the specified project.",
94843	//   "httpMethod": "GET",
94844	//   "id": "compute.interconnectLocations.list",
94845	//   "parameterOrder": [
94846	//     "project"
94847	//   ],
94848	//   "parameters": {
94849	//     "filter": {
94850	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
94851	//       "location": "query",
94852	//       "type": "string"
94853	//     },
94854	//     "maxResults": {
94855	//       "default": "500",
94856	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
94857	//       "format": "uint32",
94858	//       "location": "query",
94859	//       "minimum": "0",
94860	//       "type": "integer"
94861	//     },
94862	//     "orderBy": {
94863	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
94864	//       "location": "query",
94865	//       "type": "string"
94866	//     },
94867	//     "pageToken": {
94868	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
94869	//       "location": "query",
94870	//       "type": "string"
94871	//     },
94872	//     "project": {
94873	//       "description": "Project ID for this request.",
94874	//       "location": "path",
94875	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94876	//       "required": true,
94877	//       "type": "string"
94878	//     }
94879	//   },
94880	//   "path": "{project}/global/interconnectLocations",
94881	//   "response": {
94882	//     "$ref": "InterconnectLocationList"
94883	//   },
94884	//   "scopes": [
94885	//     "https://www.googleapis.com/auth/cloud-platform",
94886	//     "https://www.googleapis.com/auth/compute",
94887	//     "https://www.googleapis.com/auth/compute.readonly"
94888	//   ]
94889	// }
94890
94891}
94892
94893// Pages invokes f for each page of results.
94894// A non-nil error returned from f will halt the iteration.
94895// The provided context supersedes any context provided to the Context method.
94896func (c *InterconnectLocationsListCall) Pages(ctx context.Context, f func(*InterconnectLocationList) error) error {
94897	c.ctx_ = ctx
94898	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
94899	for {
94900		x, err := c.Do()
94901		if err != nil {
94902			return err
94903		}
94904		if err := f(x); err != nil {
94905			return err
94906		}
94907		if x.NextPageToken == "" {
94908			return nil
94909		}
94910		c.PageToken(x.NextPageToken)
94911	}
94912}
94913
94914// method id "compute.interconnectLocations.testIamPermissions":
94915
94916type InterconnectLocationsTestIamPermissionsCall struct {
94917	s                      *Service
94918	project                string
94919	resource               string
94920	testpermissionsrequest *TestPermissionsRequest
94921	urlParams_             gensupport.URLParams
94922	ctx_                   context.Context
94923	header_                http.Header
94924}
94925
94926// TestIamPermissions: Returns permissions that a caller has on the
94927// specified resource.
94928func (r *InterconnectLocationsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *InterconnectLocationsTestIamPermissionsCall {
94929	c := &InterconnectLocationsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94930	c.project = project
94931	c.resource = resource
94932	c.testpermissionsrequest = testpermissionsrequest
94933	return c
94934}
94935
94936// Fields allows partial responses to be retrieved. See
94937// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94938// for more information.
94939func (c *InterconnectLocationsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InterconnectLocationsTestIamPermissionsCall {
94940	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94941	return c
94942}
94943
94944// Context sets the context to be used in this call's Do method. Any
94945// pending HTTP request will be aborted if the provided context is
94946// canceled.
94947func (c *InterconnectLocationsTestIamPermissionsCall) Context(ctx context.Context) *InterconnectLocationsTestIamPermissionsCall {
94948	c.ctx_ = ctx
94949	return c
94950}
94951
94952// Header returns an http.Header that can be modified by the caller to
94953// add HTTP headers to the request.
94954func (c *InterconnectLocationsTestIamPermissionsCall) Header() http.Header {
94955	if c.header_ == nil {
94956		c.header_ = make(http.Header)
94957	}
94958	return c.header_
94959}
94960
94961func (c *InterconnectLocationsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
94962	reqHeaders := make(http.Header)
94963	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
94964	for k, v := range c.header_ {
94965		reqHeaders[k] = v
94966	}
94967	reqHeaders.Set("User-Agent", c.s.userAgent())
94968	var body io.Reader = nil
94969	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
94970	if err != nil {
94971		return nil, err
94972	}
94973	reqHeaders.Set("Content-Type", "application/json")
94974	c.urlParams_.Set("alt", alt)
94975	c.urlParams_.Set("prettyPrint", "false")
94976	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnectLocations/{resource}/testIamPermissions")
94977	urls += "?" + c.urlParams_.Encode()
94978	req, err := http.NewRequest("POST", urls, body)
94979	if err != nil {
94980		return nil, err
94981	}
94982	req.Header = reqHeaders
94983	googleapi.Expand(req.URL, map[string]string{
94984		"project":  c.project,
94985		"resource": c.resource,
94986	})
94987	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94988}
94989
94990// Do executes the "compute.interconnectLocations.testIamPermissions" call.
94991// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
94992// non-2xx status code is an error. Response headers are in either
94993// *TestPermissionsResponse.ServerResponse.Header or (if a response was
94994// returned at all) in error.(*googleapi.Error).Header. Use
94995// googleapi.IsNotModified to check whether the returned error was
94996// because http.StatusNotModified was returned.
94997func (c *InterconnectLocationsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
94998	gensupport.SetOptions(c.urlParams_, opts...)
94999	res, err := c.doRequest("json")
95000	if res != nil && res.StatusCode == http.StatusNotModified {
95001		if res.Body != nil {
95002			res.Body.Close()
95003		}
95004		return nil, &googleapi.Error{
95005			Code:   res.StatusCode,
95006			Header: res.Header,
95007		}
95008	}
95009	if err != nil {
95010		return nil, err
95011	}
95012	defer googleapi.CloseBody(res)
95013	if err := googleapi.CheckResponse(res); err != nil {
95014		return nil, err
95015	}
95016	ret := &TestPermissionsResponse{
95017		ServerResponse: googleapi.ServerResponse{
95018			Header:         res.Header,
95019			HTTPStatusCode: res.StatusCode,
95020		},
95021	}
95022	target := &ret
95023	if err := gensupport.DecodeResponse(target, res); err != nil {
95024		return nil, err
95025	}
95026	return ret, nil
95027	// {
95028	//   "description": "Returns permissions that a caller has on the specified resource.",
95029	//   "httpMethod": "POST",
95030	//   "id": "compute.interconnectLocations.testIamPermissions",
95031	//   "parameterOrder": [
95032	//     "project",
95033	//     "resource"
95034	//   ],
95035	//   "parameters": {
95036	//     "project": {
95037	//       "description": "Project ID for this request.",
95038	//       "location": "path",
95039	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95040	//       "required": true,
95041	//       "type": "string"
95042	//     },
95043	//     "resource": {
95044	//       "description": "Name or id of the resource for this request.",
95045	//       "location": "path",
95046	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95047	//       "required": true,
95048	//       "type": "string"
95049	//     }
95050	//   },
95051	//   "path": "{project}/global/interconnectLocations/{resource}/testIamPermissions",
95052	//   "request": {
95053	//     "$ref": "TestPermissionsRequest"
95054	//   },
95055	//   "response": {
95056	//     "$ref": "TestPermissionsResponse"
95057	//   },
95058	//   "scopes": [
95059	//     "https://www.googleapis.com/auth/cloud-platform",
95060	//     "https://www.googleapis.com/auth/compute",
95061	//     "https://www.googleapis.com/auth/compute.readonly"
95062	//   ]
95063	// }
95064
95065}
95066
95067// method id "compute.interconnects.delete":
95068
95069type InterconnectsDeleteCall struct {
95070	s            *Service
95071	project      string
95072	interconnect string
95073	urlParams_   gensupport.URLParams
95074	ctx_         context.Context
95075	header_      http.Header
95076}
95077
95078// Delete: Deletes the specified interconnect.
95079func (r *InterconnectsService) Delete(project string, interconnect string) *InterconnectsDeleteCall {
95080	c := &InterconnectsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95081	c.project = project
95082	c.interconnect = interconnect
95083	return c
95084}
95085
95086// RequestId sets the optional parameter "requestId": An optional
95087// request ID to identify requests. Specify a unique request ID so that
95088// if you must retry your request, the server will know to ignore the
95089// request if it has already been completed.
95090//
95091// For example, consider a situation where you make an initial request
95092// and the request times out. If you make the request again with the
95093// same request ID, the server can check if original operation with the
95094// same request ID was received, and if so, will ignore the second
95095// request. This prevents clients from accidentally creating duplicate
95096// commitments.
95097//
95098// The request ID must be a valid UUID with the exception that zero UUID
95099// is not supported (00000000-0000-0000-0000-000000000000).
95100func (c *InterconnectsDeleteCall) RequestId(requestId string) *InterconnectsDeleteCall {
95101	c.urlParams_.Set("requestId", requestId)
95102	return c
95103}
95104
95105// Fields allows partial responses to be retrieved. See
95106// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95107// for more information.
95108func (c *InterconnectsDeleteCall) Fields(s ...googleapi.Field) *InterconnectsDeleteCall {
95109	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95110	return c
95111}
95112
95113// Context sets the context to be used in this call's Do method. Any
95114// pending HTTP request will be aborted if the provided context is
95115// canceled.
95116func (c *InterconnectsDeleteCall) Context(ctx context.Context) *InterconnectsDeleteCall {
95117	c.ctx_ = ctx
95118	return c
95119}
95120
95121// Header returns an http.Header that can be modified by the caller to
95122// add HTTP headers to the request.
95123func (c *InterconnectsDeleteCall) Header() http.Header {
95124	if c.header_ == nil {
95125		c.header_ = make(http.Header)
95126	}
95127	return c.header_
95128}
95129
95130func (c *InterconnectsDeleteCall) doRequest(alt string) (*http.Response, error) {
95131	reqHeaders := make(http.Header)
95132	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
95133	for k, v := range c.header_ {
95134		reqHeaders[k] = v
95135	}
95136	reqHeaders.Set("User-Agent", c.s.userAgent())
95137	var body io.Reader = nil
95138	c.urlParams_.Set("alt", alt)
95139	c.urlParams_.Set("prettyPrint", "false")
95140	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}")
95141	urls += "?" + c.urlParams_.Encode()
95142	req, err := http.NewRequest("DELETE", urls, body)
95143	if err != nil {
95144		return nil, err
95145	}
95146	req.Header = reqHeaders
95147	googleapi.Expand(req.URL, map[string]string{
95148		"project":      c.project,
95149		"interconnect": c.interconnect,
95150	})
95151	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95152}
95153
95154// Do executes the "compute.interconnects.delete" call.
95155// Exactly one of *Operation or error will be non-nil. Any non-2xx
95156// status code is an error. Response headers are in either
95157// *Operation.ServerResponse.Header or (if a response was returned at
95158// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95159// to check whether the returned error was because
95160// http.StatusNotModified was returned.
95161func (c *InterconnectsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95162	gensupport.SetOptions(c.urlParams_, opts...)
95163	res, err := c.doRequest("json")
95164	if res != nil && res.StatusCode == http.StatusNotModified {
95165		if res.Body != nil {
95166			res.Body.Close()
95167		}
95168		return nil, &googleapi.Error{
95169			Code:   res.StatusCode,
95170			Header: res.Header,
95171		}
95172	}
95173	if err != nil {
95174		return nil, err
95175	}
95176	defer googleapi.CloseBody(res)
95177	if err := googleapi.CheckResponse(res); err != nil {
95178		return nil, err
95179	}
95180	ret := &Operation{
95181		ServerResponse: googleapi.ServerResponse{
95182			Header:         res.Header,
95183			HTTPStatusCode: res.StatusCode,
95184		},
95185	}
95186	target := &ret
95187	if err := gensupport.DecodeResponse(target, res); err != nil {
95188		return nil, err
95189	}
95190	return ret, nil
95191	// {
95192	//   "description": "Deletes the specified interconnect.",
95193	//   "httpMethod": "DELETE",
95194	//   "id": "compute.interconnects.delete",
95195	//   "parameterOrder": [
95196	//     "project",
95197	//     "interconnect"
95198	//   ],
95199	//   "parameters": {
95200	//     "interconnect": {
95201	//       "description": "Name of the interconnect to delete.",
95202	//       "location": "path",
95203	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95204	//       "required": true,
95205	//       "type": "string"
95206	//     },
95207	//     "project": {
95208	//       "description": "Project ID for this request.",
95209	//       "location": "path",
95210	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95211	//       "required": true,
95212	//       "type": "string"
95213	//     },
95214	//     "requestId": {
95215	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95216	//       "location": "query",
95217	//       "type": "string"
95218	//     }
95219	//   },
95220	//   "path": "{project}/global/interconnects/{interconnect}",
95221	//   "response": {
95222	//     "$ref": "Operation"
95223	//   },
95224	//   "scopes": [
95225	//     "https://www.googleapis.com/auth/cloud-platform",
95226	//     "https://www.googleapis.com/auth/compute"
95227	//   ]
95228	// }
95229
95230}
95231
95232// method id "compute.interconnects.get":
95233
95234type InterconnectsGetCall struct {
95235	s            *Service
95236	project      string
95237	interconnect string
95238	urlParams_   gensupport.URLParams
95239	ifNoneMatch_ string
95240	ctx_         context.Context
95241	header_      http.Header
95242}
95243
95244// Get: Returns the specified interconnect. Get a list of available
95245// interconnects by making a list() request.
95246func (r *InterconnectsService) Get(project string, interconnect string) *InterconnectsGetCall {
95247	c := &InterconnectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95248	c.project = project
95249	c.interconnect = interconnect
95250	return c
95251}
95252
95253// Fields allows partial responses to be retrieved. See
95254// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95255// for more information.
95256func (c *InterconnectsGetCall) Fields(s ...googleapi.Field) *InterconnectsGetCall {
95257	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95258	return c
95259}
95260
95261// IfNoneMatch sets the optional parameter which makes the operation
95262// fail if the object's ETag matches the given value. This is useful for
95263// getting updates only after the object has changed since the last
95264// request. Use googleapi.IsNotModified to check whether the response
95265// error from Do is the result of In-None-Match.
95266func (c *InterconnectsGetCall) IfNoneMatch(entityTag string) *InterconnectsGetCall {
95267	c.ifNoneMatch_ = entityTag
95268	return c
95269}
95270
95271// Context sets the context to be used in this call's Do method. Any
95272// pending HTTP request will be aborted if the provided context is
95273// canceled.
95274func (c *InterconnectsGetCall) Context(ctx context.Context) *InterconnectsGetCall {
95275	c.ctx_ = ctx
95276	return c
95277}
95278
95279// Header returns an http.Header that can be modified by the caller to
95280// add HTTP headers to the request.
95281func (c *InterconnectsGetCall) Header() http.Header {
95282	if c.header_ == nil {
95283		c.header_ = make(http.Header)
95284	}
95285	return c.header_
95286}
95287
95288func (c *InterconnectsGetCall) doRequest(alt string) (*http.Response, error) {
95289	reqHeaders := make(http.Header)
95290	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
95291	for k, v := range c.header_ {
95292		reqHeaders[k] = v
95293	}
95294	reqHeaders.Set("User-Agent", c.s.userAgent())
95295	if c.ifNoneMatch_ != "" {
95296		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
95297	}
95298	var body io.Reader = nil
95299	c.urlParams_.Set("alt", alt)
95300	c.urlParams_.Set("prettyPrint", "false")
95301	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}")
95302	urls += "?" + c.urlParams_.Encode()
95303	req, err := http.NewRequest("GET", urls, body)
95304	if err != nil {
95305		return nil, err
95306	}
95307	req.Header = reqHeaders
95308	googleapi.Expand(req.URL, map[string]string{
95309		"project":      c.project,
95310		"interconnect": c.interconnect,
95311	})
95312	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95313}
95314
95315// Do executes the "compute.interconnects.get" call.
95316// Exactly one of *Interconnect or error will be non-nil. Any non-2xx
95317// status code is an error. Response headers are in either
95318// *Interconnect.ServerResponse.Header or (if a response was returned at
95319// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95320// to check whether the returned error was because
95321// http.StatusNotModified was returned.
95322func (c *InterconnectsGetCall) Do(opts ...googleapi.CallOption) (*Interconnect, error) {
95323	gensupport.SetOptions(c.urlParams_, opts...)
95324	res, err := c.doRequest("json")
95325	if res != nil && res.StatusCode == http.StatusNotModified {
95326		if res.Body != nil {
95327			res.Body.Close()
95328		}
95329		return nil, &googleapi.Error{
95330			Code:   res.StatusCode,
95331			Header: res.Header,
95332		}
95333	}
95334	if err != nil {
95335		return nil, err
95336	}
95337	defer googleapi.CloseBody(res)
95338	if err := googleapi.CheckResponse(res); err != nil {
95339		return nil, err
95340	}
95341	ret := &Interconnect{
95342		ServerResponse: googleapi.ServerResponse{
95343			Header:         res.Header,
95344			HTTPStatusCode: res.StatusCode,
95345		},
95346	}
95347	target := &ret
95348	if err := gensupport.DecodeResponse(target, res); err != nil {
95349		return nil, err
95350	}
95351	return ret, nil
95352	// {
95353	//   "description": "Returns the specified interconnect. Get a list of available interconnects by making a list() request.",
95354	//   "httpMethod": "GET",
95355	//   "id": "compute.interconnects.get",
95356	//   "parameterOrder": [
95357	//     "project",
95358	//     "interconnect"
95359	//   ],
95360	//   "parameters": {
95361	//     "interconnect": {
95362	//       "description": "Name of the interconnect to return.",
95363	//       "location": "path",
95364	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95365	//       "required": true,
95366	//       "type": "string"
95367	//     },
95368	//     "project": {
95369	//       "description": "Project ID for this request.",
95370	//       "location": "path",
95371	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95372	//       "required": true,
95373	//       "type": "string"
95374	//     }
95375	//   },
95376	//   "path": "{project}/global/interconnects/{interconnect}",
95377	//   "response": {
95378	//     "$ref": "Interconnect"
95379	//   },
95380	//   "scopes": [
95381	//     "https://www.googleapis.com/auth/cloud-platform",
95382	//     "https://www.googleapis.com/auth/compute",
95383	//     "https://www.googleapis.com/auth/compute.readonly"
95384	//   ]
95385	// }
95386
95387}
95388
95389// method id "compute.interconnects.getDiagnostics":
95390
95391type InterconnectsGetDiagnosticsCall struct {
95392	s            *Service
95393	project      string
95394	interconnect string
95395	urlParams_   gensupport.URLParams
95396	ifNoneMatch_ string
95397	ctx_         context.Context
95398	header_      http.Header
95399}
95400
95401// GetDiagnostics: Returns the interconnectDiagnostics for the specified
95402// interconnect.
95403func (r *InterconnectsService) GetDiagnostics(project string, interconnect string) *InterconnectsGetDiagnosticsCall {
95404	c := &InterconnectsGetDiagnosticsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95405	c.project = project
95406	c.interconnect = interconnect
95407	return c
95408}
95409
95410// Fields allows partial responses to be retrieved. See
95411// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95412// for more information.
95413func (c *InterconnectsGetDiagnosticsCall) Fields(s ...googleapi.Field) *InterconnectsGetDiagnosticsCall {
95414	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95415	return c
95416}
95417
95418// IfNoneMatch sets the optional parameter which makes the operation
95419// fail if the object's ETag matches the given value. This is useful for
95420// getting updates only after the object has changed since the last
95421// request. Use googleapi.IsNotModified to check whether the response
95422// error from Do is the result of In-None-Match.
95423func (c *InterconnectsGetDiagnosticsCall) IfNoneMatch(entityTag string) *InterconnectsGetDiagnosticsCall {
95424	c.ifNoneMatch_ = entityTag
95425	return c
95426}
95427
95428// Context sets the context to be used in this call's Do method. Any
95429// pending HTTP request will be aborted if the provided context is
95430// canceled.
95431func (c *InterconnectsGetDiagnosticsCall) Context(ctx context.Context) *InterconnectsGetDiagnosticsCall {
95432	c.ctx_ = ctx
95433	return c
95434}
95435
95436// Header returns an http.Header that can be modified by the caller to
95437// add HTTP headers to the request.
95438func (c *InterconnectsGetDiagnosticsCall) Header() http.Header {
95439	if c.header_ == nil {
95440		c.header_ = make(http.Header)
95441	}
95442	return c.header_
95443}
95444
95445func (c *InterconnectsGetDiagnosticsCall) doRequest(alt string) (*http.Response, error) {
95446	reqHeaders := make(http.Header)
95447	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
95448	for k, v := range c.header_ {
95449		reqHeaders[k] = v
95450	}
95451	reqHeaders.Set("User-Agent", c.s.userAgent())
95452	if c.ifNoneMatch_ != "" {
95453		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
95454	}
95455	var body io.Reader = nil
95456	c.urlParams_.Set("alt", alt)
95457	c.urlParams_.Set("prettyPrint", "false")
95458	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}/getDiagnostics")
95459	urls += "?" + c.urlParams_.Encode()
95460	req, err := http.NewRequest("GET", urls, body)
95461	if err != nil {
95462		return nil, err
95463	}
95464	req.Header = reqHeaders
95465	googleapi.Expand(req.URL, map[string]string{
95466		"project":      c.project,
95467		"interconnect": c.interconnect,
95468	})
95469	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95470}
95471
95472// Do executes the "compute.interconnects.getDiagnostics" call.
95473// Exactly one of *InterconnectsGetDiagnosticsResponse or error will be
95474// non-nil. Any non-2xx status code is an error. Response headers are in
95475// either *InterconnectsGetDiagnosticsResponse.ServerResponse.Header or
95476// (if a response was returned at all) in
95477// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
95478// whether the returned error was because http.StatusNotModified was
95479// returned.
95480func (c *InterconnectsGetDiagnosticsCall) Do(opts ...googleapi.CallOption) (*InterconnectsGetDiagnosticsResponse, error) {
95481	gensupport.SetOptions(c.urlParams_, opts...)
95482	res, err := c.doRequest("json")
95483	if res != nil && res.StatusCode == http.StatusNotModified {
95484		if res.Body != nil {
95485			res.Body.Close()
95486		}
95487		return nil, &googleapi.Error{
95488			Code:   res.StatusCode,
95489			Header: res.Header,
95490		}
95491	}
95492	if err != nil {
95493		return nil, err
95494	}
95495	defer googleapi.CloseBody(res)
95496	if err := googleapi.CheckResponse(res); err != nil {
95497		return nil, err
95498	}
95499	ret := &InterconnectsGetDiagnosticsResponse{
95500		ServerResponse: googleapi.ServerResponse{
95501			Header:         res.Header,
95502			HTTPStatusCode: res.StatusCode,
95503		},
95504	}
95505	target := &ret
95506	if err := gensupport.DecodeResponse(target, res); err != nil {
95507		return nil, err
95508	}
95509	return ret, nil
95510	// {
95511	//   "description": "Returns the interconnectDiagnostics for the specified interconnect.",
95512	//   "httpMethod": "GET",
95513	//   "id": "compute.interconnects.getDiagnostics",
95514	//   "parameterOrder": [
95515	//     "project",
95516	//     "interconnect"
95517	//   ],
95518	//   "parameters": {
95519	//     "interconnect": {
95520	//       "description": "Name of the interconnect resource to query.",
95521	//       "location": "path",
95522	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95523	//       "required": true,
95524	//       "type": "string"
95525	//     },
95526	//     "project": {
95527	//       "description": "Project ID for this request.",
95528	//       "location": "path",
95529	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95530	//       "required": true,
95531	//       "type": "string"
95532	//     }
95533	//   },
95534	//   "path": "{project}/global/interconnects/{interconnect}/getDiagnostics",
95535	//   "response": {
95536	//     "$ref": "InterconnectsGetDiagnosticsResponse"
95537	//   },
95538	//   "scopes": [
95539	//     "https://www.googleapis.com/auth/cloud-platform",
95540	//     "https://www.googleapis.com/auth/compute",
95541	//     "https://www.googleapis.com/auth/compute.readonly"
95542	//   ]
95543	// }
95544
95545}
95546
95547// method id "compute.interconnects.getIamPolicy":
95548
95549type InterconnectsGetIamPolicyCall struct {
95550	s            *Service
95551	project      string
95552	resource     string
95553	urlParams_   gensupport.URLParams
95554	ifNoneMatch_ string
95555	ctx_         context.Context
95556	header_      http.Header
95557}
95558
95559// GetIamPolicy: Gets the access control policy for a resource. May be
95560// empty if no such policy or resource exists.
95561func (r *InterconnectsService) GetIamPolicy(project string, resource string) *InterconnectsGetIamPolicyCall {
95562	c := &InterconnectsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95563	c.project = project
95564	c.resource = resource
95565	return c
95566}
95567
95568// OptionsRequestedPolicyVersion sets the optional parameter
95569// "optionsRequestedPolicyVersion": Requested IAM Policy version.
95570func (c *InterconnectsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InterconnectsGetIamPolicyCall {
95571	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
95572	return c
95573}
95574
95575// Fields allows partial responses to be retrieved. See
95576// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95577// for more information.
95578func (c *InterconnectsGetIamPolicyCall) Fields(s ...googleapi.Field) *InterconnectsGetIamPolicyCall {
95579	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95580	return c
95581}
95582
95583// IfNoneMatch sets the optional parameter which makes the operation
95584// fail if the object's ETag matches the given value. This is useful for
95585// getting updates only after the object has changed since the last
95586// request. Use googleapi.IsNotModified to check whether the response
95587// error from Do is the result of In-None-Match.
95588func (c *InterconnectsGetIamPolicyCall) IfNoneMatch(entityTag string) *InterconnectsGetIamPolicyCall {
95589	c.ifNoneMatch_ = entityTag
95590	return c
95591}
95592
95593// Context sets the context to be used in this call's Do method. Any
95594// pending HTTP request will be aborted if the provided context is
95595// canceled.
95596func (c *InterconnectsGetIamPolicyCall) Context(ctx context.Context) *InterconnectsGetIamPolicyCall {
95597	c.ctx_ = ctx
95598	return c
95599}
95600
95601// Header returns an http.Header that can be modified by the caller to
95602// add HTTP headers to the request.
95603func (c *InterconnectsGetIamPolicyCall) Header() http.Header {
95604	if c.header_ == nil {
95605		c.header_ = make(http.Header)
95606	}
95607	return c.header_
95608}
95609
95610func (c *InterconnectsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
95611	reqHeaders := make(http.Header)
95612	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
95613	for k, v := range c.header_ {
95614		reqHeaders[k] = v
95615	}
95616	reqHeaders.Set("User-Agent", c.s.userAgent())
95617	if c.ifNoneMatch_ != "" {
95618		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
95619	}
95620	var body io.Reader = nil
95621	c.urlParams_.Set("alt", alt)
95622	c.urlParams_.Set("prettyPrint", "false")
95623	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{resource}/getIamPolicy")
95624	urls += "?" + c.urlParams_.Encode()
95625	req, err := http.NewRequest("GET", urls, body)
95626	if err != nil {
95627		return nil, err
95628	}
95629	req.Header = reqHeaders
95630	googleapi.Expand(req.URL, map[string]string{
95631		"project":  c.project,
95632		"resource": c.resource,
95633	})
95634	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95635}
95636
95637// Do executes the "compute.interconnects.getIamPolicy" call.
95638// Exactly one of *Policy or error will be non-nil. Any non-2xx status
95639// code is an error. Response headers are in either
95640// *Policy.ServerResponse.Header or (if a response was returned at all)
95641// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
95642// check whether the returned error was because http.StatusNotModified
95643// was returned.
95644func (c *InterconnectsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
95645	gensupport.SetOptions(c.urlParams_, opts...)
95646	res, err := c.doRequest("json")
95647	if res != nil && res.StatusCode == http.StatusNotModified {
95648		if res.Body != nil {
95649			res.Body.Close()
95650		}
95651		return nil, &googleapi.Error{
95652			Code:   res.StatusCode,
95653			Header: res.Header,
95654		}
95655	}
95656	if err != nil {
95657		return nil, err
95658	}
95659	defer googleapi.CloseBody(res)
95660	if err := googleapi.CheckResponse(res); err != nil {
95661		return nil, err
95662	}
95663	ret := &Policy{
95664		ServerResponse: googleapi.ServerResponse{
95665			Header:         res.Header,
95666			HTTPStatusCode: res.StatusCode,
95667		},
95668	}
95669	target := &ret
95670	if err := gensupport.DecodeResponse(target, res); err != nil {
95671		return nil, err
95672	}
95673	return ret, nil
95674	// {
95675	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
95676	//   "httpMethod": "GET",
95677	//   "id": "compute.interconnects.getIamPolicy",
95678	//   "parameterOrder": [
95679	//     "project",
95680	//     "resource"
95681	//   ],
95682	//   "parameters": {
95683	//     "optionsRequestedPolicyVersion": {
95684	//       "description": "Requested IAM Policy version.",
95685	//       "format": "int32",
95686	//       "location": "query",
95687	//       "type": "integer"
95688	//     },
95689	//     "project": {
95690	//       "description": "Project ID for this request.",
95691	//       "location": "path",
95692	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95693	//       "required": true,
95694	//       "type": "string"
95695	//     },
95696	//     "resource": {
95697	//       "description": "Name or id of the resource for this request.",
95698	//       "location": "path",
95699	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95700	//       "required": true,
95701	//       "type": "string"
95702	//     }
95703	//   },
95704	//   "path": "{project}/global/interconnects/{resource}/getIamPolicy",
95705	//   "response": {
95706	//     "$ref": "Policy"
95707	//   },
95708	//   "scopes": [
95709	//     "https://www.googleapis.com/auth/cloud-platform",
95710	//     "https://www.googleapis.com/auth/compute",
95711	//     "https://www.googleapis.com/auth/compute.readonly"
95712	//   ]
95713	// }
95714
95715}
95716
95717// method id "compute.interconnects.insert":
95718
95719type InterconnectsInsertCall struct {
95720	s            *Service
95721	project      string
95722	interconnect *Interconnect
95723	urlParams_   gensupport.URLParams
95724	ctx_         context.Context
95725	header_      http.Header
95726}
95727
95728// Insert: Creates a Interconnect in the specified project using the
95729// data included in the request.
95730func (r *InterconnectsService) Insert(project string, interconnect *Interconnect) *InterconnectsInsertCall {
95731	c := &InterconnectsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95732	c.project = project
95733	c.interconnect = interconnect
95734	return c
95735}
95736
95737// RequestId sets the optional parameter "requestId": An optional
95738// request ID to identify requests. Specify a unique request ID so that
95739// if you must retry your request, the server will know to ignore the
95740// request if it has already been completed.
95741//
95742// For example, consider a situation where you make an initial request
95743// and the request times out. If you make the request again with the
95744// same request ID, the server can check if original operation with the
95745// same request ID was received, and if so, will ignore the second
95746// request. This prevents clients from accidentally creating duplicate
95747// commitments.
95748//
95749// The request ID must be a valid UUID with the exception that zero UUID
95750// is not supported (00000000-0000-0000-0000-000000000000).
95751func (c *InterconnectsInsertCall) RequestId(requestId string) *InterconnectsInsertCall {
95752	c.urlParams_.Set("requestId", requestId)
95753	return c
95754}
95755
95756// Fields allows partial responses to be retrieved. See
95757// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95758// for more information.
95759func (c *InterconnectsInsertCall) Fields(s ...googleapi.Field) *InterconnectsInsertCall {
95760	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95761	return c
95762}
95763
95764// Context sets the context to be used in this call's Do method. Any
95765// pending HTTP request will be aborted if the provided context is
95766// canceled.
95767func (c *InterconnectsInsertCall) Context(ctx context.Context) *InterconnectsInsertCall {
95768	c.ctx_ = ctx
95769	return c
95770}
95771
95772// Header returns an http.Header that can be modified by the caller to
95773// add HTTP headers to the request.
95774func (c *InterconnectsInsertCall) Header() http.Header {
95775	if c.header_ == nil {
95776		c.header_ = make(http.Header)
95777	}
95778	return c.header_
95779}
95780
95781func (c *InterconnectsInsertCall) doRequest(alt string) (*http.Response, error) {
95782	reqHeaders := make(http.Header)
95783	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
95784	for k, v := range c.header_ {
95785		reqHeaders[k] = v
95786	}
95787	reqHeaders.Set("User-Agent", c.s.userAgent())
95788	var body io.Reader = nil
95789	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect)
95790	if err != nil {
95791		return nil, err
95792	}
95793	reqHeaders.Set("Content-Type", "application/json")
95794	c.urlParams_.Set("alt", alt)
95795	c.urlParams_.Set("prettyPrint", "false")
95796	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects")
95797	urls += "?" + c.urlParams_.Encode()
95798	req, err := http.NewRequest("POST", urls, body)
95799	if err != nil {
95800		return nil, err
95801	}
95802	req.Header = reqHeaders
95803	googleapi.Expand(req.URL, map[string]string{
95804		"project": c.project,
95805	})
95806	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95807}
95808
95809// Do executes the "compute.interconnects.insert" call.
95810// Exactly one of *Operation or error will be non-nil. Any non-2xx
95811// status code is an error. Response headers are in either
95812// *Operation.ServerResponse.Header or (if a response was returned at
95813// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95814// to check whether the returned error was because
95815// http.StatusNotModified was returned.
95816func (c *InterconnectsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95817	gensupport.SetOptions(c.urlParams_, opts...)
95818	res, err := c.doRequest("json")
95819	if res != nil && res.StatusCode == http.StatusNotModified {
95820		if res.Body != nil {
95821			res.Body.Close()
95822		}
95823		return nil, &googleapi.Error{
95824			Code:   res.StatusCode,
95825			Header: res.Header,
95826		}
95827	}
95828	if err != nil {
95829		return nil, err
95830	}
95831	defer googleapi.CloseBody(res)
95832	if err := googleapi.CheckResponse(res); err != nil {
95833		return nil, err
95834	}
95835	ret := &Operation{
95836		ServerResponse: googleapi.ServerResponse{
95837			Header:         res.Header,
95838			HTTPStatusCode: res.StatusCode,
95839		},
95840	}
95841	target := &ret
95842	if err := gensupport.DecodeResponse(target, res); err != nil {
95843		return nil, err
95844	}
95845	return ret, nil
95846	// {
95847	//   "description": "Creates a Interconnect in the specified project using the data included in the request.",
95848	//   "httpMethod": "POST",
95849	//   "id": "compute.interconnects.insert",
95850	//   "parameterOrder": [
95851	//     "project"
95852	//   ],
95853	//   "parameters": {
95854	//     "project": {
95855	//       "description": "Project ID for this request.",
95856	//       "location": "path",
95857	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95858	//       "required": true,
95859	//       "type": "string"
95860	//     },
95861	//     "requestId": {
95862	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95863	//       "location": "query",
95864	//       "type": "string"
95865	//     }
95866	//   },
95867	//   "path": "{project}/global/interconnects",
95868	//   "request": {
95869	//     "$ref": "Interconnect"
95870	//   },
95871	//   "response": {
95872	//     "$ref": "Operation"
95873	//   },
95874	//   "scopes": [
95875	//     "https://www.googleapis.com/auth/cloud-platform",
95876	//     "https://www.googleapis.com/auth/compute"
95877	//   ]
95878	// }
95879
95880}
95881
95882// method id "compute.interconnects.list":
95883
95884type InterconnectsListCall struct {
95885	s            *Service
95886	project      string
95887	urlParams_   gensupport.URLParams
95888	ifNoneMatch_ string
95889	ctx_         context.Context
95890	header_      http.Header
95891}
95892
95893// List: Retrieves the list of interconnect available to the specified
95894// project.
95895func (r *InterconnectsService) List(project string) *InterconnectsListCall {
95896	c := &InterconnectsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95897	c.project = project
95898	return c
95899}
95900
95901// Filter sets the optional parameter "filter": A filter expression that
95902// filters resources listed in the response. The expression must specify
95903// the field name, a comparison operator, and the value that you want to
95904// use for filtering. The value must be a string, a number, or a
95905// boolean. The comparison operator must be either =, !=, >, or <.
95906//
95907// For example, if you are filtering Compute Engine instances, you can
95908// exclude instances named example-instance by specifying name !=
95909// example-instance.
95910//
95911// You can also filter nested fields. For example, you could specify
95912// scheduling.automaticRestart = false to include instances only if they
95913// are not scheduled for automatic restarts. You can use filtering on
95914// nested fields to filter based on resource labels.
95915//
95916// To filter on multiple expressions, provide each separate expression
95917// within parentheses. For example, (scheduling.automaticRestart = true)
95918// (cpuPlatform = "Intel Skylake"). By default, each expression is an
95919// AND expression. However, you can include AND and OR expressions
95920// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
95921// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
95922// true).
95923func (c *InterconnectsListCall) Filter(filter string) *InterconnectsListCall {
95924	c.urlParams_.Set("filter", filter)
95925	return c
95926}
95927
95928// MaxResults sets the optional parameter "maxResults": The maximum
95929// number of results per page that should be returned. If the number of
95930// available results is larger than maxResults, Compute Engine returns a
95931// nextPageToken that can be used to get the next page of results in
95932// subsequent list requests. Acceptable values are 0 to 500, inclusive.
95933// (Default: 500)
95934func (c *InterconnectsListCall) MaxResults(maxResults int64) *InterconnectsListCall {
95935	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
95936	return c
95937}
95938
95939// OrderBy sets the optional parameter "orderBy": Sorts list results by
95940// a certain order. By default, results are returned in alphanumerical
95941// order based on the resource name.
95942//
95943// You can also sort results in descending order based on the creation
95944// timestamp using orderBy="creationTimestamp desc". This sorts results
95945// based on the creationTimestamp field in reverse chronological order
95946// (newest result first). Use this to sort resources like operations so
95947// that the newest operation is returned first.
95948//
95949// Currently, only sorting by name or creationTimestamp desc is
95950// supported.
95951func (c *InterconnectsListCall) OrderBy(orderBy string) *InterconnectsListCall {
95952	c.urlParams_.Set("orderBy", orderBy)
95953	return c
95954}
95955
95956// PageToken sets the optional parameter "pageToken": Specifies a page
95957// token to use. Set pageToken to the nextPageToken returned by a
95958// previous list request to get the next page of results.
95959func (c *InterconnectsListCall) PageToken(pageToken string) *InterconnectsListCall {
95960	c.urlParams_.Set("pageToken", pageToken)
95961	return c
95962}
95963
95964// Fields allows partial responses to be retrieved. See
95965// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95966// for more information.
95967func (c *InterconnectsListCall) Fields(s ...googleapi.Field) *InterconnectsListCall {
95968	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95969	return c
95970}
95971
95972// IfNoneMatch sets the optional parameter which makes the operation
95973// fail if the object's ETag matches the given value. This is useful for
95974// getting updates only after the object has changed since the last
95975// request. Use googleapi.IsNotModified to check whether the response
95976// error from Do is the result of In-None-Match.
95977func (c *InterconnectsListCall) IfNoneMatch(entityTag string) *InterconnectsListCall {
95978	c.ifNoneMatch_ = entityTag
95979	return c
95980}
95981
95982// Context sets the context to be used in this call's Do method. Any
95983// pending HTTP request will be aborted if the provided context is
95984// canceled.
95985func (c *InterconnectsListCall) Context(ctx context.Context) *InterconnectsListCall {
95986	c.ctx_ = ctx
95987	return c
95988}
95989
95990// Header returns an http.Header that can be modified by the caller to
95991// add HTTP headers to the request.
95992func (c *InterconnectsListCall) Header() http.Header {
95993	if c.header_ == nil {
95994		c.header_ = make(http.Header)
95995	}
95996	return c.header_
95997}
95998
95999func (c *InterconnectsListCall) doRequest(alt string) (*http.Response, error) {
96000	reqHeaders := make(http.Header)
96001	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
96002	for k, v := range c.header_ {
96003		reqHeaders[k] = v
96004	}
96005	reqHeaders.Set("User-Agent", c.s.userAgent())
96006	if c.ifNoneMatch_ != "" {
96007		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
96008	}
96009	var body io.Reader = nil
96010	c.urlParams_.Set("alt", alt)
96011	c.urlParams_.Set("prettyPrint", "false")
96012	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects")
96013	urls += "?" + c.urlParams_.Encode()
96014	req, err := http.NewRequest("GET", urls, body)
96015	if err != nil {
96016		return nil, err
96017	}
96018	req.Header = reqHeaders
96019	googleapi.Expand(req.URL, map[string]string{
96020		"project": c.project,
96021	})
96022	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96023}
96024
96025// Do executes the "compute.interconnects.list" call.
96026// Exactly one of *InterconnectList or error will be non-nil. Any
96027// non-2xx status code is an error. Response headers are in either
96028// *InterconnectList.ServerResponse.Header or (if a response was
96029// returned at all) in error.(*googleapi.Error).Header. Use
96030// googleapi.IsNotModified to check whether the returned error was
96031// because http.StatusNotModified was returned.
96032func (c *InterconnectsListCall) Do(opts ...googleapi.CallOption) (*InterconnectList, error) {
96033	gensupport.SetOptions(c.urlParams_, opts...)
96034	res, err := c.doRequest("json")
96035	if res != nil && res.StatusCode == http.StatusNotModified {
96036		if res.Body != nil {
96037			res.Body.Close()
96038		}
96039		return nil, &googleapi.Error{
96040			Code:   res.StatusCode,
96041			Header: res.Header,
96042		}
96043	}
96044	if err != nil {
96045		return nil, err
96046	}
96047	defer googleapi.CloseBody(res)
96048	if err := googleapi.CheckResponse(res); err != nil {
96049		return nil, err
96050	}
96051	ret := &InterconnectList{
96052		ServerResponse: googleapi.ServerResponse{
96053			Header:         res.Header,
96054			HTTPStatusCode: res.StatusCode,
96055		},
96056	}
96057	target := &ret
96058	if err := gensupport.DecodeResponse(target, res); err != nil {
96059		return nil, err
96060	}
96061	return ret, nil
96062	// {
96063	//   "description": "Retrieves the list of interconnect available to the specified project.",
96064	//   "httpMethod": "GET",
96065	//   "id": "compute.interconnects.list",
96066	//   "parameterOrder": [
96067	//     "project"
96068	//   ],
96069	//   "parameters": {
96070	//     "filter": {
96071	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
96072	//       "location": "query",
96073	//       "type": "string"
96074	//     },
96075	//     "maxResults": {
96076	//       "default": "500",
96077	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
96078	//       "format": "uint32",
96079	//       "location": "query",
96080	//       "minimum": "0",
96081	//       "type": "integer"
96082	//     },
96083	//     "orderBy": {
96084	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
96085	//       "location": "query",
96086	//       "type": "string"
96087	//     },
96088	//     "pageToken": {
96089	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
96090	//       "location": "query",
96091	//       "type": "string"
96092	//     },
96093	//     "project": {
96094	//       "description": "Project ID for this request.",
96095	//       "location": "path",
96096	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96097	//       "required": true,
96098	//       "type": "string"
96099	//     }
96100	//   },
96101	//   "path": "{project}/global/interconnects",
96102	//   "response": {
96103	//     "$ref": "InterconnectList"
96104	//   },
96105	//   "scopes": [
96106	//     "https://www.googleapis.com/auth/cloud-platform",
96107	//     "https://www.googleapis.com/auth/compute",
96108	//     "https://www.googleapis.com/auth/compute.readonly"
96109	//   ]
96110	// }
96111
96112}
96113
96114// Pages invokes f for each page of results.
96115// A non-nil error returned from f will halt the iteration.
96116// The provided context supersedes any context provided to the Context method.
96117func (c *InterconnectsListCall) Pages(ctx context.Context, f func(*InterconnectList) error) error {
96118	c.ctx_ = ctx
96119	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
96120	for {
96121		x, err := c.Do()
96122		if err != nil {
96123			return err
96124		}
96125		if err := f(x); err != nil {
96126			return err
96127		}
96128		if x.NextPageToken == "" {
96129			return nil
96130		}
96131		c.PageToken(x.NextPageToken)
96132	}
96133}
96134
96135// method id "compute.interconnects.patch":
96136
96137type InterconnectsPatchCall struct {
96138	s             *Service
96139	project       string
96140	interconnect  string
96141	interconnect2 *Interconnect
96142	urlParams_    gensupport.URLParams
96143	ctx_          context.Context
96144	header_       http.Header
96145}
96146
96147// Patch: Updates the specified interconnect with the data included in
96148// the request. This method supports PATCH semantics and uses the JSON
96149// merge patch format and processing rules.
96150func (r *InterconnectsService) Patch(project string, interconnect string, interconnect2 *Interconnect) *InterconnectsPatchCall {
96151	c := &InterconnectsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96152	c.project = project
96153	c.interconnect = interconnect
96154	c.interconnect2 = interconnect2
96155	return c
96156}
96157
96158// RequestId sets the optional parameter "requestId": An optional
96159// request ID to identify requests. Specify a unique request ID so that
96160// if you must retry your request, the server will know to ignore the
96161// request if it has already been completed.
96162//
96163// For example, consider a situation where you make an initial request
96164// and the request times out. If you make the request again with the
96165// same request ID, the server can check if original operation with the
96166// same request ID was received, and if so, will ignore the second
96167// request. This prevents clients from accidentally creating duplicate
96168// commitments.
96169//
96170// The request ID must be a valid UUID with the exception that zero UUID
96171// is not supported (00000000-0000-0000-0000-000000000000).
96172func (c *InterconnectsPatchCall) RequestId(requestId string) *InterconnectsPatchCall {
96173	c.urlParams_.Set("requestId", requestId)
96174	return c
96175}
96176
96177// Fields allows partial responses to be retrieved. See
96178// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96179// for more information.
96180func (c *InterconnectsPatchCall) Fields(s ...googleapi.Field) *InterconnectsPatchCall {
96181	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96182	return c
96183}
96184
96185// Context sets the context to be used in this call's Do method. Any
96186// pending HTTP request will be aborted if the provided context is
96187// canceled.
96188func (c *InterconnectsPatchCall) Context(ctx context.Context) *InterconnectsPatchCall {
96189	c.ctx_ = ctx
96190	return c
96191}
96192
96193// Header returns an http.Header that can be modified by the caller to
96194// add HTTP headers to the request.
96195func (c *InterconnectsPatchCall) Header() http.Header {
96196	if c.header_ == nil {
96197		c.header_ = make(http.Header)
96198	}
96199	return c.header_
96200}
96201
96202func (c *InterconnectsPatchCall) doRequest(alt string) (*http.Response, error) {
96203	reqHeaders := make(http.Header)
96204	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
96205	for k, v := range c.header_ {
96206		reqHeaders[k] = v
96207	}
96208	reqHeaders.Set("User-Agent", c.s.userAgent())
96209	var body io.Reader = nil
96210	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect2)
96211	if err != nil {
96212		return nil, err
96213	}
96214	reqHeaders.Set("Content-Type", "application/json")
96215	c.urlParams_.Set("alt", alt)
96216	c.urlParams_.Set("prettyPrint", "false")
96217	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}")
96218	urls += "?" + c.urlParams_.Encode()
96219	req, err := http.NewRequest("PATCH", urls, body)
96220	if err != nil {
96221		return nil, err
96222	}
96223	req.Header = reqHeaders
96224	googleapi.Expand(req.URL, map[string]string{
96225		"project":      c.project,
96226		"interconnect": c.interconnect,
96227	})
96228	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96229}
96230
96231// Do executes the "compute.interconnects.patch" call.
96232// Exactly one of *Operation or error will be non-nil. Any non-2xx
96233// status code is an error. Response headers are in either
96234// *Operation.ServerResponse.Header or (if a response was returned at
96235// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96236// to check whether the returned error was because
96237// http.StatusNotModified was returned.
96238func (c *InterconnectsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96239	gensupport.SetOptions(c.urlParams_, opts...)
96240	res, err := c.doRequest("json")
96241	if res != nil && res.StatusCode == http.StatusNotModified {
96242		if res.Body != nil {
96243			res.Body.Close()
96244		}
96245		return nil, &googleapi.Error{
96246			Code:   res.StatusCode,
96247			Header: res.Header,
96248		}
96249	}
96250	if err != nil {
96251		return nil, err
96252	}
96253	defer googleapi.CloseBody(res)
96254	if err := googleapi.CheckResponse(res); err != nil {
96255		return nil, err
96256	}
96257	ret := &Operation{
96258		ServerResponse: googleapi.ServerResponse{
96259			Header:         res.Header,
96260			HTTPStatusCode: res.StatusCode,
96261		},
96262	}
96263	target := &ret
96264	if err := gensupport.DecodeResponse(target, res); err != nil {
96265		return nil, err
96266	}
96267	return ret, nil
96268	// {
96269	//   "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.",
96270	//   "httpMethod": "PATCH",
96271	//   "id": "compute.interconnects.patch",
96272	//   "parameterOrder": [
96273	//     "project",
96274	//     "interconnect"
96275	//   ],
96276	//   "parameters": {
96277	//     "interconnect": {
96278	//       "description": "Name of the interconnect to update.",
96279	//       "location": "path",
96280	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96281	//       "required": true,
96282	//       "type": "string"
96283	//     },
96284	//     "project": {
96285	//       "description": "Project ID for this request.",
96286	//       "location": "path",
96287	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96288	//       "required": true,
96289	//       "type": "string"
96290	//     },
96291	//     "requestId": {
96292	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
96293	//       "location": "query",
96294	//       "type": "string"
96295	//     }
96296	//   },
96297	//   "path": "{project}/global/interconnects/{interconnect}",
96298	//   "request": {
96299	//     "$ref": "Interconnect"
96300	//   },
96301	//   "response": {
96302	//     "$ref": "Operation"
96303	//   },
96304	//   "scopes": [
96305	//     "https://www.googleapis.com/auth/cloud-platform",
96306	//     "https://www.googleapis.com/auth/compute"
96307	//   ]
96308	// }
96309
96310}
96311
96312// method id "compute.interconnects.setIamPolicy":
96313
96314type InterconnectsSetIamPolicyCall struct {
96315	s                      *Service
96316	project                string
96317	resource               string
96318	globalsetpolicyrequest *GlobalSetPolicyRequest
96319	urlParams_             gensupport.URLParams
96320	ctx_                   context.Context
96321	header_                http.Header
96322}
96323
96324// SetIamPolicy: Sets the access control policy on the specified
96325// resource. Replaces any existing policy.
96326func (r *InterconnectsService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *InterconnectsSetIamPolicyCall {
96327	c := &InterconnectsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96328	c.project = project
96329	c.resource = resource
96330	c.globalsetpolicyrequest = globalsetpolicyrequest
96331	return c
96332}
96333
96334// Fields allows partial responses to be retrieved. See
96335// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96336// for more information.
96337func (c *InterconnectsSetIamPolicyCall) Fields(s ...googleapi.Field) *InterconnectsSetIamPolicyCall {
96338	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96339	return c
96340}
96341
96342// Context sets the context to be used in this call's Do method. Any
96343// pending HTTP request will be aborted if the provided context is
96344// canceled.
96345func (c *InterconnectsSetIamPolicyCall) Context(ctx context.Context) *InterconnectsSetIamPolicyCall {
96346	c.ctx_ = ctx
96347	return c
96348}
96349
96350// Header returns an http.Header that can be modified by the caller to
96351// add HTTP headers to the request.
96352func (c *InterconnectsSetIamPolicyCall) Header() http.Header {
96353	if c.header_ == nil {
96354		c.header_ = make(http.Header)
96355	}
96356	return c.header_
96357}
96358
96359func (c *InterconnectsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
96360	reqHeaders := make(http.Header)
96361	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
96362	for k, v := range c.header_ {
96363		reqHeaders[k] = v
96364	}
96365	reqHeaders.Set("User-Agent", c.s.userAgent())
96366	var body io.Reader = nil
96367	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
96368	if err != nil {
96369		return nil, err
96370	}
96371	reqHeaders.Set("Content-Type", "application/json")
96372	c.urlParams_.Set("alt", alt)
96373	c.urlParams_.Set("prettyPrint", "false")
96374	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{resource}/setIamPolicy")
96375	urls += "?" + c.urlParams_.Encode()
96376	req, err := http.NewRequest("POST", urls, body)
96377	if err != nil {
96378		return nil, err
96379	}
96380	req.Header = reqHeaders
96381	googleapi.Expand(req.URL, map[string]string{
96382		"project":  c.project,
96383		"resource": c.resource,
96384	})
96385	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96386}
96387
96388// Do executes the "compute.interconnects.setIamPolicy" call.
96389// Exactly one of *Policy or error will be non-nil. Any non-2xx status
96390// code is an error. Response headers are in either
96391// *Policy.ServerResponse.Header or (if a response was returned at all)
96392// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
96393// check whether the returned error was because http.StatusNotModified
96394// was returned.
96395func (c *InterconnectsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
96396	gensupport.SetOptions(c.urlParams_, opts...)
96397	res, err := c.doRequest("json")
96398	if res != nil && res.StatusCode == http.StatusNotModified {
96399		if res.Body != nil {
96400			res.Body.Close()
96401		}
96402		return nil, &googleapi.Error{
96403			Code:   res.StatusCode,
96404			Header: res.Header,
96405		}
96406	}
96407	if err != nil {
96408		return nil, err
96409	}
96410	defer googleapi.CloseBody(res)
96411	if err := googleapi.CheckResponse(res); err != nil {
96412		return nil, err
96413	}
96414	ret := &Policy{
96415		ServerResponse: googleapi.ServerResponse{
96416			Header:         res.Header,
96417			HTTPStatusCode: res.StatusCode,
96418		},
96419	}
96420	target := &ret
96421	if err := gensupport.DecodeResponse(target, res); err != nil {
96422		return nil, err
96423	}
96424	return ret, nil
96425	// {
96426	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
96427	//   "httpMethod": "POST",
96428	//   "id": "compute.interconnects.setIamPolicy",
96429	//   "parameterOrder": [
96430	//     "project",
96431	//     "resource"
96432	//   ],
96433	//   "parameters": {
96434	//     "project": {
96435	//       "description": "Project ID for this request.",
96436	//       "location": "path",
96437	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96438	//       "required": true,
96439	//       "type": "string"
96440	//     },
96441	//     "resource": {
96442	//       "description": "Name or id of the resource for this request.",
96443	//       "location": "path",
96444	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96445	//       "required": true,
96446	//       "type": "string"
96447	//     }
96448	//   },
96449	//   "path": "{project}/global/interconnects/{resource}/setIamPolicy",
96450	//   "request": {
96451	//     "$ref": "GlobalSetPolicyRequest"
96452	//   },
96453	//   "response": {
96454	//     "$ref": "Policy"
96455	//   },
96456	//   "scopes": [
96457	//     "https://www.googleapis.com/auth/cloud-platform",
96458	//     "https://www.googleapis.com/auth/compute"
96459	//   ]
96460	// }
96461
96462}
96463
96464// method id "compute.interconnects.setLabels":
96465
96466type InterconnectsSetLabelsCall struct {
96467	s                      *Service
96468	project                string
96469	resource               string
96470	globalsetlabelsrequest *GlobalSetLabelsRequest
96471	urlParams_             gensupport.URLParams
96472	ctx_                   context.Context
96473	header_                http.Header
96474}
96475
96476// SetLabels: Sets the labels on an Interconnect. To learn more about
96477// labels, read the Labeling Resources documentation.
96478func (r *InterconnectsService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *InterconnectsSetLabelsCall {
96479	c := &InterconnectsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96480	c.project = project
96481	c.resource = resource
96482	c.globalsetlabelsrequest = globalsetlabelsrequest
96483	return c
96484}
96485
96486// Fields allows partial responses to be retrieved. See
96487// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96488// for more information.
96489func (c *InterconnectsSetLabelsCall) Fields(s ...googleapi.Field) *InterconnectsSetLabelsCall {
96490	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96491	return c
96492}
96493
96494// Context sets the context to be used in this call's Do method. Any
96495// pending HTTP request will be aborted if the provided context is
96496// canceled.
96497func (c *InterconnectsSetLabelsCall) Context(ctx context.Context) *InterconnectsSetLabelsCall {
96498	c.ctx_ = ctx
96499	return c
96500}
96501
96502// Header returns an http.Header that can be modified by the caller to
96503// add HTTP headers to the request.
96504func (c *InterconnectsSetLabelsCall) Header() http.Header {
96505	if c.header_ == nil {
96506		c.header_ = make(http.Header)
96507	}
96508	return c.header_
96509}
96510
96511func (c *InterconnectsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
96512	reqHeaders := make(http.Header)
96513	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
96514	for k, v := range c.header_ {
96515		reqHeaders[k] = v
96516	}
96517	reqHeaders.Set("User-Agent", c.s.userAgent())
96518	var body io.Reader = nil
96519	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
96520	if err != nil {
96521		return nil, err
96522	}
96523	reqHeaders.Set("Content-Type", "application/json")
96524	c.urlParams_.Set("alt", alt)
96525	c.urlParams_.Set("prettyPrint", "false")
96526	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{resource}/setLabels")
96527	urls += "?" + c.urlParams_.Encode()
96528	req, err := http.NewRequest("POST", urls, body)
96529	if err != nil {
96530		return nil, err
96531	}
96532	req.Header = reqHeaders
96533	googleapi.Expand(req.URL, map[string]string{
96534		"project":  c.project,
96535		"resource": c.resource,
96536	})
96537	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96538}
96539
96540// Do executes the "compute.interconnects.setLabels" call.
96541// Exactly one of *Operation or error will be non-nil. Any non-2xx
96542// status code is an error. Response headers are in either
96543// *Operation.ServerResponse.Header or (if a response was returned at
96544// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96545// to check whether the returned error was because
96546// http.StatusNotModified was returned.
96547func (c *InterconnectsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96548	gensupport.SetOptions(c.urlParams_, opts...)
96549	res, err := c.doRequest("json")
96550	if res != nil && res.StatusCode == http.StatusNotModified {
96551		if res.Body != nil {
96552			res.Body.Close()
96553		}
96554		return nil, &googleapi.Error{
96555			Code:   res.StatusCode,
96556			Header: res.Header,
96557		}
96558	}
96559	if err != nil {
96560		return nil, err
96561	}
96562	defer googleapi.CloseBody(res)
96563	if err := googleapi.CheckResponse(res); err != nil {
96564		return nil, err
96565	}
96566	ret := &Operation{
96567		ServerResponse: googleapi.ServerResponse{
96568			Header:         res.Header,
96569			HTTPStatusCode: res.StatusCode,
96570		},
96571	}
96572	target := &ret
96573	if err := gensupport.DecodeResponse(target, res); err != nil {
96574		return nil, err
96575	}
96576	return ret, nil
96577	// {
96578	//   "description": "Sets the labels on an Interconnect. To learn more about labels, read the Labeling Resources documentation.",
96579	//   "httpMethod": "POST",
96580	//   "id": "compute.interconnects.setLabels",
96581	//   "parameterOrder": [
96582	//     "project",
96583	//     "resource"
96584	//   ],
96585	//   "parameters": {
96586	//     "project": {
96587	//       "description": "Project ID for this request.",
96588	//       "location": "path",
96589	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96590	//       "required": true,
96591	//       "type": "string"
96592	//     },
96593	//     "resource": {
96594	//       "description": "Name or id of the resource for this request.",
96595	//       "location": "path",
96596	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96597	//       "required": true,
96598	//       "type": "string"
96599	//     }
96600	//   },
96601	//   "path": "{project}/global/interconnects/{resource}/setLabels",
96602	//   "request": {
96603	//     "$ref": "GlobalSetLabelsRequest"
96604	//   },
96605	//   "response": {
96606	//     "$ref": "Operation"
96607	//   },
96608	//   "scopes": [
96609	//     "https://www.googleapis.com/auth/cloud-platform",
96610	//     "https://www.googleapis.com/auth/compute"
96611	//   ]
96612	// }
96613
96614}
96615
96616// method id "compute.interconnects.testIamPermissions":
96617
96618type InterconnectsTestIamPermissionsCall struct {
96619	s                      *Service
96620	project                string
96621	resource               string
96622	testpermissionsrequest *TestPermissionsRequest
96623	urlParams_             gensupport.URLParams
96624	ctx_                   context.Context
96625	header_                http.Header
96626}
96627
96628// TestIamPermissions: Returns permissions that a caller has on the
96629// specified resource.
96630func (r *InterconnectsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *InterconnectsTestIamPermissionsCall {
96631	c := &InterconnectsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96632	c.project = project
96633	c.resource = resource
96634	c.testpermissionsrequest = testpermissionsrequest
96635	return c
96636}
96637
96638// Fields allows partial responses to be retrieved. See
96639// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96640// for more information.
96641func (c *InterconnectsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InterconnectsTestIamPermissionsCall {
96642	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96643	return c
96644}
96645
96646// Context sets the context to be used in this call's Do method. Any
96647// pending HTTP request will be aborted if the provided context is
96648// canceled.
96649func (c *InterconnectsTestIamPermissionsCall) Context(ctx context.Context) *InterconnectsTestIamPermissionsCall {
96650	c.ctx_ = ctx
96651	return c
96652}
96653
96654// Header returns an http.Header that can be modified by the caller to
96655// add HTTP headers to the request.
96656func (c *InterconnectsTestIamPermissionsCall) Header() http.Header {
96657	if c.header_ == nil {
96658		c.header_ = make(http.Header)
96659	}
96660	return c.header_
96661}
96662
96663func (c *InterconnectsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
96664	reqHeaders := make(http.Header)
96665	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
96666	for k, v := range c.header_ {
96667		reqHeaders[k] = v
96668	}
96669	reqHeaders.Set("User-Agent", c.s.userAgent())
96670	var body io.Reader = nil
96671	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
96672	if err != nil {
96673		return nil, err
96674	}
96675	reqHeaders.Set("Content-Type", "application/json")
96676	c.urlParams_.Set("alt", alt)
96677	c.urlParams_.Set("prettyPrint", "false")
96678	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{resource}/testIamPermissions")
96679	urls += "?" + c.urlParams_.Encode()
96680	req, err := http.NewRequest("POST", urls, body)
96681	if err != nil {
96682		return nil, err
96683	}
96684	req.Header = reqHeaders
96685	googleapi.Expand(req.URL, map[string]string{
96686		"project":  c.project,
96687		"resource": c.resource,
96688	})
96689	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96690}
96691
96692// Do executes the "compute.interconnects.testIamPermissions" call.
96693// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
96694// non-2xx status code is an error. Response headers are in either
96695// *TestPermissionsResponse.ServerResponse.Header or (if a response was
96696// returned at all) in error.(*googleapi.Error).Header. Use
96697// googleapi.IsNotModified to check whether the returned error was
96698// because http.StatusNotModified was returned.
96699func (c *InterconnectsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
96700	gensupport.SetOptions(c.urlParams_, opts...)
96701	res, err := c.doRequest("json")
96702	if res != nil && res.StatusCode == http.StatusNotModified {
96703		if res.Body != nil {
96704			res.Body.Close()
96705		}
96706		return nil, &googleapi.Error{
96707			Code:   res.StatusCode,
96708			Header: res.Header,
96709		}
96710	}
96711	if err != nil {
96712		return nil, err
96713	}
96714	defer googleapi.CloseBody(res)
96715	if err := googleapi.CheckResponse(res); err != nil {
96716		return nil, err
96717	}
96718	ret := &TestPermissionsResponse{
96719		ServerResponse: googleapi.ServerResponse{
96720			Header:         res.Header,
96721			HTTPStatusCode: res.StatusCode,
96722		},
96723	}
96724	target := &ret
96725	if err := gensupport.DecodeResponse(target, res); err != nil {
96726		return nil, err
96727	}
96728	return ret, nil
96729	// {
96730	//   "description": "Returns permissions that a caller has on the specified resource.",
96731	//   "httpMethod": "POST",
96732	//   "id": "compute.interconnects.testIamPermissions",
96733	//   "parameterOrder": [
96734	//     "project",
96735	//     "resource"
96736	//   ],
96737	//   "parameters": {
96738	//     "project": {
96739	//       "description": "Project ID for this request.",
96740	//       "location": "path",
96741	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96742	//       "required": true,
96743	//       "type": "string"
96744	//     },
96745	//     "resource": {
96746	//       "description": "Name or id of the resource for this request.",
96747	//       "location": "path",
96748	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96749	//       "required": true,
96750	//       "type": "string"
96751	//     }
96752	//   },
96753	//   "path": "{project}/global/interconnects/{resource}/testIamPermissions",
96754	//   "request": {
96755	//     "$ref": "TestPermissionsRequest"
96756	//   },
96757	//   "response": {
96758	//     "$ref": "TestPermissionsResponse"
96759	//   },
96760	//   "scopes": [
96761	//     "https://www.googleapis.com/auth/cloud-platform",
96762	//     "https://www.googleapis.com/auth/compute",
96763	//     "https://www.googleapis.com/auth/compute.readonly"
96764	//   ]
96765	// }
96766
96767}
96768
96769// method id "compute.licenseCodes.get":
96770
96771type LicenseCodesGetCall struct {
96772	s            *Service
96773	project      string
96774	licenseCode  string
96775	urlParams_   gensupport.URLParams
96776	ifNoneMatch_ string
96777	ctx_         context.Context
96778	header_      http.Header
96779}
96780
96781// Get: Return a specified license code. License codes are mirrored
96782// across all projects that have permissions to read the License Code.
96783func (r *LicenseCodesService) Get(project string, licenseCode string) *LicenseCodesGetCall {
96784	c := &LicenseCodesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96785	c.project = project
96786	c.licenseCode = licenseCode
96787	return c
96788}
96789
96790// Fields allows partial responses to be retrieved. See
96791// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96792// for more information.
96793func (c *LicenseCodesGetCall) Fields(s ...googleapi.Field) *LicenseCodesGetCall {
96794	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96795	return c
96796}
96797
96798// IfNoneMatch sets the optional parameter which makes the operation
96799// fail if the object's ETag matches the given value. This is useful for
96800// getting updates only after the object has changed since the last
96801// request. Use googleapi.IsNotModified to check whether the response
96802// error from Do is the result of In-None-Match.
96803func (c *LicenseCodesGetCall) IfNoneMatch(entityTag string) *LicenseCodesGetCall {
96804	c.ifNoneMatch_ = entityTag
96805	return c
96806}
96807
96808// Context sets the context to be used in this call's Do method. Any
96809// pending HTTP request will be aborted if the provided context is
96810// canceled.
96811func (c *LicenseCodesGetCall) Context(ctx context.Context) *LicenseCodesGetCall {
96812	c.ctx_ = ctx
96813	return c
96814}
96815
96816// Header returns an http.Header that can be modified by the caller to
96817// add HTTP headers to the request.
96818func (c *LicenseCodesGetCall) Header() http.Header {
96819	if c.header_ == nil {
96820		c.header_ = make(http.Header)
96821	}
96822	return c.header_
96823}
96824
96825func (c *LicenseCodesGetCall) doRequest(alt string) (*http.Response, error) {
96826	reqHeaders := make(http.Header)
96827	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
96828	for k, v := range c.header_ {
96829		reqHeaders[k] = v
96830	}
96831	reqHeaders.Set("User-Agent", c.s.userAgent())
96832	if c.ifNoneMatch_ != "" {
96833		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
96834	}
96835	var body io.Reader = nil
96836	c.urlParams_.Set("alt", alt)
96837	c.urlParams_.Set("prettyPrint", "false")
96838	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenseCodes/{licenseCode}")
96839	urls += "?" + c.urlParams_.Encode()
96840	req, err := http.NewRequest("GET", urls, body)
96841	if err != nil {
96842		return nil, err
96843	}
96844	req.Header = reqHeaders
96845	googleapi.Expand(req.URL, map[string]string{
96846		"project":     c.project,
96847		"licenseCode": c.licenseCode,
96848	})
96849	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96850}
96851
96852// Do executes the "compute.licenseCodes.get" call.
96853// Exactly one of *LicenseCode or error will be non-nil. Any non-2xx
96854// status code is an error. Response headers are in either
96855// *LicenseCode.ServerResponse.Header or (if a response was returned at
96856// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96857// to check whether the returned error was because
96858// http.StatusNotModified was returned.
96859func (c *LicenseCodesGetCall) Do(opts ...googleapi.CallOption) (*LicenseCode, error) {
96860	gensupport.SetOptions(c.urlParams_, opts...)
96861	res, err := c.doRequest("json")
96862	if res != nil && res.StatusCode == http.StatusNotModified {
96863		if res.Body != nil {
96864			res.Body.Close()
96865		}
96866		return nil, &googleapi.Error{
96867			Code:   res.StatusCode,
96868			Header: res.Header,
96869		}
96870	}
96871	if err != nil {
96872		return nil, err
96873	}
96874	defer googleapi.CloseBody(res)
96875	if err := googleapi.CheckResponse(res); err != nil {
96876		return nil, err
96877	}
96878	ret := &LicenseCode{
96879		ServerResponse: googleapi.ServerResponse{
96880			Header:         res.Header,
96881			HTTPStatusCode: res.StatusCode,
96882		},
96883	}
96884	target := &ret
96885	if err := gensupport.DecodeResponse(target, res); err != nil {
96886		return nil, err
96887	}
96888	return ret, nil
96889	// {
96890	//   "description": "Return a specified license code. License codes are mirrored across all projects that have permissions to read the License Code.",
96891	//   "httpMethod": "GET",
96892	//   "id": "compute.licenseCodes.get",
96893	//   "parameterOrder": [
96894	//     "project",
96895	//     "licenseCode"
96896	//   ],
96897	//   "parameters": {
96898	//     "licenseCode": {
96899	//       "description": "Number corresponding to the License code resource to return.",
96900	//       "location": "path",
96901	//       "pattern": "[0-9]{0,61}?",
96902	//       "required": true,
96903	//       "type": "string"
96904	//     },
96905	//     "project": {
96906	//       "description": "Project ID for this request.",
96907	//       "location": "path",
96908	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96909	//       "required": true,
96910	//       "type": "string"
96911	//     }
96912	//   },
96913	//   "path": "{project}/global/licenseCodes/{licenseCode}",
96914	//   "response": {
96915	//     "$ref": "LicenseCode"
96916	//   },
96917	//   "scopes": [
96918	//     "https://www.googleapis.com/auth/cloud-platform",
96919	//     "https://www.googleapis.com/auth/compute",
96920	//     "https://www.googleapis.com/auth/compute.readonly"
96921	//   ]
96922	// }
96923
96924}
96925
96926// method id "compute.licenseCodes.getIamPolicy":
96927
96928type LicenseCodesGetIamPolicyCall struct {
96929	s            *Service
96930	project      string
96931	resource     string
96932	urlParams_   gensupport.URLParams
96933	ifNoneMatch_ string
96934	ctx_         context.Context
96935	header_      http.Header
96936}
96937
96938// GetIamPolicy: Gets the access control policy for a resource. May be
96939// empty if no such policy or resource exists.
96940func (r *LicenseCodesService) GetIamPolicy(project string, resource string) *LicenseCodesGetIamPolicyCall {
96941	c := &LicenseCodesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96942	c.project = project
96943	c.resource = resource
96944	return c
96945}
96946
96947// OptionsRequestedPolicyVersion sets the optional parameter
96948// "optionsRequestedPolicyVersion": Requested IAM Policy version.
96949func (c *LicenseCodesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *LicenseCodesGetIamPolicyCall {
96950	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
96951	return c
96952}
96953
96954// Fields allows partial responses to be retrieved. See
96955// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96956// for more information.
96957func (c *LicenseCodesGetIamPolicyCall) Fields(s ...googleapi.Field) *LicenseCodesGetIamPolicyCall {
96958	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96959	return c
96960}
96961
96962// IfNoneMatch sets the optional parameter which makes the operation
96963// fail if the object's ETag matches the given value. This is useful for
96964// getting updates only after the object has changed since the last
96965// request. Use googleapi.IsNotModified to check whether the response
96966// error from Do is the result of In-None-Match.
96967func (c *LicenseCodesGetIamPolicyCall) IfNoneMatch(entityTag string) *LicenseCodesGetIamPolicyCall {
96968	c.ifNoneMatch_ = entityTag
96969	return c
96970}
96971
96972// Context sets the context to be used in this call's Do method. Any
96973// pending HTTP request will be aborted if the provided context is
96974// canceled.
96975func (c *LicenseCodesGetIamPolicyCall) Context(ctx context.Context) *LicenseCodesGetIamPolicyCall {
96976	c.ctx_ = ctx
96977	return c
96978}
96979
96980// Header returns an http.Header that can be modified by the caller to
96981// add HTTP headers to the request.
96982func (c *LicenseCodesGetIamPolicyCall) Header() http.Header {
96983	if c.header_ == nil {
96984		c.header_ = make(http.Header)
96985	}
96986	return c.header_
96987}
96988
96989func (c *LicenseCodesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
96990	reqHeaders := make(http.Header)
96991	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
96992	for k, v := range c.header_ {
96993		reqHeaders[k] = v
96994	}
96995	reqHeaders.Set("User-Agent", c.s.userAgent())
96996	if c.ifNoneMatch_ != "" {
96997		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
96998	}
96999	var body io.Reader = nil
97000	c.urlParams_.Set("alt", alt)
97001	c.urlParams_.Set("prettyPrint", "false")
97002	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenseCodes/{resource}/getIamPolicy")
97003	urls += "?" + c.urlParams_.Encode()
97004	req, err := http.NewRequest("GET", urls, body)
97005	if err != nil {
97006		return nil, err
97007	}
97008	req.Header = reqHeaders
97009	googleapi.Expand(req.URL, map[string]string{
97010		"project":  c.project,
97011		"resource": c.resource,
97012	})
97013	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97014}
97015
97016// Do executes the "compute.licenseCodes.getIamPolicy" call.
97017// Exactly one of *Policy or error will be non-nil. Any non-2xx status
97018// code is an error. Response headers are in either
97019// *Policy.ServerResponse.Header or (if a response was returned at all)
97020// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
97021// check whether the returned error was because http.StatusNotModified
97022// was returned.
97023func (c *LicenseCodesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
97024	gensupport.SetOptions(c.urlParams_, opts...)
97025	res, err := c.doRequest("json")
97026	if res != nil && res.StatusCode == http.StatusNotModified {
97027		if res.Body != nil {
97028			res.Body.Close()
97029		}
97030		return nil, &googleapi.Error{
97031			Code:   res.StatusCode,
97032			Header: res.Header,
97033		}
97034	}
97035	if err != nil {
97036		return nil, err
97037	}
97038	defer googleapi.CloseBody(res)
97039	if err := googleapi.CheckResponse(res); err != nil {
97040		return nil, err
97041	}
97042	ret := &Policy{
97043		ServerResponse: googleapi.ServerResponse{
97044			Header:         res.Header,
97045			HTTPStatusCode: res.StatusCode,
97046		},
97047	}
97048	target := &ret
97049	if err := gensupport.DecodeResponse(target, res); err != nil {
97050		return nil, err
97051	}
97052	return ret, nil
97053	// {
97054	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
97055	//   "httpMethod": "GET",
97056	//   "id": "compute.licenseCodes.getIamPolicy",
97057	//   "parameterOrder": [
97058	//     "project",
97059	//     "resource"
97060	//   ],
97061	//   "parameters": {
97062	//     "optionsRequestedPolicyVersion": {
97063	//       "description": "Requested IAM Policy version.",
97064	//       "format": "int32",
97065	//       "location": "query",
97066	//       "type": "integer"
97067	//     },
97068	//     "project": {
97069	//       "description": "Project ID for this request.",
97070	//       "location": "path",
97071	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97072	//       "required": true,
97073	//       "type": "string"
97074	//     },
97075	//     "resource": {
97076	//       "description": "Name or id of the resource for this request.",
97077	//       "location": "path",
97078	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97079	//       "required": true,
97080	//       "type": "string"
97081	//     }
97082	//   },
97083	//   "path": "{project}/global/licenseCodes/{resource}/getIamPolicy",
97084	//   "response": {
97085	//     "$ref": "Policy"
97086	//   },
97087	//   "scopes": [
97088	//     "https://www.googleapis.com/auth/cloud-platform",
97089	//     "https://www.googleapis.com/auth/compute",
97090	//     "https://www.googleapis.com/auth/compute.readonly"
97091	//   ]
97092	// }
97093
97094}
97095
97096// method id "compute.licenseCodes.setIamPolicy":
97097
97098type LicenseCodesSetIamPolicyCall struct {
97099	s                      *Service
97100	project                string
97101	resource               string
97102	globalsetpolicyrequest *GlobalSetPolicyRequest
97103	urlParams_             gensupport.URLParams
97104	ctx_                   context.Context
97105	header_                http.Header
97106}
97107
97108// SetIamPolicy: Sets the access control policy on the specified
97109// resource. Replaces any existing policy.
97110func (r *LicenseCodesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *LicenseCodesSetIamPolicyCall {
97111	c := &LicenseCodesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97112	c.project = project
97113	c.resource = resource
97114	c.globalsetpolicyrequest = globalsetpolicyrequest
97115	return c
97116}
97117
97118// Fields allows partial responses to be retrieved. See
97119// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97120// for more information.
97121func (c *LicenseCodesSetIamPolicyCall) Fields(s ...googleapi.Field) *LicenseCodesSetIamPolicyCall {
97122	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97123	return c
97124}
97125
97126// Context sets the context to be used in this call's Do method. Any
97127// pending HTTP request will be aborted if the provided context is
97128// canceled.
97129func (c *LicenseCodesSetIamPolicyCall) Context(ctx context.Context) *LicenseCodesSetIamPolicyCall {
97130	c.ctx_ = ctx
97131	return c
97132}
97133
97134// Header returns an http.Header that can be modified by the caller to
97135// add HTTP headers to the request.
97136func (c *LicenseCodesSetIamPolicyCall) Header() http.Header {
97137	if c.header_ == nil {
97138		c.header_ = make(http.Header)
97139	}
97140	return c.header_
97141}
97142
97143func (c *LicenseCodesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
97144	reqHeaders := make(http.Header)
97145	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
97146	for k, v := range c.header_ {
97147		reqHeaders[k] = v
97148	}
97149	reqHeaders.Set("User-Agent", c.s.userAgent())
97150	var body io.Reader = nil
97151	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
97152	if err != nil {
97153		return nil, err
97154	}
97155	reqHeaders.Set("Content-Type", "application/json")
97156	c.urlParams_.Set("alt", alt)
97157	c.urlParams_.Set("prettyPrint", "false")
97158	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenseCodes/{resource}/setIamPolicy")
97159	urls += "?" + c.urlParams_.Encode()
97160	req, err := http.NewRequest("POST", urls, body)
97161	if err != nil {
97162		return nil, err
97163	}
97164	req.Header = reqHeaders
97165	googleapi.Expand(req.URL, map[string]string{
97166		"project":  c.project,
97167		"resource": c.resource,
97168	})
97169	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97170}
97171
97172// Do executes the "compute.licenseCodes.setIamPolicy" call.
97173// Exactly one of *Policy or error will be non-nil. Any non-2xx status
97174// code is an error. Response headers are in either
97175// *Policy.ServerResponse.Header or (if a response was returned at all)
97176// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
97177// check whether the returned error was because http.StatusNotModified
97178// was returned.
97179func (c *LicenseCodesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
97180	gensupport.SetOptions(c.urlParams_, opts...)
97181	res, err := c.doRequest("json")
97182	if res != nil && res.StatusCode == http.StatusNotModified {
97183		if res.Body != nil {
97184			res.Body.Close()
97185		}
97186		return nil, &googleapi.Error{
97187			Code:   res.StatusCode,
97188			Header: res.Header,
97189		}
97190	}
97191	if err != nil {
97192		return nil, err
97193	}
97194	defer googleapi.CloseBody(res)
97195	if err := googleapi.CheckResponse(res); err != nil {
97196		return nil, err
97197	}
97198	ret := &Policy{
97199		ServerResponse: googleapi.ServerResponse{
97200			Header:         res.Header,
97201			HTTPStatusCode: res.StatusCode,
97202		},
97203	}
97204	target := &ret
97205	if err := gensupport.DecodeResponse(target, res); err != nil {
97206		return nil, err
97207	}
97208	return ret, nil
97209	// {
97210	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
97211	//   "httpMethod": "POST",
97212	//   "id": "compute.licenseCodes.setIamPolicy",
97213	//   "parameterOrder": [
97214	//     "project",
97215	//     "resource"
97216	//   ],
97217	//   "parameters": {
97218	//     "project": {
97219	//       "description": "Project ID for this request.",
97220	//       "location": "path",
97221	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97222	//       "required": true,
97223	//       "type": "string"
97224	//     },
97225	//     "resource": {
97226	//       "description": "Name or id of the resource for this request.",
97227	//       "location": "path",
97228	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97229	//       "required": true,
97230	//       "type": "string"
97231	//     }
97232	//   },
97233	//   "path": "{project}/global/licenseCodes/{resource}/setIamPolicy",
97234	//   "request": {
97235	//     "$ref": "GlobalSetPolicyRequest"
97236	//   },
97237	//   "response": {
97238	//     "$ref": "Policy"
97239	//   },
97240	//   "scopes": [
97241	//     "https://www.googleapis.com/auth/cloud-platform",
97242	//     "https://www.googleapis.com/auth/compute"
97243	//   ]
97244	// }
97245
97246}
97247
97248// method id "compute.licenseCodes.testIamPermissions":
97249
97250type LicenseCodesTestIamPermissionsCall struct {
97251	s                      *Service
97252	project                string
97253	resource               string
97254	testpermissionsrequest *TestPermissionsRequest
97255	urlParams_             gensupport.URLParams
97256	ctx_                   context.Context
97257	header_                http.Header
97258}
97259
97260// TestIamPermissions: Returns permissions that a caller has on the
97261// specified resource.
97262func (r *LicenseCodesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *LicenseCodesTestIamPermissionsCall {
97263	c := &LicenseCodesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97264	c.project = project
97265	c.resource = resource
97266	c.testpermissionsrequest = testpermissionsrequest
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 *LicenseCodesTestIamPermissionsCall) Fields(s ...googleapi.Field) *LicenseCodesTestIamPermissionsCall {
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 *LicenseCodesTestIamPermissionsCall) Context(ctx context.Context) *LicenseCodesTestIamPermissionsCall {
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 *LicenseCodesTestIamPermissionsCall) Header() http.Header {
97289	if c.header_ == nil {
97290		c.header_ = make(http.Header)
97291	}
97292	return c.header_
97293}
97294
97295func (c *LicenseCodesTestIamPermissionsCall) 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.testpermissionsrequest)
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}/global/licenseCodes/{resource}/testIamPermissions")
97311	urls += "?" + c.urlParams_.Encode()
97312	req, err := http.NewRequest("POST", 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		"resource": c.resource,
97320	})
97321	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97322}
97323
97324// Do executes the "compute.licenseCodes.testIamPermissions" call.
97325// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
97326// non-2xx status code is an error. Response headers are in either
97327// *TestPermissionsResponse.ServerResponse.Header or (if a response was
97328// returned at all) in error.(*googleapi.Error).Header. Use
97329// googleapi.IsNotModified to check whether the returned error was
97330// because http.StatusNotModified was returned.
97331func (c *LicenseCodesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
97332	gensupport.SetOptions(c.urlParams_, opts...)
97333	res, err := c.doRequest("json")
97334	if res != nil && res.StatusCode == http.StatusNotModified {
97335		if res.Body != nil {
97336			res.Body.Close()
97337		}
97338		return nil, &googleapi.Error{
97339			Code:   res.StatusCode,
97340			Header: res.Header,
97341		}
97342	}
97343	if err != nil {
97344		return nil, err
97345	}
97346	defer googleapi.CloseBody(res)
97347	if err := googleapi.CheckResponse(res); err != nil {
97348		return nil, err
97349	}
97350	ret := &TestPermissionsResponse{
97351		ServerResponse: googleapi.ServerResponse{
97352			Header:         res.Header,
97353			HTTPStatusCode: res.StatusCode,
97354		},
97355	}
97356	target := &ret
97357	if err := gensupport.DecodeResponse(target, res); err != nil {
97358		return nil, err
97359	}
97360	return ret, nil
97361	// {
97362	//   "description": "Returns permissions that a caller has on the specified resource.",
97363	//   "httpMethod": "POST",
97364	//   "id": "compute.licenseCodes.testIamPermissions",
97365	//   "parameterOrder": [
97366	//     "project",
97367	//     "resource"
97368	//   ],
97369	//   "parameters": {
97370	//     "project": {
97371	//       "description": "Project ID for this request.",
97372	//       "location": "path",
97373	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97374	//       "required": true,
97375	//       "type": "string"
97376	//     },
97377	//     "resource": {
97378	//       "description": "Name or id of the resource for this request.",
97379	//       "location": "path",
97380	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97381	//       "required": true,
97382	//       "type": "string"
97383	//     }
97384	//   },
97385	//   "path": "{project}/global/licenseCodes/{resource}/testIamPermissions",
97386	//   "request": {
97387	//     "$ref": "TestPermissionsRequest"
97388	//   },
97389	//   "response": {
97390	//     "$ref": "TestPermissionsResponse"
97391	//   },
97392	//   "scopes": [
97393	//     "https://www.googleapis.com/auth/cloud-platform",
97394	//     "https://www.googleapis.com/auth/compute",
97395	//     "https://www.googleapis.com/auth/compute.readonly"
97396	//   ]
97397	// }
97398
97399}
97400
97401// method id "compute.licenses.delete":
97402
97403type LicensesDeleteCall struct {
97404	s          *Service
97405	project    string
97406	license    string
97407	urlParams_ gensupport.URLParams
97408	ctx_       context.Context
97409	header_    http.Header
97410}
97411
97412// Delete: Deletes the specified license.
97413func (r *LicensesService) Delete(project string, license string) *LicensesDeleteCall {
97414	c := &LicensesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97415	c.project = project
97416	c.license = license
97417	return c
97418}
97419
97420// RequestId sets the optional parameter "requestId": An optional
97421// request ID to identify requests. Specify a unique request ID so that
97422// if you must retry your request, the server will know to ignore the
97423// request if it has already been completed.
97424//
97425// For example, consider a situation where you make an initial request
97426// and the request times out. If you make the request again with the
97427// same request ID, the server can check if original operation with the
97428// same request ID was received, and if so, will ignore the second
97429// request. This prevents clients from accidentally creating duplicate
97430// commitments.
97431//
97432// The request ID must be a valid UUID with the exception that zero UUID
97433// is not supported (00000000-0000-0000-0000-000000000000).
97434func (c *LicensesDeleteCall) RequestId(requestId string) *LicensesDeleteCall {
97435	c.urlParams_.Set("requestId", requestId)
97436	return c
97437}
97438
97439// Fields allows partial responses to be retrieved. See
97440// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97441// for more information.
97442func (c *LicensesDeleteCall) Fields(s ...googleapi.Field) *LicensesDeleteCall {
97443	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97444	return c
97445}
97446
97447// Context sets the context to be used in this call's Do method. Any
97448// pending HTTP request will be aborted if the provided context is
97449// canceled.
97450func (c *LicensesDeleteCall) Context(ctx context.Context) *LicensesDeleteCall {
97451	c.ctx_ = ctx
97452	return c
97453}
97454
97455// Header returns an http.Header that can be modified by the caller to
97456// add HTTP headers to the request.
97457func (c *LicensesDeleteCall) Header() http.Header {
97458	if c.header_ == nil {
97459		c.header_ = make(http.Header)
97460	}
97461	return c.header_
97462}
97463
97464func (c *LicensesDeleteCall) doRequest(alt string) (*http.Response, error) {
97465	reqHeaders := make(http.Header)
97466	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
97467	for k, v := range c.header_ {
97468		reqHeaders[k] = v
97469	}
97470	reqHeaders.Set("User-Agent", c.s.userAgent())
97471	var body io.Reader = nil
97472	c.urlParams_.Set("alt", alt)
97473	c.urlParams_.Set("prettyPrint", "false")
97474	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{license}")
97475	urls += "?" + c.urlParams_.Encode()
97476	req, err := http.NewRequest("DELETE", urls, body)
97477	if err != nil {
97478		return nil, err
97479	}
97480	req.Header = reqHeaders
97481	googleapi.Expand(req.URL, map[string]string{
97482		"project": c.project,
97483		"license": c.license,
97484	})
97485	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97486}
97487
97488// Do executes the "compute.licenses.delete" call.
97489// Exactly one of *Operation or error will be non-nil. Any non-2xx
97490// status code is an error. Response headers are in either
97491// *Operation.ServerResponse.Header or (if a response was returned at
97492// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97493// to check whether the returned error was because
97494// http.StatusNotModified was returned.
97495func (c *LicensesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97496	gensupport.SetOptions(c.urlParams_, opts...)
97497	res, err := c.doRequest("json")
97498	if res != nil && res.StatusCode == http.StatusNotModified {
97499		if res.Body != nil {
97500			res.Body.Close()
97501		}
97502		return nil, &googleapi.Error{
97503			Code:   res.StatusCode,
97504			Header: res.Header,
97505		}
97506	}
97507	if err != nil {
97508		return nil, err
97509	}
97510	defer googleapi.CloseBody(res)
97511	if err := googleapi.CheckResponse(res); err != nil {
97512		return nil, err
97513	}
97514	ret := &Operation{
97515		ServerResponse: googleapi.ServerResponse{
97516			Header:         res.Header,
97517			HTTPStatusCode: res.StatusCode,
97518		},
97519	}
97520	target := &ret
97521	if err := gensupport.DecodeResponse(target, res); err != nil {
97522		return nil, err
97523	}
97524	return ret, nil
97525	// {
97526	//   "description": "Deletes the specified license.",
97527	//   "httpMethod": "DELETE",
97528	//   "id": "compute.licenses.delete",
97529	//   "parameterOrder": [
97530	//     "project",
97531	//     "license"
97532	//   ],
97533	//   "parameters": {
97534	//     "license": {
97535	//       "description": "Name of the license resource to delete.",
97536	//       "location": "path",
97537	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97538	//       "required": true,
97539	//       "type": "string"
97540	//     },
97541	//     "project": {
97542	//       "description": "Project ID for this request.",
97543	//       "location": "path",
97544	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97545	//       "required": true,
97546	//       "type": "string"
97547	//     },
97548	//     "requestId": {
97549	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
97550	//       "location": "query",
97551	//       "type": "string"
97552	//     }
97553	//   },
97554	//   "path": "{project}/global/licenses/{license}",
97555	//   "response": {
97556	//     "$ref": "Operation"
97557	//   },
97558	//   "scopes": [
97559	//     "https://www.googleapis.com/auth/cloud-platform",
97560	//     "https://www.googleapis.com/auth/compute"
97561	//   ]
97562	// }
97563
97564}
97565
97566// method id "compute.licenses.get":
97567
97568type LicensesGetCall struct {
97569	s            *Service
97570	project      string
97571	license      string
97572	urlParams_   gensupport.URLParams
97573	ifNoneMatch_ string
97574	ctx_         context.Context
97575	header_      http.Header
97576}
97577
97578// Get: Returns the specified License resource.
97579// For details, see https://cloud.google.com/compute/docs/reference/latest/licenses/get
97580func (r *LicensesService) Get(project string, license string) *LicensesGetCall {
97581	c := &LicensesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97582	c.project = project
97583	c.license = license
97584	return c
97585}
97586
97587// Fields allows partial responses to be retrieved. See
97588// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97589// for more information.
97590func (c *LicensesGetCall) Fields(s ...googleapi.Field) *LicensesGetCall {
97591	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97592	return c
97593}
97594
97595// IfNoneMatch sets the optional parameter which makes the operation
97596// fail if the object's ETag matches the given value. This is useful for
97597// getting updates only after the object has changed since the last
97598// request. Use googleapi.IsNotModified to check whether the response
97599// error from Do is the result of In-None-Match.
97600func (c *LicensesGetCall) IfNoneMatch(entityTag string) *LicensesGetCall {
97601	c.ifNoneMatch_ = entityTag
97602	return c
97603}
97604
97605// Context sets the context to be used in this call's Do method. Any
97606// pending HTTP request will be aborted if the provided context is
97607// canceled.
97608func (c *LicensesGetCall) Context(ctx context.Context) *LicensesGetCall {
97609	c.ctx_ = ctx
97610	return c
97611}
97612
97613// Header returns an http.Header that can be modified by the caller to
97614// add HTTP headers to the request.
97615func (c *LicensesGetCall) Header() http.Header {
97616	if c.header_ == nil {
97617		c.header_ = make(http.Header)
97618	}
97619	return c.header_
97620}
97621
97622func (c *LicensesGetCall) doRequest(alt string) (*http.Response, error) {
97623	reqHeaders := make(http.Header)
97624	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
97625	for k, v := range c.header_ {
97626		reqHeaders[k] = v
97627	}
97628	reqHeaders.Set("User-Agent", c.s.userAgent())
97629	if c.ifNoneMatch_ != "" {
97630		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
97631	}
97632	var body io.Reader = nil
97633	c.urlParams_.Set("alt", alt)
97634	c.urlParams_.Set("prettyPrint", "false")
97635	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{license}")
97636	urls += "?" + c.urlParams_.Encode()
97637	req, err := http.NewRequest("GET", urls, body)
97638	if err != nil {
97639		return nil, err
97640	}
97641	req.Header = reqHeaders
97642	googleapi.Expand(req.URL, map[string]string{
97643		"project": c.project,
97644		"license": c.license,
97645	})
97646	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97647}
97648
97649// Do executes the "compute.licenses.get" call.
97650// Exactly one of *License or error will be non-nil. Any non-2xx status
97651// code is an error. Response headers are in either
97652// *License.ServerResponse.Header or (if a response was returned at all)
97653// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
97654// check whether the returned error was because http.StatusNotModified
97655// was returned.
97656func (c *LicensesGetCall) Do(opts ...googleapi.CallOption) (*License, error) {
97657	gensupport.SetOptions(c.urlParams_, opts...)
97658	res, err := c.doRequest("json")
97659	if res != nil && res.StatusCode == http.StatusNotModified {
97660		if res.Body != nil {
97661			res.Body.Close()
97662		}
97663		return nil, &googleapi.Error{
97664			Code:   res.StatusCode,
97665			Header: res.Header,
97666		}
97667	}
97668	if err != nil {
97669		return nil, err
97670	}
97671	defer googleapi.CloseBody(res)
97672	if err := googleapi.CheckResponse(res); err != nil {
97673		return nil, err
97674	}
97675	ret := &License{
97676		ServerResponse: googleapi.ServerResponse{
97677			Header:         res.Header,
97678			HTTPStatusCode: res.StatusCode,
97679		},
97680	}
97681	target := &ret
97682	if err := gensupport.DecodeResponse(target, res); err != nil {
97683		return nil, err
97684	}
97685	return ret, nil
97686	// {
97687	//   "description": "Returns the specified License resource.",
97688	//   "httpMethod": "GET",
97689	//   "id": "compute.licenses.get",
97690	//   "parameterOrder": [
97691	//     "project",
97692	//     "license"
97693	//   ],
97694	//   "parameters": {
97695	//     "license": {
97696	//       "description": "Name of the License resource to return.",
97697	//       "location": "path",
97698	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97699	//       "required": true,
97700	//       "type": "string"
97701	//     },
97702	//     "project": {
97703	//       "description": "Project ID for this request.",
97704	//       "location": "path",
97705	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97706	//       "required": true,
97707	//       "type": "string"
97708	//     }
97709	//   },
97710	//   "path": "{project}/global/licenses/{license}",
97711	//   "response": {
97712	//     "$ref": "License"
97713	//   },
97714	//   "scopes": [
97715	//     "https://www.googleapis.com/auth/cloud-platform",
97716	//     "https://www.googleapis.com/auth/compute",
97717	//     "https://www.googleapis.com/auth/compute.readonly"
97718	//   ]
97719	// }
97720
97721}
97722
97723// method id "compute.licenses.getIamPolicy":
97724
97725type LicensesGetIamPolicyCall struct {
97726	s            *Service
97727	project      string
97728	resource     string
97729	urlParams_   gensupport.URLParams
97730	ifNoneMatch_ string
97731	ctx_         context.Context
97732	header_      http.Header
97733}
97734
97735// GetIamPolicy: Gets the access control policy for a resource. May be
97736// empty if no such policy or resource exists.
97737func (r *LicensesService) GetIamPolicy(project string, resource string) *LicensesGetIamPolicyCall {
97738	c := &LicensesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97739	c.project = project
97740	c.resource = resource
97741	return c
97742}
97743
97744// OptionsRequestedPolicyVersion sets the optional parameter
97745// "optionsRequestedPolicyVersion": Requested IAM Policy version.
97746func (c *LicensesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *LicensesGetIamPolicyCall {
97747	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
97748	return c
97749}
97750
97751// Fields allows partial responses to be retrieved. See
97752// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97753// for more information.
97754func (c *LicensesGetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesGetIamPolicyCall {
97755	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97756	return c
97757}
97758
97759// IfNoneMatch sets the optional parameter which makes the operation
97760// fail if the object's ETag matches the given value. This is useful for
97761// getting updates only after the object has changed since the last
97762// request. Use googleapi.IsNotModified to check whether the response
97763// error from Do is the result of In-None-Match.
97764func (c *LicensesGetIamPolicyCall) IfNoneMatch(entityTag string) *LicensesGetIamPolicyCall {
97765	c.ifNoneMatch_ = entityTag
97766	return c
97767}
97768
97769// Context sets the context to be used in this call's Do method. Any
97770// pending HTTP request will be aborted if the provided context is
97771// canceled.
97772func (c *LicensesGetIamPolicyCall) Context(ctx context.Context) *LicensesGetIamPolicyCall {
97773	c.ctx_ = ctx
97774	return c
97775}
97776
97777// Header returns an http.Header that can be modified by the caller to
97778// add HTTP headers to the request.
97779func (c *LicensesGetIamPolicyCall) Header() http.Header {
97780	if c.header_ == nil {
97781		c.header_ = make(http.Header)
97782	}
97783	return c.header_
97784}
97785
97786func (c *LicensesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
97787	reqHeaders := make(http.Header)
97788	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
97789	for k, v := range c.header_ {
97790		reqHeaders[k] = v
97791	}
97792	reqHeaders.Set("User-Agent", c.s.userAgent())
97793	if c.ifNoneMatch_ != "" {
97794		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
97795	}
97796	var body io.Reader = nil
97797	c.urlParams_.Set("alt", alt)
97798	c.urlParams_.Set("prettyPrint", "false")
97799	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{resource}/getIamPolicy")
97800	urls += "?" + c.urlParams_.Encode()
97801	req, err := http.NewRequest("GET", urls, body)
97802	if err != nil {
97803		return nil, err
97804	}
97805	req.Header = reqHeaders
97806	googleapi.Expand(req.URL, map[string]string{
97807		"project":  c.project,
97808		"resource": c.resource,
97809	})
97810	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97811}
97812
97813// Do executes the "compute.licenses.getIamPolicy" call.
97814// Exactly one of *Policy or error will be non-nil. Any non-2xx status
97815// code is an error. Response headers are in either
97816// *Policy.ServerResponse.Header or (if a response was returned at all)
97817// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
97818// check whether the returned error was because http.StatusNotModified
97819// was returned.
97820func (c *LicensesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
97821	gensupport.SetOptions(c.urlParams_, opts...)
97822	res, err := c.doRequest("json")
97823	if res != nil && res.StatusCode == http.StatusNotModified {
97824		if res.Body != nil {
97825			res.Body.Close()
97826		}
97827		return nil, &googleapi.Error{
97828			Code:   res.StatusCode,
97829			Header: res.Header,
97830		}
97831	}
97832	if err != nil {
97833		return nil, err
97834	}
97835	defer googleapi.CloseBody(res)
97836	if err := googleapi.CheckResponse(res); err != nil {
97837		return nil, err
97838	}
97839	ret := &Policy{
97840		ServerResponse: googleapi.ServerResponse{
97841			Header:         res.Header,
97842			HTTPStatusCode: res.StatusCode,
97843		},
97844	}
97845	target := &ret
97846	if err := gensupport.DecodeResponse(target, res); err != nil {
97847		return nil, err
97848	}
97849	return ret, nil
97850	// {
97851	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
97852	//   "httpMethod": "GET",
97853	//   "id": "compute.licenses.getIamPolicy",
97854	//   "parameterOrder": [
97855	//     "project",
97856	//     "resource"
97857	//   ],
97858	//   "parameters": {
97859	//     "optionsRequestedPolicyVersion": {
97860	//       "description": "Requested IAM Policy version.",
97861	//       "format": "int32",
97862	//       "location": "query",
97863	//       "type": "integer"
97864	//     },
97865	//     "project": {
97866	//       "description": "Project ID for this request.",
97867	//       "location": "path",
97868	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97869	//       "required": true,
97870	//       "type": "string"
97871	//     },
97872	//     "resource": {
97873	//       "description": "Name or id of the resource for this request.",
97874	//       "location": "path",
97875	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97876	//       "required": true,
97877	//       "type": "string"
97878	//     }
97879	//   },
97880	//   "path": "{project}/global/licenses/{resource}/getIamPolicy",
97881	//   "response": {
97882	//     "$ref": "Policy"
97883	//   },
97884	//   "scopes": [
97885	//     "https://www.googleapis.com/auth/cloud-platform",
97886	//     "https://www.googleapis.com/auth/compute",
97887	//     "https://www.googleapis.com/auth/compute.readonly"
97888	//   ]
97889	// }
97890
97891}
97892
97893// method id "compute.licenses.insert":
97894
97895type LicensesInsertCall struct {
97896	s          *Service
97897	project    string
97898	license    *License
97899	urlParams_ gensupport.URLParams
97900	ctx_       context.Context
97901	header_    http.Header
97902}
97903
97904// Insert: Create a License resource in the specified project.
97905func (r *LicensesService) Insert(project string, license *License) *LicensesInsertCall {
97906	c := &LicensesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97907	c.project = project
97908	c.license = license
97909	return c
97910}
97911
97912// RequestId sets the optional parameter "requestId": An optional
97913// request ID to identify requests. Specify a unique request ID so that
97914// if you must retry your request, the server will know to ignore the
97915// request if it has already been completed.
97916//
97917// For example, consider a situation where you make an initial request
97918// and the request times out. If you make the request again with the
97919// same request ID, the server can check if original operation with the
97920// same request ID was received, and if so, will ignore the second
97921// request. This prevents clients from accidentally creating duplicate
97922// commitments.
97923//
97924// The request ID must be a valid UUID with the exception that zero UUID
97925// is not supported (00000000-0000-0000-0000-000000000000).
97926func (c *LicensesInsertCall) RequestId(requestId string) *LicensesInsertCall {
97927	c.urlParams_.Set("requestId", requestId)
97928	return c
97929}
97930
97931// Fields allows partial responses to be retrieved. See
97932// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97933// for more information.
97934func (c *LicensesInsertCall) Fields(s ...googleapi.Field) *LicensesInsertCall {
97935	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97936	return c
97937}
97938
97939// Context sets the context to be used in this call's Do method. Any
97940// pending HTTP request will be aborted if the provided context is
97941// canceled.
97942func (c *LicensesInsertCall) Context(ctx context.Context) *LicensesInsertCall {
97943	c.ctx_ = ctx
97944	return c
97945}
97946
97947// Header returns an http.Header that can be modified by the caller to
97948// add HTTP headers to the request.
97949func (c *LicensesInsertCall) Header() http.Header {
97950	if c.header_ == nil {
97951		c.header_ = make(http.Header)
97952	}
97953	return c.header_
97954}
97955
97956func (c *LicensesInsertCall) doRequest(alt string) (*http.Response, error) {
97957	reqHeaders := make(http.Header)
97958	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
97959	for k, v := range c.header_ {
97960		reqHeaders[k] = v
97961	}
97962	reqHeaders.Set("User-Agent", c.s.userAgent())
97963	var body io.Reader = nil
97964	body, err := googleapi.WithoutDataWrapper.JSONReader(c.license)
97965	if err != nil {
97966		return nil, err
97967	}
97968	reqHeaders.Set("Content-Type", "application/json")
97969	c.urlParams_.Set("alt", alt)
97970	c.urlParams_.Set("prettyPrint", "false")
97971	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses")
97972	urls += "?" + c.urlParams_.Encode()
97973	req, err := http.NewRequest("POST", urls, body)
97974	if err != nil {
97975		return nil, err
97976	}
97977	req.Header = reqHeaders
97978	googleapi.Expand(req.URL, map[string]string{
97979		"project": c.project,
97980	})
97981	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97982}
97983
97984// Do executes the "compute.licenses.insert" call.
97985// Exactly one of *Operation or error will be non-nil. Any non-2xx
97986// status code is an error. Response headers are in either
97987// *Operation.ServerResponse.Header or (if a response was returned at
97988// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97989// to check whether the returned error was because
97990// http.StatusNotModified was returned.
97991func (c *LicensesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97992	gensupport.SetOptions(c.urlParams_, opts...)
97993	res, err := c.doRequest("json")
97994	if res != nil && res.StatusCode == http.StatusNotModified {
97995		if res.Body != nil {
97996			res.Body.Close()
97997		}
97998		return nil, &googleapi.Error{
97999			Code:   res.StatusCode,
98000			Header: res.Header,
98001		}
98002	}
98003	if err != nil {
98004		return nil, err
98005	}
98006	defer googleapi.CloseBody(res)
98007	if err := googleapi.CheckResponse(res); err != nil {
98008		return nil, err
98009	}
98010	ret := &Operation{
98011		ServerResponse: googleapi.ServerResponse{
98012			Header:         res.Header,
98013			HTTPStatusCode: res.StatusCode,
98014		},
98015	}
98016	target := &ret
98017	if err := gensupport.DecodeResponse(target, res); err != nil {
98018		return nil, err
98019	}
98020	return ret, nil
98021	// {
98022	//   "description": "Create a License resource in the specified project.",
98023	//   "httpMethod": "POST",
98024	//   "id": "compute.licenses.insert",
98025	//   "parameterOrder": [
98026	//     "project"
98027	//   ],
98028	//   "parameters": {
98029	//     "project": {
98030	//       "description": "Project ID for this request.",
98031	//       "location": "path",
98032	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98033	//       "required": true,
98034	//       "type": "string"
98035	//     },
98036	//     "requestId": {
98037	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
98038	//       "location": "query",
98039	//       "type": "string"
98040	//     }
98041	//   },
98042	//   "path": "{project}/global/licenses",
98043	//   "request": {
98044	//     "$ref": "License"
98045	//   },
98046	//   "response": {
98047	//     "$ref": "Operation"
98048	//   },
98049	//   "scopes": [
98050	//     "https://www.googleapis.com/auth/cloud-platform",
98051	//     "https://www.googleapis.com/auth/compute",
98052	//     "https://www.googleapis.com/auth/devstorage.full_control",
98053	//     "https://www.googleapis.com/auth/devstorage.read_only",
98054	//     "https://www.googleapis.com/auth/devstorage.read_write"
98055	//   ]
98056	// }
98057
98058}
98059
98060// method id "compute.licenses.list":
98061
98062type LicensesListCall struct {
98063	s            *Service
98064	project      string
98065	urlParams_   gensupport.URLParams
98066	ifNoneMatch_ string
98067	ctx_         context.Context
98068	header_      http.Header
98069}
98070
98071// List: Retrieves the list of licenses available in the specified
98072// project. This method does not get any licenses that belong to other
98073// projects, including licenses attached to publicly-available images,
98074// like Debian 9. If you want to get a list of publicly-available
98075// licenses, use this method to make a request to the respective image
98076// project, such as debian-cloud or windows-cloud.
98077func (r *LicensesService) List(project string) *LicensesListCall {
98078	c := &LicensesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98079	c.project = project
98080	return c
98081}
98082
98083// Filter sets the optional parameter "filter": A filter expression that
98084// filters resources listed in the response. The expression must specify
98085// the field name, a comparison operator, and the value that you want to
98086// use for filtering. The value must be a string, a number, or a
98087// boolean. The comparison operator must be either =, !=, >, or <.
98088//
98089// For example, if you are filtering Compute Engine instances, you can
98090// exclude instances named example-instance by specifying name !=
98091// example-instance.
98092//
98093// You can also filter nested fields. For example, you could specify
98094// scheduling.automaticRestart = false to include instances only if they
98095// are not scheduled for automatic restarts. You can use filtering on
98096// nested fields to filter based on resource labels.
98097//
98098// To filter on multiple expressions, provide each separate expression
98099// within parentheses. For example, (scheduling.automaticRestart = true)
98100// (cpuPlatform = "Intel Skylake"). By default, each expression is an
98101// AND expression. However, you can include AND and OR expressions
98102// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
98103// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
98104// true).
98105func (c *LicensesListCall) Filter(filter string) *LicensesListCall {
98106	c.urlParams_.Set("filter", filter)
98107	return c
98108}
98109
98110// MaxResults sets the optional parameter "maxResults": The maximum
98111// number of results per page that should be returned. If the number of
98112// available results is larger than maxResults, Compute Engine returns a
98113// nextPageToken that can be used to get the next page of results in
98114// subsequent list requests. Acceptable values are 0 to 500, inclusive.
98115// (Default: 500)
98116func (c *LicensesListCall) MaxResults(maxResults int64) *LicensesListCall {
98117	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
98118	return c
98119}
98120
98121// OrderBy sets the optional parameter "orderBy": Sorts list results by
98122// a certain order. By default, results are returned in alphanumerical
98123// order based on the resource name.
98124//
98125// You can also sort results in descending order based on the creation
98126// timestamp using orderBy="creationTimestamp desc". This sorts results
98127// based on the creationTimestamp field in reverse chronological order
98128// (newest result first). Use this to sort resources like operations so
98129// that the newest operation is returned first.
98130//
98131// Currently, only sorting by name or creationTimestamp desc is
98132// supported.
98133func (c *LicensesListCall) OrderBy(orderBy string) *LicensesListCall {
98134	c.urlParams_.Set("orderBy", orderBy)
98135	return c
98136}
98137
98138// PageToken sets the optional parameter "pageToken": Specifies a page
98139// token to use. Set pageToken to the nextPageToken returned by a
98140// previous list request to get the next page of results.
98141func (c *LicensesListCall) PageToken(pageToken string) *LicensesListCall {
98142	c.urlParams_.Set("pageToken", pageToken)
98143	return c
98144}
98145
98146// Fields allows partial responses to be retrieved. See
98147// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98148// for more information.
98149func (c *LicensesListCall) Fields(s ...googleapi.Field) *LicensesListCall {
98150	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98151	return c
98152}
98153
98154// IfNoneMatch sets the optional parameter which makes the operation
98155// fail if the object's ETag matches the given value. This is useful for
98156// getting updates only after the object has changed since the last
98157// request. Use googleapi.IsNotModified to check whether the response
98158// error from Do is the result of In-None-Match.
98159func (c *LicensesListCall) IfNoneMatch(entityTag string) *LicensesListCall {
98160	c.ifNoneMatch_ = entityTag
98161	return c
98162}
98163
98164// Context sets the context to be used in this call's Do method. Any
98165// pending HTTP request will be aborted if the provided context is
98166// canceled.
98167func (c *LicensesListCall) Context(ctx context.Context) *LicensesListCall {
98168	c.ctx_ = ctx
98169	return c
98170}
98171
98172// Header returns an http.Header that can be modified by the caller to
98173// add HTTP headers to the request.
98174func (c *LicensesListCall) Header() http.Header {
98175	if c.header_ == nil {
98176		c.header_ = make(http.Header)
98177	}
98178	return c.header_
98179}
98180
98181func (c *LicensesListCall) doRequest(alt string) (*http.Response, error) {
98182	reqHeaders := make(http.Header)
98183	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
98184	for k, v := range c.header_ {
98185		reqHeaders[k] = v
98186	}
98187	reqHeaders.Set("User-Agent", c.s.userAgent())
98188	if c.ifNoneMatch_ != "" {
98189		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
98190	}
98191	var body io.Reader = nil
98192	c.urlParams_.Set("alt", alt)
98193	c.urlParams_.Set("prettyPrint", "false")
98194	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses")
98195	urls += "?" + c.urlParams_.Encode()
98196	req, err := http.NewRequest("GET", urls, body)
98197	if err != nil {
98198		return nil, err
98199	}
98200	req.Header = reqHeaders
98201	googleapi.Expand(req.URL, map[string]string{
98202		"project": c.project,
98203	})
98204	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98205}
98206
98207// Do executes the "compute.licenses.list" call.
98208// Exactly one of *LicensesListResponse or error will be non-nil. Any
98209// non-2xx status code is an error. Response headers are in either
98210// *LicensesListResponse.ServerResponse.Header or (if a response was
98211// returned at all) in error.(*googleapi.Error).Header. Use
98212// googleapi.IsNotModified to check whether the returned error was
98213// because http.StatusNotModified was returned.
98214func (c *LicensesListCall) Do(opts ...googleapi.CallOption) (*LicensesListResponse, error) {
98215	gensupport.SetOptions(c.urlParams_, opts...)
98216	res, err := c.doRequest("json")
98217	if res != nil && res.StatusCode == http.StatusNotModified {
98218		if res.Body != nil {
98219			res.Body.Close()
98220		}
98221		return nil, &googleapi.Error{
98222			Code:   res.StatusCode,
98223			Header: res.Header,
98224		}
98225	}
98226	if err != nil {
98227		return nil, err
98228	}
98229	defer googleapi.CloseBody(res)
98230	if err := googleapi.CheckResponse(res); err != nil {
98231		return nil, err
98232	}
98233	ret := &LicensesListResponse{
98234		ServerResponse: googleapi.ServerResponse{
98235			Header:         res.Header,
98236			HTTPStatusCode: res.StatusCode,
98237		},
98238	}
98239	target := &ret
98240	if err := gensupport.DecodeResponse(target, res); err != nil {
98241		return nil, err
98242	}
98243	return ret, nil
98244	// {
98245	//   "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.",
98246	//   "httpMethod": "GET",
98247	//   "id": "compute.licenses.list",
98248	//   "parameterOrder": [
98249	//     "project"
98250	//   ],
98251	//   "parameters": {
98252	//     "filter": {
98253	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
98254	//       "location": "query",
98255	//       "type": "string"
98256	//     },
98257	//     "maxResults": {
98258	//       "default": "500",
98259	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
98260	//       "format": "uint32",
98261	//       "location": "query",
98262	//       "minimum": "0",
98263	//       "type": "integer"
98264	//     },
98265	//     "orderBy": {
98266	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
98267	//       "location": "query",
98268	//       "type": "string"
98269	//     },
98270	//     "pageToken": {
98271	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
98272	//       "location": "query",
98273	//       "type": "string"
98274	//     },
98275	//     "project": {
98276	//       "description": "Project ID for this request.",
98277	//       "location": "path",
98278	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98279	//       "required": true,
98280	//       "type": "string"
98281	//     }
98282	//   },
98283	//   "path": "{project}/global/licenses",
98284	//   "response": {
98285	//     "$ref": "LicensesListResponse"
98286	//   },
98287	//   "scopes": [
98288	//     "https://www.googleapis.com/auth/cloud-platform",
98289	//     "https://www.googleapis.com/auth/compute",
98290	//     "https://www.googleapis.com/auth/compute.readonly"
98291	//   ]
98292	// }
98293
98294}
98295
98296// Pages invokes f for each page of results.
98297// A non-nil error returned from f will halt the iteration.
98298// The provided context supersedes any context provided to the Context method.
98299func (c *LicensesListCall) Pages(ctx context.Context, f func(*LicensesListResponse) error) error {
98300	c.ctx_ = ctx
98301	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
98302	for {
98303		x, err := c.Do()
98304		if err != nil {
98305			return err
98306		}
98307		if err := f(x); err != nil {
98308			return err
98309		}
98310		if x.NextPageToken == "" {
98311			return nil
98312		}
98313		c.PageToken(x.NextPageToken)
98314	}
98315}
98316
98317// method id "compute.licenses.setIamPolicy":
98318
98319type LicensesSetIamPolicyCall struct {
98320	s                      *Service
98321	project                string
98322	resource               string
98323	globalsetpolicyrequest *GlobalSetPolicyRequest
98324	urlParams_             gensupport.URLParams
98325	ctx_                   context.Context
98326	header_                http.Header
98327}
98328
98329// SetIamPolicy: Sets the access control policy on the specified
98330// resource. Replaces any existing policy.
98331func (r *LicensesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *LicensesSetIamPolicyCall {
98332	c := &LicensesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98333	c.project = project
98334	c.resource = resource
98335	c.globalsetpolicyrequest = globalsetpolicyrequest
98336	return c
98337}
98338
98339// Fields allows partial responses to be retrieved. See
98340// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98341// for more information.
98342func (c *LicensesSetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesSetIamPolicyCall {
98343	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98344	return c
98345}
98346
98347// Context sets the context to be used in this call's Do method. Any
98348// pending HTTP request will be aborted if the provided context is
98349// canceled.
98350func (c *LicensesSetIamPolicyCall) Context(ctx context.Context) *LicensesSetIamPolicyCall {
98351	c.ctx_ = ctx
98352	return c
98353}
98354
98355// Header returns an http.Header that can be modified by the caller to
98356// add HTTP headers to the request.
98357func (c *LicensesSetIamPolicyCall) Header() http.Header {
98358	if c.header_ == nil {
98359		c.header_ = make(http.Header)
98360	}
98361	return c.header_
98362}
98363
98364func (c *LicensesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
98365	reqHeaders := make(http.Header)
98366	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
98367	for k, v := range c.header_ {
98368		reqHeaders[k] = v
98369	}
98370	reqHeaders.Set("User-Agent", c.s.userAgent())
98371	var body io.Reader = nil
98372	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
98373	if err != nil {
98374		return nil, err
98375	}
98376	reqHeaders.Set("Content-Type", "application/json")
98377	c.urlParams_.Set("alt", alt)
98378	c.urlParams_.Set("prettyPrint", "false")
98379	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{resource}/setIamPolicy")
98380	urls += "?" + c.urlParams_.Encode()
98381	req, err := http.NewRequest("POST", urls, body)
98382	if err != nil {
98383		return nil, err
98384	}
98385	req.Header = reqHeaders
98386	googleapi.Expand(req.URL, map[string]string{
98387		"project":  c.project,
98388		"resource": c.resource,
98389	})
98390	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98391}
98392
98393// Do executes the "compute.licenses.setIamPolicy" call.
98394// Exactly one of *Policy or error will be non-nil. Any non-2xx status
98395// code is an error. Response headers are in either
98396// *Policy.ServerResponse.Header or (if a response was returned at all)
98397// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
98398// check whether the returned error was because http.StatusNotModified
98399// was returned.
98400func (c *LicensesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
98401	gensupport.SetOptions(c.urlParams_, opts...)
98402	res, err := c.doRequest("json")
98403	if res != nil && res.StatusCode == http.StatusNotModified {
98404		if res.Body != nil {
98405			res.Body.Close()
98406		}
98407		return nil, &googleapi.Error{
98408			Code:   res.StatusCode,
98409			Header: res.Header,
98410		}
98411	}
98412	if err != nil {
98413		return nil, err
98414	}
98415	defer googleapi.CloseBody(res)
98416	if err := googleapi.CheckResponse(res); err != nil {
98417		return nil, err
98418	}
98419	ret := &Policy{
98420		ServerResponse: googleapi.ServerResponse{
98421			Header:         res.Header,
98422			HTTPStatusCode: res.StatusCode,
98423		},
98424	}
98425	target := &ret
98426	if err := gensupport.DecodeResponse(target, res); err != nil {
98427		return nil, err
98428	}
98429	return ret, nil
98430	// {
98431	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
98432	//   "httpMethod": "POST",
98433	//   "id": "compute.licenses.setIamPolicy",
98434	//   "parameterOrder": [
98435	//     "project",
98436	//     "resource"
98437	//   ],
98438	//   "parameters": {
98439	//     "project": {
98440	//       "description": "Project ID for this request.",
98441	//       "location": "path",
98442	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98443	//       "required": true,
98444	//       "type": "string"
98445	//     },
98446	//     "resource": {
98447	//       "description": "Name or id of the resource for this request.",
98448	//       "location": "path",
98449	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98450	//       "required": true,
98451	//       "type": "string"
98452	//     }
98453	//   },
98454	//   "path": "{project}/global/licenses/{resource}/setIamPolicy",
98455	//   "request": {
98456	//     "$ref": "GlobalSetPolicyRequest"
98457	//   },
98458	//   "response": {
98459	//     "$ref": "Policy"
98460	//   },
98461	//   "scopes": [
98462	//     "https://www.googleapis.com/auth/cloud-platform",
98463	//     "https://www.googleapis.com/auth/compute"
98464	//   ]
98465	// }
98466
98467}
98468
98469// method id "compute.licenses.testIamPermissions":
98470
98471type LicensesTestIamPermissionsCall struct {
98472	s                      *Service
98473	project                string
98474	resource               string
98475	testpermissionsrequest *TestPermissionsRequest
98476	urlParams_             gensupport.URLParams
98477	ctx_                   context.Context
98478	header_                http.Header
98479}
98480
98481// TestIamPermissions: Returns permissions that a caller has on the
98482// specified resource.
98483func (r *LicensesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *LicensesTestIamPermissionsCall {
98484	c := &LicensesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98485	c.project = project
98486	c.resource = resource
98487	c.testpermissionsrequest = testpermissionsrequest
98488	return c
98489}
98490
98491// Fields allows partial responses to be retrieved. See
98492// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98493// for more information.
98494func (c *LicensesTestIamPermissionsCall) Fields(s ...googleapi.Field) *LicensesTestIamPermissionsCall {
98495	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98496	return c
98497}
98498
98499// Context sets the context to be used in this call's Do method. Any
98500// pending HTTP request will be aborted if the provided context is
98501// canceled.
98502func (c *LicensesTestIamPermissionsCall) Context(ctx context.Context) *LicensesTestIamPermissionsCall {
98503	c.ctx_ = ctx
98504	return c
98505}
98506
98507// Header returns an http.Header that can be modified by the caller to
98508// add HTTP headers to the request.
98509func (c *LicensesTestIamPermissionsCall) Header() http.Header {
98510	if c.header_ == nil {
98511		c.header_ = make(http.Header)
98512	}
98513	return c.header_
98514}
98515
98516func (c *LicensesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
98517	reqHeaders := make(http.Header)
98518	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
98519	for k, v := range c.header_ {
98520		reqHeaders[k] = v
98521	}
98522	reqHeaders.Set("User-Agent", c.s.userAgent())
98523	var body io.Reader = nil
98524	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
98525	if err != nil {
98526		return nil, err
98527	}
98528	reqHeaders.Set("Content-Type", "application/json")
98529	c.urlParams_.Set("alt", alt)
98530	c.urlParams_.Set("prettyPrint", "false")
98531	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{resource}/testIamPermissions")
98532	urls += "?" + c.urlParams_.Encode()
98533	req, err := http.NewRequest("POST", urls, body)
98534	if err != nil {
98535		return nil, err
98536	}
98537	req.Header = reqHeaders
98538	googleapi.Expand(req.URL, map[string]string{
98539		"project":  c.project,
98540		"resource": c.resource,
98541	})
98542	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98543}
98544
98545// Do executes the "compute.licenses.testIamPermissions" call.
98546// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
98547// non-2xx status code is an error. Response headers are in either
98548// *TestPermissionsResponse.ServerResponse.Header or (if a response was
98549// returned at all) in error.(*googleapi.Error).Header. Use
98550// googleapi.IsNotModified to check whether the returned error was
98551// because http.StatusNotModified was returned.
98552func (c *LicensesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
98553	gensupport.SetOptions(c.urlParams_, opts...)
98554	res, err := c.doRequest("json")
98555	if res != nil && res.StatusCode == http.StatusNotModified {
98556		if res.Body != nil {
98557			res.Body.Close()
98558		}
98559		return nil, &googleapi.Error{
98560			Code:   res.StatusCode,
98561			Header: res.Header,
98562		}
98563	}
98564	if err != nil {
98565		return nil, err
98566	}
98567	defer googleapi.CloseBody(res)
98568	if err := googleapi.CheckResponse(res); err != nil {
98569		return nil, err
98570	}
98571	ret := &TestPermissionsResponse{
98572		ServerResponse: googleapi.ServerResponse{
98573			Header:         res.Header,
98574			HTTPStatusCode: res.StatusCode,
98575		},
98576	}
98577	target := &ret
98578	if err := gensupport.DecodeResponse(target, res); err != nil {
98579		return nil, err
98580	}
98581	return ret, nil
98582	// {
98583	//   "description": "Returns permissions that a caller has on the specified resource.",
98584	//   "httpMethod": "POST",
98585	//   "id": "compute.licenses.testIamPermissions",
98586	//   "parameterOrder": [
98587	//     "project",
98588	//     "resource"
98589	//   ],
98590	//   "parameters": {
98591	//     "project": {
98592	//       "description": "Project ID for this request.",
98593	//       "location": "path",
98594	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98595	//       "required": true,
98596	//       "type": "string"
98597	//     },
98598	//     "resource": {
98599	//       "description": "Name or id of the resource for this request.",
98600	//       "location": "path",
98601	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98602	//       "required": true,
98603	//       "type": "string"
98604	//     }
98605	//   },
98606	//   "path": "{project}/global/licenses/{resource}/testIamPermissions",
98607	//   "request": {
98608	//     "$ref": "TestPermissionsRequest"
98609	//   },
98610	//   "response": {
98611	//     "$ref": "TestPermissionsResponse"
98612	//   },
98613	//   "scopes": [
98614	//     "https://www.googleapis.com/auth/cloud-platform",
98615	//     "https://www.googleapis.com/auth/compute",
98616	//     "https://www.googleapis.com/auth/compute.readonly"
98617	//   ]
98618	// }
98619
98620}
98621
98622// method id "compute.machineImages.delete":
98623
98624type MachineImagesDeleteCall struct {
98625	s            *Service
98626	project      string
98627	machineImage string
98628	urlParams_   gensupport.URLParams
98629	ctx_         context.Context
98630	header_      http.Header
98631}
98632
98633// Delete: Deletes the specified machine image. Deleting a machine image
98634// is permanent and cannot be undone.
98635func (r *MachineImagesService) Delete(project string, machineImage string) *MachineImagesDeleteCall {
98636	c := &MachineImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98637	c.project = project
98638	c.machineImage = machineImage
98639	return c
98640}
98641
98642// RequestId sets the optional parameter "requestId": An optional
98643// request ID to identify requests. Specify a unique request ID so that
98644// if you must retry your request, the server will know to ignore the
98645// request if it has already been completed.
98646//
98647// For example, consider a situation where you make an initial request
98648// and the request times out. If you make the request again with the
98649// same request ID, the server can check if original operation with the
98650// same request ID was received, and if so, will ignore the second
98651// request. This prevents clients from accidentally creating duplicate
98652// commitments.
98653//
98654// The request ID must be a valid UUID with the exception that zero UUID
98655// is not supported (00000000-0000-0000-0000-000000000000).
98656func (c *MachineImagesDeleteCall) RequestId(requestId string) *MachineImagesDeleteCall {
98657	c.urlParams_.Set("requestId", requestId)
98658	return c
98659}
98660
98661// Fields allows partial responses to be retrieved. See
98662// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98663// for more information.
98664func (c *MachineImagesDeleteCall) Fields(s ...googleapi.Field) *MachineImagesDeleteCall {
98665	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98666	return c
98667}
98668
98669// Context sets the context to be used in this call's Do method. Any
98670// pending HTTP request will be aborted if the provided context is
98671// canceled.
98672func (c *MachineImagesDeleteCall) Context(ctx context.Context) *MachineImagesDeleteCall {
98673	c.ctx_ = ctx
98674	return c
98675}
98676
98677// Header returns an http.Header that can be modified by the caller to
98678// add HTTP headers to the request.
98679func (c *MachineImagesDeleteCall) Header() http.Header {
98680	if c.header_ == nil {
98681		c.header_ = make(http.Header)
98682	}
98683	return c.header_
98684}
98685
98686func (c *MachineImagesDeleteCall) doRequest(alt string) (*http.Response, error) {
98687	reqHeaders := make(http.Header)
98688	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
98689	for k, v := range c.header_ {
98690		reqHeaders[k] = v
98691	}
98692	reqHeaders.Set("User-Agent", c.s.userAgent())
98693	var body io.Reader = nil
98694	c.urlParams_.Set("alt", alt)
98695	c.urlParams_.Set("prettyPrint", "false")
98696	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages/{machineImage}")
98697	urls += "?" + c.urlParams_.Encode()
98698	req, err := http.NewRequest("DELETE", urls, body)
98699	if err != nil {
98700		return nil, err
98701	}
98702	req.Header = reqHeaders
98703	googleapi.Expand(req.URL, map[string]string{
98704		"project":      c.project,
98705		"machineImage": c.machineImage,
98706	})
98707	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98708}
98709
98710// Do executes the "compute.machineImages.delete" call.
98711// Exactly one of *Operation or error will be non-nil. Any non-2xx
98712// status code is an error. Response headers are in either
98713// *Operation.ServerResponse.Header or (if a response was returned at
98714// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98715// to check whether the returned error was because
98716// http.StatusNotModified was returned.
98717func (c *MachineImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98718	gensupport.SetOptions(c.urlParams_, opts...)
98719	res, err := c.doRequest("json")
98720	if res != nil && res.StatusCode == http.StatusNotModified {
98721		if res.Body != nil {
98722			res.Body.Close()
98723		}
98724		return nil, &googleapi.Error{
98725			Code:   res.StatusCode,
98726			Header: res.Header,
98727		}
98728	}
98729	if err != nil {
98730		return nil, err
98731	}
98732	defer googleapi.CloseBody(res)
98733	if err := googleapi.CheckResponse(res); err != nil {
98734		return nil, err
98735	}
98736	ret := &Operation{
98737		ServerResponse: googleapi.ServerResponse{
98738			Header:         res.Header,
98739			HTTPStatusCode: res.StatusCode,
98740		},
98741	}
98742	target := &ret
98743	if err := gensupport.DecodeResponse(target, res); err != nil {
98744		return nil, err
98745	}
98746	return ret, nil
98747	// {
98748	//   "description": "Deletes the specified machine image. Deleting a machine image is permanent and cannot be undone.",
98749	//   "httpMethod": "DELETE",
98750	//   "id": "compute.machineImages.delete",
98751	//   "parameterOrder": [
98752	//     "project",
98753	//     "machineImage"
98754	//   ],
98755	//   "parameters": {
98756	//     "machineImage": {
98757	//       "description": "The name of the machine image to delete.",
98758	//       "location": "path",
98759	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98760	//       "required": true,
98761	//       "type": "string"
98762	//     },
98763	//     "project": {
98764	//       "description": "Project ID for this request.",
98765	//       "location": "path",
98766	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98767	//       "required": true,
98768	//       "type": "string"
98769	//     },
98770	//     "requestId": {
98771	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
98772	//       "location": "query",
98773	//       "type": "string"
98774	//     }
98775	//   },
98776	//   "path": "{project}/global/machineImages/{machineImage}",
98777	//   "response": {
98778	//     "$ref": "Operation"
98779	//   },
98780	//   "scopes": [
98781	//     "https://www.googleapis.com/auth/cloud-platform",
98782	//     "https://www.googleapis.com/auth/compute"
98783	//   ]
98784	// }
98785
98786}
98787
98788// method id "compute.machineImages.get":
98789
98790type MachineImagesGetCall struct {
98791	s            *Service
98792	project      string
98793	machineImage string
98794	urlParams_   gensupport.URLParams
98795	ifNoneMatch_ string
98796	ctx_         context.Context
98797	header_      http.Header
98798}
98799
98800// Get: Returns the specified machine image. Gets a list of available
98801// machine images by making a list() request.
98802func (r *MachineImagesService) Get(project string, machineImage string) *MachineImagesGetCall {
98803	c := &MachineImagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98804	c.project = project
98805	c.machineImage = machineImage
98806	return c
98807}
98808
98809// Fields allows partial responses to be retrieved. See
98810// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98811// for more information.
98812func (c *MachineImagesGetCall) Fields(s ...googleapi.Field) *MachineImagesGetCall {
98813	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98814	return c
98815}
98816
98817// IfNoneMatch sets the optional parameter which makes the operation
98818// fail if the object's ETag matches the given value. This is useful for
98819// getting updates only after the object has changed since the last
98820// request. Use googleapi.IsNotModified to check whether the response
98821// error from Do is the result of In-None-Match.
98822func (c *MachineImagesGetCall) IfNoneMatch(entityTag string) *MachineImagesGetCall {
98823	c.ifNoneMatch_ = entityTag
98824	return c
98825}
98826
98827// Context sets the context to be used in this call's Do method. Any
98828// pending HTTP request will be aborted if the provided context is
98829// canceled.
98830func (c *MachineImagesGetCall) Context(ctx context.Context) *MachineImagesGetCall {
98831	c.ctx_ = ctx
98832	return c
98833}
98834
98835// Header returns an http.Header that can be modified by the caller to
98836// add HTTP headers to the request.
98837func (c *MachineImagesGetCall) Header() http.Header {
98838	if c.header_ == nil {
98839		c.header_ = make(http.Header)
98840	}
98841	return c.header_
98842}
98843
98844func (c *MachineImagesGetCall) doRequest(alt string) (*http.Response, error) {
98845	reqHeaders := make(http.Header)
98846	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
98847	for k, v := range c.header_ {
98848		reqHeaders[k] = v
98849	}
98850	reqHeaders.Set("User-Agent", c.s.userAgent())
98851	if c.ifNoneMatch_ != "" {
98852		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
98853	}
98854	var body io.Reader = nil
98855	c.urlParams_.Set("alt", alt)
98856	c.urlParams_.Set("prettyPrint", "false")
98857	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages/{machineImage}")
98858	urls += "?" + c.urlParams_.Encode()
98859	req, err := http.NewRequest("GET", urls, body)
98860	if err != nil {
98861		return nil, err
98862	}
98863	req.Header = reqHeaders
98864	googleapi.Expand(req.URL, map[string]string{
98865		"project":      c.project,
98866		"machineImage": c.machineImage,
98867	})
98868	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98869}
98870
98871// Do executes the "compute.machineImages.get" call.
98872// Exactly one of *MachineImage or error will be non-nil. Any non-2xx
98873// status code is an error. Response headers are in either
98874// *MachineImage.ServerResponse.Header or (if a response was returned at
98875// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98876// to check whether the returned error was because
98877// http.StatusNotModified was returned.
98878func (c *MachineImagesGetCall) Do(opts ...googleapi.CallOption) (*MachineImage, error) {
98879	gensupport.SetOptions(c.urlParams_, opts...)
98880	res, err := c.doRequest("json")
98881	if res != nil && res.StatusCode == http.StatusNotModified {
98882		if res.Body != nil {
98883			res.Body.Close()
98884		}
98885		return nil, &googleapi.Error{
98886			Code:   res.StatusCode,
98887			Header: res.Header,
98888		}
98889	}
98890	if err != nil {
98891		return nil, err
98892	}
98893	defer googleapi.CloseBody(res)
98894	if err := googleapi.CheckResponse(res); err != nil {
98895		return nil, err
98896	}
98897	ret := &MachineImage{
98898		ServerResponse: googleapi.ServerResponse{
98899			Header:         res.Header,
98900			HTTPStatusCode: res.StatusCode,
98901		},
98902	}
98903	target := &ret
98904	if err := gensupport.DecodeResponse(target, res); err != nil {
98905		return nil, err
98906	}
98907	return ret, nil
98908	// {
98909	//   "description": "Returns the specified machine image. Gets a list of available machine images by making a list() request.",
98910	//   "httpMethod": "GET",
98911	//   "id": "compute.machineImages.get",
98912	//   "parameterOrder": [
98913	//     "project",
98914	//     "machineImage"
98915	//   ],
98916	//   "parameters": {
98917	//     "machineImage": {
98918	//       "description": "The name of the machine image.",
98919	//       "location": "path",
98920	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98921	//       "required": true,
98922	//       "type": "string"
98923	//     },
98924	//     "project": {
98925	//       "description": "Project ID for this request.",
98926	//       "location": "path",
98927	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98928	//       "required": true,
98929	//       "type": "string"
98930	//     }
98931	//   },
98932	//   "path": "{project}/global/machineImages/{machineImage}",
98933	//   "response": {
98934	//     "$ref": "MachineImage"
98935	//   },
98936	//   "scopes": [
98937	//     "https://www.googleapis.com/auth/cloud-platform",
98938	//     "https://www.googleapis.com/auth/compute",
98939	//     "https://www.googleapis.com/auth/compute.readonly"
98940	//   ]
98941	// }
98942
98943}
98944
98945// method id "compute.machineImages.getIamPolicy":
98946
98947type MachineImagesGetIamPolicyCall struct {
98948	s            *Service
98949	project      string
98950	resource     string
98951	urlParams_   gensupport.URLParams
98952	ifNoneMatch_ string
98953	ctx_         context.Context
98954	header_      http.Header
98955}
98956
98957// GetIamPolicy: Gets the access control policy for a resource. May be
98958// empty if no such policy or resource exists.
98959func (r *MachineImagesService) GetIamPolicy(project string, resource string) *MachineImagesGetIamPolicyCall {
98960	c := &MachineImagesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98961	c.project = project
98962	c.resource = resource
98963	return c
98964}
98965
98966// OptionsRequestedPolicyVersion sets the optional parameter
98967// "optionsRequestedPolicyVersion": Requested IAM Policy version.
98968func (c *MachineImagesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *MachineImagesGetIamPolicyCall {
98969	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
98970	return c
98971}
98972
98973// Fields allows partial responses to be retrieved. See
98974// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98975// for more information.
98976func (c *MachineImagesGetIamPolicyCall) Fields(s ...googleapi.Field) *MachineImagesGetIamPolicyCall {
98977	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98978	return c
98979}
98980
98981// IfNoneMatch sets the optional parameter which makes the operation
98982// fail if the object's ETag matches the given value. This is useful for
98983// getting updates only after the object has changed since the last
98984// request. Use googleapi.IsNotModified to check whether the response
98985// error from Do is the result of In-None-Match.
98986func (c *MachineImagesGetIamPolicyCall) IfNoneMatch(entityTag string) *MachineImagesGetIamPolicyCall {
98987	c.ifNoneMatch_ = entityTag
98988	return c
98989}
98990
98991// Context sets the context to be used in this call's Do method. Any
98992// pending HTTP request will be aborted if the provided context is
98993// canceled.
98994func (c *MachineImagesGetIamPolicyCall) Context(ctx context.Context) *MachineImagesGetIamPolicyCall {
98995	c.ctx_ = ctx
98996	return c
98997}
98998
98999// Header returns an http.Header that can be modified by the caller to
99000// add HTTP headers to the request.
99001func (c *MachineImagesGetIamPolicyCall) Header() http.Header {
99002	if c.header_ == nil {
99003		c.header_ = make(http.Header)
99004	}
99005	return c.header_
99006}
99007
99008func (c *MachineImagesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
99009	reqHeaders := make(http.Header)
99010	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
99011	for k, v := range c.header_ {
99012		reqHeaders[k] = v
99013	}
99014	reqHeaders.Set("User-Agent", c.s.userAgent())
99015	if c.ifNoneMatch_ != "" {
99016		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99017	}
99018	var body io.Reader = nil
99019	c.urlParams_.Set("alt", alt)
99020	c.urlParams_.Set("prettyPrint", "false")
99021	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages/{resource}/getIamPolicy")
99022	urls += "?" + c.urlParams_.Encode()
99023	req, err := http.NewRequest("GET", urls, body)
99024	if err != nil {
99025		return nil, err
99026	}
99027	req.Header = reqHeaders
99028	googleapi.Expand(req.URL, map[string]string{
99029		"project":  c.project,
99030		"resource": c.resource,
99031	})
99032	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99033}
99034
99035// Do executes the "compute.machineImages.getIamPolicy" call.
99036// Exactly one of *Policy or error will be non-nil. Any non-2xx status
99037// code is an error. Response headers are in either
99038// *Policy.ServerResponse.Header or (if a response was returned at all)
99039// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
99040// check whether the returned error was because http.StatusNotModified
99041// was returned.
99042func (c *MachineImagesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
99043	gensupport.SetOptions(c.urlParams_, opts...)
99044	res, err := c.doRequest("json")
99045	if res != nil && res.StatusCode == http.StatusNotModified {
99046		if res.Body != nil {
99047			res.Body.Close()
99048		}
99049		return nil, &googleapi.Error{
99050			Code:   res.StatusCode,
99051			Header: res.Header,
99052		}
99053	}
99054	if err != nil {
99055		return nil, err
99056	}
99057	defer googleapi.CloseBody(res)
99058	if err := googleapi.CheckResponse(res); err != nil {
99059		return nil, err
99060	}
99061	ret := &Policy{
99062		ServerResponse: googleapi.ServerResponse{
99063			Header:         res.Header,
99064			HTTPStatusCode: res.StatusCode,
99065		},
99066	}
99067	target := &ret
99068	if err := gensupport.DecodeResponse(target, res); err != nil {
99069		return nil, err
99070	}
99071	return ret, nil
99072	// {
99073	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
99074	//   "httpMethod": "GET",
99075	//   "id": "compute.machineImages.getIamPolicy",
99076	//   "parameterOrder": [
99077	//     "project",
99078	//     "resource"
99079	//   ],
99080	//   "parameters": {
99081	//     "optionsRequestedPolicyVersion": {
99082	//       "description": "Requested IAM Policy version.",
99083	//       "format": "int32",
99084	//       "location": "query",
99085	//       "type": "integer"
99086	//     },
99087	//     "project": {
99088	//       "description": "Project ID for this request.",
99089	//       "location": "path",
99090	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99091	//       "required": true,
99092	//       "type": "string"
99093	//     },
99094	//     "resource": {
99095	//       "description": "Name or id of the resource for this request.",
99096	//       "location": "path",
99097	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99098	//       "required": true,
99099	//       "type": "string"
99100	//     }
99101	//   },
99102	//   "path": "{project}/global/machineImages/{resource}/getIamPolicy",
99103	//   "response": {
99104	//     "$ref": "Policy"
99105	//   },
99106	//   "scopes": [
99107	//     "https://www.googleapis.com/auth/cloud-platform",
99108	//     "https://www.googleapis.com/auth/compute",
99109	//     "https://www.googleapis.com/auth/compute.readonly"
99110	//   ]
99111	// }
99112
99113}
99114
99115// method id "compute.machineImages.insert":
99116
99117type MachineImagesInsertCall struct {
99118	s            *Service
99119	project      string
99120	machineimage *MachineImage
99121	urlParams_   gensupport.URLParams
99122	ctx_         context.Context
99123	header_      http.Header
99124}
99125
99126// Insert: Creates a machine image in the specified project using the
99127// data that is included in the request. If you are creating a new
99128// machine image to update an existing instance, your new machine image
99129// should use the same network or, if applicable, the same subnetwork as
99130// the original instance.
99131func (r *MachineImagesService) Insert(project string, machineimage *MachineImage) *MachineImagesInsertCall {
99132	c := &MachineImagesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99133	c.project = project
99134	c.machineimage = machineimage
99135	return c
99136}
99137
99138// RequestId sets the optional parameter "requestId": An optional
99139// request ID to identify requests. Specify a unique request ID so that
99140// if you must retry your request, the server will know to ignore the
99141// request if it has already been completed.
99142//
99143// For example, consider a situation where you make an initial request
99144// and the request times out. If you make the request again with the
99145// same request ID, the server can check if original operation with the
99146// same request ID was received, and if so, will ignore the second
99147// request. This prevents clients from accidentally creating duplicate
99148// commitments.
99149//
99150// The request ID must be a valid UUID with the exception that zero UUID
99151// is not supported (00000000-0000-0000-0000-000000000000).
99152func (c *MachineImagesInsertCall) RequestId(requestId string) *MachineImagesInsertCall {
99153	c.urlParams_.Set("requestId", requestId)
99154	return c
99155}
99156
99157// SourceInstance sets the optional parameter "sourceInstance":
99158// Required. Source instance that is used to create the machine image
99159// from.
99160func (c *MachineImagesInsertCall) SourceInstance(sourceInstance string) *MachineImagesInsertCall {
99161	c.urlParams_.Set("sourceInstance", sourceInstance)
99162	return c
99163}
99164
99165// Fields allows partial responses to be retrieved. See
99166// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99167// for more information.
99168func (c *MachineImagesInsertCall) Fields(s ...googleapi.Field) *MachineImagesInsertCall {
99169	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99170	return c
99171}
99172
99173// Context sets the context to be used in this call's Do method. Any
99174// pending HTTP request will be aborted if the provided context is
99175// canceled.
99176func (c *MachineImagesInsertCall) Context(ctx context.Context) *MachineImagesInsertCall {
99177	c.ctx_ = ctx
99178	return c
99179}
99180
99181// Header returns an http.Header that can be modified by the caller to
99182// add HTTP headers to the request.
99183func (c *MachineImagesInsertCall) Header() http.Header {
99184	if c.header_ == nil {
99185		c.header_ = make(http.Header)
99186	}
99187	return c.header_
99188}
99189
99190func (c *MachineImagesInsertCall) doRequest(alt string) (*http.Response, error) {
99191	reqHeaders := make(http.Header)
99192	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
99193	for k, v := range c.header_ {
99194		reqHeaders[k] = v
99195	}
99196	reqHeaders.Set("User-Agent", c.s.userAgent())
99197	var body io.Reader = nil
99198	body, err := googleapi.WithoutDataWrapper.JSONReader(c.machineimage)
99199	if err != nil {
99200		return nil, err
99201	}
99202	reqHeaders.Set("Content-Type", "application/json")
99203	c.urlParams_.Set("alt", alt)
99204	c.urlParams_.Set("prettyPrint", "false")
99205	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages")
99206	urls += "?" + c.urlParams_.Encode()
99207	req, err := http.NewRequest("POST", urls, body)
99208	if err != nil {
99209		return nil, err
99210	}
99211	req.Header = reqHeaders
99212	googleapi.Expand(req.URL, map[string]string{
99213		"project": c.project,
99214	})
99215	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99216}
99217
99218// Do executes the "compute.machineImages.insert" call.
99219// Exactly one of *Operation or error will be non-nil. Any non-2xx
99220// status code is an error. Response headers are in either
99221// *Operation.ServerResponse.Header or (if a response was returned at
99222// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
99223// to check whether the returned error was because
99224// http.StatusNotModified was returned.
99225func (c *MachineImagesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
99226	gensupport.SetOptions(c.urlParams_, opts...)
99227	res, err := c.doRequest("json")
99228	if res != nil && res.StatusCode == http.StatusNotModified {
99229		if res.Body != nil {
99230			res.Body.Close()
99231		}
99232		return nil, &googleapi.Error{
99233			Code:   res.StatusCode,
99234			Header: res.Header,
99235		}
99236	}
99237	if err != nil {
99238		return nil, err
99239	}
99240	defer googleapi.CloseBody(res)
99241	if err := googleapi.CheckResponse(res); err != nil {
99242		return nil, err
99243	}
99244	ret := &Operation{
99245		ServerResponse: googleapi.ServerResponse{
99246			Header:         res.Header,
99247			HTTPStatusCode: res.StatusCode,
99248		},
99249	}
99250	target := &ret
99251	if err := gensupport.DecodeResponse(target, res); err != nil {
99252		return nil, err
99253	}
99254	return ret, nil
99255	// {
99256	//   "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.",
99257	//   "httpMethod": "POST",
99258	//   "id": "compute.machineImages.insert",
99259	//   "parameterOrder": [
99260	//     "project"
99261	//   ],
99262	//   "parameters": {
99263	//     "project": {
99264	//       "description": "Project ID for this request.",
99265	//       "location": "path",
99266	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99267	//       "required": true,
99268	//       "type": "string"
99269	//     },
99270	//     "requestId": {
99271	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
99272	//       "location": "query",
99273	//       "type": "string"
99274	//     },
99275	//     "sourceInstance": {
99276	//       "description": "Required. Source instance that is used to create the machine image from.",
99277	//       "location": "query",
99278	//       "type": "string"
99279	//     }
99280	//   },
99281	//   "path": "{project}/global/machineImages",
99282	//   "request": {
99283	//     "$ref": "MachineImage"
99284	//   },
99285	//   "response": {
99286	//     "$ref": "Operation"
99287	//   },
99288	//   "scopes": [
99289	//     "https://www.googleapis.com/auth/cloud-platform",
99290	//     "https://www.googleapis.com/auth/compute"
99291	//   ]
99292	// }
99293
99294}
99295
99296// method id "compute.machineImages.list":
99297
99298type MachineImagesListCall struct {
99299	s            *Service
99300	project      string
99301	urlParams_   gensupport.URLParams
99302	ifNoneMatch_ string
99303	ctx_         context.Context
99304	header_      http.Header
99305}
99306
99307// List: Retrieves a list of machine images that are contained within
99308// the specified project.
99309func (r *MachineImagesService) List(project string) *MachineImagesListCall {
99310	c := &MachineImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99311	c.project = project
99312	return c
99313}
99314
99315// Filter sets the optional parameter "filter": A filter expression that
99316// filters resources listed in the response. The expression must specify
99317// the field name, a comparison operator, and the value that you want to
99318// use for filtering. The value must be a string, a number, or a
99319// boolean. The comparison operator must be either =, !=, >, or <.
99320//
99321// For example, if you are filtering Compute Engine instances, you can
99322// exclude instances named example-instance by specifying name !=
99323// example-instance.
99324//
99325// You can also filter nested fields. For example, you could specify
99326// scheduling.automaticRestart = false to include instances only if they
99327// are not scheduled for automatic restarts. You can use filtering on
99328// nested fields to filter based on resource labels.
99329//
99330// To filter on multiple expressions, provide each separate expression
99331// within parentheses. For example, (scheduling.automaticRestart = true)
99332// (cpuPlatform = "Intel Skylake"). By default, each expression is an
99333// AND expression. However, you can include AND and OR expressions
99334// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
99335// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
99336// true).
99337func (c *MachineImagesListCall) Filter(filter string) *MachineImagesListCall {
99338	c.urlParams_.Set("filter", filter)
99339	return c
99340}
99341
99342// MaxResults sets the optional parameter "maxResults": The maximum
99343// number of results per page that should be returned. If the number of
99344// available results is larger than maxResults, Compute Engine returns a
99345// nextPageToken that can be used to get the next page of results in
99346// subsequent list requests. Acceptable values are 0 to 500, inclusive.
99347// (Default: 500)
99348func (c *MachineImagesListCall) MaxResults(maxResults int64) *MachineImagesListCall {
99349	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
99350	return c
99351}
99352
99353// OrderBy sets the optional parameter "orderBy": Sorts list results by
99354// a certain order. By default, results are returned in alphanumerical
99355// order based on the resource name.
99356//
99357// You can also sort results in descending order based on the creation
99358// timestamp using orderBy="creationTimestamp desc". This sorts results
99359// based on the creationTimestamp field in reverse chronological order
99360// (newest result first). Use this to sort resources like operations so
99361// that the newest operation is returned first.
99362//
99363// Currently, only sorting by name or creationTimestamp desc is
99364// supported.
99365func (c *MachineImagesListCall) OrderBy(orderBy string) *MachineImagesListCall {
99366	c.urlParams_.Set("orderBy", orderBy)
99367	return c
99368}
99369
99370// PageToken sets the optional parameter "pageToken": Specifies a page
99371// token to use. Set pageToken to the nextPageToken returned by a
99372// previous list request to get the next page of results.
99373func (c *MachineImagesListCall) PageToken(pageToken string) *MachineImagesListCall {
99374	c.urlParams_.Set("pageToken", pageToken)
99375	return c
99376}
99377
99378// Fields allows partial responses to be retrieved. See
99379// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99380// for more information.
99381func (c *MachineImagesListCall) Fields(s ...googleapi.Field) *MachineImagesListCall {
99382	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99383	return c
99384}
99385
99386// IfNoneMatch sets the optional parameter which makes the operation
99387// fail if the object's ETag matches the given value. This is useful for
99388// getting updates only after the object has changed since the last
99389// request. Use googleapi.IsNotModified to check whether the response
99390// error from Do is the result of In-None-Match.
99391func (c *MachineImagesListCall) IfNoneMatch(entityTag string) *MachineImagesListCall {
99392	c.ifNoneMatch_ = entityTag
99393	return c
99394}
99395
99396// Context sets the context to be used in this call's Do method. Any
99397// pending HTTP request will be aborted if the provided context is
99398// canceled.
99399func (c *MachineImagesListCall) Context(ctx context.Context) *MachineImagesListCall {
99400	c.ctx_ = ctx
99401	return c
99402}
99403
99404// Header returns an http.Header that can be modified by the caller to
99405// add HTTP headers to the request.
99406func (c *MachineImagesListCall) Header() http.Header {
99407	if c.header_ == nil {
99408		c.header_ = make(http.Header)
99409	}
99410	return c.header_
99411}
99412
99413func (c *MachineImagesListCall) doRequest(alt string) (*http.Response, error) {
99414	reqHeaders := make(http.Header)
99415	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
99416	for k, v := range c.header_ {
99417		reqHeaders[k] = v
99418	}
99419	reqHeaders.Set("User-Agent", c.s.userAgent())
99420	if c.ifNoneMatch_ != "" {
99421		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99422	}
99423	var body io.Reader = nil
99424	c.urlParams_.Set("alt", alt)
99425	c.urlParams_.Set("prettyPrint", "false")
99426	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages")
99427	urls += "?" + c.urlParams_.Encode()
99428	req, err := http.NewRequest("GET", urls, body)
99429	if err != nil {
99430		return nil, err
99431	}
99432	req.Header = reqHeaders
99433	googleapi.Expand(req.URL, map[string]string{
99434		"project": c.project,
99435	})
99436	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99437}
99438
99439// Do executes the "compute.machineImages.list" call.
99440// Exactly one of *MachineImageList or error will be non-nil. Any
99441// non-2xx status code is an error. Response headers are in either
99442// *MachineImageList.ServerResponse.Header or (if a response was
99443// returned at all) in error.(*googleapi.Error).Header. Use
99444// googleapi.IsNotModified to check whether the returned error was
99445// because http.StatusNotModified was returned.
99446func (c *MachineImagesListCall) Do(opts ...googleapi.CallOption) (*MachineImageList, error) {
99447	gensupport.SetOptions(c.urlParams_, opts...)
99448	res, err := c.doRequest("json")
99449	if res != nil && res.StatusCode == http.StatusNotModified {
99450		if res.Body != nil {
99451			res.Body.Close()
99452		}
99453		return nil, &googleapi.Error{
99454			Code:   res.StatusCode,
99455			Header: res.Header,
99456		}
99457	}
99458	if err != nil {
99459		return nil, err
99460	}
99461	defer googleapi.CloseBody(res)
99462	if err := googleapi.CheckResponse(res); err != nil {
99463		return nil, err
99464	}
99465	ret := &MachineImageList{
99466		ServerResponse: googleapi.ServerResponse{
99467			Header:         res.Header,
99468			HTTPStatusCode: res.StatusCode,
99469		},
99470	}
99471	target := &ret
99472	if err := gensupport.DecodeResponse(target, res); err != nil {
99473		return nil, err
99474	}
99475	return ret, nil
99476	// {
99477	//   "description": "Retrieves a list of machine images that are contained within the specified project.",
99478	//   "httpMethod": "GET",
99479	//   "id": "compute.machineImages.list",
99480	//   "parameterOrder": [
99481	//     "project"
99482	//   ],
99483	//   "parameters": {
99484	//     "filter": {
99485	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
99486	//       "location": "query",
99487	//       "type": "string"
99488	//     },
99489	//     "maxResults": {
99490	//       "default": "500",
99491	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
99492	//       "format": "uint32",
99493	//       "location": "query",
99494	//       "minimum": "0",
99495	//       "type": "integer"
99496	//     },
99497	//     "orderBy": {
99498	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
99499	//       "location": "query",
99500	//       "type": "string"
99501	//     },
99502	//     "pageToken": {
99503	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
99504	//       "location": "query",
99505	//       "type": "string"
99506	//     },
99507	//     "project": {
99508	//       "description": "Project ID for this request.",
99509	//       "location": "path",
99510	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99511	//       "required": true,
99512	//       "type": "string"
99513	//     }
99514	//   },
99515	//   "path": "{project}/global/machineImages",
99516	//   "response": {
99517	//     "$ref": "MachineImageList"
99518	//   },
99519	//   "scopes": [
99520	//     "https://www.googleapis.com/auth/cloud-platform",
99521	//     "https://www.googleapis.com/auth/compute",
99522	//     "https://www.googleapis.com/auth/compute.readonly"
99523	//   ]
99524	// }
99525
99526}
99527
99528// Pages invokes f for each page of results.
99529// A non-nil error returned from f will halt the iteration.
99530// The provided context supersedes any context provided to the Context method.
99531func (c *MachineImagesListCall) Pages(ctx context.Context, f func(*MachineImageList) error) error {
99532	c.ctx_ = ctx
99533	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
99534	for {
99535		x, err := c.Do()
99536		if err != nil {
99537			return err
99538		}
99539		if err := f(x); err != nil {
99540			return err
99541		}
99542		if x.NextPageToken == "" {
99543			return nil
99544		}
99545		c.PageToken(x.NextPageToken)
99546	}
99547}
99548
99549// method id "compute.machineImages.setIamPolicy":
99550
99551type MachineImagesSetIamPolicyCall struct {
99552	s                      *Service
99553	project                string
99554	resource               string
99555	globalsetpolicyrequest *GlobalSetPolicyRequest
99556	urlParams_             gensupport.URLParams
99557	ctx_                   context.Context
99558	header_                http.Header
99559}
99560
99561// SetIamPolicy: Sets the access control policy on the specified
99562// resource. Replaces any existing policy.
99563func (r *MachineImagesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *MachineImagesSetIamPolicyCall {
99564	c := &MachineImagesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99565	c.project = project
99566	c.resource = resource
99567	c.globalsetpolicyrequest = globalsetpolicyrequest
99568	return c
99569}
99570
99571// Fields allows partial responses to be retrieved. See
99572// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99573// for more information.
99574func (c *MachineImagesSetIamPolicyCall) Fields(s ...googleapi.Field) *MachineImagesSetIamPolicyCall {
99575	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99576	return c
99577}
99578
99579// Context sets the context to be used in this call's Do method. Any
99580// pending HTTP request will be aborted if the provided context is
99581// canceled.
99582func (c *MachineImagesSetIamPolicyCall) Context(ctx context.Context) *MachineImagesSetIamPolicyCall {
99583	c.ctx_ = ctx
99584	return c
99585}
99586
99587// Header returns an http.Header that can be modified by the caller to
99588// add HTTP headers to the request.
99589func (c *MachineImagesSetIamPolicyCall) Header() http.Header {
99590	if c.header_ == nil {
99591		c.header_ = make(http.Header)
99592	}
99593	return c.header_
99594}
99595
99596func (c *MachineImagesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
99597	reqHeaders := make(http.Header)
99598	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
99599	for k, v := range c.header_ {
99600		reqHeaders[k] = v
99601	}
99602	reqHeaders.Set("User-Agent", c.s.userAgent())
99603	var body io.Reader = nil
99604	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
99605	if err != nil {
99606		return nil, err
99607	}
99608	reqHeaders.Set("Content-Type", "application/json")
99609	c.urlParams_.Set("alt", alt)
99610	c.urlParams_.Set("prettyPrint", "false")
99611	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages/{resource}/setIamPolicy")
99612	urls += "?" + c.urlParams_.Encode()
99613	req, err := http.NewRequest("POST", urls, body)
99614	if err != nil {
99615		return nil, err
99616	}
99617	req.Header = reqHeaders
99618	googleapi.Expand(req.URL, map[string]string{
99619		"project":  c.project,
99620		"resource": c.resource,
99621	})
99622	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99623}
99624
99625// Do executes the "compute.machineImages.setIamPolicy" call.
99626// Exactly one of *Policy or error will be non-nil. Any non-2xx status
99627// code is an error. Response headers are in either
99628// *Policy.ServerResponse.Header or (if a response was returned at all)
99629// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
99630// check whether the returned error was because http.StatusNotModified
99631// was returned.
99632func (c *MachineImagesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
99633	gensupport.SetOptions(c.urlParams_, opts...)
99634	res, err := c.doRequest("json")
99635	if res != nil && res.StatusCode == http.StatusNotModified {
99636		if res.Body != nil {
99637			res.Body.Close()
99638		}
99639		return nil, &googleapi.Error{
99640			Code:   res.StatusCode,
99641			Header: res.Header,
99642		}
99643	}
99644	if err != nil {
99645		return nil, err
99646	}
99647	defer googleapi.CloseBody(res)
99648	if err := googleapi.CheckResponse(res); err != nil {
99649		return nil, err
99650	}
99651	ret := &Policy{
99652		ServerResponse: googleapi.ServerResponse{
99653			Header:         res.Header,
99654			HTTPStatusCode: res.StatusCode,
99655		},
99656	}
99657	target := &ret
99658	if err := gensupport.DecodeResponse(target, res); err != nil {
99659		return nil, err
99660	}
99661	return ret, nil
99662	// {
99663	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
99664	//   "httpMethod": "POST",
99665	//   "id": "compute.machineImages.setIamPolicy",
99666	//   "parameterOrder": [
99667	//     "project",
99668	//     "resource"
99669	//   ],
99670	//   "parameters": {
99671	//     "project": {
99672	//       "description": "Project ID for this request.",
99673	//       "location": "path",
99674	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99675	//       "required": true,
99676	//       "type": "string"
99677	//     },
99678	//     "resource": {
99679	//       "description": "Name or id of the resource for this request.",
99680	//       "location": "path",
99681	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99682	//       "required": true,
99683	//       "type": "string"
99684	//     }
99685	//   },
99686	//   "path": "{project}/global/machineImages/{resource}/setIamPolicy",
99687	//   "request": {
99688	//     "$ref": "GlobalSetPolicyRequest"
99689	//   },
99690	//   "response": {
99691	//     "$ref": "Policy"
99692	//   },
99693	//   "scopes": [
99694	//     "https://www.googleapis.com/auth/cloud-platform",
99695	//     "https://www.googleapis.com/auth/compute"
99696	//   ]
99697	// }
99698
99699}
99700
99701// method id "compute.machineImages.testIamPermissions":
99702
99703type MachineImagesTestIamPermissionsCall struct {
99704	s                      *Service
99705	project                string
99706	resource               string
99707	testpermissionsrequest *TestPermissionsRequest
99708	urlParams_             gensupport.URLParams
99709	ctx_                   context.Context
99710	header_                http.Header
99711}
99712
99713// TestIamPermissions: Returns permissions that a caller has on the
99714// specified resource.
99715func (r *MachineImagesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *MachineImagesTestIamPermissionsCall {
99716	c := &MachineImagesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99717	c.project = project
99718	c.resource = resource
99719	c.testpermissionsrequest = testpermissionsrequest
99720	return c
99721}
99722
99723// Fields allows partial responses to be retrieved. See
99724// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99725// for more information.
99726func (c *MachineImagesTestIamPermissionsCall) Fields(s ...googleapi.Field) *MachineImagesTestIamPermissionsCall {
99727	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99728	return c
99729}
99730
99731// Context sets the context to be used in this call's Do method. Any
99732// pending HTTP request will be aborted if the provided context is
99733// canceled.
99734func (c *MachineImagesTestIamPermissionsCall) Context(ctx context.Context) *MachineImagesTestIamPermissionsCall {
99735	c.ctx_ = ctx
99736	return c
99737}
99738
99739// Header returns an http.Header that can be modified by the caller to
99740// add HTTP headers to the request.
99741func (c *MachineImagesTestIamPermissionsCall) Header() http.Header {
99742	if c.header_ == nil {
99743		c.header_ = make(http.Header)
99744	}
99745	return c.header_
99746}
99747
99748func (c *MachineImagesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
99749	reqHeaders := make(http.Header)
99750	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
99751	for k, v := range c.header_ {
99752		reqHeaders[k] = v
99753	}
99754	reqHeaders.Set("User-Agent", c.s.userAgent())
99755	var body io.Reader = nil
99756	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
99757	if err != nil {
99758		return nil, err
99759	}
99760	reqHeaders.Set("Content-Type", "application/json")
99761	c.urlParams_.Set("alt", alt)
99762	c.urlParams_.Set("prettyPrint", "false")
99763	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages/{resource}/testIamPermissions")
99764	urls += "?" + c.urlParams_.Encode()
99765	req, err := http.NewRequest("POST", urls, body)
99766	if err != nil {
99767		return nil, err
99768	}
99769	req.Header = reqHeaders
99770	googleapi.Expand(req.URL, map[string]string{
99771		"project":  c.project,
99772		"resource": c.resource,
99773	})
99774	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99775}
99776
99777// Do executes the "compute.machineImages.testIamPermissions" call.
99778// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
99779// non-2xx status code is an error. Response headers are in either
99780// *TestPermissionsResponse.ServerResponse.Header or (if a response was
99781// returned at all) in error.(*googleapi.Error).Header. Use
99782// googleapi.IsNotModified to check whether the returned error was
99783// because http.StatusNotModified was returned.
99784func (c *MachineImagesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
99785	gensupport.SetOptions(c.urlParams_, opts...)
99786	res, err := c.doRequest("json")
99787	if res != nil && res.StatusCode == http.StatusNotModified {
99788		if res.Body != nil {
99789			res.Body.Close()
99790		}
99791		return nil, &googleapi.Error{
99792			Code:   res.StatusCode,
99793			Header: res.Header,
99794		}
99795	}
99796	if err != nil {
99797		return nil, err
99798	}
99799	defer googleapi.CloseBody(res)
99800	if err := googleapi.CheckResponse(res); err != nil {
99801		return nil, err
99802	}
99803	ret := &TestPermissionsResponse{
99804		ServerResponse: googleapi.ServerResponse{
99805			Header:         res.Header,
99806			HTTPStatusCode: res.StatusCode,
99807		},
99808	}
99809	target := &ret
99810	if err := gensupport.DecodeResponse(target, res); err != nil {
99811		return nil, err
99812	}
99813	return ret, nil
99814	// {
99815	//   "description": "Returns permissions that a caller has on the specified resource.",
99816	//   "httpMethod": "POST",
99817	//   "id": "compute.machineImages.testIamPermissions",
99818	//   "parameterOrder": [
99819	//     "project",
99820	//     "resource"
99821	//   ],
99822	//   "parameters": {
99823	//     "project": {
99824	//       "description": "Project ID for this request.",
99825	//       "location": "path",
99826	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99827	//       "required": true,
99828	//       "type": "string"
99829	//     },
99830	//     "resource": {
99831	//       "description": "Name or id of the resource for this request.",
99832	//       "location": "path",
99833	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99834	//       "required": true,
99835	//       "type": "string"
99836	//     }
99837	//   },
99838	//   "path": "{project}/global/machineImages/{resource}/testIamPermissions",
99839	//   "request": {
99840	//     "$ref": "TestPermissionsRequest"
99841	//   },
99842	//   "response": {
99843	//     "$ref": "TestPermissionsResponse"
99844	//   },
99845	//   "scopes": [
99846	//     "https://www.googleapis.com/auth/cloud-platform",
99847	//     "https://www.googleapis.com/auth/compute",
99848	//     "https://www.googleapis.com/auth/compute.readonly"
99849	//   ]
99850	// }
99851
99852}
99853
99854// method id "compute.machineTypes.aggregatedList":
99855
99856type MachineTypesAggregatedListCall struct {
99857	s            *Service
99858	project      string
99859	urlParams_   gensupport.URLParams
99860	ifNoneMatch_ string
99861	ctx_         context.Context
99862	header_      http.Header
99863}
99864
99865// AggregatedList: Retrieves an aggregated list of machine types.
99866// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/aggregatedList
99867func (r *MachineTypesService) AggregatedList(project string) *MachineTypesAggregatedListCall {
99868	c := &MachineTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99869	c.project = project
99870	return c
99871}
99872
99873// Filter sets the optional parameter "filter": A filter expression that
99874// filters resources listed in the response. The expression must specify
99875// the field name, a comparison operator, and the value that you want to
99876// use for filtering. The value must be a string, a number, or a
99877// boolean. The comparison operator must be either =, !=, >, or <.
99878//
99879// For example, if you are filtering Compute Engine instances, you can
99880// exclude instances named example-instance by specifying name !=
99881// example-instance.
99882//
99883// You can also filter nested fields. For example, you could specify
99884// scheduling.automaticRestart = false to include instances only if they
99885// are not scheduled for automatic restarts. You can use filtering on
99886// nested fields to filter based on resource labels.
99887//
99888// To filter on multiple expressions, provide each separate expression
99889// within parentheses. For example, (scheduling.automaticRestart = true)
99890// (cpuPlatform = "Intel Skylake"). By default, each expression is an
99891// AND expression. However, you can include AND and OR expressions
99892// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
99893// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
99894// true).
99895func (c *MachineTypesAggregatedListCall) Filter(filter string) *MachineTypesAggregatedListCall {
99896	c.urlParams_.Set("filter", filter)
99897	return c
99898}
99899
99900// IncludeAllScopes sets the optional parameter "includeAllScopes":
99901// Indicates whether every visible scope for each scope type (zone,
99902// region, global) should be included in the response. For new resource
99903// types added after this field, the flag has no effect as new resource
99904// types will always include every visible scope for each scope type in
99905// response. For resource types which predate this field, if this flag
99906// is omitted or false, only scopes of the scope types where the
99907// resource type is expected to be found will be included.
99908func (c *MachineTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *MachineTypesAggregatedListCall {
99909	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
99910	return c
99911}
99912
99913// MaxResults sets the optional parameter "maxResults": The maximum
99914// number of results per page that should be returned. If the number of
99915// available results is larger than maxResults, Compute Engine returns a
99916// nextPageToken that can be used to get the next page of results in
99917// subsequent list requests. Acceptable values are 0 to 500, inclusive.
99918// (Default: 500)
99919func (c *MachineTypesAggregatedListCall) MaxResults(maxResults int64) *MachineTypesAggregatedListCall {
99920	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
99921	return c
99922}
99923
99924// OrderBy sets the optional parameter "orderBy": Sorts list results by
99925// a certain order. By default, results are returned in alphanumerical
99926// order based on the resource name.
99927//
99928// You can also sort results in descending order based on the creation
99929// timestamp using orderBy="creationTimestamp desc". This sorts results
99930// based on the creationTimestamp field in reverse chronological order
99931// (newest result first). Use this to sort resources like operations so
99932// that the newest operation is returned first.
99933//
99934// Currently, only sorting by name or creationTimestamp desc is
99935// supported.
99936func (c *MachineTypesAggregatedListCall) OrderBy(orderBy string) *MachineTypesAggregatedListCall {
99937	c.urlParams_.Set("orderBy", orderBy)
99938	return c
99939}
99940
99941// PageToken sets the optional parameter "pageToken": Specifies a page
99942// token to use. Set pageToken to the nextPageToken returned by a
99943// previous list request to get the next page of results.
99944func (c *MachineTypesAggregatedListCall) PageToken(pageToken string) *MachineTypesAggregatedListCall {
99945	c.urlParams_.Set("pageToken", pageToken)
99946	return c
99947}
99948
99949// Fields allows partial responses to be retrieved. See
99950// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99951// for more information.
99952func (c *MachineTypesAggregatedListCall) Fields(s ...googleapi.Field) *MachineTypesAggregatedListCall {
99953	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99954	return c
99955}
99956
99957// IfNoneMatch sets the optional parameter which makes the operation
99958// fail if the object's ETag matches the given value. This is useful for
99959// getting updates only after the object has changed since the last
99960// request. Use googleapi.IsNotModified to check whether the response
99961// error from Do is the result of In-None-Match.
99962func (c *MachineTypesAggregatedListCall) IfNoneMatch(entityTag string) *MachineTypesAggregatedListCall {
99963	c.ifNoneMatch_ = entityTag
99964	return c
99965}
99966
99967// Context sets the context to be used in this call's Do method. Any
99968// pending HTTP request will be aborted if the provided context is
99969// canceled.
99970func (c *MachineTypesAggregatedListCall) Context(ctx context.Context) *MachineTypesAggregatedListCall {
99971	c.ctx_ = ctx
99972	return c
99973}
99974
99975// Header returns an http.Header that can be modified by the caller to
99976// add HTTP headers to the request.
99977func (c *MachineTypesAggregatedListCall) Header() http.Header {
99978	if c.header_ == nil {
99979		c.header_ = make(http.Header)
99980	}
99981	return c.header_
99982}
99983
99984func (c *MachineTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
99985	reqHeaders := make(http.Header)
99986	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
99987	for k, v := range c.header_ {
99988		reqHeaders[k] = v
99989	}
99990	reqHeaders.Set("User-Agent", c.s.userAgent())
99991	if c.ifNoneMatch_ != "" {
99992		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99993	}
99994	var body io.Reader = nil
99995	c.urlParams_.Set("alt", alt)
99996	c.urlParams_.Set("prettyPrint", "false")
99997	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/machineTypes")
99998	urls += "?" + c.urlParams_.Encode()
99999	req, err := http.NewRequest("GET", urls, body)
100000	if err != nil {
100001		return nil, err
100002	}
100003	req.Header = reqHeaders
100004	googleapi.Expand(req.URL, map[string]string{
100005		"project": c.project,
100006	})
100007	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100008}
100009
100010// Do executes the "compute.machineTypes.aggregatedList" call.
100011// Exactly one of *MachineTypeAggregatedList or error will be non-nil.
100012// Any non-2xx status code is an error. Response headers are in either
100013// *MachineTypeAggregatedList.ServerResponse.Header or (if a response
100014// was returned at all) in error.(*googleapi.Error).Header. Use
100015// googleapi.IsNotModified to check whether the returned error was
100016// because http.StatusNotModified was returned.
100017func (c *MachineTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*MachineTypeAggregatedList, error) {
100018	gensupport.SetOptions(c.urlParams_, opts...)
100019	res, err := c.doRequest("json")
100020	if res != nil && res.StatusCode == http.StatusNotModified {
100021		if res.Body != nil {
100022			res.Body.Close()
100023		}
100024		return nil, &googleapi.Error{
100025			Code:   res.StatusCode,
100026			Header: res.Header,
100027		}
100028	}
100029	if err != nil {
100030		return nil, err
100031	}
100032	defer googleapi.CloseBody(res)
100033	if err := googleapi.CheckResponse(res); err != nil {
100034		return nil, err
100035	}
100036	ret := &MachineTypeAggregatedList{
100037		ServerResponse: googleapi.ServerResponse{
100038			Header:         res.Header,
100039			HTTPStatusCode: res.StatusCode,
100040		},
100041	}
100042	target := &ret
100043	if err := gensupport.DecodeResponse(target, res); err != nil {
100044		return nil, err
100045	}
100046	return ret, nil
100047	// {
100048	//   "description": "Retrieves an aggregated list of machine types.",
100049	//   "httpMethod": "GET",
100050	//   "id": "compute.machineTypes.aggregatedList",
100051	//   "parameterOrder": [
100052	//     "project"
100053	//   ],
100054	//   "parameters": {
100055	//     "filter": {
100056	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
100057	//       "location": "query",
100058	//       "type": "string"
100059	//     },
100060	//     "includeAllScopes": {
100061	//       "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.",
100062	//       "location": "query",
100063	//       "type": "boolean"
100064	//     },
100065	//     "maxResults": {
100066	//       "default": "500",
100067	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
100068	//       "format": "uint32",
100069	//       "location": "query",
100070	//       "minimum": "0",
100071	//       "type": "integer"
100072	//     },
100073	//     "orderBy": {
100074	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
100075	//       "location": "query",
100076	//       "type": "string"
100077	//     },
100078	//     "pageToken": {
100079	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
100080	//       "location": "query",
100081	//       "type": "string"
100082	//     },
100083	//     "project": {
100084	//       "description": "Project ID for this request.",
100085	//       "location": "path",
100086	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100087	//       "required": true,
100088	//       "type": "string"
100089	//     }
100090	//   },
100091	//   "path": "{project}/aggregated/machineTypes",
100092	//   "response": {
100093	//     "$ref": "MachineTypeAggregatedList"
100094	//   },
100095	//   "scopes": [
100096	//     "https://www.googleapis.com/auth/cloud-platform",
100097	//     "https://www.googleapis.com/auth/compute",
100098	//     "https://www.googleapis.com/auth/compute.readonly"
100099	//   ]
100100	// }
100101
100102}
100103
100104// Pages invokes f for each page of results.
100105// A non-nil error returned from f will halt the iteration.
100106// The provided context supersedes any context provided to the Context method.
100107func (c *MachineTypesAggregatedListCall) Pages(ctx context.Context, f func(*MachineTypeAggregatedList) error) error {
100108	c.ctx_ = ctx
100109	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
100110	for {
100111		x, err := c.Do()
100112		if err != nil {
100113			return err
100114		}
100115		if err := f(x); err != nil {
100116			return err
100117		}
100118		if x.NextPageToken == "" {
100119			return nil
100120		}
100121		c.PageToken(x.NextPageToken)
100122	}
100123}
100124
100125// method id "compute.machineTypes.get":
100126
100127type MachineTypesGetCall struct {
100128	s            *Service
100129	project      string
100130	zone         string
100131	machineType  string
100132	urlParams_   gensupport.URLParams
100133	ifNoneMatch_ string
100134	ctx_         context.Context
100135	header_      http.Header
100136}
100137
100138// Get: Returns the specified machine type. Gets a list of available
100139// machine types by making a list() request.
100140// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/get
100141func (r *MachineTypesService) Get(project string, zone string, machineType string) *MachineTypesGetCall {
100142	c := &MachineTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100143	c.project = project
100144	c.zone = zone
100145	c.machineType = machineType
100146	return c
100147}
100148
100149// Fields allows partial responses to be retrieved. See
100150// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100151// for more information.
100152func (c *MachineTypesGetCall) Fields(s ...googleapi.Field) *MachineTypesGetCall {
100153	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100154	return c
100155}
100156
100157// IfNoneMatch sets the optional parameter which makes the operation
100158// fail if the object's ETag matches the given value. This is useful for
100159// getting updates only after the object has changed since the last
100160// request. Use googleapi.IsNotModified to check whether the response
100161// error from Do is the result of In-None-Match.
100162func (c *MachineTypesGetCall) IfNoneMatch(entityTag string) *MachineTypesGetCall {
100163	c.ifNoneMatch_ = entityTag
100164	return c
100165}
100166
100167// Context sets the context to be used in this call's Do method. Any
100168// pending HTTP request will be aborted if the provided context is
100169// canceled.
100170func (c *MachineTypesGetCall) Context(ctx context.Context) *MachineTypesGetCall {
100171	c.ctx_ = ctx
100172	return c
100173}
100174
100175// Header returns an http.Header that can be modified by the caller to
100176// add HTTP headers to the request.
100177func (c *MachineTypesGetCall) Header() http.Header {
100178	if c.header_ == nil {
100179		c.header_ = make(http.Header)
100180	}
100181	return c.header_
100182}
100183
100184func (c *MachineTypesGetCall) doRequest(alt string) (*http.Response, error) {
100185	reqHeaders := make(http.Header)
100186	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
100187	for k, v := range c.header_ {
100188		reqHeaders[k] = v
100189	}
100190	reqHeaders.Set("User-Agent", c.s.userAgent())
100191	if c.ifNoneMatch_ != "" {
100192		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100193	}
100194	var body io.Reader = nil
100195	c.urlParams_.Set("alt", alt)
100196	c.urlParams_.Set("prettyPrint", "false")
100197	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/machineTypes/{machineType}")
100198	urls += "?" + c.urlParams_.Encode()
100199	req, err := http.NewRequest("GET", urls, body)
100200	if err != nil {
100201		return nil, err
100202	}
100203	req.Header = reqHeaders
100204	googleapi.Expand(req.URL, map[string]string{
100205		"project":     c.project,
100206		"zone":        c.zone,
100207		"machineType": c.machineType,
100208	})
100209	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100210}
100211
100212// Do executes the "compute.machineTypes.get" call.
100213// Exactly one of *MachineType or error will be non-nil. Any non-2xx
100214// status code is an error. Response headers are in either
100215// *MachineType.ServerResponse.Header or (if a response was returned at
100216// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100217// to check whether the returned error was because
100218// http.StatusNotModified was returned.
100219func (c *MachineTypesGetCall) Do(opts ...googleapi.CallOption) (*MachineType, error) {
100220	gensupport.SetOptions(c.urlParams_, opts...)
100221	res, err := c.doRequest("json")
100222	if res != nil && res.StatusCode == http.StatusNotModified {
100223		if res.Body != nil {
100224			res.Body.Close()
100225		}
100226		return nil, &googleapi.Error{
100227			Code:   res.StatusCode,
100228			Header: res.Header,
100229		}
100230	}
100231	if err != nil {
100232		return nil, err
100233	}
100234	defer googleapi.CloseBody(res)
100235	if err := googleapi.CheckResponse(res); err != nil {
100236		return nil, err
100237	}
100238	ret := &MachineType{
100239		ServerResponse: googleapi.ServerResponse{
100240			Header:         res.Header,
100241			HTTPStatusCode: res.StatusCode,
100242		},
100243	}
100244	target := &ret
100245	if err := gensupport.DecodeResponse(target, res); err != nil {
100246		return nil, err
100247	}
100248	return ret, nil
100249	// {
100250	//   "description": "Returns the specified machine type. Gets a list of available machine types by making a list() request.",
100251	//   "httpMethod": "GET",
100252	//   "id": "compute.machineTypes.get",
100253	//   "parameterOrder": [
100254	//     "project",
100255	//     "zone",
100256	//     "machineType"
100257	//   ],
100258	//   "parameters": {
100259	//     "machineType": {
100260	//       "description": "Name of the machine type to return.",
100261	//       "location": "path",
100262	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100263	//       "required": true,
100264	//       "type": "string"
100265	//     },
100266	//     "project": {
100267	//       "description": "Project ID for this request.",
100268	//       "location": "path",
100269	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100270	//       "required": true,
100271	//       "type": "string"
100272	//     },
100273	//     "zone": {
100274	//       "description": "The name of the zone for this request.",
100275	//       "location": "path",
100276	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
100277	//       "required": true,
100278	//       "type": "string"
100279	//     }
100280	//   },
100281	//   "path": "{project}/zones/{zone}/machineTypes/{machineType}",
100282	//   "response": {
100283	//     "$ref": "MachineType"
100284	//   },
100285	//   "scopes": [
100286	//     "https://www.googleapis.com/auth/cloud-platform",
100287	//     "https://www.googleapis.com/auth/compute",
100288	//     "https://www.googleapis.com/auth/compute.readonly"
100289	//   ]
100290	// }
100291
100292}
100293
100294// method id "compute.machineTypes.list":
100295
100296type MachineTypesListCall struct {
100297	s            *Service
100298	project      string
100299	zone         string
100300	urlParams_   gensupport.URLParams
100301	ifNoneMatch_ string
100302	ctx_         context.Context
100303	header_      http.Header
100304}
100305
100306// List: Retrieves a list of machine types available to the specified
100307// project.
100308// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/list
100309func (r *MachineTypesService) List(project string, zone string) *MachineTypesListCall {
100310	c := &MachineTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100311	c.project = project
100312	c.zone = zone
100313	return c
100314}
100315
100316// Filter sets the optional parameter "filter": A filter expression that
100317// filters resources listed in the response. The expression must specify
100318// the field name, a comparison operator, and the value that you want to
100319// use for filtering. The value must be a string, a number, or a
100320// boolean. The comparison operator must be either =, !=, >, or <.
100321//
100322// For example, if you are filtering Compute Engine instances, you can
100323// exclude instances named example-instance by specifying name !=
100324// example-instance.
100325//
100326// You can also filter nested fields. For example, you could specify
100327// scheduling.automaticRestart = false to include instances only if they
100328// are not scheduled for automatic restarts. You can use filtering on
100329// nested fields to filter based on resource labels.
100330//
100331// To filter on multiple expressions, provide each separate expression
100332// within parentheses. For example, (scheduling.automaticRestart = true)
100333// (cpuPlatform = "Intel Skylake"). By default, each expression is an
100334// AND expression. However, you can include AND and OR expressions
100335// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
100336// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
100337// true).
100338func (c *MachineTypesListCall) Filter(filter string) *MachineTypesListCall {
100339	c.urlParams_.Set("filter", filter)
100340	return c
100341}
100342
100343// MaxResults sets the optional parameter "maxResults": The maximum
100344// number of results per page that should be returned. If the number of
100345// available results is larger than maxResults, Compute Engine returns a
100346// nextPageToken that can be used to get the next page of results in
100347// subsequent list requests. Acceptable values are 0 to 500, inclusive.
100348// (Default: 500)
100349func (c *MachineTypesListCall) MaxResults(maxResults int64) *MachineTypesListCall {
100350	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
100351	return c
100352}
100353
100354// OrderBy sets the optional parameter "orderBy": Sorts list results by
100355// a certain order. By default, results are returned in alphanumerical
100356// order based on the resource name.
100357//
100358// You can also sort results in descending order based on the creation
100359// timestamp using orderBy="creationTimestamp desc". This sorts results
100360// based on the creationTimestamp field in reverse chronological order
100361// (newest result first). Use this to sort resources like operations so
100362// that the newest operation is returned first.
100363//
100364// Currently, only sorting by name or creationTimestamp desc is
100365// supported.
100366func (c *MachineTypesListCall) OrderBy(orderBy string) *MachineTypesListCall {
100367	c.urlParams_.Set("orderBy", orderBy)
100368	return c
100369}
100370
100371// PageToken sets the optional parameter "pageToken": Specifies a page
100372// token to use. Set pageToken to the nextPageToken returned by a
100373// previous list request to get the next page of results.
100374func (c *MachineTypesListCall) PageToken(pageToken string) *MachineTypesListCall {
100375	c.urlParams_.Set("pageToken", pageToken)
100376	return c
100377}
100378
100379// Fields allows partial responses to be retrieved. See
100380// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100381// for more information.
100382func (c *MachineTypesListCall) Fields(s ...googleapi.Field) *MachineTypesListCall {
100383	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100384	return c
100385}
100386
100387// IfNoneMatch sets the optional parameter which makes the operation
100388// fail if the object's ETag matches the given value. This is useful for
100389// getting updates only after the object has changed since the last
100390// request. Use googleapi.IsNotModified to check whether the response
100391// error from Do is the result of In-None-Match.
100392func (c *MachineTypesListCall) IfNoneMatch(entityTag string) *MachineTypesListCall {
100393	c.ifNoneMatch_ = entityTag
100394	return c
100395}
100396
100397// Context sets the context to be used in this call's Do method. Any
100398// pending HTTP request will be aborted if the provided context is
100399// canceled.
100400func (c *MachineTypesListCall) Context(ctx context.Context) *MachineTypesListCall {
100401	c.ctx_ = ctx
100402	return c
100403}
100404
100405// Header returns an http.Header that can be modified by the caller to
100406// add HTTP headers to the request.
100407func (c *MachineTypesListCall) Header() http.Header {
100408	if c.header_ == nil {
100409		c.header_ = make(http.Header)
100410	}
100411	return c.header_
100412}
100413
100414func (c *MachineTypesListCall) doRequest(alt string) (*http.Response, error) {
100415	reqHeaders := make(http.Header)
100416	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
100417	for k, v := range c.header_ {
100418		reqHeaders[k] = v
100419	}
100420	reqHeaders.Set("User-Agent", c.s.userAgent())
100421	if c.ifNoneMatch_ != "" {
100422		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100423	}
100424	var body io.Reader = nil
100425	c.urlParams_.Set("alt", alt)
100426	c.urlParams_.Set("prettyPrint", "false")
100427	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/machineTypes")
100428	urls += "?" + c.urlParams_.Encode()
100429	req, err := http.NewRequest("GET", urls, body)
100430	if err != nil {
100431		return nil, err
100432	}
100433	req.Header = reqHeaders
100434	googleapi.Expand(req.URL, map[string]string{
100435		"project": c.project,
100436		"zone":    c.zone,
100437	})
100438	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100439}
100440
100441// Do executes the "compute.machineTypes.list" call.
100442// Exactly one of *MachineTypeList or error will be non-nil. Any non-2xx
100443// status code is an error. Response headers are in either
100444// *MachineTypeList.ServerResponse.Header or (if a response was returned
100445// at all) in error.(*googleapi.Error).Header. Use
100446// googleapi.IsNotModified to check whether the returned error was
100447// because http.StatusNotModified was returned.
100448func (c *MachineTypesListCall) Do(opts ...googleapi.CallOption) (*MachineTypeList, error) {
100449	gensupport.SetOptions(c.urlParams_, opts...)
100450	res, err := c.doRequest("json")
100451	if res != nil && res.StatusCode == http.StatusNotModified {
100452		if res.Body != nil {
100453			res.Body.Close()
100454		}
100455		return nil, &googleapi.Error{
100456			Code:   res.StatusCode,
100457			Header: res.Header,
100458		}
100459	}
100460	if err != nil {
100461		return nil, err
100462	}
100463	defer googleapi.CloseBody(res)
100464	if err := googleapi.CheckResponse(res); err != nil {
100465		return nil, err
100466	}
100467	ret := &MachineTypeList{
100468		ServerResponse: googleapi.ServerResponse{
100469			Header:         res.Header,
100470			HTTPStatusCode: res.StatusCode,
100471		},
100472	}
100473	target := &ret
100474	if err := gensupport.DecodeResponse(target, res); err != nil {
100475		return nil, err
100476	}
100477	return ret, nil
100478	// {
100479	//   "description": "Retrieves a list of machine types available to the specified project.",
100480	//   "httpMethod": "GET",
100481	//   "id": "compute.machineTypes.list",
100482	//   "parameterOrder": [
100483	//     "project",
100484	//     "zone"
100485	//   ],
100486	//   "parameters": {
100487	//     "filter": {
100488	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
100489	//       "location": "query",
100490	//       "type": "string"
100491	//     },
100492	//     "maxResults": {
100493	//       "default": "500",
100494	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
100495	//       "format": "uint32",
100496	//       "location": "query",
100497	//       "minimum": "0",
100498	//       "type": "integer"
100499	//     },
100500	//     "orderBy": {
100501	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
100502	//       "location": "query",
100503	//       "type": "string"
100504	//     },
100505	//     "pageToken": {
100506	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
100507	//       "location": "query",
100508	//       "type": "string"
100509	//     },
100510	//     "project": {
100511	//       "description": "Project ID for this request.",
100512	//       "location": "path",
100513	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100514	//       "required": true,
100515	//       "type": "string"
100516	//     },
100517	//     "zone": {
100518	//       "description": "The name of the zone for this request.",
100519	//       "location": "path",
100520	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
100521	//       "required": true,
100522	//       "type": "string"
100523	//     }
100524	//   },
100525	//   "path": "{project}/zones/{zone}/machineTypes",
100526	//   "response": {
100527	//     "$ref": "MachineTypeList"
100528	//   },
100529	//   "scopes": [
100530	//     "https://www.googleapis.com/auth/cloud-platform",
100531	//     "https://www.googleapis.com/auth/compute",
100532	//     "https://www.googleapis.com/auth/compute.readonly"
100533	//   ]
100534	// }
100535
100536}
100537
100538// Pages invokes f for each page of results.
100539// A non-nil error returned from f will halt the iteration.
100540// The provided context supersedes any context provided to the Context method.
100541func (c *MachineTypesListCall) Pages(ctx context.Context, f func(*MachineTypeList) error) error {
100542	c.ctx_ = ctx
100543	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
100544	for {
100545		x, err := c.Do()
100546		if err != nil {
100547			return err
100548		}
100549		if err := f(x); err != nil {
100550			return err
100551		}
100552		if x.NextPageToken == "" {
100553			return nil
100554		}
100555		c.PageToken(x.NextPageToken)
100556	}
100557}
100558
100559// method id "compute.networkEndpointGroups.aggregatedList":
100560
100561type NetworkEndpointGroupsAggregatedListCall struct {
100562	s            *Service
100563	project      string
100564	urlParams_   gensupport.URLParams
100565	ifNoneMatch_ string
100566	ctx_         context.Context
100567	header_      http.Header
100568}
100569
100570// AggregatedList: Retrieves the list of network endpoint groups and
100571// sorts them by zone.
100572func (r *NetworkEndpointGroupsService) AggregatedList(project string) *NetworkEndpointGroupsAggregatedListCall {
100573	c := &NetworkEndpointGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100574	c.project = project
100575	return c
100576}
100577
100578// Filter sets the optional parameter "filter": A filter expression that
100579// filters resources listed in the response. The expression must specify
100580// the field name, a comparison operator, and the value that you want to
100581// use for filtering. The value must be a string, a number, or a
100582// boolean. The comparison operator must be either =, !=, >, or <.
100583//
100584// For example, if you are filtering Compute Engine instances, you can
100585// exclude instances named example-instance by specifying name !=
100586// example-instance.
100587//
100588// You can also filter nested fields. For example, you could specify
100589// scheduling.automaticRestart = false to include instances only if they
100590// are not scheduled for automatic restarts. You can use filtering on
100591// nested fields to filter based on resource labels.
100592//
100593// To filter on multiple expressions, provide each separate expression
100594// within parentheses. For example, (scheduling.automaticRestart = true)
100595// (cpuPlatform = "Intel Skylake"). By default, each expression is an
100596// AND expression. However, you can include AND and OR expressions
100597// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
100598// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
100599// true).
100600func (c *NetworkEndpointGroupsAggregatedListCall) Filter(filter string) *NetworkEndpointGroupsAggregatedListCall {
100601	c.urlParams_.Set("filter", filter)
100602	return c
100603}
100604
100605// IncludeAllScopes sets the optional parameter "includeAllScopes":
100606// Indicates whether every visible scope for each scope type (zone,
100607// region, global) should be included in the response. For new resource
100608// types added after this field, the flag has no effect as new resource
100609// types will always include every visible scope for each scope type in
100610// response. For resource types which predate this field, if this flag
100611// is omitted or false, only scopes of the scope types where the
100612// resource type is expected to be found will be included.
100613func (c *NetworkEndpointGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NetworkEndpointGroupsAggregatedListCall {
100614	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
100615	return c
100616}
100617
100618// MaxResults sets the optional parameter "maxResults": The maximum
100619// number of results per page that should be returned. If the number of
100620// available results is larger than maxResults, Compute Engine returns a
100621// nextPageToken that can be used to get the next page of results in
100622// subsequent list requests. Acceptable values are 0 to 500, inclusive.
100623// (Default: 500)
100624func (c *NetworkEndpointGroupsAggregatedListCall) MaxResults(maxResults int64) *NetworkEndpointGroupsAggregatedListCall {
100625	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
100626	return c
100627}
100628
100629// OrderBy sets the optional parameter "orderBy": Sorts list results by
100630// a certain order. By default, results are returned in alphanumerical
100631// order based on the resource name.
100632//
100633// You can also sort results in descending order based on the creation
100634// timestamp using orderBy="creationTimestamp desc". This sorts results
100635// based on the creationTimestamp field in reverse chronological order
100636// (newest result first). Use this to sort resources like operations so
100637// that the newest operation is returned first.
100638//
100639// Currently, only sorting by name or creationTimestamp desc is
100640// supported.
100641func (c *NetworkEndpointGroupsAggregatedListCall) OrderBy(orderBy string) *NetworkEndpointGroupsAggregatedListCall {
100642	c.urlParams_.Set("orderBy", orderBy)
100643	return c
100644}
100645
100646// PageToken sets the optional parameter "pageToken": Specifies a page
100647// token to use. Set pageToken to the nextPageToken returned by a
100648// previous list request to get the next page of results.
100649func (c *NetworkEndpointGroupsAggregatedListCall) PageToken(pageToken string) *NetworkEndpointGroupsAggregatedListCall {
100650	c.urlParams_.Set("pageToken", pageToken)
100651	return c
100652}
100653
100654// Fields allows partial responses to be retrieved. See
100655// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100656// for more information.
100657func (c *NetworkEndpointGroupsAggregatedListCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsAggregatedListCall {
100658	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100659	return c
100660}
100661
100662// IfNoneMatch sets the optional parameter which makes the operation
100663// fail if the object's ETag matches the given value. This is useful for
100664// getting updates only after the object has changed since the last
100665// request. Use googleapi.IsNotModified to check whether the response
100666// error from Do is the result of In-None-Match.
100667func (c *NetworkEndpointGroupsAggregatedListCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsAggregatedListCall {
100668	c.ifNoneMatch_ = entityTag
100669	return c
100670}
100671
100672// Context sets the context to be used in this call's Do method. Any
100673// pending HTTP request will be aborted if the provided context is
100674// canceled.
100675func (c *NetworkEndpointGroupsAggregatedListCall) Context(ctx context.Context) *NetworkEndpointGroupsAggregatedListCall {
100676	c.ctx_ = ctx
100677	return c
100678}
100679
100680// Header returns an http.Header that can be modified by the caller to
100681// add HTTP headers to the request.
100682func (c *NetworkEndpointGroupsAggregatedListCall) Header() http.Header {
100683	if c.header_ == nil {
100684		c.header_ = make(http.Header)
100685	}
100686	return c.header_
100687}
100688
100689func (c *NetworkEndpointGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
100690	reqHeaders := make(http.Header)
100691	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
100692	for k, v := range c.header_ {
100693		reqHeaders[k] = v
100694	}
100695	reqHeaders.Set("User-Agent", c.s.userAgent())
100696	if c.ifNoneMatch_ != "" {
100697		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100698	}
100699	var body io.Reader = nil
100700	c.urlParams_.Set("alt", alt)
100701	c.urlParams_.Set("prettyPrint", "false")
100702	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/networkEndpointGroups")
100703	urls += "?" + c.urlParams_.Encode()
100704	req, err := http.NewRequest("GET", urls, body)
100705	if err != nil {
100706		return nil, err
100707	}
100708	req.Header = reqHeaders
100709	googleapi.Expand(req.URL, map[string]string{
100710		"project": c.project,
100711	})
100712	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100713}
100714
100715// Do executes the "compute.networkEndpointGroups.aggregatedList" call.
100716// Exactly one of *NetworkEndpointGroupAggregatedList or error will be
100717// non-nil. Any non-2xx status code is an error. Response headers are in
100718// either *NetworkEndpointGroupAggregatedList.ServerResponse.Header or
100719// (if a response was returned at all) in
100720// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
100721// whether the returned error was because http.StatusNotModified was
100722// returned.
100723func (c *NetworkEndpointGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupAggregatedList, error) {
100724	gensupport.SetOptions(c.urlParams_, opts...)
100725	res, err := c.doRequest("json")
100726	if res != nil && res.StatusCode == http.StatusNotModified {
100727		if res.Body != nil {
100728			res.Body.Close()
100729		}
100730		return nil, &googleapi.Error{
100731			Code:   res.StatusCode,
100732			Header: res.Header,
100733		}
100734	}
100735	if err != nil {
100736		return nil, err
100737	}
100738	defer googleapi.CloseBody(res)
100739	if err := googleapi.CheckResponse(res); err != nil {
100740		return nil, err
100741	}
100742	ret := &NetworkEndpointGroupAggregatedList{
100743		ServerResponse: googleapi.ServerResponse{
100744			Header:         res.Header,
100745			HTTPStatusCode: res.StatusCode,
100746		},
100747	}
100748	target := &ret
100749	if err := gensupport.DecodeResponse(target, res); err != nil {
100750		return nil, err
100751	}
100752	return ret, nil
100753	// {
100754	//   "description": "Retrieves the list of network endpoint groups and sorts them by zone.",
100755	//   "httpMethod": "GET",
100756	//   "id": "compute.networkEndpointGroups.aggregatedList",
100757	//   "parameterOrder": [
100758	//     "project"
100759	//   ],
100760	//   "parameters": {
100761	//     "filter": {
100762	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
100763	//       "location": "query",
100764	//       "type": "string"
100765	//     },
100766	//     "includeAllScopes": {
100767	//       "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.",
100768	//       "location": "query",
100769	//       "type": "boolean"
100770	//     },
100771	//     "maxResults": {
100772	//       "default": "500",
100773	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
100774	//       "format": "uint32",
100775	//       "location": "query",
100776	//       "minimum": "0",
100777	//       "type": "integer"
100778	//     },
100779	//     "orderBy": {
100780	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
100781	//       "location": "query",
100782	//       "type": "string"
100783	//     },
100784	//     "pageToken": {
100785	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
100786	//       "location": "query",
100787	//       "type": "string"
100788	//     },
100789	//     "project": {
100790	//       "description": "Project ID for this request.",
100791	//       "location": "path",
100792	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100793	//       "required": true,
100794	//       "type": "string"
100795	//     }
100796	//   },
100797	//   "path": "{project}/aggregated/networkEndpointGroups",
100798	//   "response": {
100799	//     "$ref": "NetworkEndpointGroupAggregatedList"
100800	//   },
100801	//   "scopes": [
100802	//     "https://www.googleapis.com/auth/cloud-platform",
100803	//     "https://www.googleapis.com/auth/compute",
100804	//     "https://www.googleapis.com/auth/compute.readonly"
100805	//   ]
100806	// }
100807
100808}
100809
100810// Pages invokes f for each page of results.
100811// A non-nil error returned from f will halt the iteration.
100812// The provided context supersedes any context provided to the Context method.
100813func (c *NetworkEndpointGroupsAggregatedListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupAggregatedList) error) error {
100814	c.ctx_ = ctx
100815	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
100816	for {
100817		x, err := c.Do()
100818		if err != nil {
100819			return err
100820		}
100821		if err := f(x); err != nil {
100822			return err
100823		}
100824		if x.NextPageToken == "" {
100825			return nil
100826		}
100827		c.PageToken(x.NextPageToken)
100828	}
100829}
100830
100831// method id "compute.networkEndpointGroups.attachNetworkEndpoints":
100832
100833type NetworkEndpointGroupsAttachNetworkEndpointsCall struct {
100834	s                                           *Service
100835	project                                     string
100836	zone                                        string
100837	networkEndpointGroup                        string
100838	networkendpointgroupsattachendpointsrequest *NetworkEndpointGroupsAttachEndpointsRequest
100839	urlParams_                                  gensupport.URLParams
100840	ctx_                                        context.Context
100841	header_                                     http.Header
100842}
100843
100844// AttachNetworkEndpoints: Attach a list of network endpoints to the
100845// specified network endpoint group.
100846func (r *NetworkEndpointGroupsService) AttachNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupsattachendpointsrequest *NetworkEndpointGroupsAttachEndpointsRequest) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
100847	c := &NetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100848	c.project = project
100849	c.zone = zone
100850	c.networkEndpointGroup = networkEndpointGroup
100851	c.networkendpointgroupsattachendpointsrequest = networkendpointgroupsattachendpointsrequest
100852	return c
100853}
100854
100855// RequestId sets the optional parameter "requestId": An optional
100856// request ID to identify requests. Specify a unique request ID so that
100857// if you must retry your request, the server will know to ignore the
100858// request if it has already been completed.
100859//
100860// For example, consider a situation where you make an initial request
100861// and the request times out. If you make the request again with the
100862// same request ID, the server can check if original operation with the
100863// same request ID was received, and if so, will ignore the second
100864// request. This prevents clients from accidentally creating duplicate
100865// commitments.
100866//
100867// The request ID must be a valid UUID with the exception that zero UUID
100868// is not supported (00000000-0000-0000-0000-000000000000).
100869func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
100870	c.urlParams_.Set("requestId", requestId)
100871	return c
100872}
100873
100874// Fields allows partial responses to be retrieved. See
100875// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100876// for more information.
100877func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
100878	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100879	return c
100880}
100881
100882// Context sets the context to be used in this call's Do method. Any
100883// pending HTTP request will be aborted if the provided context is
100884// canceled.
100885func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
100886	c.ctx_ = ctx
100887	return c
100888}
100889
100890// Header returns an http.Header that can be modified by the caller to
100891// add HTTP headers to the request.
100892func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header {
100893	if c.header_ == nil {
100894		c.header_ = make(http.Header)
100895	}
100896	return c.header_
100897}
100898
100899func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
100900	reqHeaders := make(http.Header)
100901	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
100902	for k, v := range c.header_ {
100903		reqHeaders[k] = v
100904	}
100905	reqHeaders.Set("User-Agent", c.s.userAgent())
100906	var body io.Reader = nil
100907	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupsattachendpointsrequest)
100908	if err != nil {
100909		return nil, err
100910	}
100911	reqHeaders.Set("Content-Type", "application/json")
100912	c.urlParams_.Set("alt", alt)
100913	c.urlParams_.Set("prettyPrint", "false")
100914	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints")
100915	urls += "?" + c.urlParams_.Encode()
100916	req, err := http.NewRequest("POST", urls, body)
100917	if err != nil {
100918		return nil, err
100919	}
100920	req.Header = reqHeaders
100921	googleapi.Expand(req.URL, map[string]string{
100922		"project":              c.project,
100923		"zone":                 c.zone,
100924		"networkEndpointGroup": c.networkEndpointGroup,
100925	})
100926	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100927}
100928
100929// Do executes the "compute.networkEndpointGroups.attachNetworkEndpoints" call.
100930// Exactly one of *Operation or error will be non-nil. Any non-2xx
100931// status code is an error. Response headers are in either
100932// *Operation.ServerResponse.Header or (if a response was returned at
100933// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100934// to check whether the returned error was because
100935// http.StatusNotModified was returned.
100936func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
100937	gensupport.SetOptions(c.urlParams_, opts...)
100938	res, err := c.doRequest("json")
100939	if res != nil && res.StatusCode == http.StatusNotModified {
100940		if res.Body != nil {
100941			res.Body.Close()
100942		}
100943		return nil, &googleapi.Error{
100944			Code:   res.StatusCode,
100945			Header: res.Header,
100946		}
100947	}
100948	if err != nil {
100949		return nil, err
100950	}
100951	defer googleapi.CloseBody(res)
100952	if err := googleapi.CheckResponse(res); err != nil {
100953		return nil, err
100954	}
100955	ret := &Operation{
100956		ServerResponse: googleapi.ServerResponse{
100957			Header:         res.Header,
100958			HTTPStatusCode: res.StatusCode,
100959		},
100960	}
100961	target := &ret
100962	if err := gensupport.DecodeResponse(target, res); err != nil {
100963		return nil, err
100964	}
100965	return ret, nil
100966	// {
100967	//   "description": "Attach a list of network endpoints to the specified network endpoint group.",
100968	//   "httpMethod": "POST",
100969	//   "id": "compute.networkEndpointGroups.attachNetworkEndpoints",
100970	//   "parameterOrder": [
100971	//     "project",
100972	//     "zone",
100973	//     "networkEndpointGroup"
100974	//   ],
100975	//   "parameters": {
100976	//     "networkEndpointGroup": {
100977	//       "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.",
100978	//       "location": "path",
100979	//       "required": true,
100980	//       "type": "string"
100981	//     },
100982	//     "project": {
100983	//       "description": "Project ID for this request.",
100984	//       "location": "path",
100985	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100986	//       "required": true,
100987	//       "type": "string"
100988	//     },
100989	//     "requestId": {
100990	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
100991	//       "location": "query",
100992	//       "type": "string"
100993	//     },
100994	//     "zone": {
100995	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
100996	//       "location": "path",
100997	//       "required": true,
100998	//       "type": "string"
100999	//     }
101000	//   },
101001	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
101002	//   "request": {
101003	//     "$ref": "NetworkEndpointGroupsAttachEndpointsRequest"
101004	//   },
101005	//   "response": {
101006	//     "$ref": "Operation"
101007	//   },
101008	//   "scopes": [
101009	//     "https://www.googleapis.com/auth/cloud-platform",
101010	//     "https://www.googleapis.com/auth/compute"
101011	//   ]
101012	// }
101013
101014}
101015
101016// method id "compute.networkEndpointGroups.delete":
101017
101018type NetworkEndpointGroupsDeleteCall struct {
101019	s                    *Service
101020	project              string
101021	zone                 string
101022	networkEndpointGroup string
101023	urlParams_           gensupport.URLParams
101024	ctx_                 context.Context
101025	header_              http.Header
101026}
101027
101028// Delete: Deletes the specified network endpoint group. The network
101029// endpoints in the NEG and the VM instances they belong to are not
101030// terminated when the NEG is deleted. Note that the NEG cannot be
101031// deleted if there are backend services referencing it.
101032func (r *NetworkEndpointGroupsService) Delete(project string, zone string, networkEndpointGroup string) *NetworkEndpointGroupsDeleteCall {
101033	c := &NetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101034	c.project = project
101035	c.zone = zone
101036	c.networkEndpointGroup = networkEndpointGroup
101037	return c
101038}
101039
101040// RequestId sets the optional parameter "requestId": An optional
101041// request ID to identify requests. Specify a unique request ID so that
101042// if you must retry your request, the server will know to ignore the
101043// request if it has already been completed.
101044//
101045// For example, consider a situation where you make an initial request
101046// and the request times out. If you make the request again with the
101047// same request ID, the server can check if original operation with the
101048// same request ID was received, and if so, will ignore the second
101049// request. This prevents clients from accidentally creating duplicate
101050// commitments.
101051//
101052// The request ID must be a valid UUID with the exception that zero UUID
101053// is not supported (00000000-0000-0000-0000-000000000000).
101054func (c *NetworkEndpointGroupsDeleteCall) RequestId(requestId string) *NetworkEndpointGroupsDeleteCall {
101055	c.urlParams_.Set("requestId", requestId)
101056	return c
101057}
101058
101059// Fields allows partial responses to be retrieved. See
101060// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101061// for more information.
101062func (c *NetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsDeleteCall {
101063	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101064	return c
101065}
101066
101067// Context sets the context to be used in this call's Do method. Any
101068// pending HTTP request will be aborted if the provided context is
101069// canceled.
101070func (c *NetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *NetworkEndpointGroupsDeleteCall {
101071	c.ctx_ = ctx
101072	return c
101073}
101074
101075// Header returns an http.Header that can be modified by the caller to
101076// add HTTP headers to the request.
101077func (c *NetworkEndpointGroupsDeleteCall) Header() http.Header {
101078	if c.header_ == nil {
101079		c.header_ = make(http.Header)
101080	}
101081	return c.header_
101082}
101083
101084func (c *NetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
101085	reqHeaders := make(http.Header)
101086	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
101087	for k, v := range c.header_ {
101088		reqHeaders[k] = v
101089	}
101090	reqHeaders.Set("User-Agent", c.s.userAgent())
101091	var body io.Reader = nil
101092	c.urlParams_.Set("alt", alt)
101093	c.urlParams_.Set("prettyPrint", "false")
101094	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}")
101095	urls += "?" + c.urlParams_.Encode()
101096	req, err := http.NewRequest("DELETE", urls, body)
101097	if err != nil {
101098		return nil, err
101099	}
101100	req.Header = reqHeaders
101101	googleapi.Expand(req.URL, map[string]string{
101102		"project":              c.project,
101103		"zone":                 c.zone,
101104		"networkEndpointGroup": c.networkEndpointGroup,
101105	})
101106	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101107}
101108
101109// Do executes the "compute.networkEndpointGroups.delete" call.
101110// Exactly one of *Operation or error will be non-nil. Any non-2xx
101111// status code is an error. Response headers are in either
101112// *Operation.ServerResponse.Header or (if a response was returned at
101113// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101114// to check whether the returned error was because
101115// http.StatusNotModified was returned.
101116func (c *NetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101117	gensupport.SetOptions(c.urlParams_, opts...)
101118	res, err := c.doRequest("json")
101119	if res != nil && res.StatusCode == http.StatusNotModified {
101120		if res.Body != nil {
101121			res.Body.Close()
101122		}
101123		return nil, &googleapi.Error{
101124			Code:   res.StatusCode,
101125			Header: res.Header,
101126		}
101127	}
101128	if err != nil {
101129		return nil, err
101130	}
101131	defer googleapi.CloseBody(res)
101132	if err := googleapi.CheckResponse(res); err != nil {
101133		return nil, err
101134	}
101135	ret := &Operation{
101136		ServerResponse: googleapi.ServerResponse{
101137			Header:         res.Header,
101138			HTTPStatusCode: res.StatusCode,
101139		},
101140	}
101141	target := &ret
101142	if err := gensupport.DecodeResponse(target, res); err != nil {
101143		return nil, err
101144	}
101145	return ret, nil
101146	// {
101147	//   "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.",
101148	//   "httpMethod": "DELETE",
101149	//   "id": "compute.networkEndpointGroups.delete",
101150	//   "parameterOrder": [
101151	//     "project",
101152	//     "zone",
101153	//     "networkEndpointGroup"
101154	//   ],
101155	//   "parameters": {
101156	//     "networkEndpointGroup": {
101157	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
101158	//       "location": "path",
101159	//       "required": true,
101160	//       "type": "string"
101161	//     },
101162	//     "project": {
101163	//       "description": "Project ID for this request.",
101164	//       "location": "path",
101165	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101166	//       "required": true,
101167	//       "type": "string"
101168	//     },
101169	//     "requestId": {
101170	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
101171	//       "location": "query",
101172	//       "type": "string"
101173	//     },
101174	//     "zone": {
101175	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
101176	//       "location": "path",
101177	//       "required": true,
101178	//       "type": "string"
101179	//     }
101180	//   },
101181	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
101182	//   "response": {
101183	//     "$ref": "Operation"
101184	//   },
101185	//   "scopes": [
101186	//     "https://www.googleapis.com/auth/cloud-platform",
101187	//     "https://www.googleapis.com/auth/compute"
101188	//   ]
101189	// }
101190
101191}
101192
101193// method id "compute.networkEndpointGroups.detachNetworkEndpoints":
101194
101195type NetworkEndpointGroupsDetachNetworkEndpointsCall struct {
101196	s                                           *Service
101197	project                                     string
101198	zone                                        string
101199	networkEndpointGroup                        string
101200	networkendpointgroupsdetachendpointsrequest *NetworkEndpointGroupsDetachEndpointsRequest
101201	urlParams_                                  gensupport.URLParams
101202	ctx_                                        context.Context
101203	header_                                     http.Header
101204}
101205
101206// DetachNetworkEndpoints: Detach a list of network endpoints from the
101207// specified network endpoint group.
101208func (r *NetworkEndpointGroupsService) DetachNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupsdetachendpointsrequest *NetworkEndpointGroupsDetachEndpointsRequest) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
101209	c := &NetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101210	c.project = project
101211	c.zone = zone
101212	c.networkEndpointGroup = networkEndpointGroup
101213	c.networkendpointgroupsdetachendpointsrequest = networkendpointgroupsdetachendpointsrequest
101214	return c
101215}
101216
101217// RequestId sets the optional parameter "requestId": An optional
101218// request ID to identify requests. Specify a unique request ID so that
101219// if you must retry your request, the server will know to ignore the
101220// request if it has already been completed.
101221//
101222// For example, consider a situation where you make an initial request
101223// and the request times out. If you make the request again with the
101224// same request ID, the server can check if original operation with the
101225// same request ID was received, and if so, will ignore the second
101226// request. This prevents clients from accidentally creating duplicate
101227// commitments.
101228//
101229// The request ID must be a valid UUID with the exception that zero UUID
101230// is not supported (00000000-0000-0000-0000-000000000000).
101231func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
101232	c.urlParams_.Set("requestId", requestId)
101233	return c
101234}
101235
101236// Fields allows partial responses to be retrieved. See
101237// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101238// for more information.
101239func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
101240	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101241	return c
101242}
101243
101244// Context sets the context to be used in this call's Do method. Any
101245// pending HTTP request will be aborted if the provided context is
101246// canceled.
101247func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
101248	c.ctx_ = ctx
101249	return c
101250}
101251
101252// Header returns an http.Header that can be modified by the caller to
101253// add HTTP headers to the request.
101254func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header {
101255	if c.header_ == nil {
101256		c.header_ = make(http.Header)
101257	}
101258	return c.header_
101259}
101260
101261func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
101262	reqHeaders := make(http.Header)
101263	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
101264	for k, v := range c.header_ {
101265		reqHeaders[k] = v
101266	}
101267	reqHeaders.Set("User-Agent", c.s.userAgent())
101268	var body io.Reader = nil
101269	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupsdetachendpointsrequest)
101270	if err != nil {
101271		return nil, err
101272	}
101273	reqHeaders.Set("Content-Type", "application/json")
101274	c.urlParams_.Set("alt", alt)
101275	c.urlParams_.Set("prettyPrint", "false")
101276	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints")
101277	urls += "?" + c.urlParams_.Encode()
101278	req, err := http.NewRequest("POST", urls, body)
101279	if err != nil {
101280		return nil, err
101281	}
101282	req.Header = reqHeaders
101283	googleapi.Expand(req.URL, map[string]string{
101284		"project":              c.project,
101285		"zone":                 c.zone,
101286		"networkEndpointGroup": c.networkEndpointGroup,
101287	})
101288	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101289}
101290
101291// Do executes the "compute.networkEndpointGroups.detachNetworkEndpoints" call.
101292// Exactly one of *Operation or error will be non-nil. Any non-2xx
101293// status code is an error. Response headers are in either
101294// *Operation.ServerResponse.Header or (if a response was returned at
101295// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101296// to check whether the returned error was because
101297// http.StatusNotModified was returned.
101298func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101299	gensupport.SetOptions(c.urlParams_, opts...)
101300	res, err := c.doRequest("json")
101301	if res != nil && res.StatusCode == http.StatusNotModified {
101302		if res.Body != nil {
101303			res.Body.Close()
101304		}
101305		return nil, &googleapi.Error{
101306			Code:   res.StatusCode,
101307			Header: res.Header,
101308		}
101309	}
101310	if err != nil {
101311		return nil, err
101312	}
101313	defer googleapi.CloseBody(res)
101314	if err := googleapi.CheckResponse(res); err != nil {
101315		return nil, err
101316	}
101317	ret := &Operation{
101318		ServerResponse: googleapi.ServerResponse{
101319			Header:         res.Header,
101320			HTTPStatusCode: res.StatusCode,
101321		},
101322	}
101323	target := &ret
101324	if err := gensupport.DecodeResponse(target, res); err != nil {
101325		return nil, err
101326	}
101327	return ret, nil
101328	// {
101329	//   "description": "Detach a list of network endpoints from the specified network endpoint group.",
101330	//   "httpMethod": "POST",
101331	//   "id": "compute.networkEndpointGroups.detachNetworkEndpoints",
101332	//   "parameterOrder": [
101333	//     "project",
101334	//     "zone",
101335	//     "networkEndpointGroup"
101336	//   ],
101337	//   "parameters": {
101338	//     "networkEndpointGroup": {
101339	//       "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.",
101340	//       "location": "path",
101341	//       "required": true,
101342	//       "type": "string"
101343	//     },
101344	//     "project": {
101345	//       "description": "Project ID for this request.",
101346	//       "location": "path",
101347	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101348	//       "required": true,
101349	//       "type": "string"
101350	//     },
101351	//     "requestId": {
101352	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
101353	//       "location": "query",
101354	//       "type": "string"
101355	//     },
101356	//     "zone": {
101357	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
101358	//       "location": "path",
101359	//       "required": true,
101360	//       "type": "string"
101361	//     }
101362	//   },
101363	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
101364	//   "request": {
101365	//     "$ref": "NetworkEndpointGroupsDetachEndpointsRequest"
101366	//   },
101367	//   "response": {
101368	//     "$ref": "Operation"
101369	//   },
101370	//   "scopes": [
101371	//     "https://www.googleapis.com/auth/cloud-platform",
101372	//     "https://www.googleapis.com/auth/compute"
101373	//   ]
101374	// }
101375
101376}
101377
101378// method id "compute.networkEndpointGroups.get":
101379
101380type NetworkEndpointGroupsGetCall struct {
101381	s                    *Service
101382	project              string
101383	zone                 string
101384	networkEndpointGroup string
101385	urlParams_           gensupport.URLParams
101386	ifNoneMatch_         string
101387	ctx_                 context.Context
101388	header_              http.Header
101389}
101390
101391// Get: Returns the specified network endpoint group. Gets a list of
101392// available network endpoint groups by making a list() request.
101393func (r *NetworkEndpointGroupsService) Get(project string, zone string, networkEndpointGroup string) *NetworkEndpointGroupsGetCall {
101394	c := &NetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101395	c.project = project
101396	c.zone = zone
101397	c.networkEndpointGroup = networkEndpointGroup
101398	return c
101399}
101400
101401// Fields allows partial responses to be retrieved. See
101402// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101403// for more information.
101404func (c *NetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsGetCall {
101405	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101406	return c
101407}
101408
101409// IfNoneMatch sets the optional parameter which makes the operation
101410// fail if the object's ETag matches the given value. This is useful for
101411// getting updates only after the object has changed since the last
101412// request. Use googleapi.IsNotModified to check whether the response
101413// error from Do is the result of In-None-Match.
101414func (c *NetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsGetCall {
101415	c.ifNoneMatch_ = entityTag
101416	return c
101417}
101418
101419// Context sets the context to be used in this call's Do method. Any
101420// pending HTTP request will be aborted if the provided context is
101421// canceled.
101422func (c *NetworkEndpointGroupsGetCall) Context(ctx context.Context) *NetworkEndpointGroupsGetCall {
101423	c.ctx_ = ctx
101424	return c
101425}
101426
101427// Header returns an http.Header that can be modified by the caller to
101428// add HTTP headers to the request.
101429func (c *NetworkEndpointGroupsGetCall) Header() http.Header {
101430	if c.header_ == nil {
101431		c.header_ = make(http.Header)
101432	}
101433	return c.header_
101434}
101435
101436func (c *NetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
101437	reqHeaders := make(http.Header)
101438	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
101439	for k, v := range c.header_ {
101440		reqHeaders[k] = v
101441	}
101442	reqHeaders.Set("User-Agent", c.s.userAgent())
101443	if c.ifNoneMatch_ != "" {
101444		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
101445	}
101446	var body io.Reader = nil
101447	c.urlParams_.Set("alt", alt)
101448	c.urlParams_.Set("prettyPrint", "false")
101449	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}")
101450	urls += "?" + c.urlParams_.Encode()
101451	req, err := http.NewRequest("GET", urls, body)
101452	if err != nil {
101453		return nil, err
101454	}
101455	req.Header = reqHeaders
101456	googleapi.Expand(req.URL, map[string]string{
101457		"project":              c.project,
101458		"zone":                 c.zone,
101459		"networkEndpointGroup": c.networkEndpointGroup,
101460	})
101461	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101462}
101463
101464// Do executes the "compute.networkEndpointGroups.get" call.
101465// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
101466// non-2xx status code is an error. Response headers are in either
101467// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
101468// returned at all) in error.(*googleapi.Error).Header. Use
101469// googleapi.IsNotModified to check whether the returned error was
101470// because http.StatusNotModified was returned.
101471func (c *NetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
101472	gensupport.SetOptions(c.urlParams_, opts...)
101473	res, err := c.doRequest("json")
101474	if res != nil && res.StatusCode == http.StatusNotModified {
101475		if res.Body != nil {
101476			res.Body.Close()
101477		}
101478		return nil, &googleapi.Error{
101479			Code:   res.StatusCode,
101480			Header: res.Header,
101481		}
101482	}
101483	if err != nil {
101484		return nil, err
101485	}
101486	defer googleapi.CloseBody(res)
101487	if err := googleapi.CheckResponse(res); err != nil {
101488		return nil, err
101489	}
101490	ret := &NetworkEndpointGroup{
101491		ServerResponse: googleapi.ServerResponse{
101492			Header:         res.Header,
101493			HTTPStatusCode: res.StatusCode,
101494		},
101495	}
101496	target := &ret
101497	if err := gensupport.DecodeResponse(target, res); err != nil {
101498		return nil, err
101499	}
101500	return ret, nil
101501	// {
101502	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
101503	//   "httpMethod": "GET",
101504	//   "id": "compute.networkEndpointGroups.get",
101505	//   "parameterOrder": [
101506	//     "project",
101507	//     "zone",
101508	//     "networkEndpointGroup"
101509	//   ],
101510	//   "parameters": {
101511	//     "networkEndpointGroup": {
101512	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
101513	//       "location": "path",
101514	//       "required": true,
101515	//       "type": "string"
101516	//     },
101517	//     "project": {
101518	//       "description": "Project ID for this request.",
101519	//       "location": "path",
101520	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101521	//       "required": true,
101522	//       "type": "string"
101523	//     },
101524	//     "zone": {
101525	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
101526	//       "location": "path",
101527	//       "required": true,
101528	//       "type": "string"
101529	//     }
101530	//   },
101531	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
101532	//   "response": {
101533	//     "$ref": "NetworkEndpointGroup"
101534	//   },
101535	//   "scopes": [
101536	//     "https://www.googleapis.com/auth/cloud-platform",
101537	//     "https://www.googleapis.com/auth/compute",
101538	//     "https://www.googleapis.com/auth/compute.readonly"
101539	//   ]
101540	// }
101541
101542}
101543
101544// method id "compute.networkEndpointGroups.insert":
101545
101546type NetworkEndpointGroupsInsertCall struct {
101547	s                    *Service
101548	project              string
101549	zone                 string
101550	networkendpointgroup *NetworkEndpointGroup
101551	urlParams_           gensupport.URLParams
101552	ctx_                 context.Context
101553	header_              http.Header
101554}
101555
101556// Insert: Creates a network endpoint group in the specified project
101557// using the parameters that are included in the request.
101558func (r *NetworkEndpointGroupsService) Insert(project string, zone string, networkendpointgroup *NetworkEndpointGroup) *NetworkEndpointGroupsInsertCall {
101559	c := &NetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101560	c.project = project
101561	c.zone = zone
101562	c.networkendpointgroup = networkendpointgroup
101563	return c
101564}
101565
101566// RequestId sets the optional parameter "requestId": An optional
101567// request ID to identify requests. Specify a unique request ID so that
101568// if you must retry your request, the server will know to ignore the
101569// request if it has already been completed.
101570//
101571// For example, consider a situation where you make an initial request
101572// and the request times out. If you make the request again with the
101573// same request ID, the server can check if original operation with the
101574// same request ID was received, and if so, will ignore the second
101575// request. This prevents clients from accidentally creating duplicate
101576// commitments.
101577//
101578// The request ID must be a valid UUID with the exception that zero UUID
101579// is not supported (00000000-0000-0000-0000-000000000000).
101580func (c *NetworkEndpointGroupsInsertCall) RequestId(requestId string) *NetworkEndpointGroupsInsertCall {
101581	c.urlParams_.Set("requestId", requestId)
101582	return c
101583}
101584
101585// Fields allows partial responses to be retrieved. See
101586// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101587// for more information.
101588func (c *NetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsInsertCall {
101589	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101590	return c
101591}
101592
101593// Context sets the context to be used in this call's Do method. Any
101594// pending HTTP request will be aborted if the provided context is
101595// canceled.
101596func (c *NetworkEndpointGroupsInsertCall) Context(ctx context.Context) *NetworkEndpointGroupsInsertCall {
101597	c.ctx_ = ctx
101598	return c
101599}
101600
101601// Header returns an http.Header that can be modified by the caller to
101602// add HTTP headers to the request.
101603func (c *NetworkEndpointGroupsInsertCall) Header() http.Header {
101604	if c.header_ == nil {
101605		c.header_ = make(http.Header)
101606	}
101607	return c.header_
101608}
101609
101610func (c *NetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
101611	reqHeaders := make(http.Header)
101612	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
101613	for k, v := range c.header_ {
101614		reqHeaders[k] = v
101615	}
101616	reqHeaders.Set("User-Agent", c.s.userAgent())
101617	var body io.Reader = nil
101618	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
101619	if err != nil {
101620		return nil, err
101621	}
101622	reqHeaders.Set("Content-Type", "application/json")
101623	c.urlParams_.Set("alt", alt)
101624	c.urlParams_.Set("prettyPrint", "false")
101625	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups")
101626	urls += "?" + c.urlParams_.Encode()
101627	req, err := http.NewRequest("POST", urls, body)
101628	if err != nil {
101629		return nil, err
101630	}
101631	req.Header = reqHeaders
101632	googleapi.Expand(req.URL, map[string]string{
101633		"project": c.project,
101634		"zone":    c.zone,
101635	})
101636	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101637}
101638
101639// Do executes the "compute.networkEndpointGroups.insert" call.
101640// Exactly one of *Operation or error will be non-nil. Any non-2xx
101641// status code is an error. Response headers are in either
101642// *Operation.ServerResponse.Header or (if a response was returned at
101643// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101644// to check whether the returned error was because
101645// http.StatusNotModified was returned.
101646func (c *NetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101647	gensupport.SetOptions(c.urlParams_, opts...)
101648	res, err := c.doRequest("json")
101649	if res != nil && res.StatusCode == http.StatusNotModified {
101650		if res.Body != nil {
101651			res.Body.Close()
101652		}
101653		return nil, &googleapi.Error{
101654			Code:   res.StatusCode,
101655			Header: res.Header,
101656		}
101657	}
101658	if err != nil {
101659		return nil, err
101660	}
101661	defer googleapi.CloseBody(res)
101662	if err := googleapi.CheckResponse(res); err != nil {
101663		return nil, err
101664	}
101665	ret := &Operation{
101666		ServerResponse: googleapi.ServerResponse{
101667			Header:         res.Header,
101668			HTTPStatusCode: res.StatusCode,
101669		},
101670	}
101671	target := &ret
101672	if err := gensupport.DecodeResponse(target, res); err != nil {
101673		return nil, err
101674	}
101675	return ret, nil
101676	// {
101677	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
101678	//   "httpMethod": "POST",
101679	//   "id": "compute.networkEndpointGroups.insert",
101680	//   "parameterOrder": [
101681	//     "project",
101682	//     "zone"
101683	//   ],
101684	//   "parameters": {
101685	//     "project": {
101686	//       "description": "Project ID for this request.",
101687	//       "location": "path",
101688	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101689	//       "required": true,
101690	//       "type": "string"
101691	//     },
101692	//     "requestId": {
101693	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
101694	//       "location": "query",
101695	//       "type": "string"
101696	//     },
101697	//     "zone": {
101698	//       "description": "The name of the zone where you want to create the network endpoint group. It should comply with RFC1035.",
101699	//       "location": "path",
101700	//       "required": true,
101701	//       "type": "string"
101702	//     }
101703	//   },
101704	//   "path": "{project}/zones/{zone}/networkEndpointGroups",
101705	//   "request": {
101706	//     "$ref": "NetworkEndpointGroup"
101707	//   },
101708	//   "response": {
101709	//     "$ref": "Operation"
101710	//   },
101711	//   "scopes": [
101712	//     "https://www.googleapis.com/auth/cloud-platform",
101713	//     "https://www.googleapis.com/auth/compute"
101714	//   ]
101715	// }
101716
101717}
101718
101719// method id "compute.networkEndpointGroups.list":
101720
101721type NetworkEndpointGroupsListCall struct {
101722	s            *Service
101723	project      string
101724	zone         string
101725	urlParams_   gensupport.URLParams
101726	ifNoneMatch_ string
101727	ctx_         context.Context
101728	header_      http.Header
101729}
101730
101731// List: Retrieves the list of network endpoint groups that are located
101732// in the specified project and zone.
101733func (r *NetworkEndpointGroupsService) List(project string, zone string) *NetworkEndpointGroupsListCall {
101734	c := &NetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101735	c.project = project
101736	c.zone = zone
101737	return c
101738}
101739
101740// Filter sets the optional parameter "filter": A filter expression that
101741// filters resources listed in the response. The expression must specify
101742// the field name, a comparison operator, and the value that you want to
101743// use for filtering. The value must be a string, a number, or a
101744// boolean. The comparison operator must be either =, !=, >, or <.
101745//
101746// For example, if you are filtering Compute Engine instances, you can
101747// exclude instances named example-instance by specifying name !=
101748// example-instance.
101749//
101750// You can also filter nested fields. For example, you could specify
101751// scheduling.automaticRestart = false to include instances only if they
101752// are not scheduled for automatic restarts. You can use filtering on
101753// nested fields to filter based on resource labels.
101754//
101755// To filter on multiple expressions, provide each separate expression
101756// within parentheses. For example, (scheduling.automaticRestart = true)
101757// (cpuPlatform = "Intel Skylake"). By default, each expression is an
101758// AND expression. However, you can include AND and OR expressions
101759// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
101760// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
101761// true).
101762func (c *NetworkEndpointGroupsListCall) Filter(filter string) *NetworkEndpointGroupsListCall {
101763	c.urlParams_.Set("filter", filter)
101764	return c
101765}
101766
101767// MaxResults sets the optional parameter "maxResults": The maximum
101768// number of results per page that should be returned. If the number of
101769// available results is larger than maxResults, Compute Engine returns a
101770// nextPageToken that can be used to get the next page of results in
101771// subsequent list requests. Acceptable values are 0 to 500, inclusive.
101772// (Default: 500)
101773func (c *NetworkEndpointGroupsListCall) MaxResults(maxResults int64) *NetworkEndpointGroupsListCall {
101774	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
101775	return c
101776}
101777
101778// OrderBy sets the optional parameter "orderBy": Sorts list results by
101779// a certain order. By default, results are returned in alphanumerical
101780// order based on the resource name.
101781//
101782// You can also sort results in descending order based on the creation
101783// timestamp using orderBy="creationTimestamp desc". This sorts results
101784// based on the creationTimestamp field in reverse chronological order
101785// (newest result first). Use this to sort resources like operations so
101786// that the newest operation is returned first.
101787//
101788// Currently, only sorting by name or creationTimestamp desc is
101789// supported.
101790func (c *NetworkEndpointGroupsListCall) OrderBy(orderBy string) *NetworkEndpointGroupsListCall {
101791	c.urlParams_.Set("orderBy", orderBy)
101792	return c
101793}
101794
101795// PageToken sets the optional parameter "pageToken": Specifies a page
101796// token to use. Set pageToken to the nextPageToken returned by a
101797// previous list request to get the next page of results.
101798func (c *NetworkEndpointGroupsListCall) PageToken(pageToken string) *NetworkEndpointGroupsListCall {
101799	c.urlParams_.Set("pageToken", pageToken)
101800	return c
101801}
101802
101803// Fields allows partial responses to be retrieved. See
101804// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101805// for more information.
101806func (c *NetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsListCall {
101807	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101808	return c
101809}
101810
101811// IfNoneMatch sets the optional parameter which makes the operation
101812// fail if the object's ETag matches the given value. This is useful for
101813// getting updates only after the object has changed since the last
101814// request. Use googleapi.IsNotModified to check whether the response
101815// error from Do is the result of In-None-Match.
101816func (c *NetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsListCall {
101817	c.ifNoneMatch_ = entityTag
101818	return c
101819}
101820
101821// Context sets the context to be used in this call's Do method. Any
101822// pending HTTP request will be aborted if the provided context is
101823// canceled.
101824func (c *NetworkEndpointGroupsListCall) Context(ctx context.Context) *NetworkEndpointGroupsListCall {
101825	c.ctx_ = ctx
101826	return c
101827}
101828
101829// Header returns an http.Header that can be modified by the caller to
101830// add HTTP headers to the request.
101831func (c *NetworkEndpointGroupsListCall) Header() http.Header {
101832	if c.header_ == nil {
101833		c.header_ = make(http.Header)
101834	}
101835	return c.header_
101836}
101837
101838func (c *NetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
101839	reqHeaders := make(http.Header)
101840	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
101841	for k, v := range c.header_ {
101842		reqHeaders[k] = v
101843	}
101844	reqHeaders.Set("User-Agent", c.s.userAgent())
101845	if c.ifNoneMatch_ != "" {
101846		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
101847	}
101848	var body io.Reader = nil
101849	c.urlParams_.Set("alt", alt)
101850	c.urlParams_.Set("prettyPrint", "false")
101851	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups")
101852	urls += "?" + c.urlParams_.Encode()
101853	req, err := http.NewRequest("GET", urls, body)
101854	if err != nil {
101855		return nil, err
101856	}
101857	req.Header = reqHeaders
101858	googleapi.Expand(req.URL, map[string]string{
101859		"project": c.project,
101860		"zone":    c.zone,
101861	})
101862	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101863}
101864
101865// Do executes the "compute.networkEndpointGroups.list" call.
101866// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
101867// Any non-2xx status code is an error. Response headers are in either
101868// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
101869// returned at all) in error.(*googleapi.Error).Header. Use
101870// googleapi.IsNotModified to check whether the returned error was
101871// because http.StatusNotModified was returned.
101872func (c *NetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
101873	gensupport.SetOptions(c.urlParams_, opts...)
101874	res, err := c.doRequest("json")
101875	if res != nil && res.StatusCode == http.StatusNotModified {
101876		if res.Body != nil {
101877			res.Body.Close()
101878		}
101879		return nil, &googleapi.Error{
101880			Code:   res.StatusCode,
101881			Header: res.Header,
101882		}
101883	}
101884	if err != nil {
101885		return nil, err
101886	}
101887	defer googleapi.CloseBody(res)
101888	if err := googleapi.CheckResponse(res); err != nil {
101889		return nil, err
101890	}
101891	ret := &NetworkEndpointGroupList{
101892		ServerResponse: googleapi.ServerResponse{
101893			Header:         res.Header,
101894			HTTPStatusCode: res.StatusCode,
101895		},
101896	}
101897	target := &ret
101898	if err := gensupport.DecodeResponse(target, res); err != nil {
101899		return nil, err
101900	}
101901	return ret, nil
101902	// {
101903	//   "description": "Retrieves the list of network endpoint groups that are located in the specified project and zone.",
101904	//   "httpMethod": "GET",
101905	//   "id": "compute.networkEndpointGroups.list",
101906	//   "parameterOrder": [
101907	//     "project",
101908	//     "zone"
101909	//   ],
101910	//   "parameters": {
101911	//     "filter": {
101912	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
101913	//       "location": "query",
101914	//       "type": "string"
101915	//     },
101916	//     "maxResults": {
101917	//       "default": "500",
101918	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
101919	//       "format": "uint32",
101920	//       "location": "query",
101921	//       "minimum": "0",
101922	//       "type": "integer"
101923	//     },
101924	//     "orderBy": {
101925	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
101926	//       "location": "query",
101927	//       "type": "string"
101928	//     },
101929	//     "pageToken": {
101930	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
101931	//       "location": "query",
101932	//       "type": "string"
101933	//     },
101934	//     "project": {
101935	//       "description": "Project ID for this request.",
101936	//       "location": "path",
101937	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101938	//       "required": true,
101939	//       "type": "string"
101940	//     },
101941	//     "zone": {
101942	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
101943	//       "location": "path",
101944	//       "required": true,
101945	//       "type": "string"
101946	//     }
101947	//   },
101948	//   "path": "{project}/zones/{zone}/networkEndpointGroups",
101949	//   "response": {
101950	//     "$ref": "NetworkEndpointGroupList"
101951	//   },
101952	//   "scopes": [
101953	//     "https://www.googleapis.com/auth/cloud-platform",
101954	//     "https://www.googleapis.com/auth/compute",
101955	//     "https://www.googleapis.com/auth/compute.readonly"
101956	//   ]
101957	// }
101958
101959}
101960
101961// Pages invokes f for each page of results.
101962// A non-nil error returned from f will halt the iteration.
101963// The provided context supersedes any context provided to the Context method.
101964func (c *NetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
101965	c.ctx_ = ctx
101966	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
101967	for {
101968		x, err := c.Do()
101969		if err != nil {
101970			return err
101971		}
101972		if err := f(x); err != nil {
101973			return err
101974		}
101975		if x.NextPageToken == "" {
101976			return nil
101977		}
101978		c.PageToken(x.NextPageToken)
101979	}
101980}
101981
101982// method id "compute.networkEndpointGroups.listNetworkEndpoints":
101983
101984type NetworkEndpointGroupsListNetworkEndpointsCall struct {
101985	s                                         *Service
101986	project                                   string
101987	zone                                      string
101988	networkEndpointGroup                      string
101989	networkendpointgroupslistendpointsrequest *NetworkEndpointGroupsListEndpointsRequest
101990	urlParams_                                gensupport.URLParams
101991	ctx_                                      context.Context
101992	header_                                   http.Header
101993}
101994
101995// ListNetworkEndpoints: Lists the network endpoints in the specified
101996// network endpoint group.
101997func (r *NetworkEndpointGroupsService) ListNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupslistendpointsrequest *NetworkEndpointGroupsListEndpointsRequest) *NetworkEndpointGroupsListNetworkEndpointsCall {
101998	c := &NetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101999	c.project = project
102000	c.zone = zone
102001	c.networkEndpointGroup = networkEndpointGroup
102002	c.networkendpointgroupslistendpointsrequest = networkendpointgroupslistendpointsrequest
102003	return c
102004}
102005
102006// Filter sets the optional parameter "filter": A filter expression that
102007// filters resources listed in the response. The expression must specify
102008// the field name, a comparison operator, and the value that you want to
102009// use for filtering. The value must be a string, a number, or a
102010// boolean. The comparison operator must be either =, !=, >, or <.
102011//
102012// For example, if you are filtering Compute Engine instances, you can
102013// exclude instances named example-instance by specifying name !=
102014// example-instance.
102015//
102016// You can also filter nested fields. For example, you could specify
102017// scheduling.automaticRestart = false to include instances only if they
102018// are not scheduled for automatic restarts. You can use filtering on
102019// nested fields to filter based on resource labels.
102020//
102021// To filter on multiple expressions, provide each separate expression
102022// within parentheses. For example, (scheduling.automaticRestart = true)
102023// (cpuPlatform = "Intel Skylake"). By default, each expression is an
102024// AND expression. However, you can include AND and OR expressions
102025// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
102026// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
102027// true).
102028func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *NetworkEndpointGroupsListNetworkEndpointsCall {
102029	c.urlParams_.Set("filter", filter)
102030	return c
102031}
102032
102033// MaxResults sets the optional parameter "maxResults": The maximum
102034// number of results per page that should be returned. If the number of
102035// available results is larger than maxResults, Compute Engine returns a
102036// nextPageToken that can be used to get the next page of results in
102037// subsequent list requests. Acceptable values are 0 to 500, inclusive.
102038// (Default: 500)
102039func (c *NetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *NetworkEndpointGroupsListNetworkEndpointsCall {
102040	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
102041	return c
102042}
102043
102044// OrderBy sets the optional parameter "orderBy": Sorts list results by
102045// a certain order. By default, results are returned in alphanumerical
102046// order based on the resource name.
102047//
102048// You can also sort results in descending order based on the creation
102049// timestamp using orderBy="creationTimestamp desc". This sorts results
102050// based on the creationTimestamp field in reverse chronological order
102051// (newest result first). Use this to sort resources like operations so
102052// that the newest operation is returned first.
102053//
102054// Currently, only sorting by name or creationTimestamp desc is
102055// supported.
102056func (c *NetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *NetworkEndpointGroupsListNetworkEndpointsCall {
102057	c.urlParams_.Set("orderBy", orderBy)
102058	return c
102059}
102060
102061// PageToken sets the optional parameter "pageToken": Specifies a page
102062// token to use. Set pageToken to the nextPageToken returned by a
102063// previous list request to get the next page of results.
102064func (c *NetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *NetworkEndpointGroupsListNetworkEndpointsCall {
102065	c.urlParams_.Set("pageToken", pageToken)
102066	return c
102067}
102068
102069// Fields allows partial responses to be retrieved. See
102070// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102071// for more information.
102072func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsListNetworkEndpointsCall {
102073	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102074	return c
102075}
102076
102077// Context sets the context to be used in this call's Do method. Any
102078// pending HTTP request will be aborted if the provided context is
102079// canceled.
102080func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsListNetworkEndpointsCall {
102081	c.ctx_ = ctx
102082	return c
102083}
102084
102085// Header returns an http.Header that can be modified by the caller to
102086// add HTTP headers to the request.
102087func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header {
102088	if c.header_ == nil {
102089		c.header_ = make(http.Header)
102090	}
102091	return c.header_
102092}
102093
102094func (c *NetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
102095	reqHeaders := make(http.Header)
102096	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
102097	for k, v := range c.header_ {
102098		reqHeaders[k] = v
102099	}
102100	reqHeaders.Set("User-Agent", c.s.userAgent())
102101	var body io.Reader = nil
102102	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupslistendpointsrequest)
102103	if err != nil {
102104		return nil, err
102105	}
102106	reqHeaders.Set("Content-Type", "application/json")
102107	c.urlParams_.Set("alt", alt)
102108	c.urlParams_.Set("prettyPrint", "false")
102109	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints")
102110	urls += "?" + c.urlParams_.Encode()
102111	req, err := http.NewRequest("POST", urls, body)
102112	if err != nil {
102113		return nil, err
102114	}
102115	req.Header = reqHeaders
102116	googleapi.Expand(req.URL, map[string]string{
102117		"project":              c.project,
102118		"zone":                 c.zone,
102119		"networkEndpointGroup": c.networkEndpointGroup,
102120	})
102121	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102122}
102123
102124// Do executes the "compute.networkEndpointGroups.listNetworkEndpoints" call.
102125// Exactly one of *NetworkEndpointGroupsListNetworkEndpoints or error
102126// will be non-nil. Any non-2xx status code is an error. Response
102127// headers are in either
102128// *NetworkEndpointGroupsListNetworkEndpoints.ServerResponse.Header or
102129// (if a response was returned at all) in
102130// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
102131// whether the returned error was because http.StatusNotModified was
102132// returned.
102133func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) {
102134	gensupport.SetOptions(c.urlParams_, opts...)
102135	res, err := c.doRequest("json")
102136	if res != nil && res.StatusCode == http.StatusNotModified {
102137		if res.Body != nil {
102138			res.Body.Close()
102139		}
102140		return nil, &googleapi.Error{
102141			Code:   res.StatusCode,
102142			Header: res.Header,
102143		}
102144	}
102145	if err != nil {
102146		return nil, err
102147	}
102148	defer googleapi.CloseBody(res)
102149	if err := googleapi.CheckResponse(res); err != nil {
102150		return nil, err
102151	}
102152	ret := &NetworkEndpointGroupsListNetworkEndpoints{
102153		ServerResponse: googleapi.ServerResponse{
102154			Header:         res.Header,
102155			HTTPStatusCode: res.StatusCode,
102156		},
102157	}
102158	target := &ret
102159	if err := gensupport.DecodeResponse(target, res); err != nil {
102160		return nil, err
102161	}
102162	return ret, nil
102163	// {
102164	//   "description": "Lists the network endpoints in the specified network endpoint group.",
102165	//   "httpMethod": "POST",
102166	//   "id": "compute.networkEndpointGroups.listNetworkEndpoints",
102167	//   "parameterOrder": [
102168	//     "project",
102169	//     "zone",
102170	//     "networkEndpointGroup"
102171	//   ],
102172	//   "parameters": {
102173	//     "filter": {
102174	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
102175	//       "location": "query",
102176	//       "type": "string"
102177	//     },
102178	//     "maxResults": {
102179	//       "default": "500",
102180	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
102181	//       "format": "uint32",
102182	//       "location": "query",
102183	//       "minimum": "0",
102184	//       "type": "integer"
102185	//     },
102186	//     "networkEndpointGroup": {
102187	//       "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.",
102188	//       "location": "path",
102189	//       "required": true,
102190	//       "type": "string"
102191	//     },
102192	//     "orderBy": {
102193	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
102194	//       "location": "query",
102195	//       "type": "string"
102196	//     },
102197	//     "pageToken": {
102198	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
102199	//       "location": "query",
102200	//       "type": "string"
102201	//     },
102202	//     "project": {
102203	//       "description": "Project ID for this request.",
102204	//       "location": "path",
102205	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102206	//       "required": true,
102207	//       "type": "string"
102208	//     },
102209	//     "zone": {
102210	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
102211	//       "location": "path",
102212	//       "required": true,
102213	//       "type": "string"
102214	//     }
102215	//   },
102216	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
102217	//   "request": {
102218	//     "$ref": "NetworkEndpointGroupsListEndpointsRequest"
102219	//   },
102220	//   "response": {
102221	//     "$ref": "NetworkEndpointGroupsListNetworkEndpoints"
102222	//   },
102223	//   "scopes": [
102224	//     "https://www.googleapis.com/auth/cloud-platform",
102225	//     "https://www.googleapis.com/auth/compute",
102226	//     "https://www.googleapis.com/auth/compute.readonly"
102227	//   ]
102228	// }
102229
102230}
102231
102232// Pages invokes f for each page of results.
102233// A non-nil error returned from f will halt the iteration.
102234// The provided context supersedes any context provided to the Context method.
102235func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error {
102236	c.ctx_ = ctx
102237	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
102238	for {
102239		x, err := c.Do()
102240		if err != nil {
102241			return err
102242		}
102243		if err := f(x); err != nil {
102244			return err
102245		}
102246		if x.NextPageToken == "" {
102247			return nil
102248		}
102249		c.PageToken(x.NextPageToken)
102250	}
102251}
102252
102253// method id "compute.networkEndpointGroups.testIamPermissions":
102254
102255type NetworkEndpointGroupsTestIamPermissionsCall struct {
102256	s                      *Service
102257	project                string
102258	zone                   string
102259	resource               string
102260	testpermissionsrequest *TestPermissionsRequest
102261	urlParams_             gensupport.URLParams
102262	ctx_                   context.Context
102263	header_                http.Header
102264}
102265
102266// TestIamPermissions: Returns permissions that a caller has on the
102267// specified resource.
102268func (r *NetworkEndpointGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *NetworkEndpointGroupsTestIamPermissionsCall {
102269	c := &NetworkEndpointGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102270	c.project = project
102271	c.zone = zone
102272	c.resource = resource
102273	c.testpermissionsrequest = testpermissionsrequest
102274	return c
102275}
102276
102277// Fields allows partial responses to be retrieved. See
102278// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102279// for more information.
102280func (c *NetworkEndpointGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsTestIamPermissionsCall {
102281	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102282	return c
102283}
102284
102285// Context sets the context to be used in this call's Do method. Any
102286// pending HTTP request will be aborted if the provided context is
102287// canceled.
102288func (c *NetworkEndpointGroupsTestIamPermissionsCall) Context(ctx context.Context) *NetworkEndpointGroupsTestIamPermissionsCall {
102289	c.ctx_ = ctx
102290	return c
102291}
102292
102293// Header returns an http.Header that can be modified by the caller to
102294// add HTTP headers to the request.
102295func (c *NetworkEndpointGroupsTestIamPermissionsCall) Header() http.Header {
102296	if c.header_ == nil {
102297		c.header_ = make(http.Header)
102298	}
102299	return c.header_
102300}
102301
102302func (c *NetworkEndpointGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
102303	reqHeaders := make(http.Header)
102304	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
102305	for k, v := range c.header_ {
102306		reqHeaders[k] = v
102307	}
102308	reqHeaders.Set("User-Agent", c.s.userAgent())
102309	var body io.Reader = nil
102310	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
102311	if err != nil {
102312		return nil, err
102313	}
102314	reqHeaders.Set("Content-Type", "application/json")
102315	c.urlParams_.Set("alt", alt)
102316	c.urlParams_.Set("prettyPrint", "false")
102317	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions")
102318	urls += "?" + c.urlParams_.Encode()
102319	req, err := http.NewRequest("POST", urls, body)
102320	if err != nil {
102321		return nil, err
102322	}
102323	req.Header = reqHeaders
102324	googleapi.Expand(req.URL, map[string]string{
102325		"project":  c.project,
102326		"zone":     c.zone,
102327		"resource": c.resource,
102328	})
102329	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102330}
102331
102332// Do executes the "compute.networkEndpointGroups.testIamPermissions" call.
102333// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
102334// non-2xx status code is an error. Response headers are in either
102335// *TestPermissionsResponse.ServerResponse.Header or (if a response was
102336// returned at all) in error.(*googleapi.Error).Header. Use
102337// googleapi.IsNotModified to check whether the returned error was
102338// because http.StatusNotModified was returned.
102339func (c *NetworkEndpointGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
102340	gensupport.SetOptions(c.urlParams_, opts...)
102341	res, err := c.doRequest("json")
102342	if res != nil && res.StatusCode == http.StatusNotModified {
102343		if res.Body != nil {
102344			res.Body.Close()
102345		}
102346		return nil, &googleapi.Error{
102347			Code:   res.StatusCode,
102348			Header: res.Header,
102349		}
102350	}
102351	if err != nil {
102352		return nil, err
102353	}
102354	defer googleapi.CloseBody(res)
102355	if err := googleapi.CheckResponse(res); err != nil {
102356		return nil, err
102357	}
102358	ret := &TestPermissionsResponse{
102359		ServerResponse: googleapi.ServerResponse{
102360			Header:         res.Header,
102361			HTTPStatusCode: res.StatusCode,
102362		},
102363	}
102364	target := &ret
102365	if err := gensupport.DecodeResponse(target, res); err != nil {
102366		return nil, err
102367	}
102368	return ret, nil
102369	// {
102370	//   "description": "Returns permissions that a caller has on the specified resource.",
102371	//   "httpMethod": "POST",
102372	//   "id": "compute.networkEndpointGroups.testIamPermissions",
102373	//   "parameterOrder": [
102374	//     "project",
102375	//     "zone",
102376	//     "resource"
102377	//   ],
102378	//   "parameters": {
102379	//     "project": {
102380	//       "description": "Project ID for this request.",
102381	//       "location": "path",
102382	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102383	//       "required": true,
102384	//       "type": "string"
102385	//     },
102386	//     "resource": {
102387	//       "description": "Name or id of the resource for this request.",
102388	//       "location": "path",
102389	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102390	//       "required": true,
102391	//       "type": "string"
102392	//     },
102393	//     "zone": {
102394	//       "description": "The name of the zone for this request.",
102395	//       "location": "path",
102396	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
102397	//       "required": true,
102398	//       "type": "string"
102399	//     }
102400	//   },
102401	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions",
102402	//   "request": {
102403	//     "$ref": "TestPermissionsRequest"
102404	//   },
102405	//   "response": {
102406	//     "$ref": "TestPermissionsResponse"
102407	//   },
102408	//   "scopes": [
102409	//     "https://www.googleapis.com/auth/cloud-platform",
102410	//     "https://www.googleapis.com/auth/compute",
102411	//     "https://www.googleapis.com/auth/compute.readonly"
102412	//   ]
102413	// }
102414
102415}
102416
102417// method id "compute.networks.addPeering":
102418
102419type NetworksAddPeeringCall struct {
102420	s                         *Service
102421	project                   string
102422	network                   string
102423	networksaddpeeringrequest *NetworksAddPeeringRequest
102424	urlParams_                gensupport.URLParams
102425	ctx_                      context.Context
102426	header_                   http.Header
102427}
102428
102429// AddPeering: Adds a peering to the specified network.
102430func (r *NetworksService) AddPeering(project string, network string, networksaddpeeringrequest *NetworksAddPeeringRequest) *NetworksAddPeeringCall {
102431	c := &NetworksAddPeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102432	c.project = project
102433	c.network = network
102434	c.networksaddpeeringrequest = networksaddpeeringrequest
102435	return c
102436}
102437
102438// RequestId sets the optional parameter "requestId": An optional
102439// request ID to identify requests. Specify a unique request ID so that
102440// if you must retry your request, the server will know to ignore the
102441// request if it has already been completed.
102442//
102443// For example, consider a situation where you make an initial request
102444// and the request times out. If you make the request again with the
102445// same request ID, the server can check if original operation with the
102446// same request ID was received, and if so, will ignore the second
102447// request. This prevents clients from accidentally creating duplicate
102448// commitments.
102449//
102450// The request ID must be a valid UUID with the exception that zero UUID
102451// is not supported (00000000-0000-0000-0000-000000000000).
102452func (c *NetworksAddPeeringCall) RequestId(requestId string) *NetworksAddPeeringCall {
102453	c.urlParams_.Set("requestId", requestId)
102454	return c
102455}
102456
102457// Fields allows partial responses to be retrieved. See
102458// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102459// for more information.
102460func (c *NetworksAddPeeringCall) Fields(s ...googleapi.Field) *NetworksAddPeeringCall {
102461	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102462	return c
102463}
102464
102465// Context sets the context to be used in this call's Do method. Any
102466// pending HTTP request will be aborted if the provided context is
102467// canceled.
102468func (c *NetworksAddPeeringCall) Context(ctx context.Context) *NetworksAddPeeringCall {
102469	c.ctx_ = ctx
102470	return c
102471}
102472
102473// Header returns an http.Header that can be modified by the caller to
102474// add HTTP headers to the request.
102475func (c *NetworksAddPeeringCall) Header() http.Header {
102476	if c.header_ == nil {
102477		c.header_ = make(http.Header)
102478	}
102479	return c.header_
102480}
102481
102482func (c *NetworksAddPeeringCall) doRequest(alt string) (*http.Response, error) {
102483	reqHeaders := make(http.Header)
102484	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
102485	for k, v := range c.header_ {
102486		reqHeaders[k] = v
102487	}
102488	reqHeaders.Set("User-Agent", c.s.userAgent())
102489	var body io.Reader = nil
102490	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksaddpeeringrequest)
102491	if err != nil {
102492		return nil, err
102493	}
102494	reqHeaders.Set("Content-Type", "application/json")
102495	c.urlParams_.Set("alt", alt)
102496	c.urlParams_.Set("prettyPrint", "false")
102497	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/addPeering")
102498	urls += "?" + c.urlParams_.Encode()
102499	req, err := http.NewRequest("POST", urls, body)
102500	if err != nil {
102501		return nil, err
102502	}
102503	req.Header = reqHeaders
102504	googleapi.Expand(req.URL, map[string]string{
102505		"project": c.project,
102506		"network": c.network,
102507	})
102508	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102509}
102510
102511// Do executes the "compute.networks.addPeering" call.
102512// Exactly one of *Operation or error will be non-nil. Any non-2xx
102513// status code is an error. Response headers are in either
102514// *Operation.ServerResponse.Header or (if a response was returned at
102515// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
102516// to check whether the returned error was because
102517// http.StatusNotModified was returned.
102518func (c *NetworksAddPeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
102519	gensupport.SetOptions(c.urlParams_, opts...)
102520	res, err := c.doRequest("json")
102521	if res != nil && res.StatusCode == http.StatusNotModified {
102522		if res.Body != nil {
102523			res.Body.Close()
102524		}
102525		return nil, &googleapi.Error{
102526			Code:   res.StatusCode,
102527			Header: res.Header,
102528		}
102529	}
102530	if err != nil {
102531		return nil, err
102532	}
102533	defer googleapi.CloseBody(res)
102534	if err := googleapi.CheckResponse(res); err != nil {
102535		return nil, err
102536	}
102537	ret := &Operation{
102538		ServerResponse: googleapi.ServerResponse{
102539			Header:         res.Header,
102540			HTTPStatusCode: res.StatusCode,
102541		},
102542	}
102543	target := &ret
102544	if err := gensupport.DecodeResponse(target, res); err != nil {
102545		return nil, err
102546	}
102547	return ret, nil
102548	// {
102549	//   "description": "Adds a peering to the specified network.",
102550	//   "httpMethod": "POST",
102551	//   "id": "compute.networks.addPeering",
102552	//   "parameterOrder": [
102553	//     "project",
102554	//     "network"
102555	//   ],
102556	//   "parameters": {
102557	//     "network": {
102558	//       "description": "Name of the network resource to add peering to.",
102559	//       "location": "path",
102560	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102561	//       "required": true,
102562	//       "type": "string"
102563	//     },
102564	//     "project": {
102565	//       "description": "Project ID for this request.",
102566	//       "location": "path",
102567	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102568	//       "required": true,
102569	//       "type": "string"
102570	//     },
102571	//     "requestId": {
102572	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
102573	//       "location": "query",
102574	//       "type": "string"
102575	//     }
102576	//   },
102577	//   "path": "{project}/global/networks/{network}/addPeering",
102578	//   "request": {
102579	//     "$ref": "NetworksAddPeeringRequest"
102580	//   },
102581	//   "response": {
102582	//     "$ref": "Operation"
102583	//   },
102584	//   "scopes": [
102585	//     "https://www.googleapis.com/auth/cloud-platform",
102586	//     "https://www.googleapis.com/auth/compute"
102587	//   ]
102588	// }
102589
102590}
102591
102592// method id "compute.networks.delete":
102593
102594type NetworksDeleteCall struct {
102595	s          *Service
102596	project    string
102597	network    string
102598	urlParams_ gensupport.URLParams
102599	ctx_       context.Context
102600	header_    http.Header
102601}
102602
102603// Delete: Deletes the specified network.
102604// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/delete
102605func (r *NetworksService) Delete(project string, network string) *NetworksDeleteCall {
102606	c := &NetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102607	c.project = project
102608	c.network = network
102609	return c
102610}
102611
102612// RequestId sets the optional parameter "requestId": An optional
102613// request ID to identify requests. Specify a unique request ID so that
102614// if you must retry your request, the server will know to ignore the
102615// request if it has already been completed.
102616//
102617// For example, consider a situation where you make an initial request
102618// and the request times out. If you make the request again with the
102619// same request ID, the server can check if original operation with the
102620// same request ID was received, and if so, will ignore the second
102621// request. This prevents clients from accidentally creating duplicate
102622// commitments.
102623//
102624// The request ID must be a valid UUID with the exception that zero UUID
102625// is not supported (00000000-0000-0000-0000-000000000000).
102626func (c *NetworksDeleteCall) RequestId(requestId string) *NetworksDeleteCall {
102627	c.urlParams_.Set("requestId", requestId)
102628	return c
102629}
102630
102631// Fields allows partial responses to be retrieved. See
102632// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102633// for more information.
102634func (c *NetworksDeleteCall) Fields(s ...googleapi.Field) *NetworksDeleteCall {
102635	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102636	return c
102637}
102638
102639// Context sets the context to be used in this call's Do method. Any
102640// pending HTTP request will be aborted if the provided context is
102641// canceled.
102642func (c *NetworksDeleteCall) Context(ctx context.Context) *NetworksDeleteCall {
102643	c.ctx_ = ctx
102644	return c
102645}
102646
102647// Header returns an http.Header that can be modified by the caller to
102648// add HTTP headers to the request.
102649func (c *NetworksDeleteCall) Header() http.Header {
102650	if c.header_ == nil {
102651		c.header_ = make(http.Header)
102652	}
102653	return c.header_
102654}
102655
102656func (c *NetworksDeleteCall) doRequest(alt string) (*http.Response, error) {
102657	reqHeaders := make(http.Header)
102658	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
102659	for k, v := range c.header_ {
102660		reqHeaders[k] = v
102661	}
102662	reqHeaders.Set("User-Agent", c.s.userAgent())
102663	var body io.Reader = nil
102664	c.urlParams_.Set("alt", alt)
102665	c.urlParams_.Set("prettyPrint", "false")
102666	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}")
102667	urls += "?" + c.urlParams_.Encode()
102668	req, err := http.NewRequest("DELETE", urls, body)
102669	if err != nil {
102670		return nil, err
102671	}
102672	req.Header = reqHeaders
102673	googleapi.Expand(req.URL, map[string]string{
102674		"project": c.project,
102675		"network": c.network,
102676	})
102677	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102678}
102679
102680// Do executes the "compute.networks.delete" call.
102681// Exactly one of *Operation or error will be non-nil. Any non-2xx
102682// status code is an error. Response headers are in either
102683// *Operation.ServerResponse.Header or (if a response was returned at
102684// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
102685// to check whether the returned error was because
102686// http.StatusNotModified was returned.
102687func (c *NetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
102688	gensupport.SetOptions(c.urlParams_, opts...)
102689	res, err := c.doRequest("json")
102690	if res != nil && res.StatusCode == http.StatusNotModified {
102691		if res.Body != nil {
102692			res.Body.Close()
102693		}
102694		return nil, &googleapi.Error{
102695			Code:   res.StatusCode,
102696			Header: res.Header,
102697		}
102698	}
102699	if err != nil {
102700		return nil, err
102701	}
102702	defer googleapi.CloseBody(res)
102703	if err := googleapi.CheckResponse(res); err != nil {
102704		return nil, err
102705	}
102706	ret := &Operation{
102707		ServerResponse: googleapi.ServerResponse{
102708			Header:         res.Header,
102709			HTTPStatusCode: res.StatusCode,
102710		},
102711	}
102712	target := &ret
102713	if err := gensupport.DecodeResponse(target, res); err != nil {
102714		return nil, err
102715	}
102716	return ret, nil
102717	// {
102718	//   "description": "Deletes the specified network.",
102719	//   "httpMethod": "DELETE",
102720	//   "id": "compute.networks.delete",
102721	//   "parameterOrder": [
102722	//     "project",
102723	//     "network"
102724	//   ],
102725	//   "parameters": {
102726	//     "network": {
102727	//       "description": "Name of the network to delete.",
102728	//       "location": "path",
102729	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102730	//       "required": true,
102731	//       "type": "string"
102732	//     },
102733	//     "project": {
102734	//       "description": "Project ID for this request.",
102735	//       "location": "path",
102736	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102737	//       "required": true,
102738	//       "type": "string"
102739	//     },
102740	//     "requestId": {
102741	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
102742	//       "location": "query",
102743	//       "type": "string"
102744	//     }
102745	//   },
102746	//   "path": "{project}/global/networks/{network}",
102747	//   "response": {
102748	//     "$ref": "Operation"
102749	//   },
102750	//   "scopes": [
102751	//     "https://www.googleapis.com/auth/cloud-platform",
102752	//     "https://www.googleapis.com/auth/compute"
102753	//   ]
102754	// }
102755
102756}
102757
102758// method id "compute.networks.get":
102759
102760type NetworksGetCall struct {
102761	s            *Service
102762	project      string
102763	network      string
102764	urlParams_   gensupport.URLParams
102765	ifNoneMatch_ string
102766	ctx_         context.Context
102767	header_      http.Header
102768}
102769
102770// Get: Returns the specified network. Gets a list of available networks
102771// by making a list() request.
102772// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/get
102773func (r *NetworksService) Get(project string, network string) *NetworksGetCall {
102774	c := &NetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102775	c.project = project
102776	c.network = network
102777	return c
102778}
102779
102780// Fields allows partial responses to be retrieved. See
102781// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102782// for more information.
102783func (c *NetworksGetCall) Fields(s ...googleapi.Field) *NetworksGetCall {
102784	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102785	return c
102786}
102787
102788// IfNoneMatch sets the optional parameter which makes the operation
102789// fail if the object's ETag matches the given value. This is useful for
102790// getting updates only after the object has changed since the last
102791// request. Use googleapi.IsNotModified to check whether the response
102792// error from Do is the result of In-None-Match.
102793func (c *NetworksGetCall) IfNoneMatch(entityTag string) *NetworksGetCall {
102794	c.ifNoneMatch_ = entityTag
102795	return c
102796}
102797
102798// Context sets the context to be used in this call's Do method. Any
102799// pending HTTP request will be aborted if the provided context is
102800// canceled.
102801func (c *NetworksGetCall) Context(ctx context.Context) *NetworksGetCall {
102802	c.ctx_ = ctx
102803	return c
102804}
102805
102806// Header returns an http.Header that can be modified by the caller to
102807// add HTTP headers to the request.
102808func (c *NetworksGetCall) Header() http.Header {
102809	if c.header_ == nil {
102810		c.header_ = make(http.Header)
102811	}
102812	return c.header_
102813}
102814
102815func (c *NetworksGetCall) doRequest(alt string) (*http.Response, error) {
102816	reqHeaders := make(http.Header)
102817	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
102818	for k, v := range c.header_ {
102819		reqHeaders[k] = v
102820	}
102821	reqHeaders.Set("User-Agent", c.s.userAgent())
102822	if c.ifNoneMatch_ != "" {
102823		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
102824	}
102825	var body io.Reader = nil
102826	c.urlParams_.Set("alt", alt)
102827	c.urlParams_.Set("prettyPrint", "false")
102828	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}")
102829	urls += "?" + c.urlParams_.Encode()
102830	req, err := http.NewRequest("GET", urls, body)
102831	if err != nil {
102832		return nil, err
102833	}
102834	req.Header = reqHeaders
102835	googleapi.Expand(req.URL, map[string]string{
102836		"project": c.project,
102837		"network": c.network,
102838	})
102839	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102840}
102841
102842// Do executes the "compute.networks.get" call.
102843// Exactly one of *Network or error will be non-nil. Any non-2xx status
102844// code is an error. Response headers are in either
102845// *Network.ServerResponse.Header or (if a response was returned at all)
102846// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
102847// check whether the returned error was because http.StatusNotModified
102848// was returned.
102849func (c *NetworksGetCall) Do(opts ...googleapi.CallOption) (*Network, error) {
102850	gensupport.SetOptions(c.urlParams_, opts...)
102851	res, err := c.doRequest("json")
102852	if res != nil && res.StatusCode == http.StatusNotModified {
102853		if res.Body != nil {
102854			res.Body.Close()
102855		}
102856		return nil, &googleapi.Error{
102857			Code:   res.StatusCode,
102858			Header: res.Header,
102859		}
102860	}
102861	if err != nil {
102862		return nil, err
102863	}
102864	defer googleapi.CloseBody(res)
102865	if err := googleapi.CheckResponse(res); err != nil {
102866		return nil, err
102867	}
102868	ret := &Network{
102869		ServerResponse: googleapi.ServerResponse{
102870			Header:         res.Header,
102871			HTTPStatusCode: res.StatusCode,
102872		},
102873	}
102874	target := &ret
102875	if err := gensupport.DecodeResponse(target, res); err != nil {
102876		return nil, err
102877	}
102878	return ret, nil
102879	// {
102880	//   "description": "Returns the specified network. Gets a list of available networks by making a list() request.",
102881	//   "httpMethod": "GET",
102882	//   "id": "compute.networks.get",
102883	//   "parameterOrder": [
102884	//     "project",
102885	//     "network"
102886	//   ],
102887	//   "parameters": {
102888	//     "network": {
102889	//       "description": "Name of the network to return.",
102890	//       "location": "path",
102891	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102892	//       "required": true,
102893	//       "type": "string"
102894	//     },
102895	//     "project": {
102896	//       "description": "Project ID for this request.",
102897	//       "location": "path",
102898	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102899	//       "required": true,
102900	//       "type": "string"
102901	//     }
102902	//   },
102903	//   "path": "{project}/global/networks/{network}",
102904	//   "response": {
102905	//     "$ref": "Network"
102906	//   },
102907	//   "scopes": [
102908	//     "https://www.googleapis.com/auth/cloud-platform",
102909	//     "https://www.googleapis.com/auth/compute",
102910	//     "https://www.googleapis.com/auth/compute.readonly"
102911	//   ]
102912	// }
102913
102914}
102915
102916// method id "compute.networks.getEffectiveFirewalls":
102917
102918type NetworksGetEffectiveFirewallsCall struct {
102919	s            *Service
102920	project      string
102921	network      string
102922	urlParams_   gensupport.URLParams
102923	ifNoneMatch_ string
102924	ctx_         context.Context
102925	header_      http.Header
102926}
102927
102928// GetEffectiveFirewalls: Returns the effective firewalls on a given
102929// network.
102930func (r *NetworksService) GetEffectiveFirewalls(project string, network string) *NetworksGetEffectiveFirewallsCall {
102931	c := &NetworksGetEffectiveFirewallsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102932	c.project = project
102933	c.network = network
102934	return c
102935}
102936
102937// Fields allows partial responses to be retrieved. See
102938// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102939// for more information.
102940func (c *NetworksGetEffectiveFirewallsCall) Fields(s ...googleapi.Field) *NetworksGetEffectiveFirewallsCall {
102941	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102942	return c
102943}
102944
102945// IfNoneMatch sets the optional parameter which makes the operation
102946// fail if the object's ETag matches the given value. This is useful for
102947// getting updates only after the object has changed since the last
102948// request. Use googleapi.IsNotModified to check whether the response
102949// error from Do is the result of In-None-Match.
102950func (c *NetworksGetEffectiveFirewallsCall) IfNoneMatch(entityTag string) *NetworksGetEffectiveFirewallsCall {
102951	c.ifNoneMatch_ = entityTag
102952	return c
102953}
102954
102955// Context sets the context to be used in this call's Do method. Any
102956// pending HTTP request will be aborted if the provided context is
102957// canceled.
102958func (c *NetworksGetEffectiveFirewallsCall) Context(ctx context.Context) *NetworksGetEffectiveFirewallsCall {
102959	c.ctx_ = ctx
102960	return c
102961}
102962
102963// Header returns an http.Header that can be modified by the caller to
102964// add HTTP headers to the request.
102965func (c *NetworksGetEffectiveFirewallsCall) Header() http.Header {
102966	if c.header_ == nil {
102967		c.header_ = make(http.Header)
102968	}
102969	return c.header_
102970}
102971
102972func (c *NetworksGetEffectiveFirewallsCall) doRequest(alt string) (*http.Response, error) {
102973	reqHeaders := make(http.Header)
102974	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
102975	for k, v := range c.header_ {
102976		reqHeaders[k] = v
102977	}
102978	reqHeaders.Set("User-Agent", c.s.userAgent())
102979	if c.ifNoneMatch_ != "" {
102980		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
102981	}
102982	var body io.Reader = nil
102983	c.urlParams_.Set("alt", alt)
102984	c.urlParams_.Set("prettyPrint", "false")
102985	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/getEffectiveFirewalls")
102986	urls += "?" + c.urlParams_.Encode()
102987	req, err := http.NewRequest("GET", urls, body)
102988	if err != nil {
102989		return nil, err
102990	}
102991	req.Header = reqHeaders
102992	googleapi.Expand(req.URL, map[string]string{
102993		"project": c.project,
102994		"network": c.network,
102995	})
102996	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102997}
102998
102999// Do executes the "compute.networks.getEffectiveFirewalls" call.
103000// Exactly one of *NetworksGetEffectiveFirewallsResponse or error will
103001// be non-nil. Any non-2xx status code is an error. Response headers are
103002// in either
103003// *NetworksGetEffectiveFirewallsResponse.ServerResponse.Header or (if a
103004// response was returned at all) in error.(*googleapi.Error).Header. Use
103005// googleapi.IsNotModified to check whether the returned error was
103006// because http.StatusNotModified was returned.
103007func (c *NetworksGetEffectiveFirewallsCall) Do(opts ...googleapi.CallOption) (*NetworksGetEffectiveFirewallsResponse, error) {
103008	gensupport.SetOptions(c.urlParams_, opts...)
103009	res, err := c.doRequest("json")
103010	if res != nil && res.StatusCode == http.StatusNotModified {
103011		if res.Body != nil {
103012			res.Body.Close()
103013		}
103014		return nil, &googleapi.Error{
103015			Code:   res.StatusCode,
103016			Header: res.Header,
103017		}
103018	}
103019	if err != nil {
103020		return nil, err
103021	}
103022	defer googleapi.CloseBody(res)
103023	if err := googleapi.CheckResponse(res); err != nil {
103024		return nil, err
103025	}
103026	ret := &NetworksGetEffectiveFirewallsResponse{
103027		ServerResponse: googleapi.ServerResponse{
103028			Header:         res.Header,
103029			HTTPStatusCode: res.StatusCode,
103030		},
103031	}
103032	target := &ret
103033	if err := gensupport.DecodeResponse(target, res); err != nil {
103034		return nil, err
103035	}
103036	return ret, nil
103037	// {
103038	//   "description": "Returns the effective firewalls on a given network.",
103039	//   "httpMethod": "GET",
103040	//   "id": "compute.networks.getEffectiveFirewalls",
103041	//   "parameterOrder": [
103042	//     "project",
103043	//     "network"
103044	//   ],
103045	//   "parameters": {
103046	//     "network": {
103047	//       "description": "Name of the network for this request.",
103048	//       "location": "path",
103049	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
103050	//       "required": true,
103051	//       "type": "string"
103052	//     },
103053	//     "project": {
103054	//       "description": "Project ID for this request.",
103055	//       "location": "path",
103056	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103057	//       "required": true,
103058	//       "type": "string"
103059	//     }
103060	//   },
103061	//   "path": "{project}/global/networks/{network}/getEffectiveFirewalls",
103062	//   "response": {
103063	//     "$ref": "NetworksGetEffectiveFirewallsResponse"
103064	//   },
103065	//   "scopes": [
103066	//     "https://www.googleapis.com/auth/cloud-platform",
103067	//     "https://www.googleapis.com/auth/compute",
103068	//     "https://www.googleapis.com/auth/compute.readonly"
103069	//   ]
103070	// }
103071
103072}
103073
103074// method id "compute.networks.insert":
103075
103076type NetworksInsertCall struct {
103077	s          *Service
103078	project    string
103079	network    *Network
103080	urlParams_ gensupport.URLParams
103081	ctx_       context.Context
103082	header_    http.Header
103083}
103084
103085// Insert: Creates a network in the specified project using the data
103086// included in the request.
103087// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/insert
103088func (r *NetworksService) Insert(project string, network *Network) *NetworksInsertCall {
103089	c := &NetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103090	c.project = project
103091	c.network = network
103092	return c
103093}
103094
103095// RequestId sets the optional parameter "requestId": An optional
103096// request ID to identify requests. Specify a unique request ID so that
103097// if you must retry your request, the server will know to ignore the
103098// request if it has already been completed.
103099//
103100// For example, consider a situation where you make an initial request
103101// and the request times out. If you make the request again with the
103102// same request ID, the server can check if original operation with the
103103// same request ID was received, and if so, will ignore the second
103104// request. This prevents clients from accidentally creating duplicate
103105// commitments.
103106//
103107// The request ID must be a valid UUID with the exception that zero UUID
103108// is not supported (00000000-0000-0000-0000-000000000000).
103109func (c *NetworksInsertCall) RequestId(requestId string) *NetworksInsertCall {
103110	c.urlParams_.Set("requestId", requestId)
103111	return c
103112}
103113
103114// Fields allows partial responses to be retrieved. See
103115// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103116// for more information.
103117func (c *NetworksInsertCall) Fields(s ...googleapi.Field) *NetworksInsertCall {
103118	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103119	return c
103120}
103121
103122// Context sets the context to be used in this call's Do method. Any
103123// pending HTTP request will be aborted if the provided context is
103124// canceled.
103125func (c *NetworksInsertCall) Context(ctx context.Context) *NetworksInsertCall {
103126	c.ctx_ = ctx
103127	return c
103128}
103129
103130// Header returns an http.Header that can be modified by the caller to
103131// add HTTP headers to the request.
103132func (c *NetworksInsertCall) Header() http.Header {
103133	if c.header_ == nil {
103134		c.header_ = make(http.Header)
103135	}
103136	return c.header_
103137}
103138
103139func (c *NetworksInsertCall) doRequest(alt string) (*http.Response, error) {
103140	reqHeaders := make(http.Header)
103141	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
103142	for k, v := range c.header_ {
103143		reqHeaders[k] = v
103144	}
103145	reqHeaders.Set("User-Agent", c.s.userAgent())
103146	var body io.Reader = nil
103147	body, err := googleapi.WithoutDataWrapper.JSONReader(c.network)
103148	if err != nil {
103149		return nil, err
103150	}
103151	reqHeaders.Set("Content-Type", "application/json")
103152	c.urlParams_.Set("alt", alt)
103153	c.urlParams_.Set("prettyPrint", "false")
103154	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks")
103155	urls += "?" + c.urlParams_.Encode()
103156	req, err := http.NewRequest("POST", urls, body)
103157	if err != nil {
103158		return nil, err
103159	}
103160	req.Header = reqHeaders
103161	googleapi.Expand(req.URL, map[string]string{
103162		"project": c.project,
103163	})
103164	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103165}
103166
103167// Do executes the "compute.networks.insert" call.
103168// Exactly one of *Operation or error will be non-nil. Any non-2xx
103169// status code is an error. Response headers are in either
103170// *Operation.ServerResponse.Header or (if a response was returned at
103171// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103172// to check whether the returned error was because
103173// http.StatusNotModified was returned.
103174func (c *NetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103175	gensupport.SetOptions(c.urlParams_, opts...)
103176	res, err := c.doRequest("json")
103177	if res != nil && res.StatusCode == http.StatusNotModified {
103178		if res.Body != nil {
103179			res.Body.Close()
103180		}
103181		return nil, &googleapi.Error{
103182			Code:   res.StatusCode,
103183			Header: res.Header,
103184		}
103185	}
103186	if err != nil {
103187		return nil, err
103188	}
103189	defer googleapi.CloseBody(res)
103190	if err := googleapi.CheckResponse(res); err != nil {
103191		return nil, err
103192	}
103193	ret := &Operation{
103194		ServerResponse: googleapi.ServerResponse{
103195			Header:         res.Header,
103196			HTTPStatusCode: res.StatusCode,
103197		},
103198	}
103199	target := &ret
103200	if err := gensupport.DecodeResponse(target, res); err != nil {
103201		return nil, err
103202	}
103203	return ret, nil
103204	// {
103205	//   "description": "Creates a network in the specified project using the data included in the request.",
103206	//   "httpMethod": "POST",
103207	//   "id": "compute.networks.insert",
103208	//   "parameterOrder": [
103209	//     "project"
103210	//   ],
103211	//   "parameters": {
103212	//     "project": {
103213	//       "description": "Project ID for this request.",
103214	//       "location": "path",
103215	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103216	//       "required": true,
103217	//       "type": "string"
103218	//     },
103219	//     "requestId": {
103220	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
103221	//       "location": "query",
103222	//       "type": "string"
103223	//     }
103224	//   },
103225	//   "path": "{project}/global/networks",
103226	//   "request": {
103227	//     "$ref": "Network"
103228	//   },
103229	//   "response": {
103230	//     "$ref": "Operation"
103231	//   },
103232	//   "scopes": [
103233	//     "https://www.googleapis.com/auth/cloud-platform",
103234	//     "https://www.googleapis.com/auth/compute"
103235	//   ]
103236	// }
103237
103238}
103239
103240// method id "compute.networks.list":
103241
103242type NetworksListCall struct {
103243	s            *Service
103244	project      string
103245	urlParams_   gensupport.URLParams
103246	ifNoneMatch_ string
103247	ctx_         context.Context
103248	header_      http.Header
103249}
103250
103251// List: Retrieves the list of networks available to the specified
103252// project.
103253// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/list
103254func (r *NetworksService) List(project string) *NetworksListCall {
103255	c := &NetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103256	c.project = project
103257	return c
103258}
103259
103260// Filter sets the optional parameter "filter": A filter expression that
103261// filters resources listed in the response. The expression must specify
103262// the field name, a comparison operator, and the value that you want to
103263// use for filtering. The value must be a string, a number, or a
103264// boolean. The comparison operator must be either =, !=, >, or <.
103265//
103266// For example, if you are filtering Compute Engine instances, you can
103267// exclude instances named example-instance by specifying name !=
103268// example-instance.
103269//
103270// You can also filter nested fields. For example, you could specify
103271// scheduling.automaticRestart = false to include instances only if they
103272// are not scheduled for automatic restarts. You can use filtering on
103273// nested fields to filter based on resource labels.
103274//
103275// To filter on multiple expressions, provide each separate expression
103276// within parentheses. For example, (scheduling.automaticRestart = true)
103277// (cpuPlatform = "Intel Skylake"). By default, each expression is an
103278// AND expression. However, you can include AND and OR expressions
103279// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
103280// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
103281// true).
103282func (c *NetworksListCall) Filter(filter string) *NetworksListCall {
103283	c.urlParams_.Set("filter", filter)
103284	return c
103285}
103286
103287// MaxResults sets the optional parameter "maxResults": The maximum
103288// number of results per page that should be returned. If the number of
103289// available results is larger than maxResults, Compute Engine returns a
103290// nextPageToken that can be used to get the next page of results in
103291// subsequent list requests. Acceptable values are 0 to 500, inclusive.
103292// (Default: 500)
103293func (c *NetworksListCall) MaxResults(maxResults int64) *NetworksListCall {
103294	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
103295	return c
103296}
103297
103298// OrderBy sets the optional parameter "orderBy": Sorts list results by
103299// a certain order. By default, results are returned in alphanumerical
103300// order based on the resource name.
103301//
103302// You can also sort results in descending order based on the creation
103303// timestamp using orderBy="creationTimestamp desc". This sorts results
103304// based on the creationTimestamp field in reverse chronological order
103305// (newest result first). Use this to sort resources like operations so
103306// that the newest operation is returned first.
103307//
103308// Currently, only sorting by name or creationTimestamp desc is
103309// supported.
103310func (c *NetworksListCall) OrderBy(orderBy string) *NetworksListCall {
103311	c.urlParams_.Set("orderBy", orderBy)
103312	return c
103313}
103314
103315// PageToken sets the optional parameter "pageToken": Specifies a page
103316// token to use. Set pageToken to the nextPageToken returned by a
103317// previous list request to get the next page of results.
103318func (c *NetworksListCall) PageToken(pageToken string) *NetworksListCall {
103319	c.urlParams_.Set("pageToken", pageToken)
103320	return c
103321}
103322
103323// Fields allows partial responses to be retrieved. See
103324// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103325// for more information.
103326func (c *NetworksListCall) Fields(s ...googleapi.Field) *NetworksListCall {
103327	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103328	return c
103329}
103330
103331// IfNoneMatch sets the optional parameter which makes the operation
103332// fail if the object's ETag matches the given value. This is useful for
103333// getting updates only after the object has changed since the last
103334// request. Use googleapi.IsNotModified to check whether the response
103335// error from Do is the result of In-None-Match.
103336func (c *NetworksListCall) IfNoneMatch(entityTag string) *NetworksListCall {
103337	c.ifNoneMatch_ = entityTag
103338	return c
103339}
103340
103341// Context sets the context to be used in this call's Do method. Any
103342// pending HTTP request will be aborted if the provided context is
103343// canceled.
103344func (c *NetworksListCall) Context(ctx context.Context) *NetworksListCall {
103345	c.ctx_ = ctx
103346	return c
103347}
103348
103349// Header returns an http.Header that can be modified by the caller to
103350// add HTTP headers to the request.
103351func (c *NetworksListCall) Header() http.Header {
103352	if c.header_ == nil {
103353		c.header_ = make(http.Header)
103354	}
103355	return c.header_
103356}
103357
103358func (c *NetworksListCall) doRequest(alt string) (*http.Response, error) {
103359	reqHeaders := make(http.Header)
103360	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
103361	for k, v := range c.header_ {
103362		reqHeaders[k] = v
103363	}
103364	reqHeaders.Set("User-Agent", c.s.userAgent())
103365	if c.ifNoneMatch_ != "" {
103366		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
103367	}
103368	var body io.Reader = nil
103369	c.urlParams_.Set("alt", alt)
103370	c.urlParams_.Set("prettyPrint", "false")
103371	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks")
103372	urls += "?" + c.urlParams_.Encode()
103373	req, err := http.NewRequest("GET", urls, body)
103374	if err != nil {
103375		return nil, err
103376	}
103377	req.Header = reqHeaders
103378	googleapi.Expand(req.URL, map[string]string{
103379		"project": c.project,
103380	})
103381	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103382}
103383
103384// Do executes the "compute.networks.list" call.
103385// Exactly one of *NetworkList or error will be non-nil. Any non-2xx
103386// status code is an error. Response headers are in either
103387// *NetworkList.ServerResponse.Header or (if a response was returned at
103388// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103389// to check whether the returned error was because
103390// http.StatusNotModified was returned.
103391func (c *NetworksListCall) Do(opts ...googleapi.CallOption) (*NetworkList, error) {
103392	gensupport.SetOptions(c.urlParams_, opts...)
103393	res, err := c.doRequest("json")
103394	if res != nil && res.StatusCode == http.StatusNotModified {
103395		if res.Body != nil {
103396			res.Body.Close()
103397		}
103398		return nil, &googleapi.Error{
103399			Code:   res.StatusCode,
103400			Header: res.Header,
103401		}
103402	}
103403	if err != nil {
103404		return nil, err
103405	}
103406	defer googleapi.CloseBody(res)
103407	if err := googleapi.CheckResponse(res); err != nil {
103408		return nil, err
103409	}
103410	ret := &NetworkList{
103411		ServerResponse: googleapi.ServerResponse{
103412			Header:         res.Header,
103413			HTTPStatusCode: res.StatusCode,
103414		},
103415	}
103416	target := &ret
103417	if err := gensupport.DecodeResponse(target, res); err != nil {
103418		return nil, err
103419	}
103420	return ret, nil
103421	// {
103422	//   "description": "Retrieves the list of networks available to the specified project.",
103423	//   "httpMethod": "GET",
103424	//   "id": "compute.networks.list",
103425	//   "parameterOrder": [
103426	//     "project"
103427	//   ],
103428	//   "parameters": {
103429	//     "filter": {
103430	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
103431	//       "location": "query",
103432	//       "type": "string"
103433	//     },
103434	//     "maxResults": {
103435	//       "default": "500",
103436	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
103437	//       "format": "uint32",
103438	//       "location": "query",
103439	//       "minimum": "0",
103440	//       "type": "integer"
103441	//     },
103442	//     "orderBy": {
103443	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
103444	//       "location": "query",
103445	//       "type": "string"
103446	//     },
103447	//     "pageToken": {
103448	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
103449	//       "location": "query",
103450	//       "type": "string"
103451	//     },
103452	//     "project": {
103453	//       "description": "Project ID for this request.",
103454	//       "location": "path",
103455	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103456	//       "required": true,
103457	//       "type": "string"
103458	//     }
103459	//   },
103460	//   "path": "{project}/global/networks",
103461	//   "response": {
103462	//     "$ref": "NetworkList"
103463	//   },
103464	//   "scopes": [
103465	//     "https://www.googleapis.com/auth/cloud-platform",
103466	//     "https://www.googleapis.com/auth/compute",
103467	//     "https://www.googleapis.com/auth/compute.readonly"
103468	//   ]
103469	// }
103470
103471}
103472
103473// Pages invokes f for each page of results.
103474// A non-nil error returned from f will halt the iteration.
103475// The provided context supersedes any context provided to the Context method.
103476func (c *NetworksListCall) Pages(ctx context.Context, f func(*NetworkList) error) error {
103477	c.ctx_ = ctx
103478	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
103479	for {
103480		x, err := c.Do()
103481		if err != nil {
103482			return err
103483		}
103484		if err := f(x); err != nil {
103485			return err
103486		}
103487		if x.NextPageToken == "" {
103488			return nil
103489		}
103490		c.PageToken(x.NextPageToken)
103491	}
103492}
103493
103494// method id "compute.networks.listIpAddresses":
103495
103496type NetworksListIpAddressesCall struct {
103497	s            *Service
103498	project      string
103499	network      string
103500	urlParams_   gensupport.URLParams
103501	ifNoneMatch_ string
103502	ctx_         context.Context
103503	header_      http.Header
103504}
103505
103506// ListIpAddresses: Lists the internal IP addresses in the specified
103507// network.
103508func (r *NetworksService) ListIpAddresses(project string, network string) *NetworksListIpAddressesCall {
103509	c := &NetworksListIpAddressesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103510	c.project = project
103511	c.network = network
103512	return c
103513}
103514
103515// Filter sets the optional parameter "filter": A filter expression that
103516// filters resources listed in the response. The expression must specify
103517// the field name, a comparison operator, and the value that you want to
103518// use for filtering. The value must be a string, a number, or a
103519// boolean. The comparison operator must be either =, !=, >, or <.
103520//
103521// For example, if you are filtering Compute Engine instances, you can
103522// exclude instances named example-instance by specifying name !=
103523// example-instance.
103524//
103525// You can also filter nested fields. For example, you could specify
103526// scheduling.automaticRestart = false to include instances only if they
103527// are not scheduled for automatic restarts. You can use filtering on
103528// nested fields to filter based on resource labels.
103529//
103530// To filter on multiple expressions, provide each separate expression
103531// within parentheses. For example, (scheduling.automaticRestart = true)
103532// (cpuPlatform = "Intel Skylake"). By default, each expression is an
103533// AND expression. However, you can include AND and OR expressions
103534// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
103535// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
103536// true).
103537func (c *NetworksListIpAddressesCall) Filter(filter string) *NetworksListIpAddressesCall {
103538	c.urlParams_.Set("filter", filter)
103539	return c
103540}
103541
103542// MaxResults sets the optional parameter "maxResults": The maximum
103543// number of results per page that should be returned. If the number of
103544// available results is larger than maxResults, Compute Engine returns a
103545// nextPageToken that can be used to get the next page of results in
103546// subsequent list requests. Acceptable values are 0 to 500, inclusive.
103547// (Default: 500)
103548func (c *NetworksListIpAddressesCall) MaxResults(maxResults int64) *NetworksListIpAddressesCall {
103549	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
103550	return c
103551}
103552
103553// OrderBy sets the optional parameter "orderBy": Sorts list results by
103554// a certain order. By default, results are returned in alphanumerical
103555// order based on the resource name.
103556//
103557// You can also sort results in descending order based on the creation
103558// timestamp using orderBy="creationTimestamp desc". This sorts results
103559// based on the creationTimestamp field in reverse chronological order
103560// (newest result first). Use this to sort resources like operations so
103561// that the newest operation is returned first.
103562//
103563// Currently, only sorting by name or creationTimestamp desc is
103564// supported.
103565func (c *NetworksListIpAddressesCall) OrderBy(orderBy string) *NetworksListIpAddressesCall {
103566	c.urlParams_.Set("orderBy", orderBy)
103567	return c
103568}
103569
103570// PageToken sets the optional parameter "pageToken": Specifies a page
103571// token to use. Set pageToken to the nextPageToken returned by a
103572// previous list request to get the next page of results.
103573func (c *NetworksListIpAddressesCall) PageToken(pageToken string) *NetworksListIpAddressesCall {
103574	c.urlParams_.Set("pageToken", pageToken)
103575	return c
103576}
103577
103578// Types sets the optional parameter "types": (Optional) types filter
103579// separate by comma, valid values are: SUBNETWORK, RESERVED, PEER_USED,
103580// PEER_RESERVED, REMOTE_USED, REMOTE_RESERVED.
103581func (c *NetworksListIpAddressesCall) Types(types string) *NetworksListIpAddressesCall {
103582	c.urlParams_.Set("types", types)
103583	return c
103584}
103585
103586// Fields allows partial responses to be retrieved. See
103587// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103588// for more information.
103589func (c *NetworksListIpAddressesCall) Fields(s ...googleapi.Field) *NetworksListIpAddressesCall {
103590	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103591	return c
103592}
103593
103594// IfNoneMatch sets the optional parameter which makes the operation
103595// fail if the object's ETag matches the given value. This is useful for
103596// getting updates only after the object has changed since the last
103597// request. Use googleapi.IsNotModified to check whether the response
103598// error from Do is the result of In-None-Match.
103599func (c *NetworksListIpAddressesCall) IfNoneMatch(entityTag string) *NetworksListIpAddressesCall {
103600	c.ifNoneMatch_ = entityTag
103601	return c
103602}
103603
103604// Context sets the context to be used in this call's Do method. Any
103605// pending HTTP request will be aborted if the provided context is
103606// canceled.
103607func (c *NetworksListIpAddressesCall) Context(ctx context.Context) *NetworksListIpAddressesCall {
103608	c.ctx_ = ctx
103609	return c
103610}
103611
103612// Header returns an http.Header that can be modified by the caller to
103613// add HTTP headers to the request.
103614func (c *NetworksListIpAddressesCall) Header() http.Header {
103615	if c.header_ == nil {
103616		c.header_ = make(http.Header)
103617	}
103618	return c.header_
103619}
103620
103621func (c *NetworksListIpAddressesCall) doRequest(alt string) (*http.Response, error) {
103622	reqHeaders := make(http.Header)
103623	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
103624	for k, v := range c.header_ {
103625		reqHeaders[k] = v
103626	}
103627	reqHeaders.Set("User-Agent", c.s.userAgent())
103628	if c.ifNoneMatch_ != "" {
103629		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
103630	}
103631	var body io.Reader = nil
103632	c.urlParams_.Set("alt", alt)
103633	c.urlParams_.Set("prettyPrint", "false")
103634	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/listIpAddresses")
103635	urls += "?" + c.urlParams_.Encode()
103636	req, err := http.NewRequest("GET", urls, body)
103637	if err != nil {
103638		return nil, err
103639	}
103640	req.Header = reqHeaders
103641	googleapi.Expand(req.URL, map[string]string{
103642		"project": c.project,
103643		"network": c.network,
103644	})
103645	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103646}
103647
103648// Do executes the "compute.networks.listIpAddresses" call.
103649// Exactly one of *IpAddressesList or error will be non-nil. Any non-2xx
103650// status code is an error. Response headers are in either
103651// *IpAddressesList.ServerResponse.Header or (if a response was returned
103652// at all) in error.(*googleapi.Error).Header. Use
103653// googleapi.IsNotModified to check whether the returned error was
103654// because http.StatusNotModified was returned.
103655func (c *NetworksListIpAddressesCall) Do(opts ...googleapi.CallOption) (*IpAddressesList, error) {
103656	gensupport.SetOptions(c.urlParams_, opts...)
103657	res, err := c.doRequest("json")
103658	if res != nil && res.StatusCode == http.StatusNotModified {
103659		if res.Body != nil {
103660			res.Body.Close()
103661		}
103662		return nil, &googleapi.Error{
103663			Code:   res.StatusCode,
103664			Header: res.Header,
103665		}
103666	}
103667	if err != nil {
103668		return nil, err
103669	}
103670	defer googleapi.CloseBody(res)
103671	if err := googleapi.CheckResponse(res); err != nil {
103672		return nil, err
103673	}
103674	ret := &IpAddressesList{
103675		ServerResponse: googleapi.ServerResponse{
103676			Header:         res.Header,
103677			HTTPStatusCode: res.StatusCode,
103678		},
103679	}
103680	target := &ret
103681	if err := gensupport.DecodeResponse(target, res); err != nil {
103682		return nil, err
103683	}
103684	return ret, nil
103685	// {
103686	//   "description": "Lists the internal IP addresses in the specified network.",
103687	//   "httpMethod": "GET",
103688	//   "id": "compute.networks.listIpAddresses",
103689	//   "parameterOrder": [
103690	//     "project",
103691	//     "network"
103692	//   ],
103693	//   "parameters": {
103694	//     "filter": {
103695	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
103696	//       "location": "query",
103697	//       "type": "string"
103698	//     },
103699	//     "maxResults": {
103700	//       "default": "500",
103701	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
103702	//       "format": "uint32",
103703	//       "location": "query",
103704	//       "minimum": "0",
103705	//       "type": "integer"
103706	//     },
103707	//     "network": {
103708	//       "description": "Name of the network for this request.",
103709	//       "location": "path",
103710	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
103711	//       "required": true,
103712	//       "type": "string"
103713	//     },
103714	//     "orderBy": {
103715	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
103716	//       "location": "query",
103717	//       "type": "string"
103718	//     },
103719	//     "pageToken": {
103720	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
103721	//       "location": "query",
103722	//       "type": "string"
103723	//     },
103724	//     "project": {
103725	//       "description": "Project ID for this request.",
103726	//       "location": "path",
103727	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103728	//       "required": true,
103729	//       "type": "string"
103730	//     },
103731	//     "types": {
103732	//       "description": "(Optional) types filter separate by comma, valid values are: SUBNETWORK, RESERVED, PEER_USED, PEER_RESERVED, REMOTE_USED, REMOTE_RESERVED.",
103733	//       "location": "query",
103734	//       "type": "string"
103735	//     }
103736	//   },
103737	//   "path": "{project}/global/networks/{network}/listIpAddresses",
103738	//   "response": {
103739	//     "$ref": "IpAddressesList"
103740	//   },
103741	//   "scopes": [
103742	//     "https://www.googleapis.com/auth/cloud-platform",
103743	//     "https://www.googleapis.com/auth/compute",
103744	//     "https://www.googleapis.com/auth/compute.readonly"
103745	//   ]
103746	// }
103747
103748}
103749
103750// Pages invokes f for each page of results.
103751// A non-nil error returned from f will halt the iteration.
103752// The provided context supersedes any context provided to the Context method.
103753func (c *NetworksListIpAddressesCall) Pages(ctx context.Context, f func(*IpAddressesList) error) error {
103754	c.ctx_ = ctx
103755	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
103756	for {
103757		x, err := c.Do()
103758		if err != nil {
103759			return err
103760		}
103761		if err := f(x); err != nil {
103762			return err
103763		}
103764		if x.NextPageToken == "" {
103765			return nil
103766		}
103767		c.PageToken(x.NextPageToken)
103768	}
103769}
103770
103771// method id "compute.networks.listIpOwners":
103772
103773type NetworksListIpOwnersCall struct {
103774	s            *Service
103775	project      string
103776	network      string
103777	urlParams_   gensupport.URLParams
103778	ifNoneMatch_ string
103779	ctx_         context.Context
103780	header_      http.Header
103781}
103782
103783// ListIpOwners: Lists the internal IP owners in the specified network.
103784func (r *NetworksService) ListIpOwners(project string, network string) *NetworksListIpOwnersCall {
103785	c := &NetworksListIpOwnersCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103786	c.project = project
103787	c.network = network
103788	return c
103789}
103790
103791// Filter sets the optional parameter "filter": A filter expression that
103792// filters resources listed in the response. The expression must specify
103793// the field name, a comparison operator, and the value that you want to
103794// use for filtering. The value must be a string, a number, or a
103795// boolean. The comparison operator must be either =, !=, >, or <.
103796//
103797// For example, if you are filtering Compute Engine instances, you can
103798// exclude instances named example-instance by specifying name !=
103799// example-instance.
103800//
103801// You can also filter nested fields. For example, you could specify
103802// scheduling.automaticRestart = false to include instances only if they
103803// are not scheduled for automatic restarts. You can use filtering on
103804// nested fields to filter based on resource labels.
103805//
103806// To filter on multiple expressions, provide each separate expression
103807// within parentheses. For example, (scheduling.automaticRestart = true)
103808// (cpuPlatform = "Intel Skylake"). By default, each expression is an
103809// AND expression. However, you can include AND and OR expressions
103810// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
103811// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
103812// true).
103813func (c *NetworksListIpOwnersCall) Filter(filter string) *NetworksListIpOwnersCall {
103814	c.urlParams_.Set("filter", filter)
103815	return c
103816}
103817
103818// IpCidrRange sets the optional parameter "ipCidrRange": (Optional) IP
103819// CIDR range filter, example: "10.128.10.0/30".
103820func (c *NetworksListIpOwnersCall) IpCidrRange(ipCidrRange string) *NetworksListIpOwnersCall {
103821	c.urlParams_.Set("ipCidrRange", ipCidrRange)
103822	return c
103823}
103824
103825// MaxResults sets the optional parameter "maxResults": The maximum
103826// number of results per page that should be returned. If the number of
103827// available results is larger than maxResults, Compute Engine returns a
103828// nextPageToken that can be used to get the next page of results in
103829// subsequent list requests. Acceptable values are 0 to 500, inclusive.
103830// (Default: 500)
103831func (c *NetworksListIpOwnersCall) MaxResults(maxResults int64) *NetworksListIpOwnersCall {
103832	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
103833	return c
103834}
103835
103836// OrderBy sets the optional parameter "orderBy": Sorts list results by
103837// a certain order. By default, results are returned in alphanumerical
103838// order based on the resource name.
103839//
103840// You can also sort results in descending order based on the creation
103841// timestamp using orderBy="creationTimestamp desc". This sorts results
103842// based on the creationTimestamp field in reverse chronological order
103843// (newest result first). Use this to sort resources like operations so
103844// that the newest operation is returned first.
103845//
103846// Currently, only sorting by name or creationTimestamp desc is
103847// supported.
103848func (c *NetworksListIpOwnersCall) OrderBy(orderBy string) *NetworksListIpOwnersCall {
103849	c.urlParams_.Set("orderBy", orderBy)
103850	return c
103851}
103852
103853// OwnerProjects sets the optional parameter "ownerProjects": (Optional)
103854// Project IDs filter, example: "project-1,project-2".
103855func (c *NetworksListIpOwnersCall) OwnerProjects(ownerProjects string) *NetworksListIpOwnersCall {
103856	c.urlParams_.Set("ownerProjects", ownerProjects)
103857	return c
103858}
103859
103860// OwnerTypes sets the optional parameter "ownerTypes": (Optional) Owner
103861// types filter, example: "instance,forwardingRule".
103862func (c *NetworksListIpOwnersCall) OwnerTypes(ownerTypes string) *NetworksListIpOwnersCall {
103863	c.urlParams_.Set("ownerTypes", ownerTypes)
103864	return c
103865}
103866
103867// PageToken sets the optional parameter "pageToken": Specifies a page
103868// token to use. Set pageToken to the nextPageToken returned by a
103869// previous list request to get the next page of results.
103870func (c *NetworksListIpOwnersCall) PageToken(pageToken string) *NetworksListIpOwnersCall {
103871	c.urlParams_.Set("pageToken", pageToken)
103872	return c
103873}
103874
103875// SubnetName sets the optional parameter "subnetName": (Optional)
103876// Subnetwork name filter.
103877func (c *NetworksListIpOwnersCall) SubnetName(subnetName string) *NetworksListIpOwnersCall {
103878	c.urlParams_.Set("subnetName", subnetName)
103879	return c
103880}
103881
103882// SubnetRegion sets the optional parameter "subnetRegion": (Optional)
103883// Subnetwork region filter.
103884func (c *NetworksListIpOwnersCall) SubnetRegion(subnetRegion string) *NetworksListIpOwnersCall {
103885	c.urlParams_.Set("subnetRegion", subnetRegion)
103886	return c
103887}
103888
103889// Fields allows partial responses to be retrieved. See
103890// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103891// for more information.
103892func (c *NetworksListIpOwnersCall) Fields(s ...googleapi.Field) *NetworksListIpOwnersCall {
103893	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103894	return c
103895}
103896
103897// IfNoneMatch sets the optional parameter which makes the operation
103898// fail if the object's ETag matches the given value. This is useful for
103899// getting updates only after the object has changed since the last
103900// request. Use googleapi.IsNotModified to check whether the response
103901// error from Do is the result of In-None-Match.
103902func (c *NetworksListIpOwnersCall) IfNoneMatch(entityTag string) *NetworksListIpOwnersCall {
103903	c.ifNoneMatch_ = entityTag
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 *NetworksListIpOwnersCall) Context(ctx context.Context) *NetworksListIpOwnersCall {
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 *NetworksListIpOwnersCall) Header() http.Header {
103918	if c.header_ == nil {
103919		c.header_ = make(http.Header)
103920	}
103921	return c.header_
103922}
103923
103924func (c *NetworksListIpOwnersCall) 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	if c.ifNoneMatch_ != "" {
103932		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
103933	}
103934	var body io.Reader = nil
103935	c.urlParams_.Set("alt", alt)
103936	c.urlParams_.Set("prettyPrint", "false")
103937	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/listIpOwners")
103938	urls += "?" + c.urlParams_.Encode()
103939	req, err := http.NewRequest("GET", urls, body)
103940	if err != nil {
103941		return nil, err
103942	}
103943	req.Header = reqHeaders
103944	googleapi.Expand(req.URL, map[string]string{
103945		"project": c.project,
103946		"network": c.network,
103947	})
103948	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103949}
103950
103951// Do executes the "compute.networks.listIpOwners" call.
103952// Exactly one of *IpOwnerList or error will be non-nil. Any non-2xx
103953// status code is an error. Response headers are in either
103954// *IpOwnerList.ServerResponse.Header or (if a response was returned at
103955// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103956// to check whether the returned error was because
103957// http.StatusNotModified was returned.
103958func (c *NetworksListIpOwnersCall) Do(opts ...googleapi.CallOption) (*IpOwnerList, error) {
103959	gensupport.SetOptions(c.urlParams_, opts...)
103960	res, err := c.doRequest("json")
103961	if res != nil && res.StatusCode == http.StatusNotModified {
103962		if res.Body != nil {
103963			res.Body.Close()
103964		}
103965		return nil, &googleapi.Error{
103966			Code:   res.StatusCode,
103967			Header: res.Header,
103968		}
103969	}
103970	if err != nil {
103971		return nil, err
103972	}
103973	defer googleapi.CloseBody(res)
103974	if err := googleapi.CheckResponse(res); err != nil {
103975		return nil, err
103976	}
103977	ret := &IpOwnerList{
103978		ServerResponse: googleapi.ServerResponse{
103979			Header:         res.Header,
103980			HTTPStatusCode: res.StatusCode,
103981		},
103982	}
103983	target := &ret
103984	if err := gensupport.DecodeResponse(target, res); err != nil {
103985		return nil, err
103986	}
103987	return ret, nil
103988	// {
103989	//   "description": "Lists the internal IP owners in the specified network.",
103990	//   "httpMethod": "GET",
103991	//   "id": "compute.networks.listIpOwners",
103992	//   "parameterOrder": [
103993	//     "project",
103994	//     "network"
103995	//   ],
103996	//   "parameters": {
103997	//     "filter": {
103998	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
103999	//       "location": "query",
104000	//       "type": "string"
104001	//     },
104002	//     "ipCidrRange": {
104003	//       "description": "(Optional) IP CIDR range filter, example: \"10.128.10.0/30\".",
104004	//       "location": "query",
104005	//       "type": "string"
104006	//     },
104007	//     "maxResults": {
104008	//       "default": "500",
104009	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
104010	//       "format": "uint32",
104011	//       "location": "query",
104012	//       "minimum": "0",
104013	//       "type": "integer"
104014	//     },
104015	//     "network": {
104016	//       "description": "Name of the network to return.",
104017	//       "location": "path",
104018	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104019	//       "required": true,
104020	//       "type": "string"
104021	//     },
104022	//     "orderBy": {
104023	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
104024	//       "location": "query",
104025	//       "type": "string"
104026	//     },
104027	//     "ownerProjects": {
104028	//       "description": "(Optional) Project IDs filter, example: \"project-1,project-2\".",
104029	//       "location": "query",
104030	//       "type": "string"
104031	//     },
104032	//     "ownerTypes": {
104033	//       "description": "(Optional) Owner types filter, example: \"instance,forwardingRule\".",
104034	//       "location": "query",
104035	//       "type": "string"
104036	//     },
104037	//     "pageToken": {
104038	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
104039	//       "location": "query",
104040	//       "type": "string"
104041	//     },
104042	//     "project": {
104043	//       "description": "Project ID for this request.",
104044	//       "location": "path",
104045	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104046	//       "required": true,
104047	//       "type": "string"
104048	//     },
104049	//     "subnetName": {
104050	//       "description": "(Optional) Subnetwork name filter.",
104051	//       "location": "query",
104052	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
104053	//       "type": "string"
104054	//     },
104055	//     "subnetRegion": {
104056	//       "description": "(Optional) Subnetwork region filter.",
104057	//       "location": "query",
104058	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
104059	//       "type": "string"
104060	//     }
104061	//   },
104062	//   "path": "{project}/global/networks/{network}/listIpOwners",
104063	//   "response": {
104064	//     "$ref": "IpOwnerList"
104065	//   },
104066	//   "scopes": [
104067	//     "https://www.googleapis.com/auth/cloud-platform",
104068	//     "https://www.googleapis.com/auth/compute",
104069	//     "https://www.googleapis.com/auth/compute.readonly"
104070	//   ]
104071	// }
104072
104073}
104074
104075// Pages invokes f for each page of results.
104076// A non-nil error returned from f will halt the iteration.
104077// The provided context supersedes any context provided to the Context method.
104078func (c *NetworksListIpOwnersCall) Pages(ctx context.Context, f func(*IpOwnerList) error) error {
104079	c.ctx_ = ctx
104080	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
104081	for {
104082		x, err := c.Do()
104083		if err != nil {
104084			return err
104085		}
104086		if err := f(x); err != nil {
104087			return err
104088		}
104089		if x.NextPageToken == "" {
104090			return nil
104091		}
104092		c.PageToken(x.NextPageToken)
104093	}
104094}
104095
104096// method id "compute.networks.listPeeringRoutes":
104097
104098type NetworksListPeeringRoutesCall struct {
104099	s            *Service
104100	project      string
104101	network      string
104102	urlParams_   gensupport.URLParams
104103	ifNoneMatch_ string
104104	ctx_         context.Context
104105	header_      http.Header
104106}
104107
104108// ListPeeringRoutes: Lists the peering routes exchanged over peering
104109// connection.
104110func (r *NetworksService) ListPeeringRoutes(project string, network string) *NetworksListPeeringRoutesCall {
104111	c := &NetworksListPeeringRoutesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104112	c.project = project
104113	c.network = network
104114	return c
104115}
104116
104117// Direction sets the optional parameter "direction": The direction of
104118// the exchanged routes.
104119//
104120// Possible values:
104121//   "INCOMING"
104122//   "OUTGOING"
104123func (c *NetworksListPeeringRoutesCall) Direction(direction string) *NetworksListPeeringRoutesCall {
104124	c.urlParams_.Set("direction", direction)
104125	return c
104126}
104127
104128// Filter sets the optional parameter "filter": A filter expression that
104129// filters resources listed in the response. The expression must specify
104130// the field name, a comparison operator, and the value that you want to
104131// use for filtering. The value must be a string, a number, or a
104132// boolean. The comparison operator must be either =, !=, >, or <.
104133//
104134// For example, if you are filtering Compute Engine instances, you can
104135// exclude instances named example-instance by specifying name !=
104136// example-instance.
104137//
104138// You can also filter nested fields. For example, you could specify
104139// scheduling.automaticRestart = false to include instances only if they
104140// are not scheduled for automatic restarts. You can use filtering on
104141// nested fields to filter based on resource labels.
104142//
104143// To filter on multiple expressions, provide each separate expression
104144// within parentheses. For example, (scheduling.automaticRestart = true)
104145// (cpuPlatform = "Intel Skylake"). By default, each expression is an
104146// AND expression. However, you can include AND and OR expressions
104147// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
104148// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
104149// true).
104150func (c *NetworksListPeeringRoutesCall) Filter(filter string) *NetworksListPeeringRoutesCall {
104151	c.urlParams_.Set("filter", filter)
104152	return c
104153}
104154
104155// MaxResults sets the optional parameter "maxResults": The maximum
104156// number of results per page that should be returned. If the number of
104157// available results is larger than maxResults, Compute Engine returns a
104158// nextPageToken that can be used to get the next page of results in
104159// subsequent list requests. Acceptable values are 0 to 500, inclusive.
104160// (Default: 500)
104161func (c *NetworksListPeeringRoutesCall) MaxResults(maxResults int64) *NetworksListPeeringRoutesCall {
104162	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
104163	return c
104164}
104165
104166// OrderBy sets the optional parameter "orderBy": Sorts list results by
104167// a certain order. By default, results are returned in alphanumerical
104168// order based on the resource name.
104169//
104170// You can also sort results in descending order based on the creation
104171// timestamp using orderBy="creationTimestamp desc". This sorts results
104172// based on the creationTimestamp field in reverse chronological order
104173// (newest result first). Use this to sort resources like operations so
104174// that the newest operation is returned first.
104175//
104176// Currently, only sorting by name or creationTimestamp desc is
104177// supported.
104178func (c *NetworksListPeeringRoutesCall) OrderBy(orderBy string) *NetworksListPeeringRoutesCall {
104179	c.urlParams_.Set("orderBy", orderBy)
104180	return c
104181}
104182
104183// PageToken sets the optional parameter "pageToken": Specifies a page
104184// token to use. Set pageToken to the nextPageToken returned by a
104185// previous list request to get the next page of results.
104186func (c *NetworksListPeeringRoutesCall) PageToken(pageToken string) *NetworksListPeeringRoutesCall {
104187	c.urlParams_.Set("pageToken", pageToken)
104188	return c
104189}
104190
104191// PeeringName sets the optional parameter "peeringName": The response
104192// will show routes exchanged over the given peering connection.
104193func (c *NetworksListPeeringRoutesCall) PeeringName(peeringName string) *NetworksListPeeringRoutesCall {
104194	c.urlParams_.Set("peeringName", peeringName)
104195	return c
104196}
104197
104198// Region sets the optional parameter "region": The region of the
104199// request. The response will include all subnet routes, static routes
104200// and dynamic routes in the region.
104201func (c *NetworksListPeeringRoutesCall) Region(region string) *NetworksListPeeringRoutesCall {
104202	c.urlParams_.Set("region", region)
104203	return c
104204}
104205
104206// Fields allows partial responses to be retrieved. See
104207// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104208// for more information.
104209func (c *NetworksListPeeringRoutesCall) Fields(s ...googleapi.Field) *NetworksListPeeringRoutesCall {
104210	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104211	return c
104212}
104213
104214// IfNoneMatch sets the optional parameter which makes the operation
104215// fail if the object's ETag matches the given value. This is useful for
104216// getting updates only after the object has changed since the last
104217// request. Use googleapi.IsNotModified to check whether the response
104218// error from Do is the result of In-None-Match.
104219func (c *NetworksListPeeringRoutesCall) IfNoneMatch(entityTag string) *NetworksListPeeringRoutesCall {
104220	c.ifNoneMatch_ = entityTag
104221	return c
104222}
104223
104224// Context sets the context to be used in this call's Do method. Any
104225// pending HTTP request will be aborted if the provided context is
104226// canceled.
104227func (c *NetworksListPeeringRoutesCall) Context(ctx context.Context) *NetworksListPeeringRoutesCall {
104228	c.ctx_ = ctx
104229	return c
104230}
104231
104232// Header returns an http.Header that can be modified by the caller to
104233// add HTTP headers to the request.
104234func (c *NetworksListPeeringRoutesCall) Header() http.Header {
104235	if c.header_ == nil {
104236		c.header_ = make(http.Header)
104237	}
104238	return c.header_
104239}
104240
104241func (c *NetworksListPeeringRoutesCall) doRequest(alt string) (*http.Response, error) {
104242	reqHeaders := make(http.Header)
104243	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
104244	for k, v := range c.header_ {
104245		reqHeaders[k] = v
104246	}
104247	reqHeaders.Set("User-Agent", c.s.userAgent())
104248	if c.ifNoneMatch_ != "" {
104249		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
104250	}
104251	var body io.Reader = nil
104252	c.urlParams_.Set("alt", alt)
104253	c.urlParams_.Set("prettyPrint", "false")
104254	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/listPeeringRoutes")
104255	urls += "?" + c.urlParams_.Encode()
104256	req, err := http.NewRequest("GET", urls, body)
104257	if err != nil {
104258		return nil, err
104259	}
104260	req.Header = reqHeaders
104261	googleapi.Expand(req.URL, map[string]string{
104262		"project": c.project,
104263		"network": c.network,
104264	})
104265	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104266}
104267
104268// Do executes the "compute.networks.listPeeringRoutes" call.
104269// Exactly one of *ExchangedPeeringRoutesList or error will be non-nil.
104270// Any non-2xx status code is an error. Response headers are in either
104271// *ExchangedPeeringRoutesList.ServerResponse.Header or (if a response
104272// was returned at all) in error.(*googleapi.Error).Header. Use
104273// googleapi.IsNotModified to check whether the returned error was
104274// because http.StatusNotModified was returned.
104275func (c *NetworksListPeeringRoutesCall) Do(opts ...googleapi.CallOption) (*ExchangedPeeringRoutesList, error) {
104276	gensupport.SetOptions(c.urlParams_, opts...)
104277	res, err := c.doRequest("json")
104278	if res != nil && res.StatusCode == http.StatusNotModified {
104279		if res.Body != nil {
104280			res.Body.Close()
104281		}
104282		return nil, &googleapi.Error{
104283			Code:   res.StatusCode,
104284			Header: res.Header,
104285		}
104286	}
104287	if err != nil {
104288		return nil, err
104289	}
104290	defer googleapi.CloseBody(res)
104291	if err := googleapi.CheckResponse(res); err != nil {
104292		return nil, err
104293	}
104294	ret := &ExchangedPeeringRoutesList{
104295		ServerResponse: googleapi.ServerResponse{
104296			Header:         res.Header,
104297			HTTPStatusCode: res.StatusCode,
104298		},
104299	}
104300	target := &ret
104301	if err := gensupport.DecodeResponse(target, res); err != nil {
104302		return nil, err
104303	}
104304	return ret, nil
104305	// {
104306	//   "description": "Lists the peering routes exchanged over peering connection.",
104307	//   "httpMethod": "GET",
104308	//   "id": "compute.networks.listPeeringRoutes",
104309	//   "parameterOrder": [
104310	//     "project",
104311	//     "network"
104312	//   ],
104313	//   "parameters": {
104314	//     "direction": {
104315	//       "description": "The direction of the exchanged routes.",
104316	//       "enum": [
104317	//         "INCOMING",
104318	//         "OUTGOING"
104319	//       ],
104320	//       "enumDescriptions": [
104321	//         "",
104322	//         ""
104323	//       ],
104324	//       "location": "query",
104325	//       "type": "string"
104326	//     },
104327	//     "filter": {
104328	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
104329	//       "location": "query",
104330	//       "type": "string"
104331	//     },
104332	//     "maxResults": {
104333	//       "default": "500",
104334	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
104335	//       "format": "uint32",
104336	//       "location": "query",
104337	//       "minimum": "0",
104338	//       "type": "integer"
104339	//     },
104340	//     "network": {
104341	//       "description": "Name of the network for this request.",
104342	//       "location": "path",
104343	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
104344	//       "required": true,
104345	//       "type": "string"
104346	//     },
104347	//     "orderBy": {
104348	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
104349	//       "location": "query",
104350	//       "type": "string"
104351	//     },
104352	//     "pageToken": {
104353	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
104354	//       "location": "query",
104355	//       "type": "string"
104356	//     },
104357	//     "peeringName": {
104358	//       "description": "The response will show routes exchanged over the given peering connection.",
104359	//       "location": "query",
104360	//       "type": "string"
104361	//     },
104362	//     "project": {
104363	//       "description": "Project ID for this request.",
104364	//       "location": "path",
104365	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104366	//       "required": true,
104367	//       "type": "string"
104368	//     },
104369	//     "region": {
104370	//       "description": "The region of the request. The response will include all subnet routes, static routes and dynamic routes in the region.",
104371	//       "location": "query",
104372	//       "type": "string"
104373	//     }
104374	//   },
104375	//   "path": "{project}/global/networks/{network}/listPeeringRoutes",
104376	//   "response": {
104377	//     "$ref": "ExchangedPeeringRoutesList"
104378	//   },
104379	//   "scopes": [
104380	//     "https://www.googleapis.com/auth/cloud-platform",
104381	//     "https://www.googleapis.com/auth/compute",
104382	//     "https://www.googleapis.com/auth/compute.readonly"
104383	//   ]
104384	// }
104385
104386}
104387
104388// Pages invokes f for each page of results.
104389// A non-nil error returned from f will halt the iteration.
104390// The provided context supersedes any context provided to the Context method.
104391func (c *NetworksListPeeringRoutesCall) Pages(ctx context.Context, f func(*ExchangedPeeringRoutesList) error) error {
104392	c.ctx_ = ctx
104393	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
104394	for {
104395		x, err := c.Do()
104396		if err != nil {
104397			return err
104398		}
104399		if err := f(x); err != nil {
104400			return err
104401		}
104402		if x.NextPageToken == "" {
104403			return nil
104404		}
104405		c.PageToken(x.NextPageToken)
104406	}
104407}
104408
104409// method id "compute.networks.patch":
104410
104411type NetworksPatchCall struct {
104412	s          *Service
104413	project    string
104414	network    string
104415	network2   *Network
104416	urlParams_ gensupport.URLParams
104417	ctx_       context.Context
104418	header_    http.Header
104419}
104420
104421// Patch: Patches the specified network with the data included in the
104422// request. Only the following fields can be modified:
104423// routingConfig.routingMode.
104424func (r *NetworksService) Patch(project string, network string, network2 *Network) *NetworksPatchCall {
104425	c := &NetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104426	c.project = project
104427	c.network = network
104428	c.network2 = network2
104429	return c
104430}
104431
104432// RequestId sets the optional parameter "requestId": An optional
104433// request ID to identify requests. Specify a unique request ID so that
104434// if you must retry your request, the server will know to ignore the
104435// request if it has already been completed.
104436//
104437// For example, consider a situation where you make an initial request
104438// and the request times out. If you make the request again with the
104439// same request ID, the server can check if original operation with the
104440// same request ID was received, and if so, will ignore the second
104441// request. This prevents clients from accidentally creating duplicate
104442// commitments.
104443//
104444// The request ID must be a valid UUID with the exception that zero UUID
104445// is not supported (00000000-0000-0000-0000-000000000000).
104446func (c *NetworksPatchCall) RequestId(requestId string) *NetworksPatchCall {
104447	c.urlParams_.Set("requestId", requestId)
104448	return c
104449}
104450
104451// Fields allows partial responses to be retrieved. See
104452// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104453// for more information.
104454func (c *NetworksPatchCall) Fields(s ...googleapi.Field) *NetworksPatchCall {
104455	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104456	return c
104457}
104458
104459// Context sets the context to be used in this call's Do method. Any
104460// pending HTTP request will be aborted if the provided context is
104461// canceled.
104462func (c *NetworksPatchCall) Context(ctx context.Context) *NetworksPatchCall {
104463	c.ctx_ = ctx
104464	return c
104465}
104466
104467// Header returns an http.Header that can be modified by the caller to
104468// add HTTP headers to the request.
104469func (c *NetworksPatchCall) Header() http.Header {
104470	if c.header_ == nil {
104471		c.header_ = make(http.Header)
104472	}
104473	return c.header_
104474}
104475
104476func (c *NetworksPatchCall) doRequest(alt string) (*http.Response, error) {
104477	reqHeaders := make(http.Header)
104478	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
104479	for k, v := range c.header_ {
104480		reqHeaders[k] = v
104481	}
104482	reqHeaders.Set("User-Agent", c.s.userAgent())
104483	var body io.Reader = nil
104484	body, err := googleapi.WithoutDataWrapper.JSONReader(c.network2)
104485	if err != nil {
104486		return nil, err
104487	}
104488	reqHeaders.Set("Content-Type", "application/json")
104489	c.urlParams_.Set("alt", alt)
104490	c.urlParams_.Set("prettyPrint", "false")
104491	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}")
104492	urls += "?" + c.urlParams_.Encode()
104493	req, err := http.NewRequest("PATCH", urls, body)
104494	if err != nil {
104495		return nil, err
104496	}
104497	req.Header = reqHeaders
104498	googleapi.Expand(req.URL, map[string]string{
104499		"project": c.project,
104500		"network": c.network,
104501	})
104502	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104503}
104504
104505// Do executes the "compute.networks.patch" call.
104506// Exactly one of *Operation or error will be non-nil. Any non-2xx
104507// status code is an error. Response headers are in either
104508// *Operation.ServerResponse.Header or (if a response was returned at
104509// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104510// to check whether the returned error was because
104511// http.StatusNotModified was returned.
104512func (c *NetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104513	gensupport.SetOptions(c.urlParams_, opts...)
104514	res, err := c.doRequest("json")
104515	if res != nil && res.StatusCode == http.StatusNotModified {
104516		if res.Body != nil {
104517			res.Body.Close()
104518		}
104519		return nil, &googleapi.Error{
104520			Code:   res.StatusCode,
104521			Header: res.Header,
104522		}
104523	}
104524	if err != nil {
104525		return nil, err
104526	}
104527	defer googleapi.CloseBody(res)
104528	if err := googleapi.CheckResponse(res); err != nil {
104529		return nil, err
104530	}
104531	ret := &Operation{
104532		ServerResponse: googleapi.ServerResponse{
104533			Header:         res.Header,
104534			HTTPStatusCode: res.StatusCode,
104535		},
104536	}
104537	target := &ret
104538	if err := gensupport.DecodeResponse(target, res); err != nil {
104539		return nil, err
104540	}
104541	return ret, nil
104542	// {
104543	//   "description": "Patches the specified network with the data included in the request. Only the following fields can be modified: routingConfig.routingMode.",
104544	//   "httpMethod": "PATCH",
104545	//   "id": "compute.networks.patch",
104546	//   "parameterOrder": [
104547	//     "project",
104548	//     "network"
104549	//   ],
104550	//   "parameters": {
104551	//     "network": {
104552	//       "description": "Name of the network to update.",
104553	//       "location": "path",
104554	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104555	//       "required": true,
104556	//       "type": "string"
104557	//     },
104558	//     "project": {
104559	//       "description": "Project ID for this request.",
104560	//       "location": "path",
104561	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104562	//       "required": true,
104563	//       "type": "string"
104564	//     },
104565	//     "requestId": {
104566	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
104567	//       "location": "query",
104568	//       "type": "string"
104569	//     }
104570	//   },
104571	//   "path": "{project}/global/networks/{network}",
104572	//   "request": {
104573	//     "$ref": "Network"
104574	//   },
104575	//   "response": {
104576	//     "$ref": "Operation"
104577	//   },
104578	//   "scopes": [
104579	//     "https://www.googleapis.com/auth/cloud-platform",
104580	//     "https://www.googleapis.com/auth/compute"
104581	//   ]
104582	// }
104583
104584}
104585
104586// method id "compute.networks.removePeering":
104587
104588type NetworksRemovePeeringCall struct {
104589	s                            *Service
104590	project                      string
104591	network                      string
104592	networksremovepeeringrequest *NetworksRemovePeeringRequest
104593	urlParams_                   gensupport.URLParams
104594	ctx_                         context.Context
104595	header_                      http.Header
104596}
104597
104598// RemovePeering: Removes a peering from the specified network.
104599func (r *NetworksService) RemovePeering(project string, network string, networksremovepeeringrequest *NetworksRemovePeeringRequest) *NetworksRemovePeeringCall {
104600	c := &NetworksRemovePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104601	c.project = project
104602	c.network = network
104603	c.networksremovepeeringrequest = networksremovepeeringrequest
104604	return c
104605}
104606
104607// RequestId sets the optional parameter "requestId": An optional
104608// request ID to identify requests. Specify a unique request ID so that
104609// if you must retry your request, the server will know to ignore the
104610// request if it has already been completed.
104611//
104612// For example, consider a situation where you make an initial request
104613// and the request times out. If you make the request again with the
104614// same request ID, the server can check if original operation with the
104615// same request ID was received, and if so, will ignore the second
104616// request. This prevents clients from accidentally creating duplicate
104617// commitments.
104618//
104619// The request ID must be a valid UUID with the exception that zero UUID
104620// is not supported (00000000-0000-0000-0000-000000000000).
104621func (c *NetworksRemovePeeringCall) RequestId(requestId string) *NetworksRemovePeeringCall {
104622	c.urlParams_.Set("requestId", requestId)
104623	return c
104624}
104625
104626// Fields allows partial responses to be retrieved. See
104627// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104628// for more information.
104629func (c *NetworksRemovePeeringCall) Fields(s ...googleapi.Field) *NetworksRemovePeeringCall {
104630	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104631	return c
104632}
104633
104634// Context sets the context to be used in this call's Do method. Any
104635// pending HTTP request will be aborted if the provided context is
104636// canceled.
104637func (c *NetworksRemovePeeringCall) Context(ctx context.Context) *NetworksRemovePeeringCall {
104638	c.ctx_ = ctx
104639	return c
104640}
104641
104642// Header returns an http.Header that can be modified by the caller to
104643// add HTTP headers to the request.
104644func (c *NetworksRemovePeeringCall) Header() http.Header {
104645	if c.header_ == nil {
104646		c.header_ = make(http.Header)
104647	}
104648	return c.header_
104649}
104650
104651func (c *NetworksRemovePeeringCall) doRequest(alt string) (*http.Response, error) {
104652	reqHeaders := make(http.Header)
104653	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
104654	for k, v := range c.header_ {
104655		reqHeaders[k] = v
104656	}
104657	reqHeaders.Set("User-Agent", c.s.userAgent())
104658	var body io.Reader = nil
104659	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksremovepeeringrequest)
104660	if err != nil {
104661		return nil, err
104662	}
104663	reqHeaders.Set("Content-Type", "application/json")
104664	c.urlParams_.Set("alt", alt)
104665	c.urlParams_.Set("prettyPrint", "false")
104666	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/removePeering")
104667	urls += "?" + c.urlParams_.Encode()
104668	req, err := http.NewRequest("POST", urls, body)
104669	if err != nil {
104670		return nil, err
104671	}
104672	req.Header = reqHeaders
104673	googleapi.Expand(req.URL, map[string]string{
104674		"project": c.project,
104675		"network": c.network,
104676	})
104677	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104678}
104679
104680// Do executes the "compute.networks.removePeering" call.
104681// Exactly one of *Operation or error will be non-nil. Any non-2xx
104682// status code is an error. Response headers are in either
104683// *Operation.ServerResponse.Header or (if a response was returned at
104684// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104685// to check whether the returned error was because
104686// http.StatusNotModified was returned.
104687func (c *NetworksRemovePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104688	gensupport.SetOptions(c.urlParams_, opts...)
104689	res, err := c.doRequest("json")
104690	if res != nil && res.StatusCode == http.StatusNotModified {
104691		if res.Body != nil {
104692			res.Body.Close()
104693		}
104694		return nil, &googleapi.Error{
104695			Code:   res.StatusCode,
104696			Header: res.Header,
104697		}
104698	}
104699	if err != nil {
104700		return nil, err
104701	}
104702	defer googleapi.CloseBody(res)
104703	if err := googleapi.CheckResponse(res); err != nil {
104704		return nil, err
104705	}
104706	ret := &Operation{
104707		ServerResponse: googleapi.ServerResponse{
104708			Header:         res.Header,
104709			HTTPStatusCode: res.StatusCode,
104710		},
104711	}
104712	target := &ret
104713	if err := gensupport.DecodeResponse(target, res); err != nil {
104714		return nil, err
104715	}
104716	return ret, nil
104717	// {
104718	//   "description": "Removes a peering from the specified network.",
104719	//   "httpMethod": "POST",
104720	//   "id": "compute.networks.removePeering",
104721	//   "parameterOrder": [
104722	//     "project",
104723	//     "network"
104724	//   ],
104725	//   "parameters": {
104726	//     "network": {
104727	//       "description": "Name of the network resource to remove peering from.",
104728	//       "location": "path",
104729	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104730	//       "required": true,
104731	//       "type": "string"
104732	//     },
104733	//     "project": {
104734	//       "description": "Project ID for this request.",
104735	//       "location": "path",
104736	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104737	//       "required": true,
104738	//       "type": "string"
104739	//     },
104740	//     "requestId": {
104741	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
104742	//       "location": "query",
104743	//       "type": "string"
104744	//     }
104745	//   },
104746	//   "path": "{project}/global/networks/{network}/removePeering",
104747	//   "request": {
104748	//     "$ref": "NetworksRemovePeeringRequest"
104749	//   },
104750	//   "response": {
104751	//     "$ref": "Operation"
104752	//   },
104753	//   "scopes": [
104754	//     "https://www.googleapis.com/auth/cloud-platform",
104755	//     "https://www.googleapis.com/auth/compute"
104756	//   ]
104757	// }
104758
104759}
104760
104761// method id "compute.networks.switchToCustomMode":
104762
104763type NetworksSwitchToCustomModeCall struct {
104764	s          *Service
104765	project    string
104766	network    string
104767	urlParams_ gensupport.URLParams
104768	ctx_       context.Context
104769	header_    http.Header
104770}
104771
104772// SwitchToCustomMode: Switches the network mode from auto subnet mode
104773// to custom subnet mode.
104774func (r *NetworksService) SwitchToCustomMode(project string, network string) *NetworksSwitchToCustomModeCall {
104775	c := &NetworksSwitchToCustomModeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104776	c.project = project
104777	c.network = network
104778	return c
104779}
104780
104781// RequestId sets the optional parameter "requestId": An optional
104782// request ID to identify requests. Specify a unique request ID so that
104783// if you must retry your request, the server will know to ignore the
104784// request if it has already been completed.
104785//
104786// For example, consider a situation where you make an initial request
104787// and the request times out. If you make the request again with the
104788// same request ID, the server can check if original operation with the
104789// same request ID was received, and if so, will ignore the second
104790// request. This prevents clients from accidentally creating duplicate
104791// commitments.
104792//
104793// The request ID must be a valid UUID with the exception that zero UUID
104794// is not supported (00000000-0000-0000-0000-000000000000).
104795func (c *NetworksSwitchToCustomModeCall) RequestId(requestId string) *NetworksSwitchToCustomModeCall {
104796	c.urlParams_.Set("requestId", requestId)
104797	return c
104798}
104799
104800// Fields allows partial responses to be retrieved. See
104801// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104802// for more information.
104803func (c *NetworksSwitchToCustomModeCall) Fields(s ...googleapi.Field) *NetworksSwitchToCustomModeCall {
104804	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104805	return c
104806}
104807
104808// Context sets the context to be used in this call's Do method. Any
104809// pending HTTP request will be aborted if the provided context is
104810// canceled.
104811func (c *NetworksSwitchToCustomModeCall) Context(ctx context.Context) *NetworksSwitchToCustomModeCall {
104812	c.ctx_ = ctx
104813	return c
104814}
104815
104816// Header returns an http.Header that can be modified by the caller to
104817// add HTTP headers to the request.
104818func (c *NetworksSwitchToCustomModeCall) Header() http.Header {
104819	if c.header_ == nil {
104820		c.header_ = make(http.Header)
104821	}
104822	return c.header_
104823}
104824
104825func (c *NetworksSwitchToCustomModeCall) doRequest(alt string) (*http.Response, error) {
104826	reqHeaders := make(http.Header)
104827	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
104828	for k, v := range c.header_ {
104829		reqHeaders[k] = v
104830	}
104831	reqHeaders.Set("User-Agent", c.s.userAgent())
104832	var body io.Reader = nil
104833	c.urlParams_.Set("alt", alt)
104834	c.urlParams_.Set("prettyPrint", "false")
104835	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/switchToCustomMode")
104836	urls += "?" + c.urlParams_.Encode()
104837	req, err := http.NewRequest("POST", urls, body)
104838	if err != nil {
104839		return nil, err
104840	}
104841	req.Header = reqHeaders
104842	googleapi.Expand(req.URL, map[string]string{
104843		"project": c.project,
104844		"network": c.network,
104845	})
104846	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104847}
104848
104849// Do executes the "compute.networks.switchToCustomMode" call.
104850// Exactly one of *Operation or error will be non-nil. Any non-2xx
104851// status code is an error. Response headers are in either
104852// *Operation.ServerResponse.Header or (if a response was returned at
104853// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104854// to check whether the returned error was because
104855// http.StatusNotModified was returned.
104856func (c *NetworksSwitchToCustomModeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104857	gensupport.SetOptions(c.urlParams_, opts...)
104858	res, err := c.doRequest("json")
104859	if res != nil && res.StatusCode == http.StatusNotModified {
104860		if res.Body != nil {
104861			res.Body.Close()
104862		}
104863		return nil, &googleapi.Error{
104864			Code:   res.StatusCode,
104865			Header: res.Header,
104866		}
104867	}
104868	if err != nil {
104869		return nil, err
104870	}
104871	defer googleapi.CloseBody(res)
104872	if err := googleapi.CheckResponse(res); err != nil {
104873		return nil, err
104874	}
104875	ret := &Operation{
104876		ServerResponse: googleapi.ServerResponse{
104877			Header:         res.Header,
104878			HTTPStatusCode: res.StatusCode,
104879		},
104880	}
104881	target := &ret
104882	if err := gensupport.DecodeResponse(target, res); err != nil {
104883		return nil, err
104884	}
104885	return ret, nil
104886	// {
104887	//   "description": "Switches the network mode from auto subnet mode to custom subnet mode.",
104888	//   "httpMethod": "POST",
104889	//   "id": "compute.networks.switchToCustomMode",
104890	//   "parameterOrder": [
104891	//     "project",
104892	//     "network"
104893	//   ],
104894	//   "parameters": {
104895	//     "network": {
104896	//       "description": "Name of the network to be updated.",
104897	//       "location": "path",
104898	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104899	//       "required": true,
104900	//       "type": "string"
104901	//     },
104902	//     "project": {
104903	//       "description": "Project ID for this request.",
104904	//       "location": "path",
104905	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104906	//       "required": true,
104907	//       "type": "string"
104908	//     },
104909	//     "requestId": {
104910	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
104911	//       "location": "query",
104912	//       "type": "string"
104913	//     }
104914	//   },
104915	//   "path": "{project}/global/networks/{network}/switchToCustomMode",
104916	//   "response": {
104917	//     "$ref": "Operation"
104918	//   },
104919	//   "scopes": [
104920	//     "https://www.googleapis.com/auth/cloud-platform",
104921	//     "https://www.googleapis.com/auth/compute"
104922	//   ]
104923	// }
104924
104925}
104926
104927// method id "compute.networks.testIamPermissions":
104928
104929type NetworksTestIamPermissionsCall struct {
104930	s                      *Service
104931	project                string
104932	resource               string
104933	testpermissionsrequest *TestPermissionsRequest
104934	urlParams_             gensupport.URLParams
104935	ctx_                   context.Context
104936	header_                http.Header
104937}
104938
104939// TestIamPermissions: Returns permissions that a caller has on the
104940// specified resource.
104941func (r *NetworksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *NetworksTestIamPermissionsCall {
104942	c := &NetworksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104943	c.project = project
104944	c.resource = resource
104945	c.testpermissionsrequest = testpermissionsrequest
104946	return c
104947}
104948
104949// Fields allows partial responses to be retrieved. See
104950// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104951// for more information.
104952func (c *NetworksTestIamPermissionsCall) Fields(s ...googleapi.Field) *NetworksTestIamPermissionsCall {
104953	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104954	return c
104955}
104956
104957// Context sets the context to be used in this call's Do method. Any
104958// pending HTTP request will be aborted if the provided context is
104959// canceled.
104960func (c *NetworksTestIamPermissionsCall) Context(ctx context.Context) *NetworksTestIamPermissionsCall {
104961	c.ctx_ = ctx
104962	return c
104963}
104964
104965// Header returns an http.Header that can be modified by the caller to
104966// add HTTP headers to the request.
104967func (c *NetworksTestIamPermissionsCall) Header() http.Header {
104968	if c.header_ == nil {
104969		c.header_ = make(http.Header)
104970	}
104971	return c.header_
104972}
104973
104974func (c *NetworksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
104975	reqHeaders := make(http.Header)
104976	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
104977	for k, v := range c.header_ {
104978		reqHeaders[k] = v
104979	}
104980	reqHeaders.Set("User-Agent", c.s.userAgent())
104981	var body io.Reader = nil
104982	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
104983	if err != nil {
104984		return nil, err
104985	}
104986	reqHeaders.Set("Content-Type", "application/json")
104987	c.urlParams_.Set("alt", alt)
104988	c.urlParams_.Set("prettyPrint", "false")
104989	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{resource}/testIamPermissions")
104990	urls += "?" + c.urlParams_.Encode()
104991	req, err := http.NewRequest("POST", urls, body)
104992	if err != nil {
104993		return nil, err
104994	}
104995	req.Header = reqHeaders
104996	googleapi.Expand(req.URL, map[string]string{
104997		"project":  c.project,
104998		"resource": c.resource,
104999	})
105000	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105001}
105002
105003// Do executes the "compute.networks.testIamPermissions" call.
105004// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
105005// non-2xx status code is an error. Response headers are in either
105006// *TestPermissionsResponse.ServerResponse.Header or (if a response was
105007// returned at all) in error.(*googleapi.Error).Header. Use
105008// googleapi.IsNotModified to check whether the returned error was
105009// because http.StatusNotModified was returned.
105010func (c *NetworksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
105011	gensupport.SetOptions(c.urlParams_, opts...)
105012	res, err := c.doRequest("json")
105013	if res != nil && res.StatusCode == http.StatusNotModified {
105014		if res.Body != nil {
105015			res.Body.Close()
105016		}
105017		return nil, &googleapi.Error{
105018			Code:   res.StatusCode,
105019			Header: res.Header,
105020		}
105021	}
105022	if err != nil {
105023		return nil, err
105024	}
105025	defer googleapi.CloseBody(res)
105026	if err := googleapi.CheckResponse(res); err != nil {
105027		return nil, err
105028	}
105029	ret := &TestPermissionsResponse{
105030		ServerResponse: googleapi.ServerResponse{
105031			Header:         res.Header,
105032			HTTPStatusCode: res.StatusCode,
105033		},
105034	}
105035	target := &ret
105036	if err := gensupport.DecodeResponse(target, res); err != nil {
105037		return nil, err
105038	}
105039	return ret, nil
105040	// {
105041	//   "description": "Returns permissions that a caller has on the specified resource.",
105042	//   "httpMethod": "POST",
105043	//   "id": "compute.networks.testIamPermissions",
105044	//   "parameterOrder": [
105045	//     "project",
105046	//     "resource"
105047	//   ],
105048	//   "parameters": {
105049	//     "project": {
105050	//       "description": "Project ID for this request.",
105051	//       "location": "path",
105052	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105053	//       "required": true,
105054	//       "type": "string"
105055	//     },
105056	//     "resource": {
105057	//       "description": "Name or id of the resource for this request.",
105058	//       "location": "path",
105059	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105060	//       "required": true,
105061	//       "type": "string"
105062	//     }
105063	//   },
105064	//   "path": "{project}/global/networks/{resource}/testIamPermissions",
105065	//   "request": {
105066	//     "$ref": "TestPermissionsRequest"
105067	//   },
105068	//   "response": {
105069	//     "$ref": "TestPermissionsResponse"
105070	//   },
105071	//   "scopes": [
105072	//     "https://www.googleapis.com/auth/cloud-platform",
105073	//     "https://www.googleapis.com/auth/compute",
105074	//     "https://www.googleapis.com/auth/compute.readonly"
105075	//   ]
105076	// }
105077
105078}
105079
105080// method id "compute.networks.updatePeering":
105081
105082type NetworksUpdatePeeringCall struct {
105083	s                            *Service
105084	project                      string
105085	network                      string
105086	networksupdatepeeringrequest *NetworksUpdatePeeringRequest
105087	urlParams_                   gensupport.URLParams
105088	ctx_                         context.Context
105089	header_                      http.Header
105090}
105091
105092// UpdatePeering: Updates the specified network peering with the data
105093// included in the request Only the following fields can be modified:
105094// NetworkPeering.export_custom_routes, and
105095// NetworkPeering.import_custom_routes
105096func (r *NetworksService) UpdatePeering(project string, network string, networksupdatepeeringrequest *NetworksUpdatePeeringRequest) *NetworksUpdatePeeringCall {
105097	c := &NetworksUpdatePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105098	c.project = project
105099	c.network = network
105100	c.networksupdatepeeringrequest = networksupdatepeeringrequest
105101	return c
105102}
105103
105104// RequestId sets the optional parameter "requestId": An optional
105105// request ID to identify requests. Specify a unique request ID so that
105106// if you must retry your request, the server will know to ignore the
105107// request if it has already been completed.
105108//
105109// For example, consider a situation where you make an initial request
105110// and the request times out. If you make the request again with the
105111// same request ID, the server can check if original operation with the
105112// same request ID was received, and if so, will ignore the second
105113// request. This prevents clients from accidentally creating duplicate
105114// commitments.
105115//
105116// The request ID must be a valid UUID with the exception that zero UUID
105117// is not supported (00000000-0000-0000-0000-000000000000).
105118func (c *NetworksUpdatePeeringCall) RequestId(requestId string) *NetworksUpdatePeeringCall {
105119	c.urlParams_.Set("requestId", requestId)
105120	return c
105121}
105122
105123// Fields allows partial responses to be retrieved. See
105124// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105125// for more information.
105126func (c *NetworksUpdatePeeringCall) Fields(s ...googleapi.Field) *NetworksUpdatePeeringCall {
105127	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105128	return c
105129}
105130
105131// Context sets the context to be used in this call's Do method. Any
105132// pending HTTP request will be aborted if the provided context is
105133// canceled.
105134func (c *NetworksUpdatePeeringCall) Context(ctx context.Context) *NetworksUpdatePeeringCall {
105135	c.ctx_ = ctx
105136	return c
105137}
105138
105139// Header returns an http.Header that can be modified by the caller to
105140// add HTTP headers to the request.
105141func (c *NetworksUpdatePeeringCall) Header() http.Header {
105142	if c.header_ == nil {
105143		c.header_ = make(http.Header)
105144	}
105145	return c.header_
105146}
105147
105148func (c *NetworksUpdatePeeringCall) doRequest(alt string) (*http.Response, error) {
105149	reqHeaders := make(http.Header)
105150	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
105151	for k, v := range c.header_ {
105152		reqHeaders[k] = v
105153	}
105154	reqHeaders.Set("User-Agent", c.s.userAgent())
105155	var body io.Reader = nil
105156	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksupdatepeeringrequest)
105157	if err != nil {
105158		return nil, err
105159	}
105160	reqHeaders.Set("Content-Type", "application/json")
105161	c.urlParams_.Set("alt", alt)
105162	c.urlParams_.Set("prettyPrint", "false")
105163	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/updatePeering")
105164	urls += "?" + c.urlParams_.Encode()
105165	req, err := http.NewRequest("PATCH", urls, body)
105166	if err != nil {
105167		return nil, err
105168	}
105169	req.Header = reqHeaders
105170	googleapi.Expand(req.URL, map[string]string{
105171		"project": c.project,
105172		"network": c.network,
105173	})
105174	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105175}
105176
105177// Do executes the "compute.networks.updatePeering" call.
105178// Exactly one of *Operation or error will be non-nil. Any non-2xx
105179// status code is an error. Response headers are in either
105180// *Operation.ServerResponse.Header or (if a response was returned at
105181// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105182// to check whether the returned error was because
105183// http.StatusNotModified was returned.
105184func (c *NetworksUpdatePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105185	gensupport.SetOptions(c.urlParams_, opts...)
105186	res, err := c.doRequest("json")
105187	if res != nil && res.StatusCode == http.StatusNotModified {
105188		if res.Body != nil {
105189			res.Body.Close()
105190		}
105191		return nil, &googleapi.Error{
105192			Code:   res.StatusCode,
105193			Header: res.Header,
105194		}
105195	}
105196	if err != nil {
105197		return nil, err
105198	}
105199	defer googleapi.CloseBody(res)
105200	if err := googleapi.CheckResponse(res); err != nil {
105201		return nil, err
105202	}
105203	ret := &Operation{
105204		ServerResponse: googleapi.ServerResponse{
105205			Header:         res.Header,
105206			HTTPStatusCode: res.StatusCode,
105207		},
105208	}
105209	target := &ret
105210	if err := gensupport.DecodeResponse(target, res); err != nil {
105211		return nil, err
105212	}
105213	return ret, nil
105214	// {
105215	//   "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",
105216	//   "httpMethod": "PATCH",
105217	//   "id": "compute.networks.updatePeering",
105218	//   "parameterOrder": [
105219	//     "project",
105220	//     "network"
105221	//   ],
105222	//   "parameters": {
105223	//     "network": {
105224	//       "description": "Name of the network resource which the updated peering is belonging to.",
105225	//       "location": "path",
105226	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105227	//       "required": true,
105228	//       "type": "string"
105229	//     },
105230	//     "project": {
105231	//       "description": "Project ID for this request.",
105232	//       "location": "path",
105233	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105234	//       "required": true,
105235	//       "type": "string"
105236	//     },
105237	//     "requestId": {
105238	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
105239	//       "location": "query",
105240	//       "type": "string"
105241	//     }
105242	//   },
105243	//   "path": "{project}/global/networks/{network}/updatePeering",
105244	//   "request": {
105245	//     "$ref": "NetworksUpdatePeeringRequest"
105246	//   },
105247	//   "response": {
105248	//     "$ref": "Operation"
105249	//   },
105250	//   "scopes": [
105251	//     "https://www.googleapis.com/auth/cloud-platform",
105252	//     "https://www.googleapis.com/auth/compute"
105253	//   ]
105254	// }
105255
105256}
105257
105258// method id "compute.nodeGroups.addNodes":
105259
105260type NodeGroupsAddNodesCall struct {
105261	s                         *Service
105262	project                   string
105263	zone                      string
105264	nodeGroup                 string
105265	nodegroupsaddnodesrequest *NodeGroupsAddNodesRequest
105266	urlParams_                gensupport.URLParams
105267	ctx_                      context.Context
105268	header_                   http.Header
105269}
105270
105271// AddNodes: Adds specified number of nodes to the node group.
105272func (r *NodeGroupsService) AddNodes(project string, zone string, nodeGroup string, nodegroupsaddnodesrequest *NodeGroupsAddNodesRequest) *NodeGroupsAddNodesCall {
105273	c := &NodeGroupsAddNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105274	c.project = project
105275	c.zone = zone
105276	c.nodeGroup = nodeGroup
105277	c.nodegroupsaddnodesrequest = nodegroupsaddnodesrequest
105278	return c
105279}
105280
105281// RequestId sets the optional parameter "requestId": An optional
105282// request ID to identify requests. Specify a unique request ID so that
105283// if you must retry your request, the server will know to ignore the
105284// request if it has already been completed.
105285//
105286// For example, consider a situation where you make an initial request
105287// and the request times out. If you make the request again with the
105288// same request ID, the server can check if original operation with the
105289// same request ID was received, and if so, will ignore the second
105290// request. This prevents clients from accidentally creating duplicate
105291// commitments.
105292//
105293// The request ID must be a valid UUID with the exception that zero UUID
105294// is not supported (00000000-0000-0000-0000-000000000000).
105295func (c *NodeGroupsAddNodesCall) RequestId(requestId string) *NodeGroupsAddNodesCall {
105296	c.urlParams_.Set("requestId", requestId)
105297	return c
105298}
105299
105300// Fields allows partial responses to be retrieved. See
105301// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105302// for more information.
105303func (c *NodeGroupsAddNodesCall) Fields(s ...googleapi.Field) *NodeGroupsAddNodesCall {
105304	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105305	return c
105306}
105307
105308// Context sets the context to be used in this call's Do method. Any
105309// pending HTTP request will be aborted if the provided context is
105310// canceled.
105311func (c *NodeGroupsAddNodesCall) Context(ctx context.Context) *NodeGroupsAddNodesCall {
105312	c.ctx_ = ctx
105313	return c
105314}
105315
105316// Header returns an http.Header that can be modified by the caller to
105317// add HTTP headers to the request.
105318func (c *NodeGroupsAddNodesCall) Header() http.Header {
105319	if c.header_ == nil {
105320		c.header_ = make(http.Header)
105321	}
105322	return c.header_
105323}
105324
105325func (c *NodeGroupsAddNodesCall) doRequest(alt string) (*http.Response, error) {
105326	reqHeaders := make(http.Header)
105327	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
105328	for k, v := range c.header_ {
105329		reqHeaders[k] = v
105330	}
105331	reqHeaders.Set("User-Agent", c.s.userAgent())
105332	var body io.Reader = nil
105333	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupsaddnodesrequest)
105334	if err != nil {
105335		return nil, err
105336	}
105337	reqHeaders.Set("Content-Type", "application/json")
105338	c.urlParams_.Set("alt", alt)
105339	c.urlParams_.Set("prettyPrint", "false")
105340	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes")
105341	urls += "?" + c.urlParams_.Encode()
105342	req, err := http.NewRequest("POST", urls, body)
105343	if err != nil {
105344		return nil, err
105345	}
105346	req.Header = reqHeaders
105347	googleapi.Expand(req.URL, map[string]string{
105348		"project":   c.project,
105349		"zone":      c.zone,
105350		"nodeGroup": c.nodeGroup,
105351	})
105352	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105353}
105354
105355// Do executes the "compute.nodeGroups.addNodes" call.
105356// Exactly one of *Operation or error will be non-nil. Any non-2xx
105357// status code is an error. Response headers are in either
105358// *Operation.ServerResponse.Header or (if a response was returned at
105359// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105360// to check whether the returned error was because
105361// http.StatusNotModified was returned.
105362func (c *NodeGroupsAddNodesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105363	gensupport.SetOptions(c.urlParams_, opts...)
105364	res, err := c.doRequest("json")
105365	if res != nil && res.StatusCode == http.StatusNotModified {
105366		if res.Body != nil {
105367			res.Body.Close()
105368		}
105369		return nil, &googleapi.Error{
105370			Code:   res.StatusCode,
105371			Header: res.Header,
105372		}
105373	}
105374	if err != nil {
105375		return nil, err
105376	}
105377	defer googleapi.CloseBody(res)
105378	if err := googleapi.CheckResponse(res); err != nil {
105379		return nil, err
105380	}
105381	ret := &Operation{
105382		ServerResponse: googleapi.ServerResponse{
105383			Header:         res.Header,
105384			HTTPStatusCode: res.StatusCode,
105385		},
105386	}
105387	target := &ret
105388	if err := gensupport.DecodeResponse(target, res); err != nil {
105389		return nil, err
105390	}
105391	return ret, nil
105392	// {
105393	//   "description": "Adds specified number of nodes to the node group.",
105394	//   "httpMethod": "POST",
105395	//   "id": "compute.nodeGroups.addNodes",
105396	//   "parameterOrder": [
105397	//     "project",
105398	//     "zone",
105399	//     "nodeGroup"
105400	//   ],
105401	//   "parameters": {
105402	//     "nodeGroup": {
105403	//       "description": "Name of the NodeGroup resource.",
105404	//       "location": "path",
105405	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105406	//       "required": true,
105407	//       "type": "string"
105408	//     },
105409	//     "project": {
105410	//       "description": "Project ID for this request.",
105411	//       "location": "path",
105412	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105413	//       "required": true,
105414	//       "type": "string"
105415	//     },
105416	//     "requestId": {
105417	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
105418	//       "location": "query",
105419	//       "type": "string"
105420	//     },
105421	//     "zone": {
105422	//       "description": "The name of the zone for this request.",
105423	//       "location": "path",
105424	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105425	//       "required": true,
105426	//       "type": "string"
105427	//     }
105428	//   },
105429	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes",
105430	//   "request": {
105431	//     "$ref": "NodeGroupsAddNodesRequest"
105432	//   },
105433	//   "response": {
105434	//     "$ref": "Operation"
105435	//   },
105436	//   "scopes": [
105437	//     "https://www.googleapis.com/auth/cloud-platform",
105438	//     "https://www.googleapis.com/auth/compute"
105439	//   ]
105440	// }
105441
105442}
105443
105444// method id "compute.nodeGroups.aggregatedList":
105445
105446type NodeGroupsAggregatedListCall struct {
105447	s            *Service
105448	project      string
105449	urlParams_   gensupport.URLParams
105450	ifNoneMatch_ string
105451	ctx_         context.Context
105452	header_      http.Header
105453}
105454
105455// AggregatedList: Retrieves an aggregated list of node groups. Note:
105456// use nodeGroups.listNodes for more details about each group.
105457func (r *NodeGroupsService) AggregatedList(project string) *NodeGroupsAggregatedListCall {
105458	c := &NodeGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105459	c.project = project
105460	return c
105461}
105462
105463// Filter sets the optional parameter "filter": A filter expression that
105464// filters resources listed in the response. The expression must specify
105465// the field name, a comparison operator, and the value that you want to
105466// use for filtering. The value must be a string, a number, or a
105467// boolean. The comparison operator must be either =, !=, >, or <.
105468//
105469// For example, if you are filtering Compute Engine instances, you can
105470// exclude instances named example-instance by specifying name !=
105471// example-instance.
105472//
105473// You can also filter nested fields. For example, you could specify
105474// scheduling.automaticRestart = false to include instances only if they
105475// are not scheduled for automatic restarts. You can use filtering on
105476// nested fields to filter based on resource labels.
105477//
105478// To filter on multiple expressions, provide each separate expression
105479// within parentheses. For example, (scheduling.automaticRestart = true)
105480// (cpuPlatform = "Intel Skylake"). By default, each expression is an
105481// AND expression. However, you can include AND and OR expressions
105482// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
105483// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
105484// true).
105485func (c *NodeGroupsAggregatedListCall) Filter(filter string) *NodeGroupsAggregatedListCall {
105486	c.urlParams_.Set("filter", filter)
105487	return c
105488}
105489
105490// IncludeAllScopes sets the optional parameter "includeAllScopes":
105491// Indicates whether every visible scope for each scope type (zone,
105492// region, global) should be included in the response. For new resource
105493// types added after this field, the flag has no effect as new resource
105494// types will always include every visible scope for each scope type in
105495// response. For resource types which predate this field, if this flag
105496// is omitted or false, only scopes of the scope types where the
105497// resource type is expected to be found will be included.
105498func (c *NodeGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeGroupsAggregatedListCall {
105499	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
105500	return c
105501}
105502
105503// MaxResults sets the optional parameter "maxResults": The maximum
105504// number of results per page that should be returned. If the number of
105505// available results is larger than maxResults, Compute Engine returns a
105506// nextPageToken that can be used to get the next page of results in
105507// subsequent list requests. Acceptable values are 0 to 500, inclusive.
105508// (Default: 500)
105509func (c *NodeGroupsAggregatedListCall) MaxResults(maxResults int64) *NodeGroupsAggregatedListCall {
105510	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
105511	return c
105512}
105513
105514// OrderBy sets the optional parameter "orderBy": Sorts list results by
105515// a certain order. By default, results are returned in alphanumerical
105516// order based on the resource name.
105517//
105518// You can also sort results in descending order based on the creation
105519// timestamp using orderBy="creationTimestamp desc". This sorts results
105520// based on the creationTimestamp field in reverse chronological order
105521// (newest result first). Use this to sort resources like operations so
105522// that the newest operation is returned first.
105523//
105524// Currently, only sorting by name or creationTimestamp desc is
105525// supported.
105526func (c *NodeGroupsAggregatedListCall) OrderBy(orderBy string) *NodeGroupsAggregatedListCall {
105527	c.urlParams_.Set("orderBy", orderBy)
105528	return c
105529}
105530
105531// PageToken sets the optional parameter "pageToken": Specifies a page
105532// token to use. Set pageToken to the nextPageToken returned by a
105533// previous list request to get the next page of results.
105534func (c *NodeGroupsAggregatedListCall) PageToken(pageToken string) *NodeGroupsAggregatedListCall {
105535	c.urlParams_.Set("pageToken", pageToken)
105536	return c
105537}
105538
105539// Fields allows partial responses to be retrieved. See
105540// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105541// for more information.
105542func (c *NodeGroupsAggregatedListCall) Fields(s ...googleapi.Field) *NodeGroupsAggregatedListCall {
105543	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105544	return c
105545}
105546
105547// IfNoneMatch sets the optional parameter which makes the operation
105548// fail if the object's ETag matches the given value. This is useful for
105549// getting updates only after the object has changed since the last
105550// request. Use googleapi.IsNotModified to check whether the response
105551// error from Do is the result of In-None-Match.
105552func (c *NodeGroupsAggregatedListCall) IfNoneMatch(entityTag string) *NodeGroupsAggregatedListCall {
105553	c.ifNoneMatch_ = entityTag
105554	return c
105555}
105556
105557// Context sets the context to be used in this call's Do method. Any
105558// pending HTTP request will be aborted if the provided context is
105559// canceled.
105560func (c *NodeGroupsAggregatedListCall) Context(ctx context.Context) *NodeGroupsAggregatedListCall {
105561	c.ctx_ = ctx
105562	return c
105563}
105564
105565// Header returns an http.Header that can be modified by the caller to
105566// add HTTP headers to the request.
105567func (c *NodeGroupsAggregatedListCall) Header() http.Header {
105568	if c.header_ == nil {
105569		c.header_ = make(http.Header)
105570	}
105571	return c.header_
105572}
105573
105574func (c *NodeGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
105575	reqHeaders := make(http.Header)
105576	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
105577	for k, v := range c.header_ {
105578		reqHeaders[k] = v
105579	}
105580	reqHeaders.Set("User-Agent", c.s.userAgent())
105581	if c.ifNoneMatch_ != "" {
105582		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
105583	}
105584	var body io.Reader = nil
105585	c.urlParams_.Set("alt", alt)
105586	c.urlParams_.Set("prettyPrint", "false")
105587	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/nodeGroups")
105588	urls += "?" + c.urlParams_.Encode()
105589	req, err := http.NewRequest("GET", urls, body)
105590	if err != nil {
105591		return nil, err
105592	}
105593	req.Header = reqHeaders
105594	googleapi.Expand(req.URL, map[string]string{
105595		"project": c.project,
105596	})
105597	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105598}
105599
105600// Do executes the "compute.nodeGroups.aggregatedList" call.
105601// Exactly one of *NodeGroupAggregatedList or error will be non-nil. Any
105602// non-2xx status code is an error. Response headers are in either
105603// *NodeGroupAggregatedList.ServerResponse.Header or (if a response was
105604// returned at all) in error.(*googleapi.Error).Header. Use
105605// googleapi.IsNotModified to check whether the returned error was
105606// because http.StatusNotModified was returned.
105607func (c *NodeGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeGroupAggregatedList, error) {
105608	gensupport.SetOptions(c.urlParams_, opts...)
105609	res, err := c.doRequest("json")
105610	if res != nil && res.StatusCode == http.StatusNotModified {
105611		if res.Body != nil {
105612			res.Body.Close()
105613		}
105614		return nil, &googleapi.Error{
105615			Code:   res.StatusCode,
105616			Header: res.Header,
105617		}
105618	}
105619	if err != nil {
105620		return nil, err
105621	}
105622	defer googleapi.CloseBody(res)
105623	if err := googleapi.CheckResponse(res); err != nil {
105624		return nil, err
105625	}
105626	ret := &NodeGroupAggregatedList{
105627		ServerResponse: googleapi.ServerResponse{
105628			Header:         res.Header,
105629			HTTPStatusCode: res.StatusCode,
105630		},
105631	}
105632	target := &ret
105633	if err := gensupport.DecodeResponse(target, res); err != nil {
105634		return nil, err
105635	}
105636	return ret, nil
105637	// {
105638	//   "description": "Retrieves an aggregated list of node groups. Note: use nodeGroups.listNodes for more details about each group.",
105639	//   "httpMethod": "GET",
105640	//   "id": "compute.nodeGroups.aggregatedList",
105641	//   "parameterOrder": [
105642	//     "project"
105643	//   ],
105644	//   "parameters": {
105645	//     "filter": {
105646	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
105647	//       "location": "query",
105648	//       "type": "string"
105649	//     },
105650	//     "includeAllScopes": {
105651	//       "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.",
105652	//       "location": "query",
105653	//       "type": "boolean"
105654	//     },
105655	//     "maxResults": {
105656	//       "default": "500",
105657	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
105658	//       "format": "uint32",
105659	//       "location": "query",
105660	//       "minimum": "0",
105661	//       "type": "integer"
105662	//     },
105663	//     "orderBy": {
105664	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
105665	//       "location": "query",
105666	//       "type": "string"
105667	//     },
105668	//     "pageToken": {
105669	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
105670	//       "location": "query",
105671	//       "type": "string"
105672	//     },
105673	//     "project": {
105674	//       "description": "Project ID for this request.",
105675	//       "location": "path",
105676	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105677	//       "required": true,
105678	//       "type": "string"
105679	//     }
105680	//   },
105681	//   "path": "{project}/aggregated/nodeGroups",
105682	//   "response": {
105683	//     "$ref": "NodeGroupAggregatedList"
105684	//   },
105685	//   "scopes": [
105686	//     "https://www.googleapis.com/auth/cloud-platform",
105687	//     "https://www.googleapis.com/auth/compute",
105688	//     "https://www.googleapis.com/auth/compute.readonly"
105689	//   ]
105690	// }
105691
105692}
105693
105694// Pages invokes f for each page of results.
105695// A non-nil error returned from f will halt the iteration.
105696// The provided context supersedes any context provided to the Context method.
105697func (c *NodeGroupsAggregatedListCall) Pages(ctx context.Context, f func(*NodeGroupAggregatedList) error) error {
105698	c.ctx_ = ctx
105699	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
105700	for {
105701		x, err := c.Do()
105702		if err != nil {
105703			return err
105704		}
105705		if err := f(x); err != nil {
105706			return err
105707		}
105708		if x.NextPageToken == "" {
105709			return nil
105710		}
105711		c.PageToken(x.NextPageToken)
105712	}
105713}
105714
105715// method id "compute.nodeGroups.delete":
105716
105717type NodeGroupsDeleteCall struct {
105718	s          *Service
105719	project    string
105720	zone       string
105721	nodeGroup  string
105722	urlParams_ gensupport.URLParams
105723	ctx_       context.Context
105724	header_    http.Header
105725}
105726
105727// Delete: Deletes the specified NodeGroup resource.
105728func (r *NodeGroupsService) Delete(project string, zone string, nodeGroup string) *NodeGroupsDeleteCall {
105729	c := &NodeGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105730	c.project = project
105731	c.zone = zone
105732	c.nodeGroup = nodeGroup
105733	return c
105734}
105735
105736// RequestId sets the optional parameter "requestId": An optional
105737// request ID to identify requests. Specify a unique request ID so that
105738// if you must retry your request, the server will know to ignore the
105739// request if it has already been completed.
105740//
105741// For example, consider a situation where you make an initial request
105742// and the request times out. If you make the request again with the
105743// same request ID, the server can check if original operation with the
105744// same request ID was received, and if so, will ignore the second
105745// request. This prevents clients from accidentally creating duplicate
105746// commitments.
105747//
105748// The request ID must be a valid UUID with the exception that zero UUID
105749// is not supported (00000000-0000-0000-0000-000000000000).
105750func (c *NodeGroupsDeleteCall) RequestId(requestId string) *NodeGroupsDeleteCall {
105751	c.urlParams_.Set("requestId", requestId)
105752	return c
105753}
105754
105755// Fields allows partial responses to be retrieved. See
105756// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105757// for more information.
105758func (c *NodeGroupsDeleteCall) Fields(s ...googleapi.Field) *NodeGroupsDeleteCall {
105759	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105760	return c
105761}
105762
105763// Context sets the context to be used in this call's Do method. Any
105764// pending HTTP request will be aborted if the provided context is
105765// canceled.
105766func (c *NodeGroupsDeleteCall) Context(ctx context.Context) *NodeGroupsDeleteCall {
105767	c.ctx_ = ctx
105768	return c
105769}
105770
105771// Header returns an http.Header that can be modified by the caller to
105772// add HTTP headers to the request.
105773func (c *NodeGroupsDeleteCall) Header() http.Header {
105774	if c.header_ == nil {
105775		c.header_ = make(http.Header)
105776	}
105777	return c.header_
105778}
105779
105780func (c *NodeGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
105781	reqHeaders := make(http.Header)
105782	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
105783	for k, v := range c.header_ {
105784		reqHeaders[k] = v
105785	}
105786	reqHeaders.Set("User-Agent", c.s.userAgent())
105787	var body io.Reader = nil
105788	c.urlParams_.Set("alt", alt)
105789	c.urlParams_.Set("prettyPrint", "false")
105790	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}")
105791	urls += "?" + c.urlParams_.Encode()
105792	req, err := http.NewRequest("DELETE", urls, body)
105793	if err != nil {
105794		return nil, err
105795	}
105796	req.Header = reqHeaders
105797	googleapi.Expand(req.URL, map[string]string{
105798		"project":   c.project,
105799		"zone":      c.zone,
105800		"nodeGroup": c.nodeGroup,
105801	})
105802	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105803}
105804
105805// Do executes the "compute.nodeGroups.delete" call.
105806// Exactly one of *Operation or error will be non-nil. Any non-2xx
105807// status code is an error. Response headers are in either
105808// *Operation.ServerResponse.Header or (if a response was returned at
105809// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105810// to check whether the returned error was because
105811// http.StatusNotModified was returned.
105812func (c *NodeGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105813	gensupport.SetOptions(c.urlParams_, opts...)
105814	res, err := c.doRequest("json")
105815	if res != nil && res.StatusCode == http.StatusNotModified {
105816		if res.Body != nil {
105817			res.Body.Close()
105818		}
105819		return nil, &googleapi.Error{
105820			Code:   res.StatusCode,
105821			Header: res.Header,
105822		}
105823	}
105824	if err != nil {
105825		return nil, err
105826	}
105827	defer googleapi.CloseBody(res)
105828	if err := googleapi.CheckResponse(res); err != nil {
105829		return nil, err
105830	}
105831	ret := &Operation{
105832		ServerResponse: googleapi.ServerResponse{
105833			Header:         res.Header,
105834			HTTPStatusCode: res.StatusCode,
105835		},
105836	}
105837	target := &ret
105838	if err := gensupport.DecodeResponse(target, res); err != nil {
105839		return nil, err
105840	}
105841	return ret, nil
105842	// {
105843	//   "description": "Deletes the specified NodeGroup resource.",
105844	//   "httpMethod": "DELETE",
105845	//   "id": "compute.nodeGroups.delete",
105846	//   "parameterOrder": [
105847	//     "project",
105848	//     "zone",
105849	//     "nodeGroup"
105850	//   ],
105851	//   "parameters": {
105852	//     "nodeGroup": {
105853	//       "description": "Name of the NodeGroup resource to delete.",
105854	//       "location": "path",
105855	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105856	//       "required": true,
105857	//       "type": "string"
105858	//     },
105859	//     "project": {
105860	//       "description": "Project ID for this request.",
105861	//       "location": "path",
105862	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105863	//       "required": true,
105864	//       "type": "string"
105865	//     },
105866	//     "requestId": {
105867	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
105868	//       "location": "query",
105869	//       "type": "string"
105870	//     },
105871	//     "zone": {
105872	//       "description": "The name of the zone for this request.",
105873	//       "location": "path",
105874	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105875	//       "required": true,
105876	//       "type": "string"
105877	//     }
105878	//   },
105879	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}",
105880	//   "response": {
105881	//     "$ref": "Operation"
105882	//   },
105883	//   "scopes": [
105884	//     "https://www.googleapis.com/auth/cloud-platform",
105885	//     "https://www.googleapis.com/auth/compute"
105886	//   ]
105887	// }
105888
105889}
105890
105891// method id "compute.nodeGroups.deleteNodes":
105892
105893type NodeGroupsDeleteNodesCall struct {
105894	s                            *Service
105895	project                      string
105896	zone                         string
105897	nodeGroup                    string
105898	nodegroupsdeletenodesrequest *NodeGroupsDeleteNodesRequest
105899	urlParams_                   gensupport.URLParams
105900	ctx_                         context.Context
105901	header_                      http.Header
105902}
105903
105904// DeleteNodes: Deletes specified nodes from the node group.
105905func (r *NodeGroupsService) DeleteNodes(project string, zone string, nodeGroup string, nodegroupsdeletenodesrequest *NodeGroupsDeleteNodesRequest) *NodeGroupsDeleteNodesCall {
105906	c := &NodeGroupsDeleteNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105907	c.project = project
105908	c.zone = zone
105909	c.nodeGroup = nodeGroup
105910	c.nodegroupsdeletenodesrequest = nodegroupsdeletenodesrequest
105911	return c
105912}
105913
105914// RequestId sets the optional parameter "requestId": An optional
105915// request ID to identify requests. Specify a unique request ID so that
105916// if you must retry your request, the server will know to ignore the
105917// request if it has already been completed.
105918//
105919// For example, consider a situation where you make an initial request
105920// and the request times out. If you make the request again with the
105921// same request ID, the server can check if original operation with the
105922// same request ID was received, and if so, will ignore the second
105923// request. This prevents clients from accidentally creating duplicate
105924// commitments.
105925//
105926// The request ID must be a valid UUID with the exception that zero UUID
105927// is not supported (00000000-0000-0000-0000-000000000000).
105928func (c *NodeGroupsDeleteNodesCall) RequestId(requestId string) *NodeGroupsDeleteNodesCall {
105929	c.urlParams_.Set("requestId", requestId)
105930	return c
105931}
105932
105933// Fields allows partial responses to be retrieved. See
105934// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105935// for more information.
105936func (c *NodeGroupsDeleteNodesCall) Fields(s ...googleapi.Field) *NodeGroupsDeleteNodesCall {
105937	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105938	return c
105939}
105940
105941// Context sets the context to be used in this call's Do method. Any
105942// pending HTTP request will be aborted if the provided context is
105943// canceled.
105944func (c *NodeGroupsDeleteNodesCall) Context(ctx context.Context) *NodeGroupsDeleteNodesCall {
105945	c.ctx_ = ctx
105946	return c
105947}
105948
105949// Header returns an http.Header that can be modified by the caller to
105950// add HTTP headers to the request.
105951func (c *NodeGroupsDeleteNodesCall) Header() http.Header {
105952	if c.header_ == nil {
105953		c.header_ = make(http.Header)
105954	}
105955	return c.header_
105956}
105957
105958func (c *NodeGroupsDeleteNodesCall) doRequest(alt string) (*http.Response, error) {
105959	reqHeaders := make(http.Header)
105960	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
105961	for k, v := range c.header_ {
105962		reqHeaders[k] = v
105963	}
105964	reqHeaders.Set("User-Agent", c.s.userAgent())
105965	var body io.Reader = nil
105966	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupsdeletenodesrequest)
105967	if err != nil {
105968		return nil, err
105969	}
105970	reqHeaders.Set("Content-Type", "application/json")
105971	c.urlParams_.Set("alt", alt)
105972	c.urlParams_.Set("prettyPrint", "false")
105973	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes")
105974	urls += "?" + c.urlParams_.Encode()
105975	req, err := http.NewRequest("POST", urls, body)
105976	if err != nil {
105977		return nil, err
105978	}
105979	req.Header = reqHeaders
105980	googleapi.Expand(req.URL, map[string]string{
105981		"project":   c.project,
105982		"zone":      c.zone,
105983		"nodeGroup": c.nodeGroup,
105984	})
105985	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105986}
105987
105988// Do executes the "compute.nodeGroups.deleteNodes" call.
105989// Exactly one of *Operation or error will be non-nil. Any non-2xx
105990// status code is an error. Response headers are in either
105991// *Operation.ServerResponse.Header or (if a response was returned at
105992// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105993// to check whether the returned error was because
105994// http.StatusNotModified was returned.
105995func (c *NodeGroupsDeleteNodesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105996	gensupport.SetOptions(c.urlParams_, opts...)
105997	res, err := c.doRequest("json")
105998	if res != nil && res.StatusCode == http.StatusNotModified {
105999		if res.Body != nil {
106000			res.Body.Close()
106001		}
106002		return nil, &googleapi.Error{
106003			Code:   res.StatusCode,
106004			Header: res.Header,
106005		}
106006	}
106007	if err != nil {
106008		return nil, err
106009	}
106010	defer googleapi.CloseBody(res)
106011	if err := googleapi.CheckResponse(res); err != nil {
106012		return nil, err
106013	}
106014	ret := &Operation{
106015		ServerResponse: googleapi.ServerResponse{
106016			Header:         res.Header,
106017			HTTPStatusCode: res.StatusCode,
106018		},
106019	}
106020	target := &ret
106021	if err := gensupport.DecodeResponse(target, res); err != nil {
106022		return nil, err
106023	}
106024	return ret, nil
106025	// {
106026	//   "description": "Deletes specified nodes from the node group.",
106027	//   "httpMethod": "POST",
106028	//   "id": "compute.nodeGroups.deleteNodes",
106029	//   "parameterOrder": [
106030	//     "project",
106031	//     "zone",
106032	//     "nodeGroup"
106033	//   ],
106034	//   "parameters": {
106035	//     "nodeGroup": {
106036	//       "description": "Name of the NodeGroup resource whose nodes will be deleted.",
106037	//       "location": "path",
106038	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
106039	//       "required": true,
106040	//       "type": "string"
106041	//     },
106042	//     "project": {
106043	//       "description": "Project ID for this request.",
106044	//       "location": "path",
106045	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106046	//       "required": true,
106047	//       "type": "string"
106048	//     },
106049	//     "requestId": {
106050	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
106051	//       "location": "query",
106052	//       "type": "string"
106053	//     },
106054	//     "zone": {
106055	//       "description": "The name of the zone for this request.",
106056	//       "location": "path",
106057	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106058	//       "required": true,
106059	//       "type": "string"
106060	//     }
106061	//   },
106062	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes",
106063	//   "request": {
106064	//     "$ref": "NodeGroupsDeleteNodesRequest"
106065	//   },
106066	//   "response": {
106067	//     "$ref": "Operation"
106068	//   },
106069	//   "scopes": [
106070	//     "https://www.googleapis.com/auth/cloud-platform",
106071	//     "https://www.googleapis.com/auth/compute"
106072	//   ]
106073	// }
106074
106075}
106076
106077// method id "compute.nodeGroups.get":
106078
106079type NodeGroupsGetCall struct {
106080	s            *Service
106081	project      string
106082	zone         string
106083	nodeGroup    string
106084	urlParams_   gensupport.URLParams
106085	ifNoneMatch_ string
106086	ctx_         context.Context
106087	header_      http.Header
106088}
106089
106090// Get: Returns the specified NodeGroup. Get a list of available
106091// NodeGroups by making a list() request. Note: the "nodes" field should
106092// not be used. Use nodeGroups.listNodes instead.
106093func (r *NodeGroupsService) Get(project string, zone string, nodeGroup string) *NodeGroupsGetCall {
106094	c := &NodeGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106095	c.project = project
106096	c.zone = zone
106097	c.nodeGroup = nodeGroup
106098	return c
106099}
106100
106101// Fields allows partial responses to be retrieved. See
106102// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106103// for more information.
106104func (c *NodeGroupsGetCall) Fields(s ...googleapi.Field) *NodeGroupsGetCall {
106105	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106106	return c
106107}
106108
106109// IfNoneMatch sets the optional parameter which makes the operation
106110// fail if the object's ETag matches the given value. This is useful for
106111// getting updates only after the object has changed since the last
106112// request. Use googleapi.IsNotModified to check whether the response
106113// error from Do is the result of In-None-Match.
106114func (c *NodeGroupsGetCall) IfNoneMatch(entityTag string) *NodeGroupsGetCall {
106115	c.ifNoneMatch_ = entityTag
106116	return c
106117}
106118
106119// Context sets the context to be used in this call's Do method. Any
106120// pending HTTP request will be aborted if the provided context is
106121// canceled.
106122func (c *NodeGroupsGetCall) Context(ctx context.Context) *NodeGroupsGetCall {
106123	c.ctx_ = ctx
106124	return c
106125}
106126
106127// Header returns an http.Header that can be modified by the caller to
106128// add HTTP headers to the request.
106129func (c *NodeGroupsGetCall) Header() http.Header {
106130	if c.header_ == nil {
106131		c.header_ = make(http.Header)
106132	}
106133	return c.header_
106134}
106135
106136func (c *NodeGroupsGetCall) doRequest(alt string) (*http.Response, error) {
106137	reqHeaders := make(http.Header)
106138	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
106139	for k, v := range c.header_ {
106140		reqHeaders[k] = v
106141	}
106142	reqHeaders.Set("User-Agent", c.s.userAgent())
106143	if c.ifNoneMatch_ != "" {
106144		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
106145	}
106146	var body io.Reader = nil
106147	c.urlParams_.Set("alt", alt)
106148	c.urlParams_.Set("prettyPrint", "false")
106149	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}")
106150	urls += "?" + c.urlParams_.Encode()
106151	req, err := http.NewRequest("GET", urls, body)
106152	if err != nil {
106153		return nil, err
106154	}
106155	req.Header = reqHeaders
106156	googleapi.Expand(req.URL, map[string]string{
106157		"project":   c.project,
106158		"zone":      c.zone,
106159		"nodeGroup": c.nodeGroup,
106160	})
106161	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106162}
106163
106164// Do executes the "compute.nodeGroups.get" call.
106165// Exactly one of *NodeGroup or error will be non-nil. Any non-2xx
106166// status code is an error. Response headers are in either
106167// *NodeGroup.ServerResponse.Header or (if a response was returned at
106168// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
106169// to check whether the returned error was because
106170// http.StatusNotModified was returned.
106171func (c *NodeGroupsGetCall) Do(opts ...googleapi.CallOption) (*NodeGroup, error) {
106172	gensupport.SetOptions(c.urlParams_, opts...)
106173	res, err := c.doRequest("json")
106174	if res != nil && res.StatusCode == http.StatusNotModified {
106175		if res.Body != nil {
106176			res.Body.Close()
106177		}
106178		return nil, &googleapi.Error{
106179			Code:   res.StatusCode,
106180			Header: res.Header,
106181		}
106182	}
106183	if err != nil {
106184		return nil, err
106185	}
106186	defer googleapi.CloseBody(res)
106187	if err := googleapi.CheckResponse(res); err != nil {
106188		return nil, err
106189	}
106190	ret := &NodeGroup{
106191		ServerResponse: googleapi.ServerResponse{
106192			Header:         res.Header,
106193			HTTPStatusCode: res.StatusCode,
106194		},
106195	}
106196	target := &ret
106197	if err := gensupport.DecodeResponse(target, res); err != nil {
106198		return nil, err
106199	}
106200	return ret, nil
106201	// {
106202	//   "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.",
106203	//   "httpMethod": "GET",
106204	//   "id": "compute.nodeGroups.get",
106205	//   "parameterOrder": [
106206	//     "project",
106207	//     "zone",
106208	//     "nodeGroup"
106209	//   ],
106210	//   "parameters": {
106211	//     "nodeGroup": {
106212	//       "description": "Name of the node group to return.",
106213	//       "location": "path",
106214	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
106215	//       "required": true,
106216	//       "type": "string"
106217	//     },
106218	//     "project": {
106219	//       "description": "Project ID for this request.",
106220	//       "location": "path",
106221	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106222	//       "required": true,
106223	//       "type": "string"
106224	//     },
106225	//     "zone": {
106226	//       "description": "The name of the zone for this request.",
106227	//       "location": "path",
106228	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106229	//       "required": true,
106230	//       "type": "string"
106231	//     }
106232	//   },
106233	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}",
106234	//   "response": {
106235	//     "$ref": "NodeGroup"
106236	//   },
106237	//   "scopes": [
106238	//     "https://www.googleapis.com/auth/cloud-platform",
106239	//     "https://www.googleapis.com/auth/compute",
106240	//     "https://www.googleapis.com/auth/compute.readonly"
106241	//   ]
106242	// }
106243
106244}
106245
106246// method id "compute.nodeGroups.getIamPolicy":
106247
106248type NodeGroupsGetIamPolicyCall struct {
106249	s            *Service
106250	project      string
106251	zone         string
106252	resource     string
106253	urlParams_   gensupport.URLParams
106254	ifNoneMatch_ string
106255	ctx_         context.Context
106256	header_      http.Header
106257}
106258
106259// GetIamPolicy: Gets the access control policy for a resource. May be
106260// empty if no such policy or resource exists.
106261func (r *NodeGroupsService) GetIamPolicy(project string, zone string, resource string) *NodeGroupsGetIamPolicyCall {
106262	c := &NodeGroupsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106263	c.project = project
106264	c.zone = zone
106265	c.resource = resource
106266	return c
106267}
106268
106269// OptionsRequestedPolicyVersion sets the optional parameter
106270// "optionsRequestedPolicyVersion": Requested IAM Policy version.
106271func (c *NodeGroupsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *NodeGroupsGetIamPolicyCall {
106272	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
106273	return c
106274}
106275
106276// Fields allows partial responses to be retrieved. See
106277// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106278// for more information.
106279func (c *NodeGroupsGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsGetIamPolicyCall {
106280	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106281	return c
106282}
106283
106284// IfNoneMatch sets the optional parameter which makes the operation
106285// fail if the object's ETag matches the given value. This is useful for
106286// getting updates only after the object has changed since the last
106287// request. Use googleapi.IsNotModified to check whether the response
106288// error from Do is the result of In-None-Match.
106289func (c *NodeGroupsGetIamPolicyCall) IfNoneMatch(entityTag string) *NodeGroupsGetIamPolicyCall {
106290	c.ifNoneMatch_ = entityTag
106291	return c
106292}
106293
106294// Context sets the context to be used in this call's Do method. Any
106295// pending HTTP request will be aborted if the provided context is
106296// canceled.
106297func (c *NodeGroupsGetIamPolicyCall) Context(ctx context.Context) *NodeGroupsGetIamPolicyCall {
106298	c.ctx_ = ctx
106299	return c
106300}
106301
106302// Header returns an http.Header that can be modified by the caller to
106303// add HTTP headers to the request.
106304func (c *NodeGroupsGetIamPolicyCall) Header() http.Header {
106305	if c.header_ == nil {
106306		c.header_ = make(http.Header)
106307	}
106308	return c.header_
106309}
106310
106311func (c *NodeGroupsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
106312	reqHeaders := make(http.Header)
106313	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
106314	for k, v := range c.header_ {
106315		reqHeaders[k] = v
106316	}
106317	reqHeaders.Set("User-Agent", c.s.userAgent())
106318	if c.ifNoneMatch_ != "" {
106319		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
106320	}
106321	var body io.Reader = nil
106322	c.urlParams_.Set("alt", alt)
106323	c.urlParams_.Set("prettyPrint", "false")
106324	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy")
106325	urls += "?" + c.urlParams_.Encode()
106326	req, err := http.NewRequest("GET", urls, body)
106327	if err != nil {
106328		return nil, err
106329	}
106330	req.Header = reqHeaders
106331	googleapi.Expand(req.URL, map[string]string{
106332		"project":  c.project,
106333		"zone":     c.zone,
106334		"resource": c.resource,
106335	})
106336	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106337}
106338
106339// Do executes the "compute.nodeGroups.getIamPolicy" call.
106340// Exactly one of *Policy or error will be non-nil. Any non-2xx status
106341// code is an error. Response headers are in either
106342// *Policy.ServerResponse.Header or (if a response was returned at all)
106343// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
106344// check whether the returned error was because http.StatusNotModified
106345// was returned.
106346func (c *NodeGroupsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
106347	gensupport.SetOptions(c.urlParams_, opts...)
106348	res, err := c.doRequest("json")
106349	if res != nil && res.StatusCode == http.StatusNotModified {
106350		if res.Body != nil {
106351			res.Body.Close()
106352		}
106353		return nil, &googleapi.Error{
106354			Code:   res.StatusCode,
106355			Header: res.Header,
106356		}
106357	}
106358	if err != nil {
106359		return nil, err
106360	}
106361	defer googleapi.CloseBody(res)
106362	if err := googleapi.CheckResponse(res); err != nil {
106363		return nil, err
106364	}
106365	ret := &Policy{
106366		ServerResponse: googleapi.ServerResponse{
106367			Header:         res.Header,
106368			HTTPStatusCode: res.StatusCode,
106369		},
106370	}
106371	target := &ret
106372	if err := gensupport.DecodeResponse(target, res); err != nil {
106373		return nil, err
106374	}
106375	return ret, nil
106376	// {
106377	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
106378	//   "httpMethod": "GET",
106379	//   "id": "compute.nodeGroups.getIamPolicy",
106380	//   "parameterOrder": [
106381	//     "project",
106382	//     "zone",
106383	//     "resource"
106384	//   ],
106385	//   "parameters": {
106386	//     "optionsRequestedPolicyVersion": {
106387	//       "description": "Requested IAM Policy version.",
106388	//       "format": "int32",
106389	//       "location": "query",
106390	//       "type": "integer"
106391	//     },
106392	//     "project": {
106393	//       "description": "Project ID for this request.",
106394	//       "location": "path",
106395	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106396	//       "required": true,
106397	//       "type": "string"
106398	//     },
106399	//     "resource": {
106400	//       "description": "Name or id of the resource for this request.",
106401	//       "location": "path",
106402	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
106403	//       "required": true,
106404	//       "type": "string"
106405	//     },
106406	//     "zone": {
106407	//       "description": "The name of the zone for this request.",
106408	//       "location": "path",
106409	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106410	//       "required": true,
106411	//       "type": "string"
106412	//     }
106413	//   },
106414	//   "path": "{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy",
106415	//   "response": {
106416	//     "$ref": "Policy"
106417	//   },
106418	//   "scopes": [
106419	//     "https://www.googleapis.com/auth/cloud-platform",
106420	//     "https://www.googleapis.com/auth/compute",
106421	//     "https://www.googleapis.com/auth/compute.readonly"
106422	//   ]
106423	// }
106424
106425}
106426
106427// method id "compute.nodeGroups.insert":
106428
106429type NodeGroupsInsertCall struct {
106430	s          *Service
106431	project    string
106432	zone       string
106433	nodegroup  *NodeGroup
106434	urlParams_ gensupport.URLParams
106435	ctx_       context.Context
106436	header_    http.Header
106437}
106438
106439// Insert: Creates a NodeGroup resource in the specified project using
106440// the data included in the request.
106441func (r *NodeGroupsService) Insert(project string, zone string, initialNodeCount int64, nodegroup *NodeGroup) *NodeGroupsInsertCall {
106442	c := &NodeGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106443	c.project = project
106444	c.zone = zone
106445	c.urlParams_.Set("initialNodeCount", fmt.Sprint(initialNodeCount))
106446	c.nodegroup = nodegroup
106447	return c
106448}
106449
106450// RequestId sets the optional parameter "requestId": An optional
106451// request ID to identify requests. Specify a unique request ID so that
106452// if you must retry your request, the server will know to ignore the
106453// request if it has already been completed.
106454//
106455// For example, consider a situation where you make an initial request
106456// and the request times out. If you make the request again with the
106457// same request ID, the server can check if original operation with the
106458// same request ID was received, and if so, will ignore the second
106459// request. This prevents clients from accidentally creating duplicate
106460// commitments.
106461//
106462// The request ID must be a valid UUID with the exception that zero UUID
106463// is not supported (00000000-0000-0000-0000-000000000000).
106464func (c *NodeGroupsInsertCall) RequestId(requestId string) *NodeGroupsInsertCall {
106465	c.urlParams_.Set("requestId", requestId)
106466	return c
106467}
106468
106469// Fields allows partial responses to be retrieved. See
106470// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106471// for more information.
106472func (c *NodeGroupsInsertCall) Fields(s ...googleapi.Field) *NodeGroupsInsertCall {
106473	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106474	return c
106475}
106476
106477// Context sets the context to be used in this call's Do method. Any
106478// pending HTTP request will be aborted if the provided context is
106479// canceled.
106480func (c *NodeGroupsInsertCall) Context(ctx context.Context) *NodeGroupsInsertCall {
106481	c.ctx_ = ctx
106482	return c
106483}
106484
106485// Header returns an http.Header that can be modified by the caller to
106486// add HTTP headers to the request.
106487func (c *NodeGroupsInsertCall) Header() http.Header {
106488	if c.header_ == nil {
106489		c.header_ = make(http.Header)
106490	}
106491	return c.header_
106492}
106493
106494func (c *NodeGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
106495	reqHeaders := make(http.Header)
106496	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
106497	for k, v := range c.header_ {
106498		reqHeaders[k] = v
106499	}
106500	reqHeaders.Set("User-Agent", c.s.userAgent())
106501	var body io.Reader = nil
106502	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroup)
106503	if err != nil {
106504		return nil, err
106505	}
106506	reqHeaders.Set("Content-Type", "application/json")
106507	c.urlParams_.Set("alt", alt)
106508	c.urlParams_.Set("prettyPrint", "false")
106509	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups")
106510	urls += "?" + c.urlParams_.Encode()
106511	req, err := http.NewRequest("POST", urls, body)
106512	if err != nil {
106513		return nil, err
106514	}
106515	req.Header = reqHeaders
106516	googleapi.Expand(req.URL, map[string]string{
106517		"project": c.project,
106518		"zone":    c.zone,
106519	})
106520	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106521}
106522
106523// Do executes the "compute.nodeGroups.insert" call.
106524// Exactly one of *Operation or error will be non-nil. Any non-2xx
106525// status code is an error. Response headers are in either
106526// *Operation.ServerResponse.Header or (if a response was returned at
106527// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
106528// to check whether the returned error was because
106529// http.StatusNotModified was returned.
106530func (c *NodeGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
106531	gensupport.SetOptions(c.urlParams_, opts...)
106532	res, err := c.doRequest("json")
106533	if res != nil && res.StatusCode == http.StatusNotModified {
106534		if res.Body != nil {
106535			res.Body.Close()
106536		}
106537		return nil, &googleapi.Error{
106538			Code:   res.StatusCode,
106539			Header: res.Header,
106540		}
106541	}
106542	if err != nil {
106543		return nil, err
106544	}
106545	defer googleapi.CloseBody(res)
106546	if err := googleapi.CheckResponse(res); err != nil {
106547		return nil, err
106548	}
106549	ret := &Operation{
106550		ServerResponse: googleapi.ServerResponse{
106551			Header:         res.Header,
106552			HTTPStatusCode: res.StatusCode,
106553		},
106554	}
106555	target := &ret
106556	if err := gensupport.DecodeResponse(target, res); err != nil {
106557		return nil, err
106558	}
106559	return ret, nil
106560	// {
106561	//   "description": "Creates a NodeGroup resource in the specified project using the data included in the request.",
106562	//   "httpMethod": "POST",
106563	//   "id": "compute.nodeGroups.insert",
106564	//   "parameterOrder": [
106565	//     "project",
106566	//     "zone",
106567	//     "initialNodeCount"
106568	//   ],
106569	//   "parameters": {
106570	//     "initialNodeCount": {
106571	//       "description": "Initial count of nodes in the node group.",
106572	//       "format": "int32",
106573	//       "location": "query",
106574	//       "required": true,
106575	//       "type": "integer"
106576	//     },
106577	//     "project": {
106578	//       "description": "Project ID for this request.",
106579	//       "location": "path",
106580	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106581	//       "required": true,
106582	//       "type": "string"
106583	//     },
106584	//     "requestId": {
106585	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
106586	//       "location": "query",
106587	//       "type": "string"
106588	//     },
106589	//     "zone": {
106590	//       "description": "The name of the zone for this request.",
106591	//       "location": "path",
106592	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106593	//       "required": true,
106594	//       "type": "string"
106595	//     }
106596	//   },
106597	//   "path": "{project}/zones/{zone}/nodeGroups",
106598	//   "request": {
106599	//     "$ref": "NodeGroup"
106600	//   },
106601	//   "response": {
106602	//     "$ref": "Operation"
106603	//   },
106604	//   "scopes": [
106605	//     "https://www.googleapis.com/auth/cloud-platform",
106606	//     "https://www.googleapis.com/auth/compute"
106607	//   ]
106608	// }
106609
106610}
106611
106612// method id "compute.nodeGroups.list":
106613
106614type NodeGroupsListCall struct {
106615	s            *Service
106616	project      string
106617	zone         string
106618	urlParams_   gensupport.URLParams
106619	ifNoneMatch_ string
106620	ctx_         context.Context
106621	header_      http.Header
106622}
106623
106624// List: Retrieves a list of node groups available to the specified
106625// project. Note: use nodeGroups.listNodes for more details about each
106626// group.
106627func (r *NodeGroupsService) List(project string, zone string) *NodeGroupsListCall {
106628	c := &NodeGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106629	c.project = project
106630	c.zone = zone
106631	return c
106632}
106633
106634// Filter sets the optional parameter "filter": A filter expression that
106635// filters resources listed in the response. The expression must specify
106636// the field name, a comparison operator, and the value that you want to
106637// use for filtering. The value must be a string, a number, or a
106638// boolean. The comparison operator must be either =, !=, >, or <.
106639//
106640// For example, if you are filtering Compute Engine instances, you can
106641// exclude instances named example-instance by specifying name !=
106642// example-instance.
106643//
106644// You can also filter nested fields. For example, you could specify
106645// scheduling.automaticRestart = false to include instances only if they
106646// are not scheduled for automatic restarts. You can use filtering on
106647// nested fields to filter based on resource labels.
106648//
106649// To filter on multiple expressions, provide each separate expression
106650// within parentheses. For example, (scheduling.automaticRestart = true)
106651// (cpuPlatform = "Intel Skylake"). By default, each expression is an
106652// AND expression. However, you can include AND and OR expressions
106653// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
106654// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
106655// true).
106656func (c *NodeGroupsListCall) Filter(filter string) *NodeGroupsListCall {
106657	c.urlParams_.Set("filter", filter)
106658	return c
106659}
106660
106661// MaxResults sets the optional parameter "maxResults": The maximum
106662// number of results per page that should be returned. If the number of
106663// available results is larger than maxResults, Compute Engine returns a
106664// nextPageToken that can be used to get the next page of results in
106665// subsequent list requests. Acceptable values are 0 to 500, inclusive.
106666// (Default: 500)
106667func (c *NodeGroupsListCall) MaxResults(maxResults int64) *NodeGroupsListCall {
106668	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
106669	return c
106670}
106671
106672// OrderBy sets the optional parameter "orderBy": Sorts list results by
106673// a certain order. By default, results are returned in alphanumerical
106674// order based on the resource name.
106675//
106676// You can also sort results in descending order based on the creation
106677// timestamp using orderBy="creationTimestamp desc". This sorts results
106678// based on the creationTimestamp field in reverse chronological order
106679// (newest result first). Use this to sort resources like operations so
106680// that the newest operation is returned first.
106681//
106682// Currently, only sorting by name or creationTimestamp desc is
106683// supported.
106684func (c *NodeGroupsListCall) OrderBy(orderBy string) *NodeGroupsListCall {
106685	c.urlParams_.Set("orderBy", orderBy)
106686	return c
106687}
106688
106689// PageToken sets the optional parameter "pageToken": Specifies a page
106690// token to use. Set pageToken to the nextPageToken returned by a
106691// previous list request to get the next page of results.
106692func (c *NodeGroupsListCall) PageToken(pageToken string) *NodeGroupsListCall {
106693	c.urlParams_.Set("pageToken", pageToken)
106694	return c
106695}
106696
106697// Fields allows partial responses to be retrieved. See
106698// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106699// for more information.
106700func (c *NodeGroupsListCall) Fields(s ...googleapi.Field) *NodeGroupsListCall {
106701	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106702	return c
106703}
106704
106705// IfNoneMatch sets the optional parameter which makes the operation
106706// fail if the object's ETag matches the given value. This is useful for
106707// getting updates only after the object has changed since the last
106708// request. Use googleapi.IsNotModified to check whether the response
106709// error from Do is the result of In-None-Match.
106710func (c *NodeGroupsListCall) IfNoneMatch(entityTag string) *NodeGroupsListCall {
106711	c.ifNoneMatch_ = entityTag
106712	return c
106713}
106714
106715// Context sets the context to be used in this call's Do method. Any
106716// pending HTTP request will be aborted if the provided context is
106717// canceled.
106718func (c *NodeGroupsListCall) Context(ctx context.Context) *NodeGroupsListCall {
106719	c.ctx_ = ctx
106720	return c
106721}
106722
106723// Header returns an http.Header that can be modified by the caller to
106724// add HTTP headers to the request.
106725func (c *NodeGroupsListCall) Header() http.Header {
106726	if c.header_ == nil {
106727		c.header_ = make(http.Header)
106728	}
106729	return c.header_
106730}
106731
106732func (c *NodeGroupsListCall) doRequest(alt string) (*http.Response, error) {
106733	reqHeaders := make(http.Header)
106734	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
106735	for k, v := range c.header_ {
106736		reqHeaders[k] = v
106737	}
106738	reqHeaders.Set("User-Agent", c.s.userAgent())
106739	if c.ifNoneMatch_ != "" {
106740		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
106741	}
106742	var body io.Reader = nil
106743	c.urlParams_.Set("alt", alt)
106744	c.urlParams_.Set("prettyPrint", "false")
106745	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups")
106746	urls += "?" + c.urlParams_.Encode()
106747	req, err := http.NewRequest("GET", urls, body)
106748	if err != nil {
106749		return nil, err
106750	}
106751	req.Header = reqHeaders
106752	googleapi.Expand(req.URL, map[string]string{
106753		"project": c.project,
106754		"zone":    c.zone,
106755	})
106756	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106757}
106758
106759// Do executes the "compute.nodeGroups.list" call.
106760// Exactly one of *NodeGroupList or error will be non-nil. Any non-2xx
106761// status code is an error. Response headers are in either
106762// *NodeGroupList.ServerResponse.Header or (if a response was returned
106763// at all) in error.(*googleapi.Error).Header. Use
106764// googleapi.IsNotModified to check whether the returned error was
106765// because http.StatusNotModified was returned.
106766func (c *NodeGroupsListCall) Do(opts ...googleapi.CallOption) (*NodeGroupList, error) {
106767	gensupport.SetOptions(c.urlParams_, opts...)
106768	res, err := c.doRequest("json")
106769	if res != nil && res.StatusCode == http.StatusNotModified {
106770		if res.Body != nil {
106771			res.Body.Close()
106772		}
106773		return nil, &googleapi.Error{
106774			Code:   res.StatusCode,
106775			Header: res.Header,
106776		}
106777	}
106778	if err != nil {
106779		return nil, err
106780	}
106781	defer googleapi.CloseBody(res)
106782	if err := googleapi.CheckResponse(res); err != nil {
106783		return nil, err
106784	}
106785	ret := &NodeGroupList{
106786		ServerResponse: googleapi.ServerResponse{
106787			Header:         res.Header,
106788			HTTPStatusCode: res.StatusCode,
106789		},
106790	}
106791	target := &ret
106792	if err := gensupport.DecodeResponse(target, res); err != nil {
106793		return nil, err
106794	}
106795	return ret, nil
106796	// {
106797	//   "description": "Retrieves a list of node groups available to the specified project. Note: use nodeGroups.listNodes for more details about each group.",
106798	//   "httpMethod": "GET",
106799	//   "id": "compute.nodeGroups.list",
106800	//   "parameterOrder": [
106801	//     "project",
106802	//     "zone"
106803	//   ],
106804	//   "parameters": {
106805	//     "filter": {
106806	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
106807	//       "location": "query",
106808	//       "type": "string"
106809	//     },
106810	//     "maxResults": {
106811	//       "default": "500",
106812	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
106813	//       "format": "uint32",
106814	//       "location": "query",
106815	//       "minimum": "0",
106816	//       "type": "integer"
106817	//     },
106818	//     "orderBy": {
106819	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
106820	//       "location": "query",
106821	//       "type": "string"
106822	//     },
106823	//     "pageToken": {
106824	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
106825	//       "location": "query",
106826	//       "type": "string"
106827	//     },
106828	//     "project": {
106829	//       "description": "Project ID for this request.",
106830	//       "location": "path",
106831	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106832	//       "required": true,
106833	//       "type": "string"
106834	//     },
106835	//     "zone": {
106836	//       "description": "The name of the zone for this request.",
106837	//       "location": "path",
106838	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106839	//       "required": true,
106840	//       "type": "string"
106841	//     }
106842	//   },
106843	//   "path": "{project}/zones/{zone}/nodeGroups",
106844	//   "response": {
106845	//     "$ref": "NodeGroupList"
106846	//   },
106847	//   "scopes": [
106848	//     "https://www.googleapis.com/auth/cloud-platform",
106849	//     "https://www.googleapis.com/auth/compute",
106850	//     "https://www.googleapis.com/auth/compute.readonly"
106851	//   ]
106852	// }
106853
106854}
106855
106856// Pages invokes f for each page of results.
106857// A non-nil error returned from f will halt the iteration.
106858// The provided context supersedes any context provided to the Context method.
106859func (c *NodeGroupsListCall) Pages(ctx context.Context, f func(*NodeGroupList) error) error {
106860	c.ctx_ = ctx
106861	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
106862	for {
106863		x, err := c.Do()
106864		if err != nil {
106865			return err
106866		}
106867		if err := f(x); err != nil {
106868			return err
106869		}
106870		if x.NextPageToken == "" {
106871			return nil
106872		}
106873		c.PageToken(x.NextPageToken)
106874	}
106875}
106876
106877// method id "compute.nodeGroups.listNodes":
106878
106879type NodeGroupsListNodesCall struct {
106880	s          *Service
106881	project    string
106882	zone       string
106883	nodeGroup  string
106884	urlParams_ gensupport.URLParams
106885	ctx_       context.Context
106886	header_    http.Header
106887}
106888
106889// ListNodes: Lists nodes in the node group.
106890func (r *NodeGroupsService) ListNodes(project string, zone string, nodeGroup string) *NodeGroupsListNodesCall {
106891	c := &NodeGroupsListNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106892	c.project = project
106893	c.zone = zone
106894	c.nodeGroup = nodeGroup
106895	return c
106896}
106897
106898// Filter sets the optional parameter "filter": A filter expression that
106899// filters resources listed in the response. The expression must specify
106900// the field name, a comparison operator, and the value that you want to
106901// use for filtering. The value must be a string, a number, or a
106902// boolean. The comparison operator must be either =, !=, >, or <.
106903//
106904// For example, if you are filtering Compute Engine instances, you can
106905// exclude instances named example-instance by specifying name !=
106906// example-instance.
106907//
106908// You can also filter nested fields. For example, you could specify
106909// scheduling.automaticRestart = false to include instances only if they
106910// are not scheduled for automatic restarts. You can use filtering on
106911// nested fields to filter based on resource labels.
106912//
106913// To filter on multiple expressions, provide each separate expression
106914// within parentheses. For example, (scheduling.automaticRestart = true)
106915// (cpuPlatform = "Intel Skylake"). By default, each expression is an
106916// AND expression. However, you can include AND and OR expressions
106917// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
106918// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
106919// true).
106920func (c *NodeGroupsListNodesCall) Filter(filter string) *NodeGroupsListNodesCall {
106921	c.urlParams_.Set("filter", filter)
106922	return c
106923}
106924
106925// MaxResults sets the optional parameter "maxResults": The maximum
106926// number of results per page that should be returned. If the number of
106927// available results is larger than maxResults, Compute Engine returns a
106928// nextPageToken that can be used to get the next page of results in
106929// subsequent list requests. Acceptable values are 0 to 500, inclusive.
106930// (Default: 500)
106931func (c *NodeGroupsListNodesCall) MaxResults(maxResults int64) *NodeGroupsListNodesCall {
106932	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
106933	return c
106934}
106935
106936// OrderBy sets the optional parameter "orderBy": Sorts list results by
106937// a certain order. By default, results are returned in alphanumerical
106938// order based on the resource name.
106939//
106940// You can also sort results in descending order based on the creation
106941// timestamp using orderBy="creationTimestamp desc". This sorts results
106942// based on the creationTimestamp field in reverse chronological order
106943// (newest result first). Use this to sort resources like operations so
106944// that the newest operation is returned first.
106945//
106946// Currently, only sorting by name or creationTimestamp desc is
106947// supported.
106948func (c *NodeGroupsListNodesCall) OrderBy(orderBy string) *NodeGroupsListNodesCall {
106949	c.urlParams_.Set("orderBy", orderBy)
106950	return c
106951}
106952
106953// PageToken sets the optional parameter "pageToken": Specifies a page
106954// token to use. Set pageToken to the nextPageToken returned by a
106955// previous list request to get the next page of results.
106956func (c *NodeGroupsListNodesCall) PageToken(pageToken string) *NodeGroupsListNodesCall {
106957	c.urlParams_.Set("pageToken", pageToken)
106958	return c
106959}
106960
106961// Fields allows partial responses to be retrieved. See
106962// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106963// for more information.
106964func (c *NodeGroupsListNodesCall) Fields(s ...googleapi.Field) *NodeGroupsListNodesCall {
106965	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106966	return c
106967}
106968
106969// Context sets the context to be used in this call's Do method. Any
106970// pending HTTP request will be aborted if the provided context is
106971// canceled.
106972func (c *NodeGroupsListNodesCall) Context(ctx context.Context) *NodeGroupsListNodesCall {
106973	c.ctx_ = ctx
106974	return c
106975}
106976
106977// Header returns an http.Header that can be modified by the caller to
106978// add HTTP headers to the request.
106979func (c *NodeGroupsListNodesCall) Header() http.Header {
106980	if c.header_ == nil {
106981		c.header_ = make(http.Header)
106982	}
106983	return c.header_
106984}
106985
106986func (c *NodeGroupsListNodesCall) doRequest(alt string) (*http.Response, error) {
106987	reqHeaders := make(http.Header)
106988	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
106989	for k, v := range c.header_ {
106990		reqHeaders[k] = v
106991	}
106992	reqHeaders.Set("User-Agent", c.s.userAgent())
106993	var body io.Reader = nil
106994	c.urlParams_.Set("alt", alt)
106995	c.urlParams_.Set("prettyPrint", "false")
106996	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes")
106997	urls += "?" + c.urlParams_.Encode()
106998	req, err := http.NewRequest("POST", urls, body)
106999	if err != nil {
107000		return nil, err
107001	}
107002	req.Header = reqHeaders
107003	googleapi.Expand(req.URL, map[string]string{
107004		"project":   c.project,
107005		"zone":      c.zone,
107006		"nodeGroup": c.nodeGroup,
107007	})
107008	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107009}
107010
107011// Do executes the "compute.nodeGroups.listNodes" call.
107012// Exactly one of *NodeGroupsListNodes or error will be non-nil. Any
107013// non-2xx status code is an error. Response headers are in either
107014// *NodeGroupsListNodes.ServerResponse.Header or (if a response was
107015// returned at all) in error.(*googleapi.Error).Header. Use
107016// googleapi.IsNotModified to check whether the returned error was
107017// because http.StatusNotModified was returned.
107018func (c *NodeGroupsListNodesCall) Do(opts ...googleapi.CallOption) (*NodeGroupsListNodes, error) {
107019	gensupport.SetOptions(c.urlParams_, opts...)
107020	res, err := c.doRequest("json")
107021	if res != nil && res.StatusCode == http.StatusNotModified {
107022		if res.Body != nil {
107023			res.Body.Close()
107024		}
107025		return nil, &googleapi.Error{
107026			Code:   res.StatusCode,
107027			Header: res.Header,
107028		}
107029	}
107030	if err != nil {
107031		return nil, err
107032	}
107033	defer googleapi.CloseBody(res)
107034	if err := googleapi.CheckResponse(res); err != nil {
107035		return nil, err
107036	}
107037	ret := &NodeGroupsListNodes{
107038		ServerResponse: googleapi.ServerResponse{
107039			Header:         res.Header,
107040			HTTPStatusCode: res.StatusCode,
107041		},
107042	}
107043	target := &ret
107044	if err := gensupport.DecodeResponse(target, res); err != nil {
107045		return nil, err
107046	}
107047	return ret, nil
107048	// {
107049	//   "description": "Lists nodes in the node group.",
107050	//   "httpMethod": "POST",
107051	//   "id": "compute.nodeGroups.listNodes",
107052	//   "parameterOrder": [
107053	//     "project",
107054	//     "zone",
107055	//     "nodeGroup"
107056	//   ],
107057	//   "parameters": {
107058	//     "filter": {
107059	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
107060	//       "location": "query",
107061	//       "type": "string"
107062	//     },
107063	//     "maxResults": {
107064	//       "default": "500",
107065	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
107066	//       "format": "uint32",
107067	//       "location": "query",
107068	//       "minimum": "0",
107069	//       "type": "integer"
107070	//     },
107071	//     "nodeGroup": {
107072	//       "description": "Name of the NodeGroup resource whose nodes you want to list.",
107073	//       "location": "path",
107074	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107075	//       "required": true,
107076	//       "type": "string"
107077	//     },
107078	//     "orderBy": {
107079	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
107080	//       "location": "query",
107081	//       "type": "string"
107082	//     },
107083	//     "pageToken": {
107084	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
107085	//       "location": "query",
107086	//       "type": "string"
107087	//     },
107088	//     "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	//     "zone": {
107096	//       "description": "The name of the zone 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}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes",
107104	//   "response": {
107105	//     "$ref": "NodeGroupsListNodes"
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// Pages invokes f for each page of results.
107117// A non-nil error returned from f will halt the iteration.
107118// The provided context supersedes any context provided to the Context method.
107119func (c *NodeGroupsListNodesCall) Pages(ctx context.Context, f func(*NodeGroupsListNodes) error) error {
107120	c.ctx_ = ctx
107121	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
107122	for {
107123		x, err := c.Do()
107124		if err != nil {
107125			return err
107126		}
107127		if err := f(x); err != nil {
107128			return err
107129		}
107130		if x.NextPageToken == "" {
107131			return nil
107132		}
107133		c.PageToken(x.NextPageToken)
107134	}
107135}
107136
107137// method id "compute.nodeGroups.patch":
107138
107139type NodeGroupsPatchCall struct {
107140	s          *Service
107141	project    string
107142	zone       string
107143	nodeGroup  string
107144	nodegroup  *NodeGroup
107145	urlParams_ gensupport.URLParams
107146	ctx_       context.Context
107147	header_    http.Header
107148}
107149
107150// Patch: Patch the node group.
107151func (r *NodeGroupsService) Patch(project string, zone string, nodeGroup string, nodegroup *NodeGroup) *NodeGroupsPatchCall {
107152	c := &NodeGroupsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107153	c.project = project
107154	c.zone = zone
107155	c.nodeGroup = nodeGroup
107156	c.nodegroup = nodegroup
107157	return c
107158}
107159
107160// RequestId sets the optional parameter "requestId": An optional
107161// request ID to identify requests. Specify a unique request ID so that
107162// if you must retry your request, the server will know to ignore the
107163// request if it has already been completed.
107164//
107165// For example, consider a situation where you make an initial request
107166// and the request times out. If you make the request again with the
107167// same request ID, the server can check if original operation with the
107168// same request ID was received, and if so, will ignore the second
107169// request. This prevents clients from accidentally creating duplicate
107170// commitments.
107171//
107172// The request ID must be a valid UUID with the exception that zero UUID
107173// is not supported (00000000-0000-0000-0000-000000000000).
107174func (c *NodeGroupsPatchCall) RequestId(requestId string) *NodeGroupsPatchCall {
107175	c.urlParams_.Set("requestId", requestId)
107176	return c
107177}
107178
107179// Fields allows partial responses to be retrieved. See
107180// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107181// for more information.
107182func (c *NodeGroupsPatchCall) Fields(s ...googleapi.Field) *NodeGroupsPatchCall {
107183	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107184	return c
107185}
107186
107187// Context sets the context to be used in this call's Do method. Any
107188// pending HTTP request will be aborted if the provided context is
107189// canceled.
107190func (c *NodeGroupsPatchCall) Context(ctx context.Context) *NodeGroupsPatchCall {
107191	c.ctx_ = ctx
107192	return c
107193}
107194
107195// Header returns an http.Header that can be modified by the caller to
107196// add HTTP headers to the request.
107197func (c *NodeGroupsPatchCall) Header() http.Header {
107198	if c.header_ == nil {
107199		c.header_ = make(http.Header)
107200	}
107201	return c.header_
107202}
107203
107204func (c *NodeGroupsPatchCall) doRequest(alt string) (*http.Response, error) {
107205	reqHeaders := make(http.Header)
107206	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
107207	for k, v := range c.header_ {
107208		reqHeaders[k] = v
107209	}
107210	reqHeaders.Set("User-Agent", c.s.userAgent())
107211	var body io.Reader = nil
107212	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroup)
107213	if err != nil {
107214		return nil, err
107215	}
107216	reqHeaders.Set("Content-Type", "application/json")
107217	c.urlParams_.Set("alt", alt)
107218	c.urlParams_.Set("prettyPrint", "false")
107219	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}")
107220	urls += "?" + c.urlParams_.Encode()
107221	req, err := http.NewRequest("PATCH", urls, body)
107222	if err != nil {
107223		return nil, err
107224	}
107225	req.Header = reqHeaders
107226	googleapi.Expand(req.URL, map[string]string{
107227		"project":   c.project,
107228		"zone":      c.zone,
107229		"nodeGroup": c.nodeGroup,
107230	})
107231	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107232}
107233
107234// Do executes the "compute.nodeGroups.patch" call.
107235// Exactly one of *Operation or error will be non-nil. Any non-2xx
107236// status code is an error. Response headers are in either
107237// *Operation.ServerResponse.Header or (if a response was returned at
107238// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107239// to check whether the returned error was because
107240// http.StatusNotModified was returned.
107241func (c *NodeGroupsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107242	gensupport.SetOptions(c.urlParams_, opts...)
107243	res, err := c.doRequest("json")
107244	if res != nil && res.StatusCode == http.StatusNotModified {
107245		if res.Body != nil {
107246			res.Body.Close()
107247		}
107248		return nil, &googleapi.Error{
107249			Code:   res.StatusCode,
107250			Header: res.Header,
107251		}
107252	}
107253	if err != nil {
107254		return nil, err
107255	}
107256	defer googleapi.CloseBody(res)
107257	if err := googleapi.CheckResponse(res); err != nil {
107258		return nil, err
107259	}
107260	ret := &Operation{
107261		ServerResponse: googleapi.ServerResponse{
107262			Header:         res.Header,
107263			HTTPStatusCode: res.StatusCode,
107264		},
107265	}
107266	target := &ret
107267	if err := gensupport.DecodeResponse(target, res); err != nil {
107268		return nil, err
107269	}
107270	return ret, nil
107271	// {
107272	//   "description": "Patch the node group.",
107273	//   "httpMethod": "PATCH",
107274	//   "id": "compute.nodeGroups.patch",
107275	//   "parameterOrder": [
107276	//     "project",
107277	//     "zone",
107278	//     "nodeGroup"
107279	//   ],
107280	//   "parameters": {
107281	//     "nodeGroup": {
107282	//       "description": "Name of the NodeGroup resource to update.",
107283	//       "location": "path",
107284	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107285	//       "required": true,
107286	//       "type": "string"
107287	//     },
107288	//     "project": {
107289	//       "description": "Project ID for this request.",
107290	//       "location": "path",
107291	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107292	//       "required": true,
107293	//       "type": "string"
107294	//     },
107295	//     "requestId": {
107296	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
107297	//       "location": "query",
107298	//       "type": "string"
107299	//     },
107300	//     "zone": {
107301	//       "description": "The name of the zone for this request.",
107302	//       "location": "path",
107303	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107304	//       "required": true,
107305	//       "type": "string"
107306	//     }
107307	//   },
107308	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}",
107309	//   "request": {
107310	//     "$ref": "NodeGroup"
107311	//   },
107312	//   "response": {
107313	//     "$ref": "Operation"
107314	//   },
107315	//   "scopes": [
107316	//     "https://www.googleapis.com/auth/cloud-platform",
107317	//     "https://www.googleapis.com/auth/compute"
107318	//   ]
107319	// }
107320
107321}
107322
107323// method id "compute.nodeGroups.setIamPolicy":
107324
107325type NodeGroupsSetIamPolicyCall struct {
107326	s                    *Service
107327	project              string
107328	zone                 string
107329	resource             string
107330	zonesetpolicyrequest *ZoneSetPolicyRequest
107331	urlParams_           gensupport.URLParams
107332	ctx_                 context.Context
107333	header_              http.Header
107334}
107335
107336// SetIamPolicy: Sets the access control policy on the specified
107337// resource. Replaces any existing policy.
107338func (r *NodeGroupsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *NodeGroupsSetIamPolicyCall {
107339	c := &NodeGroupsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107340	c.project = project
107341	c.zone = zone
107342	c.resource = resource
107343	c.zonesetpolicyrequest = zonesetpolicyrequest
107344	return c
107345}
107346
107347// Fields allows partial responses to be retrieved. See
107348// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107349// for more information.
107350func (c *NodeGroupsSetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsSetIamPolicyCall {
107351	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107352	return c
107353}
107354
107355// Context sets the context to be used in this call's Do method. Any
107356// pending HTTP request will be aborted if the provided context is
107357// canceled.
107358func (c *NodeGroupsSetIamPolicyCall) Context(ctx context.Context) *NodeGroupsSetIamPolicyCall {
107359	c.ctx_ = ctx
107360	return c
107361}
107362
107363// Header returns an http.Header that can be modified by the caller to
107364// add HTTP headers to the request.
107365func (c *NodeGroupsSetIamPolicyCall) Header() http.Header {
107366	if c.header_ == nil {
107367		c.header_ = make(http.Header)
107368	}
107369	return c.header_
107370}
107371
107372func (c *NodeGroupsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
107373	reqHeaders := make(http.Header)
107374	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
107375	for k, v := range c.header_ {
107376		reqHeaders[k] = v
107377	}
107378	reqHeaders.Set("User-Agent", c.s.userAgent())
107379	var body io.Reader = nil
107380	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
107381	if err != nil {
107382		return nil, err
107383	}
107384	reqHeaders.Set("Content-Type", "application/json")
107385	c.urlParams_.Set("alt", alt)
107386	c.urlParams_.Set("prettyPrint", "false")
107387	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy")
107388	urls += "?" + c.urlParams_.Encode()
107389	req, err := http.NewRequest("POST", urls, body)
107390	if err != nil {
107391		return nil, err
107392	}
107393	req.Header = reqHeaders
107394	googleapi.Expand(req.URL, map[string]string{
107395		"project":  c.project,
107396		"zone":     c.zone,
107397		"resource": c.resource,
107398	})
107399	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107400}
107401
107402// Do executes the "compute.nodeGroups.setIamPolicy" call.
107403// Exactly one of *Policy or error will be non-nil. Any non-2xx status
107404// code is an error. Response headers are in either
107405// *Policy.ServerResponse.Header or (if a response was returned at all)
107406// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
107407// check whether the returned error was because http.StatusNotModified
107408// was returned.
107409func (c *NodeGroupsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
107410	gensupport.SetOptions(c.urlParams_, opts...)
107411	res, err := c.doRequest("json")
107412	if res != nil && res.StatusCode == http.StatusNotModified {
107413		if res.Body != nil {
107414			res.Body.Close()
107415		}
107416		return nil, &googleapi.Error{
107417			Code:   res.StatusCode,
107418			Header: res.Header,
107419		}
107420	}
107421	if err != nil {
107422		return nil, err
107423	}
107424	defer googleapi.CloseBody(res)
107425	if err := googleapi.CheckResponse(res); err != nil {
107426		return nil, err
107427	}
107428	ret := &Policy{
107429		ServerResponse: googleapi.ServerResponse{
107430			Header:         res.Header,
107431			HTTPStatusCode: res.StatusCode,
107432		},
107433	}
107434	target := &ret
107435	if err := gensupport.DecodeResponse(target, res); err != nil {
107436		return nil, err
107437	}
107438	return ret, nil
107439	// {
107440	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
107441	//   "httpMethod": "POST",
107442	//   "id": "compute.nodeGroups.setIamPolicy",
107443	//   "parameterOrder": [
107444	//     "project",
107445	//     "zone",
107446	//     "resource"
107447	//   ],
107448	//   "parameters": {
107449	//     "project": {
107450	//       "description": "Project ID for this request.",
107451	//       "location": "path",
107452	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107453	//       "required": true,
107454	//       "type": "string"
107455	//     },
107456	//     "resource": {
107457	//       "description": "Name or id of the resource for this request.",
107458	//       "location": "path",
107459	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107460	//       "required": true,
107461	//       "type": "string"
107462	//     },
107463	//     "zone": {
107464	//       "description": "The name of the zone for this request.",
107465	//       "location": "path",
107466	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107467	//       "required": true,
107468	//       "type": "string"
107469	//     }
107470	//   },
107471	//   "path": "{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy",
107472	//   "request": {
107473	//     "$ref": "ZoneSetPolicyRequest"
107474	//   },
107475	//   "response": {
107476	//     "$ref": "Policy"
107477	//   },
107478	//   "scopes": [
107479	//     "https://www.googleapis.com/auth/cloud-platform",
107480	//     "https://www.googleapis.com/auth/compute"
107481	//   ]
107482	// }
107483
107484}
107485
107486// method id "compute.nodeGroups.setNodeTemplate":
107487
107488type NodeGroupsSetNodeTemplateCall struct {
107489	s                                *Service
107490	project                          string
107491	zone                             string
107492	nodeGroup                        string
107493	nodegroupssetnodetemplaterequest *NodeGroupsSetNodeTemplateRequest
107494	urlParams_                       gensupport.URLParams
107495	ctx_                             context.Context
107496	header_                          http.Header
107497}
107498
107499// SetNodeTemplate: Updates the node template of the node group.
107500func (r *NodeGroupsService) SetNodeTemplate(project string, zone string, nodeGroup string, nodegroupssetnodetemplaterequest *NodeGroupsSetNodeTemplateRequest) *NodeGroupsSetNodeTemplateCall {
107501	c := &NodeGroupsSetNodeTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107502	c.project = project
107503	c.zone = zone
107504	c.nodeGroup = nodeGroup
107505	c.nodegroupssetnodetemplaterequest = nodegroupssetnodetemplaterequest
107506	return c
107507}
107508
107509// RequestId sets the optional parameter "requestId": An optional
107510// request ID to identify requests. Specify a unique request ID so that
107511// if you must retry your request, the server will know to ignore the
107512// request if it has already been completed.
107513//
107514// For example, consider a situation where you make an initial request
107515// and the request times out. If you make the request again with the
107516// same request ID, the server can check if original operation with the
107517// same request ID was received, and if so, will ignore the second
107518// request. This prevents clients from accidentally creating duplicate
107519// commitments.
107520//
107521// The request ID must be a valid UUID with the exception that zero UUID
107522// is not supported (00000000-0000-0000-0000-000000000000).
107523func (c *NodeGroupsSetNodeTemplateCall) RequestId(requestId string) *NodeGroupsSetNodeTemplateCall {
107524	c.urlParams_.Set("requestId", requestId)
107525	return c
107526}
107527
107528// Fields allows partial responses to be retrieved. See
107529// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107530// for more information.
107531func (c *NodeGroupsSetNodeTemplateCall) Fields(s ...googleapi.Field) *NodeGroupsSetNodeTemplateCall {
107532	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107533	return c
107534}
107535
107536// Context sets the context to be used in this call's Do method. Any
107537// pending HTTP request will be aborted if the provided context is
107538// canceled.
107539func (c *NodeGroupsSetNodeTemplateCall) Context(ctx context.Context) *NodeGroupsSetNodeTemplateCall {
107540	c.ctx_ = ctx
107541	return c
107542}
107543
107544// Header returns an http.Header that can be modified by the caller to
107545// add HTTP headers to the request.
107546func (c *NodeGroupsSetNodeTemplateCall) Header() http.Header {
107547	if c.header_ == nil {
107548		c.header_ = make(http.Header)
107549	}
107550	return c.header_
107551}
107552
107553func (c *NodeGroupsSetNodeTemplateCall) doRequest(alt string) (*http.Response, error) {
107554	reqHeaders := make(http.Header)
107555	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
107556	for k, v := range c.header_ {
107557		reqHeaders[k] = v
107558	}
107559	reqHeaders.Set("User-Agent", c.s.userAgent())
107560	var body io.Reader = nil
107561	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupssetnodetemplaterequest)
107562	if err != nil {
107563		return nil, err
107564	}
107565	reqHeaders.Set("Content-Type", "application/json")
107566	c.urlParams_.Set("alt", alt)
107567	c.urlParams_.Set("prettyPrint", "false")
107568	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate")
107569	urls += "?" + c.urlParams_.Encode()
107570	req, err := http.NewRequest("POST", urls, body)
107571	if err != nil {
107572		return nil, err
107573	}
107574	req.Header = reqHeaders
107575	googleapi.Expand(req.URL, map[string]string{
107576		"project":   c.project,
107577		"zone":      c.zone,
107578		"nodeGroup": c.nodeGroup,
107579	})
107580	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107581}
107582
107583// Do executes the "compute.nodeGroups.setNodeTemplate" call.
107584// Exactly one of *Operation or error will be non-nil. Any non-2xx
107585// status code is an error. Response headers are in either
107586// *Operation.ServerResponse.Header or (if a response was returned at
107587// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107588// to check whether the returned error was because
107589// http.StatusNotModified was returned.
107590func (c *NodeGroupsSetNodeTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107591	gensupport.SetOptions(c.urlParams_, opts...)
107592	res, err := c.doRequest("json")
107593	if res != nil && res.StatusCode == http.StatusNotModified {
107594		if res.Body != nil {
107595			res.Body.Close()
107596		}
107597		return nil, &googleapi.Error{
107598			Code:   res.StatusCode,
107599			Header: res.Header,
107600		}
107601	}
107602	if err != nil {
107603		return nil, err
107604	}
107605	defer googleapi.CloseBody(res)
107606	if err := googleapi.CheckResponse(res); err != nil {
107607		return nil, err
107608	}
107609	ret := &Operation{
107610		ServerResponse: googleapi.ServerResponse{
107611			Header:         res.Header,
107612			HTTPStatusCode: res.StatusCode,
107613		},
107614	}
107615	target := &ret
107616	if err := gensupport.DecodeResponse(target, res); err != nil {
107617		return nil, err
107618	}
107619	return ret, nil
107620	// {
107621	//   "description": "Updates the node template of the node group.",
107622	//   "httpMethod": "POST",
107623	//   "id": "compute.nodeGroups.setNodeTemplate",
107624	//   "parameterOrder": [
107625	//     "project",
107626	//     "zone",
107627	//     "nodeGroup"
107628	//   ],
107629	//   "parameters": {
107630	//     "nodeGroup": {
107631	//       "description": "Name of the NodeGroup resource to update.",
107632	//       "location": "path",
107633	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107634	//       "required": true,
107635	//       "type": "string"
107636	//     },
107637	//     "project": {
107638	//       "description": "Project ID for this request.",
107639	//       "location": "path",
107640	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107641	//       "required": true,
107642	//       "type": "string"
107643	//     },
107644	//     "requestId": {
107645	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
107646	//       "location": "query",
107647	//       "type": "string"
107648	//     },
107649	//     "zone": {
107650	//       "description": "The name of the zone for this request.",
107651	//       "location": "path",
107652	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107653	//       "required": true,
107654	//       "type": "string"
107655	//     }
107656	//   },
107657	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate",
107658	//   "request": {
107659	//     "$ref": "NodeGroupsSetNodeTemplateRequest"
107660	//   },
107661	//   "response": {
107662	//     "$ref": "Operation"
107663	//   },
107664	//   "scopes": [
107665	//     "https://www.googleapis.com/auth/cloud-platform",
107666	//     "https://www.googleapis.com/auth/compute"
107667	//   ]
107668	// }
107669
107670}
107671
107672// method id "compute.nodeGroups.testIamPermissions":
107673
107674type NodeGroupsTestIamPermissionsCall struct {
107675	s                      *Service
107676	project                string
107677	zone                   string
107678	resource               string
107679	testpermissionsrequest *TestPermissionsRequest
107680	urlParams_             gensupport.URLParams
107681	ctx_                   context.Context
107682	header_                http.Header
107683}
107684
107685// TestIamPermissions: Returns permissions that a caller has on the
107686// specified resource.
107687func (r *NodeGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *NodeGroupsTestIamPermissionsCall {
107688	c := &NodeGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107689	c.project = project
107690	c.zone = zone
107691	c.resource = resource
107692	c.testpermissionsrequest = testpermissionsrequest
107693	return c
107694}
107695
107696// Fields allows partial responses to be retrieved. See
107697// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107698// for more information.
107699func (c *NodeGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NodeGroupsTestIamPermissionsCall {
107700	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107701	return c
107702}
107703
107704// Context sets the context to be used in this call's Do method. Any
107705// pending HTTP request will be aborted if the provided context is
107706// canceled.
107707func (c *NodeGroupsTestIamPermissionsCall) Context(ctx context.Context) *NodeGroupsTestIamPermissionsCall {
107708	c.ctx_ = ctx
107709	return c
107710}
107711
107712// Header returns an http.Header that can be modified by the caller to
107713// add HTTP headers to the request.
107714func (c *NodeGroupsTestIamPermissionsCall) Header() http.Header {
107715	if c.header_ == nil {
107716		c.header_ = make(http.Header)
107717	}
107718	return c.header_
107719}
107720
107721func (c *NodeGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
107722	reqHeaders := make(http.Header)
107723	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
107724	for k, v := range c.header_ {
107725		reqHeaders[k] = v
107726	}
107727	reqHeaders.Set("User-Agent", c.s.userAgent())
107728	var body io.Reader = nil
107729	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
107730	if err != nil {
107731		return nil, err
107732	}
107733	reqHeaders.Set("Content-Type", "application/json")
107734	c.urlParams_.Set("alt", alt)
107735	c.urlParams_.Set("prettyPrint", "false")
107736	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions")
107737	urls += "?" + c.urlParams_.Encode()
107738	req, err := http.NewRequest("POST", urls, body)
107739	if err != nil {
107740		return nil, err
107741	}
107742	req.Header = reqHeaders
107743	googleapi.Expand(req.URL, map[string]string{
107744		"project":  c.project,
107745		"zone":     c.zone,
107746		"resource": c.resource,
107747	})
107748	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107749}
107750
107751// Do executes the "compute.nodeGroups.testIamPermissions" call.
107752// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
107753// non-2xx status code is an error. Response headers are in either
107754// *TestPermissionsResponse.ServerResponse.Header or (if a response was
107755// returned at all) in error.(*googleapi.Error).Header. Use
107756// googleapi.IsNotModified to check whether the returned error was
107757// because http.StatusNotModified was returned.
107758func (c *NodeGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
107759	gensupport.SetOptions(c.urlParams_, opts...)
107760	res, err := c.doRequest("json")
107761	if res != nil && res.StatusCode == http.StatusNotModified {
107762		if res.Body != nil {
107763			res.Body.Close()
107764		}
107765		return nil, &googleapi.Error{
107766			Code:   res.StatusCode,
107767			Header: res.Header,
107768		}
107769	}
107770	if err != nil {
107771		return nil, err
107772	}
107773	defer googleapi.CloseBody(res)
107774	if err := googleapi.CheckResponse(res); err != nil {
107775		return nil, err
107776	}
107777	ret := &TestPermissionsResponse{
107778		ServerResponse: googleapi.ServerResponse{
107779			Header:         res.Header,
107780			HTTPStatusCode: res.StatusCode,
107781		},
107782	}
107783	target := &ret
107784	if err := gensupport.DecodeResponse(target, res); err != nil {
107785		return nil, err
107786	}
107787	return ret, nil
107788	// {
107789	//   "description": "Returns permissions that a caller has on the specified resource.",
107790	//   "httpMethod": "POST",
107791	//   "id": "compute.nodeGroups.testIamPermissions",
107792	//   "parameterOrder": [
107793	//     "project",
107794	//     "zone",
107795	//     "resource"
107796	//   ],
107797	//   "parameters": {
107798	//     "project": {
107799	//       "description": "Project ID for this request.",
107800	//       "location": "path",
107801	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107802	//       "required": true,
107803	//       "type": "string"
107804	//     },
107805	//     "resource": {
107806	//       "description": "Name or id of the resource for this request.",
107807	//       "location": "path",
107808	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107809	//       "required": true,
107810	//       "type": "string"
107811	//     },
107812	//     "zone": {
107813	//       "description": "The name of the zone for this request.",
107814	//       "location": "path",
107815	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107816	//       "required": true,
107817	//       "type": "string"
107818	//     }
107819	//   },
107820	//   "path": "{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions",
107821	//   "request": {
107822	//     "$ref": "TestPermissionsRequest"
107823	//   },
107824	//   "response": {
107825	//     "$ref": "TestPermissionsResponse"
107826	//   },
107827	//   "scopes": [
107828	//     "https://www.googleapis.com/auth/cloud-platform",
107829	//     "https://www.googleapis.com/auth/compute",
107830	//     "https://www.googleapis.com/auth/compute.readonly"
107831	//   ]
107832	// }
107833
107834}
107835
107836// method id "compute.nodeTemplates.aggregatedList":
107837
107838type NodeTemplatesAggregatedListCall struct {
107839	s            *Service
107840	project      string
107841	urlParams_   gensupport.URLParams
107842	ifNoneMatch_ string
107843	ctx_         context.Context
107844	header_      http.Header
107845}
107846
107847// AggregatedList: Retrieves an aggregated list of node templates.
107848func (r *NodeTemplatesService) AggregatedList(project string) *NodeTemplatesAggregatedListCall {
107849	c := &NodeTemplatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107850	c.project = project
107851	return c
107852}
107853
107854// Filter sets the optional parameter "filter": A filter expression that
107855// filters resources listed in the response. The expression must specify
107856// the field name, a comparison operator, and the value that you want to
107857// use for filtering. The value must be a string, a number, or a
107858// boolean. The comparison operator must be either =, !=, >, or <.
107859//
107860// For example, if you are filtering Compute Engine instances, you can
107861// exclude instances named example-instance by specifying name !=
107862// example-instance.
107863//
107864// You can also filter nested fields. For example, you could specify
107865// scheduling.automaticRestart = false to include instances only if they
107866// are not scheduled for automatic restarts. You can use filtering on
107867// nested fields to filter based on resource labels.
107868//
107869// To filter on multiple expressions, provide each separate expression
107870// within parentheses. For example, (scheduling.automaticRestart = true)
107871// (cpuPlatform = "Intel Skylake"). By default, each expression is an
107872// AND expression. However, you can include AND and OR expressions
107873// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
107874// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
107875// true).
107876func (c *NodeTemplatesAggregatedListCall) Filter(filter string) *NodeTemplatesAggregatedListCall {
107877	c.urlParams_.Set("filter", filter)
107878	return c
107879}
107880
107881// IncludeAllScopes sets the optional parameter "includeAllScopes":
107882// Indicates whether every visible scope for each scope type (zone,
107883// region, global) should be included in the response. For new resource
107884// types added after this field, the flag has no effect as new resource
107885// types will always include every visible scope for each scope type in
107886// response. For resource types which predate this field, if this flag
107887// is omitted or false, only scopes of the scope types where the
107888// resource type is expected to be found will be included.
107889func (c *NodeTemplatesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeTemplatesAggregatedListCall {
107890	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
107891	return c
107892}
107893
107894// MaxResults sets the optional parameter "maxResults": The maximum
107895// number of results per page that should be returned. If the number of
107896// available results is larger than maxResults, Compute Engine returns a
107897// nextPageToken that can be used to get the next page of results in
107898// subsequent list requests. Acceptable values are 0 to 500, inclusive.
107899// (Default: 500)
107900func (c *NodeTemplatesAggregatedListCall) MaxResults(maxResults int64) *NodeTemplatesAggregatedListCall {
107901	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
107902	return c
107903}
107904
107905// OrderBy sets the optional parameter "orderBy": Sorts list results by
107906// a certain order. By default, results are returned in alphanumerical
107907// order based on the resource name.
107908//
107909// You can also sort results in descending order based on the creation
107910// timestamp using orderBy="creationTimestamp desc". This sorts results
107911// based on the creationTimestamp field in reverse chronological order
107912// (newest result first). Use this to sort resources like operations so
107913// that the newest operation is returned first.
107914//
107915// Currently, only sorting by name or creationTimestamp desc is
107916// supported.
107917func (c *NodeTemplatesAggregatedListCall) OrderBy(orderBy string) *NodeTemplatesAggregatedListCall {
107918	c.urlParams_.Set("orderBy", orderBy)
107919	return c
107920}
107921
107922// PageToken sets the optional parameter "pageToken": Specifies a page
107923// token to use. Set pageToken to the nextPageToken returned by a
107924// previous list request to get the next page of results.
107925func (c *NodeTemplatesAggregatedListCall) PageToken(pageToken string) *NodeTemplatesAggregatedListCall {
107926	c.urlParams_.Set("pageToken", pageToken)
107927	return c
107928}
107929
107930// Fields allows partial responses to be retrieved. See
107931// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107932// for more information.
107933func (c *NodeTemplatesAggregatedListCall) Fields(s ...googleapi.Field) *NodeTemplatesAggregatedListCall {
107934	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107935	return c
107936}
107937
107938// IfNoneMatch sets the optional parameter which makes the operation
107939// fail if the object's ETag matches the given value. This is useful for
107940// getting updates only after the object has changed since the last
107941// request. Use googleapi.IsNotModified to check whether the response
107942// error from Do is the result of In-None-Match.
107943func (c *NodeTemplatesAggregatedListCall) IfNoneMatch(entityTag string) *NodeTemplatesAggregatedListCall {
107944	c.ifNoneMatch_ = entityTag
107945	return c
107946}
107947
107948// Context sets the context to be used in this call's Do method. Any
107949// pending HTTP request will be aborted if the provided context is
107950// canceled.
107951func (c *NodeTemplatesAggregatedListCall) Context(ctx context.Context) *NodeTemplatesAggregatedListCall {
107952	c.ctx_ = ctx
107953	return c
107954}
107955
107956// Header returns an http.Header that can be modified by the caller to
107957// add HTTP headers to the request.
107958func (c *NodeTemplatesAggregatedListCall) Header() http.Header {
107959	if c.header_ == nil {
107960		c.header_ = make(http.Header)
107961	}
107962	return c.header_
107963}
107964
107965func (c *NodeTemplatesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
107966	reqHeaders := make(http.Header)
107967	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
107968	for k, v := range c.header_ {
107969		reqHeaders[k] = v
107970	}
107971	reqHeaders.Set("User-Agent", c.s.userAgent())
107972	if c.ifNoneMatch_ != "" {
107973		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
107974	}
107975	var body io.Reader = nil
107976	c.urlParams_.Set("alt", alt)
107977	c.urlParams_.Set("prettyPrint", "false")
107978	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/nodeTemplates")
107979	urls += "?" + c.urlParams_.Encode()
107980	req, err := http.NewRequest("GET", urls, body)
107981	if err != nil {
107982		return nil, err
107983	}
107984	req.Header = reqHeaders
107985	googleapi.Expand(req.URL, map[string]string{
107986		"project": c.project,
107987	})
107988	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107989}
107990
107991// Do executes the "compute.nodeTemplates.aggregatedList" call.
107992// Exactly one of *NodeTemplateAggregatedList or error will be non-nil.
107993// Any non-2xx status code is an error. Response headers are in either
107994// *NodeTemplateAggregatedList.ServerResponse.Header or (if a response
107995// was returned at all) in error.(*googleapi.Error).Header. Use
107996// googleapi.IsNotModified to check whether the returned error was
107997// because http.StatusNotModified was returned.
107998func (c *NodeTemplatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateAggregatedList, error) {
107999	gensupport.SetOptions(c.urlParams_, opts...)
108000	res, err := c.doRequest("json")
108001	if res != nil && res.StatusCode == http.StatusNotModified {
108002		if res.Body != nil {
108003			res.Body.Close()
108004		}
108005		return nil, &googleapi.Error{
108006			Code:   res.StatusCode,
108007			Header: res.Header,
108008		}
108009	}
108010	if err != nil {
108011		return nil, err
108012	}
108013	defer googleapi.CloseBody(res)
108014	if err := googleapi.CheckResponse(res); err != nil {
108015		return nil, err
108016	}
108017	ret := &NodeTemplateAggregatedList{
108018		ServerResponse: googleapi.ServerResponse{
108019			Header:         res.Header,
108020			HTTPStatusCode: res.StatusCode,
108021		},
108022	}
108023	target := &ret
108024	if err := gensupport.DecodeResponse(target, res); err != nil {
108025		return nil, err
108026	}
108027	return ret, nil
108028	// {
108029	//   "description": "Retrieves an aggregated list of node templates.",
108030	//   "httpMethod": "GET",
108031	//   "id": "compute.nodeTemplates.aggregatedList",
108032	//   "parameterOrder": [
108033	//     "project"
108034	//   ],
108035	//   "parameters": {
108036	//     "filter": {
108037	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
108038	//       "location": "query",
108039	//       "type": "string"
108040	//     },
108041	//     "includeAllScopes": {
108042	//       "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.",
108043	//       "location": "query",
108044	//       "type": "boolean"
108045	//     },
108046	//     "maxResults": {
108047	//       "default": "500",
108048	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
108049	//       "format": "uint32",
108050	//       "location": "query",
108051	//       "minimum": "0",
108052	//       "type": "integer"
108053	//     },
108054	//     "orderBy": {
108055	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
108056	//       "location": "query",
108057	//       "type": "string"
108058	//     },
108059	//     "pageToken": {
108060	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
108061	//       "location": "query",
108062	//       "type": "string"
108063	//     },
108064	//     "project": {
108065	//       "description": "Project ID for this request.",
108066	//       "location": "path",
108067	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108068	//       "required": true,
108069	//       "type": "string"
108070	//     }
108071	//   },
108072	//   "path": "{project}/aggregated/nodeTemplates",
108073	//   "response": {
108074	//     "$ref": "NodeTemplateAggregatedList"
108075	//   },
108076	//   "scopes": [
108077	//     "https://www.googleapis.com/auth/cloud-platform",
108078	//     "https://www.googleapis.com/auth/compute",
108079	//     "https://www.googleapis.com/auth/compute.readonly"
108080	//   ]
108081	// }
108082
108083}
108084
108085// Pages invokes f for each page of results.
108086// A non-nil error returned from f will halt the iteration.
108087// The provided context supersedes any context provided to the Context method.
108088func (c *NodeTemplatesAggregatedListCall) Pages(ctx context.Context, f func(*NodeTemplateAggregatedList) error) error {
108089	c.ctx_ = ctx
108090	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
108091	for {
108092		x, err := c.Do()
108093		if err != nil {
108094			return err
108095		}
108096		if err := f(x); err != nil {
108097			return err
108098		}
108099		if x.NextPageToken == "" {
108100			return nil
108101		}
108102		c.PageToken(x.NextPageToken)
108103	}
108104}
108105
108106// method id "compute.nodeTemplates.delete":
108107
108108type NodeTemplatesDeleteCall struct {
108109	s            *Service
108110	project      string
108111	region       string
108112	nodeTemplate string
108113	urlParams_   gensupport.URLParams
108114	ctx_         context.Context
108115	header_      http.Header
108116}
108117
108118// Delete: Deletes the specified NodeTemplate resource.
108119func (r *NodeTemplatesService) Delete(project string, region string, nodeTemplate string) *NodeTemplatesDeleteCall {
108120	c := &NodeTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108121	c.project = project
108122	c.region = region
108123	c.nodeTemplate = nodeTemplate
108124	return c
108125}
108126
108127// RequestId sets the optional parameter "requestId": An optional
108128// request ID to identify requests. Specify a unique request ID so that
108129// if you must retry your request, the server will know to ignore the
108130// request if it has already been completed.
108131//
108132// For example, consider a situation where you make an initial request
108133// and the request times out. If you make the request again with the
108134// same request ID, the server can check if original operation with the
108135// same request ID was received, and if so, will ignore the second
108136// request. This prevents clients from accidentally creating duplicate
108137// commitments.
108138//
108139// The request ID must be a valid UUID with the exception that zero UUID
108140// is not supported (00000000-0000-0000-0000-000000000000).
108141func (c *NodeTemplatesDeleteCall) RequestId(requestId string) *NodeTemplatesDeleteCall {
108142	c.urlParams_.Set("requestId", requestId)
108143	return c
108144}
108145
108146// Fields allows partial responses to be retrieved. See
108147// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108148// for more information.
108149func (c *NodeTemplatesDeleteCall) Fields(s ...googleapi.Field) *NodeTemplatesDeleteCall {
108150	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108151	return c
108152}
108153
108154// Context sets the context to be used in this call's Do method. Any
108155// pending HTTP request will be aborted if the provided context is
108156// canceled.
108157func (c *NodeTemplatesDeleteCall) Context(ctx context.Context) *NodeTemplatesDeleteCall {
108158	c.ctx_ = ctx
108159	return c
108160}
108161
108162// Header returns an http.Header that can be modified by the caller to
108163// add HTTP headers to the request.
108164func (c *NodeTemplatesDeleteCall) Header() http.Header {
108165	if c.header_ == nil {
108166		c.header_ = make(http.Header)
108167	}
108168	return c.header_
108169}
108170
108171func (c *NodeTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) {
108172	reqHeaders := make(http.Header)
108173	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
108174	for k, v := range c.header_ {
108175		reqHeaders[k] = v
108176	}
108177	reqHeaders.Set("User-Agent", c.s.userAgent())
108178	var body io.Reader = nil
108179	c.urlParams_.Set("alt", alt)
108180	c.urlParams_.Set("prettyPrint", "false")
108181	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{nodeTemplate}")
108182	urls += "?" + c.urlParams_.Encode()
108183	req, err := http.NewRequest("DELETE", urls, body)
108184	if err != nil {
108185		return nil, err
108186	}
108187	req.Header = reqHeaders
108188	googleapi.Expand(req.URL, map[string]string{
108189		"project":      c.project,
108190		"region":       c.region,
108191		"nodeTemplate": c.nodeTemplate,
108192	})
108193	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108194}
108195
108196// Do executes the "compute.nodeTemplates.delete" call.
108197// Exactly one of *Operation or error will be non-nil. Any non-2xx
108198// status code is an error. Response headers are in either
108199// *Operation.ServerResponse.Header or (if a response was returned at
108200// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108201// to check whether the returned error was because
108202// http.StatusNotModified was returned.
108203func (c *NodeTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
108204	gensupport.SetOptions(c.urlParams_, opts...)
108205	res, err := c.doRequest("json")
108206	if res != nil && res.StatusCode == http.StatusNotModified {
108207		if res.Body != nil {
108208			res.Body.Close()
108209		}
108210		return nil, &googleapi.Error{
108211			Code:   res.StatusCode,
108212			Header: res.Header,
108213		}
108214	}
108215	if err != nil {
108216		return nil, err
108217	}
108218	defer googleapi.CloseBody(res)
108219	if err := googleapi.CheckResponse(res); err != nil {
108220		return nil, err
108221	}
108222	ret := &Operation{
108223		ServerResponse: googleapi.ServerResponse{
108224			Header:         res.Header,
108225			HTTPStatusCode: res.StatusCode,
108226		},
108227	}
108228	target := &ret
108229	if err := gensupport.DecodeResponse(target, res); err != nil {
108230		return nil, err
108231	}
108232	return ret, nil
108233	// {
108234	//   "description": "Deletes the specified NodeTemplate resource.",
108235	//   "httpMethod": "DELETE",
108236	//   "id": "compute.nodeTemplates.delete",
108237	//   "parameterOrder": [
108238	//     "project",
108239	//     "region",
108240	//     "nodeTemplate"
108241	//   ],
108242	//   "parameters": {
108243	//     "nodeTemplate": {
108244	//       "description": "Name of the NodeTemplate resource to delete.",
108245	//       "location": "path",
108246	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
108247	//       "required": true,
108248	//       "type": "string"
108249	//     },
108250	//     "project": {
108251	//       "description": "Project ID for this request.",
108252	//       "location": "path",
108253	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108254	//       "required": true,
108255	//       "type": "string"
108256	//     },
108257	//     "region": {
108258	//       "description": "The name of the region for this request.",
108259	//       "location": "path",
108260	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108261	//       "required": true,
108262	//       "type": "string"
108263	//     },
108264	//     "requestId": {
108265	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
108266	//       "location": "query",
108267	//       "type": "string"
108268	//     }
108269	//   },
108270	//   "path": "{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
108271	//   "response": {
108272	//     "$ref": "Operation"
108273	//   },
108274	//   "scopes": [
108275	//     "https://www.googleapis.com/auth/cloud-platform",
108276	//     "https://www.googleapis.com/auth/compute"
108277	//   ]
108278	// }
108279
108280}
108281
108282// method id "compute.nodeTemplates.get":
108283
108284type NodeTemplatesGetCall struct {
108285	s            *Service
108286	project      string
108287	region       string
108288	nodeTemplate string
108289	urlParams_   gensupport.URLParams
108290	ifNoneMatch_ string
108291	ctx_         context.Context
108292	header_      http.Header
108293}
108294
108295// Get: Returns the specified node template. Gets a list of available
108296// node templates by making a list() request.
108297func (r *NodeTemplatesService) Get(project string, region string, nodeTemplate string) *NodeTemplatesGetCall {
108298	c := &NodeTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108299	c.project = project
108300	c.region = region
108301	c.nodeTemplate = nodeTemplate
108302	return c
108303}
108304
108305// Fields allows partial responses to be retrieved. See
108306// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108307// for more information.
108308func (c *NodeTemplatesGetCall) Fields(s ...googleapi.Field) *NodeTemplatesGetCall {
108309	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108310	return c
108311}
108312
108313// IfNoneMatch sets the optional parameter which makes the operation
108314// fail if the object's ETag matches the given value. This is useful for
108315// getting updates only after the object has changed since the last
108316// request. Use googleapi.IsNotModified to check whether the response
108317// error from Do is the result of In-None-Match.
108318func (c *NodeTemplatesGetCall) IfNoneMatch(entityTag string) *NodeTemplatesGetCall {
108319	c.ifNoneMatch_ = entityTag
108320	return c
108321}
108322
108323// Context sets the context to be used in this call's Do method. Any
108324// pending HTTP request will be aborted if the provided context is
108325// canceled.
108326func (c *NodeTemplatesGetCall) Context(ctx context.Context) *NodeTemplatesGetCall {
108327	c.ctx_ = ctx
108328	return c
108329}
108330
108331// Header returns an http.Header that can be modified by the caller to
108332// add HTTP headers to the request.
108333func (c *NodeTemplatesGetCall) Header() http.Header {
108334	if c.header_ == nil {
108335		c.header_ = make(http.Header)
108336	}
108337	return c.header_
108338}
108339
108340func (c *NodeTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
108341	reqHeaders := make(http.Header)
108342	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
108343	for k, v := range c.header_ {
108344		reqHeaders[k] = v
108345	}
108346	reqHeaders.Set("User-Agent", c.s.userAgent())
108347	if c.ifNoneMatch_ != "" {
108348		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108349	}
108350	var body io.Reader = nil
108351	c.urlParams_.Set("alt", alt)
108352	c.urlParams_.Set("prettyPrint", "false")
108353	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{nodeTemplate}")
108354	urls += "?" + c.urlParams_.Encode()
108355	req, err := http.NewRequest("GET", urls, body)
108356	if err != nil {
108357		return nil, err
108358	}
108359	req.Header = reqHeaders
108360	googleapi.Expand(req.URL, map[string]string{
108361		"project":      c.project,
108362		"region":       c.region,
108363		"nodeTemplate": c.nodeTemplate,
108364	})
108365	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108366}
108367
108368// Do executes the "compute.nodeTemplates.get" call.
108369// Exactly one of *NodeTemplate or error will be non-nil. Any non-2xx
108370// status code is an error. Response headers are in either
108371// *NodeTemplate.ServerResponse.Header or (if a response was returned at
108372// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108373// to check whether the returned error was because
108374// http.StatusNotModified was returned.
108375func (c *NodeTemplatesGetCall) Do(opts ...googleapi.CallOption) (*NodeTemplate, error) {
108376	gensupport.SetOptions(c.urlParams_, opts...)
108377	res, err := c.doRequest("json")
108378	if res != nil && res.StatusCode == http.StatusNotModified {
108379		if res.Body != nil {
108380			res.Body.Close()
108381		}
108382		return nil, &googleapi.Error{
108383			Code:   res.StatusCode,
108384			Header: res.Header,
108385		}
108386	}
108387	if err != nil {
108388		return nil, err
108389	}
108390	defer googleapi.CloseBody(res)
108391	if err := googleapi.CheckResponse(res); err != nil {
108392		return nil, err
108393	}
108394	ret := &NodeTemplate{
108395		ServerResponse: googleapi.ServerResponse{
108396			Header:         res.Header,
108397			HTTPStatusCode: res.StatusCode,
108398		},
108399	}
108400	target := &ret
108401	if err := gensupport.DecodeResponse(target, res); err != nil {
108402		return nil, err
108403	}
108404	return ret, nil
108405	// {
108406	//   "description": "Returns the specified node template. Gets a list of available node templates by making a list() request.",
108407	//   "httpMethod": "GET",
108408	//   "id": "compute.nodeTemplates.get",
108409	//   "parameterOrder": [
108410	//     "project",
108411	//     "region",
108412	//     "nodeTemplate"
108413	//   ],
108414	//   "parameters": {
108415	//     "nodeTemplate": {
108416	//       "description": "Name of the node template to return.",
108417	//       "location": "path",
108418	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
108419	//       "required": true,
108420	//       "type": "string"
108421	//     },
108422	//     "project": {
108423	//       "description": "Project ID for this request.",
108424	//       "location": "path",
108425	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108426	//       "required": true,
108427	//       "type": "string"
108428	//     },
108429	//     "region": {
108430	//       "description": "The name of the region for this request.",
108431	//       "location": "path",
108432	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108433	//       "required": true,
108434	//       "type": "string"
108435	//     }
108436	//   },
108437	//   "path": "{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
108438	//   "response": {
108439	//     "$ref": "NodeTemplate"
108440	//   },
108441	//   "scopes": [
108442	//     "https://www.googleapis.com/auth/cloud-platform",
108443	//     "https://www.googleapis.com/auth/compute",
108444	//     "https://www.googleapis.com/auth/compute.readonly"
108445	//   ]
108446	// }
108447
108448}
108449
108450// method id "compute.nodeTemplates.getIamPolicy":
108451
108452type NodeTemplatesGetIamPolicyCall struct {
108453	s            *Service
108454	project      string
108455	region       string
108456	resource     string
108457	urlParams_   gensupport.URLParams
108458	ifNoneMatch_ string
108459	ctx_         context.Context
108460	header_      http.Header
108461}
108462
108463// GetIamPolicy: Gets the access control policy for a resource. May be
108464// empty if no such policy or resource exists.
108465func (r *NodeTemplatesService) GetIamPolicy(project string, region string, resource string) *NodeTemplatesGetIamPolicyCall {
108466	c := &NodeTemplatesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108467	c.project = project
108468	c.region = region
108469	c.resource = resource
108470	return c
108471}
108472
108473// OptionsRequestedPolicyVersion sets the optional parameter
108474// "optionsRequestedPolicyVersion": Requested IAM Policy version.
108475func (c *NodeTemplatesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *NodeTemplatesGetIamPolicyCall {
108476	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
108477	return c
108478}
108479
108480// Fields allows partial responses to be retrieved. See
108481// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108482// for more information.
108483func (c *NodeTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTemplatesGetIamPolicyCall {
108484	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108485	return c
108486}
108487
108488// IfNoneMatch sets the optional parameter which makes the operation
108489// fail if the object's ETag matches the given value. This is useful for
108490// getting updates only after the object has changed since the last
108491// request. Use googleapi.IsNotModified to check whether the response
108492// error from Do is the result of In-None-Match.
108493func (c *NodeTemplatesGetIamPolicyCall) IfNoneMatch(entityTag string) *NodeTemplatesGetIamPolicyCall {
108494	c.ifNoneMatch_ = entityTag
108495	return c
108496}
108497
108498// Context sets the context to be used in this call's Do method. Any
108499// pending HTTP request will be aborted if the provided context is
108500// canceled.
108501func (c *NodeTemplatesGetIamPolicyCall) Context(ctx context.Context) *NodeTemplatesGetIamPolicyCall {
108502	c.ctx_ = ctx
108503	return c
108504}
108505
108506// Header returns an http.Header that can be modified by the caller to
108507// add HTTP headers to the request.
108508func (c *NodeTemplatesGetIamPolicyCall) Header() http.Header {
108509	if c.header_ == nil {
108510		c.header_ = make(http.Header)
108511	}
108512	return c.header_
108513}
108514
108515func (c *NodeTemplatesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
108516	reqHeaders := make(http.Header)
108517	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
108518	for k, v := range c.header_ {
108519		reqHeaders[k] = v
108520	}
108521	reqHeaders.Set("User-Agent", c.s.userAgent())
108522	if c.ifNoneMatch_ != "" {
108523		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108524	}
108525	var body io.Reader = nil
108526	c.urlParams_.Set("alt", alt)
108527	c.urlParams_.Set("prettyPrint", "false")
108528	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy")
108529	urls += "?" + c.urlParams_.Encode()
108530	req, err := http.NewRequest("GET", urls, body)
108531	if err != nil {
108532		return nil, err
108533	}
108534	req.Header = reqHeaders
108535	googleapi.Expand(req.URL, map[string]string{
108536		"project":  c.project,
108537		"region":   c.region,
108538		"resource": c.resource,
108539	})
108540	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108541}
108542
108543// Do executes the "compute.nodeTemplates.getIamPolicy" call.
108544// Exactly one of *Policy or error will be non-nil. Any non-2xx status
108545// code is an error. Response headers are in either
108546// *Policy.ServerResponse.Header or (if a response was returned at all)
108547// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
108548// check whether the returned error was because http.StatusNotModified
108549// was returned.
108550func (c *NodeTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
108551	gensupport.SetOptions(c.urlParams_, opts...)
108552	res, err := c.doRequest("json")
108553	if res != nil && res.StatusCode == http.StatusNotModified {
108554		if res.Body != nil {
108555			res.Body.Close()
108556		}
108557		return nil, &googleapi.Error{
108558			Code:   res.StatusCode,
108559			Header: res.Header,
108560		}
108561	}
108562	if err != nil {
108563		return nil, err
108564	}
108565	defer googleapi.CloseBody(res)
108566	if err := googleapi.CheckResponse(res); err != nil {
108567		return nil, err
108568	}
108569	ret := &Policy{
108570		ServerResponse: googleapi.ServerResponse{
108571			Header:         res.Header,
108572			HTTPStatusCode: res.StatusCode,
108573		},
108574	}
108575	target := &ret
108576	if err := gensupport.DecodeResponse(target, res); err != nil {
108577		return nil, err
108578	}
108579	return ret, nil
108580	// {
108581	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
108582	//   "httpMethod": "GET",
108583	//   "id": "compute.nodeTemplates.getIamPolicy",
108584	//   "parameterOrder": [
108585	//     "project",
108586	//     "region",
108587	//     "resource"
108588	//   ],
108589	//   "parameters": {
108590	//     "optionsRequestedPolicyVersion": {
108591	//       "description": "Requested IAM Policy version.",
108592	//       "format": "int32",
108593	//       "location": "query",
108594	//       "type": "integer"
108595	//     },
108596	//     "project": {
108597	//       "description": "Project ID for this request.",
108598	//       "location": "path",
108599	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108600	//       "required": true,
108601	//       "type": "string"
108602	//     },
108603	//     "region": {
108604	//       "description": "The name of the region for this request.",
108605	//       "location": "path",
108606	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108607	//       "required": true,
108608	//       "type": "string"
108609	//     },
108610	//     "resource": {
108611	//       "description": "Name or id of the resource for this request.",
108612	//       "location": "path",
108613	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
108614	//       "required": true,
108615	//       "type": "string"
108616	//     }
108617	//   },
108618	//   "path": "{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy",
108619	//   "response": {
108620	//     "$ref": "Policy"
108621	//   },
108622	//   "scopes": [
108623	//     "https://www.googleapis.com/auth/cloud-platform",
108624	//     "https://www.googleapis.com/auth/compute",
108625	//     "https://www.googleapis.com/auth/compute.readonly"
108626	//   ]
108627	// }
108628
108629}
108630
108631// method id "compute.nodeTemplates.insert":
108632
108633type NodeTemplatesInsertCall struct {
108634	s            *Service
108635	project      string
108636	region       string
108637	nodetemplate *NodeTemplate
108638	urlParams_   gensupport.URLParams
108639	ctx_         context.Context
108640	header_      http.Header
108641}
108642
108643// Insert: Creates a NodeTemplate resource in the specified project
108644// using the data included in the request.
108645func (r *NodeTemplatesService) Insert(project string, region string, nodetemplate *NodeTemplate) *NodeTemplatesInsertCall {
108646	c := &NodeTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108647	c.project = project
108648	c.region = region
108649	c.nodetemplate = nodetemplate
108650	return c
108651}
108652
108653// RequestId sets the optional parameter "requestId": An optional
108654// request ID to identify requests. Specify a unique request ID so that
108655// if you must retry your request, the server will know to ignore the
108656// request if it has already been completed.
108657//
108658// For example, consider a situation where you make an initial request
108659// and the request times out. If you make the request again with the
108660// same request ID, the server can check if original operation with the
108661// same request ID was received, and if so, will ignore the second
108662// request. This prevents clients from accidentally creating duplicate
108663// commitments.
108664//
108665// The request ID must be a valid UUID with the exception that zero UUID
108666// is not supported (00000000-0000-0000-0000-000000000000).
108667func (c *NodeTemplatesInsertCall) RequestId(requestId string) *NodeTemplatesInsertCall {
108668	c.urlParams_.Set("requestId", requestId)
108669	return c
108670}
108671
108672// Fields allows partial responses to be retrieved. See
108673// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108674// for more information.
108675func (c *NodeTemplatesInsertCall) Fields(s ...googleapi.Field) *NodeTemplatesInsertCall {
108676	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108677	return c
108678}
108679
108680// Context sets the context to be used in this call's Do method. Any
108681// pending HTTP request will be aborted if the provided context is
108682// canceled.
108683func (c *NodeTemplatesInsertCall) Context(ctx context.Context) *NodeTemplatesInsertCall {
108684	c.ctx_ = ctx
108685	return c
108686}
108687
108688// Header returns an http.Header that can be modified by the caller to
108689// add HTTP headers to the request.
108690func (c *NodeTemplatesInsertCall) Header() http.Header {
108691	if c.header_ == nil {
108692		c.header_ = make(http.Header)
108693	}
108694	return c.header_
108695}
108696
108697func (c *NodeTemplatesInsertCall) doRequest(alt string) (*http.Response, error) {
108698	reqHeaders := make(http.Header)
108699	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
108700	for k, v := range c.header_ {
108701		reqHeaders[k] = v
108702	}
108703	reqHeaders.Set("User-Agent", c.s.userAgent())
108704	var body io.Reader = nil
108705	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodetemplate)
108706	if err != nil {
108707		return nil, err
108708	}
108709	reqHeaders.Set("Content-Type", "application/json")
108710	c.urlParams_.Set("alt", alt)
108711	c.urlParams_.Set("prettyPrint", "false")
108712	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates")
108713	urls += "?" + c.urlParams_.Encode()
108714	req, err := http.NewRequest("POST", urls, body)
108715	if err != nil {
108716		return nil, err
108717	}
108718	req.Header = reqHeaders
108719	googleapi.Expand(req.URL, map[string]string{
108720		"project": c.project,
108721		"region":  c.region,
108722	})
108723	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108724}
108725
108726// Do executes the "compute.nodeTemplates.insert" call.
108727// Exactly one of *Operation or error will be non-nil. Any non-2xx
108728// status code is an error. Response headers are in either
108729// *Operation.ServerResponse.Header or (if a response was returned at
108730// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108731// to check whether the returned error was because
108732// http.StatusNotModified was returned.
108733func (c *NodeTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
108734	gensupport.SetOptions(c.urlParams_, opts...)
108735	res, err := c.doRequest("json")
108736	if res != nil && res.StatusCode == http.StatusNotModified {
108737		if res.Body != nil {
108738			res.Body.Close()
108739		}
108740		return nil, &googleapi.Error{
108741			Code:   res.StatusCode,
108742			Header: res.Header,
108743		}
108744	}
108745	if err != nil {
108746		return nil, err
108747	}
108748	defer googleapi.CloseBody(res)
108749	if err := googleapi.CheckResponse(res); err != nil {
108750		return nil, err
108751	}
108752	ret := &Operation{
108753		ServerResponse: googleapi.ServerResponse{
108754			Header:         res.Header,
108755			HTTPStatusCode: res.StatusCode,
108756		},
108757	}
108758	target := &ret
108759	if err := gensupport.DecodeResponse(target, res); err != nil {
108760		return nil, err
108761	}
108762	return ret, nil
108763	// {
108764	//   "description": "Creates a NodeTemplate resource in the specified project using the data included in the request.",
108765	//   "httpMethod": "POST",
108766	//   "id": "compute.nodeTemplates.insert",
108767	//   "parameterOrder": [
108768	//     "project",
108769	//     "region"
108770	//   ],
108771	//   "parameters": {
108772	//     "project": {
108773	//       "description": "Project ID for this request.",
108774	//       "location": "path",
108775	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108776	//       "required": true,
108777	//       "type": "string"
108778	//     },
108779	//     "region": {
108780	//       "description": "The name of the region for this request.",
108781	//       "location": "path",
108782	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108783	//       "required": true,
108784	//       "type": "string"
108785	//     },
108786	//     "requestId": {
108787	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
108788	//       "location": "query",
108789	//       "type": "string"
108790	//     }
108791	//   },
108792	//   "path": "{project}/regions/{region}/nodeTemplates",
108793	//   "request": {
108794	//     "$ref": "NodeTemplate"
108795	//   },
108796	//   "response": {
108797	//     "$ref": "Operation"
108798	//   },
108799	//   "scopes": [
108800	//     "https://www.googleapis.com/auth/cloud-platform",
108801	//     "https://www.googleapis.com/auth/compute"
108802	//   ]
108803	// }
108804
108805}
108806
108807// method id "compute.nodeTemplates.list":
108808
108809type NodeTemplatesListCall struct {
108810	s            *Service
108811	project      string
108812	region       string
108813	urlParams_   gensupport.URLParams
108814	ifNoneMatch_ string
108815	ctx_         context.Context
108816	header_      http.Header
108817}
108818
108819// List: Retrieves a list of node templates available to the specified
108820// project.
108821func (r *NodeTemplatesService) List(project string, region string) *NodeTemplatesListCall {
108822	c := &NodeTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108823	c.project = project
108824	c.region = region
108825	return c
108826}
108827
108828// Filter sets the optional parameter "filter": A filter expression that
108829// filters resources listed in the response. The expression must specify
108830// the field name, a comparison operator, and the value that you want to
108831// use for filtering. The value must be a string, a number, or a
108832// boolean. The comparison operator must be either =, !=, >, or <.
108833//
108834// For example, if you are filtering Compute Engine instances, you can
108835// exclude instances named example-instance by specifying name !=
108836// example-instance.
108837//
108838// You can also filter nested fields. For example, you could specify
108839// scheduling.automaticRestart = false to include instances only if they
108840// are not scheduled for automatic restarts. You can use filtering on
108841// nested fields to filter based on resource labels.
108842//
108843// To filter on multiple expressions, provide each separate expression
108844// within parentheses. For example, (scheduling.automaticRestart = true)
108845// (cpuPlatform = "Intel Skylake"). By default, each expression is an
108846// AND expression. However, you can include AND and OR expressions
108847// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
108848// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
108849// true).
108850func (c *NodeTemplatesListCall) Filter(filter string) *NodeTemplatesListCall {
108851	c.urlParams_.Set("filter", filter)
108852	return c
108853}
108854
108855// MaxResults sets the optional parameter "maxResults": The maximum
108856// number of results per page that should be returned. If the number of
108857// available results is larger than maxResults, Compute Engine returns a
108858// nextPageToken that can be used to get the next page of results in
108859// subsequent list requests. Acceptable values are 0 to 500, inclusive.
108860// (Default: 500)
108861func (c *NodeTemplatesListCall) MaxResults(maxResults int64) *NodeTemplatesListCall {
108862	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
108863	return c
108864}
108865
108866// OrderBy sets the optional parameter "orderBy": Sorts list results by
108867// a certain order. By default, results are returned in alphanumerical
108868// order based on the resource name.
108869//
108870// You can also sort results in descending order based on the creation
108871// timestamp using orderBy="creationTimestamp desc". This sorts results
108872// based on the creationTimestamp field in reverse chronological order
108873// (newest result first). Use this to sort resources like operations so
108874// that the newest operation is returned first.
108875//
108876// Currently, only sorting by name or creationTimestamp desc is
108877// supported.
108878func (c *NodeTemplatesListCall) OrderBy(orderBy string) *NodeTemplatesListCall {
108879	c.urlParams_.Set("orderBy", orderBy)
108880	return c
108881}
108882
108883// PageToken sets the optional parameter "pageToken": Specifies a page
108884// token to use. Set pageToken to the nextPageToken returned by a
108885// previous list request to get the next page of results.
108886func (c *NodeTemplatesListCall) PageToken(pageToken string) *NodeTemplatesListCall {
108887	c.urlParams_.Set("pageToken", pageToken)
108888	return c
108889}
108890
108891// Fields allows partial responses to be retrieved. See
108892// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108893// for more information.
108894func (c *NodeTemplatesListCall) Fields(s ...googleapi.Field) *NodeTemplatesListCall {
108895	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108896	return c
108897}
108898
108899// IfNoneMatch sets the optional parameter which makes the operation
108900// fail if the object's ETag matches the given value. This is useful for
108901// getting updates only after the object has changed since the last
108902// request. Use googleapi.IsNotModified to check whether the response
108903// error from Do is the result of In-None-Match.
108904func (c *NodeTemplatesListCall) IfNoneMatch(entityTag string) *NodeTemplatesListCall {
108905	c.ifNoneMatch_ = entityTag
108906	return c
108907}
108908
108909// Context sets the context to be used in this call's Do method. Any
108910// pending HTTP request will be aborted if the provided context is
108911// canceled.
108912func (c *NodeTemplatesListCall) Context(ctx context.Context) *NodeTemplatesListCall {
108913	c.ctx_ = ctx
108914	return c
108915}
108916
108917// Header returns an http.Header that can be modified by the caller to
108918// add HTTP headers to the request.
108919func (c *NodeTemplatesListCall) Header() http.Header {
108920	if c.header_ == nil {
108921		c.header_ = make(http.Header)
108922	}
108923	return c.header_
108924}
108925
108926func (c *NodeTemplatesListCall) doRequest(alt string) (*http.Response, error) {
108927	reqHeaders := make(http.Header)
108928	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
108929	for k, v := range c.header_ {
108930		reqHeaders[k] = v
108931	}
108932	reqHeaders.Set("User-Agent", c.s.userAgent())
108933	if c.ifNoneMatch_ != "" {
108934		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108935	}
108936	var body io.Reader = nil
108937	c.urlParams_.Set("alt", alt)
108938	c.urlParams_.Set("prettyPrint", "false")
108939	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates")
108940	urls += "?" + c.urlParams_.Encode()
108941	req, err := http.NewRequest("GET", urls, body)
108942	if err != nil {
108943		return nil, err
108944	}
108945	req.Header = reqHeaders
108946	googleapi.Expand(req.URL, map[string]string{
108947		"project": c.project,
108948		"region":  c.region,
108949	})
108950	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108951}
108952
108953// Do executes the "compute.nodeTemplates.list" call.
108954// Exactly one of *NodeTemplateList or error will be non-nil. Any
108955// non-2xx status code is an error. Response headers are in either
108956// *NodeTemplateList.ServerResponse.Header or (if a response was
108957// returned at all) in error.(*googleapi.Error).Header. Use
108958// googleapi.IsNotModified to check whether the returned error was
108959// because http.StatusNotModified was returned.
108960func (c *NodeTemplatesListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateList, error) {
108961	gensupport.SetOptions(c.urlParams_, opts...)
108962	res, err := c.doRequest("json")
108963	if res != nil && res.StatusCode == http.StatusNotModified {
108964		if res.Body != nil {
108965			res.Body.Close()
108966		}
108967		return nil, &googleapi.Error{
108968			Code:   res.StatusCode,
108969			Header: res.Header,
108970		}
108971	}
108972	if err != nil {
108973		return nil, err
108974	}
108975	defer googleapi.CloseBody(res)
108976	if err := googleapi.CheckResponse(res); err != nil {
108977		return nil, err
108978	}
108979	ret := &NodeTemplateList{
108980		ServerResponse: googleapi.ServerResponse{
108981			Header:         res.Header,
108982			HTTPStatusCode: res.StatusCode,
108983		},
108984	}
108985	target := &ret
108986	if err := gensupport.DecodeResponse(target, res); err != nil {
108987		return nil, err
108988	}
108989	return ret, nil
108990	// {
108991	//   "description": "Retrieves a list of node templates available to the specified project.",
108992	//   "httpMethod": "GET",
108993	//   "id": "compute.nodeTemplates.list",
108994	//   "parameterOrder": [
108995	//     "project",
108996	//     "region"
108997	//   ],
108998	//   "parameters": {
108999	//     "filter": {
109000	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
109001	//       "location": "query",
109002	//       "type": "string"
109003	//     },
109004	//     "maxResults": {
109005	//       "default": "500",
109006	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
109007	//       "format": "uint32",
109008	//       "location": "query",
109009	//       "minimum": "0",
109010	//       "type": "integer"
109011	//     },
109012	//     "orderBy": {
109013	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
109014	//       "location": "query",
109015	//       "type": "string"
109016	//     },
109017	//     "pageToken": {
109018	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
109019	//       "location": "query",
109020	//       "type": "string"
109021	//     },
109022	//     "project": {
109023	//       "description": "Project ID for this request.",
109024	//       "location": "path",
109025	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109026	//       "required": true,
109027	//       "type": "string"
109028	//     },
109029	//     "region": {
109030	//       "description": "The name of the region for this request.",
109031	//       "location": "path",
109032	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109033	//       "required": true,
109034	//       "type": "string"
109035	//     }
109036	//   },
109037	//   "path": "{project}/regions/{region}/nodeTemplates",
109038	//   "response": {
109039	//     "$ref": "NodeTemplateList"
109040	//   },
109041	//   "scopes": [
109042	//     "https://www.googleapis.com/auth/cloud-platform",
109043	//     "https://www.googleapis.com/auth/compute",
109044	//     "https://www.googleapis.com/auth/compute.readonly"
109045	//   ]
109046	// }
109047
109048}
109049
109050// Pages invokes f for each page of results.
109051// A non-nil error returned from f will halt the iteration.
109052// The provided context supersedes any context provided to the Context method.
109053func (c *NodeTemplatesListCall) Pages(ctx context.Context, f func(*NodeTemplateList) error) error {
109054	c.ctx_ = ctx
109055	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
109056	for {
109057		x, err := c.Do()
109058		if err != nil {
109059			return err
109060		}
109061		if err := f(x); err != nil {
109062			return err
109063		}
109064		if x.NextPageToken == "" {
109065			return nil
109066		}
109067		c.PageToken(x.NextPageToken)
109068	}
109069}
109070
109071// method id "compute.nodeTemplates.setIamPolicy":
109072
109073type NodeTemplatesSetIamPolicyCall struct {
109074	s                      *Service
109075	project                string
109076	region                 string
109077	resource               string
109078	regionsetpolicyrequest *RegionSetPolicyRequest
109079	urlParams_             gensupport.URLParams
109080	ctx_                   context.Context
109081	header_                http.Header
109082}
109083
109084// SetIamPolicy: Sets the access control policy on the specified
109085// resource. Replaces any existing policy.
109086func (r *NodeTemplatesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *NodeTemplatesSetIamPolicyCall {
109087	c := &NodeTemplatesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109088	c.project = project
109089	c.region = region
109090	c.resource = resource
109091	c.regionsetpolicyrequest = regionsetpolicyrequest
109092	return c
109093}
109094
109095// Fields allows partial responses to be retrieved. See
109096// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109097// for more information.
109098func (c *NodeTemplatesSetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTemplatesSetIamPolicyCall {
109099	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109100	return c
109101}
109102
109103// Context sets the context to be used in this call's Do method. Any
109104// pending HTTP request will be aborted if the provided context is
109105// canceled.
109106func (c *NodeTemplatesSetIamPolicyCall) Context(ctx context.Context) *NodeTemplatesSetIamPolicyCall {
109107	c.ctx_ = ctx
109108	return c
109109}
109110
109111// Header returns an http.Header that can be modified by the caller to
109112// add HTTP headers to the request.
109113func (c *NodeTemplatesSetIamPolicyCall) Header() http.Header {
109114	if c.header_ == nil {
109115		c.header_ = make(http.Header)
109116	}
109117	return c.header_
109118}
109119
109120func (c *NodeTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
109121	reqHeaders := make(http.Header)
109122	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
109123	for k, v := range c.header_ {
109124		reqHeaders[k] = v
109125	}
109126	reqHeaders.Set("User-Agent", c.s.userAgent())
109127	var body io.Reader = nil
109128	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
109129	if err != nil {
109130		return nil, err
109131	}
109132	reqHeaders.Set("Content-Type", "application/json")
109133	c.urlParams_.Set("alt", alt)
109134	c.urlParams_.Set("prettyPrint", "false")
109135	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy")
109136	urls += "?" + c.urlParams_.Encode()
109137	req, err := http.NewRequest("POST", urls, body)
109138	if err != nil {
109139		return nil, err
109140	}
109141	req.Header = reqHeaders
109142	googleapi.Expand(req.URL, map[string]string{
109143		"project":  c.project,
109144		"region":   c.region,
109145		"resource": c.resource,
109146	})
109147	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109148}
109149
109150// Do executes the "compute.nodeTemplates.setIamPolicy" call.
109151// Exactly one of *Policy or error will be non-nil. Any non-2xx status
109152// code is an error. Response headers are in either
109153// *Policy.ServerResponse.Header or (if a response was returned at all)
109154// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
109155// check whether the returned error was because http.StatusNotModified
109156// was returned.
109157func (c *NodeTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
109158	gensupport.SetOptions(c.urlParams_, opts...)
109159	res, err := c.doRequest("json")
109160	if res != nil && res.StatusCode == http.StatusNotModified {
109161		if res.Body != nil {
109162			res.Body.Close()
109163		}
109164		return nil, &googleapi.Error{
109165			Code:   res.StatusCode,
109166			Header: res.Header,
109167		}
109168	}
109169	if err != nil {
109170		return nil, err
109171	}
109172	defer googleapi.CloseBody(res)
109173	if err := googleapi.CheckResponse(res); err != nil {
109174		return nil, err
109175	}
109176	ret := &Policy{
109177		ServerResponse: googleapi.ServerResponse{
109178			Header:         res.Header,
109179			HTTPStatusCode: res.StatusCode,
109180		},
109181	}
109182	target := &ret
109183	if err := gensupport.DecodeResponse(target, res); err != nil {
109184		return nil, err
109185	}
109186	return ret, nil
109187	// {
109188	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
109189	//   "httpMethod": "POST",
109190	//   "id": "compute.nodeTemplates.setIamPolicy",
109191	//   "parameterOrder": [
109192	//     "project",
109193	//     "region",
109194	//     "resource"
109195	//   ],
109196	//   "parameters": {
109197	//     "project": {
109198	//       "description": "Project ID for this request.",
109199	//       "location": "path",
109200	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109201	//       "required": true,
109202	//       "type": "string"
109203	//     },
109204	//     "region": {
109205	//       "description": "The name of the region for this request.",
109206	//       "location": "path",
109207	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109208	//       "required": true,
109209	//       "type": "string"
109210	//     },
109211	//     "resource": {
109212	//       "description": "Name or id of the resource for this request.",
109213	//       "location": "path",
109214	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
109215	//       "required": true,
109216	//       "type": "string"
109217	//     }
109218	//   },
109219	//   "path": "{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy",
109220	//   "request": {
109221	//     "$ref": "RegionSetPolicyRequest"
109222	//   },
109223	//   "response": {
109224	//     "$ref": "Policy"
109225	//   },
109226	//   "scopes": [
109227	//     "https://www.googleapis.com/auth/cloud-platform",
109228	//     "https://www.googleapis.com/auth/compute"
109229	//   ]
109230	// }
109231
109232}
109233
109234// method id "compute.nodeTemplates.testIamPermissions":
109235
109236type NodeTemplatesTestIamPermissionsCall struct {
109237	s                      *Service
109238	project                string
109239	region                 string
109240	resource               string
109241	testpermissionsrequest *TestPermissionsRequest
109242	urlParams_             gensupport.URLParams
109243	ctx_                   context.Context
109244	header_                http.Header
109245}
109246
109247// TestIamPermissions: Returns permissions that a caller has on the
109248// specified resource.
109249func (r *NodeTemplatesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *NodeTemplatesTestIamPermissionsCall {
109250	c := &NodeTemplatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109251	c.project = project
109252	c.region = region
109253	c.resource = resource
109254	c.testpermissionsrequest = testpermissionsrequest
109255	return c
109256}
109257
109258// Fields allows partial responses to be retrieved. See
109259// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109260// for more information.
109261func (c *NodeTemplatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *NodeTemplatesTestIamPermissionsCall {
109262	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109263	return c
109264}
109265
109266// Context sets the context to be used in this call's Do method. Any
109267// pending HTTP request will be aborted if the provided context is
109268// canceled.
109269func (c *NodeTemplatesTestIamPermissionsCall) Context(ctx context.Context) *NodeTemplatesTestIamPermissionsCall {
109270	c.ctx_ = ctx
109271	return c
109272}
109273
109274// Header returns an http.Header that can be modified by the caller to
109275// add HTTP headers to the request.
109276func (c *NodeTemplatesTestIamPermissionsCall) Header() http.Header {
109277	if c.header_ == nil {
109278		c.header_ = make(http.Header)
109279	}
109280	return c.header_
109281}
109282
109283func (c *NodeTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
109284	reqHeaders := make(http.Header)
109285	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
109286	for k, v := range c.header_ {
109287		reqHeaders[k] = v
109288	}
109289	reqHeaders.Set("User-Agent", c.s.userAgent())
109290	var body io.Reader = nil
109291	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
109292	if err != nil {
109293		return nil, err
109294	}
109295	reqHeaders.Set("Content-Type", "application/json")
109296	c.urlParams_.Set("alt", alt)
109297	c.urlParams_.Set("prettyPrint", "false")
109298	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions")
109299	urls += "?" + c.urlParams_.Encode()
109300	req, err := http.NewRequest("POST", urls, body)
109301	if err != nil {
109302		return nil, err
109303	}
109304	req.Header = reqHeaders
109305	googleapi.Expand(req.URL, map[string]string{
109306		"project":  c.project,
109307		"region":   c.region,
109308		"resource": c.resource,
109309	})
109310	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109311}
109312
109313// Do executes the "compute.nodeTemplates.testIamPermissions" call.
109314// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
109315// non-2xx status code is an error. Response headers are in either
109316// *TestPermissionsResponse.ServerResponse.Header or (if a response was
109317// returned at all) in error.(*googleapi.Error).Header. Use
109318// googleapi.IsNotModified to check whether the returned error was
109319// because http.StatusNotModified was returned.
109320func (c *NodeTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
109321	gensupport.SetOptions(c.urlParams_, opts...)
109322	res, err := c.doRequest("json")
109323	if res != nil && res.StatusCode == http.StatusNotModified {
109324		if res.Body != nil {
109325			res.Body.Close()
109326		}
109327		return nil, &googleapi.Error{
109328			Code:   res.StatusCode,
109329			Header: res.Header,
109330		}
109331	}
109332	if err != nil {
109333		return nil, err
109334	}
109335	defer googleapi.CloseBody(res)
109336	if err := googleapi.CheckResponse(res); err != nil {
109337		return nil, err
109338	}
109339	ret := &TestPermissionsResponse{
109340		ServerResponse: googleapi.ServerResponse{
109341			Header:         res.Header,
109342			HTTPStatusCode: res.StatusCode,
109343		},
109344	}
109345	target := &ret
109346	if err := gensupport.DecodeResponse(target, res); err != nil {
109347		return nil, err
109348	}
109349	return ret, nil
109350	// {
109351	//   "description": "Returns permissions that a caller has on the specified resource.",
109352	//   "httpMethod": "POST",
109353	//   "id": "compute.nodeTemplates.testIamPermissions",
109354	//   "parameterOrder": [
109355	//     "project",
109356	//     "region",
109357	//     "resource"
109358	//   ],
109359	//   "parameters": {
109360	//     "project": {
109361	//       "description": "Project ID for this request.",
109362	//       "location": "path",
109363	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109364	//       "required": true,
109365	//       "type": "string"
109366	//     },
109367	//     "region": {
109368	//       "description": "The name of the region for this request.",
109369	//       "location": "path",
109370	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109371	//       "required": true,
109372	//       "type": "string"
109373	//     },
109374	//     "resource": {
109375	//       "description": "Name or id of the resource for this request.",
109376	//       "location": "path",
109377	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
109378	//       "required": true,
109379	//       "type": "string"
109380	//     }
109381	//   },
109382	//   "path": "{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions",
109383	//   "request": {
109384	//     "$ref": "TestPermissionsRequest"
109385	//   },
109386	//   "response": {
109387	//     "$ref": "TestPermissionsResponse"
109388	//   },
109389	//   "scopes": [
109390	//     "https://www.googleapis.com/auth/cloud-platform",
109391	//     "https://www.googleapis.com/auth/compute",
109392	//     "https://www.googleapis.com/auth/compute.readonly"
109393	//   ]
109394	// }
109395
109396}
109397
109398// method id "compute.nodeTypes.aggregatedList":
109399
109400type NodeTypesAggregatedListCall struct {
109401	s            *Service
109402	project      string
109403	urlParams_   gensupport.URLParams
109404	ifNoneMatch_ string
109405	ctx_         context.Context
109406	header_      http.Header
109407}
109408
109409// AggregatedList: Retrieves an aggregated list of node types.
109410func (r *NodeTypesService) AggregatedList(project string) *NodeTypesAggregatedListCall {
109411	c := &NodeTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109412	c.project = project
109413	return c
109414}
109415
109416// Filter sets the optional parameter "filter": A filter expression that
109417// filters resources listed in the response. The expression must specify
109418// the field name, a comparison operator, and the value that you want to
109419// use for filtering. The value must be a string, a number, or a
109420// boolean. The comparison operator must be either =, !=, >, or <.
109421//
109422// For example, if you are filtering Compute Engine instances, you can
109423// exclude instances named example-instance by specifying name !=
109424// example-instance.
109425//
109426// You can also filter nested fields. For example, you could specify
109427// scheduling.automaticRestart = false to include instances only if they
109428// are not scheduled for automatic restarts. You can use filtering on
109429// nested fields to filter based on resource labels.
109430//
109431// To filter on multiple expressions, provide each separate expression
109432// within parentheses. For example, (scheduling.automaticRestart = true)
109433// (cpuPlatform = "Intel Skylake"). By default, each expression is an
109434// AND expression. However, you can include AND and OR expressions
109435// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
109436// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
109437// true).
109438func (c *NodeTypesAggregatedListCall) Filter(filter string) *NodeTypesAggregatedListCall {
109439	c.urlParams_.Set("filter", filter)
109440	return c
109441}
109442
109443// IncludeAllScopes sets the optional parameter "includeAllScopes":
109444// Indicates whether every visible scope for each scope type (zone,
109445// region, global) should be included in the response. For new resource
109446// types added after this field, the flag has no effect as new resource
109447// types will always include every visible scope for each scope type in
109448// response. For resource types which predate this field, if this flag
109449// is omitted or false, only scopes of the scope types where the
109450// resource type is expected to be found will be included.
109451func (c *NodeTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeTypesAggregatedListCall {
109452	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
109453	return c
109454}
109455
109456// MaxResults sets the optional parameter "maxResults": The maximum
109457// number of results per page that should be returned. If the number of
109458// available results is larger than maxResults, Compute Engine returns a
109459// nextPageToken that can be used to get the next page of results in
109460// subsequent list requests. Acceptable values are 0 to 500, inclusive.
109461// (Default: 500)
109462func (c *NodeTypesAggregatedListCall) MaxResults(maxResults int64) *NodeTypesAggregatedListCall {
109463	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
109464	return c
109465}
109466
109467// OrderBy sets the optional parameter "orderBy": Sorts list results by
109468// a certain order. By default, results are returned in alphanumerical
109469// order based on the resource name.
109470//
109471// You can also sort results in descending order based on the creation
109472// timestamp using orderBy="creationTimestamp desc". This sorts results
109473// based on the creationTimestamp field in reverse chronological order
109474// (newest result first). Use this to sort resources like operations so
109475// that the newest operation is returned first.
109476//
109477// Currently, only sorting by name or creationTimestamp desc is
109478// supported.
109479func (c *NodeTypesAggregatedListCall) OrderBy(orderBy string) *NodeTypesAggregatedListCall {
109480	c.urlParams_.Set("orderBy", orderBy)
109481	return c
109482}
109483
109484// PageToken sets the optional parameter "pageToken": Specifies a page
109485// token to use. Set pageToken to the nextPageToken returned by a
109486// previous list request to get the next page of results.
109487func (c *NodeTypesAggregatedListCall) PageToken(pageToken string) *NodeTypesAggregatedListCall {
109488	c.urlParams_.Set("pageToken", pageToken)
109489	return c
109490}
109491
109492// Fields allows partial responses to be retrieved. See
109493// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109494// for more information.
109495func (c *NodeTypesAggregatedListCall) Fields(s ...googleapi.Field) *NodeTypesAggregatedListCall {
109496	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109497	return c
109498}
109499
109500// IfNoneMatch sets the optional parameter which makes the operation
109501// fail if the object's ETag matches the given value. This is useful for
109502// getting updates only after the object has changed since the last
109503// request. Use googleapi.IsNotModified to check whether the response
109504// error from Do is the result of In-None-Match.
109505func (c *NodeTypesAggregatedListCall) IfNoneMatch(entityTag string) *NodeTypesAggregatedListCall {
109506	c.ifNoneMatch_ = entityTag
109507	return c
109508}
109509
109510// Context sets the context to be used in this call's Do method. Any
109511// pending HTTP request will be aborted if the provided context is
109512// canceled.
109513func (c *NodeTypesAggregatedListCall) Context(ctx context.Context) *NodeTypesAggregatedListCall {
109514	c.ctx_ = ctx
109515	return c
109516}
109517
109518// Header returns an http.Header that can be modified by the caller to
109519// add HTTP headers to the request.
109520func (c *NodeTypesAggregatedListCall) Header() http.Header {
109521	if c.header_ == nil {
109522		c.header_ = make(http.Header)
109523	}
109524	return c.header_
109525}
109526
109527func (c *NodeTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
109528	reqHeaders := make(http.Header)
109529	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
109530	for k, v := range c.header_ {
109531		reqHeaders[k] = v
109532	}
109533	reqHeaders.Set("User-Agent", c.s.userAgent())
109534	if c.ifNoneMatch_ != "" {
109535		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
109536	}
109537	var body io.Reader = nil
109538	c.urlParams_.Set("alt", alt)
109539	c.urlParams_.Set("prettyPrint", "false")
109540	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/nodeTypes")
109541	urls += "?" + c.urlParams_.Encode()
109542	req, err := http.NewRequest("GET", urls, body)
109543	if err != nil {
109544		return nil, err
109545	}
109546	req.Header = reqHeaders
109547	googleapi.Expand(req.URL, map[string]string{
109548		"project": c.project,
109549	})
109550	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109551}
109552
109553// Do executes the "compute.nodeTypes.aggregatedList" call.
109554// Exactly one of *NodeTypeAggregatedList or error will be non-nil. Any
109555// non-2xx status code is an error. Response headers are in either
109556// *NodeTypeAggregatedList.ServerResponse.Header or (if a response was
109557// returned at all) in error.(*googleapi.Error).Header. Use
109558// googleapi.IsNotModified to check whether the returned error was
109559// because http.StatusNotModified was returned.
109560func (c *NodeTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTypeAggregatedList, error) {
109561	gensupport.SetOptions(c.urlParams_, opts...)
109562	res, err := c.doRequest("json")
109563	if res != nil && res.StatusCode == http.StatusNotModified {
109564		if res.Body != nil {
109565			res.Body.Close()
109566		}
109567		return nil, &googleapi.Error{
109568			Code:   res.StatusCode,
109569			Header: res.Header,
109570		}
109571	}
109572	if err != nil {
109573		return nil, err
109574	}
109575	defer googleapi.CloseBody(res)
109576	if err := googleapi.CheckResponse(res); err != nil {
109577		return nil, err
109578	}
109579	ret := &NodeTypeAggregatedList{
109580		ServerResponse: googleapi.ServerResponse{
109581			Header:         res.Header,
109582			HTTPStatusCode: res.StatusCode,
109583		},
109584	}
109585	target := &ret
109586	if err := gensupport.DecodeResponse(target, res); err != nil {
109587		return nil, err
109588	}
109589	return ret, nil
109590	// {
109591	//   "description": "Retrieves an aggregated list of node types.",
109592	//   "httpMethod": "GET",
109593	//   "id": "compute.nodeTypes.aggregatedList",
109594	//   "parameterOrder": [
109595	//     "project"
109596	//   ],
109597	//   "parameters": {
109598	//     "filter": {
109599	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
109600	//       "location": "query",
109601	//       "type": "string"
109602	//     },
109603	//     "includeAllScopes": {
109604	//       "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.",
109605	//       "location": "query",
109606	//       "type": "boolean"
109607	//     },
109608	//     "maxResults": {
109609	//       "default": "500",
109610	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
109611	//       "format": "uint32",
109612	//       "location": "query",
109613	//       "minimum": "0",
109614	//       "type": "integer"
109615	//     },
109616	//     "orderBy": {
109617	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
109618	//       "location": "query",
109619	//       "type": "string"
109620	//     },
109621	//     "pageToken": {
109622	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
109623	//       "location": "query",
109624	//       "type": "string"
109625	//     },
109626	//     "project": {
109627	//       "description": "Project ID for this request.",
109628	//       "location": "path",
109629	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109630	//       "required": true,
109631	//       "type": "string"
109632	//     }
109633	//   },
109634	//   "path": "{project}/aggregated/nodeTypes",
109635	//   "response": {
109636	//     "$ref": "NodeTypeAggregatedList"
109637	//   },
109638	//   "scopes": [
109639	//     "https://www.googleapis.com/auth/cloud-platform",
109640	//     "https://www.googleapis.com/auth/compute",
109641	//     "https://www.googleapis.com/auth/compute.readonly"
109642	//   ]
109643	// }
109644
109645}
109646
109647// Pages invokes f for each page of results.
109648// A non-nil error returned from f will halt the iteration.
109649// The provided context supersedes any context provided to the Context method.
109650func (c *NodeTypesAggregatedListCall) Pages(ctx context.Context, f func(*NodeTypeAggregatedList) error) error {
109651	c.ctx_ = ctx
109652	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
109653	for {
109654		x, err := c.Do()
109655		if err != nil {
109656			return err
109657		}
109658		if err := f(x); err != nil {
109659			return err
109660		}
109661		if x.NextPageToken == "" {
109662			return nil
109663		}
109664		c.PageToken(x.NextPageToken)
109665	}
109666}
109667
109668// method id "compute.nodeTypes.get":
109669
109670type NodeTypesGetCall struct {
109671	s            *Service
109672	project      string
109673	zone         string
109674	nodeType     string
109675	urlParams_   gensupport.URLParams
109676	ifNoneMatch_ string
109677	ctx_         context.Context
109678	header_      http.Header
109679}
109680
109681// Get: Returns the specified node type. Gets a list of available node
109682// types by making a list() request.
109683func (r *NodeTypesService) Get(project string, zone string, nodeType string) *NodeTypesGetCall {
109684	c := &NodeTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109685	c.project = project
109686	c.zone = zone
109687	c.nodeType = nodeType
109688	return c
109689}
109690
109691// Fields allows partial responses to be retrieved. See
109692// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109693// for more information.
109694func (c *NodeTypesGetCall) Fields(s ...googleapi.Field) *NodeTypesGetCall {
109695	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109696	return c
109697}
109698
109699// IfNoneMatch sets the optional parameter which makes the operation
109700// fail if the object's ETag matches the given value. This is useful for
109701// getting updates only after the object has changed since the last
109702// request. Use googleapi.IsNotModified to check whether the response
109703// error from Do is the result of In-None-Match.
109704func (c *NodeTypesGetCall) IfNoneMatch(entityTag string) *NodeTypesGetCall {
109705	c.ifNoneMatch_ = entityTag
109706	return c
109707}
109708
109709// Context sets the context to be used in this call's Do method. Any
109710// pending HTTP request will be aborted if the provided context is
109711// canceled.
109712func (c *NodeTypesGetCall) Context(ctx context.Context) *NodeTypesGetCall {
109713	c.ctx_ = ctx
109714	return c
109715}
109716
109717// Header returns an http.Header that can be modified by the caller to
109718// add HTTP headers to the request.
109719func (c *NodeTypesGetCall) Header() http.Header {
109720	if c.header_ == nil {
109721		c.header_ = make(http.Header)
109722	}
109723	return c.header_
109724}
109725
109726func (c *NodeTypesGetCall) doRequest(alt string) (*http.Response, error) {
109727	reqHeaders := make(http.Header)
109728	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
109729	for k, v := range c.header_ {
109730		reqHeaders[k] = v
109731	}
109732	reqHeaders.Set("User-Agent", c.s.userAgent())
109733	if c.ifNoneMatch_ != "" {
109734		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
109735	}
109736	var body io.Reader = nil
109737	c.urlParams_.Set("alt", alt)
109738	c.urlParams_.Set("prettyPrint", "false")
109739	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeTypes/{nodeType}")
109740	urls += "?" + c.urlParams_.Encode()
109741	req, err := http.NewRequest("GET", urls, body)
109742	if err != nil {
109743		return nil, err
109744	}
109745	req.Header = reqHeaders
109746	googleapi.Expand(req.URL, map[string]string{
109747		"project":  c.project,
109748		"zone":     c.zone,
109749		"nodeType": c.nodeType,
109750	})
109751	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109752}
109753
109754// Do executes the "compute.nodeTypes.get" call.
109755// Exactly one of *NodeType or error will be non-nil. Any non-2xx status
109756// code is an error. Response headers are in either
109757// *NodeType.ServerResponse.Header or (if a response was returned at
109758// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109759// to check whether the returned error was because
109760// http.StatusNotModified was returned.
109761func (c *NodeTypesGetCall) Do(opts ...googleapi.CallOption) (*NodeType, error) {
109762	gensupport.SetOptions(c.urlParams_, opts...)
109763	res, err := c.doRequest("json")
109764	if res != nil && res.StatusCode == http.StatusNotModified {
109765		if res.Body != nil {
109766			res.Body.Close()
109767		}
109768		return nil, &googleapi.Error{
109769			Code:   res.StatusCode,
109770			Header: res.Header,
109771		}
109772	}
109773	if err != nil {
109774		return nil, err
109775	}
109776	defer googleapi.CloseBody(res)
109777	if err := googleapi.CheckResponse(res); err != nil {
109778		return nil, err
109779	}
109780	ret := &NodeType{
109781		ServerResponse: googleapi.ServerResponse{
109782			Header:         res.Header,
109783			HTTPStatusCode: res.StatusCode,
109784		},
109785	}
109786	target := &ret
109787	if err := gensupport.DecodeResponse(target, res); err != nil {
109788		return nil, err
109789	}
109790	return ret, nil
109791	// {
109792	//   "description": "Returns the specified node type. Gets a list of available node types by making a list() request.",
109793	//   "httpMethod": "GET",
109794	//   "id": "compute.nodeTypes.get",
109795	//   "parameterOrder": [
109796	//     "project",
109797	//     "zone",
109798	//     "nodeType"
109799	//   ],
109800	//   "parameters": {
109801	//     "nodeType": {
109802	//       "description": "Name of the node type to return.",
109803	//       "location": "path",
109804	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
109805	//       "required": true,
109806	//       "type": "string"
109807	//     },
109808	//     "project": {
109809	//       "description": "Project ID for this request.",
109810	//       "location": "path",
109811	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109812	//       "required": true,
109813	//       "type": "string"
109814	//     },
109815	//     "zone": {
109816	//       "description": "The name of the zone for this request.",
109817	//       "location": "path",
109818	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109819	//       "required": true,
109820	//       "type": "string"
109821	//     }
109822	//   },
109823	//   "path": "{project}/zones/{zone}/nodeTypes/{nodeType}",
109824	//   "response": {
109825	//     "$ref": "NodeType"
109826	//   },
109827	//   "scopes": [
109828	//     "https://www.googleapis.com/auth/cloud-platform",
109829	//     "https://www.googleapis.com/auth/compute",
109830	//     "https://www.googleapis.com/auth/compute.readonly"
109831	//   ]
109832	// }
109833
109834}
109835
109836// method id "compute.nodeTypes.list":
109837
109838type NodeTypesListCall struct {
109839	s            *Service
109840	project      string
109841	zone         string
109842	urlParams_   gensupport.URLParams
109843	ifNoneMatch_ string
109844	ctx_         context.Context
109845	header_      http.Header
109846}
109847
109848// List: Retrieves a list of node types available to the specified
109849// project.
109850func (r *NodeTypesService) List(project string, zone string) *NodeTypesListCall {
109851	c := &NodeTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109852	c.project = project
109853	c.zone = zone
109854	return c
109855}
109856
109857// Filter sets the optional parameter "filter": A filter expression that
109858// filters resources listed in the response. The expression must specify
109859// the field name, a comparison operator, and the value that you want to
109860// use for filtering. The value must be a string, a number, or a
109861// boolean. The comparison operator must be either =, !=, >, or <.
109862//
109863// For example, if you are filtering Compute Engine instances, you can
109864// exclude instances named example-instance by specifying name !=
109865// example-instance.
109866//
109867// You can also filter nested fields. For example, you could specify
109868// scheduling.automaticRestart = false to include instances only if they
109869// are not scheduled for automatic restarts. You can use filtering on
109870// nested fields to filter based on resource labels.
109871//
109872// To filter on multiple expressions, provide each separate expression
109873// within parentheses. For example, (scheduling.automaticRestart = true)
109874// (cpuPlatform = "Intel Skylake"). By default, each expression is an
109875// AND expression. However, you can include AND and OR expressions
109876// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
109877// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
109878// true).
109879func (c *NodeTypesListCall) Filter(filter string) *NodeTypesListCall {
109880	c.urlParams_.Set("filter", filter)
109881	return c
109882}
109883
109884// MaxResults sets the optional parameter "maxResults": The maximum
109885// number of results per page that should be returned. If the number of
109886// available results is larger than maxResults, Compute Engine returns a
109887// nextPageToken that can be used to get the next page of results in
109888// subsequent list requests. Acceptable values are 0 to 500, inclusive.
109889// (Default: 500)
109890func (c *NodeTypesListCall) MaxResults(maxResults int64) *NodeTypesListCall {
109891	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
109892	return c
109893}
109894
109895// OrderBy sets the optional parameter "orderBy": Sorts list results by
109896// a certain order. By default, results are returned in alphanumerical
109897// order based on the resource name.
109898//
109899// You can also sort results in descending order based on the creation
109900// timestamp using orderBy="creationTimestamp desc". This sorts results
109901// based on the creationTimestamp field in reverse chronological order
109902// (newest result first). Use this to sort resources like operations so
109903// that the newest operation is returned first.
109904//
109905// Currently, only sorting by name or creationTimestamp desc is
109906// supported.
109907func (c *NodeTypesListCall) OrderBy(orderBy string) *NodeTypesListCall {
109908	c.urlParams_.Set("orderBy", orderBy)
109909	return c
109910}
109911
109912// PageToken sets the optional parameter "pageToken": Specifies a page
109913// token to use. Set pageToken to the nextPageToken returned by a
109914// previous list request to get the next page of results.
109915func (c *NodeTypesListCall) PageToken(pageToken string) *NodeTypesListCall {
109916	c.urlParams_.Set("pageToken", pageToken)
109917	return c
109918}
109919
109920// Fields allows partial responses to be retrieved. See
109921// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109922// for more information.
109923func (c *NodeTypesListCall) Fields(s ...googleapi.Field) *NodeTypesListCall {
109924	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109925	return c
109926}
109927
109928// IfNoneMatch sets the optional parameter which makes the operation
109929// fail if the object's ETag matches the given value. This is useful for
109930// getting updates only after the object has changed since the last
109931// request. Use googleapi.IsNotModified to check whether the response
109932// error from Do is the result of In-None-Match.
109933func (c *NodeTypesListCall) IfNoneMatch(entityTag string) *NodeTypesListCall {
109934	c.ifNoneMatch_ = entityTag
109935	return c
109936}
109937
109938// Context sets the context to be used in this call's Do method. Any
109939// pending HTTP request will be aborted if the provided context is
109940// canceled.
109941func (c *NodeTypesListCall) Context(ctx context.Context) *NodeTypesListCall {
109942	c.ctx_ = ctx
109943	return c
109944}
109945
109946// Header returns an http.Header that can be modified by the caller to
109947// add HTTP headers to the request.
109948func (c *NodeTypesListCall) Header() http.Header {
109949	if c.header_ == nil {
109950		c.header_ = make(http.Header)
109951	}
109952	return c.header_
109953}
109954
109955func (c *NodeTypesListCall) doRequest(alt string) (*http.Response, error) {
109956	reqHeaders := make(http.Header)
109957	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
109958	for k, v := range c.header_ {
109959		reqHeaders[k] = v
109960	}
109961	reqHeaders.Set("User-Agent", c.s.userAgent())
109962	if c.ifNoneMatch_ != "" {
109963		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
109964	}
109965	var body io.Reader = nil
109966	c.urlParams_.Set("alt", alt)
109967	c.urlParams_.Set("prettyPrint", "false")
109968	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeTypes")
109969	urls += "?" + c.urlParams_.Encode()
109970	req, err := http.NewRequest("GET", urls, body)
109971	if err != nil {
109972		return nil, err
109973	}
109974	req.Header = reqHeaders
109975	googleapi.Expand(req.URL, map[string]string{
109976		"project": c.project,
109977		"zone":    c.zone,
109978	})
109979	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109980}
109981
109982// Do executes the "compute.nodeTypes.list" call.
109983// Exactly one of *NodeTypeList or error will be non-nil. Any non-2xx
109984// status code is an error. Response headers are in either
109985// *NodeTypeList.ServerResponse.Header or (if a response was returned at
109986// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109987// to check whether the returned error was because
109988// http.StatusNotModified was returned.
109989func (c *NodeTypesListCall) Do(opts ...googleapi.CallOption) (*NodeTypeList, error) {
109990	gensupport.SetOptions(c.urlParams_, opts...)
109991	res, err := c.doRequest("json")
109992	if res != nil && res.StatusCode == http.StatusNotModified {
109993		if res.Body != nil {
109994			res.Body.Close()
109995		}
109996		return nil, &googleapi.Error{
109997			Code:   res.StatusCode,
109998			Header: res.Header,
109999		}
110000	}
110001	if err != nil {
110002		return nil, err
110003	}
110004	defer googleapi.CloseBody(res)
110005	if err := googleapi.CheckResponse(res); err != nil {
110006		return nil, err
110007	}
110008	ret := &NodeTypeList{
110009		ServerResponse: googleapi.ServerResponse{
110010			Header:         res.Header,
110011			HTTPStatusCode: res.StatusCode,
110012		},
110013	}
110014	target := &ret
110015	if err := gensupport.DecodeResponse(target, res); err != nil {
110016		return nil, err
110017	}
110018	return ret, nil
110019	// {
110020	//   "description": "Retrieves a list of node types available to the specified project.",
110021	//   "httpMethod": "GET",
110022	//   "id": "compute.nodeTypes.list",
110023	//   "parameterOrder": [
110024	//     "project",
110025	//     "zone"
110026	//   ],
110027	//   "parameters": {
110028	//     "filter": {
110029	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
110030	//       "location": "query",
110031	//       "type": "string"
110032	//     },
110033	//     "maxResults": {
110034	//       "default": "500",
110035	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
110036	//       "format": "uint32",
110037	//       "location": "query",
110038	//       "minimum": "0",
110039	//       "type": "integer"
110040	//     },
110041	//     "orderBy": {
110042	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
110043	//       "location": "query",
110044	//       "type": "string"
110045	//     },
110046	//     "pageToken": {
110047	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
110048	//       "location": "query",
110049	//       "type": "string"
110050	//     },
110051	//     "project": {
110052	//       "description": "Project ID for this request.",
110053	//       "location": "path",
110054	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110055	//       "required": true,
110056	//       "type": "string"
110057	//     },
110058	//     "zone": {
110059	//       "description": "The name of the zone for this request.",
110060	//       "location": "path",
110061	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110062	//       "required": true,
110063	//       "type": "string"
110064	//     }
110065	//   },
110066	//   "path": "{project}/zones/{zone}/nodeTypes",
110067	//   "response": {
110068	//     "$ref": "NodeTypeList"
110069	//   },
110070	//   "scopes": [
110071	//     "https://www.googleapis.com/auth/cloud-platform",
110072	//     "https://www.googleapis.com/auth/compute",
110073	//     "https://www.googleapis.com/auth/compute.readonly"
110074	//   ]
110075	// }
110076
110077}
110078
110079// Pages invokes f for each page of results.
110080// A non-nil error returned from f will halt the iteration.
110081// The provided context supersedes any context provided to the Context method.
110082func (c *NodeTypesListCall) Pages(ctx context.Context, f func(*NodeTypeList) error) error {
110083	c.ctx_ = ctx
110084	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
110085	for {
110086		x, err := c.Do()
110087		if err != nil {
110088			return err
110089		}
110090		if err := f(x); err != nil {
110091			return err
110092		}
110093		if x.NextPageToken == "" {
110094			return nil
110095		}
110096		c.PageToken(x.NextPageToken)
110097	}
110098}
110099
110100// method id "compute.organizationSecurityPolicies.addAssociation":
110101
110102type OrganizationSecurityPoliciesAddAssociationCall struct {
110103	s                         *Service
110104	securityPolicy            string
110105	securitypolicyassociation *SecurityPolicyAssociation
110106	urlParams_                gensupport.URLParams
110107	ctx_                      context.Context
110108	header_                   http.Header
110109}
110110
110111// AddAssociation: Inserts an association for the specified security
110112// policy.
110113func (r *OrganizationSecurityPoliciesService) AddAssociation(securityPolicy string, securitypolicyassociation *SecurityPolicyAssociation) *OrganizationSecurityPoliciesAddAssociationCall {
110114	c := &OrganizationSecurityPoliciesAddAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110115	c.securityPolicy = securityPolicy
110116	c.securitypolicyassociation = securitypolicyassociation
110117	return c
110118}
110119
110120// ReplaceExistingAssociation sets the optional parameter
110121// "replaceExistingAssociation": Indicates whether or not to replace it
110122// if an association of the attachment already exists. This is false by
110123// default, in which case an error will be returned if an assocation
110124// already exists.
110125func (c *OrganizationSecurityPoliciesAddAssociationCall) ReplaceExistingAssociation(replaceExistingAssociation bool) *OrganizationSecurityPoliciesAddAssociationCall {
110126	c.urlParams_.Set("replaceExistingAssociation", fmt.Sprint(replaceExistingAssociation))
110127	return c
110128}
110129
110130// RequestId sets the optional parameter "requestId": An optional
110131// request ID to identify requests. Specify a unique request ID so that
110132// if you must retry your request, the server will know to ignore the
110133// request if it has already been completed.
110134//
110135// For example, consider a situation where you make an initial request
110136// and the request times out. If you make the request again with the
110137// same request ID, the server can check if original operation with the
110138// same request ID was received, and if so, will ignore the second
110139// request. This prevents clients from accidentally creating duplicate
110140// commitments.
110141//
110142// The request ID must be a valid UUID with the exception that zero UUID
110143// is not supported (00000000-0000-0000-0000-000000000000).
110144func (c *OrganizationSecurityPoliciesAddAssociationCall) RequestId(requestId string) *OrganizationSecurityPoliciesAddAssociationCall {
110145	c.urlParams_.Set("requestId", requestId)
110146	return c
110147}
110148
110149// Fields allows partial responses to be retrieved. See
110150// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110151// for more information.
110152func (c *OrganizationSecurityPoliciesAddAssociationCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesAddAssociationCall {
110153	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110154	return c
110155}
110156
110157// Context sets the context to be used in this call's Do method. Any
110158// pending HTTP request will be aborted if the provided context is
110159// canceled.
110160func (c *OrganizationSecurityPoliciesAddAssociationCall) Context(ctx context.Context) *OrganizationSecurityPoliciesAddAssociationCall {
110161	c.ctx_ = ctx
110162	return c
110163}
110164
110165// Header returns an http.Header that can be modified by the caller to
110166// add HTTP headers to the request.
110167func (c *OrganizationSecurityPoliciesAddAssociationCall) Header() http.Header {
110168	if c.header_ == nil {
110169		c.header_ = make(http.Header)
110170	}
110171	return c.header_
110172}
110173
110174func (c *OrganizationSecurityPoliciesAddAssociationCall) doRequest(alt string) (*http.Response, error) {
110175	reqHeaders := make(http.Header)
110176	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
110177	for k, v := range c.header_ {
110178		reqHeaders[k] = v
110179	}
110180	reqHeaders.Set("User-Agent", c.s.userAgent())
110181	var body io.Reader = nil
110182	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyassociation)
110183	if err != nil {
110184		return nil, err
110185	}
110186	reqHeaders.Set("Content-Type", "application/json")
110187	c.urlParams_.Set("alt", alt)
110188	c.urlParams_.Set("prettyPrint", "false")
110189	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/addAssociation")
110190	urls += "?" + c.urlParams_.Encode()
110191	req, err := http.NewRequest("POST", urls, body)
110192	if err != nil {
110193		return nil, err
110194	}
110195	req.Header = reqHeaders
110196	googleapi.Expand(req.URL, map[string]string{
110197		"securityPolicy": c.securityPolicy,
110198	})
110199	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110200}
110201
110202// Do executes the "compute.organizationSecurityPolicies.addAssociation" call.
110203// Exactly one of *Operation or error will be non-nil. Any non-2xx
110204// status code is an error. Response headers are in either
110205// *Operation.ServerResponse.Header or (if a response was returned at
110206// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
110207// to check whether the returned error was because
110208// http.StatusNotModified was returned.
110209func (c *OrganizationSecurityPoliciesAddAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
110210	gensupport.SetOptions(c.urlParams_, opts...)
110211	res, err := c.doRequest("json")
110212	if res != nil && res.StatusCode == http.StatusNotModified {
110213		if res.Body != nil {
110214			res.Body.Close()
110215		}
110216		return nil, &googleapi.Error{
110217			Code:   res.StatusCode,
110218			Header: res.Header,
110219		}
110220	}
110221	if err != nil {
110222		return nil, err
110223	}
110224	defer googleapi.CloseBody(res)
110225	if err := googleapi.CheckResponse(res); err != nil {
110226		return nil, err
110227	}
110228	ret := &Operation{
110229		ServerResponse: googleapi.ServerResponse{
110230			Header:         res.Header,
110231			HTTPStatusCode: res.StatusCode,
110232		},
110233	}
110234	target := &ret
110235	if err := gensupport.DecodeResponse(target, res); err != nil {
110236		return nil, err
110237	}
110238	return ret, nil
110239	// {
110240	//   "description": "Inserts an association for the specified security policy.",
110241	//   "httpMethod": "POST",
110242	//   "id": "compute.organizationSecurityPolicies.addAssociation",
110243	//   "parameterOrder": [
110244	//     "securityPolicy"
110245	//   ],
110246	//   "parameters": {
110247	//     "replaceExistingAssociation": {
110248	//       "description": "Indicates whether or not to replace it if an association of the attachment already exists. This is false by default, in which case an error will be returned if an assocation already exists.",
110249	//       "location": "query",
110250	//       "type": "boolean"
110251	//     },
110252	//     "requestId": {
110253	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
110254	//       "location": "query",
110255	//       "type": "string"
110256	//     },
110257	//     "securityPolicy": {
110258	//       "description": "Name of the security policy to update.",
110259	//       "location": "path",
110260	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
110261	//       "required": true,
110262	//       "type": "string"
110263	//     }
110264	//   },
110265	//   "path": "locations/global/securityPolicies/{securityPolicy}/addAssociation",
110266	//   "request": {
110267	//     "$ref": "SecurityPolicyAssociation"
110268	//   },
110269	//   "response": {
110270	//     "$ref": "Operation"
110271	//   },
110272	//   "scopes": [
110273	//     "https://www.googleapis.com/auth/cloud-platform",
110274	//     "https://www.googleapis.com/auth/compute"
110275	//   ]
110276	// }
110277
110278}
110279
110280// method id "compute.organizationSecurityPolicies.addRule":
110281
110282type OrganizationSecurityPoliciesAddRuleCall struct {
110283	s                  *Service
110284	securityPolicy     string
110285	securitypolicyrule *SecurityPolicyRule
110286	urlParams_         gensupport.URLParams
110287	ctx_               context.Context
110288	header_            http.Header
110289}
110290
110291// AddRule: Inserts a rule into a security policy.
110292func (r *OrganizationSecurityPoliciesService) AddRule(securityPolicy string, securitypolicyrule *SecurityPolicyRule) *OrganizationSecurityPoliciesAddRuleCall {
110293	c := &OrganizationSecurityPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110294	c.securityPolicy = securityPolicy
110295	c.securitypolicyrule = securitypolicyrule
110296	return c
110297}
110298
110299// RequestId sets the optional parameter "requestId": An optional
110300// request ID to identify requests. Specify a unique request ID so that
110301// if you must retry your request, the server will know to ignore the
110302// request if it has already been completed.
110303//
110304// For example, consider a situation where you make an initial request
110305// and the request times out. If you make the request again with the
110306// same request ID, the server can check if original operation with the
110307// same request ID was received, and if so, will ignore the second
110308// request. This prevents clients from accidentally creating duplicate
110309// commitments.
110310//
110311// The request ID must be a valid UUID with the exception that zero UUID
110312// is not supported (00000000-0000-0000-0000-000000000000).
110313func (c *OrganizationSecurityPoliciesAddRuleCall) RequestId(requestId string) *OrganizationSecurityPoliciesAddRuleCall {
110314	c.urlParams_.Set("requestId", requestId)
110315	return c
110316}
110317
110318// Fields allows partial responses to be retrieved. See
110319// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110320// for more information.
110321func (c *OrganizationSecurityPoliciesAddRuleCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesAddRuleCall {
110322	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110323	return c
110324}
110325
110326// Context sets the context to be used in this call's Do method. Any
110327// pending HTTP request will be aborted if the provided context is
110328// canceled.
110329func (c *OrganizationSecurityPoliciesAddRuleCall) Context(ctx context.Context) *OrganizationSecurityPoliciesAddRuleCall {
110330	c.ctx_ = ctx
110331	return c
110332}
110333
110334// Header returns an http.Header that can be modified by the caller to
110335// add HTTP headers to the request.
110336func (c *OrganizationSecurityPoliciesAddRuleCall) Header() http.Header {
110337	if c.header_ == nil {
110338		c.header_ = make(http.Header)
110339	}
110340	return c.header_
110341}
110342
110343func (c *OrganizationSecurityPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) {
110344	reqHeaders := make(http.Header)
110345	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
110346	for k, v := range c.header_ {
110347		reqHeaders[k] = v
110348	}
110349	reqHeaders.Set("User-Agent", c.s.userAgent())
110350	var body io.Reader = nil
110351	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
110352	if err != nil {
110353		return nil, err
110354	}
110355	reqHeaders.Set("Content-Type", "application/json")
110356	c.urlParams_.Set("alt", alt)
110357	c.urlParams_.Set("prettyPrint", "false")
110358	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/addRule")
110359	urls += "?" + c.urlParams_.Encode()
110360	req, err := http.NewRequest("POST", urls, body)
110361	if err != nil {
110362		return nil, err
110363	}
110364	req.Header = reqHeaders
110365	googleapi.Expand(req.URL, map[string]string{
110366		"securityPolicy": c.securityPolicy,
110367	})
110368	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110369}
110370
110371// Do executes the "compute.organizationSecurityPolicies.addRule" call.
110372// Exactly one of *Operation or error will be non-nil. Any non-2xx
110373// status code is an error. Response headers are in either
110374// *Operation.ServerResponse.Header or (if a response was returned at
110375// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
110376// to check whether the returned error was because
110377// http.StatusNotModified was returned.
110378func (c *OrganizationSecurityPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
110379	gensupport.SetOptions(c.urlParams_, opts...)
110380	res, err := c.doRequest("json")
110381	if res != nil && res.StatusCode == http.StatusNotModified {
110382		if res.Body != nil {
110383			res.Body.Close()
110384		}
110385		return nil, &googleapi.Error{
110386			Code:   res.StatusCode,
110387			Header: res.Header,
110388		}
110389	}
110390	if err != nil {
110391		return nil, err
110392	}
110393	defer googleapi.CloseBody(res)
110394	if err := googleapi.CheckResponse(res); err != nil {
110395		return nil, err
110396	}
110397	ret := &Operation{
110398		ServerResponse: googleapi.ServerResponse{
110399			Header:         res.Header,
110400			HTTPStatusCode: res.StatusCode,
110401		},
110402	}
110403	target := &ret
110404	if err := gensupport.DecodeResponse(target, res); err != nil {
110405		return nil, err
110406	}
110407	return ret, nil
110408	// {
110409	//   "description": "Inserts a rule into a security policy.",
110410	//   "httpMethod": "POST",
110411	//   "id": "compute.organizationSecurityPolicies.addRule",
110412	//   "parameterOrder": [
110413	//     "securityPolicy"
110414	//   ],
110415	//   "parameters": {
110416	//     "requestId": {
110417	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
110418	//       "location": "query",
110419	//       "type": "string"
110420	//     },
110421	//     "securityPolicy": {
110422	//       "description": "Name of the security policy to update.",
110423	//       "location": "path",
110424	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
110425	//       "required": true,
110426	//       "type": "string"
110427	//     }
110428	//   },
110429	//   "path": "locations/global/securityPolicies/{securityPolicy}/addRule",
110430	//   "request": {
110431	//     "$ref": "SecurityPolicyRule"
110432	//   },
110433	//   "response": {
110434	//     "$ref": "Operation"
110435	//   },
110436	//   "scopes": [
110437	//     "https://www.googleapis.com/auth/cloud-platform",
110438	//     "https://www.googleapis.com/auth/compute"
110439	//   ]
110440	// }
110441
110442}
110443
110444// method id "compute.organizationSecurityPolicies.copyRules":
110445
110446type OrganizationSecurityPoliciesCopyRulesCall struct {
110447	s              *Service
110448	securityPolicy string
110449	urlParams_     gensupport.URLParams
110450	ctx_           context.Context
110451	header_        http.Header
110452}
110453
110454// CopyRules: Copies rules to the specified security policy.
110455func (r *OrganizationSecurityPoliciesService) CopyRules(securityPolicy string) *OrganizationSecurityPoliciesCopyRulesCall {
110456	c := &OrganizationSecurityPoliciesCopyRulesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110457	c.securityPolicy = securityPolicy
110458	return c
110459}
110460
110461// RequestId sets the optional parameter "requestId": An optional
110462// request ID to identify requests. Specify a unique request ID so that
110463// if you must retry your request, the server will know to ignore the
110464// request if it has already been completed.
110465//
110466// For example, consider a situation where you make an initial request
110467// and the request times out. If you make the request again with the
110468// same request ID, the server can check if original operation with the
110469// same request ID was received, and if so, will ignore the second
110470// request. This prevents clients from accidentally creating duplicate
110471// commitments.
110472//
110473// The request ID must be a valid UUID with the exception that zero UUID
110474// is not supported (00000000-0000-0000-0000-000000000000).
110475func (c *OrganizationSecurityPoliciesCopyRulesCall) RequestId(requestId string) *OrganizationSecurityPoliciesCopyRulesCall {
110476	c.urlParams_.Set("requestId", requestId)
110477	return c
110478}
110479
110480// SourceSecurityPolicy sets the optional parameter
110481// "sourceSecurityPolicy": The security policy from which to copy rules.
110482func (c *OrganizationSecurityPoliciesCopyRulesCall) SourceSecurityPolicy(sourceSecurityPolicy string) *OrganizationSecurityPoliciesCopyRulesCall {
110483	c.urlParams_.Set("sourceSecurityPolicy", sourceSecurityPolicy)
110484	return c
110485}
110486
110487// Fields allows partial responses to be retrieved. See
110488// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110489// for more information.
110490func (c *OrganizationSecurityPoliciesCopyRulesCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesCopyRulesCall {
110491	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110492	return c
110493}
110494
110495// Context sets the context to be used in this call's Do method. Any
110496// pending HTTP request will be aborted if the provided context is
110497// canceled.
110498func (c *OrganizationSecurityPoliciesCopyRulesCall) Context(ctx context.Context) *OrganizationSecurityPoliciesCopyRulesCall {
110499	c.ctx_ = ctx
110500	return c
110501}
110502
110503// Header returns an http.Header that can be modified by the caller to
110504// add HTTP headers to the request.
110505func (c *OrganizationSecurityPoliciesCopyRulesCall) Header() http.Header {
110506	if c.header_ == nil {
110507		c.header_ = make(http.Header)
110508	}
110509	return c.header_
110510}
110511
110512func (c *OrganizationSecurityPoliciesCopyRulesCall) doRequest(alt string) (*http.Response, error) {
110513	reqHeaders := make(http.Header)
110514	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
110515	for k, v := range c.header_ {
110516		reqHeaders[k] = v
110517	}
110518	reqHeaders.Set("User-Agent", c.s.userAgent())
110519	var body io.Reader = nil
110520	c.urlParams_.Set("alt", alt)
110521	c.urlParams_.Set("prettyPrint", "false")
110522	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/copyRules")
110523	urls += "?" + c.urlParams_.Encode()
110524	req, err := http.NewRequest("POST", urls, body)
110525	if err != nil {
110526		return nil, err
110527	}
110528	req.Header = reqHeaders
110529	googleapi.Expand(req.URL, map[string]string{
110530		"securityPolicy": c.securityPolicy,
110531	})
110532	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110533}
110534
110535// Do executes the "compute.organizationSecurityPolicies.copyRules" call.
110536// Exactly one of *Operation or error will be non-nil. Any non-2xx
110537// status code is an error. Response headers are in either
110538// *Operation.ServerResponse.Header or (if a response was returned at
110539// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
110540// to check whether the returned error was because
110541// http.StatusNotModified was returned.
110542func (c *OrganizationSecurityPoliciesCopyRulesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
110543	gensupport.SetOptions(c.urlParams_, opts...)
110544	res, err := c.doRequest("json")
110545	if res != nil && res.StatusCode == http.StatusNotModified {
110546		if res.Body != nil {
110547			res.Body.Close()
110548		}
110549		return nil, &googleapi.Error{
110550			Code:   res.StatusCode,
110551			Header: res.Header,
110552		}
110553	}
110554	if err != nil {
110555		return nil, err
110556	}
110557	defer googleapi.CloseBody(res)
110558	if err := googleapi.CheckResponse(res); err != nil {
110559		return nil, err
110560	}
110561	ret := &Operation{
110562		ServerResponse: googleapi.ServerResponse{
110563			Header:         res.Header,
110564			HTTPStatusCode: res.StatusCode,
110565		},
110566	}
110567	target := &ret
110568	if err := gensupport.DecodeResponse(target, res); err != nil {
110569		return nil, err
110570	}
110571	return ret, nil
110572	// {
110573	//   "description": "Copies rules to the specified security policy.",
110574	//   "httpMethod": "POST",
110575	//   "id": "compute.organizationSecurityPolicies.copyRules",
110576	//   "parameterOrder": [
110577	//     "securityPolicy"
110578	//   ],
110579	//   "parameters": {
110580	//     "requestId": {
110581	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
110582	//       "location": "query",
110583	//       "type": "string"
110584	//     },
110585	//     "securityPolicy": {
110586	//       "description": "Name of the security policy to update.",
110587	//       "location": "path",
110588	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
110589	//       "required": true,
110590	//       "type": "string"
110591	//     },
110592	//     "sourceSecurityPolicy": {
110593	//       "description": "The security policy from which to copy rules.",
110594	//       "location": "query",
110595	//       "type": "string"
110596	//     }
110597	//   },
110598	//   "path": "locations/global/securityPolicies/{securityPolicy}/copyRules",
110599	//   "response": {
110600	//     "$ref": "Operation"
110601	//   },
110602	//   "scopes": [
110603	//     "https://www.googleapis.com/auth/cloud-platform",
110604	//     "https://www.googleapis.com/auth/compute"
110605	//   ]
110606	// }
110607
110608}
110609
110610// method id "compute.organizationSecurityPolicies.delete":
110611
110612type OrganizationSecurityPoliciesDeleteCall struct {
110613	s              *Service
110614	securityPolicy string
110615	urlParams_     gensupport.URLParams
110616	ctx_           context.Context
110617	header_        http.Header
110618}
110619
110620// Delete: Deletes the specified policy.
110621func (r *OrganizationSecurityPoliciesService) Delete(securityPolicy string) *OrganizationSecurityPoliciesDeleteCall {
110622	c := &OrganizationSecurityPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110623	c.securityPolicy = securityPolicy
110624	return c
110625}
110626
110627// RequestId sets the optional parameter "requestId": An optional
110628// request ID to identify requests. Specify a unique request ID so that
110629// if you must retry your request, the server will know to ignore the
110630// request if it has already been completed.
110631//
110632// For example, consider a situation where you make an initial request
110633// and the request times out. If you make the request again with the
110634// same request ID, the server can check if original operation with the
110635// same request ID was received, and if so, will ignore the second
110636// request. This prevents clients from accidentally creating duplicate
110637// commitments.
110638//
110639// The request ID must be a valid UUID with the exception that zero UUID
110640// is not supported (00000000-0000-0000-0000-000000000000).
110641func (c *OrganizationSecurityPoliciesDeleteCall) RequestId(requestId string) *OrganizationSecurityPoliciesDeleteCall {
110642	c.urlParams_.Set("requestId", requestId)
110643	return c
110644}
110645
110646// Fields allows partial responses to be retrieved. See
110647// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110648// for more information.
110649func (c *OrganizationSecurityPoliciesDeleteCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesDeleteCall {
110650	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110651	return c
110652}
110653
110654// Context sets the context to be used in this call's Do method. Any
110655// pending HTTP request will be aborted if the provided context is
110656// canceled.
110657func (c *OrganizationSecurityPoliciesDeleteCall) Context(ctx context.Context) *OrganizationSecurityPoliciesDeleteCall {
110658	c.ctx_ = ctx
110659	return c
110660}
110661
110662// Header returns an http.Header that can be modified by the caller to
110663// add HTTP headers to the request.
110664func (c *OrganizationSecurityPoliciesDeleteCall) Header() http.Header {
110665	if c.header_ == nil {
110666		c.header_ = make(http.Header)
110667	}
110668	return c.header_
110669}
110670
110671func (c *OrganizationSecurityPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
110672	reqHeaders := make(http.Header)
110673	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
110674	for k, v := range c.header_ {
110675		reqHeaders[k] = v
110676	}
110677	reqHeaders.Set("User-Agent", c.s.userAgent())
110678	var body io.Reader = nil
110679	c.urlParams_.Set("alt", alt)
110680	c.urlParams_.Set("prettyPrint", "false")
110681	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}")
110682	urls += "?" + c.urlParams_.Encode()
110683	req, err := http.NewRequest("DELETE", urls, body)
110684	if err != nil {
110685		return nil, err
110686	}
110687	req.Header = reqHeaders
110688	googleapi.Expand(req.URL, map[string]string{
110689		"securityPolicy": c.securityPolicy,
110690	})
110691	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110692}
110693
110694// Do executes the "compute.organizationSecurityPolicies.delete" call.
110695// Exactly one of *Operation or error will be non-nil. Any non-2xx
110696// status code is an error. Response headers are in either
110697// *Operation.ServerResponse.Header or (if a response was returned at
110698// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
110699// to check whether the returned error was because
110700// http.StatusNotModified was returned.
110701func (c *OrganizationSecurityPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
110702	gensupport.SetOptions(c.urlParams_, opts...)
110703	res, err := c.doRequest("json")
110704	if res != nil && res.StatusCode == http.StatusNotModified {
110705		if res.Body != nil {
110706			res.Body.Close()
110707		}
110708		return nil, &googleapi.Error{
110709			Code:   res.StatusCode,
110710			Header: res.Header,
110711		}
110712	}
110713	if err != nil {
110714		return nil, err
110715	}
110716	defer googleapi.CloseBody(res)
110717	if err := googleapi.CheckResponse(res); err != nil {
110718		return nil, err
110719	}
110720	ret := &Operation{
110721		ServerResponse: googleapi.ServerResponse{
110722			Header:         res.Header,
110723			HTTPStatusCode: res.StatusCode,
110724		},
110725	}
110726	target := &ret
110727	if err := gensupport.DecodeResponse(target, res); err != nil {
110728		return nil, err
110729	}
110730	return ret, nil
110731	// {
110732	//   "description": "Deletes the specified policy.",
110733	//   "httpMethod": "DELETE",
110734	//   "id": "compute.organizationSecurityPolicies.delete",
110735	//   "parameterOrder": [
110736	//     "securityPolicy"
110737	//   ],
110738	//   "parameters": {
110739	//     "requestId": {
110740	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
110741	//       "location": "query",
110742	//       "type": "string"
110743	//     },
110744	//     "securityPolicy": {
110745	//       "description": "Name of the security policy to delete.",
110746	//       "location": "path",
110747	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
110748	//       "required": true,
110749	//       "type": "string"
110750	//     }
110751	//   },
110752	//   "path": "locations/global/securityPolicies/{securityPolicy}",
110753	//   "response": {
110754	//     "$ref": "Operation"
110755	//   },
110756	//   "scopes": [
110757	//     "https://www.googleapis.com/auth/cloud-platform",
110758	//     "https://www.googleapis.com/auth/compute"
110759	//   ]
110760	// }
110761
110762}
110763
110764// method id "compute.organizationSecurityPolicies.get":
110765
110766type OrganizationSecurityPoliciesGetCall struct {
110767	s              *Service
110768	securityPolicy string
110769	urlParams_     gensupport.URLParams
110770	ifNoneMatch_   string
110771	ctx_           context.Context
110772	header_        http.Header
110773}
110774
110775// Get: List all of the ordered rules present in a single specified
110776// policy.
110777func (r *OrganizationSecurityPoliciesService) Get(securityPolicy string) *OrganizationSecurityPoliciesGetCall {
110778	c := &OrganizationSecurityPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110779	c.securityPolicy = securityPolicy
110780	return c
110781}
110782
110783// Fields allows partial responses to be retrieved. See
110784// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110785// for more information.
110786func (c *OrganizationSecurityPoliciesGetCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesGetCall {
110787	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110788	return c
110789}
110790
110791// IfNoneMatch sets the optional parameter which makes the operation
110792// fail if the object's ETag matches the given value. This is useful for
110793// getting updates only after the object has changed since the last
110794// request. Use googleapi.IsNotModified to check whether the response
110795// error from Do is the result of In-None-Match.
110796func (c *OrganizationSecurityPoliciesGetCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesGetCall {
110797	c.ifNoneMatch_ = entityTag
110798	return c
110799}
110800
110801// Context sets the context to be used in this call's Do method. Any
110802// pending HTTP request will be aborted if the provided context is
110803// canceled.
110804func (c *OrganizationSecurityPoliciesGetCall) Context(ctx context.Context) *OrganizationSecurityPoliciesGetCall {
110805	c.ctx_ = ctx
110806	return c
110807}
110808
110809// Header returns an http.Header that can be modified by the caller to
110810// add HTTP headers to the request.
110811func (c *OrganizationSecurityPoliciesGetCall) Header() http.Header {
110812	if c.header_ == nil {
110813		c.header_ = make(http.Header)
110814	}
110815	return c.header_
110816}
110817
110818func (c *OrganizationSecurityPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
110819	reqHeaders := make(http.Header)
110820	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
110821	for k, v := range c.header_ {
110822		reqHeaders[k] = v
110823	}
110824	reqHeaders.Set("User-Agent", c.s.userAgent())
110825	if c.ifNoneMatch_ != "" {
110826		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
110827	}
110828	var body io.Reader = nil
110829	c.urlParams_.Set("alt", alt)
110830	c.urlParams_.Set("prettyPrint", "false")
110831	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}")
110832	urls += "?" + c.urlParams_.Encode()
110833	req, err := http.NewRequest("GET", urls, body)
110834	if err != nil {
110835		return nil, err
110836	}
110837	req.Header = reqHeaders
110838	googleapi.Expand(req.URL, map[string]string{
110839		"securityPolicy": c.securityPolicy,
110840	})
110841	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110842}
110843
110844// Do executes the "compute.organizationSecurityPolicies.get" call.
110845// Exactly one of *SecurityPolicy or error will be non-nil. Any non-2xx
110846// status code is an error. Response headers are in either
110847// *SecurityPolicy.ServerResponse.Header or (if a response was returned
110848// at all) in error.(*googleapi.Error).Header. Use
110849// googleapi.IsNotModified to check whether the returned error was
110850// because http.StatusNotModified was returned.
110851func (c *OrganizationSecurityPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SecurityPolicy, error) {
110852	gensupport.SetOptions(c.urlParams_, opts...)
110853	res, err := c.doRequest("json")
110854	if res != nil && res.StatusCode == http.StatusNotModified {
110855		if res.Body != nil {
110856			res.Body.Close()
110857		}
110858		return nil, &googleapi.Error{
110859			Code:   res.StatusCode,
110860			Header: res.Header,
110861		}
110862	}
110863	if err != nil {
110864		return nil, err
110865	}
110866	defer googleapi.CloseBody(res)
110867	if err := googleapi.CheckResponse(res); err != nil {
110868		return nil, err
110869	}
110870	ret := &SecurityPolicy{
110871		ServerResponse: googleapi.ServerResponse{
110872			Header:         res.Header,
110873			HTTPStatusCode: res.StatusCode,
110874		},
110875	}
110876	target := &ret
110877	if err := gensupport.DecodeResponse(target, res); err != nil {
110878		return nil, err
110879	}
110880	return ret, nil
110881	// {
110882	//   "description": "List all of the ordered rules present in a single specified policy.",
110883	//   "httpMethod": "GET",
110884	//   "id": "compute.organizationSecurityPolicies.get",
110885	//   "parameterOrder": [
110886	//     "securityPolicy"
110887	//   ],
110888	//   "parameters": {
110889	//     "securityPolicy": {
110890	//       "description": "Name of the security policy to get.",
110891	//       "location": "path",
110892	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
110893	//       "required": true,
110894	//       "type": "string"
110895	//     }
110896	//   },
110897	//   "path": "locations/global/securityPolicies/{securityPolicy}",
110898	//   "response": {
110899	//     "$ref": "SecurityPolicy"
110900	//   },
110901	//   "scopes": [
110902	//     "https://www.googleapis.com/auth/cloud-platform",
110903	//     "https://www.googleapis.com/auth/compute",
110904	//     "https://www.googleapis.com/auth/compute.readonly"
110905	//   ]
110906	// }
110907
110908}
110909
110910// method id "compute.organizationSecurityPolicies.getAssociation":
110911
110912type OrganizationSecurityPoliciesGetAssociationCall struct {
110913	s              *Service
110914	securityPolicy string
110915	urlParams_     gensupport.URLParams
110916	ifNoneMatch_   string
110917	ctx_           context.Context
110918	header_        http.Header
110919}
110920
110921// GetAssociation: Gets an association with the specified name.
110922func (r *OrganizationSecurityPoliciesService) GetAssociation(securityPolicy string) *OrganizationSecurityPoliciesGetAssociationCall {
110923	c := &OrganizationSecurityPoliciesGetAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110924	c.securityPolicy = securityPolicy
110925	return c
110926}
110927
110928// Name sets the optional parameter "name": The name of the association
110929// to get from the security policy.
110930func (c *OrganizationSecurityPoliciesGetAssociationCall) Name(name string) *OrganizationSecurityPoliciesGetAssociationCall {
110931	c.urlParams_.Set("name", name)
110932	return c
110933}
110934
110935// Fields allows partial responses to be retrieved. See
110936// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110937// for more information.
110938func (c *OrganizationSecurityPoliciesGetAssociationCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesGetAssociationCall {
110939	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110940	return c
110941}
110942
110943// IfNoneMatch sets the optional parameter which makes the operation
110944// fail if the object's ETag matches the given value. This is useful for
110945// getting updates only after the object has changed since the last
110946// request. Use googleapi.IsNotModified to check whether the response
110947// error from Do is the result of In-None-Match.
110948func (c *OrganizationSecurityPoliciesGetAssociationCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesGetAssociationCall {
110949	c.ifNoneMatch_ = entityTag
110950	return c
110951}
110952
110953// Context sets the context to be used in this call's Do method. Any
110954// pending HTTP request will be aborted if the provided context is
110955// canceled.
110956func (c *OrganizationSecurityPoliciesGetAssociationCall) Context(ctx context.Context) *OrganizationSecurityPoliciesGetAssociationCall {
110957	c.ctx_ = ctx
110958	return c
110959}
110960
110961// Header returns an http.Header that can be modified by the caller to
110962// add HTTP headers to the request.
110963func (c *OrganizationSecurityPoliciesGetAssociationCall) Header() http.Header {
110964	if c.header_ == nil {
110965		c.header_ = make(http.Header)
110966	}
110967	return c.header_
110968}
110969
110970func (c *OrganizationSecurityPoliciesGetAssociationCall) doRequest(alt string) (*http.Response, error) {
110971	reqHeaders := make(http.Header)
110972	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
110973	for k, v := range c.header_ {
110974		reqHeaders[k] = v
110975	}
110976	reqHeaders.Set("User-Agent", c.s.userAgent())
110977	if c.ifNoneMatch_ != "" {
110978		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
110979	}
110980	var body io.Reader = nil
110981	c.urlParams_.Set("alt", alt)
110982	c.urlParams_.Set("prettyPrint", "false")
110983	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/getAssociation")
110984	urls += "?" + c.urlParams_.Encode()
110985	req, err := http.NewRequest("GET", urls, body)
110986	if err != nil {
110987		return nil, err
110988	}
110989	req.Header = reqHeaders
110990	googleapi.Expand(req.URL, map[string]string{
110991		"securityPolicy": c.securityPolicy,
110992	})
110993	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110994}
110995
110996// Do executes the "compute.organizationSecurityPolicies.getAssociation" call.
110997// Exactly one of *SecurityPolicyAssociation or error will be non-nil.
110998// Any non-2xx status code is an error. Response headers are in either
110999// *SecurityPolicyAssociation.ServerResponse.Header or (if a response
111000// was returned at all) in error.(*googleapi.Error).Header. Use
111001// googleapi.IsNotModified to check whether the returned error was
111002// because http.StatusNotModified was returned.
111003func (c *OrganizationSecurityPoliciesGetAssociationCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyAssociation, error) {
111004	gensupport.SetOptions(c.urlParams_, opts...)
111005	res, err := c.doRequest("json")
111006	if res != nil && res.StatusCode == http.StatusNotModified {
111007		if res.Body != nil {
111008			res.Body.Close()
111009		}
111010		return nil, &googleapi.Error{
111011			Code:   res.StatusCode,
111012			Header: res.Header,
111013		}
111014	}
111015	if err != nil {
111016		return nil, err
111017	}
111018	defer googleapi.CloseBody(res)
111019	if err := googleapi.CheckResponse(res); err != nil {
111020		return nil, err
111021	}
111022	ret := &SecurityPolicyAssociation{
111023		ServerResponse: googleapi.ServerResponse{
111024			Header:         res.Header,
111025			HTTPStatusCode: res.StatusCode,
111026		},
111027	}
111028	target := &ret
111029	if err := gensupport.DecodeResponse(target, res); err != nil {
111030		return nil, err
111031	}
111032	return ret, nil
111033	// {
111034	//   "description": "Gets an association with the specified name.",
111035	//   "httpMethod": "GET",
111036	//   "id": "compute.organizationSecurityPolicies.getAssociation",
111037	//   "parameterOrder": [
111038	//     "securityPolicy"
111039	//   ],
111040	//   "parameters": {
111041	//     "name": {
111042	//       "description": "The name of the association to get from the security policy.",
111043	//       "location": "query",
111044	//       "type": "string"
111045	//     },
111046	//     "securityPolicy": {
111047	//       "description": "Name of the security policy to which the queried rule belongs.",
111048	//       "location": "path",
111049	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
111050	//       "required": true,
111051	//       "type": "string"
111052	//     }
111053	//   },
111054	//   "path": "locations/global/securityPolicies/{securityPolicy}/getAssociation",
111055	//   "response": {
111056	//     "$ref": "SecurityPolicyAssociation"
111057	//   },
111058	//   "scopes": [
111059	//     "https://www.googleapis.com/auth/cloud-platform",
111060	//     "https://www.googleapis.com/auth/compute",
111061	//     "https://www.googleapis.com/auth/compute.readonly"
111062	//   ]
111063	// }
111064
111065}
111066
111067// method id "compute.organizationSecurityPolicies.getRule":
111068
111069type OrganizationSecurityPoliciesGetRuleCall struct {
111070	s              *Service
111071	securityPolicy string
111072	urlParams_     gensupport.URLParams
111073	ifNoneMatch_   string
111074	ctx_           context.Context
111075	header_        http.Header
111076}
111077
111078// GetRule: Gets a rule at the specified priority.
111079func (r *OrganizationSecurityPoliciesService) GetRule(securityPolicy string) *OrganizationSecurityPoliciesGetRuleCall {
111080	c := &OrganizationSecurityPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111081	c.securityPolicy = securityPolicy
111082	return c
111083}
111084
111085// Priority sets the optional parameter "priority": The priority of the
111086// rule to get from the security policy.
111087func (c *OrganizationSecurityPoliciesGetRuleCall) Priority(priority int64) *OrganizationSecurityPoliciesGetRuleCall {
111088	c.urlParams_.Set("priority", fmt.Sprint(priority))
111089	return c
111090}
111091
111092// Fields allows partial responses to be retrieved. See
111093// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111094// for more information.
111095func (c *OrganizationSecurityPoliciesGetRuleCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesGetRuleCall {
111096	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111097	return c
111098}
111099
111100// IfNoneMatch sets the optional parameter which makes the operation
111101// fail if the object's ETag matches the given value. This is useful for
111102// getting updates only after the object has changed since the last
111103// request. Use googleapi.IsNotModified to check whether the response
111104// error from Do is the result of In-None-Match.
111105func (c *OrganizationSecurityPoliciesGetRuleCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesGetRuleCall {
111106	c.ifNoneMatch_ = entityTag
111107	return c
111108}
111109
111110// Context sets the context to be used in this call's Do method. Any
111111// pending HTTP request will be aborted if the provided context is
111112// canceled.
111113func (c *OrganizationSecurityPoliciesGetRuleCall) Context(ctx context.Context) *OrganizationSecurityPoliciesGetRuleCall {
111114	c.ctx_ = ctx
111115	return c
111116}
111117
111118// Header returns an http.Header that can be modified by the caller to
111119// add HTTP headers to the request.
111120func (c *OrganizationSecurityPoliciesGetRuleCall) Header() http.Header {
111121	if c.header_ == nil {
111122		c.header_ = make(http.Header)
111123	}
111124	return c.header_
111125}
111126
111127func (c *OrganizationSecurityPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) {
111128	reqHeaders := make(http.Header)
111129	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
111130	for k, v := range c.header_ {
111131		reqHeaders[k] = v
111132	}
111133	reqHeaders.Set("User-Agent", c.s.userAgent())
111134	if c.ifNoneMatch_ != "" {
111135		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
111136	}
111137	var body io.Reader = nil
111138	c.urlParams_.Set("alt", alt)
111139	c.urlParams_.Set("prettyPrint", "false")
111140	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/getRule")
111141	urls += "?" + c.urlParams_.Encode()
111142	req, err := http.NewRequest("GET", urls, body)
111143	if err != nil {
111144		return nil, err
111145	}
111146	req.Header = reqHeaders
111147	googleapi.Expand(req.URL, map[string]string{
111148		"securityPolicy": c.securityPolicy,
111149	})
111150	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111151}
111152
111153// Do executes the "compute.organizationSecurityPolicies.getRule" call.
111154// Exactly one of *SecurityPolicyRule or error will be non-nil. Any
111155// non-2xx status code is an error. Response headers are in either
111156// *SecurityPolicyRule.ServerResponse.Header or (if a response was
111157// returned at all) in error.(*googleapi.Error).Header. Use
111158// googleapi.IsNotModified to check whether the returned error was
111159// because http.StatusNotModified was returned.
111160func (c *OrganizationSecurityPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyRule, error) {
111161	gensupport.SetOptions(c.urlParams_, opts...)
111162	res, err := c.doRequest("json")
111163	if res != nil && res.StatusCode == http.StatusNotModified {
111164		if res.Body != nil {
111165			res.Body.Close()
111166		}
111167		return nil, &googleapi.Error{
111168			Code:   res.StatusCode,
111169			Header: res.Header,
111170		}
111171	}
111172	if err != nil {
111173		return nil, err
111174	}
111175	defer googleapi.CloseBody(res)
111176	if err := googleapi.CheckResponse(res); err != nil {
111177		return nil, err
111178	}
111179	ret := &SecurityPolicyRule{
111180		ServerResponse: googleapi.ServerResponse{
111181			Header:         res.Header,
111182			HTTPStatusCode: res.StatusCode,
111183		},
111184	}
111185	target := &ret
111186	if err := gensupport.DecodeResponse(target, res); err != nil {
111187		return nil, err
111188	}
111189	return ret, nil
111190	// {
111191	//   "description": "Gets a rule at the specified priority.",
111192	//   "httpMethod": "GET",
111193	//   "id": "compute.organizationSecurityPolicies.getRule",
111194	//   "parameterOrder": [
111195	//     "securityPolicy"
111196	//   ],
111197	//   "parameters": {
111198	//     "priority": {
111199	//       "description": "The priority of the rule to get from the security policy.",
111200	//       "format": "int32",
111201	//       "location": "query",
111202	//       "type": "integer"
111203	//     },
111204	//     "securityPolicy": {
111205	//       "description": "Name of the security policy to which the queried rule belongs.",
111206	//       "location": "path",
111207	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
111208	//       "required": true,
111209	//       "type": "string"
111210	//     }
111211	//   },
111212	//   "path": "locations/global/securityPolicies/{securityPolicy}/getRule",
111213	//   "response": {
111214	//     "$ref": "SecurityPolicyRule"
111215	//   },
111216	//   "scopes": [
111217	//     "https://www.googleapis.com/auth/cloud-platform",
111218	//     "https://www.googleapis.com/auth/compute",
111219	//     "https://www.googleapis.com/auth/compute.readonly"
111220	//   ]
111221	// }
111222
111223}
111224
111225// method id "compute.organizationSecurityPolicies.insert":
111226
111227type OrganizationSecurityPoliciesInsertCall struct {
111228	s              *Service
111229	securitypolicy *SecurityPolicy
111230	urlParams_     gensupport.URLParams
111231	ctx_           context.Context
111232	header_        http.Header
111233}
111234
111235// Insert: Creates a new policy in the specified project using the data
111236// included in the request.
111237func (r *OrganizationSecurityPoliciesService) Insert(securitypolicy *SecurityPolicy) *OrganizationSecurityPoliciesInsertCall {
111238	c := &OrganizationSecurityPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111239	c.securitypolicy = securitypolicy
111240	return c
111241}
111242
111243// ParentId sets the optional parameter "parentId": Parent ID for this
111244// request.
111245func (c *OrganizationSecurityPoliciesInsertCall) ParentId(parentId string) *OrganizationSecurityPoliciesInsertCall {
111246	c.urlParams_.Set("parentId", parentId)
111247	return c
111248}
111249
111250// RequestId sets the optional parameter "requestId": An optional
111251// request ID to identify requests. Specify a unique request ID so that
111252// if you must retry your request, the server will know to ignore the
111253// request if it has already been completed.
111254//
111255// For example, consider a situation where you make an initial request
111256// and the request times out. If you make the request again with the
111257// same request ID, the server can check if original operation with the
111258// same request ID was received, and if so, will ignore the second
111259// request. This prevents clients from accidentally creating duplicate
111260// commitments.
111261//
111262// The request ID must be a valid UUID with the exception that zero UUID
111263// is not supported (00000000-0000-0000-0000-000000000000).
111264func (c *OrganizationSecurityPoliciesInsertCall) RequestId(requestId string) *OrganizationSecurityPoliciesInsertCall {
111265	c.urlParams_.Set("requestId", requestId)
111266	return c
111267}
111268
111269// Fields allows partial responses to be retrieved. See
111270// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111271// for more information.
111272func (c *OrganizationSecurityPoliciesInsertCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesInsertCall {
111273	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111274	return c
111275}
111276
111277// Context sets the context to be used in this call's Do method. Any
111278// pending HTTP request will be aborted if the provided context is
111279// canceled.
111280func (c *OrganizationSecurityPoliciesInsertCall) Context(ctx context.Context) *OrganizationSecurityPoliciesInsertCall {
111281	c.ctx_ = ctx
111282	return c
111283}
111284
111285// Header returns an http.Header that can be modified by the caller to
111286// add HTTP headers to the request.
111287func (c *OrganizationSecurityPoliciesInsertCall) Header() http.Header {
111288	if c.header_ == nil {
111289		c.header_ = make(http.Header)
111290	}
111291	return c.header_
111292}
111293
111294func (c *OrganizationSecurityPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
111295	reqHeaders := make(http.Header)
111296	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
111297	for k, v := range c.header_ {
111298		reqHeaders[k] = v
111299	}
111300	reqHeaders.Set("User-Agent", c.s.userAgent())
111301	var body io.Reader = nil
111302	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
111303	if err != nil {
111304		return nil, err
111305	}
111306	reqHeaders.Set("Content-Type", "application/json")
111307	c.urlParams_.Set("alt", alt)
111308	c.urlParams_.Set("prettyPrint", "false")
111309	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies")
111310	urls += "?" + c.urlParams_.Encode()
111311	req, err := http.NewRequest("POST", urls, body)
111312	if err != nil {
111313		return nil, err
111314	}
111315	req.Header = reqHeaders
111316	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111317}
111318
111319// Do executes the "compute.organizationSecurityPolicies.insert" call.
111320// Exactly one of *Operation or error will be non-nil. Any non-2xx
111321// status code is an error. Response headers are in either
111322// *Operation.ServerResponse.Header or (if a response was returned at
111323// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111324// to check whether the returned error was because
111325// http.StatusNotModified was returned.
111326func (c *OrganizationSecurityPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111327	gensupport.SetOptions(c.urlParams_, opts...)
111328	res, err := c.doRequest("json")
111329	if res != nil && res.StatusCode == http.StatusNotModified {
111330		if res.Body != nil {
111331			res.Body.Close()
111332		}
111333		return nil, &googleapi.Error{
111334			Code:   res.StatusCode,
111335			Header: res.Header,
111336		}
111337	}
111338	if err != nil {
111339		return nil, err
111340	}
111341	defer googleapi.CloseBody(res)
111342	if err := googleapi.CheckResponse(res); err != nil {
111343		return nil, err
111344	}
111345	ret := &Operation{
111346		ServerResponse: googleapi.ServerResponse{
111347			Header:         res.Header,
111348			HTTPStatusCode: res.StatusCode,
111349		},
111350	}
111351	target := &ret
111352	if err := gensupport.DecodeResponse(target, res); err != nil {
111353		return nil, err
111354	}
111355	return ret, nil
111356	// {
111357	//   "description": "Creates a new policy in the specified project using the data included in the request.",
111358	//   "httpMethod": "POST",
111359	//   "id": "compute.organizationSecurityPolicies.insert",
111360	//   "parameters": {
111361	//     "parentId": {
111362	//       "description": "Parent ID for this request.",
111363	//       "location": "query",
111364	//       "type": "string"
111365	//     },
111366	//     "requestId": {
111367	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
111368	//       "location": "query",
111369	//       "type": "string"
111370	//     }
111371	//   },
111372	//   "path": "locations/global/securityPolicies",
111373	//   "request": {
111374	//     "$ref": "SecurityPolicy"
111375	//   },
111376	//   "response": {
111377	//     "$ref": "Operation"
111378	//   },
111379	//   "scopes": [
111380	//     "https://www.googleapis.com/auth/cloud-platform",
111381	//     "https://www.googleapis.com/auth/compute"
111382	//   ]
111383	// }
111384
111385}
111386
111387// method id "compute.organizationSecurityPolicies.list":
111388
111389type OrganizationSecurityPoliciesListCall struct {
111390	s            *Service
111391	urlParams_   gensupport.URLParams
111392	ifNoneMatch_ string
111393	ctx_         context.Context
111394	header_      http.Header
111395}
111396
111397// List: List all the policies that have been configured for the
111398// specified project.
111399func (r *OrganizationSecurityPoliciesService) List() *OrganizationSecurityPoliciesListCall {
111400	c := &OrganizationSecurityPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111401	return c
111402}
111403
111404// Filter sets the optional parameter "filter": A filter expression that
111405// filters resources listed in the response. The expression must specify
111406// the field name, a comparison operator, and the value that you want to
111407// use for filtering. The value must be a string, a number, or a
111408// boolean. The comparison operator must be either =, !=, >, or <.
111409//
111410// For example, if you are filtering Compute Engine instances, you can
111411// exclude instances named example-instance by specifying name !=
111412// example-instance.
111413//
111414// You can also filter nested fields. For example, you could specify
111415// scheduling.automaticRestart = false to include instances only if they
111416// are not scheduled for automatic restarts. You can use filtering on
111417// nested fields to filter based on resource labels.
111418//
111419// To filter on multiple expressions, provide each separate expression
111420// within parentheses. For example, (scheduling.automaticRestart = true)
111421// (cpuPlatform = "Intel Skylake"). By default, each expression is an
111422// AND expression. However, you can include AND and OR expressions
111423// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
111424// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
111425// true).
111426func (c *OrganizationSecurityPoliciesListCall) Filter(filter string) *OrganizationSecurityPoliciesListCall {
111427	c.urlParams_.Set("filter", filter)
111428	return c
111429}
111430
111431// MaxResults sets the optional parameter "maxResults": The maximum
111432// number of results per page that should be returned. If the number of
111433// available results is larger than maxResults, Compute Engine returns a
111434// nextPageToken that can be used to get the next page of results in
111435// subsequent list requests. Acceptable values are 0 to 500, inclusive.
111436// (Default: 500)
111437func (c *OrganizationSecurityPoliciesListCall) MaxResults(maxResults int64) *OrganizationSecurityPoliciesListCall {
111438	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
111439	return c
111440}
111441
111442// OrderBy sets the optional parameter "orderBy": Sorts list results by
111443// a certain order. By default, results are returned in alphanumerical
111444// order based on the resource name.
111445//
111446// You can also sort results in descending order based on the creation
111447// timestamp using orderBy="creationTimestamp desc". This sorts results
111448// based on the creationTimestamp field in reverse chronological order
111449// (newest result first). Use this to sort resources like operations so
111450// that the newest operation is returned first.
111451//
111452// Currently, only sorting by name or creationTimestamp desc is
111453// supported.
111454func (c *OrganizationSecurityPoliciesListCall) OrderBy(orderBy string) *OrganizationSecurityPoliciesListCall {
111455	c.urlParams_.Set("orderBy", orderBy)
111456	return c
111457}
111458
111459// PageToken sets the optional parameter "pageToken": Specifies a page
111460// token to use. Set pageToken to the nextPageToken returned by a
111461// previous list request to get the next page of results.
111462func (c *OrganizationSecurityPoliciesListCall) PageToken(pageToken string) *OrganizationSecurityPoliciesListCall {
111463	c.urlParams_.Set("pageToken", pageToken)
111464	return c
111465}
111466
111467// ParentId sets the optional parameter "parentId": Parent ID for this
111468// request.
111469func (c *OrganizationSecurityPoliciesListCall) ParentId(parentId string) *OrganizationSecurityPoliciesListCall {
111470	c.urlParams_.Set("parentId", parentId)
111471	return c
111472}
111473
111474// Fields allows partial responses to be retrieved. See
111475// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111476// for more information.
111477func (c *OrganizationSecurityPoliciesListCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesListCall {
111478	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111479	return c
111480}
111481
111482// IfNoneMatch sets the optional parameter which makes the operation
111483// fail if the object's ETag matches the given value. This is useful for
111484// getting updates only after the object has changed since the last
111485// request. Use googleapi.IsNotModified to check whether the response
111486// error from Do is the result of In-None-Match.
111487func (c *OrganizationSecurityPoliciesListCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesListCall {
111488	c.ifNoneMatch_ = entityTag
111489	return c
111490}
111491
111492// Context sets the context to be used in this call's Do method. Any
111493// pending HTTP request will be aborted if the provided context is
111494// canceled.
111495func (c *OrganizationSecurityPoliciesListCall) Context(ctx context.Context) *OrganizationSecurityPoliciesListCall {
111496	c.ctx_ = ctx
111497	return c
111498}
111499
111500// Header returns an http.Header that can be modified by the caller to
111501// add HTTP headers to the request.
111502func (c *OrganizationSecurityPoliciesListCall) Header() http.Header {
111503	if c.header_ == nil {
111504		c.header_ = make(http.Header)
111505	}
111506	return c.header_
111507}
111508
111509func (c *OrganizationSecurityPoliciesListCall) doRequest(alt string) (*http.Response, error) {
111510	reqHeaders := make(http.Header)
111511	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
111512	for k, v := range c.header_ {
111513		reqHeaders[k] = v
111514	}
111515	reqHeaders.Set("User-Agent", c.s.userAgent())
111516	if c.ifNoneMatch_ != "" {
111517		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
111518	}
111519	var body io.Reader = nil
111520	c.urlParams_.Set("alt", alt)
111521	c.urlParams_.Set("prettyPrint", "false")
111522	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies")
111523	urls += "?" + c.urlParams_.Encode()
111524	req, err := http.NewRequest("GET", urls, body)
111525	if err != nil {
111526		return nil, err
111527	}
111528	req.Header = reqHeaders
111529	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111530}
111531
111532// Do executes the "compute.organizationSecurityPolicies.list" call.
111533// Exactly one of *SecurityPolicyList or error will be non-nil. Any
111534// non-2xx status code is an error. Response headers are in either
111535// *SecurityPolicyList.ServerResponse.Header or (if a response was
111536// returned at all) in error.(*googleapi.Error).Header. Use
111537// googleapi.IsNotModified to check whether the returned error was
111538// because http.StatusNotModified was returned.
111539func (c *OrganizationSecurityPoliciesListCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyList, error) {
111540	gensupport.SetOptions(c.urlParams_, opts...)
111541	res, err := c.doRequest("json")
111542	if res != nil && res.StatusCode == http.StatusNotModified {
111543		if res.Body != nil {
111544			res.Body.Close()
111545		}
111546		return nil, &googleapi.Error{
111547			Code:   res.StatusCode,
111548			Header: res.Header,
111549		}
111550	}
111551	if err != nil {
111552		return nil, err
111553	}
111554	defer googleapi.CloseBody(res)
111555	if err := googleapi.CheckResponse(res); err != nil {
111556		return nil, err
111557	}
111558	ret := &SecurityPolicyList{
111559		ServerResponse: googleapi.ServerResponse{
111560			Header:         res.Header,
111561			HTTPStatusCode: res.StatusCode,
111562		},
111563	}
111564	target := &ret
111565	if err := gensupport.DecodeResponse(target, res); err != nil {
111566		return nil, err
111567	}
111568	return ret, nil
111569	// {
111570	//   "description": "List all the policies that have been configured for the specified project.",
111571	//   "httpMethod": "GET",
111572	//   "id": "compute.organizationSecurityPolicies.list",
111573	//   "parameters": {
111574	//     "filter": {
111575	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
111576	//       "location": "query",
111577	//       "type": "string"
111578	//     },
111579	//     "maxResults": {
111580	//       "default": "500",
111581	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
111582	//       "format": "uint32",
111583	//       "location": "query",
111584	//       "minimum": "0",
111585	//       "type": "integer"
111586	//     },
111587	//     "orderBy": {
111588	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
111589	//       "location": "query",
111590	//       "type": "string"
111591	//     },
111592	//     "pageToken": {
111593	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
111594	//       "location": "query",
111595	//       "type": "string"
111596	//     },
111597	//     "parentId": {
111598	//       "description": "Parent ID for this request.",
111599	//       "location": "query",
111600	//       "type": "string"
111601	//     }
111602	//   },
111603	//   "path": "locations/global/securityPolicies",
111604	//   "response": {
111605	//     "$ref": "SecurityPolicyList"
111606	//   },
111607	//   "scopes": [
111608	//     "https://www.googleapis.com/auth/cloud-platform",
111609	//     "https://www.googleapis.com/auth/compute",
111610	//     "https://www.googleapis.com/auth/compute.readonly"
111611	//   ]
111612	// }
111613
111614}
111615
111616// Pages invokes f for each page of results.
111617// A non-nil error returned from f will halt the iteration.
111618// The provided context supersedes any context provided to the Context method.
111619func (c *OrganizationSecurityPoliciesListCall) Pages(ctx context.Context, f func(*SecurityPolicyList) error) error {
111620	c.ctx_ = ctx
111621	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
111622	for {
111623		x, err := c.Do()
111624		if err != nil {
111625			return err
111626		}
111627		if err := f(x); err != nil {
111628			return err
111629		}
111630		if x.NextPageToken == "" {
111631			return nil
111632		}
111633		c.PageToken(x.NextPageToken)
111634	}
111635}
111636
111637// method id "compute.organizationSecurityPolicies.listAssociations":
111638
111639type OrganizationSecurityPoliciesListAssociationsCall struct {
111640	s            *Service
111641	urlParams_   gensupport.URLParams
111642	ifNoneMatch_ string
111643	ctx_         context.Context
111644	header_      http.Header
111645}
111646
111647// ListAssociations: Lists associations of a specified target, i.e.,
111648// organization or folder.
111649func (r *OrganizationSecurityPoliciesService) ListAssociations() *OrganizationSecurityPoliciesListAssociationsCall {
111650	c := &OrganizationSecurityPoliciesListAssociationsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111651	return c
111652}
111653
111654// TargetResource sets the optional parameter "targetResource": The
111655// target resource to list associations. It is an organization, or a
111656// folder.
111657func (c *OrganizationSecurityPoliciesListAssociationsCall) TargetResource(targetResource string) *OrganizationSecurityPoliciesListAssociationsCall {
111658	c.urlParams_.Set("targetResource", targetResource)
111659	return c
111660}
111661
111662// Fields allows partial responses to be retrieved. See
111663// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111664// for more information.
111665func (c *OrganizationSecurityPoliciesListAssociationsCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesListAssociationsCall {
111666	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111667	return c
111668}
111669
111670// IfNoneMatch sets the optional parameter which makes the operation
111671// fail if the object's ETag matches the given value. This is useful for
111672// getting updates only after the object has changed since the last
111673// request. Use googleapi.IsNotModified to check whether the response
111674// error from Do is the result of In-None-Match.
111675func (c *OrganizationSecurityPoliciesListAssociationsCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesListAssociationsCall {
111676	c.ifNoneMatch_ = entityTag
111677	return c
111678}
111679
111680// Context sets the context to be used in this call's Do method. Any
111681// pending HTTP request will be aborted if the provided context is
111682// canceled.
111683func (c *OrganizationSecurityPoliciesListAssociationsCall) Context(ctx context.Context) *OrganizationSecurityPoliciesListAssociationsCall {
111684	c.ctx_ = ctx
111685	return c
111686}
111687
111688// Header returns an http.Header that can be modified by the caller to
111689// add HTTP headers to the request.
111690func (c *OrganizationSecurityPoliciesListAssociationsCall) Header() http.Header {
111691	if c.header_ == nil {
111692		c.header_ = make(http.Header)
111693	}
111694	return c.header_
111695}
111696
111697func (c *OrganizationSecurityPoliciesListAssociationsCall) doRequest(alt string) (*http.Response, error) {
111698	reqHeaders := make(http.Header)
111699	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
111700	for k, v := range c.header_ {
111701		reqHeaders[k] = v
111702	}
111703	reqHeaders.Set("User-Agent", c.s.userAgent())
111704	if c.ifNoneMatch_ != "" {
111705		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
111706	}
111707	var body io.Reader = nil
111708	c.urlParams_.Set("alt", alt)
111709	c.urlParams_.Set("prettyPrint", "false")
111710	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/listAssociations")
111711	urls += "?" + c.urlParams_.Encode()
111712	req, err := http.NewRequest("GET", urls, body)
111713	if err != nil {
111714		return nil, err
111715	}
111716	req.Header = reqHeaders
111717	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111718}
111719
111720// Do executes the "compute.organizationSecurityPolicies.listAssociations" call.
111721// Exactly one of *OrganizationSecurityPoliciesListAssociationsResponse
111722// or error will be non-nil. Any non-2xx status code is an error.
111723// Response headers are in either
111724// *OrganizationSecurityPoliciesListAssociationsResponse.ServerResponse.H
111725// eader or (if a response was returned at all) in
111726// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
111727// whether the returned error was because http.StatusNotModified was
111728// returned.
111729func (c *OrganizationSecurityPoliciesListAssociationsCall) Do(opts ...googleapi.CallOption) (*OrganizationSecurityPoliciesListAssociationsResponse, error) {
111730	gensupport.SetOptions(c.urlParams_, opts...)
111731	res, err := c.doRequest("json")
111732	if res != nil && res.StatusCode == http.StatusNotModified {
111733		if res.Body != nil {
111734			res.Body.Close()
111735		}
111736		return nil, &googleapi.Error{
111737			Code:   res.StatusCode,
111738			Header: res.Header,
111739		}
111740	}
111741	if err != nil {
111742		return nil, err
111743	}
111744	defer googleapi.CloseBody(res)
111745	if err := googleapi.CheckResponse(res); err != nil {
111746		return nil, err
111747	}
111748	ret := &OrganizationSecurityPoliciesListAssociationsResponse{
111749		ServerResponse: googleapi.ServerResponse{
111750			Header:         res.Header,
111751			HTTPStatusCode: res.StatusCode,
111752		},
111753	}
111754	target := &ret
111755	if err := gensupport.DecodeResponse(target, res); err != nil {
111756		return nil, err
111757	}
111758	return ret, nil
111759	// {
111760	//   "description": "Lists associations of a specified target, i.e., organization or folder.",
111761	//   "httpMethod": "GET",
111762	//   "id": "compute.organizationSecurityPolicies.listAssociations",
111763	//   "parameters": {
111764	//     "targetResource": {
111765	//       "description": "The target resource to list associations. It is an organization, or a folder.",
111766	//       "location": "query",
111767	//       "type": "string"
111768	//     }
111769	//   },
111770	//   "path": "locations/global/securityPolicies/listAssociations",
111771	//   "response": {
111772	//     "$ref": "OrganizationSecurityPoliciesListAssociationsResponse"
111773	//   },
111774	//   "scopes": [
111775	//     "https://www.googleapis.com/auth/cloud-platform",
111776	//     "https://www.googleapis.com/auth/compute"
111777	//   ]
111778	// }
111779
111780}
111781
111782// method id "compute.organizationSecurityPolicies.move":
111783
111784type OrganizationSecurityPoliciesMoveCall struct {
111785	s              *Service
111786	securityPolicy string
111787	urlParams_     gensupport.URLParams
111788	ctx_           context.Context
111789	header_        http.Header
111790}
111791
111792// Move: Moves the specified security policy.
111793func (r *OrganizationSecurityPoliciesService) Move(securityPolicy string) *OrganizationSecurityPoliciesMoveCall {
111794	c := &OrganizationSecurityPoliciesMoveCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111795	c.securityPolicy = securityPolicy
111796	return c
111797}
111798
111799// ParentId sets the optional parameter "parentId": The new parent of
111800// the security policy.
111801func (c *OrganizationSecurityPoliciesMoveCall) ParentId(parentId string) *OrganizationSecurityPoliciesMoveCall {
111802	c.urlParams_.Set("parentId", parentId)
111803	return c
111804}
111805
111806// RequestId sets the optional parameter "requestId": An optional
111807// request ID to identify requests. Specify a unique request ID so that
111808// if you must retry your request, the server will know to ignore the
111809// request if it has already been completed.
111810//
111811// For example, consider a situation where you make an initial request
111812// and the request times out. If you make the request again with the
111813// same request ID, the server can check if original operation with the
111814// same request ID was received, and if so, will ignore the second
111815// request. This prevents clients from accidentally creating duplicate
111816// commitments.
111817//
111818// The request ID must be a valid UUID with the exception that zero UUID
111819// is not supported (00000000-0000-0000-0000-000000000000).
111820func (c *OrganizationSecurityPoliciesMoveCall) RequestId(requestId string) *OrganizationSecurityPoliciesMoveCall {
111821	c.urlParams_.Set("requestId", requestId)
111822	return c
111823}
111824
111825// Fields allows partial responses to be retrieved. See
111826// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111827// for more information.
111828func (c *OrganizationSecurityPoliciesMoveCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesMoveCall {
111829	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111830	return c
111831}
111832
111833// Context sets the context to be used in this call's Do method. Any
111834// pending HTTP request will be aborted if the provided context is
111835// canceled.
111836func (c *OrganizationSecurityPoliciesMoveCall) Context(ctx context.Context) *OrganizationSecurityPoliciesMoveCall {
111837	c.ctx_ = ctx
111838	return c
111839}
111840
111841// Header returns an http.Header that can be modified by the caller to
111842// add HTTP headers to the request.
111843func (c *OrganizationSecurityPoliciesMoveCall) Header() http.Header {
111844	if c.header_ == nil {
111845		c.header_ = make(http.Header)
111846	}
111847	return c.header_
111848}
111849
111850func (c *OrganizationSecurityPoliciesMoveCall) doRequest(alt string) (*http.Response, error) {
111851	reqHeaders := make(http.Header)
111852	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
111853	for k, v := range c.header_ {
111854		reqHeaders[k] = v
111855	}
111856	reqHeaders.Set("User-Agent", c.s.userAgent())
111857	var body io.Reader = nil
111858	c.urlParams_.Set("alt", alt)
111859	c.urlParams_.Set("prettyPrint", "false")
111860	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/move")
111861	urls += "?" + c.urlParams_.Encode()
111862	req, err := http.NewRequest("POST", urls, body)
111863	if err != nil {
111864		return nil, err
111865	}
111866	req.Header = reqHeaders
111867	googleapi.Expand(req.URL, map[string]string{
111868		"securityPolicy": c.securityPolicy,
111869	})
111870	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111871}
111872
111873// Do executes the "compute.organizationSecurityPolicies.move" call.
111874// Exactly one of *Operation or error will be non-nil. Any non-2xx
111875// status code is an error. Response headers are in either
111876// *Operation.ServerResponse.Header or (if a response was returned at
111877// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111878// to check whether the returned error was because
111879// http.StatusNotModified was returned.
111880func (c *OrganizationSecurityPoliciesMoveCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111881	gensupport.SetOptions(c.urlParams_, opts...)
111882	res, err := c.doRequest("json")
111883	if res != nil && res.StatusCode == http.StatusNotModified {
111884		if res.Body != nil {
111885			res.Body.Close()
111886		}
111887		return nil, &googleapi.Error{
111888			Code:   res.StatusCode,
111889			Header: res.Header,
111890		}
111891	}
111892	if err != nil {
111893		return nil, err
111894	}
111895	defer googleapi.CloseBody(res)
111896	if err := googleapi.CheckResponse(res); err != nil {
111897		return nil, err
111898	}
111899	ret := &Operation{
111900		ServerResponse: googleapi.ServerResponse{
111901			Header:         res.Header,
111902			HTTPStatusCode: res.StatusCode,
111903		},
111904	}
111905	target := &ret
111906	if err := gensupport.DecodeResponse(target, res); err != nil {
111907		return nil, err
111908	}
111909	return ret, nil
111910	// {
111911	//   "description": "Moves the specified security policy.",
111912	//   "httpMethod": "POST",
111913	//   "id": "compute.organizationSecurityPolicies.move",
111914	//   "parameterOrder": [
111915	//     "securityPolicy"
111916	//   ],
111917	//   "parameters": {
111918	//     "parentId": {
111919	//       "description": "The new parent of the security policy.",
111920	//       "location": "query",
111921	//       "type": "string"
111922	//     },
111923	//     "requestId": {
111924	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
111925	//       "location": "query",
111926	//       "type": "string"
111927	//     },
111928	//     "securityPolicy": {
111929	//       "description": "Name of the security policy to update.",
111930	//       "location": "path",
111931	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
111932	//       "required": true,
111933	//       "type": "string"
111934	//     }
111935	//   },
111936	//   "path": "locations/global/securityPolicies/{securityPolicy}/move",
111937	//   "response": {
111938	//     "$ref": "Operation"
111939	//   },
111940	//   "scopes": [
111941	//     "https://www.googleapis.com/auth/cloud-platform",
111942	//     "https://www.googleapis.com/auth/compute"
111943	//   ]
111944	// }
111945
111946}
111947
111948// method id "compute.organizationSecurityPolicies.patch":
111949
111950type OrganizationSecurityPoliciesPatchCall struct {
111951	s              *Service
111952	securityPolicy string
111953	securitypolicy *SecurityPolicy
111954	urlParams_     gensupport.URLParams
111955	ctx_           context.Context
111956	header_        http.Header
111957}
111958
111959// Patch: Patches the specified policy with the data included in the
111960// request.
111961func (r *OrganizationSecurityPoliciesService) Patch(securityPolicy string, securitypolicy *SecurityPolicy) *OrganizationSecurityPoliciesPatchCall {
111962	c := &OrganizationSecurityPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111963	c.securityPolicy = securityPolicy
111964	c.securitypolicy = securitypolicy
111965	return c
111966}
111967
111968// RequestId sets the optional parameter "requestId": An optional
111969// request ID to identify requests. Specify a unique request ID so that
111970// if you must retry your request, the server will know to ignore the
111971// request if it has already been completed.
111972//
111973// For example, consider a situation where you make an initial request
111974// and the request times out. If you make the request again with the
111975// same request ID, the server can check if original operation with the
111976// same request ID was received, and if so, will ignore the second
111977// request. This prevents clients from accidentally creating duplicate
111978// commitments.
111979//
111980// The request ID must be a valid UUID with the exception that zero UUID
111981// is not supported (00000000-0000-0000-0000-000000000000).
111982func (c *OrganizationSecurityPoliciesPatchCall) RequestId(requestId string) *OrganizationSecurityPoliciesPatchCall {
111983	c.urlParams_.Set("requestId", requestId)
111984	return c
111985}
111986
111987// Fields allows partial responses to be retrieved. See
111988// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111989// for more information.
111990func (c *OrganizationSecurityPoliciesPatchCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesPatchCall {
111991	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111992	return c
111993}
111994
111995// Context sets the context to be used in this call's Do method. Any
111996// pending HTTP request will be aborted if the provided context is
111997// canceled.
111998func (c *OrganizationSecurityPoliciesPatchCall) Context(ctx context.Context) *OrganizationSecurityPoliciesPatchCall {
111999	c.ctx_ = ctx
112000	return c
112001}
112002
112003// Header returns an http.Header that can be modified by the caller to
112004// add HTTP headers to the request.
112005func (c *OrganizationSecurityPoliciesPatchCall) Header() http.Header {
112006	if c.header_ == nil {
112007		c.header_ = make(http.Header)
112008	}
112009	return c.header_
112010}
112011
112012func (c *OrganizationSecurityPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
112013	reqHeaders := make(http.Header)
112014	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
112015	for k, v := range c.header_ {
112016		reqHeaders[k] = v
112017	}
112018	reqHeaders.Set("User-Agent", c.s.userAgent())
112019	var body io.Reader = nil
112020	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
112021	if err != nil {
112022		return nil, err
112023	}
112024	reqHeaders.Set("Content-Type", "application/json")
112025	c.urlParams_.Set("alt", alt)
112026	c.urlParams_.Set("prettyPrint", "false")
112027	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}")
112028	urls += "?" + c.urlParams_.Encode()
112029	req, err := http.NewRequest("PATCH", urls, body)
112030	if err != nil {
112031		return nil, err
112032	}
112033	req.Header = reqHeaders
112034	googleapi.Expand(req.URL, map[string]string{
112035		"securityPolicy": c.securityPolicy,
112036	})
112037	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112038}
112039
112040// Do executes the "compute.organizationSecurityPolicies.patch" call.
112041// Exactly one of *Operation or error will be non-nil. Any non-2xx
112042// status code is an error. Response headers are in either
112043// *Operation.ServerResponse.Header or (if a response was returned at
112044// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112045// to check whether the returned error was because
112046// http.StatusNotModified was returned.
112047func (c *OrganizationSecurityPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
112048	gensupport.SetOptions(c.urlParams_, opts...)
112049	res, err := c.doRequest("json")
112050	if res != nil && res.StatusCode == http.StatusNotModified {
112051		if res.Body != nil {
112052			res.Body.Close()
112053		}
112054		return nil, &googleapi.Error{
112055			Code:   res.StatusCode,
112056			Header: res.Header,
112057		}
112058	}
112059	if err != nil {
112060		return nil, err
112061	}
112062	defer googleapi.CloseBody(res)
112063	if err := googleapi.CheckResponse(res); err != nil {
112064		return nil, err
112065	}
112066	ret := &Operation{
112067		ServerResponse: googleapi.ServerResponse{
112068			Header:         res.Header,
112069			HTTPStatusCode: res.StatusCode,
112070		},
112071	}
112072	target := &ret
112073	if err := gensupport.DecodeResponse(target, res); err != nil {
112074		return nil, err
112075	}
112076	return ret, nil
112077	// {
112078	//   "description": "Patches the specified policy with the data included in the request.",
112079	//   "httpMethod": "PATCH",
112080	//   "id": "compute.organizationSecurityPolicies.patch",
112081	//   "parameterOrder": [
112082	//     "securityPolicy"
112083	//   ],
112084	//   "parameters": {
112085	//     "requestId": {
112086	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
112087	//       "location": "query",
112088	//       "type": "string"
112089	//     },
112090	//     "securityPolicy": {
112091	//       "description": "Name of the security policy to update.",
112092	//       "location": "path",
112093	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
112094	//       "required": true,
112095	//       "type": "string"
112096	//     }
112097	//   },
112098	//   "path": "locations/global/securityPolicies/{securityPolicy}",
112099	//   "request": {
112100	//     "$ref": "SecurityPolicy"
112101	//   },
112102	//   "response": {
112103	//     "$ref": "Operation"
112104	//   },
112105	//   "scopes": [
112106	//     "https://www.googleapis.com/auth/cloud-platform",
112107	//     "https://www.googleapis.com/auth/compute"
112108	//   ]
112109	// }
112110
112111}
112112
112113// method id "compute.organizationSecurityPolicies.patchRule":
112114
112115type OrganizationSecurityPoliciesPatchRuleCall struct {
112116	s                  *Service
112117	securityPolicy     string
112118	securitypolicyrule *SecurityPolicyRule
112119	urlParams_         gensupport.URLParams
112120	ctx_               context.Context
112121	header_            http.Header
112122}
112123
112124// PatchRule: Patches a rule at the specified priority.
112125func (r *OrganizationSecurityPoliciesService) PatchRule(securityPolicy string, securitypolicyrule *SecurityPolicyRule) *OrganizationSecurityPoliciesPatchRuleCall {
112126	c := &OrganizationSecurityPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112127	c.securityPolicy = securityPolicy
112128	c.securitypolicyrule = securitypolicyrule
112129	return c
112130}
112131
112132// Priority sets the optional parameter "priority": The priority of the
112133// rule to patch.
112134func (c *OrganizationSecurityPoliciesPatchRuleCall) Priority(priority int64) *OrganizationSecurityPoliciesPatchRuleCall {
112135	c.urlParams_.Set("priority", fmt.Sprint(priority))
112136	return c
112137}
112138
112139// RequestId sets the optional parameter "requestId": An optional
112140// request ID to identify requests. Specify a unique request ID so that
112141// if you must retry your request, the server will know to ignore the
112142// request if it has already been completed.
112143//
112144// For example, consider a situation where you make an initial request
112145// and the request times out. If you make the request again with the
112146// same request ID, the server can check if original operation with the
112147// same request ID was received, and if so, will ignore the second
112148// request. This prevents clients from accidentally creating duplicate
112149// commitments.
112150//
112151// The request ID must be a valid UUID with the exception that zero UUID
112152// is not supported (00000000-0000-0000-0000-000000000000).
112153func (c *OrganizationSecurityPoliciesPatchRuleCall) RequestId(requestId string) *OrganizationSecurityPoliciesPatchRuleCall {
112154	c.urlParams_.Set("requestId", requestId)
112155	return c
112156}
112157
112158// Fields allows partial responses to be retrieved. See
112159// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112160// for more information.
112161func (c *OrganizationSecurityPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesPatchRuleCall {
112162	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112163	return c
112164}
112165
112166// Context sets the context to be used in this call's Do method. Any
112167// pending HTTP request will be aborted if the provided context is
112168// canceled.
112169func (c *OrganizationSecurityPoliciesPatchRuleCall) Context(ctx context.Context) *OrganizationSecurityPoliciesPatchRuleCall {
112170	c.ctx_ = ctx
112171	return c
112172}
112173
112174// Header returns an http.Header that can be modified by the caller to
112175// add HTTP headers to the request.
112176func (c *OrganizationSecurityPoliciesPatchRuleCall) Header() http.Header {
112177	if c.header_ == nil {
112178		c.header_ = make(http.Header)
112179	}
112180	return c.header_
112181}
112182
112183func (c *OrganizationSecurityPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) {
112184	reqHeaders := make(http.Header)
112185	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
112186	for k, v := range c.header_ {
112187		reqHeaders[k] = v
112188	}
112189	reqHeaders.Set("User-Agent", c.s.userAgent())
112190	var body io.Reader = nil
112191	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
112192	if err != nil {
112193		return nil, err
112194	}
112195	reqHeaders.Set("Content-Type", "application/json")
112196	c.urlParams_.Set("alt", alt)
112197	c.urlParams_.Set("prettyPrint", "false")
112198	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/patchRule")
112199	urls += "?" + c.urlParams_.Encode()
112200	req, err := http.NewRequest("POST", urls, body)
112201	if err != nil {
112202		return nil, err
112203	}
112204	req.Header = reqHeaders
112205	googleapi.Expand(req.URL, map[string]string{
112206		"securityPolicy": c.securityPolicy,
112207	})
112208	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112209}
112210
112211// Do executes the "compute.organizationSecurityPolicies.patchRule" call.
112212// Exactly one of *Operation or error will be non-nil. Any non-2xx
112213// status code is an error. Response headers are in either
112214// *Operation.ServerResponse.Header or (if a response was returned at
112215// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112216// to check whether the returned error was because
112217// http.StatusNotModified was returned.
112218func (c *OrganizationSecurityPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
112219	gensupport.SetOptions(c.urlParams_, opts...)
112220	res, err := c.doRequest("json")
112221	if res != nil && res.StatusCode == http.StatusNotModified {
112222		if res.Body != nil {
112223			res.Body.Close()
112224		}
112225		return nil, &googleapi.Error{
112226			Code:   res.StatusCode,
112227			Header: res.Header,
112228		}
112229	}
112230	if err != nil {
112231		return nil, err
112232	}
112233	defer googleapi.CloseBody(res)
112234	if err := googleapi.CheckResponse(res); err != nil {
112235		return nil, err
112236	}
112237	ret := &Operation{
112238		ServerResponse: googleapi.ServerResponse{
112239			Header:         res.Header,
112240			HTTPStatusCode: res.StatusCode,
112241		},
112242	}
112243	target := &ret
112244	if err := gensupport.DecodeResponse(target, res); err != nil {
112245		return nil, err
112246	}
112247	return ret, nil
112248	// {
112249	//   "description": "Patches a rule at the specified priority.",
112250	//   "httpMethod": "POST",
112251	//   "id": "compute.organizationSecurityPolicies.patchRule",
112252	//   "parameterOrder": [
112253	//     "securityPolicy"
112254	//   ],
112255	//   "parameters": {
112256	//     "priority": {
112257	//       "description": "The priority of the rule to patch.",
112258	//       "format": "int32",
112259	//       "location": "query",
112260	//       "type": "integer"
112261	//     },
112262	//     "requestId": {
112263	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
112264	//       "location": "query",
112265	//       "type": "string"
112266	//     },
112267	//     "securityPolicy": {
112268	//       "description": "Name of the security policy to update.",
112269	//       "location": "path",
112270	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
112271	//       "required": true,
112272	//       "type": "string"
112273	//     }
112274	//   },
112275	//   "path": "locations/global/securityPolicies/{securityPolicy}/patchRule",
112276	//   "request": {
112277	//     "$ref": "SecurityPolicyRule"
112278	//   },
112279	//   "response": {
112280	//     "$ref": "Operation"
112281	//   },
112282	//   "scopes": [
112283	//     "https://www.googleapis.com/auth/cloud-platform",
112284	//     "https://www.googleapis.com/auth/compute"
112285	//   ]
112286	// }
112287
112288}
112289
112290// method id "compute.organizationSecurityPolicies.removeAssociation":
112291
112292type OrganizationSecurityPoliciesRemoveAssociationCall struct {
112293	s              *Service
112294	securityPolicy string
112295	urlParams_     gensupport.URLParams
112296	ctx_           context.Context
112297	header_        http.Header
112298}
112299
112300// RemoveAssociation: Removes an association for the specified security
112301// policy.
112302func (r *OrganizationSecurityPoliciesService) RemoveAssociation(securityPolicy string) *OrganizationSecurityPoliciesRemoveAssociationCall {
112303	c := &OrganizationSecurityPoliciesRemoveAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112304	c.securityPolicy = securityPolicy
112305	return c
112306}
112307
112308// Name sets the optional parameter "name": Name for the attachment that
112309// will be removed.
112310func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Name(name string) *OrganizationSecurityPoliciesRemoveAssociationCall {
112311	c.urlParams_.Set("name", name)
112312	return c
112313}
112314
112315// RequestId sets the optional parameter "requestId": An optional
112316// request ID to identify requests. Specify a unique request ID so that
112317// if you must retry your request, the server will know to ignore the
112318// request if it has already been completed.
112319//
112320// For example, consider a situation where you make an initial request
112321// and the request times out. If you make the request again with the
112322// same request ID, the server can check if original operation with the
112323// same request ID was received, and if so, will ignore the second
112324// request. This prevents clients from accidentally creating duplicate
112325// commitments.
112326//
112327// The request ID must be a valid UUID with the exception that zero UUID
112328// is not supported (00000000-0000-0000-0000-000000000000).
112329func (c *OrganizationSecurityPoliciesRemoveAssociationCall) RequestId(requestId string) *OrganizationSecurityPoliciesRemoveAssociationCall {
112330	c.urlParams_.Set("requestId", requestId)
112331	return c
112332}
112333
112334// Fields allows partial responses to be retrieved. See
112335// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112336// for more information.
112337func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesRemoveAssociationCall {
112338	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112339	return c
112340}
112341
112342// Context sets the context to be used in this call's Do method. Any
112343// pending HTTP request will be aborted if the provided context is
112344// canceled.
112345func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Context(ctx context.Context) *OrganizationSecurityPoliciesRemoveAssociationCall {
112346	c.ctx_ = ctx
112347	return c
112348}
112349
112350// Header returns an http.Header that can be modified by the caller to
112351// add HTTP headers to the request.
112352func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Header() http.Header {
112353	if c.header_ == nil {
112354		c.header_ = make(http.Header)
112355	}
112356	return c.header_
112357}
112358
112359func (c *OrganizationSecurityPoliciesRemoveAssociationCall) doRequest(alt string) (*http.Response, error) {
112360	reqHeaders := make(http.Header)
112361	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
112362	for k, v := range c.header_ {
112363		reqHeaders[k] = v
112364	}
112365	reqHeaders.Set("User-Agent", c.s.userAgent())
112366	var body io.Reader = nil
112367	c.urlParams_.Set("alt", alt)
112368	c.urlParams_.Set("prettyPrint", "false")
112369	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/removeAssociation")
112370	urls += "?" + c.urlParams_.Encode()
112371	req, err := http.NewRequest("POST", urls, body)
112372	if err != nil {
112373		return nil, err
112374	}
112375	req.Header = reqHeaders
112376	googleapi.Expand(req.URL, map[string]string{
112377		"securityPolicy": c.securityPolicy,
112378	})
112379	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112380}
112381
112382// Do executes the "compute.organizationSecurityPolicies.removeAssociation" call.
112383// Exactly one of *Operation or error will be non-nil. Any non-2xx
112384// status code is an error. Response headers are in either
112385// *Operation.ServerResponse.Header or (if a response was returned at
112386// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112387// to check whether the returned error was because
112388// http.StatusNotModified was returned.
112389func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
112390	gensupport.SetOptions(c.urlParams_, opts...)
112391	res, err := c.doRequest("json")
112392	if res != nil && res.StatusCode == http.StatusNotModified {
112393		if res.Body != nil {
112394			res.Body.Close()
112395		}
112396		return nil, &googleapi.Error{
112397			Code:   res.StatusCode,
112398			Header: res.Header,
112399		}
112400	}
112401	if err != nil {
112402		return nil, err
112403	}
112404	defer googleapi.CloseBody(res)
112405	if err := googleapi.CheckResponse(res); err != nil {
112406		return nil, err
112407	}
112408	ret := &Operation{
112409		ServerResponse: googleapi.ServerResponse{
112410			Header:         res.Header,
112411			HTTPStatusCode: res.StatusCode,
112412		},
112413	}
112414	target := &ret
112415	if err := gensupport.DecodeResponse(target, res); err != nil {
112416		return nil, err
112417	}
112418	return ret, nil
112419	// {
112420	//   "description": "Removes an association for the specified security policy.",
112421	//   "httpMethod": "POST",
112422	//   "id": "compute.organizationSecurityPolicies.removeAssociation",
112423	//   "parameterOrder": [
112424	//     "securityPolicy"
112425	//   ],
112426	//   "parameters": {
112427	//     "name": {
112428	//       "description": "Name for the attachment that will be removed.",
112429	//       "location": "query",
112430	//       "type": "string"
112431	//     },
112432	//     "requestId": {
112433	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
112434	//       "location": "query",
112435	//       "type": "string"
112436	//     },
112437	//     "securityPolicy": {
112438	//       "description": "Name of the security policy to update.",
112439	//       "location": "path",
112440	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
112441	//       "required": true,
112442	//       "type": "string"
112443	//     }
112444	//   },
112445	//   "path": "locations/global/securityPolicies/{securityPolicy}/removeAssociation",
112446	//   "response": {
112447	//     "$ref": "Operation"
112448	//   },
112449	//   "scopes": [
112450	//     "https://www.googleapis.com/auth/cloud-platform",
112451	//     "https://www.googleapis.com/auth/compute"
112452	//   ]
112453	// }
112454
112455}
112456
112457// method id "compute.organizationSecurityPolicies.removeRule":
112458
112459type OrganizationSecurityPoliciesRemoveRuleCall struct {
112460	s              *Service
112461	securityPolicy string
112462	urlParams_     gensupport.URLParams
112463	ctx_           context.Context
112464	header_        http.Header
112465}
112466
112467// RemoveRule: Deletes a rule at the specified priority.
112468func (r *OrganizationSecurityPoliciesService) RemoveRule(securityPolicy string) *OrganizationSecurityPoliciesRemoveRuleCall {
112469	c := &OrganizationSecurityPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112470	c.securityPolicy = securityPolicy
112471	return c
112472}
112473
112474// Priority sets the optional parameter "priority": The priority of the
112475// rule to remove from the security policy.
112476func (c *OrganizationSecurityPoliciesRemoveRuleCall) Priority(priority int64) *OrganizationSecurityPoliciesRemoveRuleCall {
112477	c.urlParams_.Set("priority", fmt.Sprint(priority))
112478	return c
112479}
112480
112481// RequestId sets the optional parameter "requestId": An optional
112482// request ID to identify requests. Specify a unique request ID so that
112483// if you must retry your request, the server will know to ignore the
112484// request if it has already been completed.
112485//
112486// For example, consider a situation where you make an initial request
112487// and the request times out. If you make the request again with the
112488// same request ID, the server can check if original operation with the
112489// same request ID was received, and if so, will ignore the second
112490// request. This prevents clients from accidentally creating duplicate
112491// commitments.
112492//
112493// The request ID must be a valid UUID with the exception that zero UUID
112494// is not supported (00000000-0000-0000-0000-000000000000).
112495func (c *OrganizationSecurityPoliciesRemoveRuleCall) RequestId(requestId string) *OrganizationSecurityPoliciesRemoveRuleCall {
112496	c.urlParams_.Set("requestId", requestId)
112497	return c
112498}
112499
112500// Fields allows partial responses to be retrieved. See
112501// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112502// for more information.
112503func (c *OrganizationSecurityPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesRemoveRuleCall {
112504	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112505	return c
112506}
112507
112508// Context sets the context to be used in this call's Do method. Any
112509// pending HTTP request will be aborted if the provided context is
112510// canceled.
112511func (c *OrganizationSecurityPoliciesRemoveRuleCall) Context(ctx context.Context) *OrganizationSecurityPoliciesRemoveRuleCall {
112512	c.ctx_ = ctx
112513	return c
112514}
112515
112516// Header returns an http.Header that can be modified by the caller to
112517// add HTTP headers to the request.
112518func (c *OrganizationSecurityPoliciesRemoveRuleCall) Header() http.Header {
112519	if c.header_ == nil {
112520		c.header_ = make(http.Header)
112521	}
112522	return c.header_
112523}
112524
112525func (c *OrganizationSecurityPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) {
112526	reqHeaders := make(http.Header)
112527	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
112528	for k, v := range c.header_ {
112529		reqHeaders[k] = v
112530	}
112531	reqHeaders.Set("User-Agent", c.s.userAgent())
112532	var body io.Reader = nil
112533	c.urlParams_.Set("alt", alt)
112534	c.urlParams_.Set("prettyPrint", "false")
112535	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/removeRule")
112536	urls += "?" + c.urlParams_.Encode()
112537	req, err := http.NewRequest("POST", urls, body)
112538	if err != nil {
112539		return nil, err
112540	}
112541	req.Header = reqHeaders
112542	googleapi.Expand(req.URL, map[string]string{
112543		"securityPolicy": c.securityPolicy,
112544	})
112545	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112546}
112547
112548// Do executes the "compute.organizationSecurityPolicies.removeRule" call.
112549// Exactly one of *Operation or error will be non-nil. Any non-2xx
112550// status code is an error. Response headers are in either
112551// *Operation.ServerResponse.Header or (if a response was returned at
112552// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112553// to check whether the returned error was because
112554// http.StatusNotModified was returned.
112555func (c *OrganizationSecurityPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
112556	gensupport.SetOptions(c.urlParams_, opts...)
112557	res, err := c.doRequest("json")
112558	if res != nil && res.StatusCode == http.StatusNotModified {
112559		if res.Body != nil {
112560			res.Body.Close()
112561		}
112562		return nil, &googleapi.Error{
112563			Code:   res.StatusCode,
112564			Header: res.Header,
112565		}
112566	}
112567	if err != nil {
112568		return nil, err
112569	}
112570	defer googleapi.CloseBody(res)
112571	if err := googleapi.CheckResponse(res); err != nil {
112572		return nil, err
112573	}
112574	ret := &Operation{
112575		ServerResponse: googleapi.ServerResponse{
112576			Header:         res.Header,
112577			HTTPStatusCode: res.StatusCode,
112578		},
112579	}
112580	target := &ret
112581	if err := gensupport.DecodeResponse(target, res); err != nil {
112582		return nil, err
112583	}
112584	return ret, nil
112585	// {
112586	//   "description": "Deletes a rule at the specified priority.",
112587	//   "httpMethod": "POST",
112588	//   "id": "compute.organizationSecurityPolicies.removeRule",
112589	//   "parameterOrder": [
112590	//     "securityPolicy"
112591	//   ],
112592	//   "parameters": {
112593	//     "priority": {
112594	//       "description": "The priority of the rule to remove from the security policy.",
112595	//       "format": "int32",
112596	//       "location": "query",
112597	//       "type": "integer"
112598	//     },
112599	//     "requestId": {
112600	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
112601	//       "location": "query",
112602	//       "type": "string"
112603	//     },
112604	//     "securityPolicy": {
112605	//       "description": "Name of the security policy to update.",
112606	//       "location": "path",
112607	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
112608	//       "required": true,
112609	//       "type": "string"
112610	//     }
112611	//   },
112612	//   "path": "locations/global/securityPolicies/{securityPolicy}/removeRule",
112613	//   "response": {
112614	//     "$ref": "Operation"
112615	//   },
112616	//   "scopes": [
112617	//     "https://www.googleapis.com/auth/cloud-platform",
112618	//     "https://www.googleapis.com/auth/compute"
112619	//   ]
112620	// }
112621
112622}
112623
112624// method id "compute.packetMirrorings.aggregatedList":
112625
112626type PacketMirroringsAggregatedListCall struct {
112627	s            *Service
112628	project      string
112629	urlParams_   gensupport.URLParams
112630	ifNoneMatch_ string
112631	ctx_         context.Context
112632	header_      http.Header
112633}
112634
112635// AggregatedList: Retrieves an aggregated list of packetMirrorings.
112636func (r *PacketMirroringsService) AggregatedList(project string) *PacketMirroringsAggregatedListCall {
112637	c := &PacketMirroringsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112638	c.project = project
112639	return c
112640}
112641
112642// Filter sets the optional parameter "filter": A filter expression that
112643// filters resources listed in the response. The expression must specify
112644// the field name, a comparison operator, and the value that you want to
112645// use for filtering. The value must be a string, a number, or a
112646// boolean. The comparison operator must be either =, !=, >, or <.
112647//
112648// For example, if you are filtering Compute Engine instances, you can
112649// exclude instances named example-instance by specifying name !=
112650// example-instance.
112651//
112652// You can also filter nested fields. For example, you could specify
112653// scheduling.automaticRestart = false to include instances only if they
112654// are not scheduled for automatic restarts. You can use filtering on
112655// nested fields to filter based on resource labels.
112656//
112657// To filter on multiple expressions, provide each separate expression
112658// within parentheses. For example, (scheduling.automaticRestart = true)
112659// (cpuPlatform = "Intel Skylake"). By default, each expression is an
112660// AND expression. However, you can include AND and OR expressions
112661// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
112662// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
112663// true).
112664func (c *PacketMirroringsAggregatedListCall) Filter(filter string) *PacketMirroringsAggregatedListCall {
112665	c.urlParams_.Set("filter", filter)
112666	return c
112667}
112668
112669// IncludeAllScopes sets the optional parameter "includeAllScopes":
112670// Indicates whether every visible scope for each scope type (zone,
112671// region, global) should be included in the response. For new resource
112672// types added after this field, the flag has no effect as new resource
112673// types will always include every visible scope for each scope type in
112674// response. For resource types which predate this field, if this flag
112675// is omitted or false, only scopes of the scope types where the
112676// resource type is expected to be found will be included.
112677func (c *PacketMirroringsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *PacketMirroringsAggregatedListCall {
112678	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
112679	return c
112680}
112681
112682// MaxResults sets the optional parameter "maxResults": The maximum
112683// number of results per page that should be returned. If the number of
112684// available results is larger than maxResults, Compute Engine returns a
112685// nextPageToken that can be used to get the next page of results in
112686// subsequent list requests. Acceptable values are 0 to 500, inclusive.
112687// (Default: 500)
112688func (c *PacketMirroringsAggregatedListCall) MaxResults(maxResults int64) *PacketMirroringsAggregatedListCall {
112689	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
112690	return c
112691}
112692
112693// OrderBy sets the optional parameter "orderBy": Sorts list results by
112694// a certain order. By default, results are returned in alphanumerical
112695// order based on the resource name.
112696//
112697// You can also sort results in descending order based on the creation
112698// timestamp using orderBy="creationTimestamp desc". This sorts results
112699// based on the creationTimestamp field in reverse chronological order
112700// (newest result first). Use this to sort resources like operations so
112701// that the newest operation is returned first.
112702//
112703// Currently, only sorting by name or creationTimestamp desc is
112704// supported.
112705func (c *PacketMirroringsAggregatedListCall) OrderBy(orderBy string) *PacketMirroringsAggregatedListCall {
112706	c.urlParams_.Set("orderBy", orderBy)
112707	return c
112708}
112709
112710// PageToken sets the optional parameter "pageToken": Specifies a page
112711// token to use. Set pageToken to the nextPageToken returned by a
112712// previous list request to get the next page of results.
112713func (c *PacketMirroringsAggregatedListCall) PageToken(pageToken string) *PacketMirroringsAggregatedListCall {
112714	c.urlParams_.Set("pageToken", pageToken)
112715	return c
112716}
112717
112718// Fields allows partial responses to be retrieved. See
112719// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112720// for more information.
112721func (c *PacketMirroringsAggregatedListCall) Fields(s ...googleapi.Field) *PacketMirroringsAggregatedListCall {
112722	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112723	return c
112724}
112725
112726// IfNoneMatch sets the optional parameter which makes the operation
112727// fail if the object's ETag matches the given value. This is useful for
112728// getting updates only after the object has changed since the last
112729// request. Use googleapi.IsNotModified to check whether the response
112730// error from Do is the result of In-None-Match.
112731func (c *PacketMirroringsAggregatedListCall) IfNoneMatch(entityTag string) *PacketMirroringsAggregatedListCall {
112732	c.ifNoneMatch_ = entityTag
112733	return c
112734}
112735
112736// Context sets the context to be used in this call's Do method. Any
112737// pending HTTP request will be aborted if the provided context is
112738// canceled.
112739func (c *PacketMirroringsAggregatedListCall) Context(ctx context.Context) *PacketMirroringsAggregatedListCall {
112740	c.ctx_ = ctx
112741	return c
112742}
112743
112744// Header returns an http.Header that can be modified by the caller to
112745// add HTTP headers to the request.
112746func (c *PacketMirroringsAggregatedListCall) Header() http.Header {
112747	if c.header_ == nil {
112748		c.header_ = make(http.Header)
112749	}
112750	return c.header_
112751}
112752
112753func (c *PacketMirroringsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
112754	reqHeaders := make(http.Header)
112755	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
112756	for k, v := range c.header_ {
112757		reqHeaders[k] = v
112758	}
112759	reqHeaders.Set("User-Agent", c.s.userAgent())
112760	if c.ifNoneMatch_ != "" {
112761		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
112762	}
112763	var body io.Reader = nil
112764	c.urlParams_.Set("alt", alt)
112765	c.urlParams_.Set("prettyPrint", "false")
112766	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/packetMirrorings")
112767	urls += "?" + c.urlParams_.Encode()
112768	req, err := http.NewRequest("GET", urls, body)
112769	if err != nil {
112770		return nil, err
112771	}
112772	req.Header = reqHeaders
112773	googleapi.Expand(req.URL, map[string]string{
112774		"project": c.project,
112775	})
112776	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112777}
112778
112779// Do executes the "compute.packetMirrorings.aggregatedList" call.
112780// Exactly one of *PacketMirroringAggregatedList or error will be
112781// non-nil. Any non-2xx status code is an error. Response headers are in
112782// either *PacketMirroringAggregatedList.ServerResponse.Header or (if a
112783// response was returned at all) in error.(*googleapi.Error).Header. Use
112784// googleapi.IsNotModified to check whether the returned error was
112785// because http.StatusNotModified was returned.
112786func (c *PacketMirroringsAggregatedListCall) Do(opts ...googleapi.CallOption) (*PacketMirroringAggregatedList, error) {
112787	gensupport.SetOptions(c.urlParams_, opts...)
112788	res, err := c.doRequest("json")
112789	if res != nil && res.StatusCode == http.StatusNotModified {
112790		if res.Body != nil {
112791			res.Body.Close()
112792		}
112793		return nil, &googleapi.Error{
112794			Code:   res.StatusCode,
112795			Header: res.Header,
112796		}
112797	}
112798	if err != nil {
112799		return nil, err
112800	}
112801	defer googleapi.CloseBody(res)
112802	if err := googleapi.CheckResponse(res); err != nil {
112803		return nil, err
112804	}
112805	ret := &PacketMirroringAggregatedList{
112806		ServerResponse: googleapi.ServerResponse{
112807			Header:         res.Header,
112808			HTTPStatusCode: res.StatusCode,
112809		},
112810	}
112811	target := &ret
112812	if err := gensupport.DecodeResponse(target, res); err != nil {
112813		return nil, err
112814	}
112815	return ret, nil
112816	// {
112817	//   "description": "Retrieves an aggregated list of packetMirrorings.",
112818	//   "httpMethod": "GET",
112819	//   "id": "compute.packetMirrorings.aggregatedList",
112820	//   "parameterOrder": [
112821	//     "project"
112822	//   ],
112823	//   "parameters": {
112824	//     "filter": {
112825	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
112826	//       "location": "query",
112827	//       "type": "string"
112828	//     },
112829	//     "includeAllScopes": {
112830	//       "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.",
112831	//       "location": "query",
112832	//       "type": "boolean"
112833	//     },
112834	//     "maxResults": {
112835	//       "default": "500",
112836	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
112837	//       "format": "uint32",
112838	//       "location": "query",
112839	//       "minimum": "0",
112840	//       "type": "integer"
112841	//     },
112842	//     "orderBy": {
112843	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
112844	//       "location": "query",
112845	//       "type": "string"
112846	//     },
112847	//     "pageToken": {
112848	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
112849	//       "location": "query",
112850	//       "type": "string"
112851	//     },
112852	//     "project": {
112853	//       "description": "Project ID for this request.",
112854	//       "location": "path",
112855	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112856	//       "required": true,
112857	//       "type": "string"
112858	//     }
112859	//   },
112860	//   "path": "{project}/aggregated/packetMirrorings",
112861	//   "response": {
112862	//     "$ref": "PacketMirroringAggregatedList"
112863	//   },
112864	//   "scopes": [
112865	//     "https://www.googleapis.com/auth/cloud-platform",
112866	//     "https://www.googleapis.com/auth/compute",
112867	//     "https://www.googleapis.com/auth/compute.readonly"
112868	//   ]
112869	// }
112870
112871}
112872
112873// Pages invokes f for each page of results.
112874// A non-nil error returned from f will halt the iteration.
112875// The provided context supersedes any context provided to the Context method.
112876func (c *PacketMirroringsAggregatedListCall) Pages(ctx context.Context, f func(*PacketMirroringAggregatedList) error) error {
112877	c.ctx_ = ctx
112878	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
112879	for {
112880		x, err := c.Do()
112881		if err != nil {
112882			return err
112883		}
112884		if err := f(x); err != nil {
112885			return err
112886		}
112887		if x.NextPageToken == "" {
112888			return nil
112889		}
112890		c.PageToken(x.NextPageToken)
112891	}
112892}
112893
112894// method id "compute.packetMirrorings.delete":
112895
112896type PacketMirroringsDeleteCall struct {
112897	s               *Service
112898	project         string
112899	region          string
112900	packetMirroring string
112901	urlParams_      gensupport.URLParams
112902	ctx_            context.Context
112903	header_         http.Header
112904}
112905
112906// Delete: Deletes the specified PacketMirroring resource.
112907func (r *PacketMirroringsService) Delete(project string, region string, packetMirroring string) *PacketMirroringsDeleteCall {
112908	c := &PacketMirroringsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112909	c.project = project
112910	c.region = region
112911	c.packetMirroring = packetMirroring
112912	return c
112913}
112914
112915// RequestId sets the optional parameter "requestId": An optional
112916// request ID to identify requests. Specify a unique request ID so that
112917// if you must retry your request, the server will know to ignore the
112918// request if it has already been completed.
112919//
112920// For example, consider a situation where you make an initial request
112921// and the request times out. If you make the request again with the
112922// same request ID, the server can check if original operation with the
112923// same request ID was received, and if so, will ignore the second
112924// request. This prevents clients from accidentally creating duplicate
112925// commitments.
112926//
112927// The request ID must be a valid UUID with the exception that zero UUID
112928// is not supported (00000000-0000-0000-0000-000000000000).
112929func (c *PacketMirroringsDeleteCall) RequestId(requestId string) *PacketMirroringsDeleteCall {
112930	c.urlParams_.Set("requestId", requestId)
112931	return c
112932}
112933
112934// Fields allows partial responses to be retrieved. See
112935// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112936// for more information.
112937func (c *PacketMirroringsDeleteCall) Fields(s ...googleapi.Field) *PacketMirroringsDeleteCall {
112938	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112939	return c
112940}
112941
112942// Context sets the context to be used in this call's Do method. Any
112943// pending HTTP request will be aborted if the provided context is
112944// canceled.
112945func (c *PacketMirroringsDeleteCall) Context(ctx context.Context) *PacketMirroringsDeleteCall {
112946	c.ctx_ = ctx
112947	return c
112948}
112949
112950// Header returns an http.Header that can be modified by the caller to
112951// add HTTP headers to the request.
112952func (c *PacketMirroringsDeleteCall) Header() http.Header {
112953	if c.header_ == nil {
112954		c.header_ = make(http.Header)
112955	}
112956	return c.header_
112957}
112958
112959func (c *PacketMirroringsDeleteCall) doRequest(alt string) (*http.Response, error) {
112960	reqHeaders := make(http.Header)
112961	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
112962	for k, v := range c.header_ {
112963		reqHeaders[k] = v
112964	}
112965	reqHeaders.Set("User-Agent", c.s.userAgent())
112966	var body io.Reader = nil
112967	c.urlParams_.Set("alt", alt)
112968	c.urlParams_.Set("prettyPrint", "false")
112969	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings/{packetMirroring}")
112970	urls += "?" + c.urlParams_.Encode()
112971	req, err := http.NewRequest("DELETE", urls, body)
112972	if err != nil {
112973		return nil, err
112974	}
112975	req.Header = reqHeaders
112976	googleapi.Expand(req.URL, map[string]string{
112977		"project":         c.project,
112978		"region":          c.region,
112979		"packetMirroring": c.packetMirroring,
112980	})
112981	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112982}
112983
112984// Do executes the "compute.packetMirrorings.delete" call.
112985// Exactly one of *Operation or error will be non-nil. Any non-2xx
112986// status code is an error. Response headers are in either
112987// *Operation.ServerResponse.Header or (if a response was returned at
112988// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112989// to check whether the returned error was because
112990// http.StatusNotModified was returned.
112991func (c *PacketMirroringsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
112992	gensupport.SetOptions(c.urlParams_, opts...)
112993	res, err := c.doRequest("json")
112994	if res != nil && res.StatusCode == http.StatusNotModified {
112995		if res.Body != nil {
112996			res.Body.Close()
112997		}
112998		return nil, &googleapi.Error{
112999			Code:   res.StatusCode,
113000			Header: res.Header,
113001		}
113002	}
113003	if err != nil {
113004		return nil, err
113005	}
113006	defer googleapi.CloseBody(res)
113007	if err := googleapi.CheckResponse(res); err != nil {
113008		return nil, err
113009	}
113010	ret := &Operation{
113011		ServerResponse: googleapi.ServerResponse{
113012			Header:         res.Header,
113013			HTTPStatusCode: res.StatusCode,
113014		},
113015	}
113016	target := &ret
113017	if err := gensupport.DecodeResponse(target, res); err != nil {
113018		return nil, err
113019	}
113020	return ret, nil
113021	// {
113022	//   "description": "Deletes the specified PacketMirroring resource.",
113023	//   "httpMethod": "DELETE",
113024	//   "id": "compute.packetMirrorings.delete",
113025	//   "parameterOrder": [
113026	//     "project",
113027	//     "region",
113028	//     "packetMirroring"
113029	//   ],
113030	//   "parameters": {
113031	//     "packetMirroring": {
113032	//       "description": "Name of the PacketMirroring resource to delete.",
113033	//       "location": "path",
113034	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
113035	//       "required": true,
113036	//       "type": "string"
113037	//     },
113038	//     "project": {
113039	//       "description": "Project ID for this request.",
113040	//       "location": "path",
113041	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113042	//       "required": true,
113043	//       "type": "string"
113044	//     },
113045	//     "region": {
113046	//       "description": "Name of the region for this request.",
113047	//       "location": "path",
113048	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113049	//       "required": true,
113050	//       "type": "string"
113051	//     },
113052	//     "requestId": {
113053	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
113054	//       "location": "query",
113055	//       "type": "string"
113056	//     }
113057	//   },
113058	//   "path": "{project}/regions/{region}/packetMirrorings/{packetMirroring}",
113059	//   "response": {
113060	//     "$ref": "Operation"
113061	//   },
113062	//   "scopes": [
113063	//     "https://www.googleapis.com/auth/cloud-platform",
113064	//     "https://www.googleapis.com/auth/compute"
113065	//   ]
113066	// }
113067
113068}
113069
113070// method id "compute.packetMirrorings.get":
113071
113072type PacketMirroringsGetCall struct {
113073	s               *Service
113074	project         string
113075	region          string
113076	packetMirroring string
113077	urlParams_      gensupport.URLParams
113078	ifNoneMatch_    string
113079	ctx_            context.Context
113080	header_         http.Header
113081}
113082
113083// Get: Returns the specified PacketMirroring resource.
113084func (r *PacketMirroringsService) Get(project string, region string, packetMirroring string) *PacketMirroringsGetCall {
113085	c := &PacketMirroringsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113086	c.project = project
113087	c.region = region
113088	c.packetMirroring = packetMirroring
113089	return c
113090}
113091
113092// Fields allows partial responses to be retrieved. See
113093// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113094// for more information.
113095func (c *PacketMirroringsGetCall) Fields(s ...googleapi.Field) *PacketMirroringsGetCall {
113096	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113097	return c
113098}
113099
113100// IfNoneMatch sets the optional parameter which makes the operation
113101// fail if the object's ETag matches the given value. This is useful for
113102// getting updates only after the object has changed since the last
113103// request. Use googleapi.IsNotModified to check whether the response
113104// error from Do is the result of In-None-Match.
113105func (c *PacketMirroringsGetCall) IfNoneMatch(entityTag string) *PacketMirroringsGetCall {
113106	c.ifNoneMatch_ = entityTag
113107	return c
113108}
113109
113110// Context sets the context to be used in this call's Do method. Any
113111// pending HTTP request will be aborted if the provided context is
113112// canceled.
113113func (c *PacketMirroringsGetCall) Context(ctx context.Context) *PacketMirroringsGetCall {
113114	c.ctx_ = ctx
113115	return c
113116}
113117
113118// Header returns an http.Header that can be modified by the caller to
113119// add HTTP headers to the request.
113120func (c *PacketMirroringsGetCall) Header() http.Header {
113121	if c.header_ == nil {
113122		c.header_ = make(http.Header)
113123	}
113124	return c.header_
113125}
113126
113127func (c *PacketMirroringsGetCall) doRequest(alt string) (*http.Response, error) {
113128	reqHeaders := make(http.Header)
113129	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
113130	for k, v := range c.header_ {
113131		reqHeaders[k] = v
113132	}
113133	reqHeaders.Set("User-Agent", c.s.userAgent())
113134	if c.ifNoneMatch_ != "" {
113135		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
113136	}
113137	var body io.Reader = nil
113138	c.urlParams_.Set("alt", alt)
113139	c.urlParams_.Set("prettyPrint", "false")
113140	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings/{packetMirroring}")
113141	urls += "?" + c.urlParams_.Encode()
113142	req, err := http.NewRequest("GET", urls, body)
113143	if err != nil {
113144		return nil, err
113145	}
113146	req.Header = reqHeaders
113147	googleapi.Expand(req.URL, map[string]string{
113148		"project":         c.project,
113149		"region":          c.region,
113150		"packetMirroring": c.packetMirroring,
113151	})
113152	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113153}
113154
113155// Do executes the "compute.packetMirrorings.get" call.
113156// Exactly one of *PacketMirroring or error will be non-nil. Any non-2xx
113157// status code is an error. Response headers are in either
113158// *PacketMirroring.ServerResponse.Header or (if a response was returned
113159// at all) in error.(*googleapi.Error).Header. Use
113160// googleapi.IsNotModified to check whether the returned error was
113161// because http.StatusNotModified was returned.
113162func (c *PacketMirroringsGetCall) Do(opts ...googleapi.CallOption) (*PacketMirroring, error) {
113163	gensupport.SetOptions(c.urlParams_, opts...)
113164	res, err := c.doRequest("json")
113165	if res != nil && res.StatusCode == http.StatusNotModified {
113166		if res.Body != nil {
113167			res.Body.Close()
113168		}
113169		return nil, &googleapi.Error{
113170			Code:   res.StatusCode,
113171			Header: res.Header,
113172		}
113173	}
113174	if err != nil {
113175		return nil, err
113176	}
113177	defer googleapi.CloseBody(res)
113178	if err := googleapi.CheckResponse(res); err != nil {
113179		return nil, err
113180	}
113181	ret := &PacketMirroring{
113182		ServerResponse: googleapi.ServerResponse{
113183			Header:         res.Header,
113184			HTTPStatusCode: res.StatusCode,
113185		},
113186	}
113187	target := &ret
113188	if err := gensupport.DecodeResponse(target, res); err != nil {
113189		return nil, err
113190	}
113191	return ret, nil
113192	// {
113193	//   "description": "Returns the specified PacketMirroring resource.",
113194	//   "httpMethod": "GET",
113195	//   "id": "compute.packetMirrorings.get",
113196	//   "parameterOrder": [
113197	//     "project",
113198	//     "region",
113199	//     "packetMirroring"
113200	//   ],
113201	//   "parameters": {
113202	//     "packetMirroring": {
113203	//       "description": "Name of the PacketMirroring resource to return.",
113204	//       "location": "path",
113205	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
113206	//       "required": true,
113207	//       "type": "string"
113208	//     },
113209	//     "project": {
113210	//       "description": "Project ID for this request.",
113211	//       "location": "path",
113212	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113213	//       "required": true,
113214	//       "type": "string"
113215	//     },
113216	//     "region": {
113217	//       "description": "Name of the region for this request.",
113218	//       "location": "path",
113219	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113220	//       "required": true,
113221	//       "type": "string"
113222	//     }
113223	//   },
113224	//   "path": "{project}/regions/{region}/packetMirrorings/{packetMirroring}",
113225	//   "response": {
113226	//     "$ref": "PacketMirroring"
113227	//   },
113228	//   "scopes": [
113229	//     "https://www.googleapis.com/auth/cloud-platform",
113230	//     "https://www.googleapis.com/auth/compute",
113231	//     "https://www.googleapis.com/auth/compute.readonly"
113232	//   ]
113233	// }
113234
113235}
113236
113237// method id "compute.packetMirrorings.insert":
113238
113239type PacketMirroringsInsertCall struct {
113240	s               *Service
113241	project         string
113242	region          string
113243	packetmirroring *PacketMirroring
113244	urlParams_      gensupport.URLParams
113245	ctx_            context.Context
113246	header_         http.Header
113247}
113248
113249// Insert: Creates a PacketMirroring resource in the specified project
113250// and region using the data included in the request.
113251func (r *PacketMirroringsService) Insert(project string, region string, packetmirroring *PacketMirroring) *PacketMirroringsInsertCall {
113252	c := &PacketMirroringsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113253	c.project = project
113254	c.region = region
113255	c.packetmirroring = packetmirroring
113256	return c
113257}
113258
113259// RequestId sets the optional parameter "requestId": An optional
113260// request ID to identify requests. Specify a unique request ID so that
113261// if you must retry your request, the server will know to ignore the
113262// request if it has already been completed.
113263//
113264// For example, consider a situation where you make an initial request
113265// and the request times out. If you make the request again with the
113266// same request ID, the server can check if original operation with the
113267// same request ID was received, and if so, will ignore the second
113268// request. This prevents clients from accidentally creating duplicate
113269// commitments.
113270//
113271// The request ID must be a valid UUID with the exception that zero UUID
113272// is not supported (00000000-0000-0000-0000-000000000000).
113273func (c *PacketMirroringsInsertCall) RequestId(requestId string) *PacketMirroringsInsertCall {
113274	c.urlParams_.Set("requestId", requestId)
113275	return c
113276}
113277
113278// Fields allows partial responses to be retrieved. See
113279// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113280// for more information.
113281func (c *PacketMirroringsInsertCall) Fields(s ...googleapi.Field) *PacketMirroringsInsertCall {
113282	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113283	return c
113284}
113285
113286// Context sets the context to be used in this call's Do method. Any
113287// pending HTTP request will be aborted if the provided context is
113288// canceled.
113289func (c *PacketMirroringsInsertCall) Context(ctx context.Context) *PacketMirroringsInsertCall {
113290	c.ctx_ = ctx
113291	return c
113292}
113293
113294// Header returns an http.Header that can be modified by the caller to
113295// add HTTP headers to the request.
113296func (c *PacketMirroringsInsertCall) Header() http.Header {
113297	if c.header_ == nil {
113298		c.header_ = make(http.Header)
113299	}
113300	return c.header_
113301}
113302
113303func (c *PacketMirroringsInsertCall) doRequest(alt string) (*http.Response, error) {
113304	reqHeaders := make(http.Header)
113305	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
113306	for k, v := range c.header_ {
113307		reqHeaders[k] = v
113308	}
113309	reqHeaders.Set("User-Agent", c.s.userAgent())
113310	var body io.Reader = nil
113311	body, err := googleapi.WithoutDataWrapper.JSONReader(c.packetmirroring)
113312	if err != nil {
113313		return nil, err
113314	}
113315	reqHeaders.Set("Content-Type", "application/json")
113316	c.urlParams_.Set("alt", alt)
113317	c.urlParams_.Set("prettyPrint", "false")
113318	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings")
113319	urls += "?" + c.urlParams_.Encode()
113320	req, err := http.NewRequest("POST", urls, body)
113321	if err != nil {
113322		return nil, err
113323	}
113324	req.Header = reqHeaders
113325	googleapi.Expand(req.URL, map[string]string{
113326		"project": c.project,
113327		"region":  c.region,
113328	})
113329	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113330}
113331
113332// Do executes the "compute.packetMirrorings.insert" call.
113333// Exactly one of *Operation or error will be non-nil. Any non-2xx
113334// status code is an error. Response headers are in either
113335// *Operation.ServerResponse.Header or (if a response was returned at
113336// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113337// to check whether the returned error was because
113338// http.StatusNotModified was returned.
113339func (c *PacketMirroringsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113340	gensupport.SetOptions(c.urlParams_, opts...)
113341	res, err := c.doRequest("json")
113342	if res != nil && res.StatusCode == http.StatusNotModified {
113343		if res.Body != nil {
113344			res.Body.Close()
113345		}
113346		return nil, &googleapi.Error{
113347			Code:   res.StatusCode,
113348			Header: res.Header,
113349		}
113350	}
113351	if err != nil {
113352		return nil, err
113353	}
113354	defer googleapi.CloseBody(res)
113355	if err := googleapi.CheckResponse(res); err != nil {
113356		return nil, err
113357	}
113358	ret := &Operation{
113359		ServerResponse: googleapi.ServerResponse{
113360			Header:         res.Header,
113361			HTTPStatusCode: res.StatusCode,
113362		},
113363	}
113364	target := &ret
113365	if err := gensupport.DecodeResponse(target, res); err != nil {
113366		return nil, err
113367	}
113368	return ret, nil
113369	// {
113370	//   "description": "Creates a PacketMirroring resource in the specified project and region using the data included in the request.",
113371	//   "httpMethod": "POST",
113372	//   "id": "compute.packetMirrorings.insert",
113373	//   "parameterOrder": [
113374	//     "project",
113375	//     "region"
113376	//   ],
113377	//   "parameters": {
113378	//     "project": {
113379	//       "description": "Project ID for this request.",
113380	//       "location": "path",
113381	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113382	//       "required": true,
113383	//       "type": "string"
113384	//     },
113385	//     "region": {
113386	//       "description": "Name of the region for this request.",
113387	//       "location": "path",
113388	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113389	//       "required": true,
113390	//       "type": "string"
113391	//     },
113392	//     "requestId": {
113393	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
113394	//       "location": "query",
113395	//       "type": "string"
113396	//     }
113397	//   },
113398	//   "path": "{project}/regions/{region}/packetMirrorings",
113399	//   "request": {
113400	//     "$ref": "PacketMirroring"
113401	//   },
113402	//   "response": {
113403	//     "$ref": "Operation"
113404	//   },
113405	//   "scopes": [
113406	//     "https://www.googleapis.com/auth/cloud-platform",
113407	//     "https://www.googleapis.com/auth/compute"
113408	//   ]
113409	// }
113410
113411}
113412
113413// method id "compute.packetMirrorings.list":
113414
113415type PacketMirroringsListCall struct {
113416	s            *Service
113417	project      string
113418	region       string
113419	urlParams_   gensupport.URLParams
113420	ifNoneMatch_ string
113421	ctx_         context.Context
113422	header_      http.Header
113423}
113424
113425// List: Retrieves a list of PacketMirroring resources available to the
113426// specified project and region.
113427func (r *PacketMirroringsService) List(project string, region string) *PacketMirroringsListCall {
113428	c := &PacketMirroringsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113429	c.project = project
113430	c.region = region
113431	return c
113432}
113433
113434// Filter sets the optional parameter "filter": A filter expression that
113435// filters resources listed in the response. The expression must specify
113436// the field name, a comparison operator, and the value that you want to
113437// use for filtering. The value must be a string, a number, or a
113438// boolean. The comparison operator must be either =, !=, >, or <.
113439//
113440// For example, if you are filtering Compute Engine instances, you can
113441// exclude instances named example-instance by specifying name !=
113442// example-instance.
113443//
113444// You can also filter nested fields. For example, you could specify
113445// scheduling.automaticRestart = false to include instances only if they
113446// are not scheduled for automatic restarts. You can use filtering on
113447// nested fields to filter based on resource labels.
113448//
113449// To filter on multiple expressions, provide each separate expression
113450// within parentheses. For example, (scheduling.automaticRestart = true)
113451// (cpuPlatform = "Intel Skylake"). By default, each expression is an
113452// AND expression. However, you can include AND and OR expressions
113453// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
113454// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
113455// true).
113456func (c *PacketMirroringsListCall) Filter(filter string) *PacketMirroringsListCall {
113457	c.urlParams_.Set("filter", filter)
113458	return c
113459}
113460
113461// MaxResults sets the optional parameter "maxResults": The maximum
113462// number of results per page that should be returned. If the number of
113463// available results is larger than maxResults, Compute Engine returns a
113464// nextPageToken that can be used to get the next page of results in
113465// subsequent list requests. Acceptable values are 0 to 500, inclusive.
113466// (Default: 500)
113467func (c *PacketMirroringsListCall) MaxResults(maxResults int64) *PacketMirroringsListCall {
113468	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
113469	return c
113470}
113471
113472// OrderBy sets the optional parameter "orderBy": Sorts list results by
113473// a certain order. By default, results are returned in alphanumerical
113474// order based on the resource name.
113475//
113476// You can also sort results in descending order based on the creation
113477// timestamp using orderBy="creationTimestamp desc". This sorts results
113478// based on the creationTimestamp field in reverse chronological order
113479// (newest result first). Use this to sort resources like operations so
113480// that the newest operation is returned first.
113481//
113482// Currently, only sorting by name or creationTimestamp desc is
113483// supported.
113484func (c *PacketMirroringsListCall) OrderBy(orderBy string) *PacketMirroringsListCall {
113485	c.urlParams_.Set("orderBy", orderBy)
113486	return c
113487}
113488
113489// PageToken sets the optional parameter "pageToken": Specifies a page
113490// token to use. Set pageToken to the nextPageToken returned by a
113491// previous list request to get the next page of results.
113492func (c *PacketMirroringsListCall) PageToken(pageToken string) *PacketMirroringsListCall {
113493	c.urlParams_.Set("pageToken", pageToken)
113494	return c
113495}
113496
113497// Fields allows partial responses to be retrieved. See
113498// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113499// for more information.
113500func (c *PacketMirroringsListCall) Fields(s ...googleapi.Field) *PacketMirroringsListCall {
113501	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113502	return c
113503}
113504
113505// IfNoneMatch sets the optional parameter which makes the operation
113506// fail if the object's ETag matches the given value. This is useful for
113507// getting updates only after the object has changed since the last
113508// request. Use googleapi.IsNotModified to check whether the response
113509// error from Do is the result of In-None-Match.
113510func (c *PacketMirroringsListCall) IfNoneMatch(entityTag string) *PacketMirroringsListCall {
113511	c.ifNoneMatch_ = entityTag
113512	return c
113513}
113514
113515// Context sets the context to be used in this call's Do method. Any
113516// pending HTTP request will be aborted if the provided context is
113517// canceled.
113518func (c *PacketMirroringsListCall) Context(ctx context.Context) *PacketMirroringsListCall {
113519	c.ctx_ = ctx
113520	return c
113521}
113522
113523// Header returns an http.Header that can be modified by the caller to
113524// add HTTP headers to the request.
113525func (c *PacketMirroringsListCall) Header() http.Header {
113526	if c.header_ == nil {
113527		c.header_ = make(http.Header)
113528	}
113529	return c.header_
113530}
113531
113532func (c *PacketMirroringsListCall) doRequest(alt string) (*http.Response, error) {
113533	reqHeaders := make(http.Header)
113534	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
113535	for k, v := range c.header_ {
113536		reqHeaders[k] = v
113537	}
113538	reqHeaders.Set("User-Agent", c.s.userAgent())
113539	if c.ifNoneMatch_ != "" {
113540		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
113541	}
113542	var body io.Reader = nil
113543	c.urlParams_.Set("alt", alt)
113544	c.urlParams_.Set("prettyPrint", "false")
113545	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings")
113546	urls += "?" + c.urlParams_.Encode()
113547	req, err := http.NewRequest("GET", urls, body)
113548	if err != nil {
113549		return nil, err
113550	}
113551	req.Header = reqHeaders
113552	googleapi.Expand(req.URL, map[string]string{
113553		"project": c.project,
113554		"region":  c.region,
113555	})
113556	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113557}
113558
113559// Do executes the "compute.packetMirrorings.list" call.
113560// Exactly one of *PacketMirroringList or error will be non-nil. Any
113561// non-2xx status code is an error. Response headers are in either
113562// *PacketMirroringList.ServerResponse.Header or (if a response was
113563// returned at all) in error.(*googleapi.Error).Header. Use
113564// googleapi.IsNotModified to check whether the returned error was
113565// because http.StatusNotModified was returned.
113566func (c *PacketMirroringsListCall) Do(opts ...googleapi.CallOption) (*PacketMirroringList, error) {
113567	gensupport.SetOptions(c.urlParams_, opts...)
113568	res, err := c.doRequest("json")
113569	if res != nil && res.StatusCode == http.StatusNotModified {
113570		if res.Body != nil {
113571			res.Body.Close()
113572		}
113573		return nil, &googleapi.Error{
113574			Code:   res.StatusCode,
113575			Header: res.Header,
113576		}
113577	}
113578	if err != nil {
113579		return nil, err
113580	}
113581	defer googleapi.CloseBody(res)
113582	if err := googleapi.CheckResponse(res); err != nil {
113583		return nil, err
113584	}
113585	ret := &PacketMirroringList{
113586		ServerResponse: googleapi.ServerResponse{
113587			Header:         res.Header,
113588			HTTPStatusCode: res.StatusCode,
113589		},
113590	}
113591	target := &ret
113592	if err := gensupport.DecodeResponse(target, res); err != nil {
113593		return nil, err
113594	}
113595	return ret, nil
113596	// {
113597	//   "description": "Retrieves a list of PacketMirroring resources available to the specified project and region.",
113598	//   "httpMethod": "GET",
113599	//   "id": "compute.packetMirrorings.list",
113600	//   "parameterOrder": [
113601	//     "project",
113602	//     "region"
113603	//   ],
113604	//   "parameters": {
113605	//     "filter": {
113606	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
113607	//       "location": "query",
113608	//       "type": "string"
113609	//     },
113610	//     "maxResults": {
113611	//       "default": "500",
113612	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
113613	//       "format": "uint32",
113614	//       "location": "query",
113615	//       "minimum": "0",
113616	//       "type": "integer"
113617	//     },
113618	//     "orderBy": {
113619	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
113620	//       "location": "query",
113621	//       "type": "string"
113622	//     },
113623	//     "pageToken": {
113624	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
113625	//       "location": "query",
113626	//       "type": "string"
113627	//     },
113628	//     "project": {
113629	//       "description": "Project ID for this request.",
113630	//       "location": "path",
113631	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113632	//       "required": true,
113633	//       "type": "string"
113634	//     },
113635	//     "region": {
113636	//       "description": "Name of the region for this request.",
113637	//       "location": "path",
113638	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113639	//       "required": true,
113640	//       "type": "string"
113641	//     }
113642	//   },
113643	//   "path": "{project}/regions/{region}/packetMirrorings",
113644	//   "response": {
113645	//     "$ref": "PacketMirroringList"
113646	//   },
113647	//   "scopes": [
113648	//     "https://www.googleapis.com/auth/cloud-platform",
113649	//     "https://www.googleapis.com/auth/compute",
113650	//     "https://www.googleapis.com/auth/compute.readonly"
113651	//   ]
113652	// }
113653
113654}
113655
113656// Pages invokes f for each page of results.
113657// A non-nil error returned from f will halt the iteration.
113658// The provided context supersedes any context provided to the Context method.
113659func (c *PacketMirroringsListCall) Pages(ctx context.Context, f func(*PacketMirroringList) error) error {
113660	c.ctx_ = ctx
113661	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
113662	for {
113663		x, err := c.Do()
113664		if err != nil {
113665			return err
113666		}
113667		if err := f(x); err != nil {
113668			return err
113669		}
113670		if x.NextPageToken == "" {
113671			return nil
113672		}
113673		c.PageToken(x.NextPageToken)
113674	}
113675}
113676
113677// method id "compute.packetMirrorings.patch":
113678
113679type PacketMirroringsPatchCall struct {
113680	s               *Service
113681	project         string
113682	region          string
113683	packetMirroring string
113684	packetmirroring *PacketMirroring
113685	urlParams_      gensupport.URLParams
113686	ctx_            context.Context
113687	header_         http.Header
113688}
113689
113690// Patch: Patches the specified PacketMirroring resource with the data
113691// included in the request. This method supports PATCH semantics and
113692// uses JSON merge patch format and processing rules.
113693func (r *PacketMirroringsService) Patch(project string, region string, packetMirroring string, packetmirroring *PacketMirroring) *PacketMirroringsPatchCall {
113694	c := &PacketMirroringsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113695	c.project = project
113696	c.region = region
113697	c.packetMirroring = packetMirroring
113698	c.packetmirroring = packetmirroring
113699	return c
113700}
113701
113702// RequestId sets the optional parameter "requestId": An optional
113703// request ID to identify requests. Specify a unique request ID so that
113704// if you must retry your request, the server will know to ignore the
113705// request if it has already been completed.
113706//
113707// For example, consider a situation where you make an initial request
113708// and the request times out. If you make the request again with the
113709// same request ID, the server can check if original operation with the
113710// same request ID was received, and if so, will ignore the second
113711// request. This prevents clients from accidentally creating duplicate
113712// commitments.
113713//
113714// The request ID must be a valid UUID with the exception that zero UUID
113715// is not supported (00000000-0000-0000-0000-000000000000).
113716func (c *PacketMirroringsPatchCall) RequestId(requestId string) *PacketMirroringsPatchCall {
113717	c.urlParams_.Set("requestId", requestId)
113718	return c
113719}
113720
113721// Fields allows partial responses to be retrieved. See
113722// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113723// for more information.
113724func (c *PacketMirroringsPatchCall) Fields(s ...googleapi.Field) *PacketMirroringsPatchCall {
113725	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113726	return c
113727}
113728
113729// Context sets the context to be used in this call's Do method. Any
113730// pending HTTP request will be aborted if the provided context is
113731// canceled.
113732func (c *PacketMirroringsPatchCall) Context(ctx context.Context) *PacketMirroringsPatchCall {
113733	c.ctx_ = ctx
113734	return c
113735}
113736
113737// Header returns an http.Header that can be modified by the caller to
113738// add HTTP headers to the request.
113739func (c *PacketMirroringsPatchCall) Header() http.Header {
113740	if c.header_ == nil {
113741		c.header_ = make(http.Header)
113742	}
113743	return c.header_
113744}
113745
113746func (c *PacketMirroringsPatchCall) doRequest(alt string) (*http.Response, error) {
113747	reqHeaders := make(http.Header)
113748	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
113749	for k, v := range c.header_ {
113750		reqHeaders[k] = v
113751	}
113752	reqHeaders.Set("User-Agent", c.s.userAgent())
113753	var body io.Reader = nil
113754	body, err := googleapi.WithoutDataWrapper.JSONReader(c.packetmirroring)
113755	if err != nil {
113756		return nil, err
113757	}
113758	reqHeaders.Set("Content-Type", "application/json")
113759	c.urlParams_.Set("alt", alt)
113760	c.urlParams_.Set("prettyPrint", "false")
113761	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings/{packetMirroring}")
113762	urls += "?" + c.urlParams_.Encode()
113763	req, err := http.NewRequest("PATCH", urls, body)
113764	if err != nil {
113765		return nil, err
113766	}
113767	req.Header = reqHeaders
113768	googleapi.Expand(req.URL, map[string]string{
113769		"project":         c.project,
113770		"region":          c.region,
113771		"packetMirroring": c.packetMirroring,
113772	})
113773	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113774}
113775
113776// Do executes the "compute.packetMirrorings.patch" call.
113777// Exactly one of *Operation or error will be non-nil. Any non-2xx
113778// status code is an error. Response headers are in either
113779// *Operation.ServerResponse.Header or (if a response was returned at
113780// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113781// to check whether the returned error was because
113782// http.StatusNotModified was returned.
113783func (c *PacketMirroringsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113784	gensupport.SetOptions(c.urlParams_, opts...)
113785	res, err := c.doRequest("json")
113786	if res != nil && res.StatusCode == http.StatusNotModified {
113787		if res.Body != nil {
113788			res.Body.Close()
113789		}
113790		return nil, &googleapi.Error{
113791			Code:   res.StatusCode,
113792			Header: res.Header,
113793		}
113794	}
113795	if err != nil {
113796		return nil, err
113797	}
113798	defer googleapi.CloseBody(res)
113799	if err := googleapi.CheckResponse(res); err != nil {
113800		return nil, err
113801	}
113802	ret := &Operation{
113803		ServerResponse: googleapi.ServerResponse{
113804			Header:         res.Header,
113805			HTTPStatusCode: res.StatusCode,
113806		},
113807	}
113808	target := &ret
113809	if err := gensupport.DecodeResponse(target, res); err != nil {
113810		return nil, err
113811	}
113812	return ret, nil
113813	// {
113814	//   "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.",
113815	//   "httpMethod": "PATCH",
113816	//   "id": "compute.packetMirrorings.patch",
113817	//   "parameterOrder": [
113818	//     "project",
113819	//     "region",
113820	//     "packetMirroring"
113821	//   ],
113822	//   "parameters": {
113823	//     "packetMirroring": {
113824	//       "description": "Name of the PacketMirroring resource to patch.",
113825	//       "location": "path",
113826	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
113827	//       "required": true,
113828	//       "type": "string"
113829	//     },
113830	//     "project": {
113831	//       "description": "Project ID for this request.",
113832	//       "location": "path",
113833	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113834	//       "required": true,
113835	//       "type": "string"
113836	//     },
113837	//     "region": {
113838	//       "description": "Name of the region for this request.",
113839	//       "location": "path",
113840	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113841	//       "required": true,
113842	//       "type": "string"
113843	//     },
113844	//     "requestId": {
113845	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
113846	//       "location": "query",
113847	//       "type": "string"
113848	//     }
113849	//   },
113850	//   "path": "{project}/regions/{region}/packetMirrorings/{packetMirroring}",
113851	//   "request": {
113852	//     "$ref": "PacketMirroring"
113853	//   },
113854	//   "response": {
113855	//     "$ref": "Operation"
113856	//   },
113857	//   "scopes": [
113858	//     "https://www.googleapis.com/auth/cloud-platform",
113859	//     "https://www.googleapis.com/auth/compute"
113860	//   ]
113861	// }
113862
113863}
113864
113865// method id "compute.packetMirrorings.testIamPermissions":
113866
113867type PacketMirroringsTestIamPermissionsCall struct {
113868	s                      *Service
113869	project                string
113870	region                 string
113871	resource               string
113872	testpermissionsrequest *TestPermissionsRequest
113873	urlParams_             gensupport.URLParams
113874	ctx_                   context.Context
113875	header_                http.Header
113876}
113877
113878// TestIamPermissions: Returns permissions that a caller has on the
113879// specified resource.
113880func (r *PacketMirroringsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *PacketMirroringsTestIamPermissionsCall {
113881	c := &PacketMirroringsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113882	c.project = project
113883	c.region = region
113884	c.resource = resource
113885	c.testpermissionsrequest = testpermissionsrequest
113886	return c
113887}
113888
113889// Fields allows partial responses to be retrieved. See
113890// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113891// for more information.
113892func (c *PacketMirroringsTestIamPermissionsCall) Fields(s ...googleapi.Field) *PacketMirroringsTestIamPermissionsCall {
113893	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113894	return c
113895}
113896
113897// Context sets the context to be used in this call's Do method. Any
113898// pending HTTP request will be aborted if the provided context is
113899// canceled.
113900func (c *PacketMirroringsTestIamPermissionsCall) Context(ctx context.Context) *PacketMirroringsTestIamPermissionsCall {
113901	c.ctx_ = ctx
113902	return c
113903}
113904
113905// Header returns an http.Header that can be modified by the caller to
113906// add HTTP headers to the request.
113907func (c *PacketMirroringsTestIamPermissionsCall) Header() http.Header {
113908	if c.header_ == nil {
113909		c.header_ = make(http.Header)
113910	}
113911	return c.header_
113912}
113913
113914func (c *PacketMirroringsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
113915	reqHeaders := make(http.Header)
113916	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
113917	for k, v := range c.header_ {
113918		reqHeaders[k] = v
113919	}
113920	reqHeaders.Set("User-Agent", c.s.userAgent())
113921	var body io.Reader = nil
113922	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
113923	if err != nil {
113924		return nil, err
113925	}
113926	reqHeaders.Set("Content-Type", "application/json")
113927	c.urlParams_.Set("alt", alt)
113928	c.urlParams_.Set("prettyPrint", "false")
113929	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions")
113930	urls += "?" + c.urlParams_.Encode()
113931	req, err := http.NewRequest("POST", urls, body)
113932	if err != nil {
113933		return nil, err
113934	}
113935	req.Header = reqHeaders
113936	googleapi.Expand(req.URL, map[string]string{
113937		"project":  c.project,
113938		"region":   c.region,
113939		"resource": c.resource,
113940	})
113941	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113942}
113943
113944// Do executes the "compute.packetMirrorings.testIamPermissions" call.
113945// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
113946// non-2xx status code is an error. Response headers are in either
113947// *TestPermissionsResponse.ServerResponse.Header or (if a response was
113948// returned at all) in error.(*googleapi.Error).Header. Use
113949// googleapi.IsNotModified to check whether the returned error was
113950// because http.StatusNotModified was returned.
113951func (c *PacketMirroringsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
113952	gensupport.SetOptions(c.urlParams_, opts...)
113953	res, err := c.doRequest("json")
113954	if res != nil && res.StatusCode == http.StatusNotModified {
113955		if res.Body != nil {
113956			res.Body.Close()
113957		}
113958		return nil, &googleapi.Error{
113959			Code:   res.StatusCode,
113960			Header: res.Header,
113961		}
113962	}
113963	if err != nil {
113964		return nil, err
113965	}
113966	defer googleapi.CloseBody(res)
113967	if err := googleapi.CheckResponse(res); err != nil {
113968		return nil, err
113969	}
113970	ret := &TestPermissionsResponse{
113971		ServerResponse: googleapi.ServerResponse{
113972			Header:         res.Header,
113973			HTTPStatusCode: res.StatusCode,
113974		},
113975	}
113976	target := &ret
113977	if err := gensupport.DecodeResponse(target, res); err != nil {
113978		return nil, err
113979	}
113980	return ret, nil
113981	// {
113982	//   "description": "Returns permissions that a caller has on the specified resource.",
113983	//   "httpMethod": "POST",
113984	//   "id": "compute.packetMirrorings.testIamPermissions",
113985	//   "parameterOrder": [
113986	//     "project",
113987	//     "region",
113988	//     "resource"
113989	//   ],
113990	//   "parameters": {
113991	//     "project": {
113992	//       "description": "Project ID for this request.",
113993	//       "location": "path",
113994	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113995	//       "required": true,
113996	//       "type": "string"
113997	//     },
113998	//     "region": {
113999	//       "description": "The name of the region for this request.",
114000	//       "location": "path",
114001	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
114002	//       "required": true,
114003	//       "type": "string"
114004	//     },
114005	//     "resource": {
114006	//       "description": "Name or id of the resource for this request.",
114007	//       "location": "path",
114008	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
114009	//       "required": true,
114010	//       "type": "string"
114011	//     }
114012	//   },
114013	//   "path": "{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions",
114014	//   "request": {
114015	//     "$ref": "TestPermissionsRequest"
114016	//   },
114017	//   "response": {
114018	//     "$ref": "TestPermissionsResponse"
114019	//   },
114020	//   "scopes": [
114021	//     "https://www.googleapis.com/auth/cloud-platform",
114022	//     "https://www.googleapis.com/auth/compute",
114023	//     "https://www.googleapis.com/auth/compute.readonly"
114024	//   ]
114025	// }
114026
114027}
114028
114029// method id "compute.projects.disableXpnHost":
114030
114031type ProjectsDisableXpnHostCall struct {
114032	s          *Service
114033	project    string
114034	urlParams_ gensupport.URLParams
114035	ctx_       context.Context
114036	header_    http.Header
114037}
114038
114039// DisableXpnHost: Disable this project as a shared VPC host project.
114040func (r *ProjectsService) DisableXpnHost(project string) *ProjectsDisableXpnHostCall {
114041	c := &ProjectsDisableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114042	c.project = project
114043	return c
114044}
114045
114046// RequestId sets the optional parameter "requestId": An optional
114047// request ID to identify requests. Specify a unique request ID so that
114048// if you must retry your request, the server will know to ignore the
114049// request if it has already been completed.
114050//
114051// For example, consider a situation where you make an initial request
114052// and the request times out. If you make the request again with the
114053// same request ID, the server can check if original operation with the
114054// same request ID was received, and if so, will ignore the second
114055// request. This prevents clients from accidentally creating duplicate
114056// commitments.
114057//
114058// The request ID must be a valid UUID with the exception that zero UUID
114059// is not supported (00000000-0000-0000-0000-000000000000).
114060func (c *ProjectsDisableXpnHostCall) RequestId(requestId string) *ProjectsDisableXpnHostCall {
114061	c.urlParams_.Set("requestId", requestId)
114062	return c
114063}
114064
114065// Fields allows partial responses to be retrieved. See
114066// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114067// for more information.
114068func (c *ProjectsDisableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnHostCall {
114069	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114070	return c
114071}
114072
114073// Context sets the context to be used in this call's Do method. Any
114074// pending HTTP request will be aborted if the provided context is
114075// canceled.
114076func (c *ProjectsDisableXpnHostCall) Context(ctx context.Context) *ProjectsDisableXpnHostCall {
114077	c.ctx_ = ctx
114078	return c
114079}
114080
114081// Header returns an http.Header that can be modified by the caller to
114082// add HTTP headers to the request.
114083func (c *ProjectsDisableXpnHostCall) Header() http.Header {
114084	if c.header_ == nil {
114085		c.header_ = make(http.Header)
114086	}
114087	return c.header_
114088}
114089
114090func (c *ProjectsDisableXpnHostCall) doRequest(alt string) (*http.Response, error) {
114091	reqHeaders := make(http.Header)
114092	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
114093	for k, v := range c.header_ {
114094		reqHeaders[k] = v
114095	}
114096	reqHeaders.Set("User-Agent", c.s.userAgent())
114097	var body io.Reader = nil
114098	c.urlParams_.Set("alt", alt)
114099	c.urlParams_.Set("prettyPrint", "false")
114100	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/disableXpnHost")
114101	urls += "?" + c.urlParams_.Encode()
114102	req, err := http.NewRequest("POST", urls, body)
114103	if err != nil {
114104		return nil, err
114105	}
114106	req.Header = reqHeaders
114107	googleapi.Expand(req.URL, map[string]string{
114108		"project": c.project,
114109	})
114110	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114111}
114112
114113// Do executes the "compute.projects.disableXpnHost" call.
114114// Exactly one of *Operation or error will be non-nil. Any non-2xx
114115// status code is an error. Response headers are in either
114116// *Operation.ServerResponse.Header or (if a response was returned at
114117// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114118// to check whether the returned error was because
114119// http.StatusNotModified was returned.
114120func (c *ProjectsDisableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
114121	gensupport.SetOptions(c.urlParams_, opts...)
114122	res, err := c.doRequest("json")
114123	if res != nil && res.StatusCode == http.StatusNotModified {
114124		if res.Body != nil {
114125			res.Body.Close()
114126		}
114127		return nil, &googleapi.Error{
114128			Code:   res.StatusCode,
114129			Header: res.Header,
114130		}
114131	}
114132	if err != nil {
114133		return nil, err
114134	}
114135	defer googleapi.CloseBody(res)
114136	if err := googleapi.CheckResponse(res); err != nil {
114137		return nil, err
114138	}
114139	ret := &Operation{
114140		ServerResponse: googleapi.ServerResponse{
114141			Header:         res.Header,
114142			HTTPStatusCode: res.StatusCode,
114143		},
114144	}
114145	target := &ret
114146	if err := gensupport.DecodeResponse(target, res); err != nil {
114147		return nil, err
114148	}
114149	return ret, nil
114150	// {
114151	//   "description": "Disable this project as a shared VPC host project.",
114152	//   "httpMethod": "POST",
114153	//   "id": "compute.projects.disableXpnHost",
114154	//   "parameterOrder": [
114155	//     "project"
114156	//   ],
114157	//   "parameters": {
114158	//     "project": {
114159	//       "description": "Project ID for this request.",
114160	//       "location": "path",
114161	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114162	//       "required": true,
114163	//       "type": "string"
114164	//     },
114165	//     "requestId": {
114166	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
114167	//       "location": "query",
114168	//       "type": "string"
114169	//     }
114170	//   },
114171	//   "path": "{project}/disableXpnHost",
114172	//   "response": {
114173	//     "$ref": "Operation"
114174	//   },
114175	//   "scopes": [
114176	//     "https://www.googleapis.com/auth/cloud-platform",
114177	//     "https://www.googleapis.com/auth/compute"
114178	//   ]
114179	// }
114180
114181}
114182
114183// method id "compute.projects.disableXpnResource":
114184
114185type ProjectsDisableXpnResourceCall struct {
114186	s                                 *Service
114187	project                           string
114188	projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest
114189	urlParams_                        gensupport.URLParams
114190	ctx_                              context.Context
114191	header_                           http.Header
114192}
114193
114194// DisableXpnResource: Disable a service resource (also known as service
114195// project) associated with this host project.
114196func (r *ProjectsService) DisableXpnResource(project string, projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest) *ProjectsDisableXpnResourceCall {
114197	c := &ProjectsDisableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114198	c.project = project
114199	c.projectsdisablexpnresourcerequest = projectsdisablexpnresourcerequest
114200	return c
114201}
114202
114203// RequestId sets the optional parameter "requestId": An optional
114204// request ID to identify requests. Specify a unique request ID so that
114205// if you must retry your request, the server will know to ignore the
114206// request if it has already been completed.
114207//
114208// For example, consider a situation where you make an initial request
114209// and the request times out. If you make the request again with the
114210// same request ID, the server can check if original operation with the
114211// same request ID was received, and if so, will ignore the second
114212// request. This prevents clients from accidentally creating duplicate
114213// commitments.
114214//
114215// The request ID must be a valid UUID with the exception that zero UUID
114216// is not supported (00000000-0000-0000-0000-000000000000).
114217func (c *ProjectsDisableXpnResourceCall) RequestId(requestId string) *ProjectsDisableXpnResourceCall {
114218	c.urlParams_.Set("requestId", requestId)
114219	return c
114220}
114221
114222// Fields allows partial responses to be retrieved. See
114223// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114224// for more information.
114225func (c *ProjectsDisableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnResourceCall {
114226	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114227	return c
114228}
114229
114230// Context sets the context to be used in this call's Do method. Any
114231// pending HTTP request will be aborted if the provided context is
114232// canceled.
114233func (c *ProjectsDisableXpnResourceCall) Context(ctx context.Context) *ProjectsDisableXpnResourceCall {
114234	c.ctx_ = ctx
114235	return c
114236}
114237
114238// Header returns an http.Header that can be modified by the caller to
114239// add HTTP headers to the request.
114240func (c *ProjectsDisableXpnResourceCall) Header() http.Header {
114241	if c.header_ == nil {
114242		c.header_ = make(http.Header)
114243	}
114244	return c.header_
114245}
114246
114247func (c *ProjectsDisableXpnResourceCall) doRequest(alt string) (*http.Response, error) {
114248	reqHeaders := make(http.Header)
114249	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
114250	for k, v := range c.header_ {
114251		reqHeaders[k] = v
114252	}
114253	reqHeaders.Set("User-Agent", c.s.userAgent())
114254	var body io.Reader = nil
114255	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsdisablexpnresourcerequest)
114256	if err != nil {
114257		return nil, err
114258	}
114259	reqHeaders.Set("Content-Type", "application/json")
114260	c.urlParams_.Set("alt", alt)
114261	c.urlParams_.Set("prettyPrint", "false")
114262	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/disableXpnResource")
114263	urls += "?" + c.urlParams_.Encode()
114264	req, err := http.NewRequest("POST", urls, body)
114265	if err != nil {
114266		return nil, err
114267	}
114268	req.Header = reqHeaders
114269	googleapi.Expand(req.URL, map[string]string{
114270		"project": c.project,
114271	})
114272	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114273}
114274
114275// Do executes the "compute.projects.disableXpnResource" call.
114276// Exactly one of *Operation or error will be non-nil. Any non-2xx
114277// status code is an error. Response headers are in either
114278// *Operation.ServerResponse.Header or (if a response was returned at
114279// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114280// to check whether the returned error was because
114281// http.StatusNotModified was returned.
114282func (c *ProjectsDisableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
114283	gensupport.SetOptions(c.urlParams_, opts...)
114284	res, err := c.doRequest("json")
114285	if res != nil && res.StatusCode == http.StatusNotModified {
114286		if res.Body != nil {
114287			res.Body.Close()
114288		}
114289		return nil, &googleapi.Error{
114290			Code:   res.StatusCode,
114291			Header: res.Header,
114292		}
114293	}
114294	if err != nil {
114295		return nil, err
114296	}
114297	defer googleapi.CloseBody(res)
114298	if err := googleapi.CheckResponse(res); err != nil {
114299		return nil, err
114300	}
114301	ret := &Operation{
114302		ServerResponse: googleapi.ServerResponse{
114303			Header:         res.Header,
114304			HTTPStatusCode: res.StatusCode,
114305		},
114306	}
114307	target := &ret
114308	if err := gensupport.DecodeResponse(target, res); err != nil {
114309		return nil, err
114310	}
114311	return ret, nil
114312	// {
114313	//   "description": "Disable a service resource (also known as service project) associated with this host project.",
114314	//   "httpMethod": "POST",
114315	//   "id": "compute.projects.disableXpnResource",
114316	//   "parameterOrder": [
114317	//     "project"
114318	//   ],
114319	//   "parameters": {
114320	//     "project": {
114321	//       "description": "Project ID for this request.",
114322	//       "location": "path",
114323	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114324	//       "required": true,
114325	//       "type": "string"
114326	//     },
114327	//     "requestId": {
114328	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
114329	//       "location": "query",
114330	//       "type": "string"
114331	//     }
114332	//   },
114333	//   "path": "{project}/disableXpnResource",
114334	//   "request": {
114335	//     "$ref": "ProjectsDisableXpnResourceRequest"
114336	//   },
114337	//   "response": {
114338	//     "$ref": "Operation"
114339	//   },
114340	//   "scopes": [
114341	//     "https://www.googleapis.com/auth/cloud-platform",
114342	//     "https://www.googleapis.com/auth/compute"
114343	//   ]
114344	// }
114345
114346}
114347
114348// method id "compute.projects.enableXpnHost":
114349
114350type ProjectsEnableXpnHostCall struct {
114351	s          *Service
114352	project    string
114353	urlParams_ gensupport.URLParams
114354	ctx_       context.Context
114355	header_    http.Header
114356}
114357
114358// EnableXpnHost: Enable this project as a shared VPC host project.
114359func (r *ProjectsService) EnableXpnHost(project string) *ProjectsEnableXpnHostCall {
114360	c := &ProjectsEnableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114361	c.project = project
114362	return c
114363}
114364
114365// RequestId sets the optional parameter "requestId": An optional
114366// request ID to identify requests. Specify a unique request ID so that
114367// if you must retry your request, the server will know to ignore the
114368// request if it has already been completed.
114369//
114370// For example, consider a situation where you make an initial request
114371// and the request times out. If you make the request again with the
114372// same request ID, the server can check if original operation with the
114373// same request ID was received, and if so, will ignore the second
114374// request. This prevents clients from accidentally creating duplicate
114375// commitments.
114376//
114377// The request ID must be a valid UUID with the exception that zero UUID
114378// is not supported (00000000-0000-0000-0000-000000000000).
114379func (c *ProjectsEnableXpnHostCall) RequestId(requestId string) *ProjectsEnableXpnHostCall {
114380	c.urlParams_.Set("requestId", requestId)
114381	return c
114382}
114383
114384// Fields allows partial responses to be retrieved. See
114385// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114386// for more information.
114387func (c *ProjectsEnableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnHostCall {
114388	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114389	return c
114390}
114391
114392// Context sets the context to be used in this call's Do method. Any
114393// pending HTTP request will be aborted if the provided context is
114394// canceled.
114395func (c *ProjectsEnableXpnHostCall) Context(ctx context.Context) *ProjectsEnableXpnHostCall {
114396	c.ctx_ = ctx
114397	return c
114398}
114399
114400// Header returns an http.Header that can be modified by the caller to
114401// add HTTP headers to the request.
114402func (c *ProjectsEnableXpnHostCall) Header() http.Header {
114403	if c.header_ == nil {
114404		c.header_ = make(http.Header)
114405	}
114406	return c.header_
114407}
114408
114409func (c *ProjectsEnableXpnHostCall) doRequest(alt string) (*http.Response, error) {
114410	reqHeaders := make(http.Header)
114411	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
114412	for k, v := range c.header_ {
114413		reqHeaders[k] = v
114414	}
114415	reqHeaders.Set("User-Agent", c.s.userAgent())
114416	var body io.Reader = nil
114417	c.urlParams_.Set("alt", alt)
114418	c.urlParams_.Set("prettyPrint", "false")
114419	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/enableXpnHost")
114420	urls += "?" + c.urlParams_.Encode()
114421	req, err := http.NewRequest("POST", urls, body)
114422	if err != nil {
114423		return nil, err
114424	}
114425	req.Header = reqHeaders
114426	googleapi.Expand(req.URL, map[string]string{
114427		"project": c.project,
114428	})
114429	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114430}
114431
114432// Do executes the "compute.projects.enableXpnHost" call.
114433// Exactly one of *Operation or error will be non-nil. Any non-2xx
114434// status code is an error. Response headers are in either
114435// *Operation.ServerResponse.Header or (if a response was returned at
114436// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114437// to check whether the returned error was because
114438// http.StatusNotModified was returned.
114439func (c *ProjectsEnableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
114440	gensupport.SetOptions(c.urlParams_, opts...)
114441	res, err := c.doRequest("json")
114442	if res != nil && res.StatusCode == http.StatusNotModified {
114443		if res.Body != nil {
114444			res.Body.Close()
114445		}
114446		return nil, &googleapi.Error{
114447			Code:   res.StatusCode,
114448			Header: res.Header,
114449		}
114450	}
114451	if err != nil {
114452		return nil, err
114453	}
114454	defer googleapi.CloseBody(res)
114455	if err := googleapi.CheckResponse(res); err != nil {
114456		return nil, err
114457	}
114458	ret := &Operation{
114459		ServerResponse: googleapi.ServerResponse{
114460			Header:         res.Header,
114461			HTTPStatusCode: res.StatusCode,
114462		},
114463	}
114464	target := &ret
114465	if err := gensupport.DecodeResponse(target, res); err != nil {
114466		return nil, err
114467	}
114468	return ret, nil
114469	// {
114470	//   "description": "Enable this project as a shared VPC host project.",
114471	//   "httpMethod": "POST",
114472	//   "id": "compute.projects.enableXpnHost",
114473	//   "parameterOrder": [
114474	//     "project"
114475	//   ],
114476	//   "parameters": {
114477	//     "project": {
114478	//       "description": "Project ID for this request.",
114479	//       "location": "path",
114480	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114481	//       "required": true,
114482	//       "type": "string"
114483	//     },
114484	//     "requestId": {
114485	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
114486	//       "location": "query",
114487	//       "type": "string"
114488	//     }
114489	//   },
114490	//   "path": "{project}/enableXpnHost",
114491	//   "response": {
114492	//     "$ref": "Operation"
114493	//   },
114494	//   "scopes": [
114495	//     "https://www.googleapis.com/auth/cloud-platform",
114496	//     "https://www.googleapis.com/auth/compute"
114497	//   ]
114498	// }
114499
114500}
114501
114502// method id "compute.projects.enableXpnResource":
114503
114504type ProjectsEnableXpnResourceCall struct {
114505	s                                *Service
114506	project                          string
114507	projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest
114508	urlParams_                       gensupport.URLParams
114509	ctx_                             context.Context
114510	header_                          http.Header
114511}
114512
114513// EnableXpnResource: Enable service resource (a.k.a service project)
114514// for a host project, so that subnets in the host project can be used
114515// by instances in the service project.
114516func (r *ProjectsService) EnableXpnResource(project string, projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest) *ProjectsEnableXpnResourceCall {
114517	c := &ProjectsEnableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114518	c.project = project
114519	c.projectsenablexpnresourcerequest = projectsenablexpnresourcerequest
114520	return c
114521}
114522
114523// RequestId sets the optional parameter "requestId": An optional
114524// request ID to identify requests. Specify a unique request ID so that
114525// if you must retry your request, the server will know to ignore the
114526// request if it has already been completed.
114527//
114528// For example, consider a situation where you make an initial request
114529// and the request times out. If you make the request again with the
114530// same request ID, the server can check if original operation with the
114531// same request ID was received, and if so, will ignore the second
114532// request. This prevents clients from accidentally creating duplicate
114533// commitments.
114534//
114535// The request ID must be a valid UUID with the exception that zero UUID
114536// is not supported (00000000-0000-0000-0000-000000000000).
114537func (c *ProjectsEnableXpnResourceCall) RequestId(requestId string) *ProjectsEnableXpnResourceCall {
114538	c.urlParams_.Set("requestId", requestId)
114539	return c
114540}
114541
114542// Fields allows partial responses to be retrieved. See
114543// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114544// for more information.
114545func (c *ProjectsEnableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnResourceCall {
114546	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114547	return c
114548}
114549
114550// Context sets the context to be used in this call's Do method. Any
114551// pending HTTP request will be aborted if the provided context is
114552// canceled.
114553func (c *ProjectsEnableXpnResourceCall) Context(ctx context.Context) *ProjectsEnableXpnResourceCall {
114554	c.ctx_ = ctx
114555	return c
114556}
114557
114558// Header returns an http.Header that can be modified by the caller to
114559// add HTTP headers to the request.
114560func (c *ProjectsEnableXpnResourceCall) Header() http.Header {
114561	if c.header_ == nil {
114562		c.header_ = make(http.Header)
114563	}
114564	return c.header_
114565}
114566
114567func (c *ProjectsEnableXpnResourceCall) doRequest(alt string) (*http.Response, error) {
114568	reqHeaders := make(http.Header)
114569	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
114570	for k, v := range c.header_ {
114571		reqHeaders[k] = v
114572	}
114573	reqHeaders.Set("User-Agent", c.s.userAgent())
114574	var body io.Reader = nil
114575	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsenablexpnresourcerequest)
114576	if err != nil {
114577		return nil, err
114578	}
114579	reqHeaders.Set("Content-Type", "application/json")
114580	c.urlParams_.Set("alt", alt)
114581	c.urlParams_.Set("prettyPrint", "false")
114582	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/enableXpnResource")
114583	urls += "?" + c.urlParams_.Encode()
114584	req, err := http.NewRequest("POST", urls, body)
114585	if err != nil {
114586		return nil, err
114587	}
114588	req.Header = reqHeaders
114589	googleapi.Expand(req.URL, map[string]string{
114590		"project": c.project,
114591	})
114592	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114593}
114594
114595// Do executes the "compute.projects.enableXpnResource" call.
114596// Exactly one of *Operation or error will be non-nil. Any non-2xx
114597// status code is an error. Response headers are in either
114598// *Operation.ServerResponse.Header or (if a response was returned at
114599// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114600// to check whether the returned error was because
114601// http.StatusNotModified was returned.
114602func (c *ProjectsEnableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
114603	gensupport.SetOptions(c.urlParams_, opts...)
114604	res, err := c.doRequest("json")
114605	if res != nil && res.StatusCode == http.StatusNotModified {
114606		if res.Body != nil {
114607			res.Body.Close()
114608		}
114609		return nil, &googleapi.Error{
114610			Code:   res.StatusCode,
114611			Header: res.Header,
114612		}
114613	}
114614	if err != nil {
114615		return nil, err
114616	}
114617	defer googleapi.CloseBody(res)
114618	if err := googleapi.CheckResponse(res); err != nil {
114619		return nil, err
114620	}
114621	ret := &Operation{
114622		ServerResponse: googleapi.ServerResponse{
114623			Header:         res.Header,
114624			HTTPStatusCode: res.StatusCode,
114625		},
114626	}
114627	target := &ret
114628	if err := gensupport.DecodeResponse(target, res); err != nil {
114629		return nil, err
114630	}
114631	return ret, nil
114632	// {
114633	//   "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.",
114634	//   "httpMethod": "POST",
114635	//   "id": "compute.projects.enableXpnResource",
114636	//   "parameterOrder": [
114637	//     "project"
114638	//   ],
114639	//   "parameters": {
114640	//     "project": {
114641	//       "description": "Project ID for this request.",
114642	//       "location": "path",
114643	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114644	//       "required": true,
114645	//       "type": "string"
114646	//     },
114647	//     "requestId": {
114648	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
114649	//       "location": "query",
114650	//       "type": "string"
114651	//     }
114652	//   },
114653	//   "path": "{project}/enableXpnResource",
114654	//   "request": {
114655	//     "$ref": "ProjectsEnableXpnResourceRequest"
114656	//   },
114657	//   "response": {
114658	//     "$ref": "Operation"
114659	//   },
114660	//   "scopes": [
114661	//     "https://www.googleapis.com/auth/cloud-platform",
114662	//     "https://www.googleapis.com/auth/compute"
114663	//   ]
114664	// }
114665
114666}
114667
114668// method id "compute.projects.get":
114669
114670type ProjectsGetCall struct {
114671	s            *Service
114672	project      string
114673	urlParams_   gensupport.URLParams
114674	ifNoneMatch_ string
114675	ctx_         context.Context
114676	header_      http.Header
114677}
114678
114679// Get: Returns the specified Project resource.
114680// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/get
114681func (r *ProjectsService) Get(project string) *ProjectsGetCall {
114682	c := &ProjectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114683	c.project = project
114684	return c
114685}
114686
114687// Fields allows partial responses to be retrieved. See
114688// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114689// for more information.
114690func (c *ProjectsGetCall) Fields(s ...googleapi.Field) *ProjectsGetCall {
114691	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114692	return c
114693}
114694
114695// IfNoneMatch sets the optional parameter which makes the operation
114696// fail if the object's ETag matches the given value. This is useful for
114697// getting updates only after the object has changed since the last
114698// request. Use googleapi.IsNotModified to check whether the response
114699// error from Do is the result of In-None-Match.
114700func (c *ProjectsGetCall) IfNoneMatch(entityTag string) *ProjectsGetCall {
114701	c.ifNoneMatch_ = entityTag
114702	return c
114703}
114704
114705// Context sets the context to be used in this call's Do method. Any
114706// pending HTTP request will be aborted if the provided context is
114707// canceled.
114708func (c *ProjectsGetCall) Context(ctx context.Context) *ProjectsGetCall {
114709	c.ctx_ = ctx
114710	return c
114711}
114712
114713// Header returns an http.Header that can be modified by the caller to
114714// add HTTP headers to the request.
114715func (c *ProjectsGetCall) Header() http.Header {
114716	if c.header_ == nil {
114717		c.header_ = make(http.Header)
114718	}
114719	return c.header_
114720}
114721
114722func (c *ProjectsGetCall) doRequest(alt string) (*http.Response, error) {
114723	reqHeaders := make(http.Header)
114724	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
114725	for k, v := range c.header_ {
114726		reqHeaders[k] = v
114727	}
114728	reqHeaders.Set("User-Agent", c.s.userAgent())
114729	if c.ifNoneMatch_ != "" {
114730		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
114731	}
114732	var body io.Reader = nil
114733	c.urlParams_.Set("alt", alt)
114734	c.urlParams_.Set("prettyPrint", "false")
114735	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}")
114736	urls += "?" + c.urlParams_.Encode()
114737	req, err := http.NewRequest("GET", urls, body)
114738	if err != nil {
114739		return nil, err
114740	}
114741	req.Header = reqHeaders
114742	googleapi.Expand(req.URL, map[string]string{
114743		"project": c.project,
114744	})
114745	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114746}
114747
114748// Do executes the "compute.projects.get" call.
114749// Exactly one of *Project or error will be non-nil. Any non-2xx status
114750// code is an error. Response headers are in either
114751// *Project.ServerResponse.Header or (if a response was returned at all)
114752// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
114753// check whether the returned error was because http.StatusNotModified
114754// was returned.
114755func (c *ProjectsGetCall) Do(opts ...googleapi.CallOption) (*Project, error) {
114756	gensupport.SetOptions(c.urlParams_, opts...)
114757	res, err := c.doRequest("json")
114758	if res != nil && res.StatusCode == http.StatusNotModified {
114759		if res.Body != nil {
114760			res.Body.Close()
114761		}
114762		return nil, &googleapi.Error{
114763			Code:   res.StatusCode,
114764			Header: res.Header,
114765		}
114766	}
114767	if err != nil {
114768		return nil, err
114769	}
114770	defer googleapi.CloseBody(res)
114771	if err := googleapi.CheckResponse(res); err != nil {
114772		return nil, err
114773	}
114774	ret := &Project{
114775		ServerResponse: googleapi.ServerResponse{
114776			Header:         res.Header,
114777			HTTPStatusCode: res.StatusCode,
114778		},
114779	}
114780	target := &ret
114781	if err := gensupport.DecodeResponse(target, res); err != nil {
114782		return nil, err
114783	}
114784	return ret, nil
114785	// {
114786	//   "description": "Returns the specified Project resource.",
114787	//   "httpMethod": "GET",
114788	//   "id": "compute.projects.get",
114789	//   "parameterOrder": [
114790	//     "project"
114791	//   ],
114792	//   "parameters": {
114793	//     "project": {
114794	//       "description": "Project ID for this request.",
114795	//       "location": "path",
114796	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114797	//       "required": true,
114798	//       "type": "string"
114799	//     }
114800	//   },
114801	//   "path": "{project}",
114802	//   "response": {
114803	//     "$ref": "Project"
114804	//   },
114805	//   "scopes": [
114806	//     "https://www.googleapis.com/auth/cloud-platform",
114807	//     "https://www.googleapis.com/auth/compute",
114808	//     "https://www.googleapis.com/auth/compute.readonly"
114809	//   ]
114810	// }
114811
114812}
114813
114814// method id "compute.projects.getXpnHost":
114815
114816type ProjectsGetXpnHostCall struct {
114817	s            *Service
114818	project      string
114819	urlParams_   gensupport.URLParams
114820	ifNoneMatch_ string
114821	ctx_         context.Context
114822	header_      http.Header
114823}
114824
114825// GetXpnHost: Gets the shared VPC host project that this project links
114826// to. May be empty if no link exists.
114827func (r *ProjectsService) GetXpnHost(project string) *ProjectsGetXpnHostCall {
114828	c := &ProjectsGetXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114829	c.project = project
114830	return c
114831}
114832
114833// Fields allows partial responses to be retrieved. See
114834// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114835// for more information.
114836func (c *ProjectsGetXpnHostCall) Fields(s ...googleapi.Field) *ProjectsGetXpnHostCall {
114837	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114838	return c
114839}
114840
114841// IfNoneMatch sets the optional parameter which makes the operation
114842// fail if the object's ETag matches the given value. This is useful for
114843// getting updates only after the object has changed since the last
114844// request. Use googleapi.IsNotModified to check whether the response
114845// error from Do is the result of In-None-Match.
114846func (c *ProjectsGetXpnHostCall) IfNoneMatch(entityTag string) *ProjectsGetXpnHostCall {
114847	c.ifNoneMatch_ = entityTag
114848	return c
114849}
114850
114851// Context sets the context to be used in this call's Do method. Any
114852// pending HTTP request will be aborted if the provided context is
114853// canceled.
114854func (c *ProjectsGetXpnHostCall) Context(ctx context.Context) *ProjectsGetXpnHostCall {
114855	c.ctx_ = ctx
114856	return c
114857}
114858
114859// Header returns an http.Header that can be modified by the caller to
114860// add HTTP headers to the request.
114861func (c *ProjectsGetXpnHostCall) Header() http.Header {
114862	if c.header_ == nil {
114863		c.header_ = make(http.Header)
114864	}
114865	return c.header_
114866}
114867
114868func (c *ProjectsGetXpnHostCall) doRequest(alt string) (*http.Response, error) {
114869	reqHeaders := make(http.Header)
114870	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
114871	for k, v := range c.header_ {
114872		reqHeaders[k] = v
114873	}
114874	reqHeaders.Set("User-Agent", c.s.userAgent())
114875	if c.ifNoneMatch_ != "" {
114876		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
114877	}
114878	var body io.Reader = nil
114879	c.urlParams_.Set("alt", alt)
114880	c.urlParams_.Set("prettyPrint", "false")
114881	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/getXpnHost")
114882	urls += "?" + c.urlParams_.Encode()
114883	req, err := http.NewRequest("GET", urls, body)
114884	if err != nil {
114885		return nil, err
114886	}
114887	req.Header = reqHeaders
114888	googleapi.Expand(req.URL, map[string]string{
114889		"project": c.project,
114890	})
114891	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114892}
114893
114894// Do executes the "compute.projects.getXpnHost" call.
114895// Exactly one of *Project or error will be non-nil. Any non-2xx status
114896// code is an error. Response headers are in either
114897// *Project.ServerResponse.Header or (if a response was returned at all)
114898// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
114899// check whether the returned error was because http.StatusNotModified
114900// was returned.
114901func (c *ProjectsGetXpnHostCall) Do(opts ...googleapi.CallOption) (*Project, error) {
114902	gensupport.SetOptions(c.urlParams_, opts...)
114903	res, err := c.doRequest("json")
114904	if res != nil && res.StatusCode == http.StatusNotModified {
114905		if res.Body != nil {
114906			res.Body.Close()
114907		}
114908		return nil, &googleapi.Error{
114909			Code:   res.StatusCode,
114910			Header: res.Header,
114911		}
114912	}
114913	if err != nil {
114914		return nil, err
114915	}
114916	defer googleapi.CloseBody(res)
114917	if err := googleapi.CheckResponse(res); err != nil {
114918		return nil, err
114919	}
114920	ret := &Project{
114921		ServerResponse: googleapi.ServerResponse{
114922			Header:         res.Header,
114923			HTTPStatusCode: res.StatusCode,
114924		},
114925	}
114926	target := &ret
114927	if err := gensupport.DecodeResponse(target, res); err != nil {
114928		return nil, err
114929	}
114930	return ret, nil
114931	// {
114932	//   "description": "Gets the shared VPC host project that this project links to. May be empty if no link exists.",
114933	//   "httpMethod": "GET",
114934	//   "id": "compute.projects.getXpnHost",
114935	//   "parameterOrder": [
114936	//     "project"
114937	//   ],
114938	//   "parameters": {
114939	//     "project": {
114940	//       "description": "Project ID for this request.",
114941	//       "location": "path",
114942	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114943	//       "required": true,
114944	//       "type": "string"
114945	//     }
114946	//   },
114947	//   "path": "{project}/getXpnHost",
114948	//   "response": {
114949	//     "$ref": "Project"
114950	//   },
114951	//   "scopes": [
114952	//     "https://www.googleapis.com/auth/cloud-platform",
114953	//     "https://www.googleapis.com/auth/compute"
114954	//   ]
114955	// }
114956
114957}
114958
114959// method id "compute.projects.getXpnResources":
114960
114961type ProjectsGetXpnResourcesCall struct {
114962	s            *Service
114963	project      string
114964	urlParams_   gensupport.URLParams
114965	ifNoneMatch_ string
114966	ctx_         context.Context
114967	header_      http.Header
114968}
114969
114970// GetXpnResources: Gets service resources (a.k.a service project)
114971// associated with this host project.
114972func (r *ProjectsService) GetXpnResources(project string) *ProjectsGetXpnResourcesCall {
114973	c := &ProjectsGetXpnResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114974	c.project = project
114975	return c
114976}
114977
114978// Filter sets the optional parameter "filter": A filter expression that
114979// filters resources listed in the response. The expression must specify
114980// the field name, a comparison operator, and the value that you want to
114981// use for filtering. The value must be a string, a number, or a
114982// boolean. The comparison operator must be either =, !=, >, or <.
114983//
114984// For example, if you are filtering Compute Engine instances, you can
114985// exclude instances named example-instance by specifying name !=
114986// example-instance.
114987//
114988// You can also filter nested fields. For example, you could specify
114989// scheduling.automaticRestart = false to include instances only if they
114990// are not scheduled for automatic restarts. You can use filtering on
114991// nested fields to filter based on resource labels.
114992//
114993// To filter on multiple expressions, provide each separate expression
114994// within parentheses. For example, (scheduling.automaticRestart = true)
114995// (cpuPlatform = "Intel Skylake"). By default, each expression is an
114996// AND expression. However, you can include AND and OR expressions
114997// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
114998// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
114999// true).
115000func (c *ProjectsGetXpnResourcesCall) Filter(filter string) *ProjectsGetXpnResourcesCall {
115001	c.urlParams_.Set("filter", filter)
115002	return c
115003}
115004
115005// MaxResults sets the optional parameter "maxResults": The maximum
115006// number of results per page that should be returned. If the number of
115007// available results is larger than maxResults, Compute Engine returns a
115008// nextPageToken that can be used to get the next page of results in
115009// subsequent list requests. Acceptable values are 0 to 500, inclusive.
115010// (Default: 500)
115011func (c *ProjectsGetXpnResourcesCall) MaxResults(maxResults int64) *ProjectsGetXpnResourcesCall {
115012	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
115013	return c
115014}
115015
115016// OrderBy sets the optional parameter "order_by": Sorts list results by
115017// a certain order. By default, results are returned in alphanumerical
115018// order based on the resource name.
115019//
115020// You can also sort results in descending order based on the creation
115021// timestamp using orderBy="creationTimestamp desc". This sorts results
115022// based on the creationTimestamp field in reverse chronological order
115023// (newest result first). Use this to sort resources like operations so
115024// that the newest operation is returned first.
115025//
115026// Currently, only sorting by name or creationTimestamp desc is
115027// supported.
115028func (c *ProjectsGetXpnResourcesCall) OrderBy(orderBy string) *ProjectsGetXpnResourcesCall {
115029	c.urlParams_.Set("order_by", orderBy)
115030	return c
115031}
115032
115033// PageToken sets the optional parameter "pageToken": Specifies a page
115034// token to use. Set pageToken to the nextPageToken returned by a
115035// previous list request to get the next page of results.
115036func (c *ProjectsGetXpnResourcesCall) PageToken(pageToken string) *ProjectsGetXpnResourcesCall {
115037	c.urlParams_.Set("pageToken", pageToken)
115038	return c
115039}
115040
115041// Fields allows partial responses to be retrieved. See
115042// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115043// for more information.
115044func (c *ProjectsGetXpnResourcesCall) Fields(s ...googleapi.Field) *ProjectsGetXpnResourcesCall {
115045	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115046	return c
115047}
115048
115049// IfNoneMatch sets the optional parameter which makes the operation
115050// fail if the object's ETag matches the given value. This is useful for
115051// getting updates only after the object has changed since the last
115052// request. Use googleapi.IsNotModified to check whether the response
115053// error from Do is the result of In-None-Match.
115054func (c *ProjectsGetXpnResourcesCall) IfNoneMatch(entityTag string) *ProjectsGetXpnResourcesCall {
115055	c.ifNoneMatch_ = entityTag
115056	return c
115057}
115058
115059// Context sets the context to be used in this call's Do method. Any
115060// pending HTTP request will be aborted if the provided context is
115061// canceled.
115062func (c *ProjectsGetXpnResourcesCall) Context(ctx context.Context) *ProjectsGetXpnResourcesCall {
115063	c.ctx_ = ctx
115064	return c
115065}
115066
115067// Header returns an http.Header that can be modified by the caller to
115068// add HTTP headers to the request.
115069func (c *ProjectsGetXpnResourcesCall) Header() http.Header {
115070	if c.header_ == nil {
115071		c.header_ = make(http.Header)
115072	}
115073	return c.header_
115074}
115075
115076func (c *ProjectsGetXpnResourcesCall) doRequest(alt string) (*http.Response, error) {
115077	reqHeaders := make(http.Header)
115078	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
115079	for k, v := range c.header_ {
115080		reqHeaders[k] = v
115081	}
115082	reqHeaders.Set("User-Agent", c.s.userAgent())
115083	if c.ifNoneMatch_ != "" {
115084		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
115085	}
115086	var body io.Reader = nil
115087	c.urlParams_.Set("alt", alt)
115088	c.urlParams_.Set("prettyPrint", "false")
115089	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/getXpnResources")
115090	urls += "?" + c.urlParams_.Encode()
115091	req, err := http.NewRequest("GET", urls, body)
115092	if err != nil {
115093		return nil, err
115094	}
115095	req.Header = reqHeaders
115096	googleapi.Expand(req.URL, map[string]string{
115097		"project": c.project,
115098	})
115099	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115100}
115101
115102// Do executes the "compute.projects.getXpnResources" call.
115103// Exactly one of *ProjectsGetXpnResources or error will be non-nil. Any
115104// non-2xx status code is an error. Response headers are in either
115105// *ProjectsGetXpnResources.ServerResponse.Header or (if a response was
115106// returned at all) in error.(*googleapi.Error).Header. Use
115107// googleapi.IsNotModified to check whether the returned error was
115108// because http.StatusNotModified was returned.
115109func (c *ProjectsGetXpnResourcesCall) Do(opts ...googleapi.CallOption) (*ProjectsGetXpnResources, error) {
115110	gensupport.SetOptions(c.urlParams_, opts...)
115111	res, err := c.doRequest("json")
115112	if res != nil && res.StatusCode == http.StatusNotModified {
115113		if res.Body != nil {
115114			res.Body.Close()
115115		}
115116		return nil, &googleapi.Error{
115117			Code:   res.StatusCode,
115118			Header: res.Header,
115119		}
115120	}
115121	if err != nil {
115122		return nil, err
115123	}
115124	defer googleapi.CloseBody(res)
115125	if err := googleapi.CheckResponse(res); err != nil {
115126		return nil, err
115127	}
115128	ret := &ProjectsGetXpnResources{
115129		ServerResponse: googleapi.ServerResponse{
115130			Header:         res.Header,
115131			HTTPStatusCode: res.StatusCode,
115132		},
115133	}
115134	target := &ret
115135	if err := gensupport.DecodeResponse(target, res); err != nil {
115136		return nil, err
115137	}
115138	return ret, nil
115139	// {
115140	//   "description": "Gets service resources (a.k.a service project) associated with this host project.",
115141	//   "httpMethod": "GET",
115142	//   "id": "compute.projects.getXpnResources",
115143	//   "parameterOrder": [
115144	//     "project"
115145	//   ],
115146	//   "parameters": {
115147	//     "filter": {
115148	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
115149	//       "location": "query",
115150	//       "type": "string"
115151	//     },
115152	//     "maxResults": {
115153	//       "default": "500",
115154	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
115155	//       "format": "uint32",
115156	//       "location": "query",
115157	//       "minimum": "0",
115158	//       "type": "integer"
115159	//     },
115160	//     "order_by": {
115161	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
115162	//       "location": "query",
115163	//       "type": "string"
115164	//     },
115165	//     "pageToken": {
115166	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
115167	//       "location": "query",
115168	//       "type": "string"
115169	//     },
115170	//     "project": {
115171	//       "description": "Project ID for this request.",
115172	//       "location": "path",
115173	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115174	//       "required": true,
115175	//       "type": "string"
115176	//     }
115177	//   },
115178	//   "path": "{project}/getXpnResources",
115179	//   "response": {
115180	//     "$ref": "ProjectsGetXpnResources"
115181	//   },
115182	//   "scopes": [
115183	//     "https://www.googleapis.com/auth/cloud-platform",
115184	//     "https://www.googleapis.com/auth/compute"
115185	//   ]
115186	// }
115187
115188}
115189
115190// Pages invokes f for each page of results.
115191// A non-nil error returned from f will halt the iteration.
115192// The provided context supersedes any context provided to the Context method.
115193func (c *ProjectsGetXpnResourcesCall) Pages(ctx context.Context, f func(*ProjectsGetXpnResources) error) error {
115194	c.ctx_ = ctx
115195	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
115196	for {
115197		x, err := c.Do()
115198		if err != nil {
115199			return err
115200		}
115201		if err := f(x); err != nil {
115202			return err
115203		}
115204		if x.NextPageToken == "" {
115205			return nil
115206		}
115207		c.PageToken(x.NextPageToken)
115208	}
115209}
115210
115211// method id "compute.projects.listXpnHosts":
115212
115213type ProjectsListXpnHostsCall struct {
115214	s                           *Service
115215	project                     string
115216	projectslistxpnhostsrequest *ProjectsListXpnHostsRequest
115217	urlParams_                  gensupport.URLParams
115218	ctx_                        context.Context
115219	header_                     http.Header
115220}
115221
115222// ListXpnHosts: Lists all shared VPC host projects visible to the user
115223// in an organization.
115224func (r *ProjectsService) ListXpnHosts(project string, projectslistxpnhostsrequest *ProjectsListXpnHostsRequest) *ProjectsListXpnHostsCall {
115225	c := &ProjectsListXpnHostsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115226	c.project = project
115227	c.projectslistxpnhostsrequest = projectslistxpnhostsrequest
115228	return c
115229}
115230
115231// Filter sets the optional parameter "filter": A filter expression that
115232// filters resources listed in the response. The expression must specify
115233// the field name, a comparison operator, and the value that you want to
115234// use for filtering. The value must be a string, a number, or a
115235// boolean. The comparison operator must be either =, !=, >, or <.
115236//
115237// For example, if you are filtering Compute Engine instances, you can
115238// exclude instances named example-instance by specifying name !=
115239// example-instance.
115240//
115241// You can also filter nested fields. For example, you could specify
115242// scheduling.automaticRestart = false to include instances only if they
115243// are not scheduled for automatic restarts. You can use filtering on
115244// nested fields to filter based on resource labels.
115245//
115246// To filter on multiple expressions, provide each separate expression
115247// within parentheses. For example, (scheduling.automaticRestart = true)
115248// (cpuPlatform = "Intel Skylake"). By default, each expression is an
115249// AND expression. However, you can include AND and OR expressions
115250// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
115251// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
115252// true).
115253func (c *ProjectsListXpnHostsCall) Filter(filter string) *ProjectsListXpnHostsCall {
115254	c.urlParams_.Set("filter", filter)
115255	return c
115256}
115257
115258// MaxResults sets the optional parameter "maxResults": The maximum
115259// number of results per page that should be returned. If the number of
115260// available results is larger than maxResults, Compute Engine returns a
115261// nextPageToken that can be used to get the next page of results in
115262// subsequent list requests. Acceptable values are 0 to 500, inclusive.
115263// (Default: 500)
115264func (c *ProjectsListXpnHostsCall) MaxResults(maxResults int64) *ProjectsListXpnHostsCall {
115265	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
115266	return c
115267}
115268
115269// OrderBy sets the optional parameter "order_by": Sorts list results by
115270// a certain order. By default, results are returned in alphanumerical
115271// order based on the resource name.
115272//
115273// You can also sort results in descending order based on the creation
115274// timestamp using orderBy="creationTimestamp desc". This sorts results
115275// based on the creationTimestamp field in reverse chronological order
115276// (newest result first). Use this to sort resources like operations so
115277// that the newest operation is returned first.
115278//
115279// Currently, only sorting by name or creationTimestamp desc is
115280// supported.
115281func (c *ProjectsListXpnHostsCall) OrderBy(orderBy string) *ProjectsListXpnHostsCall {
115282	c.urlParams_.Set("order_by", orderBy)
115283	return c
115284}
115285
115286// PageToken sets the optional parameter "pageToken": Specifies a page
115287// token to use. Set pageToken to the nextPageToken returned by a
115288// previous list request to get the next page of results.
115289func (c *ProjectsListXpnHostsCall) PageToken(pageToken string) *ProjectsListXpnHostsCall {
115290	c.urlParams_.Set("pageToken", pageToken)
115291	return c
115292}
115293
115294// Fields allows partial responses to be retrieved. See
115295// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115296// for more information.
115297func (c *ProjectsListXpnHostsCall) Fields(s ...googleapi.Field) *ProjectsListXpnHostsCall {
115298	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115299	return c
115300}
115301
115302// Context sets the context to be used in this call's Do method. Any
115303// pending HTTP request will be aborted if the provided context is
115304// canceled.
115305func (c *ProjectsListXpnHostsCall) Context(ctx context.Context) *ProjectsListXpnHostsCall {
115306	c.ctx_ = ctx
115307	return c
115308}
115309
115310// Header returns an http.Header that can be modified by the caller to
115311// add HTTP headers to the request.
115312func (c *ProjectsListXpnHostsCall) Header() http.Header {
115313	if c.header_ == nil {
115314		c.header_ = make(http.Header)
115315	}
115316	return c.header_
115317}
115318
115319func (c *ProjectsListXpnHostsCall) doRequest(alt string) (*http.Response, error) {
115320	reqHeaders := make(http.Header)
115321	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
115322	for k, v := range c.header_ {
115323		reqHeaders[k] = v
115324	}
115325	reqHeaders.Set("User-Agent", c.s.userAgent())
115326	var body io.Reader = nil
115327	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectslistxpnhostsrequest)
115328	if err != nil {
115329		return nil, err
115330	}
115331	reqHeaders.Set("Content-Type", "application/json")
115332	c.urlParams_.Set("alt", alt)
115333	c.urlParams_.Set("prettyPrint", "false")
115334	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/listXpnHosts")
115335	urls += "?" + c.urlParams_.Encode()
115336	req, err := http.NewRequest("POST", urls, body)
115337	if err != nil {
115338		return nil, err
115339	}
115340	req.Header = reqHeaders
115341	googleapi.Expand(req.URL, map[string]string{
115342		"project": c.project,
115343	})
115344	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115345}
115346
115347// Do executes the "compute.projects.listXpnHosts" call.
115348// Exactly one of *XpnHostList or error will be non-nil. Any non-2xx
115349// status code is an error. Response headers are in either
115350// *XpnHostList.ServerResponse.Header or (if a response was returned at
115351// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115352// to check whether the returned error was because
115353// http.StatusNotModified was returned.
115354func (c *ProjectsListXpnHostsCall) Do(opts ...googleapi.CallOption) (*XpnHostList, error) {
115355	gensupport.SetOptions(c.urlParams_, opts...)
115356	res, err := c.doRequest("json")
115357	if res != nil && res.StatusCode == http.StatusNotModified {
115358		if res.Body != nil {
115359			res.Body.Close()
115360		}
115361		return nil, &googleapi.Error{
115362			Code:   res.StatusCode,
115363			Header: res.Header,
115364		}
115365	}
115366	if err != nil {
115367		return nil, err
115368	}
115369	defer googleapi.CloseBody(res)
115370	if err := googleapi.CheckResponse(res); err != nil {
115371		return nil, err
115372	}
115373	ret := &XpnHostList{
115374		ServerResponse: googleapi.ServerResponse{
115375			Header:         res.Header,
115376			HTTPStatusCode: res.StatusCode,
115377		},
115378	}
115379	target := &ret
115380	if err := gensupport.DecodeResponse(target, res); err != nil {
115381		return nil, err
115382	}
115383	return ret, nil
115384	// {
115385	//   "description": "Lists all shared VPC host projects visible to the user in an organization.",
115386	//   "httpMethod": "POST",
115387	//   "id": "compute.projects.listXpnHosts",
115388	//   "parameterOrder": [
115389	//     "project"
115390	//   ],
115391	//   "parameters": {
115392	//     "filter": {
115393	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
115394	//       "location": "query",
115395	//       "type": "string"
115396	//     },
115397	//     "maxResults": {
115398	//       "default": "500",
115399	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
115400	//       "format": "uint32",
115401	//       "location": "query",
115402	//       "minimum": "0",
115403	//       "type": "integer"
115404	//     },
115405	//     "order_by": {
115406	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
115407	//       "location": "query",
115408	//       "type": "string"
115409	//     },
115410	//     "pageToken": {
115411	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
115412	//       "location": "query",
115413	//       "type": "string"
115414	//     },
115415	//     "project": {
115416	//       "description": "Project ID for this request.",
115417	//       "location": "path",
115418	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115419	//       "required": true,
115420	//       "type": "string"
115421	//     }
115422	//   },
115423	//   "path": "{project}/listXpnHosts",
115424	//   "request": {
115425	//     "$ref": "ProjectsListXpnHostsRequest"
115426	//   },
115427	//   "response": {
115428	//     "$ref": "XpnHostList"
115429	//   },
115430	//   "scopes": [
115431	//     "https://www.googleapis.com/auth/cloud-platform",
115432	//     "https://www.googleapis.com/auth/compute"
115433	//   ]
115434	// }
115435
115436}
115437
115438// Pages invokes f for each page of results.
115439// A non-nil error returned from f will halt the iteration.
115440// The provided context supersedes any context provided to the Context method.
115441func (c *ProjectsListXpnHostsCall) Pages(ctx context.Context, f func(*XpnHostList) error) error {
115442	c.ctx_ = ctx
115443	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
115444	for {
115445		x, err := c.Do()
115446		if err != nil {
115447			return err
115448		}
115449		if err := f(x); err != nil {
115450			return err
115451		}
115452		if x.NextPageToken == "" {
115453			return nil
115454		}
115455		c.PageToken(x.NextPageToken)
115456	}
115457}
115458
115459// method id "compute.projects.moveDisk":
115460
115461type ProjectsMoveDiskCall struct {
115462	s               *Service
115463	project         string
115464	diskmoverequest *DiskMoveRequest
115465	urlParams_      gensupport.URLParams
115466	ctx_            context.Context
115467	header_         http.Header
115468}
115469
115470// MoveDisk: Moves a persistent disk from one zone to another.
115471func (r *ProjectsService) MoveDisk(project string, diskmoverequest *DiskMoveRequest) *ProjectsMoveDiskCall {
115472	c := &ProjectsMoveDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115473	c.project = project
115474	c.diskmoverequest = diskmoverequest
115475	return c
115476}
115477
115478// RequestId sets the optional parameter "requestId": An optional
115479// request ID to identify requests. Specify a unique request ID so that
115480// if you must retry your request, the server will know to ignore the
115481// request if it has already been completed.
115482//
115483// For example, consider a situation where you make an initial request
115484// and the request times out. If you make the request again with the
115485// same request ID, the server can check if original operation with the
115486// same request ID was received, and if so, will ignore the second
115487// request. This prevents clients from accidentally creating duplicate
115488// commitments.
115489//
115490// The request ID must be a valid UUID with the exception that zero UUID
115491// is not supported (00000000-0000-0000-0000-000000000000).
115492func (c *ProjectsMoveDiskCall) RequestId(requestId string) *ProjectsMoveDiskCall {
115493	c.urlParams_.Set("requestId", requestId)
115494	return c
115495}
115496
115497// Fields allows partial responses to be retrieved. See
115498// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115499// for more information.
115500func (c *ProjectsMoveDiskCall) Fields(s ...googleapi.Field) *ProjectsMoveDiskCall {
115501	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115502	return c
115503}
115504
115505// Context sets the context to be used in this call's Do method. Any
115506// pending HTTP request will be aborted if the provided context is
115507// canceled.
115508func (c *ProjectsMoveDiskCall) Context(ctx context.Context) *ProjectsMoveDiskCall {
115509	c.ctx_ = ctx
115510	return c
115511}
115512
115513// Header returns an http.Header that can be modified by the caller to
115514// add HTTP headers to the request.
115515func (c *ProjectsMoveDiskCall) Header() http.Header {
115516	if c.header_ == nil {
115517		c.header_ = make(http.Header)
115518	}
115519	return c.header_
115520}
115521
115522func (c *ProjectsMoveDiskCall) doRequest(alt string) (*http.Response, error) {
115523	reqHeaders := make(http.Header)
115524	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
115525	for k, v := range c.header_ {
115526		reqHeaders[k] = v
115527	}
115528	reqHeaders.Set("User-Agent", c.s.userAgent())
115529	var body io.Reader = nil
115530	body, err := googleapi.WithoutDataWrapper.JSONReader(c.diskmoverequest)
115531	if err != nil {
115532		return nil, err
115533	}
115534	reqHeaders.Set("Content-Type", "application/json")
115535	c.urlParams_.Set("alt", alt)
115536	c.urlParams_.Set("prettyPrint", "false")
115537	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/moveDisk")
115538	urls += "?" + c.urlParams_.Encode()
115539	req, err := http.NewRequest("POST", urls, body)
115540	if err != nil {
115541		return nil, err
115542	}
115543	req.Header = reqHeaders
115544	googleapi.Expand(req.URL, map[string]string{
115545		"project": c.project,
115546	})
115547	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115548}
115549
115550// Do executes the "compute.projects.moveDisk" call.
115551// Exactly one of *Operation or error will be non-nil. Any non-2xx
115552// status code is an error. Response headers are in either
115553// *Operation.ServerResponse.Header or (if a response was returned at
115554// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115555// to check whether the returned error was because
115556// http.StatusNotModified was returned.
115557func (c *ProjectsMoveDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115558	gensupport.SetOptions(c.urlParams_, opts...)
115559	res, err := c.doRequest("json")
115560	if res != nil && res.StatusCode == http.StatusNotModified {
115561		if res.Body != nil {
115562			res.Body.Close()
115563		}
115564		return nil, &googleapi.Error{
115565			Code:   res.StatusCode,
115566			Header: res.Header,
115567		}
115568	}
115569	if err != nil {
115570		return nil, err
115571	}
115572	defer googleapi.CloseBody(res)
115573	if err := googleapi.CheckResponse(res); err != nil {
115574		return nil, err
115575	}
115576	ret := &Operation{
115577		ServerResponse: googleapi.ServerResponse{
115578			Header:         res.Header,
115579			HTTPStatusCode: res.StatusCode,
115580		},
115581	}
115582	target := &ret
115583	if err := gensupport.DecodeResponse(target, res); err != nil {
115584		return nil, err
115585	}
115586	return ret, nil
115587	// {
115588	//   "description": "Moves a persistent disk from one zone to another.",
115589	//   "httpMethod": "POST",
115590	//   "id": "compute.projects.moveDisk",
115591	//   "parameterOrder": [
115592	//     "project"
115593	//   ],
115594	//   "parameters": {
115595	//     "project": {
115596	//       "description": "Project ID for this request.",
115597	//       "location": "path",
115598	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115599	//       "required": true,
115600	//       "type": "string"
115601	//     },
115602	//     "requestId": {
115603	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
115604	//       "location": "query",
115605	//       "type": "string"
115606	//     }
115607	//   },
115608	//   "path": "{project}/moveDisk",
115609	//   "request": {
115610	//     "$ref": "DiskMoveRequest"
115611	//   },
115612	//   "response": {
115613	//     "$ref": "Operation"
115614	//   },
115615	//   "scopes": [
115616	//     "https://www.googleapis.com/auth/cloud-platform",
115617	//     "https://www.googleapis.com/auth/compute"
115618	//   ]
115619	// }
115620
115621}
115622
115623// method id "compute.projects.moveInstance":
115624
115625type ProjectsMoveInstanceCall struct {
115626	s                   *Service
115627	project             string
115628	instancemoverequest *InstanceMoveRequest
115629	urlParams_          gensupport.URLParams
115630	ctx_                context.Context
115631	header_             http.Header
115632}
115633
115634// MoveInstance: Moves an instance and its attached persistent disks
115635// from one zone to another.
115636func (r *ProjectsService) MoveInstance(project string, instancemoverequest *InstanceMoveRequest) *ProjectsMoveInstanceCall {
115637	c := &ProjectsMoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115638	c.project = project
115639	c.instancemoverequest = instancemoverequest
115640	return c
115641}
115642
115643// RequestId sets the optional parameter "requestId": An optional
115644// request ID to identify requests. Specify a unique request ID so that
115645// if you must retry your request, the server will know to ignore the
115646// request if it has already been completed.
115647//
115648// For example, consider a situation where you make an initial request
115649// and the request times out. If you make the request again with the
115650// same request ID, the server can check if original operation with the
115651// same request ID was received, and if so, will ignore the second
115652// request. This prevents clients from accidentally creating duplicate
115653// commitments.
115654//
115655// The request ID must be a valid UUID with the exception that zero UUID
115656// is not supported (00000000-0000-0000-0000-000000000000).
115657func (c *ProjectsMoveInstanceCall) RequestId(requestId string) *ProjectsMoveInstanceCall {
115658	c.urlParams_.Set("requestId", requestId)
115659	return c
115660}
115661
115662// Fields allows partial responses to be retrieved. See
115663// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115664// for more information.
115665func (c *ProjectsMoveInstanceCall) Fields(s ...googleapi.Field) *ProjectsMoveInstanceCall {
115666	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115667	return c
115668}
115669
115670// Context sets the context to be used in this call's Do method. Any
115671// pending HTTP request will be aborted if the provided context is
115672// canceled.
115673func (c *ProjectsMoveInstanceCall) Context(ctx context.Context) *ProjectsMoveInstanceCall {
115674	c.ctx_ = ctx
115675	return c
115676}
115677
115678// Header returns an http.Header that can be modified by the caller to
115679// add HTTP headers to the request.
115680func (c *ProjectsMoveInstanceCall) Header() http.Header {
115681	if c.header_ == nil {
115682		c.header_ = make(http.Header)
115683	}
115684	return c.header_
115685}
115686
115687func (c *ProjectsMoveInstanceCall) doRequest(alt string) (*http.Response, error) {
115688	reqHeaders := make(http.Header)
115689	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
115690	for k, v := range c.header_ {
115691		reqHeaders[k] = v
115692	}
115693	reqHeaders.Set("User-Agent", c.s.userAgent())
115694	var body io.Reader = nil
115695	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancemoverequest)
115696	if err != nil {
115697		return nil, err
115698	}
115699	reqHeaders.Set("Content-Type", "application/json")
115700	c.urlParams_.Set("alt", alt)
115701	c.urlParams_.Set("prettyPrint", "false")
115702	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/moveInstance")
115703	urls += "?" + c.urlParams_.Encode()
115704	req, err := http.NewRequest("POST", urls, body)
115705	if err != nil {
115706		return nil, err
115707	}
115708	req.Header = reqHeaders
115709	googleapi.Expand(req.URL, map[string]string{
115710		"project": c.project,
115711	})
115712	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115713}
115714
115715// Do executes the "compute.projects.moveInstance" call.
115716// Exactly one of *Operation or error will be non-nil. Any non-2xx
115717// status code is an error. Response headers are in either
115718// *Operation.ServerResponse.Header or (if a response was returned at
115719// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115720// to check whether the returned error was because
115721// http.StatusNotModified was returned.
115722func (c *ProjectsMoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115723	gensupport.SetOptions(c.urlParams_, opts...)
115724	res, err := c.doRequest("json")
115725	if res != nil && res.StatusCode == http.StatusNotModified {
115726		if res.Body != nil {
115727			res.Body.Close()
115728		}
115729		return nil, &googleapi.Error{
115730			Code:   res.StatusCode,
115731			Header: res.Header,
115732		}
115733	}
115734	if err != nil {
115735		return nil, err
115736	}
115737	defer googleapi.CloseBody(res)
115738	if err := googleapi.CheckResponse(res); err != nil {
115739		return nil, err
115740	}
115741	ret := &Operation{
115742		ServerResponse: googleapi.ServerResponse{
115743			Header:         res.Header,
115744			HTTPStatusCode: res.StatusCode,
115745		},
115746	}
115747	target := &ret
115748	if err := gensupport.DecodeResponse(target, res); err != nil {
115749		return nil, err
115750	}
115751	return ret, nil
115752	// {
115753	//   "description": "Moves an instance and its attached persistent disks from one zone to another.",
115754	//   "httpMethod": "POST",
115755	//   "id": "compute.projects.moveInstance",
115756	//   "parameterOrder": [
115757	//     "project"
115758	//   ],
115759	//   "parameters": {
115760	//     "project": {
115761	//       "description": "Project ID for this request.",
115762	//       "location": "path",
115763	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115764	//       "required": true,
115765	//       "type": "string"
115766	//     },
115767	//     "requestId": {
115768	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
115769	//       "location": "query",
115770	//       "type": "string"
115771	//     }
115772	//   },
115773	//   "path": "{project}/moveInstance",
115774	//   "request": {
115775	//     "$ref": "InstanceMoveRequest"
115776	//   },
115777	//   "response": {
115778	//     "$ref": "Operation"
115779	//   },
115780	//   "scopes": [
115781	//     "https://www.googleapis.com/auth/cloud-platform",
115782	//     "https://www.googleapis.com/auth/compute"
115783	//   ]
115784	// }
115785
115786}
115787
115788// method id "compute.projects.setCommonInstanceMetadata":
115789
115790type ProjectsSetCommonInstanceMetadataCall struct {
115791	s          *Service
115792	project    string
115793	metadata   *Metadata
115794	urlParams_ gensupport.URLParams
115795	ctx_       context.Context
115796	header_    http.Header
115797}
115798
115799// SetCommonInstanceMetadata: Sets metadata common to all instances
115800// within the specified project using the data included in the request.
115801// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/setCommonInstanceMetadata
115802func (r *ProjectsService) SetCommonInstanceMetadata(project string, metadata *Metadata) *ProjectsSetCommonInstanceMetadataCall {
115803	c := &ProjectsSetCommonInstanceMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115804	c.project = project
115805	c.metadata = metadata
115806	return c
115807}
115808
115809// RequestId sets the optional parameter "requestId": An optional
115810// request ID to identify requests. Specify a unique request ID so that
115811// if you must retry your request, the server will know to ignore the
115812// request if it has already been completed.
115813//
115814// For example, consider a situation where you make an initial request
115815// and the request times out. If you make the request again with the
115816// same request ID, the server can check if original operation with the
115817// same request ID was received, and if so, will ignore the second
115818// request. This prevents clients from accidentally creating duplicate
115819// commitments.
115820//
115821// The request ID must be a valid UUID with the exception that zero UUID
115822// is not supported (00000000-0000-0000-0000-000000000000).
115823func (c *ProjectsSetCommonInstanceMetadataCall) RequestId(requestId string) *ProjectsSetCommonInstanceMetadataCall {
115824	c.urlParams_.Set("requestId", requestId)
115825	return c
115826}
115827
115828// Fields allows partial responses to be retrieved. See
115829// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115830// for more information.
115831func (c *ProjectsSetCommonInstanceMetadataCall) Fields(s ...googleapi.Field) *ProjectsSetCommonInstanceMetadataCall {
115832	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115833	return c
115834}
115835
115836// Context sets the context to be used in this call's Do method. Any
115837// pending HTTP request will be aborted if the provided context is
115838// canceled.
115839func (c *ProjectsSetCommonInstanceMetadataCall) Context(ctx context.Context) *ProjectsSetCommonInstanceMetadataCall {
115840	c.ctx_ = ctx
115841	return c
115842}
115843
115844// Header returns an http.Header that can be modified by the caller to
115845// add HTTP headers to the request.
115846func (c *ProjectsSetCommonInstanceMetadataCall) Header() http.Header {
115847	if c.header_ == nil {
115848		c.header_ = make(http.Header)
115849	}
115850	return c.header_
115851}
115852
115853func (c *ProjectsSetCommonInstanceMetadataCall) doRequest(alt string) (*http.Response, error) {
115854	reqHeaders := make(http.Header)
115855	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
115856	for k, v := range c.header_ {
115857		reqHeaders[k] = v
115858	}
115859	reqHeaders.Set("User-Agent", c.s.userAgent())
115860	var body io.Reader = nil
115861	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata)
115862	if err != nil {
115863		return nil, err
115864	}
115865	reqHeaders.Set("Content-Type", "application/json")
115866	c.urlParams_.Set("alt", alt)
115867	c.urlParams_.Set("prettyPrint", "false")
115868	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/setCommonInstanceMetadata")
115869	urls += "?" + c.urlParams_.Encode()
115870	req, err := http.NewRequest("POST", urls, body)
115871	if err != nil {
115872		return nil, err
115873	}
115874	req.Header = reqHeaders
115875	googleapi.Expand(req.URL, map[string]string{
115876		"project": c.project,
115877	})
115878	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115879}
115880
115881// Do executes the "compute.projects.setCommonInstanceMetadata" call.
115882// Exactly one of *Operation or error will be non-nil. Any non-2xx
115883// status code is an error. Response headers are in either
115884// *Operation.ServerResponse.Header or (if a response was returned at
115885// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115886// to check whether the returned error was because
115887// http.StatusNotModified was returned.
115888func (c *ProjectsSetCommonInstanceMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115889	gensupport.SetOptions(c.urlParams_, opts...)
115890	res, err := c.doRequest("json")
115891	if res != nil && res.StatusCode == http.StatusNotModified {
115892		if res.Body != nil {
115893			res.Body.Close()
115894		}
115895		return nil, &googleapi.Error{
115896			Code:   res.StatusCode,
115897			Header: res.Header,
115898		}
115899	}
115900	if err != nil {
115901		return nil, err
115902	}
115903	defer googleapi.CloseBody(res)
115904	if err := googleapi.CheckResponse(res); err != nil {
115905		return nil, err
115906	}
115907	ret := &Operation{
115908		ServerResponse: googleapi.ServerResponse{
115909			Header:         res.Header,
115910			HTTPStatusCode: res.StatusCode,
115911		},
115912	}
115913	target := &ret
115914	if err := gensupport.DecodeResponse(target, res); err != nil {
115915		return nil, err
115916	}
115917	return ret, nil
115918	// {
115919	//   "description": "Sets metadata common to all instances within the specified project using the data included in the request.",
115920	//   "httpMethod": "POST",
115921	//   "id": "compute.projects.setCommonInstanceMetadata",
115922	//   "parameterOrder": [
115923	//     "project"
115924	//   ],
115925	//   "parameters": {
115926	//     "project": {
115927	//       "description": "Project ID for this request.",
115928	//       "location": "path",
115929	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115930	//       "required": true,
115931	//       "type": "string"
115932	//     },
115933	//     "requestId": {
115934	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
115935	//       "location": "query",
115936	//       "type": "string"
115937	//     }
115938	//   },
115939	//   "path": "{project}/setCommonInstanceMetadata",
115940	//   "request": {
115941	//     "$ref": "Metadata"
115942	//   },
115943	//   "response": {
115944	//     "$ref": "Operation"
115945	//   },
115946	//   "scopes": [
115947	//     "https://www.googleapis.com/auth/cloud-platform",
115948	//     "https://www.googleapis.com/auth/compute"
115949	//   ]
115950	// }
115951
115952}
115953
115954// method id "compute.projects.setDefaultNetworkTier":
115955
115956type ProjectsSetDefaultNetworkTierCall struct {
115957	s                                    *Service
115958	project                              string
115959	projectssetdefaultnetworktierrequest *ProjectsSetDefaultNetworkTierRequest
115960	urlParams_                           gensupport.URLParams
115961	ctx_                                 context.Context
115962	header_                              http.Header
115963}
115964
115965// SetDefaultNetworkTier: Sets the default network tier of the project.
115966// The default network tier is used when an
115967// address/forwardingRule/instance is created without specifying the
115968// network tier field.
115969func (r *ProjectsService) SetDefaultNetworkTier(project string, projectssetdefaultnetworktierrequest *ProjectsSetDefaultNetworkTierRequest) *ProjectsSetDefaultNetworkTierCall {
115970	c := &ProjectsSetDefaultNetworkTierCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115971	c.project = project
115972	c.projectssetdefaultnetworktierrequest = projectssetdefaultnetworktierrequest
115973	return c
115974}
115975
115976// RequestId sets the optional parameter "requestId": An optional
115977// request ID to identify requests. Specify a unique request ID so that
115978// if you must retry your request, the server will know to ignore the
115979// request if it has already been completed.
115980//
115981// For example, consider a situation where you make an initial request
115982// and the request times out. If you make the request again with the
115983// same request ID, the server can check if original operation with the
115984// same request ID was received, and if so, will ignore the second
115985// request. This prevents clients from accidentally creating duplicate
115986// commitments.
115987//
115988// The request ID must be a valid UUID with the exception that zero UUID
115989// is not supported (00000000-0000-0000-0000-000000000000).
115990func (c *ProjectsSetDefaultNetworkTierCall) RequestId(requestId string) *ProjectsSetDefaultNetworkTierCall {
115991	c.urlParams_.Set("requestId", requestId)
115992	return c
115993}
115994
115995// Fields allows partial responses to be retrieved. See
115996// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115997// for more information.
115998func (c *ProjectsSetDefaultNetworkTierCall) Fields(s ...googleapi.Field) *ProjectsSetDefaultNetworkTierCall {
115999	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116000	return c
116001}
116002
116003// Context sets the context to be used in this call's Do method. Any
116004// pending HTTP request will be aborted if the provided context is
116005// canceled.
116006func (c *ProjectsSetDefaultNetworkTierCall) Context(ctx context.Context) *ProjectsSetDefaultNetworkTierCall {
116007	c.ctx_ = ctx
116008	return c
116009}
116010
116011// Header returns an http.Header that can be modified by the caller to
116012// add HTTP headers to the request.
116013func (c *ProjectsSetDefaultNetworkTierCall) Header() http.Header {
116014	if c.header_ == nil {
116015		c.header_ = make(http.Header)
116016	}
116017	return c.header_
116018}
116019
116020func (c *ProjectsSetDefaultNetworkTierCall) doRequest(alt string) (*http.Response, error) {
116021	reqHeaders := make(http.Header)
116022	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
116023	for k, v := range c.header_ {
116024		reqHeaders[k] = v
116025	}
116026	reqHeaders.Set("User-Agent", c.s.userAgent())
116027	var body io.Reader = nil
116028	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectssetdefaultnetworktierrequest)
116029	if err != nil {
116030		return nil, err
116031	}
116032	reqHeaders.Set("Content-Type", "application/json")
116033	c.urlParams_.Set("alt", alt)
116034	c.urlParams_.Set("prettyPrint", "false")
116035	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/setDefaultNetworkTier")
116036	urls += "?" + c.urlParams_.Encode()
116037	req, err := http.NewRequest("POST", urls, body)
116038	if err != nil {
116039		return nil, err
116040	}
116041	req.Header = reqHeaders
116042	googleapi.Expand(req.URL, map[string]string{
116043		"project": c.project,
116044	})
116045	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116046}
116047
116048// Do executes the "compute.projects.setDefaultNetworkTier" call.
116049// Exactly one of *Operation or error will be non-nil. Any non-2xx
116050// status code is an error. Response headers are in either
116051// *Operation.ServerResponse.Header or (if a response was returned at
116052// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116053// to check whether the returned error was because
116054// http.StatusNotModified was returned.
116055func (c *ProjectsSetDefaultNetworkTierCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116056	gensupport.SetOptions(c.urlParams_, opts...)
116057	res, err := c.doRequest("json")
116058	if res != nil && res.StatusCode == http.StatusNotModified {
116059		if res.Body != nil {
116060			res.Body.Close()
116061		}
116062		return nil, &googleapi.Error{
116063			Code:   res.StatusCode,
116064			Header: res.Header,
116065		}
116066	}
116067	if err != nil {
116068		return nil, err
116069	}
116070	defer googleapi.CloseBody(res)
116071	if err := googleapi.CheckResponse(res); err != nil {
116072		return nil, err
116073	}
116074	ret := &Operation{
116075		ServerResponse: googleapi.ServerResponse{
116076			Header:         res.Header,
116077			HTTPStatusCode: res.StatusCode,
116078		},
116079	}
116080	target := &ret
116081	if err := gensupport.DecodeResponse(target, res); err != nil {
116082		return nil, err
116083	}
116084	return ret, nil
116085	// {
116086	//   "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.",
116087	//   "httpMethod": "POST",
116088	//   "id": "compute.projects.setDefaultNetworkTier",
116089	//   "parameterOrder": [
116090	//     "project"
116091	//   ],
116092	//   "parameters": {
116093	//     "project": {
116094	//       "description": "Project ID for this request.",
116095	//       "location": "path",
116096	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116097	//       "required": true,
116098	//       "type": "string"
116099	//     },
116100	//     "requestId": {
116101	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
116102	//       "location": "query",
116103	//       "type": "string"
116104	//     }
116105	//   },
116106	//   "path": "{project}/setDefaultNetworkTier",
116107	//   "request": {
116108	//     "$ref": "ProjectsSetDefaultNetworkTierRequest"
116109	//   },
116110	//   "response": {
116111	//     "$ref": "Operation"
116112	//   },
116113	//   "scopes": [
116114	//     "https://www.googleapis.com/auth/cloud-platform",
116115	//     "https://www.googleapis.com/auth/compute"
116116	//   ]
116117	// }
116118
116119}
116120
116121// method id "compute.projects.setDefaultServiceAccount":
116122
116123type ProjectsSetDefaultServiceAccountCall struct {
116124	s                                       *Service
116125	project                                 string
116126	projectssetdefaultserviceaccountrequest *ProjectsSetDefaultServiceAccountRequest
116127	urlParams_                              gensupport.URLParams
116128	ctx_                                    context.Context
116129	header_                                 http.Header
116130}
116131
116132// SetDefaultServiceAccount: Sets the default service account of the
116133// project. The default service account is used when a VM instance is
116134// created with the service account email address set to "default".
116135func (r *ProjectsService) SetDefaultServiceAccount(project string, projectssetdefaultserviceaccountrequest *ProjectsSetDefaultServiceAccountRequest) *ProjectsSetDefaultServiceAccountCall {
116136	c := &ProjectsSetDefaultServiceAccountCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116137	c.project = project
116138	c.projectssetdefaultserviceaccountrequest = projectssetdefaultserviceaccountrequest
116139	return c
116140}
116141
116142// RequestId sets the optional parameter "requestId": An optional
116143// request ID to identify requests. Specify a unique request ID so that
116144// if you must retry your request, the server will know to ignore the
116145// request if it has already been completed.
116146//
116147// For example, consider a situation where you make an initial request
116148// and the request times out. If you make the request again with the
116149// same request ID, the server can check if original operation with the
116150// same request ID was received, and if so, will ignore the second
116151// request. This prevents clients from accidentally creating duplicate
116152// commitments.
116153//
116154// The request ID must be a valid UUID with the exception that zero UUID
116155// is not supported (00000000-0000-0000-0000-000000000000).
116156func (c *ProjectsSetDefaultServiceAccountCall) RequestId(requestId string) *ProjectsSetDefaultServiceAccountCall {
116157	c.urlParams_.Set("requestId", requestId)
116158	return c
116159}
116160
116161// Fields allows partial responses to be retrieved. See
116162// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116163// for more information.
116164func (c *ProjectsSetDefaultServiceAccountCall) Fields(s ...googleapi.Field) *ProjectsSetDefaultServiceAccountCall {
116165	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116166	return c
116167}
116168
116169// Context sets the context to be used in this call's Do method. Any
116170// pending HTTP request will be aborted if the provided context is
116171// canceled.
116172func (c *ProjectsSetDefaultServiceAccountCall) Context(ctx context.Context) *ProjectsSetDefaultServiceAccountCall {
116173	c.ctx_ = ctx
116174	return c
116175}
116176
116177// Header returns an http.Header that can be modified by the caller to
116178// add HTTP headers to the request.
116179func (c *ProjectsSetDefaultServiceAccountCall) Header() http.Header {
116180	if c.header_ == nil {
116181		c.header_ = make(http.Header)
116182	}
116183	return c.header_
116184}
116185
116186func (c *ProjectsSetDefaultServiceAccountCall) doRequest(alt string) (*http.Response, error) {
116187	reqHeaders := make(http.Header)
116188	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
116189	for k, v := range c.header_ {
116190		reqHeaders[k] = v
116191	}
116192	reqHeaders.Set("User-Agent", c.s.userAgent())
116193	var body io.Reader = nil
116194	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectssetdefaultserviceaccountrequest)
116195	if err != nil {
116196		return nil, err
116197	}
116198	reqHeaders.Set("Content-Type", "application/json")
116199	c.urlParams_.Set("alt", alt)
116200	c.urlParams_.Set("prettyPrint", "false")
116201	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/setDefaultServiceAccount")
116202	urls += "?" + c.urlParams_.Encode()
116203	req, err := http.NewRequest("POST", urls, body)
116204	if err != nil {
116205		return nil, err
116206	}
116207	req.Header = reqHeaders
116208	googleapi.Expand(req.URL, map[string]string{
116209		"project": c.project,
116210	})
116211	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116212}
116213
116214// Do executes the "compute.projects.setDefaultServiceAccount" call.
116215// Exactly one of *Operation or error will be non-nil. Any non-2xx
116216// status code is an error. Response headers are in either
116217// *Operation.ServerResponse.Header or (if a response was returned at
116218// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116219// to check whether the returned error was because
116220// http.StatusNotModified was returned.
116221func (c *ProjectsSetDefaultServiceAccountCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116222	gensupport.SetOptions(c.urlParams_, opts...)
116223	res, err := c.doRequest("json")
116224	if res != nil && res.StatusCode == http.StatusNotModified {
116225		if res.Body != nil {
116226			res.Body.Close()
116227		}
116228		return nil, &googleapi.Error{
116229			Code:   res.StatusCode,
116230			Header: res.Header,
116231		}
116232	}
116233	if err != nil {
116234		return nil, err
116235	}
116236	defer googleapi.CloseBody(res)
116237	if err := googleapi.CheckResponse(res); err != nil {
116238		return nil, err
116239	}
116240	ret := &Operation{
116241		ServerResponse: googleapi.ServerResponse{
116242			Header:         res.Header,
116243			HTTPStatusCode: res.StatusCode,
116244		},
116245	}
116246	target := &ret
116247	if err := gensupport.DecodeResponse(target, res); err != nil {
116248		return nil, err
116249	}
116250	return ret, nil
116251	// {
116252	//   "description": "Sets the default service account of the project. The default service account is used when a VM instance is created with the service account email address set to \"default\".",
116253	//   "httpMethod": "POST",
116254	//   "id": "compute.projects.setDefaultServiceAccount",
116255	//   "parameterOrder": [
116256	//     "project"
116257	//   ],
116258	//   "parameters": {
116259	//     "project": {
116260	//       "description": "Project ID for this request.",
116261	//       "location": "path",
116262	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116263	//       "required": true,
116264	//       "type": "string"
116265	//     },
116266	//     "requestId": {
116267	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
116268	//       "location": "query",
116269	//       "type": "string"
116270	//     }
116271	//   },
116272	//   "path": "{project}/setDefaultServiceAccount",
116273	//   "request": {
116274	//     "$ref": "ProjectsSetDefaultServiceAccountRequest"
116275	//   },
116276	//   "response": {
116277	//     "$ref": "Operation"
116278	//   },
116279	//   "scopes": [
116280	//     "https://www.googleapis.com/auth/cloud-platform",
116281	//     "https://www.googleapis.com/auth/compute"
116282	//   ]
116283	// }
116284
116285}
116286
116287// method id "compute.projects.setUsageExportBucket":
116288
116289type ProjectsSetUsageExportBucketCall struct {
116290	s                   *Service
116291	project             string
116292	usageexportlocation *UsageExportLocation
116293	urlParams_          gensupport.URLParams
116294	ctx_                context.Context
116295	header_             http.Header
116296}
116297
116298// SetUsageExportBucket: Enables the usage export feature and sets the
116299// usage export bucket where reports are stored. If you provide an empty
116300// request body using this method, the usage export feature will be
116301// disabled.
116302// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/setUsageExportBucket
116303func (r *ProjectsService) SetUsageExportBucket(project string, usageexportlocation *UsageExportLocation) *ProjectsSetUsageExportBucketCall {
116304	c := &ProjectsSetUsageExportBucketCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116305	c.project = project
116306	c.usageexportlocation = usageexportlocation
116307	return c
116308}
116309
116310// RequestId sets the optional parameter "requestId": An optional
116311// request ID to identify requests. Specify a unique request ID so that
116312// if you must retry your request, the server will know to ignore the
116313// request if it has already been completed.
116314//
116315// For example, consider a situation where you make an initial request
116316// and the request times out. If you make the request again with the
116317// same request ID, the server can check if original operation with the
116318// same request ID was received, and if so, will ignore the second
116319// request. This prevents clients from accidentally creating duplicate
116320// commitments.
116321//
116322// The request ID must be a valid UUID with the exception that zero UUID
116323// is not supported (00000000-0000-0000-0000-000000000000).
116324func (c *ProjectsSetUsageExportBucketCall) RequestId(requestId string) *ProjectsSetUsageExportBucketCall {
116325	c.urlParams_.Set("requestId", requestId)
116326	return c
116327}
116328
116329// Fields allows partial responses to be retrieved. See
116330// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116331// for more information.
116332func (c *ProjectsSetUsageExportBucketCall) Fields(s ...googleapi.Field) *ProjectsSetUsageExportBucketCall {
116333	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116334	return c
116335}
116336
116337// Context sets the context to be used in this call's Do method. Any
116338// pending HTTP request will be aborted if the provided context is
116339// canceled.
116340func (c *ProjectsSetUsageExportBucketCall) Context(ctx context.Context) *ProjectsSetUsageExportBucketCall {
116341	c.ctx_ = ctx
116342	return c
116343}
116344
116345// Header returns an http.Header that can be modified by the caller to
116346// add HTTP headers to the request.
116347func (c *ProjectsSetUsageExportBucketCall) Header() http.Header {
116348	if c.header_ == nil {
116349		c.header_ = make(http.Header)
116350	}
116351	return c.header_
116352}
116353
116354func (c *ProjectsSetUsageExportBucketCall) doRequest(alt string) (*http.Response, error) {
116355	reqHeaders := make(http.Header)
116356	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
116357	for k, v := range c.header_ {
116358		reqHeaders[k] = v
116359	}
116360	reqHeaders.Set("User-Agent", c.s.userAgent())
116361	var body io.Reader = nil
116362	body, err := googleapi.WithoutDataWrapper.JSONReader(c.usageexportlocation)
116363	if err != nil {
116364		return nil, err
116365	}
116366	reqHeaders.Set("Content-Type", "application/json")
116367	c.urlParams_.Set("alt", alt)
116368	c.urlParams_.Set("prettyPrint", "false")
116369	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/setUsageExportBucket")
116370	urls += "?" + c.urlParams_.Encode()
116371	req, err := http.NewRequest("POST", urls, body)
116372	if err != nil {
116373		return nil, err
116374	}
116375	req.Header = reqHeaders
116376	googleapi.Expand(req.URL, map[string]string{
116377		"project": c.project,
116378	})
116379	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116380}
116381
116382// Do executes the "compute.projects.setUsageExportBucket" call.
116383// Exactly one of *Operation or error will be non-nil. Any non-2xx
116384// status code is an error. Response headers are in either
116385// *Operation.ServerResponse.Header or (if a response was returned at
116386// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116387// to check whether the returned error was because
116388// http.StatusNotModified was returned.
116389func (c *ProjectsSetUsageExportBucketCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116390	gensupport.SetOptions(c.urlParams_, opts...)
116391	res, err := c.doRequest("json")
116392	if res != nil && res.StatusCode == http.StatusNotModified {
116393		if res.Body != nil {
116394			res.Body.Close()
116395		}
116396		return nil, &googleapi.Error{
116397			Code:   res.StatusCode,
116398			Header: res.Header,
116399		}
116400	}
116401	if err != nil {
116402		return nil, err
116403	}
116404	defer googleapi.CloseBody(res)
116405	if err := googleapi.CheckResponse(res); err != nil {
116406		return nil, err
116407	}
116408	ret := &Operation{
116409		ServerResponse: googleapi.ServerResponse{
116410			Header:         res.Header,
116411			HTTPStatusCode: res.StatusCode,
116412		},
116413	}
116414	target := &ret
116415	if err := gensupport.DecodeResponse(target, res); err != nil {
116416		return nil, err
116417	}
116418	return ret, nil
116419	// {
116420	//   "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.",
116421	//   "httpMethod": "POST",
116422	//   "id": "compute.projects.setUsageExportBucket",
116423	//   "parameterOrder": [
116424	//     "project"
116425	//   ],
116426	//   "parameters": {
116427	//     "project": {
116428	//       "description": "Project ID for this request.",
116429	//       "location": "path",
116430	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116431	//       "required": true,
116432	//       "type": "string"
116433	//     },
116434	//     "requestId": {
116435	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
116436	//       "location": "query",
116437	//       "type": "string"
116438	//     }
116439	//   },
116440	//   "path": "{project}/setUsageExportBucket",
116441	//   "request": {
116442	//     "$ref": "UsageExportLocation"
116443	//   },
116444	//   "response": {
116445	//     "$ref": "Operation"
116446	//   },
116447	//   "scopes": [
116448	//     "https://www.googleapis.com/auth/cloud-platform",
116449	//     "https://www.googleapis.com/auth/compute",
116450	//     "https://www.googleapis.com/auth/devstorage.full_control",
116451	//     "https://www.googleapis.com/auth/devstorage.read_only",
116452	//     "https://www.googleapis.com/auth/devstorage.read_write"
116453	//   ]
116454	// }
116455
116456}
116457
116458// method id "compute.publicAdvertisedPrefixes.delete":
116459
116460type PublicAdvertisedPrefixesDeleteCall struct {
116461	s                      *Service
116462	project                string
116463	publicAdvertisedPrefix string
116464	urlParams_             gensupport.URLParams
116465	ctx_                   context.Context
116466	header_                http.Header
116467}
116468
116469// Delete: Deletes the specified PublicAdvertisedPrefix
116470func (r *PublicAdvertisedPrefixesService) Delete(project string, publicAdvertisedPrefix string) *PublicAdvertisedPrefixesDeleteCall {
116471	c := &PublicAdvertisedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116472	c.project = project
116473	c.publicAdvertisedPrefix = publicAdvertisedPrefix
116474	return c
116475}
116476
116477// RequestId sets the optional parameter "requestId": An optional
116478// request ID to identify requests. Specify a unique request ID so that
116479// if you must retry your request, the server will know to ignore the
116480// request if it has already been completed.
116481//
116482// For example, consider a situation where you make an initial request
116483// and the request times out. If you make the request again with the
116484// same request ID, the server can check if original operation with the
116485// same request ID was received, and if so, will ignore the second
116486// request. This prevents clients from accidentally creating duplicate
116487// commitments.
116488//
116489// The request ID must be a valid UUID with the exception that zero UUID
116490// is not supported (00000000-0000-0000-0000-000000000000).
116491func (c *PublicAdvertisedPrefixesDeleteCall) RequestId(requestId string) *PublicAdvertisedPrefixesDeleteCall {
116492	c.urlParams_.Set("requestId", requestId)
116493	return c
116494}
116495
116496// Fields allows partial responses to be retrieved. See
116497// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116498// for more information.
116499func (c *PublicAdvertisedPrefixesDeleteCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesDeleteCall {
116500	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116501	return c
116502}
116503
116504// Context sets the context to be used in this call's Do method. Any
116505// pending HTTP request will be aborted if the provided context is
116506// canceled.
116507func (c *PublicAdvertisedPrefixesDeleteCall) Context(ctx context.Context) *PublicAdvertisedPrefixesDeleteCall {
116508	c.ctx_ = ctx
116509	return c
116510}
116511
116512// Header returns an http.Header that can be modified by the caller to
116513// add HTTP headers to the request.
116514func (c *PublicAdvertisedPrefixesDeleteCall) Header() http.Header {
116515	if c.header_ == nil {
116516		c.header_ = make(http.Header)
116517	}
116518	return c.header_
116519}
116520
116521func (c *PublicAdvertisedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) {
116522	reqHeaders := make(http.Header)
116523	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
116524	for k, v := range c.header_ {
116525		reqHeaders[k] = v
116526	}
116527	reqHeaders.Set("User-Agent", c.s.userAgent())
116528	var body io.Reader = nil
116529	c.urlParams_.Set("alt", alt)
116530	c.urlParams_.Set("prettyPrint", "false")
116531	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}")
116532	urls += "?" + c.urlParams_.Encode()
116533	req, err := http.NewRequest("DELETE", urls, body)
116534	if err != nil {
116535		return nil, err
116536	}
116537	req.Header = reqHeaders
116538	googleapi.Expand(req.URL, map[string]string{
116539		"project":                c.project,
116540		"publicAdvertisedPrefix": c.publicAdvertisedPrefix,
116541	})
116542	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116543}
116544
116545// Do executes the "compute.publicAdvertisedPrefixes.delete" call.
116546// Exactly one of *Operation or error will be non-nil. Any non-2xx
116547// status code is an error. Response headers are in either
116548// *Operation.ServerResponse.Header or (if a response was returned at
116549// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116550// to check whether the returned error was because
116551// http.StatusNotModified was returned.
116552func (c *PublicAdvertisedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116553	gensupport.SetOptions(c.urlParams_, opts...)
116554	res, err := c.doRequest("json")
116555	if res != nil && res.StatusCode == http.StatusNotModified {
116556		if res.Body != nil {
116557			res.Body.Close()
116558		}
116559		return nil, &googleapi.Error{
116560			Code:   res.StatusCode,
116561			Header: res.Header,
116562		}
116563	}
116564	if err != nil {
116565		return nil, err
116566	}
116567	defer googleapi.CloseBody(res)
116568	if err := googleapi.CheckResponse(res); err != nil {
116569		return nil, err
116570	}
116571	ret := &Operation{
116572		ServerResponse: googleapi.ServerResponse{
116573			Header:         res.Header,
116574			HTTPStatusCode: res.StatusCode,
116575		},
116576	}
116577	target := &ret
116578	if err := gensupport.DecodeResponse(target, res); err != nil {
116579		return nil, err
116580	}
116581	return ret, nil
116582	// {
116583	//   "description": "Deletes the specified PublicAdvertisedPrefix",
116584	//   "httpMethod": "DELETE",
116585	//   "id": "compute.publicAdvertisedPrefixes.delete",
116586	//   "parameterOrder": [
116587	//     "project",
116588	//     "publicAdvertisedPrefix"
116589	//   ],
116590	//   "parameters": {
116591	//     "project": {
116592	//       "description": "Project ID for this request.",
116593	//       "location": "path",
116594	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116595	//       "required": true,
116596	//       "type": "string"
116597	//     },
116598	//     "publicAdvertisedPrefix": {
116599	//       "description": "Name of the PublicAdvertisedPrefix resource to delete.",
116600	//       "location": "path",
116601	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
116602	//       "required": true,
116603	//       "type": "string"
116604	//     },
116605	//     "requestId": {
116606	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
116607	//       "location": "query",
116608	//       "type": "string"
116609	//     }
116610	//   },
116611	//   "path": "{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
116612	//   "response": {
116613	//     "$ref": "Operation"
116614	//   },
116615	//   "scopes": [
116616	//     "https://www.googleapis.com/auth/cloud-platform",
116617	//     "https://www.googleapis.com/auth/compute"
116618	//   ]
116619	// }
116620
116621}
116622
116623// method id "compute.publicAdvertisedPrefixes.get":
116624
116625type PublicAdvertisedPrefixesGetCall struct {
116626	s                      *Service
116627	project                string
116628	publicAdvertisedPrefix string
116629	urlParams_             gensupport.URLParams
116630	ifNoneMatch_           string
116631	ctx_                   context.Context
116632	header_                http.Header
116633}
116634
116635// Get: Returns the specified PublicAdvertisedPrefix resource.
116636func (r *PublicAdvertisedPrefixesService) Get(project string, publicAdvertisedPrefix string) *PublicAdvertisedPrefixesGetCall {
116637	c := &PublicAdvertisedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116638	c.project = project
116639	c.publicAdvertisedPrefix = publicAdvertisedPrefix
116640	return c
116641}
116642
116643// Fields allows partial responses to be retrieved. See
116644// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116645// for more information.
116646func (c *PublicAdvertisedPrefixesGetCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesGetCall {
116647	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116648	return c
116649}
116650
116651// IfNoneMatch sets the optional parameter which makes the operation
116652// fail if the object's ETag matches the given value. This is useful for
116653// getting updates only after the object has changed since the last
116654// request. Use googleapi.IsNotModified to check whether the response
116655// error from Do is the result of In-None-Match.
116656func (c *PublicAdvertisedPrefixesGetCall) IfNoneMatch(entityTag string) *PublicAdvertisedPrefixesGetCall {
116657	c.ifNoneMatch_ = entityTag
116658	return c
116659}
116660
116661// Context sets the context to be used in this call's Do method. Any
116662// pending HTTP request will be aborted if the provided context is
116663// canceled.
116664func (c *PublicAdvertisedPrefixesGetCall) Context(ctx context.Context) *PublicAdvertisedPrefixesGetCall {
116665	c.ctx_ = ctx
116666	return c
116667}
116668
116669// Header returns an http.Header that can be modified by the caller to
116670// add HTTP headers to the request.
116671func (c *PublicAdvertisedPrefixesGetCall) Header() http.Header {
116672	if c.header_ == nil {
116673		c.header_ = make(http.Header)
116674	}
116675	return c.header_
116676}
116677
116678func (c *PublicAdvertisedPrefixesGetCall) doRequest(alt string) (*http.Response, error) {
116679	reqHeaders := make(http.Header)
116680	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
116681	for k, v := range c.header_ {
116682		reqHeaders[k] = v
116683	}
116684	reqHeaders.Set("User-Agent", c.s.userAgent())
116685	if c.ifNoneMatch_ != "" {
116686		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
116687	}
116688	var body io.Reader = nil
116689	c.urlParams_.Set("alt", alt)
116690	c.urlParams_.Set("prettyPrint", "false")
116691	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}")
116692	urls += "?" + c.urlParams_.Encode()
116693	req, err := http.NewRequest("GET", urls, body)
116694	if err != nil {
116695		return nil, err
116696	}
116697	req.Header = reqHeaders
116698	googleapi.Expand(req.URL, map[string]string{
116699		"project":                c.project,
116700		"publicAdvertisedPrefix": c.publicAdvertisedPrefix,
116701	})
116702	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116703}
116704
116705// Do executes the "compute.publicAdvertisedPrefixes.get" call.
116706// Exactly one of *PublicAdvertisedPrefix or error will be non-nil. Any
116707// non-2xx status code is an error. Response headers are in either
116708// *PublicAdvertisedPrefix.ServerResponse.Header or (if a response was
116709// returned at all) in error.(*googleapi.Error).Header. Use
116710// googleapi.IsNotModified to check whether the returned error was
116711// because http.StatusNotModified was returned.
116712func (c *PublicAdvertisedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicAdvertisedPrefix, error) {
116713	gensupport.SetOptions(c.urlParams_, opts...)
116714	res, err := c.doRequest("json")
116715	if res != nil && res.StatusCode == http.StatusNotModified {
116716		if res.Body != nil {
116717			res.Body.Close()
116718		}
116719		return nil, &googleapi.Error{
116720			Code:   res.StatusCode,
116721			Header: res.Header,
116722		}
116723	}
116724	if err != nil {
116725		return nil, err
116726	}
116727	defer googleapi.CloseBody(res)
116728	if err := googleapi.CheckResponse(res); err != nil {
116729		return nil, err
116730	}
116731	ret := &PublicAdvertisedPrefix{
116732		ServerResponse: googleapi.ServerResponse{
116733			Header:         res.Header,
116734			HTTPStatusCode: res.StatusCode,
116735		},
116736	}
116737	target := &ret
116738	if err := gensupport.DecodeResponse(target, res); err != nil {
116739		return nil, err
116740	}
116741	return ret, nil
116742	// {
116743	//   "description": "Returns the specified PublicAdvertisedPrefix resource.",
116744	//   "httpMethod": "GET",
116745	//   "id": "compute.publicAdvertisedPrefixes.get",
116746	//   "parameterOrder": [
116747	//     "project",
116748	//     "publicAdvertisedPrefix"
116749	//   ],
116750	//   "parameters": {
116751	//     "project": {
116752	//       "description": "Project ID for this request.",
116753	//       "location": "path",
116754	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116755	//       "required": true,
116756	//       "type": "string"
116757	//     },
116758	//     "publicAdvertisedPrefix": {
116759	//       "description": "Name of the PublicAdvertisedPrefix resource to return.",
116760	//       "location": "path",
116761	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
116762	//       "required": true,
116763	//       "type": "string"
116764	//     }
116765	//   },
116766	//   "path": "{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
116767	//   "response": {
116768	//     "$ref": "PublicAdvertisedPrefix"
116769	//   },
116770	//   "scopes": [
116771	//     "https://www.googleapis.com/auth/cloud-platform",
116772	//     "https://www.googleapis.com/auth/compute",
116773	//     "https://www.googleapis.com/auth/compute.readonly"
116774	//   ]
116775	// }
116776
116777}
116778
116779// method id "compute.publicAdvertisedPrefixes.insert":
116780
116781type PublicAdvertisedPrefixesInsertCall struct {
116782	s                      *Service
116783	project                string
116784	publicadvertisedprefix *PublicAdvertisedPrefix
116785	urlParams_             gensupport.URLParams
116786	ctx_                   context.Context
116787	header_                http.Header
116788}
116789
116790// Insert: Creates a PublicAdvertisedPrefix in the specified project
116791// using the parameters that are included in the request.
116792func (r *PublicAdvertisedPrefixesService) Insert(project string, publicadvertisedprefix *PublicAdvertisedPrefix) *PublicAdvertisedPrefixesInsertCall {
116793	c := &PublicAdvertisedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116794	c.project = project
116795	c.publicadvertisedprefix = publicadvertisedprefix
116796	return c
116797}
116798
116799// RequestId sets the optional parameter "requestId": An optional
116800// request ID to identify requests. Specify a unique request ID so that
116801// if you must retry your request, the server will know to ignore the
116802// request if it has already been completed.
116803//
116804// For example, consider a situation where you make an initial request
116805// and the request times out. If you make the request again with the
116806// same request ID, the server can check if original operation with the
116807// same request ID was received, and if so, will ignore the second
116808// request. This prevents clients from accidentally creating duplicate
116809// commitments.
116810//
116811// The request ID must be a valid UUID with the exception that zero UUID
116812// is not supported (00000000-0000-0000-0000-000000000000).
116813func (c *PublicAdvertisedPrefixesInsertCall) RequestId(requestId string) *PublicAdvertisedPrefixesInsertCall {
116814	c.urlParams_.Set("requestId", requestId)
116815	return c
116816}
116817
116818// Fields allows partial responses to be retrieved. See
116819// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116820// for more information.
116821func (c *PublicAdvertisedPrefixesInsertCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesInsertCall {
116822	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116823	return c
116824}
116825
116826// Context sets the context to be used in this call's Do method. Any
116827// pending HTTP request will be aborted if the provided context is
116828// canceled.
116829func (c *PublicAdvertisedPrefixesInsertCall) Context(ctx context.Context) *PublicAdvertisedPrefixesInsertCall {
116830	c.ctx_ = ctx
116831	return c
116832}
116833
116834// Header returns an http.Header that can be modified by the caller to
116835// add HTTP headers to the request.
116836func (c *PublicAdvertisedPrefixesInsertCall) Header() http.Header {
116837	if c.header_ == nil {
116838		c.header_ = make(http.Header)
116839	}
116840	return c.header_
116841}
116842
116843func (c *PublicAdvertisedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) {
116844	reqHeaders := make(http.Header)
116845	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
116846	for k, v := range c.header_ {
116847		reqHeaders[k] = v
116848	}
116849	reqHeaders.Set("User-Agent", c.s.userAgent())
116850	var body io.Reader = nil
116851	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicadvertisedprefix)
116852	if err != nil {
116853		return nil, err
116854	}
116855	reqHeaders.Set("Content-Type", "application/json")
116856	c.urlParams_.Set("alt", alt)
116857	c.urlParams_.Set("prettyPrint", "false")
116858	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicAdvertisedPrefixes")
116859	urls += "?" + c.urlParams_.Encode()
116860	req, err := http.NewRequest("POST", urls, body)
116861	if err != nil {
116862		return nil, err
116863	}
116864	req.Header = reqHeaders
116865	googleapi.Expand(req.URL, map[string]string{
116866		"project": c.project,
116867	})
116868	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116869}
116870
116871// Do executes the "compute.publicAdvertisedPrefixes.insert" call.
116872// Exactly one of *Operation or error will be non-nil. Any non-2xx
116873// status code is an error. Response headers are in either
116874// *Operation.ServerResponse.Header or (if a response was returned at
116875// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116876// to check whether the returned error was because
116877// http.StatusNotModified was returned.
116878func (c *PublicAdvertisedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116879	gensupport.SetOptions(c.urlParams_, opts...)
116880	res, err := c.doRequest("json")
116881	if res != nil && res.StatusCode == http.StatusNotModified {
116882		if res.Body != nil {
116883			res.Body.Close()
116884		}
116885		return nil, &googleapi.Error{
116886			Code:   res.StatusCode,
116887			Header: res.Header,
116888		}
116889	}
116890	if err != nil {
116891		return nil, err
116892	}
116893	defer googleapi.CloseBody(res)
116894	if err := googleapi.CheckResponse(res); err != nil {
116895		return nil, err
116896	}
116897	ret := &Operation{
116898		ServerResponse: googleapi.ServerResponse{
116899			Header:         res.Header,
116900			HTTPStatusCode: res.StatusCode,
116901		},
116902	}
116903	target := &ret
116904	if err := gensupport.DecodeResponse(target, res); err != nil {
116905		return nil, err
116906	}
116907	return ret, nil
116908	// {
116909	//   "description": "Creates a PublicAdvertisedPrefix in the specified project using the parameters that are included in the request.",
116910	//   "httpMethod": "POST",
116911	//   "id": "compute.publicAdvertisedPrefixes.insert",
116912	//   "parameterOrder": [
116913	//     "project"
116914	//   ],
116915	//   "parameters": {
116916	//     "project": {
116917	//       "description": "Project ID for this request.",
116918	//       "location": "path",
116919	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116920	//       "required": true,
116921	//       "type": "string"
116922	//     },
116923	//     "requestId": {
116924	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
116925	//       "location": "query",
116926	//       "type": "string"
116927	//     }
116928	//   },
116929	//   "path": "{project}/global/publicAdvertisedPrefixes",
116930	//   "request": {
116931	//     "$ref": "PublicAdvertisedPrefix"
116932	//   },
116933	//   "response": {
116934	//     "$ref": "Operation"
116935	//   },
116936	//   "scopes": [
116937	//     "https://www.googleapis.com/auth/cloud-platform",
116938	//     "https://www.googleapis.com/auth/compute"
116939	//   ]
116940	// }
116941
116942}
116943
116944// method id "compute.publicAdvertisedPrefixes.list":
116945
116946type PublicAdvertisedPrefixesListCall struct {
116947	s            *Service
116948	project      string
116949	urlParams_   gensupport.URLParams
116950	ifNoneMatch_ string
116951	ctx_         context.Context
116952	header_      http.Header
116953}
116954
116955// List: Lists the PublicAdvertisedPrefixes for a project.
116956func (r *PublicAdvertisedPrefixesService) List(project string) *PublicAdvertisedPrefixesListCall {
116957	c := &PublicAdvertisedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116958	c.project = project
116959	return c
116960}
116961
116962// Filter sets the optional parameter "filter": A filter expression that
116963// filters resources listed in the response. The expression must specify
116964// the field name, a comparison operator, and the value that you want to
116965// use for filtering. The value must be a string, a number, or a
116966// boolean. The comparison operator must be either =, !=, >, or <.
116967//
116968// For example, if you are filtering Compute Engine instances, you can
116969// exclude instances named example-instance by specifying name !=
116970// example-instance.
116971//
116972// You can also filter nested fields. For example, you could specify
116973// scheduling.automaticRestart = false to include instances only if they
116974// are not scheduled for automatic restarts. You can use filtering on
116975// nested fields to filter based on resource labels.
116976//
116977// To filter on multiple expressions, provide each separate expression
116978// within parentheses. For example, (scheduling.automaticRestart = true)
116979// (cpuPlatform = "Intel Skylake"). By default, each expression is an
116980// AND expression. However, you can include AND and OR expressions
116981// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
116982// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
116983// true).
116984func (c *PublicAdvertisedPrefixesListCall) Filter(filter string) *PublicAdvertisedPrefixesListCall {
116985	c.urlParams_.Set("filter", filter)
116986	return c
116987}
116988
116989// MaxResults sets the optional parameter "maxResults": The maximum
116990// number of results per page that should be returned. If the number of
116991// available results is larger than maxResults, Compute Engine returns a
116992// nextPageToken that can be used to get the next page of results in
116993// subsequent list requests. Acceptable values are 0 to 500, inclusive.
116994// (Default: 500)
116995func (c *PublicAdvertisedPrefixesListCall) MaxResults(maxResults int64) *PublicAdvertisedPrefixesListCall {
116996	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
116997	return c
116998}
116999
117000// OrderBy sets the optional parameter "orderBy": Sorts list results by
117001// a certain order. By default, results are returned in alphanumerical
117002// order based on the resource name.
117003//
117004// You can also sort results in descending order based on the creation
117005// timestamp using orderBy="creationTimestamp desc". This sorts results
117006// based on the creationTimestamp field in reverse chronological order
117007// (newest result first). Use this to sort resources like operations so
117008// that the newest operation is returned first.
117009//
117010// Currently, only sorting by name or creationTimestamp desc is
117011// supported.
117012func (c *PublicAdvertisedPrefixesListCall) OrderBy(orderBy string) *PublicAdvertisedPrefixesListCall {
117013	c.urlParams_.Set("orderBy", orderBy)
117014	return c
117015}
117016
117017// PageToken sets the optional parameter "pageToken": Specifies a page
117018// token to use. Set pageToken to the nextPageToken returned by a
117019// previous list request to get the next page of results.
117020func (c *PublicAdvertisedPrefixesListCall) PageToken(pageToken string) *PublicAdvertisedPrefixesListCall {
117021	c.urlParams_.Set("pageToken", pageToken)
117022	return c
117023}
117024
117025// Fields allows partial responses to be retrieved. See
117026// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117027// for more information.
117028func (c *PublicAdvertisedPrefixesListCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesListCall {
117029	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117030	return c
117031}
117032
117033// IfNoneMatch sets the optional parameter which makes the operation
117034// fail if the object's ETag matches the given value. This is useful for
117035// getting updates only after the object has changed since the last
117036// request. Use googleapi.IsNotModified to check whether the response
117037// error from Do is the result of In-None-Match.
117038func (c *PublicAdvertisedPrefixesListCall) IfNoneMatch(entityTag string) *PublicAdvertisedPrefixesListCall {
117039	c.ifNoneMatch_ = entityTag
117040	return c
117041}
117042
117043// Context sets the context to be used in this call's Do method. Any
117044// pending HTTP request will be aborted if the provided context is
117045// canceled.
117046func (c *PublicAdvertisedPrefixesListCall) Context(ctx context.Context) *PublicAdvertisedPrefixesListCall {
117047	c.ctx_ = ctx
117048	return c
117049}
117050
117051// Header returns an http.Header that can be modified by the caller to
117052// add HTTP headers to the request.
117053func (c *PublicAdvertisedPrefixesListCall) Header() http.Header {
117054	if c.header_ == nil {
117055		c.header_ = make(http.Header)
117056	}
117057	return c.header_
117058}
117059
117060func (c *PublicAdvertisedPrefixesListCall) doRequest(alt string) (*http.Response, error) {
117061	reqHeaders := make(http.Header)
117062	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
117063	for k, v := range c.header_ {
117064		reqHeaders[k] = v
117065	}
117066	reqHeaders.Set("User-Agent", c.s.userAgent())
117067	if c.ifNoneMatch_ != "" {
117068		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
117069	}
117070	var body io.Reader = nil
117071	c.urlParams_.Set("alt", alt)
117072	c.urlParams_.Set("prettyPrint", "false")
117073	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicAdvertisedPrefixes")
117074	urls += "?" + c.urlParams_.Encode()
117075	req, err := http.NewRequest("GET", urls, body)
117076	if err != nil {
117077		return nil, err
117078	}
117079	req.Header = reqHeaders
117080	googleapi.Expand(req.URL, map[string]string{
117081		"project": c.project,
117082	})
117083	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117084}
117085
117086// Do executes the "compute.publicAdvertisedPrefixes.list" call.
117087// Exactly one of *PublicAdvertisedPrefixList or error will be non-nil.
117088// Any non-2xx status code is an error. Response headers are in either
117089// *PublicAdvertisedPrefixList.ServerResponse.Header or (if a response
117090// was returned at all) in error.(*googleapi.Error).Header. Use
117091// googleapi.IsNotModified to check whether the returned error was
117092// because http.StatusNotModified was returned.
117093func (c *PublicAdvertisedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicAdvertisedPrefixList, error) {
117094	gensupport.SetOptions(c.urlParams_, opts...)
117095	res, err := c.doRequest("json")
117096	if res != nil && res.StatusCode == http.StatusNotModified {
117097		if res.Body != nil {
117098			res.Body.Close()
117099		}
117100		return nil, &googleapi.Error{
117101			Code:   res.StatusCode,
117102			Header: res.Header,
117103		}
117104	}
117105	if err != nil {
117106		return nil, err
117107	}
117108	defer googleapi.CloseBody(res)
117109	if err := googleapi.CheckResponse(res); err != nil {
117110		return nil, err
117111	}
117112	ret := &PublicAdvertisedPrefixList{
117113		ServerResponse: googleapi.ServerResponse{
117114			Header:         res.Header,
117115			HTTPStatusCode: res.StatusCode,
117116		},
117117	}
117118	target := &ret
117119	if err := gensupport.DecodeResponse(target, res); err != nil {
117120		return nil, err
117121	}
117122	return ret, nil
117123	// {
117124	//   "description": "Lists the PublicAdvertisedPrefixes for a project.",
117125	//   "httpMethod": "GET",
117126	//   "id": "compute.publicAdvertisedPrefixes.list",
117127	//   "parameterOrder": [
117128	//     "project"
117129	//   ],
117130	//   "parameters": {
117131	//     "filter": {
117132	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
117133	//       "location": "query",
117134	//       "type": "string"
117135	//     },
117136	//     "maxResults": {
117137	//       "default": "500",
117138	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
117139	//       "format": "uint32",
117140	//       "location": "query",
117141	//       "minimum": "0",
117142	//       "type": "integer"
117143	//     },
117144	//     "orderBy": {
117145	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
117146	//       "location": "query",
117147	//       "type": "string"
117148	//     },
117149	//     "pageToken": {
117150	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
117151	//       "location": "query",
117152	//       "type": "string"
117153	//     },
117154	//     "project": {
117155	//       "description": "Project ID for this request.",
117156	//       "location": "path",
117157	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117158	//       "required": true,
117159	//       "type": "string"
117160	//     }
117161	//   },
117162	//   "path": "{project}/global/publicAdvertisedPrefixes",
117163	//   "response": {
117164	//     "$ref": "PublicAdvertisedPrefixList"
117165	//   },
117166	//   "scopes": [
117167	//     "https://www.googleapis.com/auth/cloud-platform",
117168	//     "https://www.googleapis.com/auth/compute",
117169	//     "https://www.googleapis.com/auth/compute.readonly"
117170	//   ]
117171	// }
117172
117173}
117174
117175// Pages invokes f for each page of results.
117176// A non-nil error returned from f will halt the iteration.
117177// The provided context supersedes any context provided to the Context method.
117178func (c *PublicAdvertisedPrefixesListCall) Pages(ctx context.Context, f func(*PublicAdvertisedPrefixList) error) error {
117179	c.ctx_ = ctx
117180	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
117181	for {
117182		x, err := c.Do()
117183		if err != nil {
117184			return err
117185		}
117186		if err := f(x); err != nil {
117187			return err
117188		}
117189		if x.NextPageToken == "" {
117190			return nil
117191		}
117192		c.PageToken(x.NextPageToken)
117193	}
117194}
117195
117196// method id "compute.publicAdvertisedPrefixes.patch":
117197
117198type PublicAdvertisedPrefixesPatchCall struct {
117199	s                      *Service
117200	project                string
117201	publicAdvertisedPrefix string
117202	publicadvertisedprefix *PublicAdvertisedPrefix
117203	urlParams_             gensupport.URLParams
117204	ctx_                   context.Context
117205	header_                http.Header
117206}
117207
117208// Patch: Patches the specified Router resource with the data included
117209// in the request. This method supports PATCH semantics and uses JSON
117210// merge patch format and processing rules.
117211func (r *PublicAdvertisedPrefixesService) Patch(project string, publicAdvertisedPrefix string, publicadvertisedprefix *PublicAdvertisedPrefix) *PublicAdvertisedPrefixesPatchCall {
117212	c := &PublicAdvertisedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117213	c.project = project
117214	c.publicAdvertisedPrefix = publicAdvertisedPrefix
117215	c.publicadvertisedprefix = publicadvertisedprefix
117216	return c
117217}
117218
117219// RequestId sets the optional parameter "requestId": An optional
117220// request ID to identify requests. Specify a unique request ID so that
117221// if you must retry your request, the server will know to ignore the
117222// request if it has already been completed.
117223//
117224// For example, consider a situation where you make an initial request
117225// and the request times out. If you make the request again with the
117226// same request ID, the server can check if original operation with the
117227// same request ID was received, and if so, will ignore the second
117228// request. This prevents clients from accidentally creating duplicate
117229// commitments.
117230//
117231// The request ID must be a valid UUID with the exception that zero UUID
117232// is not supported (00000000-0000-0000-0000-000000000000).
117233func (c *PublicAdvertisedPrefixesPatchCall) RequestId(requestId string) *PublicAdvertisedPrefixesPatchCall {
117234	c.urlParams_.Set("requestId", requestId)
117235	return c
117236}
117237
117238// Fields allows partial responses to be retrieved. See
117239// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117240// for more information.
117241func (c *PublicAdvertisedPrefixesPatchCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesPatchCall {
117242	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117243	return c
117244}
117245
117246// Context sets the context to be used in this call's Do method. Any
117247// pending HTTP request will be aborted if the provided context is
117248// canceled.
117249func (c *PublicAdvertisedPrefixesPatchCall) Context(ctx context.Context) *PublicAdvertisedPrefixesPatchCall {
117250	c.ctx_ = ctx
117251	return c
117252}
117253
117254// Header returns an http.Header that can be modified by the caller to
117255// add HTTP headers to the request.
117256func (c *PublicAdvertisedPrefixesPatchCall) Header() http.Header {
117257	if c.header_ == nil {
117258		c.header_ = make(http.Header)
117259	}
117260	return c.header_
117261}
117262
117263func (c *PublicAdvertisedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) {
117264	reqHeaders := make(http.Header)
117265	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
117266	for k, v := range c.header_ {
117267		reqHeaders[k] = v
117268	}
117269	reqHeaders.Set("User-Agent", c.s.userAgent())
117270	var body io.Reader = nil
117271	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicadvertisedprefix)
117272	if err != nil {
117273		return nil, err
117274	}
117275	reqHeaders.Set("Content-Type", "application/json")
117276	c.urlParams_.Set("alt", alt)
117277	c.urlParams_.Set("prettyPrint", "false")
117278	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}")
117279	urls += "?" + c.urlParams_.Encode()
117280	req, err := http.NewRequest("PATCH", urls, body)
117281	if err != nil {
117282		return nil, err
117283	}
117284	req.Header = reqHeaders
117285	googleapi.Expand(req.URL, map[string]string{
117286		"project":                c.project,
117287		"publicAdvertisedPrefix": c.publicAdvertisedPrefix,
117288	})
117289	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117290}
117291
117292// Do executes the "compute.publicAdvertisedPrefixes.patch" call.
117293// Exactly one of *Operation or error will be non-nil. Any non-2xx
117294// status code is an error. Response headers are in either
117295// *Operation.ServerResponse.Header or (if a response was returned at
117296// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117297// to check whether the returned error was because
117298// http.StatusNotModified was returned.
117299func (c *PublicAdvertisedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
117300	gensupport.SetOptions(c.urlParams_, opts...)
117301	res, err := c.doRequest("json")
117302	if res != nil && res.StatusCode == http.StatusNotModified {
117303		if res.Body != nil {
117304			res.Body.Close()
117305		}
117306		return nil, &googleapi.Error{
117307			Code:   res.StatusCode,
117308			Header: res.Header,
117309		}
117310	}
117311	if err != nil {
117312		return nil, err
117313	}
117314	defer googleapi.CloseBody(res)
117315	if err := googleapi.CheckResponse(res); err != nil {
117316		return nil, err
117317	}
117318	ret := &Operation{
117319		ServerResponse: googleapi.ServerResponse{
117320			Header:         res.Header,
117321			HTTPStatusCode: res.StatusCode,
117322		},
117323	}
117324	target := &ret
117325	if err := gensupport.DecodeResponse(target, res); err != nil {
117326		return nil, err
117327	}
117328	return ret, nil
117329	// {
117330	//   "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.",
117331	//   "httpMethod": "PATCH",
117332	//   "id": "compute.publicAdvertisedPrefixes.patch",
117333	//   "parameterOrder": [
117334	//     "project",
117335	//     "publicAdvertisedPrefix"
117336	//   ],
117337	//   "parameters": {
117338	//     "project": {
117339	//       "description": "Project ID for this request.",
117340	//       "location": "path",
117341	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117342	//       "required": true,
117343	//       "type": "string"
117344	//     },
117345	//     "publicAdvertisedPrefix": {
117346	//       "description": "Name of the PublicAdvertisedPrefix resource to patch.",
117347	//       "location": "path",
117348	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
117349	//       "required": true,
117350	//       "type": "string"
117351	//     },
117352	//     "requestId": {
117353	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
117354	//       "location": "query",
117355	//       "type": "string"
117356	//     }
117357	//   },
117358	//   "path": "{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
117359	//   "request": {
117360	//     "$ref": "PublicAdvertisedPrefix"
117361	//   },
117362	//   "response": {
117363	//     "$ref": "Operation"
117364	//   },
117365	//   "scopes": [
117366	//     "https://www.googleapis.com/auth/cloud-platform",
117367	//     "https://www.googleapis.com/auth/compute"
117368	//   ]
117369	// }
117370
117371}
117372
117373// method id "compute.publicDelegatedPrefixes.aggregatedList":
117374
117375type PublicDelegatedPrefixesAggregatedListCall struct {
117376	s            *Service
117377	project      string
117378	urlParams_   gensupport.URLParams
117379	ifNoneMatch_ string
117380	ctx_         context.Context
117381	header_      http.Header
117382}
117383
117384// AggregatedList: Lists all PublicDelegatedPrefix resources owned by
117385// the specific project across all scopes.
117386func (r *PublicDelegatedPrefixesService) AggregatedList(project string) *PublicDelegatedPrefixesAggregatedListCall {
117387	c := &PublicDelegatedPrefixesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117388	c.project = project
117389	return c
117390}
117391
117392// Filter sets the optional parameter "filter": A filter expression that
117393// filters resources listed in the response. The expression must specify
117394// the field name, a comparison operator, and the value that you want to
117395// use for filtering. The value must be a string, a number, or a
117396// boolean. The comparison operator must be either =, !=, >, or <.
117397//
117398// For example, if you are filtering Compute Engine instances, you can
117399// exclude instances named example-instance by specifying name !=
117400// example-instance.
117401//
117402// You can also filter nested fields. For example, you could specify
117403// scheduling.automaticRestart = false to include instances only if they
117404// are not scheduled for automatic restarts. You can use filtering on
117405// nested fields to filter based on resource labels.
117406//
117407// To filter on multiple expressions, provide each separate expression
117408// within parentheses. For example, (scheduling.automaticRestart = true)
117409// (cpuPlatform = "Intel Skylake"). By default, each expression is an
117410// AND expression. However, you can include AND and OR expressions
117411// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
117412// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
117413// true).
117414func (c *PublicDelegatedPrefixesAggregatedListCall) Filter(filter string) *PublicDelegatedPrefixesAggregatedListCall {
117415	c.urlParams_.Set("filter", filter)
117416	return c
117417}
117418
117419// IncludeAllScopes sets the optional parameter "includeAllScopes":
117420// Indicates whether every visible scope for each scope type (zone,
117421// region, global) should be included in the response. For new resource
117422// types added after this field, the flag has no effect as new resource
117423// types will always include every visible scope for each scope type in
117424// response. For resource types which predate this field, if this flag
117425// is omitted or false, only scopes of the scope types where the
117426// resource type is expected to be found will be included.
117427func (c *PublicDelegatedPrefixesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *PublicDelegatedPrefixesAggregatedListCall {
117428	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
117429	return c
117430}
117431
117432// MaxResults sets the optional parameter "maxResults": The maximum
117433// number of results per page that should be returned. If the number of
117434// available results is larger than maxResults, Compute Engine returns a
117435// nextPageToken that can be used to get the next page of results in
117436// subsequent list requests. Acceptable values are 0 to 500, inclusive.
117437// (Default: 500)
117438func (c *PublicDelegatedPrefixesAggregatedListCall) MaxResults(maxResults int64) *PublicDelegatedPrefixesAggregatedListCall {
117439	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
117440	return c
117441}
117442
117443// OrderBy sets the optional parameter "orderBy": Sorts list results by
117444// a certain order. By default, results are returned in alphanumerical
117445// order based on the resource name.
117446//
117447// You can also sort results in descending order based on the creation
117448// timestamp using orderBy="creationTimestamp desc". This sorts results
117449// based on the creationTimestamp field in reverse chronological order
117450// (newest result first). Use this to sort resources like operations so
117451// that the newest operation is returned first.
117452//
117453// Currently, only sorting by name or creationTimestamp desc is
117454// supported.
117455func (c *PublicDelegatedPrefixesAggregatedListCall) OrderBy(orderBy string) *PublicDelegatedPrefixesAggregatedListCall {
117456	c.urlParams_.Set("orderBy", orderBy)
117457	return c
117458}
117459
117460// PageToken sets the optional parameter "pageToken": Specifies a page
117461// token to use. Set pageToken to the nextPageToken returned by a
117462// previous list request to get the next page of results.
117463func (c *PublicDelegatedPrefixesAggregatedListCall) PageToken(pageToken string) *PublicDelegatedPrefixesAggregatedListCall {
117464	c.urlParams_.Set("pageToken", pageToken)
117465	return c
117466}
117467
117468// Fields allows partial responses to be retrieved. See
117469// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117470// for more information.
117471func (c *PublicDelegatedPrefixesAggregatedListCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesAggregatedListCall {
117472	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117473	return c
117474}
117475
117476// IfNoneMatch sets the optional parameter which makes the operation
117477// fail if the object's ETag matches the given value. This is useful for
117478// getting updates only after the object has changed since the last
117479// request. Use googleapi.IsNotModified to check whether the response
117480// error from Do is the result of In-None-Match.
117481func (c *PublicDelegatedPrefixesAggregatedListCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesAggregatedListCall {
117482	c.ifNoneMatch_ = entityTag
117483	return c
117484}
117485
117486// Context sets the context to be used in this call's Do method. Any
117487// pending HTTP request will be aborted if the provided context is
117488// canceled.
117489func (c *PublicDelegatedPrefixesAggregatedListCall) Context(ctx context.Context) *PublicDelegatedPrefixesAggregatedListCall {
117490	c.ctx_ = ctx
117491	return c
117492}
117493
117494// Header returns an http.Header that can be modified by the caller to
117495// add HTTP headers to the request.
117496func (c *PublicDelegatedPrefixesAggregatedListCall) Header() http.Header {
117497	if c.header_ == nil {
117498		c.header_ = make(http.Header)
117499	}
117500	return c.header_
117501}
117502
117503func (c *PublicDelegatedPrefixesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
117504	reqHeaders := make(http.Header)
117505	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
117506	for k, v := range c.header_ {
117507		reqHeaders[k] = v
117508	}
117509	reqHeaders.Set("User-Agent", c.s.userAgent())
117510	if c.ifNoneMatch_ != "" {
117511		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
117512	}
117513	var body io.Reader = nil
117514	c.urlParams_.Set("alt", alt)
117515	c.urlParams_.Set("prettyPrint", "false")
117516	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/publicDelegatedPrefixes")
117517	urls += "?" + c.urlParams_.Encode()
117518	req, err := http.NewRequest("GET", urls, body)
117519	if err != nil {
117520		return nil, err
117521	}
117522	req.Header = reqHeaders
117523	googleapi.Expand(req.URL, map[string]string{
117524		"project": c.project,
117525	})
117526	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117527}
117528
117529// Do executes the "compute.publicDelegatedPrefixes.aggregatedList" call.
117530// Exactly one of *PublicDelegatedPrefixAggregatedList or error will be
117531// non-nil. Any non-2xx status code is an error. Response headers are in
117532// either *PublicDelegatedPrefixAggregatedList.ServerResponse.Header or
117533// (if a response was returned at all) in
117534// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
117535// whether the returned error was because http.StatusNotModified was
117536// returned.
117537func (c *PublicDelegatedPrefixesAggregatedListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixAggregatedList, error) {
117538	gensupport.SetOptions(c.urlParams_, opts...)
117539	res, err := c.doRequest("json")
117540	if res != nil && res.StatusCode == http.StatusNotModified {
117541		if res.Body != nil {
117542			res.Body.Close()
117543		}
117544		return nil, &googleapi.Error{
117545			Code:   res.StatusCode,
117546			Header: res.Header,
117547		}
117548	}
117549	if err != nil {
117550		return nil, err
117551	}
117552	defer googleapi.CloseBody(res)
117553	if err := googleapi.CheckResponse(res); err != nil {
117554		return nil, err
117555	}
117556	ret := &PublicDelegatedPrefixAggregatedList{
117557		ServerResponse: googleapi.ServerResponse{
117558			Header:         res.Header,
117559			HTTPStatusCode: res.StatusCode,
117560		},
117561	}
117562	target := &ret
117563	if err := gensupport.DecodeResponse(target, res); err != nil {
117564		return nil, err
117565	}
117566	return ret, nil
117567	// {
117568	//   "description": "Lists all PublicDelegatedPrefix resources owned by the specific project across all scopes.",
117569	//   "httpMethod": "GET",
117570	//   "id": "compute.publicDelegatedPrefixes.aggregatedList",
117571	//   "parameterOrder": [
117572	//     "project"
117573	//   ],
117574	//   "parameters": {
117575	//     "filter": {
117576	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
117577	//       "location": "query",
117578	//       "type": "string"
117579	//     },
117580	//     "includeAllScopes": {
117581	//       "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.",
117582	//       "location": "query",
117583	//       "type": "boolean"
117584	//     },
117585	//     "maxResults": {
117586	//       "default": "500",
117587	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
117588	//       "format": "uint32",
117589	//       "location": "query",
117590	//       "minimum": "0",
117591	//       "type": "integer"
117592	//     },
117593	//     "orderBy": {
117594	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
117595	//       "location": "query",
117596	//       "type": "string"
117597	//     },
117598	//     "pageToken": {
117599	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
117600	//       "location": "query",
117601	//       "type": "string"
117602	//     },
117603	//     "project": {
117604	//       "description": "Name of the project scoping this request.",
117605	//       "location": "path",
117606	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117607	//       "required": true,
117608	//       "type": "string"
117609	//     }
117610	//   },
117611	//   "path": "{project}/aggregated/publicDelegatedPrefixes",
117612	//   "response": {
117613	//     "$ref": "PublicDelegatedPrefixAggregatedList"
117614	//   },
117615	//   "scopes": [
117616	//     "https://www.googleapis.com/auth/cloud-platform",
117617	//     "https://www.googleapis.com/auth/compute",
117618	//     "https://www.googleapis.com/auth/compute.readonly"
117619	//   ]
117620	// }
117621
117622}
117623
117624// Pages invokes f for each page of results.
117625// A non-nil error returned from f will halt the iteration.
117626// The provided context supersedes any context provided to the Context method.
117627func (c *PublicDelegatedPrefixesAggregatedListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixAggregatedList) error) error {
117628	c.ctx_ = ctx
117629	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
117630	for {
117631		x, err := c.Do()
117632		if err != nil {
117633			return err
117634		}
117635		if err := f(x); err != nil {
117636			return err
117637		}
117638		if x.NextPageToken == "" {
117639			return nil
117640		}
117641		c.PageToken(x.NextPageToken)
117642	}
117643}
117644
117645// method id "compute.publicDelegatedPrefixes.delete":
117646
117647type PublicDelegatedPrefixesDeleteCall struct {
117648	s                     *Service
117649	project               string
117650	region                string
117651	publicDelegatedPrefix string
117652	urlParams_            gensupport.URLParams
117653	ctx_                  context.Context
117654	header_               http.Header
117655}
117656
117657// Delete: Deletes the specified PublicDelegatedPrefix in the given
117658// region.
117659func (r *PublicDelegatedPrefixesService) Delete(project string, region string, publicDelegatedPrefix string) *PublicDelegatedPrefixesDeleteCall {
117660	c := &PublicDelegatedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117661	c.project = project
117662	c.region = region
117663	c.publicDelegatedPrefix = publicDelegatedPrefix
117664	return c
117665}
117666
117667// RequestId sets the optional parameter "requestId": An optional
117668// request ID to identify requests. Specify a unique request ID so that
117669// if you must retry your request, the server will know to ignore the
117670// request if it has already been completed.
117671//
117672// For example, consider a situation where you make an initial request
117673// and the request times out. If you make the request again with the
117674// same request ID, the server can check if original operation with the
117675// same request ID was received, and if so, will ignore the second
117676// request. This prevents clients from accidentally creating duplicate
117677// commitments.
117678//
117679// The request ID must be a valid UUID with the exception that zero UUID
117680// is not supported (00000000-0000-0000-0000-000000000000).
117681func (c *PublicDelegatedPrefixesDeleteCall) RequestId(requestId string) *PublicDelegatedPrefixesDeleteCall {
117682	c.urlParams_.Set("requestId", requestId)
117683	return c
117684}
117685
117686// Fields allows partial responses to be retrieved. See
117687// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117688// for more information.
117689func (c *PublicDelegatedPrefixesDeleteCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesDeleteCall {
117690	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117691	return c
117692}
117693
117694// Context sets the context to be used in this call's Do method. Any
117695// pending HTTP request will be aborted if the provided context is
117696// canceled.
117697func (c *PublicDelegatedPrefixesDeleteCall) Context(ctx context.Context) *PublicDelegatedPrefixesDeleteCall {
117698	c.ctx_ = ctx
117699	return c
117700}
117701
117702// Header returns an http.Header that can be modified by the caller to
117703// add HTTP headers to the request.
117704func (c *PublicDelegatedPrefixesDeleteCall) Header() http.Header {
117705	if c.header_ == nil {
117706		c.header_ = make(http.Header)
117707	}
117708	return c.header_
117709}
117710
117711func (c *PublicDelegatedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) {
117712	reqHeaders := make(http.Header)
117713	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
117714	for k, v := range c.header_ {
117715		reqHeaders[k] = v
117716	}
117717	reqHeaders.Set("User-Agent", c.s.userAgent())
117718	var body io.Reader = nil
117719	c.urlParams_.Set("alt", alt)
117720	c.urlParams_.Set("prettyPrint", "false")
117721	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}")
117722	urls += "?" + c.urlParams_.Encode()
117723	req, err := http.NewRequest("DELETE", urls, body)
117724	if err != nil {
117725		return nil, err
117726	}
117727	req.Header = reqHeaders
117728	googleapi.Expand(req.URL, map[string]string{
117729		"project":               c.project,
117730		"region":                c.region,
117731		"publicDelegatedPrefix": c.publicDelegatedPrefix,
117732	})
117733	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117734}
117735
117736// Do executes the "compute.publicDelegatedPrefixes.delete" call.
117737// Exactly one of *Operation or error will be non-nil. Any non-2xx
117738// status code is an error. Response headers are in either
117739// *Operation.ServerResponse.Header or (if a response was returned at
117740// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117741// to check whether the returned error was because
117742// http.StatusNotModified was returned.
117743func (c *PublicDelegatedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
117744	gensupport.SetOptions(c.urlParams_, opts...)
117745	res, err := c.doRequest("json")
117746	if res != nil && res.StatusCode == http.StatusNotModified {
117747		if res.Body != nil {
117748			res.Body.Close()
117749		}
117750		return nil, &googleapi.Error{
117751			Code:   res.StatusCode,
117752			Header: res.Header,
117753		}
117754	}
117755	if err != nil {
117756		return nil, err
117757	}
117758	defer googleapi.CloseBody(res)
117759	if err := googleapi.CheckResponse(res); err != nil {
117760		return nil, err
117761	}
117762	ret := &Operation{
117763		ServerResponse: googleapi.ServerResponse{
117764			Header:         res.Header,
117765			HTTPStatusCode: res.StatusCode,
117766		},
117767	}
117768	target := &ret
117769	if err := gensupport.DecodeResponse(target, res); err != nil {
117770		return nil, err
117771	}
117772	return ret, nil
117773	// {
117774	//   "description": "Deletes the specified PublicDelegatedPrefix in the given region.",
117775	//   "httpMethod": "DELETE",
117776	//   "id": "compute.publicDelegatedPrefixes.delete",
117777	//   "parameterOrder": [
117778	//     "project",
117779	//     "region",
117780	//     "publicDelegatedPrefix"
117781	//   ],
117782	//   "parameters": {
117783	//     "project": {
117784	//       "description": "Project ID for this request.",
117785	//       "location": "path",
117786	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117787	//       "required": true,
117788	//       "type": "string"
117789	//     },
117790	//     "publicDelegatedPrefix": {
117791	//       "description": "Name of the PublicDelegatedPrefix resource to delete.",
117792	//       "location": "path",
117793	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
117794	//       "required": true,
117795	//       "type": "string"
117796	//     },
117797	//     "region": {
117798	//       "description": "Name of the region of this request.",
117799	//       "location": "path",
117800	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117801	//       "required": true,
117802	//       "type": "string"
117803	//     },
117804	//     "requestId": {
117805	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
117806	//       "location": "query",
117807	//       "type": "string"
117808	//     }
117809	//   },
117810	//   "path": "{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
117811	//   "response": {
117812	//     "$ref": "Operation"
117813	//   },
117814	//   "scopes": [
117815	//     "https://www.googleapis.com/auth/cloud-platform",
117816	//     "https://www.googleapis.com/auth/compute"
117817	//   ]
117818	// }
117819
117820}
117821
117822// method id "compute.publicDelegatedPrefixes.get":
117823
117824type PublicDelegatedPrefixesGetCall struct {
117825	s                     *Service
117826	project               string
117827	region                string
117828	publicDelegatedPrefix string
117829	urlParams_            gensupport.URLParams
117830	ifNoneMatch_          string
117831	ctx_                  context.Context
117832	header_               http.Header
117833}
117834
117835// Get: Returns the specified PublicDelegatedPrefix resource in the
117836// given region.
117837func (r *PublicDelegatedPrefixesService) Get(project string, region string, publicDelegatedPrefix string) *PublicDelegatedPrefixesGetCall {
117838	c := &PublicDelegatedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117839	c.project = project
117840	c.region = region
117841	c.publicDelegatedPrefix = publicDelegatedPrefix
117842	return c
117843}
117844
117845// Fields allows partial responses to be retrieved. See
117846// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117847// for more information.
117848func (c *PublicDelegatedPrefixesGetCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesGetCall {
117849	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117850	return c
117851}
117852
117853// IfNoneMatch sets the optional parameter which makes the operation
117854// fail if the object's ETag matches the given value. This is useful for
117855// getting updates only after the object has changed since the last
117856// request. Use googleapi.IsNotModified to check whether the response
117857// error from Do is the result of In-None-Match.
117858func (c *PublicDelegatedPrefixesGetCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesGetCall {
117859	c.ifNoneMatch_ = entityTag
117860	return c
117861}
117862
117863// Context sets the context to be used in this call's Do method. Any
117864// pending HTTP request will be aborted if the provided context is
117865// canceled.
117866func (c *PublicDelegatedPrefixesGetCall) Context(ctx context.Context) *PublicDelegatedPrefixesGetCall {
117867	c.ctx_ = ctx
117868	return c
117869}
117870
117871// Header returns an http.Header that can be modified by the caller to
117872// add HTTP headers to the request.
117873func (c *PublicDelegatedPrefixesGetCall) Header() http.Header {
117874	if c.header_ == nil {
117875		c.header_ = make(http.Header)
117876	}
117877	return c.header_
117878}
117879
117880func (c *PublicDelegatedPrefixesGetCall) doRequest(alt string) (*http.Response, error) {
117881	reqHeaders := make(http.Header)
117882	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
117883	for k, v := range c.header_ {
117884		reqHeaders[k] = v
117885	}
117886	reqHeaders.Set("User-Agent", c.s.userAgent())
117887	if c.ifNoneMatch_ != "" {
117888		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
117889	}
117890	var body io.Reader = nil
117891	c.urlParams_.Set("alt", alt)
117892	c.urlParams_.Set("prettyPrint", "false")
117893	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}")
117894	urls += "?" + c.urlParams_.Encode()
117895	req, err := http.NewRequest("GET", urls, body)
117896	if err != nil {
117897		return nil, err
117898	}
117899	req.Header = reqHeaders
117900	googleapi.Expand(req.URL, map[string]string{
117901		"project":               c.project,
117902		"region":                c.region,
117903		"publicDelegatedPrefix": c.publicDelegatedPrefix,
117904	})
117905	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117906}
117907
117908// Do executes the "compute.publicDelegatedPrefixes.get" call.
117909// Exactly one of *PublicDelegatedPrefix or error will be non-nil. Any
117910// non-2xx status code is an error. Response headers are in either
117911// *PublicDelegatedPrefix.ServerResponse.Header or (if a response was
117912// returned at all) in error.(*googleapi.Error).Header. Use
117913// googleapi.IsNotModified to check whether the returned error was
117914// because http.StatusNotModified was returned.
117915func (c *PublicDelegatedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefix, error) {
117916	gensupport.SetOptions(c.urlParams_, opts...)
117917	res, err := c.doRequest("json")
117918	if res != nil && res.StatusCode == http.StatusNotModified {
117919		if res.Body != nil {
117920			res.Body.Close()
117921		}
117922		return nil, &googleapi.Error{
117923			Code:   res.StatusCode,
117924			Header: res.Header,
117925		}
117926	}
117927	if err != nil {
117928		return nil, err
117929	}
117930	defer googleapi.CloseBody(res)
117931	if err := googleapi.CheckResponse(res); err != nil {
117932		return nil, err
117933	}
117934	ret := &PublicDelegatedPrefix{
117935		ServerResponse: googleapi.ServerResponse{
117936			Header:         res.Header,
117937			HTTPStatusCode: res.StatusCode,
117938		},
117939	}
117940	target := &ret
117941	if err := gensupport.DecodeResponse(target, res); err != nil {
117942		return nil, err
117943	}
117944	return ret, nil
117945	// {
117946	//   "description": "Returns the specified PublicDelegatedPrefix resource in the given region.",
117947	//   "httpMethod": "GET",
117948	//   "id": "compute.publicDelegatedPrefixes.get",
117949	//   "parameterOrder": [
117950	//     "project",
117951	//     "region",
117952	//     "publicDelegatedPrefix"
117953	//   ],
117954	//   "parameters": {
117955	//     "project": {
117956	//       "description": "Project ID for this request.",
117957	//       "location": "path",
117958	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117959	//       "required": true,
117960	//       "type": "string"
117961	//     },
117962	//     "publicDelegatedPrefix": {
117963	//       "description": "Name of the PublicDelegatedPrefix resource to return.",
117964	//       "location": "path",
117965	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
117966	//       "required": true,
117967	//       "type": "string"
117968	//     },
117969	//     "region": {
117970	//       "description": "Name of the region of this request.",
117971	//       "location": "path",
117972	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117973	//       "required": true,
117974	//       "type": "string"
117975	//     }
117976	//   },
117977	//   "path": "{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
117978	//   "response": {
117979	//     "$ref": "PublicDelegatedPrefix"
117980	//   },
117981	//   "scopes": [
117982	//     "https://www.googleapis.com/auth/cloud-platform",
117983	//     "https://www.googleapis.com/auth/compute",
117984	//     "https://www.googleapis.com/auth/compute.readonly"
117985	//   ]
117986	// }
117987
117988}
117989
117990// method id "compute.publicDelegatedPrefixes.insert":
117991
117992type PublicDelegatedPrefixesInsertCall struct {
117993	s                     *Service
117994	project               string
117995	region                string
117996	publicdelegatedprefix *PublicDelegatedPrefix
117997	urlParams_            gensupport.URLParams
117998	ctx_                  context.Context
117999	header_               http.Header
118000}
118001
118002// Insert: Creates a PublicDelegatedPrefix in the specified project in
118003// the given region using the parameters that are included in the
118004// request.
118005func (r *PublicDelegatedPrefixesService) Insert(project string, region string, publicdelegatedprefix *PublicDelegatedPrefix) *PublicDelegatedPrefixesInsertCall {
118006	c := &PublicDelegatedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118007	c.project = project
118008	c.region = region
118009	c.publicdelegatedprefix = publicdelegatedprefix
118010	return c
118011}
118012
118013// RequestId sets the optional parameter "requestId": An optional
118014// request ID to identify requests. Specify a unique request ID so that
118015// if you must retry your request, the server will know to ignore the
118016// request if it has already been completed.
118017//
118018// For example, consider a situation where you make an initial request
118019// and the request times out. If you make the request again with the
118020// same request ID, the server can check if original operation with the
118021// same request ID was received, and if so, will ignore the second
118022// request. This prevents clients from accidentally creating duplicate
118023// commitments.
118024//
118025// The request ID must be a valid UUID with the exception that zero UUID
118026// is not supported (00000000-0000-0000-0000-000000000000).
118027func (c *PublicDelegatedPrefixesInsertCall) RequestId(requestId string) *PublicDelegatedPrefixesInsertCall {
118028	c.urlParams_.Set("requestId", requestId)
118029	return c
118030}
118031
118032// Fields allows partial responses to be retrieved. See
118033// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118034// for more information.
118035func (c *PublicDelegatedPrefixesInsertCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesInsertCall {
118036	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118037	return c
118038}
118039
118040// Context sets the context to be used in this call's Do method. Any
118041// pending HTTP request will be aborted if the provided context is
118042// canceled.
118043func (c *PublicDelegatedPrefixesInsertCall) Context(ctx context.Context) *PublicDelegatedPrefixesInsertCall {
118044	c.ctx_ = ctx
118045	return c
118046}
118047
118048// Header returns an http.Header that can be modified by the caller to
118049// add HTTP headers to the request.
118050func (c *PublicDelegatedPrefixesInsertCall) Header() http.Header {
118051	if c.header_ == nil {
118052		c.header_ = make(http.Header)
118053	}
118054	return c.header_
118055}
118056
118057func (c *PublicDelegatedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) {
118058	reqHeaders := make(http.Header)
118059	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
118060	for k, v := range c.header_ {
118061		reqHeaders[k] = v
118062	}
118063	reqHeaders.Set("User-Agent", c.s.userAgent())
118064	var body io.Reader = nil
118065	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
118066	if err != nil {
118067		return nil, err
118068	}
118069	reqHeaders.Set("Content-Type", "application/json")
118070	c.urlParams_.Set("alt", alt)
118071	c.urlParams_.Set("prettyPrint", "false")
118072	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/publicDelegatedPrefixes")
118073	urls += "?" + c.urlParams_.Encode()
118074	req, err := http.NewRequest("POST", urls, body)
118075	if err != nil {
118076		return nil, err
118077	}
118078	req.Header = reqHeaders
118079	googleapi.Expand(req.URL, map[string]string{
118080		"project": c.project,
118081		"region":  c.region,
118082	})
118083	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118084}
118085
118086// Do executes the "compute.publicDelegatedPrefixes.insert" call.
118087// Exactly one of *Operation or error will be non-nil. Any non-2xx
118088// status code is an error. Response headers are in either
118089// *Operation.ServerResponse.Header or (if a response was returned at
118090// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118091// to check whether the returned error was because
118092// http.StatusNotModified was returned.
118093func (c *PublicDelegatedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118094	gensupport.SetOptions(c.urlParams_, opts...)
118095	res, err := c.doRequest("json")
118096	if res != nil && res.StatusCode == http.StatusNotModified {
118097		if res.Body != nil {
118098			res.Body.Close()
118099		}
118100		return nil, &googleapi.Error{
118101			Code:   res.StatusCode,
118102			Header: res.Header,
118103		}
118104	}
118105	if err != nil {
118106		return nil, err
118107	}
118108	defer googleapi.CloseBody(res)
118109	if err := googleapi.CheckResponse(res); err != nil {
118110		return nil, err
118111	}
118112	ret := &Operation{
118113		ServerResponse: googleapi.ServerResponse{
118114			Header:         res.Header,
118115			HTTPStatusCode: res.StatusCode,
118116		},
118117	}
118118	target := &ret
118119	if err := gensupport.DecodeResponse(target, res); err != nil {
118120		return nil, err
118121	}
118122	return ret, nil
118123	// {
118124	//   "description": "Creates a PublicDelegatedPrefix in the specified project in the given region using the parameters that are included in the request.",
118125	//   "httpMethod": "POST",
118126	//   "id": "compute.publicDelegatedPrefixes.insert",
118127	//   "parameterOrder": [
118128	//     "project",
118129	//     "region"
118130	//   ],
118131	//   "parameters": {
118132	//     "project": {
118133	//       "description": "Project ID for this request.",
118134	//       "location": "path",
118135	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118136	//       "required": true,
118137	//       "type": "string"
118138	//     },
118139	//     "region": {
118140	//       "description": "Name of the region of this request.",
118141	//       "location": "path",
118142	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118143	//       "required": true,
118144	//       "type": "string"
118145	//     },
118146	//     "requestId": {
118147	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
118148	//       "location": "query",
118149	//       "type": "string"
118150	//     }
118151	//   },
118152	//   "path": "{project}/regions/{region}/publicDelegatedPrefixes",
118153	//   "request": {
118154	//     "$ref": "PublicDelegatedPrefix"
118155	//   },
118156	//   "response": {
118157	//     "$ref": "Operation"
118158	//   },
118159	//   "scopes": [
118160	//     "https://www.googleapis.com/auth/cloud-platform",
118161	//     "https://www.googleapis.com/auth/compute"
118162	//   ]
118163	// }
118164
118165}
118166
118167// method id "compute.publicDelegatedPrefixes.list":
118168
118169type PublicDelegatedPrefixesListCall struct {
118170	s            *Service
118171	project      string
118172	region       string
118173	urlParams_   gensupport.URLParams
118174	ifNoneMatch_ string
118175	ctx_         context.Context
118176	header_      http.Header
118177}
118178
118179// List: Lists the PublicDelegatedPrefixes for a project in the given
118180// region.
118181func (r *PublicDelegatedPrefixesService) List(project string, region string) *PublicDelegatedPrefixesListCall {
118182	c := &PublicDelegatedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118183	c.project = project
118184	c.region = region
118185	return c
118186}
118187
118188// Filter sets the optional parameter "filter": A filter expression that
118189// filters resources listed in the response. The expression must specify
118190// the field name, a comparison operator, and the value that you want to
118191// use for filtering. The value must be a string, a number, or a
118192// boolean. The comparison operator must be either =, !=, >, or <.
118193//
118194// For example, if you are filtering Compute Engine instances, you can
118195// exclude instances named example-instance by specifying name !=
118196// example-instance.
118197//
118198// You can also filter nested fields. For example, you could specify
118199// scheduling.automaticRestart = false to include instances only if they
118200// are not scheduled for automatic restarts. You can use filtering on
118201// nested fields to filter based on resource labels.
118202//
118203// To filter on multiple expressions, provide each separate expression
118204// within parentheses. For example, (scheduling.automaticRestart = true)
118205// (cpuPlatform = "Intel Skylake"). By default, each expression is an
118206// AND expression. However, you can include AND and OR expressions
118207// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
118208// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
118209// true).
118210func (c *PublicDelegatedPrefixesListCall) Filter(filter string) *PublicDelegatedPrefixesListCall {
118211	c.urlParams_.Set("filter", filter)
118212	return c
118213}
118214
118215// MaxResults sets the optional parameter "maxResults": The maximum
118216// number of results per page that should be returned. If the number of
118217// available results is larger than maxResults, Compute Engine returns a
118218// nextPageToken that can be used to get the next page of results in
118219// subsequent list requests. Acceptable values are 0 to 500, inclusive.
118220// (Default: 500)
118221func (c *PublicDelegatedPrefixesListCall) MaxResults(maxResults int64) *PublicDelegatedPrefixesListCall {
118222	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
118223	return c
118224}
118225
118226// OrderBy sets the optional parameter "orderBy": Sorts list results by
118227// a certain order. By default, results are returned in alphanumerical
118228// order based on the resource name.
118229//
118230// You can also sort results in descending order based on the creation
118231// timestamp using orderBy="creationTimestamp desc". This sorts results
118232// based on the creationTimestamp field in reverse chronological order
118233// (newest result first). Use this to sort resources like operations so
118234// that the newest operation is returned first.
118235//
118236// Currently, only sorting by name or creationTimestamp desc is
118237// supported.
118238func (c *PublicDelegatedPrefixesListCall) OrderBy(orderBy string) *PublicDelegatedPrefixesListCall {
118239	c.urlParams_.Set("orderBy", orderBy)
118240	return c
118241}
118242
118243// PageToken sets the optional parameter "pageToken": Specifies a page
118244// token to use. Set pageToken to the nextPageToken returned by a
118245// previous list request to get the next page of results.
118246func (c *PublicDelegatedPrefixesListCall) PageToken(pageToken string) *PublicDelegatedPrefixesListCall {
118247	c.urlParams_.Set("pageToken", pageToken)
118248	return c
118249}
118250
118251// Fields allows partial responses to be retrieved. See
118252// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118253// for more information.
118254func (c *PublicDelegatedPrefixesListCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesListCall {
118255	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118256	return c
118257}
118258
118259// IfNoneMatch sets the optional parameter which makes the operation
118260// fail if the object's ETag matches the given value. This is useful for
118261// getting updates only after the object has changed since the last
118262// request. Use googleapi.IsNotModified to check whether the response
118263// error from Do is the result of In-None-Match.
118264func (c *PublicDelegatedPrefixesListCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesListCall {
118265	c.ifNoneMatch_ = entityTag
118266	return c
118267}
118268
118269// Context sets the context to be used in this call's Do method. Any
118270// pending HTTP request will be aborted if the provided context is
118271// canceled.
118272func (c *PublicDelegatedPrefixesListCall) Context(ctx context.Context) *PublicDelegatedPrefixesListCall {
118273	c.ctx_ = ctx
118274	return c
118275}
118276
118277// Header returns an http.Header that can be modified by the caller to
118278// add HTTP headers to the request.
118279func (c *PublicDelegatedPrefixesListCall) Header() http.Header {
118280	if c.header_ == nil {
118281		c.header_ = make(http.Header)
118282	}
118283	return c.header_
118284}
118285
118286func (c *PublicDelegatedPrefixesListCall) doRequest(alt string) (*http.Response, error) {
118287	reqHeaders := make(http.Header)
118288	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
118289	for k, v := range c.header_ {
118290		reqHeaders[k] = v
118291	}
118292	reqHeaders.Set("User-Agent", c.s.userAgent())
118293	if c.ifNoneMatch_ != "" {
118294		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
118295	}
118296	var body io.Reader = nil
118297	c.urlParams_.Set("alt", alt)
118298	c.urlParams_.Set("prettyPrint", "false")
118299	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/publicDelegatedPrefixes")
118300	urls += "?" + c.urlParams_.Encode()
118301	req, err := http.NewRequest("GET", urls, body)
118302	if err != nil {
118303		return nil, err
118304	}
118305	req.Header = reqHeaders
118306	googleapi.Expand(req.URL, map[string]string{
118307		"project": c.project,
118308		"region":  c.region,
118309	})
118310	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118311}
118312
118313// Do executes the "compute.publicDelegatedPrefixes.list" call.
118314// Exactly one of *PublicDelegatedPrefixList or error will be non-nil.
118315// Any non-2xx status code is an error. Response headers are in either
118316// *PublicDelegatedPrefixList.ServerResponse.Header or (if a response
118317// was returned at all) in error.(*googleapi.Error).Header. Use
118318// googleapi.IsNotModified to check whether the returned error was
118319// because http.StatusNotModified was returned.
118320func (c *PublicDelegatedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixList, error) {
118321	gensupport.SetOptions(c.urlParams_, opts...)
118322	res, err := c.doRequest("json")
118323	if res != nil && res.StatusCode == http.StatusNotModified {
118324		if res.Body != nil {
118325			res.Body.Close()
118326		}
118327		return nil, &googleapi.Error{
118328			Code:   res.StatusCode,
118329			Header: res.Header,
118330		}
118331	}
118332	if err != nil {
118333		return nil, err
118334	}
118335	defer googleapi.CloseBody(res)
118336	if err := googleapi.CheckResponse(res); err != nil {
118337		return nil, err
118338	}
118339	ret := &PublicDelegatedPrefixList{
118340		ServerResponse: googleapi.ServerResponse{
118341			Header:         res.Header,
118342			HTTPStatusCode: res.StatusCode,
118343		},
118344	}
118345	target := &ret
118346	if err := gensupport.DecodeResponse(target, res); err != nil {
118347		return nil, err
118348	}
118349	return ret, nil
118350	// {
118351	//   "description": "Lists the PublicDelegatedPrefixes for a project in the given region.",
118352	//   "httpMethod": "GET",
118353	//   "id": "compute.publicDelegatedPrefixes.list",
118354	//   "parameterOrder": [
118355	//     "project",
118356	//     "region"
118357	//   ],
118358	//   "parameters": {
118359	//     "filter": {
118360	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
118361	//       "location": "query",
118362	//       "type": "string"
118363	//     },
118364	//     "maxResults": {
118365	//       "default": "500",
118366	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
118367	//       "format": "uint32",
118368	//       "location": "query",
118369	//       "minimum": "0",
118370	//       "type": "integer"
118371	//     },
118372	//     "orderBy": {
118373	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
118374	//       "location": "query",
118375	//       "type": "string"
118376	//     },
118377	//     "pageToken": {
118378	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
118379	//       "location": "query",
118380	//       "type": "string"
118381	//     },
118382	//     "project": {
118383	//       "description": "Project ID for this request.",
118384	//       "location": "path",
118385	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118386	//       "required": true,
118387	//       "type": "string"
118388	//     },
118389	//     "region": {
118390	//       "description": "Name of the region of this request.",
118391	//       "location": "path",
118392	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118393	//       "required": true,
118394	//       "type": "string"
118395	//     }
118396	//   },
118397	//   "path": "{project}/regions/{region}/publicDelegatedPrefixes",
118398	//   "response": {
118399	//     "$ref": "PublicDelegatedPrefixList"
118400	//   },
118401	//   "scopes": [
118402	//     "https://www.googleapis.com/auth/cloud-platform",
118403	//     "https://www.googleapis.com/auth/compute",
118404	//     "https://www.googleapis.com/auth/compute.readonly"
118405	//   ]
118406	// }
118407
118408}
118409
118410// Pages invokes f for each page of results.
118411// A non-nil error returned from f will halt the iteration.
118412// The provided context supersedes any context provided to the Context method.
118413func (c *PublicDelegatedPrefixesListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixList) error) error {
118414	c.ctx_ = ctx
118415	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
118416	for {
118417		x, err := c.Do()
118418		if err != nil {
118419			return err
118420		}
118421		if err := f(x); err != nil {
118422			return err
118423		}
118424		if x.NextPageToken == "" {
118425			return nil
118426		}
118427		c.PageToken(x.NextPageToken)
118428	}
118429}
118430
118431// method id "compute.publicDelegatedPrefixes.patch":
118432
118433type PublicDelegatedPrefixesPatchCall struct {
118434	s                     *Service
118435	project               string
118436	region                string
118437	publicDelegatedPrefix string
118438	publicdelegatedprefix *PublicDelegatedPrefix
118439	urlParams_            gensupport.URLParams
118440	ctx_                  context.Context
118441	header_               http.Header
118442}
118443
118444// Patch: Patches the specified PublicDelegatedPrefix resource with the
118445// data included in the request. This method supports PATCH semantics
118446// and uses JSON merge patch format and processing rules.
118447func (r *PublicDelegatedPrefixesService) Patch(project string, region string, publicDelegatedPrefix string, publicdelegatedprefix *PublicDelegatedPrefix) *PublicDelegatedPrefixesPatchCall {
118448	c := &PublicDelegatedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118449	c.project = project
118450	c.region = region
118451	c.publicDelegatedPrefix = publicDelegatedPrefix
118452	c.publicdelegatedprefix = publicdelegatedprefix
118453	return c
118454}
118455
118456// RequestId sets the optional parameter "requestId": An optional
118457// request ID to identify requests. Specify a unique request ID so that
118458// if you must retry your request, the server will know to ignore the
118459// request if it has already been completed.
118460//
118461// For example, consider a situation where you make an initial request
118462// and the request times out. If you make the request again with the
118463// same request ID, the server can check if original operation with the
118464// same request ID was received, and if so, will ignore the second
118465// request. This prevents clients from accidentally creating duplicate
118466// commitments.
118467//
118468// The request ID must be a valid UUID with the exception that zero UUID
118469// is not supported (00000000-0000-0000-0000-000000000000).
118470func (c *PublicDelegatedPrefixesPatchCall) RequestId(requestId string) *PublicDelegatedPrefixesPatchCall {
118471	c.urlParams_.Set("requestId", requestId)
118472	return c
118473}
118474
118475// Fields allows partial responses to be retrieved. See
118476// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118477// for more information.
118478func (c *PublicDelegatedPrefixesPatchCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesPatchCall {
118479	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118480	return c
118481}
118482
118483// Context sets the context to be used in this call's Do method. Any
118484// pending HTTP request will be aborted if the provided context is
118485// canceled.
118486func (c *PublicDelegatedPrefixesPatchCall) Context(ctx context.Context) *PublicDelegatedPrefixesPatchCall {
118487	c.ctx_ = ctx
118488	return c
118489}
118490
118491// Header returns an http.Header that can be modified by the caller to
118492// add HTTP headers to the request.
118493func (c *PublicDelegatedPrefixesPatchCall) Header() http.Header {
118494	if c.header_ == nil {
118495		c.header_ = make(http.Header)
118496	}
118497	return c.header_
118498}
118499
118500func (c *PublicDelegatedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) {
118501	reqHeaders := make(http.Header)
118502	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
118503	for k, v := range c.header_ {
118504		reqHeaders[k] = v
118505	}
118506	reqHeaders.Set("User-Agent", c.s.userAgent())
118507	var body io.Reader = nil
118508	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
118509	if err != nil {
118510		return nil, err
118511	}
118512	reqHeaders.Set("Content-Type", "application/json")
118513	c.urlParams_.Set("alt", alt)
118514	c.urlParams_.Set("prettyPrint", "false")
118515	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}")
118516	urls += "?" + c.urlParams_.Encode()
118517	req, err := http.NewRequest("PATCH", urls, body)
118518	if err != nil {
118519		return nil, err
118520	}
118521	req.Header = reqHeaders
118522	googleapi.Expand(req.URL, map[string]string{
118523		"project":               c.project,
118524		"region":                c.region,
118525		"publicDelegatedPrefix": c.publicDelegatedPrefix,
118526	})
118527	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118528}
118529
118530// Do executes the "compute.publicDelegatedPrefixes.patch" call.
118531// Exactly one of *Operation or error will be non-nil. Any non-2xx
118532// status code is an error. Response headers are in either
118533// *Operation.ServerResponse.Header or (if a response was returned at
118534// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118535// to check whether the returned error was because
118536// http.StatusNotModified was returned.
118537func (c *PublicDelegatedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118538	gensupport.SetOptions(c.urlParams_, opts...)
118539	res, err := c.doRequest("json")
118540	if res != nil && res.StatusCode == http.StatusNotModified {
118541		if res.Body != nil {
118542			res.Body.Close()
118543		}
118544		return nil, &googleapi.Error{
118545			Code:   res.StatusCode,
118546			Header: res.Header,
118547		}
118548	}
118549	if err != nil {
118550		return nil, err
118551	}
118552	defer googleapi.CloseBody(res)
118553	if err := googleapi.CheckResponse(res); err != nil {
118554		return nil, err
118555	}
118556	ret := &Operation{
118557		ServerResponse: googleapi.ServerResponse{
118558			Header:         res.Header,
118559			HTTPStatusCode: res.StatusCode,
118560		},
118561	}
118562	target := &ret
118563	if err := gensupport.DecodeResponse(target, res); err != nil {
118564		return nil, err
118565	}
118566	return ret, nil
118567	// {
118568	//   "description": "Patches the specified PublicDelegatedPrefix resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.",
118569	//   "httpMethod": "PATCH",
118570	//   "id": "compute.publicDelegatedPrefixes.patch",
118571	//   "parameterOrder": [
118572	//     "project",
118573	//     "region",
118574	//     "publicDelegatedPrefix"
118575	//   ],
118576	//   "parameters": {
118577	//     "project": {
118578	//       "description": "Project ID for this request.",
118579	//       "location": "path",
118580	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118581	//       "required": true,
118582	//       "type": "string"
118583	//     },
118584	//     "publicDelegatedPrefix": {
118585	//       "description": "Name of the PublicDelegatedPrefix resource to patch.",
118586	//       "location": "path",
118587	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
118588	//       "required": true,
118589	//       "type": "string"
118590	//     },
118591	//     "region": {
118592	//       "description": "Name of the region for this request.",
118593	//       "location": "path",
118594	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118595	//       "required": true,
118596	//       "type": "string"
118597	//     },
118598	//     "requestId": {
118599	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
118600	//       "location": "query",
118601	//       "type": "string"
118602	//     }
118603	//   },
118604	//   "path": "{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
118605	//   "request": {
118606	//     "$ref": "PublicDelegatedPrefix"
118607	//   },
118608	//   "response": {
118609	//     "$ref": "Operation"
118610	//   },
118611	//   "scopes": [
118612	//     "https://www.googleapis.com/auth/cloud-platform",
118613	//     "https://www.googleapis.com/auth/compute"
118614	//   ]
118615	// }
118616
118617}
118618
118619// method id "compute.regionAutoscalers.delete":
118620
118621type RegionAutoscalersDeleteCall struct {
118622	s          *Service
118623	project    string
118624	region     string
118625	autoscaler string
118626	urlParams_ gensupport.URLParams
118627	ctx_       context.Context
118628	header_    http.Header
118629}
118630
118631// Delete: Deletes the specified autoscaler.
118632func (r *RegionAutoscalersService) Delete(project string, region string, autoscaler string) *RegionAutoscalersDeleteCall {
118633	c := &RegionAutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118634	c.project = project
118635	c.region = region
118636	c.autoscaler = autoscaler
118637	return c
118638}
118639
118640// RequestId sets the optional parameter "requestId": An optional
118641// request ID to identify requests. Specify a unique request ID so that
118642// if you must retry your request, the server will know to ignore the
118643// request if it has already been completed.
118644//
118645// For example, consider a situation where you make an initial request
118646// and the request times out. If you make the request again with the
118647// same request ID, the server can check if original operation with the
118648// same request ID was received, and if so, will ignore the second
118649// request. This prevents clients from accidentally creating duplicate
118650// commitments.
118651//
118652// The request ID must be a valid UUID with the exception that zero UUID
118653// is not supported (00000000-0000-0000-0000-000000000000).
118654func (c *RegionAutoscalersDeleteCall) RequestId(requestId string) *RegionAutoscalersDeleteCall {
118655	c.urlParams_.Set("requestId", requestId)
118656	return c
118657}
118658
118659// Fields allows partial responses to be retrieved. See
118660// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118661// for more information.
118662func (c *RegionAutoscalersDeleteCall) Fields(s ...googleapi.Field) *RegionAutoscalersDeleteCall {
118663	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118664	return c
118665}
118666
118667// Context sets the context to be used in this call's Do method. Any
118668// pending HTTP request will be aborted if the provided context is
118669// canceled.
118670func (c *RegionAutoscalersDeleteCall) Context(ctx context.Context) *RegionAutoscalersDeleteCall {
118671	c.ctx_ = ctx
118672	return c
118673}
118674
118675// Header returns an http.Header that can be modified by the caller to
118676// add HTTP headers to the request.
118677func (c *RegionAutoscalersDeleteCall) Header() http.Header {
118678	if c.header_ == nil {
118679		c.header_ = make(http.Header)
118680	}
118681	return c.header_
118682}
118683
118684func (c *RegionAutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) {
118685	reqHeaders := make(http.Header)
118686	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
118687	for k, v := range c.header_ {
118688		reqHeaders[k] = v
118689	}
118690	reqHeaders.Set("User-Agent", c.s.userAgent())
118691	var body io.Reader = nil
118692	c.urlParams_.Set("alt", alt)
118693	c.urlParams_.Set("prettyPrint", "false")
118694	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers/{autoscaler}")
118695	urls += "?" + c.urlParams_.Encode()
118696	req, err := http.NewRequest("DELETE", urls, body)
118697	if err != nil {
118698		return nil, err
118699	}
118700	req.Header = reqHeaders
118701	googleapi.Expand(req.URL, map[string]string{
118702		"project":    c.project,
118703		"region":     c.region,
118704		"autoscaler": c.autoscaler,
118705	})
118706	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118707}
118708
118709// Do executes the "compute.regionAutoscalers.delete" call.
118710// Exactly one of *Operation or error will be non-nil. Any non-2xx
118711// status code is an error. Response headers are in either
118712// *Operation.ServerResponse.Header or (if a response was returned at
118713// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118714// to check whether the returned error was because
118715// http.StatusNotModified was returned.
118716func (c *RegionAutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118717	gensupport.SetOptions(c.urlParams_, opts...)
118718	res, err := c.doRequest("json")
118719	if res != nil && res.StatusCode == http.StatusNotModified {
118720		if res.Body != nil {
118721			res.Body.Close()
118722		}
118723		return nil, &googleapi.Error{
118724			Code:   res.StatusCode,
118725			Header: res.Header,
118726		}
118727	}
118728	if err != nil {
118729		return nil, err
118730	}
118731	defer googleapi.CloseBody(res)
118732	if err := googleapi.CheckResponse(res); err != nil {
118733		return nil, err
118734	}
118735	ret := &Operation{
118736		ServerResponse: googleapi.ServerResponse{
118737			Header:         res.Header,
118738			HTTPStatusCode: res.StatusCode,
118739		},
118740	}
118741	target := &ret
118742	if err := gensupport.DecodeResponse(target, res); err != nil {
118743		return nil, err
118744	}
118745	return ret, nil
118746	// {
118747	//   "description": "Deletes the specified autoscaler.",
118748	//   "httpMethod": "DELETE",
118749	//   "id": "compute.regionAutoscalers.delete",
118750	//   "parameterOrder": [
118751	//     "project",
118752	//     "region",
118753	//     "autoscaler"
118754	//   ],
118755	//   "parameters": {
118756	//     "autoscaler": {
118757	//       "description": "Name of the autoscaler to delete.",
118758	//       "location": "path",
118759	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
118760	//       "required": true,
118761	//       "type": "string"
118762	//     },
118763	//     "project": {
118764	//       "description": "Project ID for this request.",
118765	//       "location": "path",
118766	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118767	//       "required": true,
118768	//       "type": "string"
118769	//     },
118770	//     "region": {
118771	//       "description": "Name of the region scoping this request.",
118772	//       "location": "path",
118773	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118774	//       "required": true,
118775	//       "type": "string"
118776	//     },
118777	//     "requestId": {
118778	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
118779	//       "location": "query",
118780	//       "type": "string"
118781	//     }
118782	//   },
118783	//   "path": "{project}/regions/{region}/autoscalers/{autoscaler}",
118784	//   "response": {
118785	//     "$ref": "Operation"
118786	//   },
118787	//   "scopes": [
118788	//     "https://www.googleapis.com/auth/cloud-platform",
118789	//     "https://www.googleapis.com/auth/compute"
118790	//   ]
118791	// }
118792
118793}
118794
118795// method id "compute.regionAutoscalers.get":
118796
118797type RegionAutoscalersGetCall struct {
118798	s            *Service
118799	project      string
118800	region       string
118801	autoscaler   string
118802	urlParams_   gensupport.URLParams
118803	ifNoneMatch_ string
118804	ctx_         context.Context
118805	header_      http.Header
118806}
118807
118808// Get: Returns the specified autoscaler.
118809func (r *RegionAutoscalersService) Get(project string, region string, autoscaler string) *RegionAutoscalersGetCall {
118810	c := &RegionAutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118811	c.project = project
118812	c.region = region
118813	c.autoscaler = autoscaler
118814	return c
118815}
118816
118817// Fields allows partial responses to be retrieved. See
118818// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118819// for more information.
118820func (c *RegionAutoscalersGetCall) Fields(s ...googleapi.Field) *RegionAutoscalersGetCall {
118821	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118822	return c
118823}
118824
118825// IfNoneMatch sets the optional parameter which makes the operation
118826// fail if the object's ETag matches the given value. This is useful for
118827// getting updates only after the object has changed since the last
118828// request. Use googleapi.IsNotModified to check whether the response
118829// error from Do is the result of In-None-Match.
118830func (c *RegionAutoscalersGetCall) IfNoneMatch(entityTag string) *RegionAutoscalersGetCall {
118831	c.ifNoneMatch_ = entityTag
118832	return c
118833}
118834
118835// Context sets the context to be used in this call's Do method. Any
118836// pending HTTP request will be aborted if the provided context is
118837// canceled.
118838func (c *RegionAutoscalersGetCall) Context(ctx context.Context) *RegionAutoscalersGetCall {
118839	c.ctx_ = ctx
118840	return c
118841}
118842
118843// Header returns an http.Header that can be modified by the caller to
118844// add HTTP headers to the request.
118845func (c *RegionAutoscalersGetCall) Header() http.Header {
118846	if c.header_ == nil {
118847		c.header_ = make(http.Header)
118848	}
118849	return c.header_
118850}
118851
118852func (c *RegionAutoscalersGetCall) doRequest(alt string) (*http.Response, error) {
118853	reqHeaders := make(http.Header)
118854	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
118855	for k, v := range c.header_ {
118856		reqHeaders[k] = v
118857	}
118858	reqHeaders.Set("User-Agent", c.s.userAgent())
118859	if c.ifNoneMatch_ != "" {
118860		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
118861	}
118862	var body io.Reader = nil
118863	c.urlParams_.Set("alt", alt)
118864	c.urlParams_.Set("prettyPrint", "false")
118865	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers/{autoscaler}")
118866	urls += "?" + c.urlParams_.Encode()
118867	req, err := http.NewRequest("GET", urls, body)
118868	if err != nil {
118869		return nil, err
118870	}
118871	req.Header = reqHeaders
118872	googleapi.Expand(req.URL, map[string]string{
118873		"project":    c.project,
118874		"region":     c.region,
118875		"autoscaler": c.autoscaler,
118876	})
118877	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118878}
118879
118880// Do executes the "compute.regionAutoscalers.get" call.
118881// Exactly one of *Autoscaler or error will be non-nil. Any non-2xx
118882// status code is an error. Response headers are in either
118883// *Autoscaler.ServerResponse.Header or (if a response was returned at
118884// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118885// to check whether the returned error was because
118886// http.StatusNotModified was returned.
118887func (c *RegionAutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) {
118888	gensupport.SetOptions(c.urlParams_, opts...)
118889	res, err := c.doRequest("json")
118890	if res != nil && res.StatusCode == http.StatusNotModified {
118891		if res.Body != nil {
118892			res.Body.Close()
118893		}
118894		return nil, &googleapi.Error{
118895			Code:   res.StatusCode,
118896			Header: res.Header,
118897		}
118898	}
118899	if err != nil {
118900		return nil, err
118901	}
118902	defer googleapi.CloseBody(res)
118903	if err := googleapi.CheckResponse(res); err != nil {
118904		return nil, err
118905	}
118906	ret := &Autoscaler{
118907		ServerResponse: googleapi.ServerResponse{
118908			Header:         res.Header,
118909			HTTPStatusCode: res.StatusCode,
118910		},
118911	}
118912	target := &ret
118913	if err := gensupport.DecodeResponse(target, res); err != nil {
118914		return nil, err
118915	}
118916	return ret, nil
118917	// {
118918	//   "description": "Returns the specified autoscaler.",
118919	//   "httpMethod": "GET",
118920	//   "id": "compute.regionAutoscalers.get",
118921	//   "parameterOrder": [
118922	//     "project",
118923	//     "region",
118924	//     "autoscaler"
118925	//   ],
118926	//   "parameters": {
118927	//     "autoscaler": {
118928	//       "description": "Name of the autoscaler to return.",
118929	//       "location": "path",
118930	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
118931	//       "required": true,
118932	//       "type": "string"
118933	//     },
118934	//     "project": {
118935	//       "description": "Project ID for this request.",
118936	//       "location": "path",
118937	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118938	//       "required": true,
118939	//       "type": "string"
118940	//     },
118941	//     "region": {
118942	//       "description": "Name of the region scoping this request.",
118943	//       "location": "path",
118944	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118945	//       "required": true,
118946	//       "type": "string"
118947	//     }
118948	//   },
118949	//   "path": "{project}/regions/{region}/autoscalers/{autoscaler}",
118950	//   "response": {
118951	//     "$ref": "Autoscaler"
118952	//   },
118953	//   "scopes": [
118954	//     "https://www.googleapis.com/auth/cloud-platform",
118955	//     "https://www.googleapis.com/auth/compute",
118956	//     "https://www.googleapis.com/auth/compute.readonly"
118957	//   ]
118958	// }
118959
118960}
118961
118962// method id "compute.regionAutoscalers.insert":
118963
118964type RegionAutoscalersInsertCall struct {
118965	s          *Service
118966	project    string
118967	region     string
118968	autoscaler *Autoscaler
118969	urlParams_ gensupport.URLParams
118970	ctx_       context.Context
118971	header_    http.Header
118972}
118973
118974// Insert: Creates an autoscaler in the specified project using the data
118975// included in the request.
118976func (r *RegionAutoscalersService) Insert(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersInsertCall {
118977	c := &RegionAutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118978	c.project = project
118979	c.region = region
118980	c.autoscaler = autoscaler
118981	return c
118982}
118983
118984// RequestId sets the optional parameter "requestId": An optional
118985// request ID to identify requests. Specify a unique request ID so that
118986// if you must retry your request, the server will know to ignore the
118987// request if it has already been completed.
118988//
118989// For example, consider a situation where you make an initial request
118990// and the request times out. If you make the request again with the
118991// same request ID, the server can check if original operation with the
118992// same request ID was received, and if so, will ignore the second
118993// request. This prevents clients from accidentally creating duplicate
118994// commitments.
118995//
118996// The request ID must be a valid UUID with the exception that zero UUID
118997// is not supported (00000000-0000-0000-0000-000000000000).
118998func (c *RegionAutoscalersInsertCall) RequestId(requestId string) *RegionAutoscalersInsertCall {
118999	c.urlParams_.Set("requestId", requestId)
119000	return c
119001}
119002
119003// Fields allows partial responses to be retrieved. See
119004// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119005// for more information.
119006func (c *RegionAutoscalersInsertCall) Fields(s ...googleapi.Field) *RegionAutoscalersInsertCall {
119007	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119008	return c
119009}
119010
119011// Context sets the context to be used in this call's Do method. Any
119012// pending HTTP request will be aborted if the provided context is
119013// canceled.
119014func (c *RegionAutoscalersInsertCall) Context(ctx context.Context) *RegionAutoscalersInsertCall {
119015	c.ctx_ = ctx
119016	return c
119017}
119018
119019// Header returns an http.Header that can be modified by the caller to
119020// add HTTP headers to the request.
119021func (c *RegionAutoscalersInsertCall) Header() http.Header {
119022	if c.header_ == nil {
119023		c.header_ = make(http.Header)
119024	}
119025	return c.header_
119026}
119027
119028func (c *RegionAutoscalersInsertCall) doRequest(alt string) (*http.Response, error) {
119029	reqHeaders := make(http.Header)
119030	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
119031	for k, v := range c.header_ {
119032		reqHeaders[k] = v
119033	}
119034	reqHeaders.Set("User-Agent", c.s.userAgent())
119035	var body io.Reader = nil
119036	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
119037	if err != nil {
119038		return nil, err
119039	}
119040	reqHeaders.Set("Content-Type", "application/json")
119041	c.urlParams_.Set("alt", alt)
119042	c.urlParams_.Set("prettyPrint", "false")
119043	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
119044	urls += "?" + c.urlParams_.Encode()
119045	req, err := http.NewRequest("POST", urls, body)
119046	if err != nil {
119047		return nil, err
119048	}
119049	req.Header = reqHeaders
119050	googleapi.Expand(req.URL, map[string]string{
119051		"project": c.project,
119052		"region":  c.region,
119053	})
119054	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119055}
119056
119057// Do executes the "compute.regionAutoscalers.insert" call.
119058// Exactly one of *Operation or error will be non-nil. Any non-2xx
119059// status code is an error. Response headers are in either
119060// *Operation.ServerResponse.Header or (if a response was returned at
119061// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119062// to check whether the returned error was because
119063// http.StatusNotModified was returned.
119064func (c *RegionAutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119065	gensupport.SetOptions(c.urlParams_, opts...)
119066	res, err := c.doRequest("json")
119067	if res != nil && res.StatusCode == http.StatusNotModified {
119068		if res.Body != nil {
119069			res.Body.Close()
119070		}
119071		return nil, &googleapi.Error{
119072			Code:   res.StatusCode,
119073			Header: res.Header,
119074		}
119075	}
119076	if err != nil {
119077		return nil, err
119078	}
119079	defer googleapi.CloseBody(res)
119080	if err := googleapi.CheckResponse(res); err != nil {
119081		return nil, err
119082	}
119083	ret := &Operation{
119084		ServerResponse: googleapi.ServerResponse{
119085			Header:         res.Header,
119086			HTTPStatusCode: res.StatusCode,
119087		},
119088	}
119089	target := &ret
119090	if err := gensupport.DecodeResponse(target, res); err != nil {
119091		return nil, err
119092	}
119093	return ret, nil
119094	// {
119095	//   "description": "Creates an autoscaler in the specified project using the data included in the request.",
119096	//   "httpMethod": "POST",
119097	//   "id": "compute.regionAutoscalers.insert",
119098	//   "parameterOrder": [
119099	//     "project",
119100	//     "region"
119101	//   ],
119102	//   "parameters": {
119103	//     "project": {
119104	//       "description": "Project ID for this request.",
119105	//       "location": "path",
119106	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119107	//       "required": true,
119108	//       "type": "string"
119109	//     },
119110	//     "region": {
119111	//       "description": "Name of the region scoping this request.",
119112	//       "location": "path",
119113	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119114	//       "required": true,
119115	//       "type": "string"
119116	//     },
119117	//     "requestId": {
119118	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
119119	//       "location": "query",
119120	//       "type": "string"
119121	//     }
119122	//   },
119123	//   "path": "{project}/regions/{region}/autoscalers",
119124	//   "request": {
119125	//     "$ref": "Autoscaler"
119126	//   },
119127	//   "response": {
119128	//     "$ref": "Operation"
119129	//   },
119130	//   "scopes": [
119131	//     "https://www.googleapis.com/auth/cloud-platform",
119132	//     "https://www.googleapis.com/auth/compute"
119133	//   ]
119134	// }
119135
119136}
119137
119138// method id "compute.regionAutoscalers.list":
119139
119140type RegionAutoscalersListCall struct {
119141	s            *Service
119142	project      string
119143	region       string
119144	urlParams_   gensupport.URLParams
119145	ifNoneMatch_ string
119146	ctx_         context.Context
119147	header_      http.Header
119148}
119149
119150// List: Retrieves a list of autoscalers contained within the specified
119151// region.
119152func (r *RegionAutoscalersService) List(project string, region string) *RegionAutoscalersListCall {
119153	c := &RegionAutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119154	c.project = project
119155	c.region = region
119156	return c
119157}
119158
119159// Filter sets the optional parameter "filter": A filter expression that
119160// filters resources listed in the response. The expression must specify
119161// the field name, a comparison operator, and the value that you want to
119162// use for filtering. The value must be a string, a number, or a
119163// boolean. The comparison operator must be either =, !=, >, or <.
119164//
119165// For example, if you are filtering Compute Engine instances, you can
119166// exclude instances named example-instance by specifying name !=
119167// example-instance.
119168//
119169// You can also filter nested fields. For example, you could specify
119170// scheduling.automaticRestart = false to include instances only if they
119171// are not scheduled for automatic restarts. You can use filtering on
119172// nested fields to filter based on resource labels.
119173//
119174// To filter on multiple expressions, provide each separate expression
119175// within parentheses. For example, (scheduling.automaticRestart = true)
119176// (cpuPlatform = "Intel Skylake"). By default, each expression is an
119177// AND expression. However, you can include AND and OR expressions
119178// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
119179// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
119180// true).
119181func (c *RegionAutoscalersListCall) Filter(filter string) *RegionAutoscalersListCall {
119182	c.urlParams_.Set("filter", filter)
119183	return c
119184}
119185
119186// MaxResults sets the optional parameter "maxResults": The maximum
119187// number of results per page that should be returned. If the number of
119188// available results is larger than maxResults, Compute Engine returns a
119189// nextPageToken that can be used to get the next page of results in
119190// subsequent list requests. Acceptable values are 0 to 500, inclusive.
119191// (Default: 500)
119192func (c *RegionAutoscalersListCall) MaxResults(maxResults int64) *RegionAutoscalersListCall {
119193	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
119194	return c
119195}
119196
119197// OrderBy sets the optional parameter "orderBy": Sorts list results by
119198// a certain order. By default, results are returned in alphanumerical
119199// order based on the resource name.
119200//
119201// You can also sort results in descending order based on the creation
119202// timestamp using orderBy="creationTimestamp desc". This sorts results
119203// based on the creationTimestamp field in reverse chronological order
119204// (newest result first). Use this to sort resources like operations so
119205// that the newest operation is returned first.
119206//
119207// Currently, only sorting by name or creationTimestamp desc is
119208// supported.
119209func (c *RegionAutoscalersListCall) OrderBy(orderBy string) *RegionAutoscalersListCall {
119210	c.urlParams_.Set("orderBy", orderBy)
119211	return c
119212}
119213
119214// PageToken sets the optional parameter "pageToken": Specifies a page
119215// token to use. Set pageToken to the nextPageToken returned by a
119216// previous list request to get the next page of results.
119217func (c *RegionAutoscalersListCall) PageToken(pageToken string) *RegionAutoscalersListCall {
119218	c.urlParams_.Set("pageToken", pageToken)
119219	return c
119220}
119221
119222// Fields allows partial responses to be retrieved. See
119223// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119224// for more information.
119225func (c *RegionAutoscalersListCall) Fields(s ...googleapi.Field) *RegionAutoscalersListCall {
119226	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119227	return c
119228}
119229
119230// IfNoneMatch sets the optional parameter which makes the operation
119231// fail if the object's ETag matches the given value. This is useful for
119232// getting updates only after the object has changed since the last
119233// request. Use googleapi.IsNotModified to check whether the response
119234// error from Do is the result of In-None-Match.
119235func (c *RegionAutoscalersListCall) IfNoneMatch(entityTag string) *RegionAutoscalersListCall {
119236	c.ifNoneMatch_ = entityTag
119237	return c
119238}
119239
119240// Context sets the context to be used in this call's Do method. Any
119241// pending HTTP request will be aborted if the provided context is
119242// canceled.
119243func (c *RegionAutoscalersListCall) Context(ctx context.Context) *RegionAutoscalersListCall {
119244	c.ctx_ = ctx
119245	return c
119246}
119247
119248// Header returns an http.Header that can be modified by the caller to
119249// add HTTP headers to the request.
119250func (c *RegionAutoscalersListCall) Header() http.Header {
119251	if c.header_ == nil {
119252		c.header_ = make(http.Header)
119253	}
119254	return c.header_
119255}
119256
119257func (c *RegionAutoscalersListCall) doRequest(alt string) (*http.Response, error) {
119258	reqHeaders := make(http.Header)
119259	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
119260	for k, v := range c.header_ {
119261		reqHeaders[k] = v
119262	}
119263	reqHeaders.Set("User-Agent", c.s.userAgent())
119264	if c.ifNoneMatch_ != "" {
119265		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
119266	}
119267	var body io.Reader = nil
119268	c.urlParams_.Set("alt", alt)
119269	c.urlParams_.Set("prettyPrint", "false")
119270	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
119271	urls += "?" + c.urlParams_.Encode()
119272	req, err := http.NewRequest("GET", urls, body)
119273	if err != nil {
119274		return nil, err
119275	}
119276	req.Header = reqHeaders
119277	googleapi.Expand(req.URL, map[string]string{
119278		"project": c.project,
119279		"region":  c.region,
119280	})
119281	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119282}
119283
119284// Do executes the "compute.regionAutoscalers.list" call.
119285// Exactly one of *RegionAutoscalerList or error will be non-nil. Any
119286// non-2xx status code is an error. Response headers are in either
119287// *RegionAutoscalerList.ServerResponse.Header or (if a response was
119288// returned at all) in error.(*googleapi.Error).Header. Use
119289// googleapi.IsNotModified to check whether the returned error was
119290// because http.StatusNotModified was returned.
119291func (c *RegionAutoscalersListCall) Do(opts ...googleapi.CallOption) (*RegionAutoscalerList, error) {
119292	gensupport.SetOptions(c.urlParams_, opts...)
119293	res, err := c.doRequest("json")
119294	if res != nil && res.StatusCode == http.StatusNotModified {
119295		if res.Body != nil {
119296			res.Body.Close()
119297		}
119298		return nil, &googleapi.Error{
119299			Code:   res.StatusCode,
119300			Header: res.Header,
119301		}
119302	}
119303	if err != nil {
119304		return nil, err
119305	}
119306	defer googleapi.CloseBody(res)
119307	if err := googleapi.CheckResponse(res); err != nil {
119308		return nil, err
119309	}
119310	ret := &RegionAutoscalerList{
119311		ServerResponse: googleapi.ServerResponse{
119312			Header:         res.Header,
119313			HTTPStatusCode: res.StatusCode,
119314		},
119315	}
119316	target := &ret
119317	if err := gensupport.DecodeResponse(target, res); err != nil {
119318		return nil, err
119319	}
119320	return ret, nil
119321	// {
119322	//   "description": "Retrieves a list of autoscalers contained within the specified region.",
119323	//   "httpMethod": "GET",
119324	//   "id": "compute.regionAutoscalers.list",
119325	//   "parameterOrder": [
119326	//     "project",
119327	//     "region"
119328	//   ],
119329	//   "parameters": {
119330	//     "filter": {
119331	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
119332	//       "location": "query",
119333	//       "type": "string"
119334	//     },
119335	//     "maxResults": {
119336	//       "default": "500",
119337	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
119338	//       "format": "uint32",
119339	//       "location": "query",
119340	//       "minimum": "0",
119341	//       "type": "integer"
119342	//     },
119343	//     "orderBy": {
119344	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
119345	//       "location": "query",
119346	//       "type": "string"
119347	//     },
119348	//     "pageToken": {
119349	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
119350	//       "location": "query",
119351	//       "type": "string"
119352	//     },
119353	//     "project": {
119354	//       "description": "Project ID for this request.",
119355	//       "location": "path",
119356	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119357	//       "required": true,
119358	//       "type": "string"
119359	//     },
119360	//     "region": {
119361	//       "description": "Name of the region scoping this request.",
119362	//       "location": "path",
119363	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119364	//       "required": true,
119365	//       "type": "string"
119366	//     }
119367	//   },
119368	//   "path": "{project}/regions/{region}/autoscalers",
119369	//   "response": {
119370	//     "$ref": "RegionAutoscalerList"
119371	//   },
119372	//   "scopes": [
119373	//     "https://www.googleapis.com/auth/cloud-platform",
119374	//     "https://www.googleapis.com/auth/compute",
119375	//     "https://www.googleapis.com/auth/compute.readonly"
119376	//   ]
119377	// }
119378
119379}
119380
119381// Pages invokes f for each page of results.
119382// A non-nil error returned from f will halt the iteration.
119383// The provided context supersedes any context provided to the Context method.
119384func (c *RegionAutoscalersListCall) Pages(ctx context.Context, f func(*RegionAutoscalerList) error) error {
119385	c.ctx_ = ctx
119386	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
119387	for {
119388		x, err := c.Do()
119389		if err != nil {
119390			return err
119391		}
119392		if err := f(x); err != nil {
119393			return err
119394		}
119395		if x.NextPageToken == "" {
119396			return nil
119397		}
119398		c.PageToken(x.NextPageToken)
119399	}
119400}
119401
119402// method id "compute.regionAutoscalers.patch":
119403
119404type RegionAutoscalersPatchCall struct {
119405	s          *Service
119406	project    string
119407	region     string
119408	autoscaler *Autoscaler
119409	urlParams_ gensupport.URLParams
119410	ctx_       context.Context
119411	header_    http.Header
119412}
119413
119414// Patch: Updates an autoscaler in the specified project using the data
119415// included in the request. This method supports PATCH semantics and
119416// uses the JSON merge patch format and processing rules.
119417func (r *RegionAutoscalersService) Patch(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersPatchCall {
119418	c := &RegionAutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119419	c.project = project
119420	c.region = region
119421	c.autoscaler = autoscaler
119422	return c
119423}
119424
119425// Autoscaler sets the optional parameter "autoscaler": Name of the
119426// autoscaler to patch.
119427func (c *RegionAutoscalersPatchCall) Autoscaler(autoscaler string) *RegionAutoscalersPatchCall {
119428	c.urlParams_.Set("autoscaler", autoscaler)
119429	return c
119430}
119431
119432// RequestId sets the optional parameter "requestId": An optional
119433// request ID to identify requests. Specify a unique request ID so that
119434// if you must retry your request, the server will know to ignore the
119435// request if it has already been completed.
119436//
119437// For example, consider a situation where you make an initial request
119438// and the request times out. If you make the request again with the
119439// same request ID, the server can check if original operation with the
119440// same request ID was received, and if so, will ignore the second
119441// request. This prevents clients from accidentally creating duplicate
119442// commitments.
119443//
119444// The request ID must be a valid UUID with the exception that zero UUID
119445// is not supported (00000000-0000-0000-0000-000000000000).
119446func (c *RegionAutoscalersPatchCall) RequestId(requestId string) *RegionAutoscalersPatchCall {
119447	c.urlParams_.Set("requestId", requestId)
119448	return c
119449}
119450
119451// Fields allows partial responses to be retrieved. See
119452// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119453// for more information.
119454func (c *RegionAutoscalersPatchCall) Fields(s ...googleapi.Field) *RegionAutoscalersPatchCall {
119455	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119456	return c
119457}
119458
119459// Context sets the context to be used in this call's Do method. Any
119460// pending HTTP request will be aborted if the provided context is
119461// canceled.
119462func (c *RegionAutoscalersPatchCall) Context(ctx context.Context) *RegionAutoscalersPatchCall {
119463	c.ctx_ = ctx
119464	return c
119465}
119466
119467// Header returns an http.Header that can be modified by the caller to
119468// add HTTP headers to the request.
119469func (c *RegionAutoscalersPatchCall) Header() http.Header {
119470	if c.header_ == nil {
119471		c.header_ = make(http.Header)
119472	}
119473	return c.header_
119474}
119475
119476func (c *RegionAutoscalersPatchCall) doRequest(alt string) (*http.Response, error) {
119477	reqHeaders := make(http.Header)
119478	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
119479	for k, v := range c.header_ {
119480		reqHeaders[k] = v
119481	}
119482	reqHeaders.Set("User-Agent", c.s.userAgent())
119483	var body io.Reader = nil
119484	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
119485	if err != nil {
119486		return nil, err
119487	}
119488	reqHeaders.Set("Content-Type", "application/json")
119489	c.urlParams_.Set("alt", alt)
119490	c.urlParams_.Set("prettyPrint", "false")
119491	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
119492	urls += "?" + c.urlParams_.Encode()
119493	req, err := http.NewRequest("PATCH", urls, body)
119494	if err != nil {
119495		return nil, err
119496	}
119497	req.Header = reqHeaders
119498	googleapi.Expand(req.URL, map[string]string{
119499		"project": c.project,
119500		"region":  c.region,
119501	})
119502	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119503}
119504
119505// Do executes the "compute.regionAutoscalers.patch" call.
119506// Exactly one of *Operation or error will be non-nil. Any non-2xx
119507// status code is an error. Response headers are in either
119508// *Operation.ServerResponse.Header or (if a response was returned at
119509// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119510// to check whether the returned error was because
119511// http.StatusNotModified was returned.
119512func (c *RegionAutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119513	gensupport.SetOptions(c.urlParams_, opts...)
119514	res, err := c.doRequest("json")
119515	if res != nil && res.StatusCode == http.StatusNotModified {
119516		if res.Body != nil {
119517			res.Body.Close()
119518		}
119519		return nil, &googleapi.Error{
119520			Code:   res.StatusCode,
119521			Header: res.Header,
119522		}
119523	}
119524	if err != nil {
119525		return nil, err
119526	}
119527	defer googleapi.CloseBody(res)
119528	if err := googleapi.CheckResponse(res); err != nil {
119529		return nil, err
119530	}
119531	ret := &Operation{
119532		ServerResponse: googleapi.ServerResponse{
119533			Header:         res.Header,
119534			HTTPStatusCode: res.StatusCode,
119535		},
119536	}
119537	target := &ret
119538	if err := gensupport.DecodeResponse(target, res); err != nil {
119539		return nil, err
119540	}
119541	return ret, nil
119542	// {
119543	//   "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.",
119544	//   "httpMethod": "PATCH",
119545	//   "id": "compute.regionAutoscalers.patch",
119546	//   "parameterOrder": [
119547	//     "project",
119548	//     "region"
119549	//   ],
119550	//   "parameters": {
119551	//     "autoscaler": {
119552	//       "description": "Name of the autoscaler to patch.",
119553	//       "location": "query",
119554	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
119555	//       "type": "string"
119556	//     },
119557	//     "project": {
119558	//       "description": "Project ID for this request.",
119559	//       "location": "path",
119560	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119561	//       "required": true,
119562	//       "type": "string"
119563	//     },
119564	//     "region": {
119565	//       "description": "Name of the region scoping this request.",
119566	//       "location": "path",
119567	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119568	//       "required": true,
119569	//       "type": "string"
119570	//     },
119571	//     "requestId": {
119572	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
119573	//       "location": "query",
119574	//       "type": "string"
119575	//     }
119576	//   },
119577	//   "path": "{project}/regions/{region}/autoscalers",
119578	//   "request": {
119579	//     "$ref": "Autoscaler"
119580	//   },
119581	//   "response": {
119582	//     "$ref": "Operation"
119583	//   },
119584	//   "scopes": [
119585	//     "https://www.googleapis.com/auth/cloud-platform",
119586	//     "https://www.googleapis.com/auth/compute"
119587	//   ]
119588	// }
119589
119590}
119591
119592// method id "compute.regionAutoscalers.testIamPermissions":
119593
119594type RegionAutoscalersTestIamPermissionsCall struct {
119595	s                      *Service
119596	project                string
119597	region                 string
119598	resource               string
119599	testpermissionsrequest *TestPermissionsRequest
119600	urlParams_             gensupport.URLParams
119601	ctx_                   context.Context
119602	header_                http.Header
119603}
119604
119605// TestIamPermissions: Returns permissions that a caller has on the
119606// specified resource.
119607func (r *RegionAutoscalersService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionAutoscalersTestIamPermissionsCall {
119608	c := &RegionAutoscalersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119609	c.project = project
119610	c.region = region
119611	c.resource = resource
119612	c.testpermissionsrequest = testpermissionsrequest
119613	return c
119614}
119615
119616// Fields allows partial responses to be retrieved. See
119617// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119618// for more information.
119619func (c *RegionAutoscalersTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionAutoscalersTestIamPermissionsCall {
119620	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119621	return c
119622}
119623
119624// Context sets the context to be used in this call's Do method. Any
119625// pending HTTP request will be aborted if the provided context is
119626// canceled.
119627func (c *RegionAutoscalersTestIamPermissionsCall) Context(ctx context.Context) *RegionAutoscalersTestIamPermissionsCall {
119628	c.ctx_ = ctx
119629	return c
119630}
119631
119632// Header returns an http.Header that can be modified by the caller to
119633// add HTTP headers to the request.
119634func (c *RegionAutoscalersTestIamPermissionsCall) Header() http.Header {
119635	if c.header_ == nil {
119636		c.header_ = make(http.Header)
119637	}
119638	return c.header_
119639}
119640
119641func (c *RegionAutoscalersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
119642	reqHeaders := make(http.Header)
119643	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
119644	for k, v := range c.header_ {
119645		reqHeaders[k] = v
119646	}
119647	reqHeaders.Set("User-Agent", c.s.userAgent())
119648	var body io.Reader = nil
119649	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
119650	if err != nil {
119651		return nil, err
119652	}
119653	reqHeaders.Set("Content-Type", "application/json")
119654	c.urlParams_.Set("alt", alt)
119655	c.urlParams_.Set("prettyPrint", "false")
119656	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers/{resource}/testIamPermissions")
119657	urls += "?" + c.urlParams_.Encode()
119658	req, err := http.NewRequest("POST", urls, body)
119659	if err != nil {
119660		return nil, err
119661	}
119662	req.Header = reqHeaders
119663	googleapi.Expand(req.URL, map[string]string{
119664		"project":  c.project,
119665		"region":   c.region,
119666		"resource": c.resource,
119667	})
119668	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119669}
119670
119671// Do executes the "compute.regionAutoscalers.testIamPermissions" call.
119672// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
119673// non-2xx status code is an error. Response headers are in either
119674// *TestPermissionsResponse.ServerResponse.Header or (if a response was
119675// returned at all) in error.(*googleapi.Error).Header. Use
119676// googleapi.IsNotModified to check whether the returned error was
119677// because http.StatusNotModified was returned.
119678func (c *RegionAutoscalersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
119679	gensupport.SetOptions(c.urlParams_, opts...)
119680	res, err := c.doRequest("json")
119681	if res != nil && res.StatusCode == http.StatusNotModified {
119682		if res.Body != nil {
119683			res.Body.Close()
119684		}
119685		return nil, &googleapi.Error{
119686			Code:   res.StatusCode,
119687			Header: res.Header,
119688		}
119689	}
119690	if err != nil {
119691		return nil, err
119692	}
119693	defer googleapi.CloseBody(res)
119694	if err := googleapi.CheckResponse(res); err != nil {
119695		return nil, err
119696	}
119697	ret := &TestPermissionsResponse{
119698		ServerResponse: googleapi.ServerResponse{
119699			Header:         res.Header,
119700			HTTPStatusCode: res.StatusCode,
119701		},
119702	}
119703	target := &ret
119704	if err := gensupport.DecodeResponse(target, res); err != nil {
119705		return nil, err
119706	}
119707	return ret, nil
119708	// {
119709	//   "description": "Returns permissions that a caller has on the specified resource.",
119710	//   "httpMethod": "POST",
119711	//   "id": "compute.regionAutoscalers.testIamPermissions",
119712	//   "parameterOrder": [
119713	//     "project",
119714	//     "region",
119715	//     "resource"
119716	//   ],
119717	//   "parameters": {
119718	//     "project": {
119719	//       "description": "Project ID for this request.",
119720	//       "location": "path",
119721	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119722	//       "required": true,
119723	//       "type": "string"
119724	//     },
119725	//     "region": {
119726	//       "description": "The name of the region for this request.",
119727	//       "location": "path",
119728	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119729	//       "required": true,
119730	//       "type": "string"
119731	//     },
119732	//     "resource": {
119733	//       "description": "Name or id of the resource for this request.",
119734	//       "location": "path",
119735	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
119736	//       "required": true,
119737	//       "type": "string"
119738	//     }
119739	//   },
119740	//   "path": "{project}/regions/{region}/autoscalers/{resource}/testIamPermissions",
119741	//   "request": {
119742	//     "$ref": "TestPermissionsRequest"
119743	//   },
119744	//   "response": {
119745	//     "$ref": "TestPermissionsResponse"
119746	//   },
119747	//   "scopes": [
119748	//     "https://www.googleapis.com/auth/cloud-platform",
119749	//     "https://www.googleapis.com/auth/compute",
119750	//     "https://www.googleapis.com/auth/compute.readonly"
119751	//   ]
119752	// }
119753
119754}
119755
119756// method id "compute.regionAutoscalers.update":
119757
119758type RegionAutoscalersUpdateCall struct {
119759	s          *Service
119760	project    string
119761	region     string
119762	autoscaler *Autoscaler
119763	urlParams_ gensupport.URLParams
119764	ctx_       context.Context
119765	header_    http.Header
119766}
119767
119768// Update: Updates an autoscaler in the specified project using the data
119769// included in the request.
119770func (r *RegionAutoscalersService) Update(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersUpdateCall {
119771	c := &RegionAutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119772	c.project = project
119773	c.region = region
119774	c.autoscaler = autoscaler
119775	return c
119776}
119777
119778// Autoscaler sets the optional parameter "autoscaler": Name of the
119779// autoscaler to update.
119780func (c *RegionAutoscalersUpdateCall) Autoscaler(autoscaler string) *RegionAutoscalersUpdateCall {
119781	c.urlParams_.Set("autoscaler", autoscaler)
119782	return c
119783}
119784
119785// RequestId sets the optional parameter "requestId": An optional
119786// request ID to identify requests. Specify a unique request ID so that
119787// if you must retry your request, the server will know to ignore the
119788// request if it has already been completed.
119789//
119790// For example, consider a situation where you make an initial request
119791// and the request times out. If you make the request again with the
119792// same request ID, the server can check if original operation with the
119793// same request ID was received, and if so, will ignore the second
119794// request. This prevents clients from accidentally creating duplicate
119795// commitments.
119796//
119797// The request ID must be a valid UUID with the exception that zero UUID
119798// is not supported (00000000-0000-0000-0000-000000000000).
119799func (c *RegionAutoscalersUpdateCall) RequestId(requestId string) *RegionAutoscalersUpdateCall {
119800	c.urlParams_.Set("requestId", requestId)
119801	return c
119802}
119803
119804// Fields allows partial responses to be retrieved. See
119805// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119806// for more information.
119807func (c *RegionAutoscalersUpdateCall) Fields(s ...googleapi.Field) *RegionAutoscalersUpdateCall {
119808	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119809	return c
119810}
119811
119812// Context sets the context to be used in this call's Do method. Any
119813// pending HTTP request will be aborted if the provided context is
119814// canceled.
119815func (c *RegionAutoscalersUpdateCall) Context(ctx context.Context) *RegionAutoscalersUpdateCall {
119816	c.ctx_ = ctx
119817	return c
119818}
119819
119820// Header returns an http.Header that can be modified by the caller to
119821// add HTTP headers to the request.
119822func (c *RegionAutoscalersUpdateCall) Header() http.Header {
119823	if c.header_ == nil {
119824		c.header_ = make(http.Header)
119825	}
119826	return c.header_
119827}
119828
119829func (c *RegionAutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) {
119830	reqHeaders := make(http.Header)
119831	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
119832	for k, v := range c.header_ {
119833		reqHeaders[k] = v
119834	}
119835	reqHeaders.Set("User-Agent", c.s.userAgent())
119836	var body io.Reader = nil
119837	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
119838	if err != nil {
119839		return nil, err
119840	}
119841	reqHeaders.Set("Content-Type", "application/json")
119842	c.urlParams_.Set("alt", alt)
119843	c.urlParams_.Set("prettyPrint", "false")
119844	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
119845	urls += "?" + c.urlParams_.Encode()
119846	req, err := http.NewRequest("PUT", urls, body)
119847	if err != nil {
119848		return nil, err
119849	}
119850	req.Header = reqHeaders
119851	googleapi.Expand(req.URL, map[string]string{
119852		"project": c.project,
119853		"region":  c.region,
119854	})
119855	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119856}
119857
119858// Do executes the "compute.regionAutoscalers.update" call.
119859// Exactly one of *Operation or error will be non-nil. Any non-2xx
119860// status code is an error. Response headers are in either
119861// *Operation.ServerResponse.Header or (if a response was returned at
119862// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119863// to check whether the returned error was because
119864// http.StatusNotModified was returned.
119865func (c *RegionAutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119866	gensupport.SetOptions(c.urlParams_, opts...)
119867	res, err := c.doRequest("json")
119868	if res != nil && res.StatusCode == http.StatusNotModified {
119869		if res.Body != nil {
119870			res.Body.Close()
119871		}
119872		return nil, &googleapi.Error{
119873			Code:   res.StatusCode,
119874			Header: res.Header,
119875		}
119876	}
119877	if err != nil {
119878		return nil, err
119879	}
119880	defer googleapi.CloseBody(res)
119881	if err := googleapi.CheckResponse(res); err != nil {
119882		return nil, err
119883	}
119884	ret := &Operation{
119885		ServerResponse: googleapi.ServerResponse{
119886			Header:         res.Header,
119887			HTTPStatusCode: res.StatusCode,
119888		},
119889	}
119890	target := &ret
119891	if err := gensupport.DecodeResponse(target, res); err != nil {
119892		return nil, err
119893	}
119894	return ret, nil
119895	// {
119896	//   "description": "Updates an autoscaler in the specified project using the data included in the request.",
119897	//   "httpMethod": "PUT",
119898	//   "id": "compute.regionAutoscalers.update",
119899	//   "parameterOrder": [
119900	//     "project",
119901	//     "region"
119902	//   ],
119903	//   "parameters": {
119904	//     "autoscaler": {
119905	//       "description": "Name of the autoscaler to update.",
119906	//       "location": "query",
119907	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
119908	//       "type": "string"
119909	//     },
119910	//     "project": {
119911	//       "description": "Project ID for this request.",
119912	//       "location": "path",
119913	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119914	//       "required": true,
119915	//       "type": "string"
119916	//     },
119917	//     "region": {
119918	//       "description": "Name of the region scoping this request.",
119919	//       "location": "path",
119920	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119921	//       "required": true,
119922	//       "type": "string"
119923	//     },
119924	//     "requestId": {
119925	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
119926	//       "location": "query",
119927	//       "type": "string"
119928	//     }
119929	//   },
119930	//   "path": "{project}/regions/{region}/autoscalers",
119931	//   "request": {
119932	//     "$ref": "Autoscaler"
119933	//   },
119934	//   "response": {
119935	//     "$ref": "Operation"
119936	//   },
119937	//   "scopes": [
119938	//     "https://www.googleapis.com/auth/cloud-platform",
119939	//     "https://www.googleapis.com/auth/compute"
119940	//   ]
119941	// }
119942
119943}
119944
119945// method id "compute.regionBackendServices.delete":
119946
119947type RegionBackendServicesDeleteCall struct {
119948	s              *Service
119949	project        string
119950	region         string
119951	backendService string
119952	urlParams_     gensupport.URLParams
119953	ctx_           context.Context
119954	header_        http.Header
119955}
119956
119957// Delete: Deletes the specified regional BackendService resource.
119958func (r *RegionBackendServicesService) Delete(project string, region string, backendService string) *RegionBackendServicesDeleteCall {
119959	c := &RegionBackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119960	c.project = project
119961	c.region = region
119962	c.backendService = backendService
119963	return c
119964}
119965
119966// RequestId sets the optional parameter "requestId": An optional
119967// request ID to identify requests. Specify a unique request ID so that
119968// if you must retry your request, the server will know to ignore the
119969// request if it has already been completed.
119970//
119971// For example, consider a situation where you make an initial request
119972// and the request times out. If you make the request again with the
119973// same request ID, the server can check if original operation with the
119974// same request ID was received, and if so, will ignore the second
119975// request. This prevents clients from accidentally creating duplicate
119976// commitments.
119977//
119978// The request ID must be a valid UUID with the exception that zero UUID
119979// is not supported (00000000-0000-0000-0000-000000000000).
119980func (c *RegionBackendServicesDeleteCall) RequestId(requestId string) *RegionBackendServicesDeleteCall {
119981	c.urlParams_.Set("requestId", requestId)
119982	return c
119983}
119984
119985// Fields allows partial responses to be retrieved. See
119986// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119987// for more information.
119988func (c *RegionBackendServicesDeleteCall) Fields(s ...googleapi.Field) *RegionBackendServicesDeleteCall {
119989	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119990	return c
119991}
119992
119993// Context sets the context to be used in this call's Do method. Any
119994// pending HTTP request will be aborted if the provided context is
119995// canceled.
119996func (c *RegionBackendServicesDeleteCall) Context(ctx context.Context) *RegionBackendServicesDeleteCall {
119997	c.ctx_ = ctx
119998	return c
119999}
120000
120001// Header returns an http.Header that can be modified by the caller to
120002// add HTTP headers to the request.
120003func (c *RegionBackendServicesDeleteCall) Header() http.Header {
120004	if c.header_ == nil {
120005		c.header_ = make(http.Header)
120006	}
120007	return c.header_
120008}
120009
120010func (c *RegionBackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
120011	reqHeaders := make(http.Header)
120012	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
120013	for k, v := range c.header_ {
120014		reqHeaders[k] = v
120015	}
120016	reqHeaders.Set("User-Agent", c.s.userAgent())
120017	var body io.Reader = nil
120018	c.urlParams_.Set("alt", alt)
120019	c.urlParams_.Set("prettyPrint", "false")
120020	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
120021	urls += "?" + c.urlParams_.Encode()
120022	req, err := http.NewRequest("DELETE", urls, body)
120023	if err != nil {
120024		return nil, err
120025	}
120026	req.Header = reqHeaders
120027	googleapi.Expand(req.URL, map[string]string{
120028		"project":        c.project,
120029		"region":         c.region,
120030		"backendService": c.backendService,
120031	})
120032	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120033}
120034
120035// Do executes the "compute.regionBackendServices.delete" call.
120036// Exactly one of *Operation or error will be non-nil. Any non-2xx
120037// status code is an error. Response headers are in either
120038// *Operation.ServerResponse.Header or (if a response was returned at
120039// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120040// to check whether the returned error was because
120041// http.StatusNotModified was returned.
120042func (c *RegionBackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120043	gensupport.SetOptions(c.urlParams_, opts...)
120044	res, err := c.doRequest("json")
120045	if res != nil && res.StatusCode == http.StatusNotModified {
120046		if res.Body != nil {
120047			res.Body.Close()
120048		}
120049		return nil, &googleapi.Error{
120050			Code:   res.StatusCode,
120051			Header: res.Header,
120052		}
120053	}
120054	if err != nil {
120055		return nil, err
120056	}
120057	defer googleapi.CloseBody(res)
120058	if err := googleapi.CheckResponse(res); err != nil {
120059		return nil, err
120060	}
120061	ret := &Operation{
120062		ServerResponse: googleapi.ServerResponse{
120063			Header:         res.Header,
120064			HTTPStatusCode: res.StatusCode,
120065		},
120066	}
120067	target := &ret
120068	if err := gensupport.DecodeResponse(target, res); err != nil {
120069		return nil, err
120070	}
120071	return ret, nil
120072	// {
120073	//   "description": "Deletes the specified regional BackendService resource.",
120074	//   "httpMethod": "DELETE",
120075	//   "id": "compute.regionBackendServices.delete",
120076	//   "parameterOrder": [
120077	//     "project",
120078	//     "region",
120079	//     "backendService"
120080	//   ],
120081	//   "parameters": {
120082	//     "backendService": {
120083	//       "description": "Name of the BackendService resource to delete.",
120084	//       "location": "path",
120085	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
120086	//       "required": true,
120087	//       "type": "string"
120088	//     },
120089	//     "project": {
120090	//       "description": "Project ID for this request.",
120091	//       "location": "path",
120092	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120093	//       "required": true,
120094	//       "type": "string"
120095	//     },
120096	//     "region": {
120097	//       "description": "Name of the region scoping this request.",
120098	//       "location": "path",
120099	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120100	//       "required": true,
120101	//       "type": "string"
120102	//     },
120103	//     "requestId": {
120104	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
120105	//       "location": "query",
120106	//       "type": "string"
120107	//     }
120108	//   },
120109	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
120110	//   "response": {
120111	//     "$ref": "Operation"
120112	//   },
120113	//   "scopes": [
120114	//     "https://www.googleapis.com/auth/cloud-platform",
120115	//     "https://www.googleapis.com/auth/compute"
120116	//   ]
120117	// }
120118
120119}
120120
120121// method id "compute.regionBackendServices.get":
120122
120123type RegionBackendServicesGetCall struct {
120124	s              *Service
120125	project        string
120126	region         string
120127	backendService string
120128	urlParams_     gensupport.URLParams
120129	ifNoneMatch_   string
120130	ctx_           context.Context
120131	header_        http.Header
120132}
120133
120134// Get: Returns the specified regional BackendService resource.
120135func (r *RegionBackendServicesService) Get(project string, region string, backendService string) *RegionBackendServicesGetCall {
120136	c := &RegionBackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120137	c.project = project
120138	c.region = region
120139	c.backendService = backendService
120140	return c
120141}
120142
120143// Fields allows partial responses to be retrieved. See
120144// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120145// for more information.
120146func (c *RegionBackendServicesGetCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetCall {
120147	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120148	return c
120149}
120150
120151// IfNoneMatch sets the optional parameter which makes the operation
120152// fail if the object's ETag matches the given value. This is useful for
120153// getting updates only after the object has changed since the last
120154// request. Use googleapi.IsNotModified to check whether the response
120155// error from Do is the result of In-None-Match.
120156func (c *RegionBackendServicesGetCall) IfNoneMatch(entityTag string) *RegionBackendServicesGetCall {
120157	c.ifNoneMatch_ = entityTag
120158	return c
120159}
120160
120161// Context sets the context to be used in this call's Do method. Any
120162// pending HTTP request will be aborted if the provided context is
120163// canceled.
120164func (c *RegionBackendServicesGetCall) Context(ctx context.Context) *RegionBackendServicesGetCall {
120165	c.ctx_ = ctx
120166	return c
120167}
120168
120169// Header returns an http.Header that can be modified by the caller to
120170// add HTTP headers to the request.
120171func (c *RegionBackendServicesGetCall) Header() http.Header {
120172	if c.header_ == nil {
120173		c.header_ = make(http.Header)
120174	}
120175	return c.header_
120176}
120177
120178func (c *RegionBackendServicesGetCall) doRequest(alt string) (*http.Response, error) {
120179	reqHeaders := make(http.Header)
120180	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
120181	for k, v := range c.header_ {
120182		reqHeaders[k] = v
120183	}
120184	reqHeaders.Set("User-Agent", c.s.userAgent())
120185	if c.ifNoneMatch_ != "" {
120186		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
120187	}
120188	var body io.Reader = nil
120189	c.urlParams_.Set("alt", alt)
120190	c.urlParams_.Set("prettyPrint", "false")
120191	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
120192	urls += "?" + c.urlParams_.Encode()
120193	req, err := http.NewRequest("GET", urls, body)
120194	if err != nil {
120195		return nil, err
120196	}
120197	req.Header = reqHeaders
120198	googleapi.Expand(req.URL, map[string]string{
120199		"project":        c.project,
120200		"region":         c.region,
120201		"backendService": c.backendService,
120202	})
120203	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120204}
120205
120206// Do executes the "compute.regionBackendServices.get" call.
120207// Exactly one of *BackendService or error will be non-nil. Any non-2xx
120208// status code is an error. Response headers are in either
120209// *BackendService.ServerResponse.Header or (if a response was returned
120210// at all) in error.(*googleapi.Error).Header. Use
120211// googleapi.IsNotModified to check whether the returned error was
120212// because http.StatusNotModified was returned.
120213func (c *RegionBackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) {
120214	gensupport.SetOptions(c.urlParams_, opts...)
120215	res, err := c.doRequest("json")
120216	if res != nil && res.StatusCode == http.StatusNotModified {
120217		if res.Body != nil {
120218			res.Body.Close()
120219		}
120220		return nil, &googleapi.Error{
120221			Code:   res.StatusCode,
120222			Header: res.Header,
120223		}
120224	}
120225	if err != nil {
120226		return nil, err
120227	}
120228	defer googleapi.CloseBody(res)
120229	if err := googleapi.CheckResponse(res); err != nil {
120230		return nil, err
120231	}
120232	ret := &BackendService{
120233		ServerResponse: googleapi.ServerResponse{
120234			Header:         res.Header,
120235			HTTPStatusCode: res.StatusCode,
120236		},
120237	}
120238	target := &ret
120239	if err := gensupport.DecodeResponse(target, res); err != nil {
120240		return nil, err
120241	}
120242	return ret, nil
120243	// {
120244	//   "description": "Returns the specified regional BackendService resource.",
120245	//   "httpMethod": "GET",
120246	//   "id": "compute.regionBackendServices.get",
120247	//   "parameterOrder": [
120248	//     "project",
120249	//     "region",
120250	//     "backendService"
120251	//   ],
120252	//   "parameters": {
120253	//     "backendService": {
120254	//       "description": "Name of the BackendService resource to return.",
120255	//       "location": "path",
120256	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
120257	//       "required": true,
120258	//       "type": "string"
120259	//     },
120260	//     "project": {
120261	//       "description": "Project ID for this request.",
120262	//       "location": "path",
120263	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120264	//       "required": true,
120265	//       "type": "string"
120266	//     },
120267	//     "region": {
120268	//       "description": "Name of the region scoping this request.",
120269	//       "location": "path",
120270	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120271	//       "required": true,
120272	//       "type": "string"
120273	//     }
120274	//   },
120275	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
120276	//   "response": {
120277	//     "$ref": "BackendService"
120278	//   },
120279	//   "scopes": [
120280	//     "https://www.googleapis.com/auth/cloud-platform",
120281	//     "https://www.googleapis.com/auth/compute",
120282	//     "https://www.googleapis.com/auth/compute.readonly"
120283	//   ]
120284	// }
120285
120286}
120287
120288// method id "compute.regionBackendServices.getHealth":
120289
120290type RegionBackendServicesGetHealthCall struct {
120291	s                      *Service
120292	project                string
120293	region                 string
120294	backendService         string
120295	resourcegroupreference *ResourceGroupReference
120296	urlParams_             gensupport.URLParams
120297	ctx_                   context.Context
120298	header_                http.Header
120299}
120300
120301// GetHealth: Gets the most recent health check results for this
120302// regional BackendService.
120303func (r *RegionBackendServicesService) GetHealth(project string, region string, backendService string, resourcegroupreference *ResourceGroupReference) *RegionBackendServicesGetHealthCall {
120304	c := &RegionBackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120305	c.project = project
120306	c.region = region
120307	c.backendService = backendService
120308	c.resourcegroupreference = resourcegroupreference
120309	return c
120310}
120311
120312// Fields allows partial responses to be retrieved. See
120313// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120314// for more information.
120315func (c *RegionBackendServicesGetHealthCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetHealthCall {
120316	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120317	return c
120318}
120319
120320// Context sets the context to be used in this call's Do method. Any
120321// pending HTTP request will be aborted if the provided context is
120322// canceled.
120323func (c *RegionBackendServicesGetHealthCall) Context(ctx context.Context) *RegionBackendServicesGetHealthCall {
120324	c.ctx_ = ctx
120325	return c
120326}
120327
120328// Header returns an http.Header that can be modified by the caller to
120329// add HTTP headers to the request.
120330func (c *RegionBackendServicesGetHealthCall) Header() http.Header {
120331	if c.header_ == nil {
120332		c.header_ = make(http.Header)
120333	}
120334	return c.header_
120335}
120336
120337func (c *RegionBackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) {
120338	reqHeaders := make(http.Header)
120339	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
120340	for k, v := range c.header_ {
120341		reqHeaders[k] = v
120342	}
120343	reqHeaders.Set("User-Agent", c.s.userAgent())
120344	var body io.Reader = nil
120345	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference)
120346	if err != nil {
120347		return nil, err
120348	}
120349	reqHeaders.Set("Content-Type", "application/json")
120350	c.urlParams_.Set("alt", alt)
120351	c.urlParams_.Set("prettyPrint", "false")
120352	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}/getHealth")
120353	urls += "?" + c.urlParams_.Encode()
120354	req, err := http.NewRequest("POST", urls, body)
120355	if err != nil {
120356		return nil, err
120357	}
120358	req.Header = reqHeaders
120359	googleapi.Expand(req.URL, map[string]string{
120360		"project":        c.project,
120361		"region":         c.region,
120362		"backendService": c.backendService,
120363	})
120364	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120365}
120366
120367// Do executes the "compute.regionBackendServices.getHealth" call.
120368// Exactly one of *BackendServiceGroupHealth or error will be non-nil.
120369// Any non-2xx status code is an error. Response headers are in either
120370// *BackendServiceGroupHealth.ServerResponse.Header or (if a response
120371// was returned at all) in error.(*googleapi.Error).Header. Use
120372// googleapi.IsNotModified to check whether the returned error was
120373// because http.StatusNotModified was returned.
120374func (c *RegionBackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) {
120375	gensupport.SetOptions(c.urlParams_, opts...)
120376	res, err := c.doRequest("json")
120377	if res != nil && res.StatusCode == http.StatusNotModified {
120378		if res.Body != nil {
120379			res.Body.Close()
120380		}
120381		return nil, &googleapi.Error{
120382			Code:   res.StatusCode,
120383			Header: res.Header,
120384		}
120385	}
120386	if err != nil {
120387		return nil, err
120388	}
120389	defer googleapi.CloseBody(res)
120390	if err := googleapi.CheckResponse(res); err != nil {
120391		return nil, err
120392	}
120393	ret := &BackendServiceGroupHealth{
120394		ServerResponse: googleapi.ServerResponse{
120395			Header:         res.Header,
120396			HTTPStatusCode: res.StatusCode,
120397		},
120398	}
120399	target := &ret
120400	if err := gensupport.DecodeResponse(target, res); err != nil {
120401		return nil, err
120402	}
120403	return ret, nil
120404	// {
120405	//   "description": "Gets the most recent health check results for this regional BackendService.",
120406	//   "httpMethod": "POST",
120407	//   "id": "compute.regionBackendServices.getHealth",
120408	//   "parameterOrder": [
120409	//     "project",
120410	//     "region",
120411	//     "backendService"
120412	//   ],
120413	//   "parameters": {
120414	//     "backendService": {
120415	//       "description": "Name of the BackendService resource for which to get health.",
120416	//       "location": "path",
120417	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
120418	//       "required": true,
120419	//       "type": "string"
120420	//     },
120421	//     "project": {
120422	//       "location": "path",
120423	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120424	//       "required": true,
120425	//       "type": "string"
120426	//     },
120427	//     "region": {
120428	//       "description": "Name of the region scoping this request.",
120429	//       "location": "path",
120430	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120431	//       "required": true,
120432	//       "type": "string"
120433	//     }
120434	//   },
120435	//   "path": "{project}/regions/{region}/backendServices/{backendService}/getHealth",
120436	//   "request": {
120437	//     "$ref": "ResourceGroupReference"
120438	//   },
120439	//   "response": {
120440	//     "$ref": "BackendServiceGroupHealth"
120441	//   },
120442	//   "scopes": [
120443	//     "https://www.googleapis.com/auth/cloud-platform",
120444	//     "https://www.googleapis.com/auth/compute",
120445	//     "https://www.googleapis.com/auth/compute.readonly"
120446	//   ]
120447	// }
120448
120449}
120450
120451// method id "compute.regionBackendServices.insert":
120452
120453type RegionBackendServicesInsertCall struct {
120454	s              *Service
120455	project        string
120456	region         string
120457	backendservice *BackendService
120458	urlParams_     gensupport.URLParams
120459	ctx_           context.Context
120460	header_        http.Header
120461}
120462
120463// Insert: Creates a regional BackendService resource in the specified
120464// project using the data included in the request. There are several
120465// restrictions and guidelines to keep in mind when creating a regional
120466// backend service. Read  Restrictions and Guidelines for more
120467// information.
120468func (r *RegionBackendServicesService) Insert(project string, region string, backendservice *BackendService) *RegionBackendServicesInsertCall {
120469	c := &RegionBackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120470	c.project = project
120471	c.region = region
120472	c.backendservice = backendservice
120473	return c
120474}
120475
120476// RequestId sets the optional parameter "requestId": An optional
120477// request ID to identify requests. Specify a unique request ID so that
120478// if you must retry your request, the server will know to ignore the
120479// request if it has already been completed.
120480//
120481// For example, consider a situation where you make an initial request
120482// and the request times out. If you make the request again with the
120483// same request ID, the server can check if original operation with the
120484// same request ID was received, and if so, will ignore the second
120485// request. This prevents clients from accidentally creating duplicate
120486// commitments.
120487//
120488// The request ID must be a valid UUID with the exception that zero UUID
120489// is not supported (00000000-0000-0000-0000-000000000000).
120490func (c *RegionBackendServicesInsertCall) RequestId(requestId string) *RegionBackendServicesInsertCall {
120491	c.urlParams_.Set("requestId", requestId)
120492	return c
120493}
120494
120495// Fields allows partial responses to be retrieved. See
120496// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120497// for more information.
120498func (c *RegionBackendServicesInsertCall) Fields(s ...googleapi.Field) *RegionBackendServicesInsertCall {
120499	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120500	return c
120501}
120502
120503// Context sets the context to be used in this call's Do method. Any
120504// pending HTTP request will be aborted if the provided context is
120505// canceled.
120506func (c *RegionBackendServicesInsertCall) Context(ctx context.Context) *RegionBackendServicesInsertCall {
120507	c.ctx_ = ctx
120508	return c
120509}
120510
120511// Header returns an http.Header that can be modified by the caller to
120512// add HTTP headers to the request.
120513func (c *RegionBackendServicesInsertCall) Header() http.Header {
120514	if c.header_ == nil {
120515		c.header_ = make(http.Header)
120516	}
120517	return c.header_
120518}
120519
120520func (c *RegionBackendServicesInsertCall) doRequest(alt string) (*http.Response, error) {
120521	reqHeaders := make(http.Header)
120522	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
120523	for k, v := range c.header_ {
120524		reqHeaders[k] = v
120525	}
120526	reqHeaders.Set("User-Agent", c.s.userAgent())
120527	var body io.Reader = nil
120528	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
120529	if err != nil {
120530		return nil, err
120531	}
120532	reqHeaders.Set("Content-Type", "application/json")
120533	c.urlParams_.Set("alt", alt)
120534	c.urlParams_.Set("prettyPrint", "false")
120535	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices")
120536	urls += "?" + c.urlParams_.Encode()
120537	req, err := http.NewRequest("POST", urls, body)
120538	if err != nil {
120539		return nil, err
120540	}
120541	req.Header = reqHeaders
120542	googleapi.Expand(req.URL, map[string]string{
120543		"project": c.project,
120544		"region":  c.region,
120545	})
120546	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120547}
120548
120549// Do executes the "compute.regionBackendServices.insert" call.
120550// Exactly one of *Operation or error will be non-nil. Any non-2xx
120551// status code is an error. Response headers are in either
120552// *Operation.ServerResponse.Header or (if a response was returned at
120553// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120554// to check whether the returned error was because
120555// http.StatusNotModified was returned.
120556func (c *RegionBackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120557	gensupport.SetOptions(c.urlParams_, opts...)
120558	res, err := c.doRequest("json")
120559	if res != nil && res.StatusCode == http.StatusNotModified {
120560		if res.Body != nil {
120561			res.Body.Close()
120562		}
120563		return nil, &googleapi.Error{
120564			Code:   res.StatusCode,
120565			Header: res.Header,
120566		}
120567	}
120568	if err != nil {
120569		return nil, err
120570	}
120571	defer googleapi.CloseBody(res)
120572	if err := googleapi.CheckResponse(res); err != nil {
120573		return nil, err
120574	}
120575	ret := &Operation{
120576		ServerResponse: googleapi.ServerResponse{
120577			Header:         res.Header,
120578			HTTPStatusCode: res.StatusCode,
120579		},
120580	}
120581	target := &ret
120582	if err := gensupport.DecodeResponse(target, res); err != nil {
120583		return nil, err
120584	}
120585	return ret, nil
120586	// {
120587	//   "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.",
120588	//   "httpMethod": "POST",
120589	//   "id": "compute.regionBackendServices.insert",
120590	//   "parameterOrder": [
120591	//     "project",
120592	//     "region"
120593	//   ],
120594	//   "parameters": {
120595	//     "project": {
120596	//       "description": "Project ID for this request.",
120597	//       "location": "path",
120598	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120599	//       "required": true,
120600	//       "type": "string"
120601	//     },
120602	//     "region": {
120603	//       "description": "Name of the region scoping this request.",
120604	//       "location": "path",
120605	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120606	//       "required": true,
120607	//       "type": "string"
120608	//     },
120609	//     "requestId": {
120610	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
120611	//       "location": "query",
120612	//       "type": "string"
120613	//     }
120614	//   },
120615	//   "path": "{project}/regions/{region}/backendServices",
120616	//   "request": {
120617	//     "$ref": "BackendService"
120618	//   },
120619	//   "response": {
120620	//     "$ref": "Operation"
120621	//   },
120622	//   "scopes": [
120623	//     "https://www.googleapis.com/auth/cloud-platform",
120624	//     "https://www.googleapis.com/auth/compute"
120625	//   ]
120626	// }
120627
120628}
120629
120630// method id "compute.regionBackendServices.list":
120631
120632type RegionBackendServicesListCall struct {
120633	s            *Service
120634	project      string
120635	region       string
120636	urlParams_   gensupport.URLParams
120637	ifNoneMatch_ string
120638	ctx_         context.Context
120639	header_      http.Header
120640}
120641
120642// List: Retrieves the list of regional BackendService resources
120643// available to the specified project in the given region.
120644func (r *RegionBackendServicesService) List(project string, region string) *RegionBackendServicesListCall {
120645	c := &RegionBackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120646	c.project = project
120647	c.region = region
120648	return c
120649}
120650
120651// Filter sets the optional parameter "filter": A filter expression that
120652// filters resources listed in the response. The expression must specify
120653// the field name, a comparison operator, and the value that you want to
120654// use for filtering. The value must be a string, a number, or a
120655// boolean. The comparison operator must be either =, !=, >, or <.
120656//
120657// For example, if you are filtering Compute Engine instances, you can
120658// exclude instances named example-instance by specifying name !=
120659// example-instance.
120660//
120661// You can also filter nested fields. For example, you could specify
120662// scheduling.automaticRestart = false to include instances only if they
120663// are not scheduled for automatic restarts. You can use filtering on
120664// nested fields to filter based on resource labels.
120665//
120666// To filter on multiple expressions, provide each separate expression
120667// within parentheses. For example, (scheduling.automaticRestart = true)
120668// (cpuPlatform = "Intel Skylake"). By default, each expression is an
120669// AND expression. However, you can include AND and OR expressions
120670// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
120671// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
120672// true).
120673func (c *RegionBackendServicesListCall) Filter(filter string) *RegionBackendServicesListCall {
120674	c.urlParams_.Set("filter", filter)
120675	return c
120676}
120677
120678// MaxResults sets the optional parameter "maxResults": The maximum
120679// number of results per page that should be returned. If the number of
120680// available results is larger than maxResults, Compute Engine returns a
120681// nextPageToken that can be used to get the next page of results in
120682// subsequent list requests. Acceptable values are 0 to 500, inclusive.
120683// (Default: 500)
120684func (c *RegionBackendServicesListCall) MaxResults(maxResults int64) *RegionBackendServicesListCall {
120685	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
120686	return c
120687}
120688
120689// OrderBy sets the optional parameter "orderBy": Sorts list results by
120690// a certain order. By default, results are returned in alphanumerical
120691// order based on the resource name.
120692//
120693// You can also sort results in descending order based on the creation
120694// timestamp using orderBy="creationTimestamp desc". This sorts results
120695// based on the creationTimestamp field in reverse chronological order
120696// (newest result first). Use this to sort resources like operations so
120697// that the newest operation is returned first.
120698//
120699// Currently, only sorting by name or creationTimestamp desc is
120700// supported.
120701func (c *RegionBackendServicesListCall) OrderBy(orderBy string) *RegionBackendServicesListCall {
120702	c.urlParams_.Set("orderBy", orderBy)
120703	return c
120704}
120705
120706// PageToken sets the optional parameter "pageToken": Specifies a page
120707// token to use. Set pageToken to the nextPageToken returned by a
120708// previous list request to get the next page of results.
120709func (c *RegionBackendServicesListCall) PageToken(pageToken string) *RegionBackendServicesListCall {
120710	c.urlParams_.Set("pageToken", pageToken)
120711	return c
120712}
120713
120714// Fields allows partial responses to be retrieved. See
120715// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120716// for more information.
120717func (c *RegionBackendServicesListCall) Fields(s ...googleapi.Field) *RegionBackendServicesListCall {
120718	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120719	return c
120720}
120721
120722// IfNoneMatch sets the optional parameter which makes the operation
120723// fail if the object's ETag matches the given value. This is useful for
120724// getting updates only after the object has changed since the last
120725// request. Use googleapi.IsNotModified to check whether the response
120726// error from Do is the result of In-None-Match.
120727func (c *RegionBackendServicesListCall) IfNoneMatch(entityTag string) *RegionBackendServicesListCall {
120728	c.ifNoneMatch_ = entityTag
120729	return c
120730}
120731
120732// Context sets the context to be used in this call's Do method. Any
120733// pending HTTP request will be aborted if the provided context is
120734// canceled.
120735func (c *RegionBackendServicesListCall) Context(ctx context.Context) *RegionBackendServicesListCall {
120736	c.ctx_ = ctx
120737	return c
120738}
120739
120740// Header returns an http.Header that can be modified by the caller to
120741// add HTTP headers to the request.
120742func (c *RegionBackendServicesListCall) Header() http.Header {
120743	if c.header_ == nil {
120744		c.header_ = make(http.Header)
120745	}
120746	return c.header_
120747}
120748
120749func (c *RegionBackendServicesListCall) doRequest(alt string) (*http.Response, error) {
120750	reqHeaders := make(http.Header)
120751	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
120752	for k, v := range c.header_ {
120753		reqHeaders[k] = v
120754	}
120755	reqHeaders.Set("User-Agent", c.s.userAgent())
120756	if c.ifNoneMatch_ != "" {
120757		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
120758	}
120759	var body io.Reader = nil
120760	c.urlParams_.Set("alt", alt)
120761	c.urlParams_.Set("prettyPrint", "false")
120762	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices")
120763	urls += "?" + c.urlParams_.Encode()
120764	req, err := http.NewRequest("GET", urls, body)
120765	if err != nil {
120766		return nil, err
120767	}
120768	req.Header = reqHeaders
120769	googleapi.Expand(req.URL, map[string]string{
120770		"project": c.project,
120771		"region":  c.region,
120772	})
120773	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120774}
120775
120776// Do executes the "compute.regionBackendServices.list" call.
120777// Exactly one of *BackendServiceList or error will be non-nil. Any
120778// non-2xx status code is an error. Response headers are in either
120779// *BackendServiceList.ServerResponse.Header or (if a response was
120780// returned at all) in error.(*googleapi.Error).Header. Use
120781// googleapi.IsNotModified to check whether the returned error was
120782// because http.StatusNotModified was returned.
120783func (c *RegionBackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) {
120784	gensupport.SetOptions(c.urlParams_, opts...)
120785	res, err := c.doRequest("json")
120786	if res != nil && res.StatusCode == http.StatusNotModified {
120787		if res.Body != nil {
120788			res.Body.Close()
120789		}
120790		return nil, &googleapi.Error{
120791			Code:   res.StatusCode,
120792			Header: res.Header,
120793		}
120794	}
120795	if err != nil {
120796		return nil, err
120797	}
120798	defer googleapi.CloseBody(res)
120799	if err := googleapi.CheckResponse(res); err != nil {
120800		return nil, err
120801	}
120802	ret := &BackendServiceList{
120803		ServerResponse: googleapi.ServerResponse{
120804			Header:         res.Header,
120805			HTTPStatusCode: res.StatusCode,
120806		},
120807	}
120808	target := &ret
120809	if err := gensupport.DecodeResponse(target, res); err != nil {
120810		return nil, err
120811	}
120812	return ret, nil
120813	// {
120814	//   "description": "Retrieves the list of regional BackendService resources available to the specified project in the given region.",
120815	//   "httpMethod": "GET",
120816	//   "id": "compute.regionBackendServices.list",
120817	//   "parameterOrder": [
120818	//     "project",
120819	//     "region"
120820	//   ],
120821	//   "parameters": {
120822	//     "filter": {
120823	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
120824	//       "location": "query",
120825	//       "type": "string"
120826	//     },
120827	//     "maxResults": {
120828	//       "default": "500",
120829	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
120830	//       "format": "uint32",
120831	//       "location": "query",
120832	//       "minimum": "0",
120833	//       "type": "integer"
120834	//     },
120835	//     "orderBy": {
120836	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
120837	//       "location": "query",
120838	//       "type": "string"
120839	//     },
120840	//     "pageToken": {
120841	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
120842	//       "location": "query",
120843	//       "type": "string"
120844	//     },
120845	//     "project": {
120846	//       "description": "Project ID for this request.",
120847	//       "location": "path",
120848	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120849	//       "required": true,
120850	//       "type": "string"
120851	//     },
120852	//     "region": {
120853	//       "description": "Name of the region scoping this request.",
120854	//       "location": "path",
120855	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120856	//       "required": true,
120857	//       "type": "string"
120858	//     }
120859	//   },
120860	//   "path": "{project}/regions/{region}/backendServices",
120861	//   "response": {
120862	//     "$ref": "BackendServiceList"
120863	//   },
120864	//   "scopes": [
120865	//     "https://www.googleapis.com/auth/cloud-platform",
120866	//     "https://www.googleapis.com/auth/compute",
120867	//     "https://www.googleapis.com/auth/compute.readonly"
120868	//   ]
120869	// }
120870
120871}
120872
120873// Pages invokes f for each page of results.
120874// A non-nil error returned from f will halt the iteration.
120875// The provided context supersedes any context provided to the Context method.
120876func (c *RegionBackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error {
120877	c.ctx_ = ctx
120878	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
120879	for {
120880		x, err := c.Do()
120881		if err != nil {
120882			return err
120883		}
120884		if err := f(x); err != nil {
120885			return err
120886		}
120887		if x.NextPageToken == "" {
120888			return nil
120889		}
120890		c.PageToken(x.NextPageToken)
120891	}
120892}
120893
120894// method id "compute.regionBackendServices.patch":
120895
120896type RegionBackendServicesPatchCall struct {
120897	s              *Service
120898	project        string
120899	region         string
120900	backendService string
120901	backendservice *BackendService
120902	urlParams_     gensupport.URLParams
120903	ctx_           context.Context
120904	header_        http.Header
120905}
120906
120907// Patch: Updates the specified regional BackendService resource with
120908// the data included in the request. There are several restrictions and
120909// guidelines to keep in mind when updating a backend service. Read
120910// Restrictions and Guidelines for more information. This method
120911// supports PATCH semantics and uses the JSON merge patch format and
120912// processing rules.
120913func (r *RegionBackendServicesService) Patch(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesPatchCall {
120914	c := &RegionBackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120915	c.project = project
120916	c.region = region
120917	c.backendService = backendService
120918	c.backendservice = backendservice
120919	return c
120920}
120921
120922// RequestId sets the optional parameter "requestId": An optional
120923// request ID to identify requests. Specify a unique request ID so that
120924// if you must retry your request, the server will know to ignore the
120925// request if it has already been completed.
120926//
120927// For example, consider a situation where you make an initial request
120928// and the request times out. If you make the request again with the
120929// same request ID, the server can check if original operation with the
120930// same request ID was received, and if so, will ignore the second
120931// request. This prevents clients from accidentally creating duplicate
120932// commitments.
120933//
120934// The request ID must be a valid UUID with the exception that zero UUID
120935// is not supported (00000000-0000-0000-0000-000000000000).
120936func (c *RegionBackendServicesPatchCall) RequestId(requestId string) *RegionBackendServicesPatchCall {
120937	c.urlParams_.Set("requestId", requestId)
120938	return c
120939}
120940
120941// Fields allows partial responses to be retrieved. See
120942// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120943// for more information.
120944func (c *RegionBackendServicesPatchCall) Fields(s ...googleapi.Field) *RegionBackendServicesPatchCall {
120945	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120946	return c
120947}
120948
120949// Context sets the context to be used in this call's Do method. Any
120950// pending HTTP request will be aborted if the provided context is
120951// canceled.
120952func (c *RegionBackendServicesPatchCall) Context(ctx context.Context) *RegionBackendServicesPatchCall {
120953	c.ctx_ = ctx
120954	return c
120955}
120956
120957// Header returns an http.Header that can be modified by the caller to
120958// add HTTP headers to the request.
120959func (c *RegionBackendServicesPatchCall) Header() http.Header {
120960	if c.header_ == nil {
120961		c.header_ = make(http.Header)
120962	}
120963	return c.header_
120964}
120965
120966func (c *RegionBackendServicesPatchCall) doRequest(alt string) (*http.Response, error) {
120967	reqHeaders := make(http.Header)
120968	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
120969	for k, v := range c.header_ {
120970		reqHeaders[k] = v
120971	}
120972	reqHeaders.Set("User-Agent", c.s.userAgent())
120973	var body io.Reader = nil
120974	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
120975	if err != nil {
120976		return nil, err
120977	}
120978	reqHeaders.Set("Content-Type", "application/json")
120979	c.urlParams_.Set("alt", alt)
120980	c.urlParams_.Set("prettyPrint", "false")
120981	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
120982	urls += "?" + c.urlParams_.Encode()
120983	req, err := http.NewRequest("PATCH", urls, body)
120984	if err != nil {
120985		return nil, err
120986	}
120987	req.Header = reqHeaders
120988	googleapi.Expand(req.URL, map[string]string{
120989		"project":        c.project,
120990		"region":         c.region,
120991		"backendService": c.backendService,
120992	})
120993	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120994}
120995
120996// Do executes the "compute.regionBackendServices.patch" call.
120997// Exactly one of *Operation or error will be non-nil. Any non-2xx
120998// status code is an error. Response headers are in either
120999// *Operation.ServerResponse.Header or (if a response was returned at
121000// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121001// to check whether the returned error was because
121002// http.StatusNotModified was returned.
121003func (c *RegionBackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121004	gensupport.SetOptions(c.urlParams_, opts...)
121005	res, err := c.doRequest("json")
121006	if res != nil && res.StatusCode == http.StatusNotModified {
121007		if res.Body != nil {
121008			res.Body.Close()
121009		}
121010		return nil, &googleapi.Error{
121011			Code:   res.StatusCode,
121012			Header: res.Header,
121013		}
121014	}
121015	if err != nil {
121016		return nil, err
121017	}
121018	defer googleapi.CloseBody(res)
121019	if err := googleapi.CheckResponse(res); err != nil {
121020		return nil, err
121021	}
121022	ret := &Operation{
121023		ServerResponse: googleapi.ServerResponse{
121024			Header:         res.Header,
121025			HTTPStatusCode: res.StatusCode,
121026		},
121027	}
121028	target := &ret
121029	if err := gensupport.DecodeResponse(target, res); err != nil {
121030		return nil, err
121031	}
121032	return ret, nil
121033	// {
121034	//   "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.",
121035	//   "httpMethod": "PATCH",
121036	//   "id": "compute.regionBackendServices.patch",
121037	//   "parameterOrder": [
121038	//     "project",
121039	//     "region",
121040	//     "backendService"
121041	//   ],
121042	//   "parameters": {
121043	//     "backendService": {
121044	//       "description": "Name of the BackendService resource to patch.",
121045	//       "location": "path",
121046	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
121047	//       "required": true,
121048	//       "type": "string"
121049	//     },
121050	//     "project": {
121051	//       "description": "Project ID for this request.",
121052	//       "location": "path",
121053	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121054	//       "required": true,
121055	//       "type": "string"
121056	//     },
121057	//     "region": {
121058	//       "description": "Name of the region scoping this request.",
121059	//       "location": "path",
121060	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121061	//       "required": true,
121062	//       "type": "string"
121063	//     },
121064	//     "requestId": {
121065	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
121066	//       "location": "query",
121067	//       "type": "string"
121068	//     }
121069	//   },
121070	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
121071	//   "request": {
121072	//     "$ref": "BackendService"
121073	//   },
121074	//   "response": {
121075	//     "$ref": "Operation"
121076	//   },
121077	//   "scopes": [
121078	//     "https://www.googleapis.com/auth/cloud-platform",
121079	//     "https://www.googleapis.com/auth/compute"
121080	//   ]
121081	// }
121082
121083}
121084
121085// method id "compute.regionBackendServices.testIamPermissions":
121086
121087type RegionBackendServicesTestIamPermissionsCall struct {
121088	s                      *Service
121089	project                string
121090	region                 string
121091	resource               string
121092	testpermissionsrequest *TestPermissionsRequest
121093	urlParams_             gensupport.URLParams
121094	ctx_                   context.Context
121095	header_                http.Header
121096}
121097
121098// TestIamPermissions: Returns permissions that a caller has on the
121099// specified resource.
121100func (r *RegionBackendServicesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionBackendServicesTestIamPermissionsCall {
121101	c := &RegionBackendServicesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121102	c.project = project
121103	c.region = region
121104	c.resource = resource
121105	c.testpermissionsrequest = testpermissionsrequest
121106	return c
121107}
121108
121109// Fields allows partial responses to be retrieved. See
121110// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121111// for more information.
121112func (c *RegionBackendServicesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionBackendServicesTestIamPermissionsCall {
121113	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121114	return c
121115}
121116
121117// Context sets the context to be used in this call's Do method. Any
121118// pending HTTP request will be aborted if the provided context is
121119// canceled.
121120func (c *RegionBackendServicesTestIamPermissionsCall) Context(ctx context.Context) *RegionBackendServicesTestIamPermissionsCall {
121121	c.ctx_ = ctx
121122	return c
121123}
121124
121125// Header returns an http.Header that can be modified by the caller to
121126// add HTTP headers to the request.
121127func (c *RegionBackendServicesTestIamPermissionsCall) Header() http.Header {
121128	if c.header_ == nil {
121129		c.header_ = make(http.Header)
121130	}
121131	return c.header_
121132}
121133
121134func (c *RegionBackendServicesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
121135	reqHeaders := make(http.Header)
121136	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
121137	for k, v := range c.header_ {
121138		reqHeaders[k] = v
121139	}
121140	reqHeaders.Set("User-Agent", c.s.userAgent())
121141	var body io.Reader = nil
121142	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
121143	if err != nil {
121144		return nil, err
121145	}
121146	reqHeaders.Set("Content-Type", "application/json")
121147	c.urlParams_.Set("alt", alt)
121148	c.urlParams_.Set("prettyPrint", "false")
121149	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{resource}/testIamPermissions")
121150	urls += "?" + c.urlParams_.Encode()
121151	req, err := http.NewRequest("POST", urls, body)
121152	if err != nil {
121153		return nil, err
121154	}
121155	req.Header = reqHeaders
121156	googleapi.Expand(req.URL, map[string]string{
121157		"project":  c.project,
121158		"region":   c.region,
121159		"resource": c.resource,
121160	})
121161	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121162}
121163
121164// Do executes the "compute.regionBackendServices.testIamPermissions" call.
121165// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
121166// non-2xx status code is an error. Response headers are in either
121167// *TestPermissionsResponse.ServerResponse.Header or (if a response was
121168// returned at all) in error.(*googleapi.Error).Header. Use
121169// googleapi.IsNotModified to check whether the returned error was
121170// because http.StatusNotModified was returned.
121171func (c *RegionBackendServicesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
121172	gensupport.SetOptions(c.urlParams_, opts...)
121173	res, err := c.doRequest("json")
121174	if res != nil && res.StatusCode == http.StatusNotModified {
121175		if res.Body != nil {
121176			res.Body.Close()
121177		}
121178		return nil, &googleapi.Error{
121179			Code:   res.StatusCode,
121180			Header: res.Header,
121181		}
121182	}
121183	if err != nil {
121184		return nil, err
121185	}
121186	defer googleapi.CloseBody(res)
121187	if err := googleapi.CheckResponse(res); err != nil {
121188		return nil, err
121189	}
121190	ret := &TestPermissionsResponse{
121191		ServerResponse: googleapi.ServerResponse{
121192			Header:         res.Header,
121193			HTTPStatusCode: res.StatusCode,
121194		},
121195	}
121196	target := &ret
121197	if err := gensupport.DecodeResponse(target, res); err != nil {
121198		return nil, err
121199	}
121200	return ret, nil
121201	// {
121202	//   "description": "Returns permissions that a caller has on the specified resource.",
121203	//   "httpMethod": "POST",
121204	//   "id": "compute.regionBackendServices.testIamPermissions",
121205	//   "parameterOrder": [
121206	//     "project",
121207	//     "region",
121208	//     "resource"
121209	//   ],
121210	//   "parameters": {
121211	//     "project": {
121212	//       "description": "Project ID for this request.",
121213	//       "location": "path",
121214	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121215	//       "required": true,
121216	//       "type": "string"
121217	//     },
121218	//     "region": {
121219	//       "description": "The name of the region for this request.",
121220	//       "location": "path",
121221	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121222	//       "required": true,
121223	//       "type": "string"
121224	//     },
121225	//     "resource": {
121226	//       "description": "Name or id of the resource for this request.",
121227	//       "location": "path",
121228	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
121229	//       "required": true,
121230	//       "type": "string"
121231	//     }
121232	//   },
121233	//   "path": "{project}/regions/{region}/backendServices/{resource}/testIamPermissions",
121234	//   "request": {
121235	//     "$ref": "TestPermissionsRequest"
121236	//   },
121237	//   "response": {
121238	//     "$ref": "TestPermissionsResponse"
121239	//   },
121240	//   "scopes": [
121241	//     "https://www.googleapis.com/auth/cloud-platform",
121242	//     "https://www.googleapis.com/auth/compute",
121243	//     "https://www.googleapis.com/auth/compute.readonly"
121244	//   ]
121245	// }
121246
121247}
121248
121249// method id "compute.regionBackendServices.update":
121250
121251type RegionBackendServicesUpdateCall struct {
121252	s              *Service
121253	project        string
121254	region         string
121255	backendService string
121256	backendservice *BackendService
121257	urlParams_     gensupport.URLParams
121258	ctx_           context.Context
121259	header_        http.Header
121260}
121261
121262// Update: Updates the specified regional BackendService resource with
121263// the data included in the request. There are several restrictions and
121264// guidelines to keep in mind when updating a backend service. Read
121265// Restrictions and Guidelines for more information.
121266func (r *RegionBackendServicesService) Update(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesUpdateCall {
121267	c := &RegionBackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121268	c.project = project
121269	c.region = region
121270	c.backendService = backendService
121271	c.backendservice = backendservice
121272	return c
121273}
121274
121275// RequestId sets the optional parameter "requestId": An optional
121276// request ID to identify requests. Specify a unique request ID so that
121277// if you must retry your request, the server will know to ignore the
121278// request if it has already been completed.
121279//
121280// For example, consider a situation where you make an initial request
121281// and the request times out. If you make the request again with the
121282// same request ID, the server can check if original operation with the
121283// same request ID was received, and if so, will ignore the second
121284// request. This prevents clients from accidentally creating duplicate
121285// commitments.
121286//
121287// The request ID must be a valid UUID with the exception that zero UUID
121288// is not supported (00000000-0000-0000-0000-000000000000).
121289func (c *RegionBackendServicesUpdateCall) RequestId(requestId string) *RegionBackendServicesUpdateCall {
121290	c.urlParams_.Set("requestId", requestId)
121291	return c
121292}
121293
121294// Fields allows partial responses to be retrieved. See
121295// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121296// for more information.
121297func (c *RegionBackendServicesUpdateCall) Fields(s ...googleapi.Field) *RegionBackendServicesUpdateCall {
121298	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121299	return c
121300}
121301
121302// Context sets the context to be used in this call's Do method. Any
121303// pending HTTP request will be aborted if the provided context is
121304// canceled.
121305func (c *RegionBackendServicesUpdateCall) Context(ctx context.Context) *RegionBackendServicesUpdateCall {
121306	c.ctx_ = ctx
121307	return c
121308}
121309
121310// Header returns an http.Header that can be modified by the caller to
121311// add HTTP headers to the request.
121312func (c *RegionBackendServicesUpdateCall) Header() http.Header {
121313	if c.header_ == nil {
121314		c.header_ = make(http.Header)
121315	}
121316	return c.header_
121317}
121318
121319func (c *RegionBackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) {
121320	reqHeaders := make(http.Header)
121321	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
121322	for k, v := range c.header_ {
121323		reqHeaders[k] = v
121324	}
121325	reqHeaders.Set("User-Agent", c.s.userAgent())
121326	var body io.Reader = nil
121327	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
121328	if err != nil {
121329		return nil, err
121330	}
121331	reqHeaders.Set("Content-Type", "application/json")
121332	c.urlParams_.Set("alt", alt)
121333	c.urlParams_.Set("prettyPrint", "false")
121334	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
121335	urls += "?" + c.urlParams_.Encode()
121336	req, err := http.NewRequest("PUT", urls, body)
121337	if err != nil {
121338		return nil, err
121339	}
121340	req.Header = reqHeaders
121341	googleapi.Expand(req.URL, map[string]string{
121342		"project":        c.project,
121343		"region":         c.region,
121344		"backendService": c.backendService,
121345	})
121346	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121347}
121348
121349// Do executes the "compute.regionBackendServices.update" call.
121350// Exactly one of *Operation or error will be non-nil. Any non-2xx
121351// status code is an error. Response headers are in either
121352// *Operation.ServerResponse.Header or (if a response was returned at
121353// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121354// to check whether the returned error was because
121355// http.StatusNotModified was returned.
121356func (c *RegionBackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121357	gensupport.SetOptions(c.urlParams_, opts...)
121358	res, err := c.doRequest("json")
121359	if res != nil && res.StatusCode == http.StatusNotModified {
121360		if res.Body != nil {
121361			res.Body.Close()
121362		}
121363		return nil, &googleapi.Error{
121364			Code:   res.StatusCode,
121365			Header: res.Header,
121366		}
121367	}
121368	if err != nil {
121369		return nil, err
121370	}
121371	defer googleapi.CloseBody(res)
121372	if err := googleapi.CheckResponse(res); err != nil {
121373		return nil, err
121374	}
121375	ret := &Operation{
121376		ServerResponse: googleapi.ServerResponse{
121377			Header:         res.Header,
121378			HTTPStatusCode: res.StatusCode,
121379		},
121380	}
121381	target := &ret
121382	if err := gensupport.DecodeResponse(target, res); err != nil {
121383		return nil, err
121384	}
121385	return ret, nil
121386	// {
121387	//   "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.",
121388	//   "httpMethod": "PUT",
121389	//   "id": "compute.regionBackendServices.update",
121390	//   "parameterOrder": [
121391	//     "project",
121392	//     "region",
121393	//     "backendService"
121394	//   ],
121395	//   "parameters": {
121396	//     "backendService": {
121397	//       "description": "Name of the BackendService resource to update.",
121398	//       "location": "path",
121399	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
121400	//       "required": true,
121401	//       "type": "string"
121402	//     },
121403	//     "project": {
121404	//       "description": "Project ID for this request.",
121405	//       "location": "path",
121406	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121407	//       "required": true,
121408	//       "type": "string"
121409	//     },
121410	//     "region": {
121411	//       "description": "Name of the region scoping this request.",
121412	//       "location": "path",
121413	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121414	//       "required": true,
121415	//       "type": "string"
121416	//     },
121417	//     "requestId": {
121418	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
121419	//       "location": "query",
121420	//       "type": "string"
121421	//     }
121422	//   },
121423	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
121424	//   "request": {
121425	//     "$ref": "BackendService"
121426	//   },
121427	//   "response": {
121428	//     "$ref": "Operation"
121429	//   },
121430	//   "scopes": [
121431	//     "https://www.googleapis.com/auth/cloud-platform",
121432	//     "https://www.googleapis.com/auth/compute"
121433	//   ]
121434	// }
121435
121436}
121437
121438// method id "compute.regionCommitments.aggregatedList":
121439
121440type RegionCommitmentsAggregatedListCall struct {
121441	s            *Service
121442	project      string
121443	urlParams_   gensupport.URLParams
121444	ifNoneMatch_ string
121445	ctx_         context.Context
121446	header_      http.Header
121447}
121448
121449// AggregatedList: Retrieves an aggregated list of commitments.
121450func (r *RegionCommitmentsService) AggregatedList(project string) *RegionCommitmentsAggregatedListCall {
121451	c := &RegionCommitmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121452	c.project = project
121453	return c
121454}
121455
121456// Filter sets the optional parameter "filter": A filter expression that
121457// filters resources listed in the response. The expression must specify
121458// the field name, a comparison operator, and the value that you want to
121459// use for filtering. The value must be a string, a number, or a
121460// boolean. The comparison operator must be either =, !=, >, or <.
121461//
121462// For example, if you are filtering Compute Engine instances, you can
121463// exclude instances named example-instance by specifying name !=
121464// example-instance.
121465//
121466// You can also filter nested fields. For example, you could specify
121467// scheduling.automaticRestart = false to include instances only if they
121468// are not scheduled for automatic restarts. You can use filtering on
121469// nested fields to filter based on resource labels.
121470//
121471// To filter on multiple expressions, provide each separate expression
121472// within parentheses. For example, (scheduling.automaticRestart = true)
121473// (cpuPlatform = "Intel Skylake"). By default, each expression is an
121474// AND expression. However, you can include AND and OR expressions
121475// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
121476// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
121477// true).
121478func (c *RegionCommitmentsAggregatedListCall) Filter(filter string) *RegionCommitmentsAggregatedListCall {
121479	c.urlParams_.Set("filter", filter)
121480	return c
121481}
121482
121483// IncludeAllScopes sets the optional parameter "includeAllScopes":
121484// Indicates whether every visible scope for each scope type (zone,
121485// region, global) should be included in the response. For new resource
121486// types added after this field, the flag has no effect as new resource
121487// types will always include every visible scope for each scope type in
121488// response. For resource types which predate this field, if this flag
121489// is omitted or false, only scopes of the scope types where the
121490// resource type is expected to be found will be included.
121491func (c *RegionCommitmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RegionCommitmentsAggregatedListCall {
121492	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
121493	return c
121494}
121495
121496// MaxResults sets the optional parameter "maxResults": The maximum
121497// number of results per page that should be returned. If the number of
121498// available results is larger than maxResults, Compute Engine returns a
121499// nextPageToken that can be used to get the next page of results in
121500// subsequent list requests. Acceptable values are 0 to 500, inclusive.
121501// (Default: 500)
121502func (c *RegionCommitmentsAggregatedListCall) MaxResults(maxResults int64) *RegionCommitmentsAggregatedListCall {
121503	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
121504	return c
121505}
121506
121507// OrderBy sets the optional parameter "orderBy": Sorts list results by
121508// a certain order. By default, results are returned in alphanumerical
121509// order based on the resource name.
121510//
121511// You can also sort results in descending order based on the creation
121512// timestamp using orderBy="creationTimestamp desc". This sorts results
121513// based on the creationTimestamp field in reverse chronological order
121514// (newest result first). Use this to sort resources like operations so
121515// that the newest operation is returned first.
121516//
121517// Currently, only sorting by name or creationTimestamp desc is
121518// supported.
121519func (c *RegionCommitmentsAggregatedListCall) OrderBy(orderBy string) *RegionCommitmentsAggregatedListCall {
121520	c.urlParams_.Set("orderBy", orderBy)
121521	return c
121522}
121523
121524// PageToken sets the optional parameter "pageToken": Specifies a page
121525// token to use. Set pageToken to the nextPageToken returned by a
121526// previous list request to get the next page of results.
121527func (c *RegionCommitmentsAggregatedListCall) PageToken(pageToken string) *RegionCommitmentsAggregatedListCall {
121528	c.urlParams_.Set("pageToken", pageToken)
121529	return c
121530}
121531
121532// Fields allows partial responses to be retrieved. See
121533// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121534// for more information.
121535func (c *RegionCommitmentsAggregatedListCall) Fields(s ...googleapi.Field) *RegionCommitmentsAggregatedListCall {
121536	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121537	return c
121538}
121539
121540// IfNoneMatch sets the optional parameter which makes the operation
121541// fail if the object's ETag matches the given value. This is useful for
121542// getting updates only after the object has changed since the last
121543// request. Use googleapi.IsNotModified to check whether the response
121544// error from Do is the result of In-None-Match.
121545func (c *RegionCommitmentsAggregatedListCall) IfNoneMatch(entityTag string) *RegionCommitmentsAggregatedListCall {
121546	c.ifNoneMatch_ = entityTag
121547	return c
121548}
121549
121550// Context sets the context to be used in this call's Do method. Any
121551// pending HTTP request will be aborted if the provided context is
121552// canceled.
121553func (c *RegionCommitmentsAggregatedListCall) Context(ctx context.Context) *RegionCommitmentsAggregatedListCall {
121554	c.ctx_ = ctx
121555	return c
121556}
121557
121558// Header returns an http.Header that can be modified by the caller to
121559// add HTTP headers to the request.
121560func (c *RegionCommitmentsAggregatedListCall) Header() http.Header {
121561	if c.header_ == nil {
121562		c.header_ = make(http.Header)
121563	}
121564	return c.header_
121565}
121566
121567func (c *RegionCommitmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
121568	reqHeaders := make(http.Header)
121569	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
121570	for k, v := range c.header_ {
121571		reqHeaders[k] = v
121572	}
121573	reqHeaders.Set("User-Agent", c.s.userAgent())
121574	if c.ifNoneMatch_ != "" {
121575		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
121576	}
121577	var body io.Reader = nil
121578	c.urlParams_.Set("alt", alt)
121579	c.urlParams_.Set("prettyPrint", "false")
121580	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/commitments")
121581	urls += "?" + c.urlParams_.Encode()
121582	req, err := http.NewRequest("GET", urls, body)
121583	if err != nil {
121584		return nil, err
121585	}
121586	req.Header = reqHeaders
121587	googleapi.Expand(req.URL, map[string]string{
121588		"project": c.project,
121589	})
121590	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121591}
121592
121593// Do executes the "compute.regionCommitments.aggregatedList" call.
121594// Exactly one of *CommitmentAggregatedList or error will be non-nil.
121595// Any non-2xx status code is an error. Response headers are in either
121596// *CommitmentAggregatedList.ServerResponse.Header or (if a response was
121597// returned at all) in error.(*googleapi.Error).Header. Use
121598// googleapi.IsNotModified to check whether the returned error was
121599// because http.StatusNotModified was returned.
121600func (c *RegionCommitmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*CommitmentAggregatedList, error) {
121601	gensupport.SetOptions(c.urlParams_, opts...)
121602	res, err := c.doRequest("json")
121603	if res != nil && res.StatusCode == http.StatusNotModified {
121604		if res.Body != nil {
121605			res.Body.Close()
121606		}
121607		return nil, &googleapi.Error{
121608			Code:   res.StatusCode,
121609			Header: res.Header,
121610		}
121611	}
121612	if err != nil {
121613		return nil, err
121614	}
121615	defer googleapi.CloseBody(res)
121616	if err := googleapi.CheckResponse(res); err != nil {
121617		return nil, err
121618	}
121619	ret := &CommitmentAggregatedList{
121620		ServerResponse: googleapi.ServerResponse{
121621			Header:         res.Header,
121622			HTTPStatusCode: res.StatusCode,
121623		},
121624	}
121625	target := &ret
121626	if err := gensupport.DecodeResponse(target, res); err != nil {
121627		return nil, err
121628	}
121629	return ret, nil
121630	// {
121631	//   "description": "Retrieves an aggregated list of commitments.",
121632	//   "httpMethod": "GET",
121633	//   "id": "compute.regionCommitments.aggregatedList",
121634	//   "parameterOrder": [
121635	//     "project"
121636	//   ],
121637	//   "parameters": {
121638	//     "filter": {
121639	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
121640	//       "location": "query",
121641	//       "type": "string"
121642	//     },
121643	//     "includeAllScopes": {
121644	//       "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.",
121645	//       "location": "query",
121646	//       "type": "boolean"
121647	//     },
121648	//     "maxResults": {
121649	//       "default": "500",
121650	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
121651	//       "format": "uint32",
121652	//       "location": "query",
121653	//       "minimum": "0",
121654	//       "type": "integer"
121655	//     },
121656	//     "orderBy": {
121657	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
121658	//       "location": "query",
121659	//       "type": "string"
121660	//     },
121661	//     "pageToken": {
121662	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
121663	//       "location": "query",
121664	//       "type": "string"
121665	//     },
121666	//     "project": {
121667	//       "description": "Project ID for this request.",
121668	//       "location": "path",
121669	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121670	//       "required": true,
121671	//       "type": "string"
121672	//     }
121673	//   },
121674	//   "path": "{project}/aggregated/commitments",
121675	//   "response": {
121676	//     "$ref": "CommitmentAggregatedList"
121677	//   },
121678	//   "scopes": [
121679	//     "https://www.googleapis.com/auth/cloud-platform",
121680	//     "https://www.googleapis.com/auth/compute",
121681	//     "https://www.googleapis.com/auth/compute.readonly"
121682	//   ]
121683	// }
121684
121685}
121686
121687// Pages invokes f for each page of results.
121688// A non-nil error returned from f will halt the iteration.
121689// The provided context supersedes any context provided to the Context method.
121690func (c *RegionCommitmentsAggregatedListCall) Pages(ctx context.Context, f func(*CommitmentAggregatedList) error) error {
121691	c.ctx_ = ctx
121692	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
121693	for {
121694		x, err := c.Do()
121695		if err != nil {
121696			return err
121697		}
121698		if err := f(x); err != nil {
121699			return err
121700		}
121701		if x.NextPageToken == "" {
121702			return nil
121703		}
121704		c.PageToken(x.NextPageToken)
121705	}
121706}
121707
121708// method id "compute.regionCommitments.get":
121709
121710type RegionCommitmentsGetCall struct {
121711	s            *Service
121712	project      string
121713	region       string
121714	commitment   string
121715	urlParams_   gensupport.URLParams
121716	ifNoneMatch_ string
121717	ctx_         context.Context
121718	header_      http.Header
121719}
121720
121721// Get: Returns the specified commitment resource. Gets a list of
121722// available commitments by making a list() request.
121723func (r *RegionCommitmentsService) Get(project string, region string, commitment string) *RegionCommitmentsGetCall {
121724	c := &RegionCommitmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121725	c.project = project
121726	c.region = region
121727	c.commitment = commitment
121728	return c
121729}
121730
121731// Fields allows partial responses to be retrieved. See
121732// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121733// for more information.
121734func (c *RegionCommitmentsGetCall) Fields(s ...googleapi.Field) *RegionCommitmentsGetCall {
121735	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121736	return c
121737}
121738
121739// IfNoneMatch sets the optional parameter which makes the operation
121740// fail if the object's ETag matches the given value. This is useful for
121741// getting updates only after the object has changed since the last
121742// request. Use googleapi.IsNotModified to check whether the response
121743// error from Do is the result of In-None-Match.
121744func (c *RegionCommitmentsGetCall) IfNoneMatch(entityTag string) *RegionCommitmentsGetCall {
121745	c.ifNoneMatch_ = entityTag
121746	return c
121747}
121748
121749// Context sets the context to be used in this call's Do method. Any
121750// pending HTTP request will be aborted if the provided context is
121751// canceled.
121752func (c *RegionCommitmentsGetCall) Context(ctx context.Context) *RegionCommitmentsGetCall {
121753	c.ctx_ = ctx
121754	return c
121755}
121756
121757// Header returns an http.Header that can be modified by the caller to
121758// add HTTP headers to the request.
121759func (c *RegionCommitmentsGetCall) Header() http.Header {
121760	if c.header_ == nil {
121761		c.header_ = make(http.Header)
121762	}
121763	return c.header_
121764}
121765
121766func (c *RegionCommitmentsGetCall) doRequest(alt string) (*http.Response, error) {
121767	reqHeaders := make(http.Header)
121768	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
121769	for k, v := range c.header_ {
121770		reqHeaders[k] = v
121771	}
121772	reqHeaders.Set("User-Agent", c.s.userAgent())
121773	if c.ifNoneMatch_ != "" {
121774		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
121775	}
121776	var body io.Reader = nil
121777	c.urlParams_.Set("alt", alt)
121778	c.urlParams_.Set("prettyPrint", "false")
121779	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments/{commitment}")
121780	urls += "?" + c.urlParams_.Encode()
121781	req, err := http.NewRequest("GET", urls, body)
121782	if err != nil {
121783		return nil, err
121784	}
121785	req.Header = reqHeaders
121786	googleapi.Expand(req.URL, map[string]string{
121787		"project":    c.project,
121788		"region":     c.region,
121789		"commitment": c.commitment,
121790	})
121791	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121792}
121793
121794// Do executes the "compute.regionCommitments.get" call.
121795// Exactly one of *Commitment or error will be non-nil. Any non-2xx
121796// status code is an error. Response headers are in either
121797// *Commitment.ServerResponse.Header or (if a response was returned at
121798// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121799// to check whether the returned error was because
121800// http.StatusNotModified was returned.
121801func (c *RegionCommitmentsGetCall) Do(opts ...googleapi.CallOption) (*Commitment, error) {
121802	gensupport.SetOptions(c.urlParams_, opts...)
121803	res, err := c.doRequest("json")
121804	if res != nil && res.StatusCode == http.StatusNotModified {
121805		if res.Body != nil {
121806			res.Body.Close()
121807		}
121808		return nil, &googleapi.Error{
121809			Code:   res.StatusCode,
121810			Header: res.Header,
121811		}
121812	}
121813	if err != nil {
121814		return nil, err
121815	}
121816	defer googleapi.CloseBody(res)
121817	if err := googleapi.CheckResponse(res); err != nil {
121818		return nil, err
121819	}
121820	ret := &Commitment{
121821		ServerResponse: googleapi.ServerResponse{
121822			Header:         res.Header,
121823			HTTPStatusCode: res.StatusCode,
121824		},
121825	}
121826	target := &ret
121827	if err := gensupport.DecodeResponse(target, res); err != nil {
121828		return nil, err
121829	}
121830	return ret, nil
121831	// {
121832	//   "description": "Returns the specified commitment resource. Gets a list of available commitments by making a list() request.",
121833	//   "httpMethod": "GET",
121834	//   "id": "compute.regionCommitments.get",
121835	//   "parameterOrder": [
121836	//     "project",
121837	//     "region",
121838	//     "commitment"
121839	//   ],
121840	//   "parameters": {
121841	//     "commitment": {
121842	//       "description": "Name of the commitment to return.",
121843	//       "location": "path",
121844	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
121845	//       "required": true,
121846	//       "type": "string"
121847	//     },
121848	//     "project": {
121849	//       "description": "Project ID for this request.",
121850	//       "location": "path",
121851	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121852	//       "required": true,
121853	//       "type": "string"
121854	//     },
121855	//     "region": {
121856	//       "description": "Name of the region for this request.",
121857	//       "location": "path",
121858	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121859	//       "required": true,
121860	//       "type": "string"
121861	//     }
121862	//   },
121863	//   "path": "{project}/regions/{region}/commitments/{commitment}",
121864	//   "response": {
121865	//     "$ref": "Commitment"
121866	//   },
121867	//   "scopes": [
121868	//     "https://www.googleapis.com/auth/cloud-platform",
121869	//     "https://www.googleapis.com/auth/compute",
121870	//     "https://www.googleapis.com/auth/compute.readonly"
121871	//   ]
121872	// }
121873
121874}
121875
121876// method id "compute.regionCommitments.insert":
121877
121878type RegionCommitmentsInsertCall struct {
121879	s          *Service
121880	project    string
121881	region     string
121882	commitment *Commitment
121883	urlParams_ gensupport.URLParams
121884	ctx_       context.Context
121885	header_    http.Header
121886}
121887
121888// Insert: Creates a commitment in the specified project using the data
121889// included in the request.
121890func (r *RegionCommitmentsService) Insert(project string, region string, commitment *Commitment) *RegionCommitmentsInsertCall {
121891	c := &RegionCommitmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121892	c.project = project
121893	c.region = region
121894	c.commitment = commitment
121895	return c
121896}
121897
121898// RequestId sets the optional parameter "requestId": An optional
121899// request ID to identify requests. Specify a unique request ID so that
121900// if you must retry your request, the server will know to ignore the
121901// request if it has already been completed.
121902//
121903// For example, consider a situation where you make an initial request
121904// and the request times out. If you make the request again with the
121905// same request ID, the server can check if original operation with the
121906// same request ID was received, and if so, will ignore the second
121907// request. This prevents clients from accidentally creating duplicate
121908// commitments.
121909//
121910// The request ID must be a valid UUID with the exception that zero UUID
121911// is not supported (00000000-0000-0000-0000-000000000000).
121912func (c *RegionCommitmentsInsertCall) RequestId(requestId string) *RegionCommitmentsInsertCall {
121913	c.urlParams_.Set("requestId", requestId)
121914	return c
121915}
121916
121917// Fields allows partial responses to be retrieved. See
121918// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121919// for more information.
121920func (c *RegionCommitmentsInsertCall) Fields(s ...googleapi.Field) *RegionCommitmentsInsertCall {
121921	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121922	return c
121923}
121924
121925// Context sets the context to be used in this call's Do method. Any
121926// pending HTTP request will be aborted if the provided context is
121927// canceled.
121928func (c *RegionCommitmentsInsertCall) Context(ctx context.Context) *RegionCommitmentsInsertCall {
121929	c.ctx_ = ctx
121930	return c
121931}
121932
121933// Header returns an http.Header that can be modified by the caller to
121934// add HTTP headers to the request.
121935func (c *RegionCommitmentsInsertCall) Header() http.Header {
121936	if c.header_ == nil {
121937		c.header_ = make(http.Header)
121938	}
121939	return c.header_
121940}
121941
121942func (c *RegionCommitmentsInsertCall) doRequest(alt string) (*http.Response, error) {
121943	reqHeaders := make(http.Header)
121944	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
121945	for k, v := range c.header_ {
121946		reqHeaders[k] = v
121947	}
121948	reqHeaders.Set("User-Agent", c.s.userAgent())
121949	var body io.Reader = nil
121950	body, err := googleapi.WithoutDataWrapper.JSONReader(c.commitment)
121951	if err != nil {
121952		return nil, err
121953	}
121954	reqHeaders.Set("Content-Type", "application/json")
121955	c.urlParams_.Set("alt", alt)
121956	c.urlParams_.Set("prettyPrint", "false")
121957	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments")
121958	urls += "?" + c.urlParams_.Encode()
121959	req, err := http.NewRequest("POST", urls, body)
121960	if err != nil {
121961		return nil, err
121962	}
121963	req.Header = reqHeaders
121964	googleapi.Expand(req.URL, map[string]string{
121965		"project": c.project,
121966		"region":  c.region,
121967	})
121968	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121969}
121970
121971// Do executes the "compute.regionCommitments.insert" call.
121972// Exactly one of *Operation or error will be non-nil. Any non-2xx
121973// status code is an error. Response headers are in either
121974// *Operation.ServerResponse.Header or (if a response was returned at
121975// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121976// to check whether the returned error was because
121977// http.StatusNotModified was returned.
121978func (c *RegionCommitmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121979	gensupport.SetOptions(c.urlParams_, opts...)
121980	res, err := c.doRequest("json")
121981	if res != nil && res.StatusCode == http.StatusNotModified {
121982		if res.Body != nil {
121983			res.Body.Close()
121984		}
121985		return nil, &googleapi.Error{
121986			Code:   res.StatusCode,
121987			Header: res.Header,
121988		}
121989	}
121990	if err != nil {
121991		return nil, err
121992	}
121993	defer googleapi.CloseBody(res)
121994	if err := googleapi.CheckResponse(res); err != nil {
121995		return nil, err
121996	}
121997	ret := &Operation{
121998		ServerResponse: googleapi.ServerResponse{
121999			Header:         res.Header,
122000			HTTPStatusCode: res.StatusCode,
122001		},
122002	}
122003	target := &ret
122004	if err := gensupport.DecodeResponse(target, res); err != nil {
122005		return nil, err
122006	}
122007	return ret, nil
122008	// {
122009	//   "description": "Creates a commitment in the specified project using the data included in the request.",
122010	//   "httpMethod": "POST",
122011	//   "id": "compute.regionCommitments.insert",
122012	//   "parameterOrder": [
122013	//     "project",
122014	//     "region"
122015	//   ],
122016	//   "parameters": {
122017	//     "project": {
122018	//       "description": "Project ID for this request.",
122019	//       "location": "path",
122020	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122021	//       "required": true,
122022	//       "type": "string"
122023	//     },
122024	//     "region": {
122025	//       "description": "Name of the region for this request.",
122026	//       "location": "path",
122027	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122028	//       "required": true,
122029	//       "type": "string"
122030	//     },
122031	//     "requestId": {
122032	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
122033	//       "location": "query",
122034	//       "type": "string"
122035	//     }
122036	//   },
122037	//   "path": "{project}/regions/{region}/commitments",
122038	//   "request": {
122039	//     "$ref": "Commitment"
122040	//   },
122041	//   "response": {
122042	//     "$ref": "Operation"
122043	//   },
122044	//   "scopes": [
122045	//     "https://www.googleapis.com/auth/cloud-platform",
122046	//     "https://www.googleapis.com/auth/compute"
122047	//   ]
122048	// }
122049
122050}
122051
122052// method id "compute.regionCommitments.list":
122053
122054type RegionCommitmentsListCall struct {
122055	s            *Service
122056	project      string
122057	region       string
122058	urlParams_   gensupport.URLParams
122059	ifNoneMatch_ string
122060	ctx_         context.Context
122061	header_      http.Header
122062}
122063
122064// List: Retrieves a list of commitments contained within the specified
122065// region.
122066func (r *RegionCommitmentsService) List(project string, region string) *RegionCommitmentsListCall {
122067	c := &RegionCommitmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122068	c.project = project
122069	c.region = region
122070	return c
122071}
122072
122073// Filter sets the optional parameter "filter": A filter expression that
122074// filters resources listed in the response. The expression must specify
122075// the field name, a comparison operator, and the value that you want to
122076// use for filtering. The value must be a string, a number, or a
122077// boolean. The comparison operator must be either =, !=, >, or <.
122078//
122079// For example, if you are filtering Compute Engine instances, you can
122080// exclude instances named example-instance by specifying name !=
122081// example-instance.
122082//
122083// You can also filter nested fields. For example, you could specify
122084// scheduling.automaticRestart = false to include instances only if they
122085// are not scheduled for automatic restarts. You can use filtering on
122086// nested fields to filter based on resource labels.
122087//
122088// To filter on multiple expressions, provide each separate expression
122089// within parentheses. For example, (scheduling.automaticRestart = true)
122090// (cpuPlatform = "Intel Skylake"). By default, each expression is an
122091// AND expression. However, you can include AND and OR expressions
122092// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
122093// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
122094// true).
122095func (c *RegionCommitmentsListCall) Filter(filter string) *RegionCommitmentsListCall {
122096	c.urlParams_.Set("filter", filter)
122097	return c
122098}
122099
122100// MaxResults sets the optional parameter "maxResults": The maximum
122101// number of results per page that should be returned. If the number of
122102// available results is larger than maxResults, Compute Engine returns a
122103// nextPageToken that can be used to get the next page of results in
122104// subsequent list requests. Acceptable values are 0 to 500, inclusive.
122105// (Default: 500)
122106func (c *RegionCommitmentsListCall) MaxResults(maxResults int64) *RegionCommitmentsListCall {
122107	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
122108	return c
122109}
122110
122111// OrderBy sets the optional parameter "orderBy": Sorts list results by
122112// a certain order. By default, results are returned in alphanumerical
122113// order based on the resource name.
122114//
122115// You can also sort results in descending order based on the creation
122116// timestamp using orderBy="creationTimestamp desc". This sorts results
122117// based on the creationTimestamp field in reverse chronological order
122118// (newest result first). Use this to sort resources like operations so
122119// that the newest operation is returned first.
122120//
122121// Currently, only sorting by name or creationTimestamp desc is
122122// supported.
122123func (c *RegionCommitmentsListCall) OrderBy(orderBy string) *RegionCommitmentsListCall {
122124	c.urlParams_.Set("orderBy", orderBy)
122125	return c
122126}
122127
122128// PageToken sets the optional parameter "pageToken": Specifies a page
122129// token to use. Set pageToken to the nextPageToken returned by a
122130// previous list request to get the next page of results.
122131func (c *RegionCommitmentsListCall) PageToken(pageToken string) *RegionCommitmentsListCall {
122132	c.urlParams_.Set("pageToken", pageToken)
122133	return c
122134}
122135
122136// Fields allows partial responses to be retrieved. See
122137// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122138// for more information.
122139func (c *RegionCommitmentsListCall) Fields(s ...googleapi.Field) *RegionCommitmentsListCall {
122140	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122141	return c
122142}
122143
122144// IfNoneMatch sets the optional parameter which makes the operation
122145// fail if the object's ETag matches the given value. This is useful for
122146// getting updates only after the object has changed since the last
122147// request. Use googleapi.IsNotModified to check whether the response
122148// error from Do is the result of In-None-Match.
122149func (c *RegionCommitmentsListCall) IfNoneMatch(entityTag string) *RegionCommitmentsListCall {
122150	c.ifNoneMatch_ = entityTag
122151	return c
122152}
122153
122154// Context sets the context to be used in this call's Do method. Any
122155// pending HTTP request will be aborted if the provided context is
122156// canceled.
122157func (c *RegionCommitmentsListCall) Context(ctx context.Context) *RegionCommitmentsListCall {
122158	c.ctx_ = ctx
122159	return c
122160}
122161
122162// Header returns an http.Header that can be modified by the caller to
122163// add HTTP headers to the request.
122164func (c *RegionCommitmentsListCall) Header() http.Header {
122165	if c.header_ == nil {
122166		c.header_ = make(http.Header)
122167	}
122168	return c.header_
122169}
122170
122171func (c *RegionCommitmentsListCall) doRequest(alt string) (*http.Response, error) {
122172	reqHeaders := make(http.Header)
122173	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
122174	for k, v := range c.header_ {
122175		reqHeaders[k] = v
122176	}
122177	reqHeaders.Set("User-Agent", c.s.userAgent())
122178	if c.ifNoneMatch_ != "" {
122179		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
122180	}
122181	var body io.Reader = nil
122182	c.urlParams_.Set("alt", alt)
122183	c.urlParams_.Set("prettyPrint", "false")
122184	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments")
122185	urls += "?" + c.urlParams_.Encode()
122186	req, err := http.NewRequest("GET", urls, body)
122187	if err != nil {
122188		return nil, err
122189	}
122190	req.Header = reqHeaders
122191	googleapi.Expand(req.URL, map[string]string{
122192		"project": c.project,
122193		"region":  c.region,
122194	})
122195	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122196}
122197
122198// Do executes the "compute.regionCommitments.list" call.
122199// Exactly one of *CommitmentList or error will be non-nil. Any non-2xx
122200// status code is an error. Response headers are in either
122201// *CommitmentList.ServerResponse.Header or (if a response was returned
122202// at all) in error.(*googleapi.Error).Header. Use
122203// googleapi.IsNotModified to check whether the returned error was
122204// because http.StatusNotModified was returned.
122205func (c *RegionCommitmentsListCall) Do(opts ...googleapi.CallOption) (*CommitmentList, error) {
122206	gensupport.SetOptions(c.urlParams_, opts...)
122207	res, err := c.doRequest("json")
122208	if res != nil && res.StatusCode == http.StatusNotModified {
122209		if res.Body != nil {
122210			res.Body.Close()
122211		}
122212		return nil, &googleapi.Error{
122213			Code:   res.StatusCode,
122214			Header: res.Header,
122215		}
122216	}
122217	if err != nil {
122218		return nil, err
122219	}
122220	defer googleapi.CloseBody(res)
122221	if err := googleapi.CheckResponse(res); err != nil {
122222		return nil, err
122223	}
122224	ret := &CommitmentList{
122225		ServerResponse: googleapi.ServerResponse{
122226			Header:         res.Header,
122227			HTTPStatusCode: res.StatusCode,
122228		},
122229	}
122230	target := &ret
122231	if err := gensupport.DecodeResponse(target, res); err != nil {
122232		return nil, err
122233	}
122234	return ret, nil
122235	// {
122236	//   "description": "Retrieves a list of commitments contained within the specified region.",
122237	//   "httpMethod": "GET",
122238	//   "id": "compute.regionCommitments.list",
122239	//   "parameterOrder": [
122240	//     "project",
122241	//     "region"
122242	//   ],
122243	//   "parameters": {
122244	//     "filter": {
122245	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
122246	//       "location": "query",
122247	//       "type": "string"
122248	//     },
122249	//     "maxResults": {
122250	//       "default": "500",
122251	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
122252	//       "format": "uint32",
122253	//       "location": "query",
122254	//       "minimum": "0",
122255	//       "type": "integer"
122256	//     },
122257	//     "orderBy": {
122258	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
122259	//       "location": "query",
122260	//       "type": "string"
122261	//     },
122262	//     "pageToken": {
122263	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
122264	//       "location": "query",
122265	//       "type": "string"
122266	//     },
122267	//     "project": {
122268	//       "description": "Project ID for this request.",
122269	//       "location": "path",
122270	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122271	//       "required": true,
122272	//       "type": "string"
122273	//     },
122274	//     "region": {
122275	//       "description": "Name of the region for this request.",
122276	//       "location": "path",
122277	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122278	//       "required": true,
122279	//       "type": "string"
122280	//     }
122281	//   },
122282	//   "path": "{project}/regions/{region}/commitments",
122283	//   "response": {
122284	//     "$ref": "CommitmentList"
122285	//   },
122286	//   "scopes": [
122287	//     "https://www.googleapis.com/auth/cloud-platform",
122288	//     "https://www.googleapis.com/auth/compute",
122289	//     "https://www.googleapis.com/auth/compute.readonly"
122290	//   ]
122291	// }
122292
122293}
122294
122295// Pages invokes f for each page of results.
122296// A non-nil error returned from f will halt the iteration.
122297// The provided context supersedes any context provided to the Context method.
122298func (c *RegionCommitmentsListCall) Pages(ctx context.Context, f func(*CommitmentList) error) error {
122299	c.ctx_ = ctx
122300	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
122301	for {
122302		x, err := c.Do()
122303		if err != nil {
122304			return err
122305		}
122306		if err := f(x); err != nil {
122307			return err
122308		}
122309		if x.NextPageToken == "" {
122310			return nil
122311		}
122312		c.PageToken(x.NextPageToken)
122313	}
122314}
122315
122316// method id "compute.regionCommitments.testIamPermissions":
122317
122318type RegionCommitmentsTestIamPermissionsCall struct {
122319	s                      *Service
122320	project                string
122321	region                 string
122322	resource               string
122323	testpermissionsrequest *TestPermissionsRequest
122324	urlParams_             gensupport.URLParams
122325	ctx_                   context.Context
122326	header_                http.Header
122327}
122328
122329// TestIamPermissions: Returns permissions that a caller has on the
122330// specified resource.
122331func (r *RegionCommitmentsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionCommitmentsTestIamPermissionsCall {
122332	c := &RegionCommitmentsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122333	c.project = project
122334	c.region = region
122335	c.resource = resource
122336	c.testpermissionsrequest = testpermissionsrequest
122337	return c
122338}
122339
122340// Fields allows partial responses to be retrieved. See
122341// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122342// for more information.
122343func (c *RegionCommitmentsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionCommitmentsTestIamPermissionsCall {
122344	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122345	return c
122346}
122347
122348// Context sets the context to be used in this call's Do method. Any
122349// pending HTTP request will be aborted if the provided context is
122350// canceled.
122351func (c *RegionCommitmentsTestIamPermissionsCall) Context(ctx context.Context) *RegionCommitmentsTestIamPermissionsCall {
122352	c.ctx_ = ctx
122353	return c
122354}
122355
122356// Header returns an http.Header that can be modified by the caller to
122357// add HTTP headers to the request.
122358func (c *RegionCommitmentsTestIamPermissionsCall) Header() http.Header {
122359	if c.header_ == nil {
122360		c.header_ = make(http.Header)
122361	}
122362	return c.header_
122363}
122364
122365func (c *RegionCommitmentsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
122366	reqHeaders := make(http.Header)
122367	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
122368	for k, v := range c.header_ {
122369		reqHeaders[k] = v
122370	}
122371	reqHeaders.Set("User-Agent", c.s.userAgent())
122372	var body io.Reader = nil
122373	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
122374	if err != nil {
122375		return nil, err
122376	}
122377	reqHeaders.Set("Content-Type", "application/json")
122378	c.urlParams_.Set("alt", alt)
122379	c.urlParams_.Set("prettyPrint", "false")
122380	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments/{resource}/testIamPermissions")
122381	urls += "?" + c.urlParams_.Encode()
122382	req, err := http.NewRequest("POST", urls, body)
122383	if err != nil {
122384		return nil, err
122385	}
122386	req.Header = reqHeaders
122387	googleapi.Expand(req.URL, map[string]string{
122388		"project":  c.project,
122389		"region":   c.region,
122390		"resource": c.resource,
122391	})
122392	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122393}
122394
122395// Do executes the "compute.regionCommitments.testIamPermissions" call.
122396// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
122397// non-2xx status code is an error. Response headers are in either
122398// *TestPermissionsResponse.ServerResponse.Header or (if a response was
122399// returned at all) in error.(*googleapi.Error).Header. Use
122400// googleapi.IsNotModified to check whether the returned error was
122401// because http.StatusNotModified was returned.
122402func (c *RegionCommitmentsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
122403	gensupport.SetOptions(c.urlParams_, opts...)
122404	res, err := c.doRequest("json")
122405	if res != nil && res.StatusCode == http.StatusNotModified {
122406		if res.Body != nil {
122407			res.Body.Close()
122408		}
122409		return nil, &googleapi.Error{
122410			Code:   res.StatusCode,
122411			Header: res.Header,
122412		}
122413	}
122414	if err != nil {
122415		return nil, err
122416	}
122417	defer googleapi.CloseBody(res)
122418	if err := googleapi.CheckResponse(res); err != nil {
122419		return nil, err
122420	}
122421	ret := &TestPermissionsResponse{
122422		ServerResponse: googleapi.ServerResponse{
122423			Header:         res.Header,
122424			HTTPStatusCode: res.StatusCode,
122425		},
122426	}
122427	target := &ret
122428	if err := gensupport.DecodeResponse(target, res); err != nil {
122429		return nil, err
122430	}
122431	return ret, nil
122432	// {
122433	//   "description": "Returns permissions that a caller has on the specified resource.",
122434	//   "httpMethod": "POST",
122435	//   "id": "compute.regionCommitments.testIamPermissions",
122436	//   "parameterOrder": [
122437	//     "project",
122438	//     "region",
122439	//     "resource"
122440	//   ],
122441	//   "parameters": {
122442	//     "project": {
122443	//       "description": "Project ID for this request.",
122444	//       "location": "path",
122445	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122446	//       "required": true,
122447	//       "type": "string"
122448	//     },
122449	//     "region": {
122450	//       "description": "The name of the region for this request.",
122451	//       "location": "path",
122452	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122453	//       "required": true,
122454	//       "type": "string"
122455	//     },
122456	//     "resource": {
122457	//       "description": "Name or id of the resource for this request.",
122458	//       "location": "path",
122459	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
122460	//       "required": true,
122461	//       "type": "string"
122462	//     }
122463	//   },
122464	//   "path": "{project}/regions/{region}/commitments/{resource}/testIamPermissions",
122465	//   "request": {
122466	//     "$ref": "TestPermissionsRequest"
122467	//   },
122468	//   "response": {
122469	//     "$ref": "TestPermissionsResponse"
122470	//   },
122471	//   "scopes": [
122472	//     "https://www.googleapis.com/auth/cloud-platform",
122473	//     "https://www.googleapis.com/auth/compute",
122474	//     "https://www.googleapis.com/auth/compute.readonly"
122475	//   ]
122476	// }
122477
122478}
122479
122480// method id "compute.regionCommitments.updateReservations":
122481
122482type RegionCommitmentsUpdateReservationsCall struct {
122483	s                                          *Service
122484	project                                    string
122485	region                                     string
122486	commitment                                 string
122487	regioncommitmentsupdatereservationsrequest *RegionCommitmentsUpdateReservationsRequest
122488	urlParams_                                 gensupport.URLParams
122489	ctx_                                       context.Context
122490	header_                                    http.Header
122491}
122492
122493// UpdateReservations: Transfers GPUs or local SSDs between reservations
122494// within commitments.
122495func (r *RegionCommitmentsService) UpdateReservations(project string, region string, commitment string, regioncommitmentsupdatereservationsrequest *RegionCommitmentsUpdateReservationsRequest) *RegionCommitmentsUpdateReservationsCall {
122496	c := &RegionCommitmentsUpdateReservationsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122497	c.project = project
122498	c.region = region
122499	c.commitment = commitment
122500	c.regioncommitmentsupdatereservationsrequest = regioncommitmentsupdatereservationsrequest
122501	return c
122502}
122503
122504// RequestId sets the optional parameter "requestId": An optional
122505// request ID to identify requests. Specify a unique request ID so that
122506// if you must retry your request, the server will know to ignore the
122507// request if it has already been completed.
122508//
122509// For example, consider a situation where you make an initial request
122510// and the request times out. If you make the request again with the
122511// same request ID, the server can check if original operation with the
122512// same request ID was received, and if so, will ignore the second
122513// request. This prevents clients from accidentally creating duplicate
122514// commitments.
122515//
122516// The request ID must be a valid UUID with the exception that zero UUID
122517// is not supported (00000000-0000-0000-0000-000000000000).
122518func (c *RegionCommitmentsUpdateReservationsCall) RequestId(requestId string) *RegionCommitmentsUpdateReservationsCall {
122519	c.urlParams_.Set("requestId", requestId)
122520	return c
122521}
122522
122523// Fields allows partial responses to be retrieved. See
122524// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122525// for more information.
122526func (c *RegionCommitmentsUpdateReservationsCall) Fields(s ...googleapi.Field) *RegionCommitmentsUpdateReservationsCall {
122527	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122528	return c
122529}
122530
122531// Context sets the context to be used in this call's Do method. Any
122532// pending HTTP request will be aborted if the provided context is
122533// canceled.
122534func (c *RegionCommitmentsUpdateReservationsCall) Context(ctx context.Context) *RegionCommitmentsUpdateReservationsCall {
122535	c.ctx_ = ctx
122536	return c
122537}
122538
122539// Header returns an http.Header that can be modified by the caller to
122540// add HTTP headers to the request.
122541func (c *RegionCommitmentsUpdateReservationsCall) Header() http.Header {
122542	if c.header_ == nil {
122543		c.header_ = make(http.Header)
122544	}
122545	return c.header_
122546}
122547
122548func (c *RegionCommitmentsUpdateReservationsCall) doRequest(alt string) (*http.Response, error) {
122549	reqHeaders := make(http.Header)
122550	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
122551	for k, v := range c.header_ {
122552		reqHeaders[k] = v
122553	}
122554	reqHeaders.Set("User-Agent", c.s.userAgent())
122555	var body io.Reader = nil
122556	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioncommitmentsupdatereservationsrequest)
122557	if err != nil {
122558		return nil, err
122559	}
122560	reqHeaders.Set("Content-Type", "application/json")
122561	c.urlParams_.Set("alt", alt)
122562	c.urlParams_.Set("prettyPrint", "false")
122563	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments/{commitment}/updateReservations")
122564	urls += "?" + c.urlParams_.Encode()
122565	req, err := http.NewRequest("POST", urls, body)
122566	if err != nil {
122567		return nil, err
122568	}
122569	req.Header = reqHeaders
122570	googleapi.Expand(req.URL, map[string]string{
122571		"project":    c.project,
122572		"region":     c.region,
122573		"commitment": c.commitment,
122574	})
122575	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122576}
122577
122578// Do executes the "compute.regionCommitments.updateReservations" call.
122579// Exactly one of *Operation or error will be non-nil. Any non-2xx
122580// status code is an error. Response headers are in either
122581// *Operation.ServerResponse.Header or (if a response was returned at
122582// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122583// to check whether the returned error was because
122584// http.StatusNotModified was returned.
122585func (c *RegionCommitmentsUpdateReservationsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122586	gensupport.SetOptions(c.urlParams_, opts...)
122587	res, err := c.doRequest("json")
122588	if res != nil && res.StatusCode == http.StatusNotModified {
122589		if res.Body != nil {
122590			res.Body.Close()
122591		}
122592		return nil, &googleapi.Error{
122593			Code:   res.StatusCode,
122594			Header: res.Header,
122595		}
122596	}
122597	if err != nil {
122598		return nil, err
122599	}
122600	defer googleapi.CloseBody(res)
122601	if err := googleapi.CheckResponse(res); err != nil {
122602		return nil, err
122603	}
122604	ret := &Operation{
122605		ServerResponse: googleapi.ServerResponse{
122606			Header:         res.Header,
122607			HTTPStatusCode: res.StatusCode,
122608		},
122609	}
122610	target := &ret
122611	if err := gensupport.DecodeResponse(target, res); err != nil {
122612		return nil, err
122613	}
122614	return ret, nil
122615	// {
122616	//   "description": "Transfers GPUs or local SSDs between reservations within commitments.",
122617	//   "httpMethod": "POST",
122618	//   "id": "compute.regionCommitments.updateReservations",
122619	//   "parameterOrder": [
122620	//     "project",
122621	//     "region",
122622	//     "commitment"
122623	//   ],
122624	//   "parameters": {
122625	//     "commitment": {
122626	//       "description": "Name of the commitment for which the reservation is being updated.",
122627	//       "location": "path",
122628	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
122629	//       "required": true,
122630	//       "type": "string"
122631	//     },
122632	//     "project": {
122633	//       "description": "Project ID for this request.",
122634	//       "location": "path",
122635	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122636	//       "required": true,
122637	//       "type": "string"
122638	//     },
122639	//     "region": {
122640	//       "description": "Name of the region for this request.",
122641	//       "location": "path",
122642	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122643	//       "required": true,
122644	//       "type": "string"
122645	//     },
122646	//     "requestId": {
122647	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
122648	//       "location": "query",
122649	//       "type": "string"
122650	//     }
122651	//   },
122652	//   "path": "{project}/regions/{region}/commitments/{commitment}/updateReservations",
122653	//   "request": {
122654	//     "$ref": "RegionCommitmentsUpdateReservationsRequest"
122655	//   },
122656	//   "response": {
122657	//     "$ref": "Operation"
122658	//   },
122659	//   "scopes": [
122660	//     "https://www.googleapis.com/auth/cloud-platform",
122661	//     "https://www.googleapis.com/auth/compute"
122662	//   ]
122663	// }
122664
122665}
122666
122667// method id "compute.regionDiskTypes.get":
122668
122669type RegionDiskTypesGetCall struct {
122670	s            *Service
122671	project      string
122672	region       string
122673	diskType     string
122674	urlParams_   gensupport.URLParams
122675	ifNoneMatch_ string
122676	ctx_         context.Context
122677	header_      http.Header
122678}
122679
122680// Get: Returns the specified regional disk type. Gets a list of
122681// available disk types by making a list() request.
122682func (r *RegionDiskTypesService) Get(project string, region string, diskType string) *RegionDiskTypesGetCall {
122683	c := &RegionDiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122684	c.project = project
122685	c.region = region
122686	c.diskType = diskType
122687	return c
122688}
122689
122690// Fields allows partial responses to be retrieved. See
122691// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122692// for more information.
122693func (c *RegionDiskTypesGetCall) Fields(s ...googleapi.Field) *RegionDiskTypesGetCall {
122694	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122695	return c
122696}
122697
122698// IfNoneMatch sets the optional parameter which makes the operation
122699// fail if the object's ETag matches the given value. This is useful for
122700// getting updates only after the object has changed since the last
122701// request. Use googleapi.IsNotModified to check whether the response
122702// error from Do is the result of In-None-Match.
122703func (c *RegionDiskTypesGetCall) IfNoneMatch(entityTag string) *RegionDiskTypesGetCall {
122704	c.ifNoneMatch_ = entityTag
122705	return c
122706}
122707
122708// Context sets the context to be used in this call's Do method. Any
122709// pending HTTP request will be aborted if the provided context is
122710// canceled.
122711func (c *RegionDiskTypesGetCall) Context(ctx context.Context) *RegionDiskTypesGetCall {
122712	c.ctx_ = ctx
122713	return c
122714}
122715
122716// Header returns an http.Header that can be modified by the caller to
122717// add HTTP headers to the request.
122718func (c *RegionDiskTypesGetCall) Header() http.Header {
122719	if c.header_ == nil {
122720		c.header_ = make(http.Header)
122721	}
122722	return c.header_
122723}
122724
122725func (c *RegionDiskTypesGetCall) doRequest(alt string) (*http.Response, error) {
122726	reqHeaders := make(http.Header)
122727	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
122728	for k, v := range c.header_ {
122729		reqHeaders[k] = v
122730	}
122731	reqHeaders.Set("User-Agent", c.s.userAgent())
122732	if c.ifNoneMatch_ != "" {
122733		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
122734	}
122735	var body io.Reader = nil
122736	c.urlParams_.Set("alt", alt)
122737	c.urlParams_.Set("prettyPrint", "false")
122738	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/diskTypes/{diskType}")
122739	urls += "?" + c.urlParams_.Encode()
122740	req, err := http.NewRequest("GET", urls, body)
122741	if err != nil {
122742		return nil, err
122743	}
122744	req.Header = reqHeaders
122745	googleapi.Expand(req.URL, map[string]string{
122746		"project":  c.project,
122747		"region":   c.region,
122748		"diskType": c.diskType,
122749	})
122750	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122751}
122752
122753// Do executes the "compute.regionDiskTypes.get" call.
122754// Exactly one of *DiskType or error will be non-nil. Any non-2xx status
122755// code is an error. Response headers are in either
122756// *DiskType.ServerResponse.Header or (if a response was returned at
122757// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122758// to check whether the returned error was because
122759// http.StatusNotModified was returned.
122760func (c *RegionDiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) {
122761	gensupport.SetOptions(c.urlParams_, opts...)
122762	res, err := c.doRequest("json")
122763	if res != nil && res.StatusCode == http.StatusNotModified {
122764		if res.Body != nil {
122765			res.Body.Close()
122766		}
122767		return nil, &googleapi.Error{
122768			Code:   res.StatusCode,
122769			Header: res.Header,
122770		}
122771	}
122772	if err != nil {
122773		return nil, err
122774	}
122775	defer googleapi.CloseBody(res)
122776	if err := googleapi.CheckResponse(res); err != nil {
122777		return nil, err
122778	}
122779	ret := &DiskType{
122780		ServerResponse: googleapi.ServerResponse{
122781			Header:         res.Header,
122782			HTTPStatusCode: res.StatusCode,
122783		},
122784	}
122785	target := &ret
122786	if err := gensupport.DecodeResponse(target, res); err != nil {
122787		return nil, err
122788	}
122789	return ret, nil
122790	// {
122791	//   "description": "Returns the specified regional disk type. Gets a list of available disk types by making a list() request.",
122792	//   "httpMethod": "GET",
122793	//   "id": "compute.regionDiskTypes.get",
122794	//   "parameterOrder": [
122795	//     "project",
122796	//     "region",
122797	//     "diskType"
122798	//   ],
122799	//   "parameters": {
122800	//     "diskType": {
122801	//       "description": "Name of the disk type to return.",
122802	//       "location": "path",
122803	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
122804	//       "required": true,
122805	//       "type": "string"
122806	//     },
122807	//     "project": {
122808	//       "description": "Project ID for this request.",
122809	//       "location": "path",
122810	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122811	//       "required": true,
122812	//       "type": "string"
122813	//     },
122814	//     "region": {
122815	//       "description": "The name of the region for this request.",
122816	//       "location": "path",
122817	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122818	//       "required": true,
122819	//       "type": "string"
122820	//     }
122821	//   },
122822	//   "path": "{project}/regions/{region}/diskTypes/{diskType}",
122823	//   "response": {
122824	//     "$ref": "DiskType"
122825	//   },
122826	//   "scopes": [
122827	//     "https://www.googleapis.com/auth/cloud-platform",
122828	//     "https://www.googleapis.com/auth/compute",
122829	//     "https://www.googleapis.com/auth/compute.readonly"
122830	//   ]
122831	// }
122832
122833}
122834
122835// method id "compute.regionDiskTypes.list":
122836
122837type RegionDiskTypesListCall struct {
122838	s            *Service
122839	project      string
122840	region       string
122841	urlParams_   gensupport.URLParams
122842	ifNoneMatch_ string
122843	ctx_         context.Context
122844	header_      http.Header
122845}
122846
122847// List: Retrieves a list of regional disk types available to the
122848// specified project.
122849func (r *RegionDiskTypesService) List(project string, region string) *RegionDiskTypesListCall {
122850	c := &RegionDiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122851	c.project = project
122852	c.region = region
122853	return c
122854}
122855
122856// Filter sets the optional parameter "filter": A filter expression that
122857// filters resources listed in the response. The expression must specify
122858// the field name, a comparison operator, and the value that you want to
122859// use for filtering. The value must be a string, a number, or a
122860// boolean. The comparison operator must be either =, !=, >, or <.
122861//
122862// For example, if you are filtering Compute Engine instances, you can
122863// exclude instances named example-instance by specifying name !=
122864// example-instance.
122865//
122866// You can also filter nested fields. For example, you could specify
122867// scheduling.automaticRestart = false to include instances only if they
122868// are not scheduled for automatic restarts. You can use filtering on
122869// nested fields to filter based on resource labels.
122870//
122871// To filter on multiple expressions, provide each separate expression
122872// within parentheses. For example, (scheduling.automaticRestart = true)
122873// (cpuPlatform = "Intel Skylake"). By default, each expression is an
122874// AND expression. However, you can include AND and OR expressions
122875// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
122876// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
122877// true).
122878func (c *RegionDiskTypesListCall) Filter(filter string) *RegionDiskTypesListCall {
122879	c.urlParams_.Set("filter", filter)
122880	return c
122881}
122882
122883// MaxResults sets the optional parameter "maxResults": The maximum
122884// number of results per page that should be returned. If the number of
122885// available results is larger than maxResults, Compute Engine returns a
122886// nextPageToken that can be used to get the next page of results in
122887// subsequent list requests. Acceptable values are 0 to 500, inclusive.
122888// (Default: 500)
122889func (c *RegionDiskTypesListCall) MaxResults(maxResults int64) *RegionDiskTypesListCall {
122890	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
122891	return c
122892}
122893
122894// OrderBy sets the optional parameter "orderBy": Sorts list results by
122895// a certain order. By default, results are returned in alphanumerical
122896// order based on the resource name.
122897//
122898// You can also sort results in descending order based on the creation
122899// timestamp using orderBy="creationTimestamp desc". This sorts results
122900// based on the creationTimestamp field in reverse chronological order
122901// (newest result first). Use this to sort resources like operations so
122902// that the newest operation is returned first.
122903//
122904// Currently, only sorting by name or creationTimestamp desc is
122905// supported.
122906func (c *RegionDiskTypesListCall) OrderBy(orderBy string) *RegionDiskTypesListCall {
122907	c.urlParams_.Set("orderBy", orderBy)
122908	return c
122909}
122910
122911// PageToken sets the optional parameter "pageToken": Specifies a page
122912// token to use. Set pageToken to the nextPageToken returned by a
122913// previous list request to get the next page of results.
122914func (c *RegionDiskTypesListCall) PageToken(pageToken string) *RegionDiskTypesListCall {
122915	c.urlParams_.Set("pageToken", pageToken)
122916	return c
122917}
122918
122919// Fields allows partial responses to be retrieved. See
122920// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122921// for more information.
122922func (c *RegionDiskTypesListCall) Fields(s ...googleapi.Field) *RegionDiskTypesListCall {
122923	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122924	return c
122925}
122926
122927// IfNoneMatch sets the optional parameter which makes the operation
122928// fail if the object's ETag matches the given value. This is useful for
122929// getting updates only after the object has changed since the last
122930// request. Use googleapi.IsNotModified to check whether the response
122931// error from Do is the result of In-None-Match.
122932func (c *RegionDiskTypesListCall) IfNoneMatch(entityTag string) *RegionDiskTypesListCall {
122933	c.ifNoneMatch_ = entityTag
122934	return c
122935}
122936
122937// Context sets the context to be used in this call's Do method. Any
122938// pending HTTP request will be aborted if the provided context is
122939// canceled.
122940func (c *RegionDiskTypesListCall) Context(ctx context.Context) *RegionDiskTypesListCall {
122941	c.ctx_ = ctx
122942	return c
122943}
122944
122945// Header returns an http.Header that can be modified by the caller to
122946// add HTTP headers to the request.
122947func (c *RegionDiskTypesListCall) Header() http.Header {
122948	if c.header_ == nil {
122949		c.header_ = make(http.Header)
122950	}
122951	return c.header_
122952}
122953
122954func (c *RegionDiskTypesListCall) doRequest(alt string) (*http.Response, error) {
122955	reqHeaders := make(http.Header)
122956	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
122957	for k, v := range c.header_ {
122958		reqHeaders[k] = v
122959	}
122960	reqHeaders.Set("User-Agent", c.s.userAgent())
122961	if c.ifNoneMatch_ != "" {
122962		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
122963	}
122964	var body io.Reader = nil
122965	c.urlParams_.Set("alt", alt)
122966	c.urlParams_.Set("prettyPrint", "false")
122967	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/diskTypes")
122968	urls += "?" + c.urlParams_.Encode()
122969	req, err := http.NewRequest("GET", urls, body)
122970	if err != nil {
122971		return nil, err
122972	}
122973	req.Header = reqHeaders
122974	googleapi.Expand(req.URL, map[string]string{
122975		"project": c.project,
122976		"region":  c.region,
122977	})
122978	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122979}
122980
122981// Do executes the "compute.regionDiskTypes.list" call.
122982// Exactly one of *RegionDiskTypeList or error will be non-nil. Any
122983// non-2xx status code is an error. Response headers are in either
122984// *RegionDiskTypeList.ServerResponse.Header or (if a response was
122985// returned at all) in error.(*googleapi.Error).Header. Use
122986// googleapi.IsNotModified to check whether the returned error was
122987// because http.StatusNotModified was returned.
122988func (c *RegionDiskTypesListCall) Do(opts ...googleapi.CallOption) (*RegionDiskTypeList, error) {
122989	gensupport.SetOptions(c.urlParams_, opts...)
122990	res, err := c.doRequest("json")
122991	if res != nil && res.StatusCode == http.StatusNotModified {
122992		if res.Body != nil {
122993			res.Body.Close()
122994		}
122995		return nil, &googleapi.Error{
122996			Code:   res.StatusCode,
122997			Header: res.Header,
122998		}
122999	}
123000	if err != nil {
123001		return nil, err
123002	}
123003	defer googleapi.CloseBody(res)
123004	if err := googleapi.CheckResponse(res); err != nil {
123005		return nil, err
123006	}
123007	ret := &RegionDiskTypeList{
123008		ServerResponse: googleapi.ServerResponse{
123009			Header:         res.Header,
123010			HTTPStatusCode: res.StatusCode,
123011		},
123012	}
123013	target := &ret
123014	if err := gensupport.DecodeResponse(target, res); err != nil {
123015		return nil, err
123016	}
123017	return ret, nil
123018	// {
123019	//   "description": "Retrieves a list of regional disk types available to the specified project.",
123020	//   "httpMethod": "GET",
123021	//   "id": "compute.regionDiskTypes.list",
123022	//   "parameterOrder": [
123023	//     "project",
123024	//     "region"
123025	//   ],
123026	//   "parameters": {
123027	//     "filter": {
123028	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
123029	//       "location": "query",
123030	//       "type": "string"
123031	//     },
123032	//     "maxResults": {
123033	//       "default": "500",
123034	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
123035	//       "format": "uint32",
123036	//       "location": "query",
123037	//       "minimum": "0",
123038	//       "type": "integer"
123039	//     },
123040	//     "orderBy": {
123041	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
123042	//       "location": "query",
123043	//       "type": "string"
123044	//     },
123045	//     "pageToken": {
123046	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
123047	//       "location": "query",
123048	//       "type": "string"
123049	//     },
123050	//     "project": {
123051	//       "description": "Project ID for this request.",
123052	//       "location": "path",
123053	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123054	//       "required": true,
123055	//       "type": "string"
123056	//     },
123057	//     "region": {
123058	//       "description": "The name of the region for this request.",
123059	//       "location": "path",
123060	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123061	//       "required": true,
123062	//       "type": "string"
123063	//     }
123064	//   },
123065	//   "path": "{project}/regions/{region}/diskTypes",
123066	//   "response": {
123067	//     "$ref": "RegionDiskTypeList"
123068	//   },
123069	//   "scopes": [
123070	//     "https://www.googleapis.com/auth/cloud-platform",
123071	//     "https://www.googleapis.com/auth/compute",
123072	//     "https://www.googleapis.com/auth/compute.readonly"
123073	//   ]
123074	// }
123075
123076}
123077
123078// Pages invokes f for each page of results.
123079// A non-nil error returned from f will halt the iteration.
123080// The provided context supersedes any context provided to the Context method.
123081func (c *RegionDiskTypesListCall) Pages(ctx context.Context, f func(*RegionDiskTypeList) error) error {
123082	c.ctx_ = ctx
123083	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
123084	for {
123085		x, err := c.Do()
123086		if err != nil {
123087			return err
123088		}
123089		if err := f(x); err != nil {
123090			return err
123091		}
123092		if x.NextPageToken == "" {
123093			return nil
123094		}
123095		c.PageToken(x.NextPageToken)
123096	}
123097}
123098
123099// method id "compute.regionDisks.addResourcePolicies":
123100
123101type RegionDisksAddResourcePoliciesCall struct {
123102	s                                     *Service
123103	project                               string
123104	region                                string
123105	disk                                  string
123106	regiondisksaddresourcepoliciesrequest *RegionDisksAddResourcePoliciesRequest
123107	urlParams_                            gensupport.URLParams
123108	ctx_                                  context.Context
123109	header_                               http.Header
123110}
123111
123112// AddResourcePolicies: Adds existing resource policies to a regional
123113// disk. You can only add one policy which will be applied to this disk
123114// for scheduling snapshot creation.
123115func (r *RegionDisksService) AddResourcePolicies(project string, region string, disk string, regiondisksaddresourcepoliciesrequest *RegionDisksAddResourcePoliciesRequest) *RegionDisksAddResourcePoliciesCall {
123116	c := &RegionDisksAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123117	c.project = project
123118	c.region = region
123119	c.disk = disk
123120	c.regiondisksaddresourcepoliciesrequest = regiondisksaddresourcepoliciesrequest
123121	return c
123122}
123123
123124// RequestId sets the optional parameter "requestId": An optional
123125// request ID to identify requests. Specify a unique request ID so that
123126// if you must retry your request, the server will know to ignore the
123127// request if it has already been completed.
123128//
123129// For example, consider a situation where you make an initial request
123130// and the request times out. If you make the request again with the
123131// same request ID, the server can check if original operation with the
123132// same request ID was received, and if so, will ignore the second
123133// request. This prevents clients from accidentally creating duplicate
123134// commitments.
123135//
123136// The request ID must be a valid UUID with the exception that zero UUID
123137// is not supported (00000000-0000-0000-0000-000000000000).
123138func (c *RegionDisksAddResourcePoliciesCall) RequestId(requestId string) *RegionDisksAddResourcePoliciesCall {
123139	c.urlParams_.Set("requestId", requestId)
123140	return c
123141}
123142
123143// Fields allows partial responses to be retrieved. See
123144// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123145// for more information.
123146func (c *RegionDisksAddResourcePoliciesCall) Fields(s ...googleapi.Field) *RegionDisksAddResourcePoliciesCall {
123147	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123148	return c
123149}
123150
123151// Context sets the context to be used in this call's Do method. Any
123152// pending HTTP request will be aborted if the provided context is
123153// canceled.
123154func (c *RegionDisksAddResourcePoliciesCall) Context(ctx context.Context) *RegionDisksAddResourcePoliciesCall {
123155	c.ctx_ = ctx
123156	return c
123157}
123158
123159// Header returns an http.Header that can be modified by the caller to
123160// add HTTP headers to the request.
123161func (c *RegionDisksAddResourcePoliciesCall) Header() http.Header {
123162	if c.header_ == nil {
123163		c.header_ = make(http.Header)
123164	}
123165	return c.header_
123166}
123167
123168func (c *RegionDisksAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
123169	reqHeaders := make(http.Header)
123170	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
123171	for k, v := range c.header_ {
123172		reqHeaders[k] = v
123173	}
123174	reqHeaders.Set("User-Agent", c.s.userAgent())
123175	var body io.Reader = nil
123176	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksaddresourcepoliciesrequest)
123177	if err != nil {
123178		return nil, err
123179	}
123180	reqHeaders.Set("Content-Type", "application/json")
123181	c.urlParams_.Set("alt", alt)
123182	c.urlParams_.Set("prettyPrint", "false")
123183	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}/addResourcePolicies")
123184	urls += "?" + c.urlParams_.Encode()
123185	req, err := http.NewRequest("POST", urls, body)
123186	if err != nil {
123187		return nil, err
123188	}
123189	req.Header = reqHeaders
123190	googleapi.Expand(req.URL, map[string]string{
123191		"project": c.project,
123192		"region":  c.region,
123193		"disk":    c.disk,
123194	})
123195	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123196}
123197
123198// Do executes the "compute.regionDisks.addResourcePolicies" call.
123199// Exactly one of *Operation or error will be non-nil. Any non-2xx
123200// status code is an error. Response headers are in either
123201// *Operation.ServerResponse.Header or (if a response was returned at
123202// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123203// to check whether the returned error was because
123204// http.StatusNotModified was returned.
123205func (c *RegionDisksAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123206	gensupport.SetOptions(c.urlParams_, opts...)
123207	res, err := c.doRequest("json")
123208	if res != nil && res.StatusCode == http.StatusNotModified {
123209		if res.Body != nil {
123210			res.Body.Close()
123211		}
123212		return nil, &googleapi.Error{
123213			Code:   res.StatusCode,
123214			Header: res.Header,
123215		}
123216	}
123217	if err != nil {
123218		return nil, err
123219	}
123220	defer googleapi.CloseBody(res)
123221	if err := googleapi.CheckResponse(res); err != nil {
123222		return nil, err
123223	}
123224	ret := &Operation{
123225		ServerResponse: googleapi.ServerResponse{
123226			Header:         res.Header,
123227			HTTPStatusCode: res.StatusCode,
123228		},
123229	}
123230	target := &ret
123231	if err := gensupport.DecodeResponse(target, res); err != nil {
123232		return nil, err
123233	}
123234	return ret, nil
123235	// {
123236	//   "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.",
123237	//   "httpMethod": "POST",
123238	//   "id": "compute.regionDisks.addResourcePolicies",
123239	//   "parameterOrder": [
123240	//     "project",
123241	//     "region",
123242	//     "disk"
123243	//   ],
123244	//   "parameters": {
123245	//     "disk": {
123246	//       "description": "The disk name for this request.",
123247	//       "location": "path",
123248	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123249	//       "required": true,
123250	//       "type": "string"
123251	//     },
123252	//     "project": {
123253	//       "description": "Project ID for this request.",
123254	//       "location": "path",
123255	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123256	//       "required": true,
123257	//       "type": "string"
123258	//     },
123259	//     "region": {
123260	//       "description": "The name of the region for this request.",
123261	//       "location": "path",
123262	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123263	//       "required": true,
123264	//       "type": "string"
123265	//     },
123266	//     "requestId": {
123267	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
123268	//       "location": "query",
123269	//       "type": "string"
123270	//     }
123271	//   },
123272	//   "path": "{project}/regions/{region}/disks/{disk}/addResourcePolicies",
123273	//   "request": {
123274	//     "$ref": "RegionDisksAddResourcePoliciesRequest"
123275	//   },
123276	//   "response": {
123277	//     "$ref": "Operation"
123278	//   },
123279	//   "scopes": [
123280	//     "https://www.googleapis.com/auth/cloud-platform",
123281	//     "https://www.googleapis.com/auth/compute"
123282	//   ]
123283	// }
123284
123285}
123286
123287// method id "compute.regionDisks.createSnapshot":
123288
123289type RegionDisksCreateSnapshotCall struct {
123290	s          *Service
123291	project    string
123292	region     string
123293	disk       string
123294	snapshot   *Snapshot
123295	urlParams_ gensupport.URLParams
123296	ctx_       context.Context
123297	header_    http.Header
123298}
123299
123300// CreateSnapshot: Creates a snapshot of this regional disk.
123301func (r *RegionDisksService) CreateSnapshot(project string, region string, disk string, snapshot *Snapshot) *RegionDisksCreateSnapshotCall {
123302	c := &RegionDisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123303	c.project = project
123304	c.region = region
123305	c.disk = disk
123306	c.snapshot = snapshot
123307	return c
123308}
123309
123310// GuestFlush sets the optional parameter "guestFlush": [Input Only]
123311// Specifies to create an application consistent snapshot by informing
123312// the OS to prepare for the snapshot process. Currently only supported
123313// on Windows instances using the Volume Shadow Copy Service (VSS).
123314func (c *RegionDisksCreateSnapshotCall) GuestFlush(guestFlush bool) *RegionDisksCreateSnapshotCall {
123315	c.urlParams_.Set("guestFlush", fmt.Sprint(guestFlush))
123316	return c
123317}
123318
123319// RequestId sets the optional parameter "requestId": An optional
123320// request ID to identify requests. Specify a unique request ID so that
123321// if you must retry your request, the server will know to ignore the
123322// request if it has already been completed.
123323//
123324// For example, consider a situation where you make an initial request
123325// and the request times out. If you make the request again with the
123326// same request ID, the server can check if original operation with the
123327// same request ID was received, and if so, will ignore the second
123328// request. This prevents clients from accidentally creating duplicate
123329// commitments.
123330//
123331// The request ID must be a valid UUID with the exception that zero UUID
123332// is not supported (00000000-0000-0000-0000-000000000000).
123333func (c *RegionDisksCreateSnapshotCall) RequestId(requestId string) *RegionDisksCreateSnapshotCall {
123334	c.urlParams_.Set("requestId", requestId)
123335	return c
123336}
123337
123338// Fields allows partial responses to be retrieved. See
123339// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123340// for more information.
123341func (c *RegionDisksCreateSnapshotCall) Fields(s ...googleapi.Field) *RegionDisksCreateSnapshotCall {
123342	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123343	return c
123344}
123345
123346// Context sets the context to be used in this call's Do method. Any
123347// pending HTTP request will be aborted if the provided context is
123348// canceled.
123349func (c *RegionDisksCreateSnapshotCall) Context(ctx context.Context) *RegionDisksCreateSnapshotCall {
123350	c.ctx_ = ctx
123351	return c
123352}
123353
123354// Header returns an http.Header that can be modified by the caller to
123355// add HTTP headers to the request.
123356func (c *RegionDisksCreateSnapshotCall) Header() http.Header {
123357	if c.header_ == nil {
123358		c.header_ = make(http.Header)
123359	}
123360	return c.header_
123361}
123362
123363func (c *RegionDisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) {
123364	reqHeaders := make(http.Header)
123365	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
123366	for k, v := range c.header_ {
123367		reqHeaders[k] = v
123368	}
123369	reqHeaders.Set("User-Agent", c.s.userAgent())
123370	var body io.Reader = nil
123371	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot)
123372	if err != nil {
123373		return nil, err
123374	}
123375	reqHeaders.Set("Content-Type", "application/json")
123376	c.urlParams_.Set("alt", alt)
123377	c.urlParams_.Set("prettyPrint", "false")
123378	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}/createSnapshot")
123379	urls += "?" + c.urlParams_.Encode()
123380	req, err := http.NewRequest("POST", urls, body)
123381	if err != nil {
123382		return nil, err
123383	}
123384	req.Header = reqHeaders
123385	googleapi.Expand(req.URL, map[string]string{
123386		"project": c.project,
123387		"region":  c.region,
123388		"disk":    c.disk,
123389	})
123390	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123391}
123392
123393// Do executes the "compute.regionDisks.createSnapshot" call.
123394// Exactly one of *Operation or error will be non-nil. Any non-2xx
123395// status code is an error. Response headers are in either
123396// *Operation.ServerResponse.Header or (if a response was returned at
123397// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123398// to check whether the returned error was because
123399// http.StatusNotModified was returned.
123400func (c *RegionDisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123401	gensupport.SetOptions(c.urlParams_, opts...)
123402	res, err := c.doRequest("json")
123403	if res != nil && res.StatusCode == http.StatusNotModified {
123404		if res.Body != nil {
123405			res.Body.Close()
123406		}
123407		return nil, &googleapi.Error{
123408			Code:   res.StatusCode,
123409			Header: res.Header,
123410		}
123411	}
123412	if err != nil {
123413		return nil, err
123414	}
123415	defer googleapi.CloseBody(res)
123416	if err := googleapi.CheckResponse(res); err != nil {
123417		return nil, err
123418	}
123419	ret := &Operation{
123420		ServerResponse: googleapi.ServerResponse{
123421			Header:         res.Header,
123422			HTTPStatusCode: res.StatusCode,
123423		},
123424	}
123425	target := &ret
123426	if err := gensupport.DecodeResponse(target, res); err != nil {
123427		return nil, err
123428	}
123429	return ret, nil
123430	// {
123431	//   "description": "Creates a snapshot of this regional disk.",
123432	//   "httpMethod": "POST",
123433	//   "id": "compute.regionDisks.createSnapshot",
123434	//   "parameterOrder": [
123435	//     "project",
123436	//     "region",
123437	//     "disk"
123438	//   ],
123439	//   "parameters": {
123440	//     "disk": {
123441	//       "description": "Name of the regional persistent disk to snapshot.",
123442	//       "location": "path",
123443	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123444	//       "required": true,
123445	//       "type": "string"
123446	//     },
123447	//     "guestFlush": {
123448	//       "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).",
123449	//       "location": "query",
123450	//       "type": "boolean"
123451	//     },
123452	//     "project": {
123453	//       "description": "Project ID for this request.",
123454	//       "location": "path",
123455	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123456	//       "required": true,
123457	//       "type": "string"
123458	//     },
123459	//     "region": {
123460	//       "description": "Name of the region for this request.",
123461	//       "location": "path",
123462	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123463	//       "required": true,
123464	//       "type": "string"
123465	//     },
123466	//     "requestId": {
123467	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
123468	//       "location": "query",
123469	//       "type": "string"
123470	//     }
123471	//   },
123472	//   "path": "{project}/regions/{region}/disks/{disk}/createSnapshot",
123473	//   "request": {
123474	//     "$ref": "Snapshot"
123475	//   },
123476	//   "response": {
123477	//     "$ref": "Operation"
123478	//   },
123479	//   "scopes": [
123480	//     "https://www.googleapis.com/auth/cloud-platform",
123481	//     "https://www.googleapis.com/auth/compute"
123482	//   ]
123483	// }
123484
123485}
123486
123487// method id "compute.regionDisks.delete":
123488
123489type RegionDisksDeleteCall struct {
123490	s          *Service
123491	project    string
123492	region     string
123493	disk       string
123494	urlParams_ gensupport.URLParams
123495	ctx_       context.Context
123496	header_    http.Header
123497}
123498
123499// Delete: Deletes the specified regional persistent disk. Deleting a
123500// regional disk removes all the replicas of its data permanently and is
123501// irreversible. However, deleting a disk does not delete any snapshots
123502// previously made from the disk. You must separately delete snapshots.
123503func (r *RegionDisksService) Delete(project string, region string, disk string) *RegionDisksDeleteCall {
123504	c := &RegionDisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123505	c.project = project
123506	c.region = region
123507	c.disk = disk
123508	return c
123509}
123510
123511// RequestId sets the optional parameter "requestId": An optional
123512// request ID to identify requests. Specify a unique request ID so that
123513// if you must retry your request, the server will know to ignore the
123514// request if it has already been completed.
123515//
123516// For example, consider a situation where you make an initial request
123517// and the request times out. If you make the request again with the
123518// same request ID, the server can check if original operation with the
123519// same request ID was received, and if so, will ignore the second
123520// request. This prevents clients from accidentally creating duplicate
123521// commitments.
123522//
123523// The request ID must be a valid UUID with the exception that zero UUID
123524// is not supported (00000000-0000-0000-0000-000000000000).
123525func (c *RegionDisksDeleteCall) RequestId(requestId string) *RegionDisksDeleteCall {
123526	c.urlParams_.Set("requestId", requestId)
123527	return c
123528}
123529
123530// Fields allows partial responses to be retrieved. See
123531// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123532// for more information.
123533func (c *RegionDisksDeleteCall) Fields(s ...googleapi.Field) *RegionDisksDeleteCall {
123534	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123535	return c
123536}
123537
123538// Context sets the context to be used in this call's Do method. Any
123539// pending HTTP request will be aborted if the provided context is
123540// canceled.
123541func (c *RegionDisksDeleteCall) Context(ctx context.Context) *RegionDisksDeleteCall {
123542	c.ctx_ = ctx
123543	return c
123544}
123545
123546// Header returns an http.Header that can be modified by the caller to
123547// add HTTP headers to the request.
123548func (c *RegionDisksDeleteCall) Header() http.Header {
123549	if c.header_ == nil {
123550		c.header_ = make(http.Header)
123551	}
123552	return c.header_
123553}
123554
123555func (c *RegionDisksDeleteCall) doRequest(alt string) (*http.Response, error) {
123556	reqHeaders := make(http.Header)
123557	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
123558	for k, v := range c.header_ {
123559		reqHeaders[k] = v
123560	}
123561	reqHeaders.Set("User-Agent", c.s.userAgent())
123562	var body io.Reader = nil
123563	c.urlParams_.Set("alt", alt)
123564	c.urlParams_.Set("prettyPrint", "false")
123565	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}")
123566	urls += "?" + c.urlParams_.Encode()
123567	req, err := http.NewRequest("DELETE", urls, body)
123568	if err != nil {
123569		return nil, err
123570	}
123571	req.Header = reqHeaders
123572	googleapi.Expand(req.URL, map[string]string{
123573		"project": c.project,
123574		"region":  c.region,
123575		"disk":    c.disk,
123576	})
123577	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123578}
123579
123580// Do executes the "compute.regionDisks.delete" call.
123581// Exactly one of *Operation or error will be non-nil. Any non-2xx
123582// status code is an error. Response headers are in either
123583// *Operation.ServerResponse.Header or (if a response was returned at
123584// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123585// to check whether the returned error was because
123586// http.StatusNotModified was returned.
123587func (c *RegionDisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123588	gensupport.SetOptions(c.urlParams_, opts...)
123589	res, err := c.doRequest("json")
123590	if res != nil && res.StatusCode == http.StatusNotModified {
123591		if res.Body != nil {
123592			res.Body.Close()
123593		}
123594		return nil, &googleapi.Error{
123595			Code:   res.StatusCode,
123596			Header: res.Header,
123597		}
123598	}
123599	if err != nil {
123600		return nil, err
123601	}
123602	defer googleapi.CloseBody(res)
123603	if err := googleapi.CheckResponse(res); err != nil {
123604		return nil, err
123605	}
123606	ret := &Operation{
123607		ServerResponse: googleapi.ServerResponse{
123608			Header:         res.Header,
123609			HTTPStatusCode: res.StatusCode,
123610		},
123611	}
123612	target := &ret
123613	if err := gensupport.DecodeResponse(target, res); err != nil {
123614		return nil, err
123615	}
123616	return ret, nil
123617	// {
123618	//   "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.",
123619	//   "httpMethod": "DELETE",
123620	//   "id": "compute.regionDisks.delete",
123621	//   "parameterOrder": [
123622	//     "project",
123623	//     "region",
123624	//     "disk"
123625	//   ],
123626	//   "parameters": {
123627	//     "disk": {
123628	//       "description": "Name of the regional persistent disk to delete.",
123629	//       "location": "path",
123630	//       "required": true,
123631	//       "type": "string"
123632	//     },
123633	//     "project": {
123634	//       "description": "Project ID for this request.",
123635	//       "location": "path",
123636	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123637	//       "required": true,
123638	//       "type": "string"
123639	//     },
123640	//     "region": {
123641	//       "description": "Name of the region for this request.",
123642	//       "location": "path",
123643	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123644	//       "required": true,
123645	//       "type": "string"
123646	//     },
123647	//     "requestId": {
123648	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
123649	//       "location": "query",
123650	//       "type": "string"
123651	//     }
123652	//   },
123653	//   "path": "{project}/regions/{region}/disks/{disk}",
123654	//   "response": {
123655	//     "$ref": "Operation"
123656	//   },
123657	//   "scopes": [
123658	//     "https://www.googleapis.com/auth/cloud-platform",
123659	//     "https://www.googleapis.com/auth/compute"
123660	//   ]
123661	// }
123662
123663}
123664
123665// method id "compute.regionDisks.get":
123666
123667type RegionDisksGetCall struct {
123668	s            *Service
123669	project      string
123670	region       string
123671	disk         string
123672	urlParams_   gensupport.URLParams
123673	ifNoneMatch_ string
123674	ctx_         context.Context
123675	header_      http.Header
123676}
123677
123678// Get: Returns a specified regional persistent disk.
123679func (r *RegionDisksService) Get(project string, region string, disk string) *RegionDisksGetCall {
123680	c := &RegionDisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123681	c.project = project
123682	c.region = region
123683	c.disk = disk
123684	return c
123685}
123686
123687// Fields allows partial responses to be retrieved. See
123688// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123689// for more information.
123690func (c *RegionDisksGetCall) Fields(s ...googleapi.Field) *RegionDisksGetCall {
123691	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123692	return c
123693}
123694
123695// IfNoneMatch sets the optional parameter which makes the operation
123696// fail if the object's ETag matches the given value. This is useful for
123697// getting updates only after the object has changed since the last
123698// request. Use googleapi.IsNotModified to check whether the response
123699// error from Do is the result of In-None-Match.
123700func (c *RegionDisksGetCall) IfNoneMatch(entityTag string) *RegionDisksGetCall {
123701	c.ifNoneMatch_ = entityTag
123702	return c
123703}
123704
123705// Context sets the context to be used in this call's Do method. Any
123706// pending HTTP request will be aborted if the provided context is
123707// canceled.
123708func (c *RegionDisksGetCall) Context(ctx context.Context) *RegionDisksGetCall {
123709	c.ctx_ = ctx
123710	return c
123711}
123712
123713// Header returns an http.Header that can be modified by the caller to
123714// add HTTP headers to the request.
123715func (c *RegionDisksGetCall) Header() http.Header {
123716	if c.header_ == nil {
123717		c.header_ = make(http.Header)
123718	}
123719	return c.header_
123720}
123721
123722func (c *RegionDisksGetCall) doRequest(alt string) (*http.Response, error) {
123723	reqHeaders := make(http.Header)
123724	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
123725	for k, v := range c.header_ {
123726		reqHeaders[k] = v
123727	}
123728	reqHeaders.Set("User-Agent", c.s.userAgent())
123729	if c.ifNoneMatch_ != "" {
123730		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
123731	}
123732	var body io.Reader = nil
123733	c.urlParams_.Set("alt", alt)
123734	c.urlParams_.Set("prettyPrint", "false")
123735	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}")
123736	urls += "?" + c.urlParams_.Encode()
123737	req, err := http.NewRequest("GET", urls, body)
123738	if err != nil {
123739		return nil, err
123740	}
123741	req.Header = reqHeaders
123742	googleapi.Expand(req.URL, map[string]string{
123743		"project": c.project,
123744		"region":  c.region,
123745		"disk":    c.disk,
123746	})
123747	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123748}
123749
123750// Do executes the "compute.regionDisks.get" call.
123751// Exactly one of *Disk or error will be non-nil. Any non-2xx status
123752// code is an error. Response headers are in either
123753// *Disk.ServerResponse.Header or (if a response was returned at all) in
123754// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
123755// whether the returned error was because http.StatusNotModified was
123756// returned.
123757func (c *RegionDisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) {
123758	gensupport.SetOptions(c.urlParams_, opts...)
123759	res, err := c.doRequest("json")
123760	if res != nil && res.StatusCode == http.StatusNotModified {
123761		if res.Body != nil {
123762			res.Body.Close()
123763		}
123764		return nil, &googleapi.Error{
123765			Code:   res.StatusCode,
123766			Header: res.Header,
123767		}
123768	}
123769	if err != nil {
123770		return nil, err
123771	}
123772	defer googleapi.CloseBody(res)
123773	if err := googleapi.CheckResponse(res); err != nil {
123774		return nil, err
123775	}
123776	ret := &Disk{
123777		ServerResponse: googleapi.ServerResponse{
123778			Header:         res.Header,
123779			HTTPStatusCode: res.StatusCode,
123780		},
123781	}
123782	target := &ret
123783	if err := gensupport.DecodeResponse(target, res); err != nil {
123784		return nil, err
123785	}
123786	return ret, nil
123787	// {
123788	//   "description": "Returns a specified regional persistent disk.",
123789	//   "httpMethod": "GET",
123790	//   "id": "compute.regionDisks.get",
123791	//   "parameterOrder": [
123792	//     "project",
123793	//     "region",
123794	//     "disk"
123795	//   ],
123796	//   "parameters": {
123797	//     "disk": {
123798	//       "description": "Name of the regional persistent disk to return.",
123799	//       "location": "path",
123800	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123801	//       "required": true,
123802	//       "type": "string"
123803	//     },
123804	//     "project": {
123805	//       "description": "Project ID for this request.",
123806	//       "location": "path",
123807	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123808	//       "required": true,
123809	//       "type": "string"
123810	//     },
123811	//     "region": {
123812	//       "description": "Name of the region for this request.",
123813	//       "location": "path",
123814	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123815	//       "required": true,
123816	//       "type": "string"
123817	//     }
123818	//   },
123819	//   "path": "{project}/regions/{region}/disks/{disk}",
123820	//   "response": {
123821	//     "$ref": "Disk"
123822	//   },
123823	//   "scopes": [
123824	//     "https://www.googleapis.com/auth/cloud-platform",
123825	//     "https://www.googleapis.com/auth/compute",
123826	//     "https://www.googleapis.com/auth/compute.readonly"
123827	//   ]
123828	// }
123829
123830}
123831
123832// method id "compute.regionDisks.getIamPolicy":
123833
123834type RegionDisksGetIamPolicyCall struct {
123835	s            *Service
123836	project      string
123837	region       string
123838	resource     string
123839	urlParams_   gensupport.URLParams
123840	ifNoneMatch_ string
123841	ctx_         context.Context
123842	header_      http.Header
123843}
123844
123845// GetIamPolicy: Gets the access control policy for a resource. May be
123846// empty if no such policy or resource exists.
123847func (r *RegionDisksService) GetIamPolicy(project string, region string, resource string) *RegionDisksGetIamPolicyCall {
123848	c := &RegionDisksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123849	c.project = project
123850	c.region = region
123851	c.resource = resource
123852	return c
123853}
123854
123855// OptionsRequestedPolicyVersion sets the optional parameter
123856// "optionsRequestedPolicyVersion": Requested IAM Policy version.
123857func (c *RegionDisksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *RegionDisksGetIamPolicyCall {
123858	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
123859	return c
123860}
123861
123862// Fields allows partial responses to be retrieved. See
123863// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123864// for more information.
123865func (c *RegionDisksGetIamPolicyCall) Fields(s ...googleapi.Field) *RegionDisksGetIamPolicyCall {
123866	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123867	return c
123868}
123869
123870// IfNoneMatch sets the optional parameter which makes the operation
123871// fail if the object's ETag matches the given value. This is useful for
123872// getting updates only after the object has changed since the last
123873// request. Use googleapi.IsNotModified to check whether the response
123874// error from Do is the result of In-None-Match.
123875func (c *RegionDisksGetIamPolicyCall) IfNoneMatch(entityTag string) *RegionDisksGetIamPolicyCall {
123876	c.ifNoneMatch_ = entityTag
123877	return c
123878}
123879
123880// Context sets the context to be used in this call's Do method. Any
123881// pending HTTP request will be aborted if the provided context is
123882// canceled.
123883func (c *RegionDisksGetIamPolicyCall) Context(ctx context.Context) *RegionDisksGetIamPolicyCall {
123884	c.ctx_ = ctx
123885	return c
123886}
123887
123888// Header returns an http.Header that can be modified by the caller to
123889// add HTTP headers to the request.
123890func (c *RegionDisksGetIamPolicyCall) Header() http.Header {
123891	if c.header_ == nil {
123892		c.header_ = make(http.Header)
123893	}
123894	return c.header_
123895}
123896
123897func (c *RegionDisksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
123898	reqHeaders := make(http.Header)
123899	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
123900	for k, v := range c.header_ {
123901		reqHeaders[k] = v
123902	}
123903	reqHeaders.Set("User-Agent", c.s.userAgent())
123904	if c.ifNoneMatch_ != "" {
123905		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
123906	}
123907	var body io.Reader = nil
123908	c.urlParams_.Set("alt", alt)
123909	c.urlParams_.Set("prettyPrint", "false")
123910	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{resource}/getIamPolicy")
123911	urls += "?" + c.urlParams_.Encode()
123912	req, err := http.NewRequest("GET", urls, body)
123913	if err != nil {
123914		return nil, err
123915	}
123916	req.Header = reqHeaders
123917	googleapi.Expand(req.URL, map[string]string{
123918		"project":  c.project,
123919		"region":   c.region,
123920		"resource": c.resource,
123921	})
123922	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123923}
123924
123925// Do executes the "compute.regionDisks.getIamPolicy" call.
123926// Exactly one of *Policy or error will be non-nil. Any non-2xx status
123927// code is an error. Response headers are in either
123928// *Policy.ServerResponse.Header or (if a response was returned at all)
123929// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
123930// check whether the returned error was because http.StatusNotModified
123931// was returned.
123932func (c *RegionDisksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
123933	gensupport.SetOptions(c.urlParams_, opts...)
123934	res, err := c.doRequest("json")
123935	if res != nil && res.StatusCode == http.StatusNotModified {
123936		if res.Body != nil {
123937			res.Body.Close()
123938		}
123939		return nil, &googleapi.Error{
123940			Code:   res.StatusCode,
123941			Header: res.Header,
123942		}
123943	}
123944	if err != nil {
123945		return nil, err
123946	}
123947	defer googleapi.CloseBody(res)
123948	if err := googleapi.CheckResponse(res); err != nil {
123949		return nil, err
123950	}
123951	ret := &Policy{
123952		ServerResponse: googleapi.ServerResponse{
123953			Header:         res.Header,
123954			HTTPStatusCode: res.StatusCode,
123955		},
123956	}
123957	target := &ret
123958	if err := gensupport.DecodeResponse(target, res); err != nil {
123959		return nil, err
123960	}
123961	return ret, nil
123962	// {
123963	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
123964	//   "httpMethod": "GET",
123965	//   "id": "compute.regionDisks.getIamPolicy",
123966	//   "parameterOrder": [
123967	//     "project",
123968	//     "region",
123969	//     "resource"
123970	//   ],
123971	//   "parameters": {
123972	//     "optionsRequestedPolicyVersion": {
123973	//       "description": "Requested IAM Policy version.",
123974	//       "format": "int32",
123975	//       "location": "query",
123976	//       "type": "integer"
123977	//     },
123978	//     "project": {
123979	//       "description": "Project ID for this request.",
123980	//       "location": "path",
123981	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123982	//       "required": true,
123983	//       "type": "string"
123984	//     },
123985	//     "region": {
123986	//       "description": "The name of the region for this request.",
123987	//       "location": "path",
123988	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123989	//       "required": true,
123990	//       "type": "string"
123991	//     },
123992	//     "resource": {
123993	//       "description": "Name or id of the resource for this request.",
123994	//       "location": "path",
123995	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123996	//       "required": true,
123997	//       "type": "string"
123998	//     }
123999	//   },
124000	//   "path": "{project}/regions/{region}/disks/{resource}/getIamPolicy",
124001	//   "response": {
124002	//     "$ref": "Policy"
124003	//   },
124004	//   "scopes": [
124005	//     "https://www.googleapis.com/auth/cloud-platform",
124006	//     "https://www.googleapis.com/auth/compute",
124007	//     "https://www.googleapis.com/auth/compute.readonly"
124008	//   ]
124009	// }
124010
124011}
124012
124013// method id "compute.regionDisks.insert":
124014
124015type RegionDisksInsertCall struct {
124016	s          *Service
124017	project    string
124018	region     string
124019	disk       *Disk
124020	urlParams_ gensupport.URLParams
124021	ctx_       context.Context
124022	header_    http.Header
124023}
124024
124025// Insert: Creates a persistent regional disk in the specified project
124026// using the data included in the request.
124027func (r *RegionDisksService) Insert(project string, region string, disk *Disk) *RegionDisksInsertCall {
124028	c := &RegionDisksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124029	c.project = project
124030	c.region = region
124031	c.disk = disk
124032	return c
124033}
124034
124035// RequestId sets the optional parameter "requestId": An optional
124036// request ID to identify requests. Specify a unique request ID so that
124037// if you must retry your request, the server will know to ignore the
124038// request if it has already been completed.
124039//
124040// For example, consider a situation where you make an initial request
124041// and the request times out. If you make the request again with the
124042// same request ID, the server can check if original operation with the
124043// same request ID was received, and if so, will ignore the second
124044// request. This prevents clients from accidentally creating duplicate
124045// commitments.
124046//
124047// The request ID must be a valid UUID with the exception that zero UUID
124048// is not supported (00000000-0000-0000-0000-000000000000).
124049func (c *RegionDisksInsertCall) RequestId(requestId string) *RegionDisksInsertCall {
124050	c.urlParams_.Set("requestId", requestId)
124051	return c
124052}
124053
124054// SourceImage sets the optional parameter "sourceImage": Source image
124055// to restore onto a disk.
124056func (c *RegionDisksInsertCall) SourceImage(sourceImage string) *RegionDisksInsertCall {
124057	c.urlParams_.Set("sourceImage", sourceImage)
124058	return c
124059}
124060
124061// Fields allows partial responses to be retrieved. See
124062// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124063// for more information.
124064func (c *RegionDisksInsertCall) Fields(s ...googleapi.Field) *RegionDisksInsertCall {
124065	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124066	return c
124067}
124068
124069// Context sets the context to be used in this call's Do method. Any
124070// pending HTTP request will be aborted if the provided context is
124071// canceled.
124072func (c *RegionDisksInsertCall) Context(ctx context.Context) *RegionDisksInsertCall {
124073	c.ctx_ = ctx
124074	return c
124075}
124076
124077// Header returns an http.Header that can be modified by the caller to
124078// add HTTP headers to the request.
124079func (c *RegionDisksInsertCall) Header() http.Header {
124080	if c.header_ == nil {
124081		c.header_ = make(http.Header)
124082	}
124083	return c.header_
124084}
124085
124086func (c *RegionDisksInsertCall) doRequest(alt string) (*http.Response, error) {
124087	reqHeaders := make(http.Header)
124088	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
124089	for k, v := range c.header_ {
124090		reqHeaders[k] = v
124091	}
124092	reqHeaders.Set("User-Agent", c.s.userAgent())
124093	var body io.Reader = nil
124094	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk)
124095	if err != nil {
124096		return nil, err
124097	}
124098	reqHeaders.Set("Content-Type", "application/json")
124099	c.urlParams_.Set("alt", alt)
124100	c.urlParams_.Set("prettyPrint", "false")
124101	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks")
124102	urls += "?" + c.urlParams_.Encode()
124103	req, err := http.NewRequest("POST", urls, body)
124104	if err != nil {
124105		return nil, err
124106	}
124107	req.Header = reqHeaders
124108	googleapi.Expand(req.URL, map[string]string{
124109		"project": c.project,
124110		"region":  c.region,
124111	})
124112	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124113}
124114
124115// Do executes the "compute.regionDisks.insert" call.
124116// Exactly one of *Operation or error will be non-nil. Any non-2xx
124117// status code is an error. Response headers are in either
124118// *Operation.ServerResponse.Header or (if a response was returned at
124119// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124120// to check whether the returned error was because
124121// http.StatusNotModified was returned.
124122func (c *RegionDisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124123	gensupport.SetOptions(c.urlParams_, opts...)
124124	res, err := c.doRequest("json")
124125	if res != nil && res.StatusCode == http.StatusNotModified {
124126		if res.Body != nil {
124127			res.Body.Close()
124128		}
124129		return nil, &googleapi.Error{
124130			Code:   res.StatusCode,
124131			Header: res.Header,
124132		}
124133	}
124134	if err != nil {
124135		return nil, err
124136	}
124137	defer googleapi.CloseBody(res)
124138	if err := googleapi.CheckResponse(res); err != nil {
124139		return nil, err
124140	}
124141	ret := &Operation{
124142		ServerResponse: googleapi.ServerResponse{
124143			Header:         res.Header,
124144			HTTPStatusCode: res.StatusCode,
124145		},
124146	}
124147	target := &ret
124148	if err := gensupport.DecodeResponse(target, res); err != nil {
124149		return nil, err
124150	}
124151	return ret, nil
124152	// {
124153	//   "description": "Creates a persistent regional disk in the specified project using the data included in the request.",
124154	//   "httpMethod": "POST",
124155	//   "id": "compute.regionDisks.insert",
124156	//   "parameterOrder": [
124157	//     "project",
124158	//     "region"
124159	//   ],
124160	//   "parameters": {
124161	//     "project": {
124162	//       "description": "Project ID for this request.",
124163	//       "location": "path",
124164	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124165	//       "required": true,
124166	//       "type": "string"
124167	//     },
124168	//     "region": {
124169	//       "description": "Name of the region for this request.",
124170	//       "location": "path",
124171	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124172	//       "required": true,
124173	//       "type": "string"
124174	//     },
124175	//     "requestId": {
124176	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
124177	//       "location": "query",
124178	//       "type": "string"
124179	//     },
124180	//     "sourceImage": {
124181	//       "description": "Optional. Source image to restore onto a disk.",
124182	//       "location": "query",
124183	//       "type": "string"
124184	//     }
124185	//   },
124186	//   "path": "{project}/regions/{region}/disks",
124187	//   "request": {
124188	//     "$ref": "Disk"
124189	//   },
124190	//   "response": {
124191	//     "$ref": "Operation"
124192	//   },
124193	//   "scopes": [
124194	//     "https://www.googleapis.com/auth/cloud-platform",
124195	//     "https://www.googleapis.com/auth/compute"
124196	//   ]
124197	// }
124198
124199}
124200
124201// method id "compute.regionDisks.list":
124202
124203type RegionDisksListCall struct {
124204	s            *Service
124205	project      string
124206	region       string
124207	urlParams_   gensupport.URLParams
124208	ifNoneMatch_ string
124209	ctx_         context.Context
124210	header_      http.Header
124211}
124212
124213// List: Retrieves the list of persistent disks contained within the
124214// specified region.
124215func (r *RegionDisksService) List(project string, region string) *RegionDisksListCall {
124216	c := &RegionDisksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124217	c.project = project
124218	c.region = region
124219	return c
124220}
124221
124222// Filter sets the optional parameter "filter": A filter expression that
124223// filters resources listed in the response. The expression must specify
124224// the field name, a comparison operator, and the value that you want to
124225// use for filtering. The value must be a string, a number, or a
124226// boolean. The comparison operator must be either =, !=, >, or <.
124227//
124228// For example, if you are filtering Compute Engine instances, you can
124229// exclude instances named example-instance by specifying name !=
124230// example-instance.
124231//
124232// You can also filter nested fields. For example, you could specify
124233// scheduling.automaticRestart = false to include instances only if they
124234// are not scheduled for automatic restarts. You can use filtering on
124235// nested fields to filter based on resource labels.
124236//
124237// To filter on multiple expressions, provide each separate expression
124238// within parentheses. For example, (scheduling.automaticRestart = true)
124239// (cpuPlatform = "Intel Skylake"). By default, each expression is an
124240// AND expression. However, you can include AND and OR expressions
124241// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
124242// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
124243// true).
124244func (c *RegionDisksListCall) Filter(filter string) *RegionDisksListCall {
124245	c.urlParams_.Set("filter", filter)
124246	return c
124247}
124248
124249// MaxResults sets the optional parameter "maxResults": The maximum
124250// number of results per page that should be returned. If the number of
124251// available results is larger than maxResults, Compute Engine returns a
124252// nextPageToken that can be used to get the next page of results in
124253// subsequent list requests. Acceptable values are 0 to 500, inclusive.
124254// (Default: 500)
124255func (c *RegionDisksListCall) MaxResults(maxResults int64) *RegionDisksListCall {
124256	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
124257	return c
124258}
124259
124260// OrderBy sets the optional parameter "orderBy": Sorts list results by
124261// a certain order. By default, results are returned in alphanumerical
124262// order based on the resource name.
124263//
124264// You can also sort results in descending order based on the creation
124265// timestamp using orderBy="creationTimestamp desc". This sorts results
124266// based on the creationTimestamp field in reverse chronological order
124267// (newest result first). Use this to sort resources like operations so
124268// that the newest operation is returned first.
124269//
124270// Currently, only sorting by name or creationTimestamp desc is
124271// supported.
124272func (c *RegionDisksListCall) OrderBy(orderBy string) *RegionDisksListCall {
124273	c.urlParams_.Set("orderBy", orderBy)
124274	return c
124275}
124276
124277// PageToken sets the optional parameter "pageToken": Specifies a page
124278// token to use. Set pageToken to the nextPageToken returned by a
124279// previous list request to get the next page of results.
124280func (c *RegionDisksListCall) PageToken(pageToken string) *RegionDisksListCall {
124281	c.urlParams_.Set("pageToken", pageToken)
124282	return c
124283}
124284
124285// Fields allows partial responses to be retrieved. See
124286// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124287// for more information.
124288func (c *RegionDisksListCall) Fields(s ...googleapi.Field) *RegionDisksListCall {
124289	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124290	return c
124291}
124292
124293// IfNoneMatch sets the optional parameter which makes the operation
124294// fail if the object's ETag matches the given value. This is useful for
124295// getting updates only after the object has changed since the last
124296// request. Use googleapi.IsNotModified to check whether the response
124297// error from Do is the result of In-None-Match.
124298func (c *RegionDisksListCall) IfNoneMatch(entityTag string) *RegionDisksListCall {
124299	c.ifNoneMatch_ = entityTag
124300	return c
124301}
124302
124303// Context sets the context to be used in this call's Do method. Any
124304// pending HTTP request will be aborted if the provided context is
124305// canceled.
124306func (c *RegionDisksListCall) Context(ctx context.Context) *RegionDisksListCall {
124307	c.ctx_ = ctx
124308	return c
124309}
124310
124311// Header returns an http.Header that can be modified by the caller to
124312// add HTTP headers to the request.
124313func (c *RegionDisksListCall) Header() http.Header {
124314	if c.header_ == nil {
124315		c.header_ = make(http.Header)
124316	}
124317	return c.header_
124318}
124319
124320func (c *RegionDisksListCall) doRequest(alt string) (*http.Response, error) {
124321	reqHeaders := make(http.Header)
124322	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
124323	for k, v := range c.header_ {
124324		reqHeaders[k] = v
124325	}
124326	reqHeaders.Set("User-Agent", c.s.userAgent())
124327	if c.ifNoneMatch_ != "" {
124328		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
124329	}
124330	var body io.Reader = nil
124331	c.urlParams_.Set("alt", alt)
124332	c.urlParams_.Set("prettyPrint", "false")
124333	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks")
124334	urls += "?" + c.urlParams_.Encode()
124335	req, err := http.NewRequest("GET", urls, body)
124336	if err != nil {
124337		return nil, err
124338	}
124339	req.Header = reqHeaders
124340	googleapi.Expand(req.URL, map[string]string{
124341		"project": c.project,
124342		"region":  c.region,
124343	})
124344	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124345}
124346
124347// Do executes the "compute.regionDisks.list" call.
124348// Exactly one of *DiskList or error will be non-nil. Any non-2xx status
124349// code is an error. Response headers are in either
124350// *DiskList.ServerResponse.Header or (if a response was returned at
124351// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124352// to check whether the returned error was because
124353// http.StatusNotModified was returned.
124354func (c *RegionDisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) {
124355	gensupport.SetOptions(c.urlParams_, opts...)
124356	res, err := c.doRequest("json")
124357	if res != nil && res.StatusCode == http.StatusNotModified {
124358		if res.Body != nil {
124359			res.Body.Close()
124360		}
124361		return nil, &googleapi.Error{
124362			Code:   res.StatusCode,
124363			Header: res.Header,
124364		}
124365	}
124366	if err != nil {
124367		return nil, err
124368	}
124369	defer googleapi.CloseBody(res)
124370	if err := googleapi.CheckResponse(res); err != nil {
124371		return nil, err
124372	}
124373	ret := &DiskList{
124374		ServerResponse: googleapi.ServerResponse{
124375			Header:         res.Header,
124376			HTTPStatusCode: res.StatusCode,
124377		},
124378	}
124379	target := &ret
124380	if err := gensupport.DecodeResponse(target, res); err != nil {
124381		return nil, err
124382	}
124383	return ret, nil
124384	// {
124385	//   "description": "Retrieves the list of persistent disks contained within the specified region.",
124386	//   "httpMethod": "GET",
124387	//   "id": "compute.regionDisks.list",
124388	//   "parameterOrder": [
124389	//     "project",
124390	//     "region"
124391	//   ],
124392	//   "parameters": {
124393	//     "filter": {
124394	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
124395	//       "location": "query",
124396	//       "type": "string"
124397	//     },
124398	//     "maxResults": {
124399	//       "default": "500",
124400	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
124401	//       "format": "uint32",
124402	//       "location": "query",
124403	//       "minimum": "0",
124404	//       "type": "integer"
124405	//     },
124406	//     "orderBy": {
124407	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
124408	//       "location": "query",
124409	//       "type": "string"
124410	//     },
124411	//     "pageToken": {
124412	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
124413	//       "location": "query",
124414	//       "type": "string"
124415	//     },
124416	//     "project": {
124417	//       "description": "Project ID for this request.",
124418	//       "location": "path",
124419	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124420	//       "required": true,
124421	//       "type": "string"
124422	//     },
124423	//     "region": {
124424	//       "description": "Name of the region for this request.",
124425	//       "location": "path",
124426	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124427	//       "required": true,
124428	//       "type": "string"
124429	//     }
124430	//   },
124431	//   "path": "{project}/regions/{region}/disks",
124432	//   "response": {
124433	//     "$ref": "DiskList"
124434	//   },
124435	//   "scopes": [
124436	//     "https://www.googleapis.com/auth/cloud-platform",
124437	//     "https://www.googleapis.com/auth/compute",
124438	//     "https://www.googleapis.com/auth/compute.readonly"
124439	//   ]
124440	// }
124441
124442}
124443
124444// Pages invokes f for each page of results.
124445// A non-nil error returned from f will halt the iteration.
124446// The provided context supersedes any context provided to the Context method.
124447func (c *RegionDisksListCall) Pages(ctx context.Context, f func(*DiskList) error) error {
124448	c.ctx_ = ctx
124449	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
124450	for {
124451		x, err := c.Do()
124452		if err != nil {
124453			return err
124454		}
124455		if err := f(x); err != nil {
124456			return err
124457		}
124458		if x.NextPageToken == "" {
124459			return nil
124460		}
124461		c.PageToken(x.NextPageToken)
124462	}
124463}
124464
124465// method id "compute.regionDisks.removeResourcePolicies":
124466
124467type RegionDisksRemoveResourcePoliciesCall struct {
124468	s                                        *Service
124469	project                                  string
124470	region                                   string
124471	disk                                     string
124472	regiondisksremoveresourcepoliciesrequest *RegionDisksRemoveResourcePoliciesRequest
124473	urlParams_                               gensupport.URLParams
124474	ctx_                                     context.Context
124475	header_                                  http.Header
124476}
124477
124478// RemoveResourcePolicies: Removes resource policies from a regional
124479// disk.
124480func (r *RegionDisksService) RemoveResourcePolicies(project string, region string, disk string, regiondisksremoveresourcepoliciesrequest *RegionDisksRemoveResourcePoliciesRequest) *RegionDisksRemoveResourcePoliciesCall {
124481	c := &RegionDisksRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124482	c.project = project
124483	c.region = region
124484	c.disk = disk
124485	c.regiondisksremoveresourcepoliciesrequest = regiondisksremoveresourcepoliciesrequest
124486	return c
124487}
124488
124489// RequestId sets the optional parameter "requestId": An optional
124490// request ID to identify requests. Specify a unique request ID so that
124491// if you must retry your request, the server will know to ignore the
124492// request if it has already been completed.
124493//
124494// For example, consider a situation where you make an initial request
124495// and the request times out. If you make the request again with the
124496// same request ID, the server can check if original operation with the
124497// same request ID was received, and if so, will ignore the second
124498// request. This prevents clients from accidentally creating duplicate
124499// commitments.
124500//
124501// The request ID must be a valid UUID with the exception that zero UUID
124502// is not supported (00000000-0000-0000-0000-000000000000).
124503func (c *RegionDisksRemoveResourcePoliciesCall) RequestId(requestId string) *RegionDisksRemoveResourcePoliciesCall {
124504	c.urlParams_.Set("requestId", requestId)
124505	return c
124506}
124507
124508// Fields allows partial responses to be retrieved. See
124509// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124510// for more information.
124511func (c *RegionDisksRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *RegionDisksRemoveResourcePoliciesCall {
124512	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124513	return c
124514}
124515
124516// Context sets the context to be used in this call's Do method. Any
124517// pending HTTP request will be aborted if the provided context is
124518// canceled.
124519func (c *RegionDisksRemoveResourcePoliciesCall) Context(ctx context.Context) *RegionDisksRemoveResourcePoliciesCall {
124520	c.ctx_ = ctx
124521	return c
124522}
124523
124524// Header returns an http.Header that can be modified by the caller to
124525// add HTTP headers to the request.
124526func (c *RegionDisksRemoveResourcePoliciesCall) Header() http.Header {
124527	if c.header_ == nil {
124528		c.header_ = make(http.Header)
124529	}
124530	return c.header_
124531}
124532
124533func (c *RegionDisksRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
124534	reqHeaders := make(http.Header)
124535	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
124536	for k, v := range c.header_ {
124537		reqHeaders[k] = v
124538	}
124539	reqHeaders.Set("User-Agent", c.s.userAgent())
124540	var body io.Reader = nil
124541	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksremoveresourcepoliciesrequest)
124542	if err != nil {
124543		return nil, err
124544	}
124545	reqHeaders.Set("Content-Type", "application/json")
124546	c.urlParams_.Set("alt", alt)
124547	c.urlParams_.Set("prettyPrint", "false")
124548	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}/removeResourcePolicies")
124549	urls += "?" + c.urlParams_.Encode()
124550	req, err := http.NewRequest("POST", urls, body)
124551	if err != nil {
124552		return nil, err
124553	}
124554	req.Header = reqHeaders
124555	googleapi.Expand(req.URL, map[string]string{
124556		"project": c.project,
124557		"region":  c.region,
124558		"disk":    c.disk,
124559	})
124560	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124561}
124562
124563// Do executes the "compute.regionDisks.removeResourcePolicies" call.
124564// Exactly one of *Operation or error will be non-nil. Any non-2xx
124565// status code is an error. Response headers are in either
124566// *Operation.ServerResponse.Header or (if a response was returned at
124567// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124568// to check whether the returned error was because
124569// http.StatusNotModified was returned.
124570func (c *RegionDisksRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124571	gensupport.SetOptions(c.urlParams_, opts...)
124572	res, err := c.doRequest("json")
124573	if res != nil && res.StatusCode == http.StatusNotModified {
124574		if res.Body != nil {
124575			res.Body.Close()
124576		}
124577		return nil, &googleapi.Error{
124578			Code:   res.StatusCode,
124579			Header: res.Header,
124580		}
124581	}
124582	if err != nil {
124583		return nil, err
124584	}
124585	defer googleapi.CloseBody(res)
124586	if err := googleapi.CheckResponse(res); err != nil {
124587		return nil, err
124588	}
124589	ret := &Operation{
124590		ServerResponse: googleapi.ServerResponse{
124591			Header:         res.Header,
124592			HTTPStatusCode: res.StatusCode,
124593		},
124594	}
124595	target := &ret
124596	if err := gensupport.DecodeResponse(target, res); err != nil {
124597		return nil, err
124598	}
124599	return ret, nil
124600	// {
124601	//   "description": "Removes resource policies from a regional disk.",
124602	//   "httpMethod": "POST",
124603	//   "id": "compute.regionDisks.removeResourcePolicies",
124604	//   "parameterOrder": [
124605	//     "project",
124606	//     "region",
124607	//     "disk"
124608	//   ],
124609	//   "parameters": {
124610	//     "disk": {
124611	//       "description": "The disk name for this request.",
124612	//       "location": "path",
124613	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
124614	//       "required": true,
124615	//       "type": "string"
124616	//     },
124617	//     "project": {
124618	//       "description": "Project ID for this request.",
124619	//       "location": "path",
124620	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124621	//       "required": true,
124622	//       "type": "string"
124623	//     },
124624	//     "region": {
124625	//       "description": "The name of the region for this request.",
124626	//       "location": "path",
124627	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124628	//       "required": true,
124629	//       "type": "string"
124630	//     },
124631	//     "requestId": {
124632	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
124633	//       "location": "query",
124634	//       "type": "string"
124635	//     }
124636	//   },
124637	//   "path": "{project}/regions/{region}/disks/{disk}/removeResourcePolicies",
124638	//   "request": {
124639	//     "$ref": "RegionDisksRemoveResourcePoliciesRequest"
124640	//   },
124641	//   "response": {
124642	//     "$ref": "Operation"
124643	//   },
124644	//   "scopes": [
124645	//     "https://www.googleapis.com/auth/cloud-platform",
124646	//     "https://www.googleapis.com/auth/compute"
124647	//   ]
124648	// }
124649
124650}
124651
124652// method id "compute.regionDisks.resize":
124653
124654type RegionDisksResizeCall struct {
124655	s                        *Service
124656	project                  string
124657	region                   string
124658	disk                     string
124659	regiondisksresizerequest *RegionDisksResizeRequest
124660	urlParams_               gensupport.URLParams
124661	ctx_                     context.Context
124662	header_                  http.Header
124663}
124664
124665// Resize: Resizes the specified regional persistent disk.
124666func (r *RegionDisksService) Resize(project string, region string, disk string, regiondisksresizerequest *RegionDisksResizeRequest) *RegionDisksResizeCall {
124667	c := &RegionDisksResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124668	c.project = project
124669	c.region = region
124670	c.disk = disk
124671	c.regiondisksresizerequest = regiondisksresizerequest
124672	return c
124673}
124674
124675// RequestId sets the optional parameter "requestId": An optional
124676// request ID to identify requests. Specify a unique request ID so that
124677// if you must retry your request, the server will know to ignore the
124678// request if it has already been completed.
124679//
124680// For example, consider a situation where you make an initial request
124681// and the request times out. If you make the request again with the
124682// same request ID, the server can check if original operation with the
124683// same request ID was received, and if so, will ignore the second
124684// request. This prevents clients from accidentally creating duplicate
124685// commitments.
124686//
124687// The request ID must be a valid UUID with the exception that zero UUID
124688// is not supported (00000000-0000-0000-0000-000000000000).
124689func (c *RegionDisksResizeCall) RequestId(requestId string) *RegionDisksResizeCall {
124690	c.urlParams_.Set("requestId", requestId)
124691	return c
124692}
124693
124694// Fields allows partial responses to be retrieved. See
124695// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124696// for more information.
124697func (c *RegionDisksResizeCall) Fields(s ...googleapi.Field) *RegionDisksResizeCall {
124698	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124699	return c
124700}
124701
124702// Context sets the context to be used in this call's Do method. Any
124703// pending HTTP request will be aborted if the provided context is
124704// canceled.
124705func (c *RegionDisksResizeCall) Context(ctx context.Context) *RegionDisksResizeCall {
124706	c.ctx_ = ctx
124707	return c
124708}
124709
124710// Header returns an http.Header that can be modified by the caller to
124711// add HTTP headers to the request.
124712func (c *RegionDisksResizeCall) Header() http.Header {
124713	if c.header_ == nil {
124714		c.header_ = make(http.Header)
124715	}
124716	return c.header_
124717}
124718
124719func (c *RegionDisksResizeCall) doRequest(alt string) (*http.Response, error) {
124720	reqHeaders := make(http.Header)
124721	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
124722	for k, v := range c.header_ {
124723		reqHeaders[k] = v
124724	}
124725	reqHeaders.Set("User-Agent", c.s.userAgent())
124726	var body io.Reader = nil
124727	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksresizerequest)
124728	if err != nil {
124729		return nil, err
124730	}
124731	reqHeaders.Set("Content-Type", "application/json")
124732	c.urlParams_.Set("alt", alt)
124733	c.urlParams_.Set("prettyPrint", "false")
124734	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}/resize")
124735	urls += "?" + c.urlParams_.Encode()
124736	req, err := http.NewRequest("POST", urls, body)
124737	if err != nil {
124738		return nil, err
124739	}
124740	req.Header = reqHeaders
124741	googleapi.Expand(req.URL, map[string]string{
124742		"project": c.project,
124743		"region":  c.region,
124744		"disk":    c.disk,
124745	})
124746	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124747}
124748
124749// Do executes the "compute.regionDisks.resize" call.
124750// Exactly one of *Operation or error will be non-nil. Any non-2xx
124751// status code is an error. Response headers are in either
124752// *Operation.ServerResponse.Header or (if a response was returned at
124753// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124754// to check whether the returned error was because
124755// http.StatusNotModified was returned.
124756func (c *RegionDisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124757	gensupport.SetOptions(c.urlParams_, opts...)
124758	res, err := c.doRequest("json")
124759	if res != nil && res.StatusCode == http.StatusNotModified {
124760		if res.Body != nil {
124761			res.Body.Close()
124762		}
124763		return nil, &googleapi.Error{
124764			Code:   res.StatusCode,
124765			Header: res.Header,
124766		}
124767	}
124768	if err != nil {
124769		return nil, err
124770	}
124771	defer googleapi.CloseBody(res)
124772	if err := googleapi.CheckResponse(res); err != nil {
124773		return nil, err
124774	}
124775	ret := &Operation{
124776		ServerResponse: googleapi.ServerResponse{
124777			Header:         res.Header,
124778			HTTPStatusCode: res.StatusCode,
124779		},
124780	}
124781	target := &ret
124782	if err := gensupport.DecodeResponse(target, res); err != nil {
124783		return nil, err
124784	}
124785	return ret, nil
124786	// {
124787	//   "description": "Resizes the specified regional persistent disk.",
124788	//   "httpMethod": "POST",
124789	//   "id": "compute.regionDisks.resize",
124790	//   "parameterOrder": [
124791	//     "project",
124792	//     "region",
124793	//     "disk"
124794	//   ],
124795	//   "parameters": {
124796	//     "disk": {
124797	//       "description": "Name of the regional persistent disk.",
124798	//       "location": "path",
124799	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
124800	//       "required": true,
124801	//       "type": "string"
124802	//     },
124803	//     "project": {
124804	//       "description": "The project ID for this request.",
124805	//       "location": "path",
124806	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124807	//       "required": true,
124808	//       "type": "string"
124809	//     },
124810	//     "region": {
124811	//       "description": "Name of the region for this request.",
124812	//       "location": "path",
124813	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124814	//       "required": true,
124815	//       "type": "string"
124816	//     },
124817	//     "requestId": {
124818	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
124819	//       "location": "query",
124820	//       "type": "string"
124821	//     }
124822	//   },
124823	//   "path": "{project}/regions/{region}/disks/{disk}/resize",
124824	//   "request": {
124825	//     "$ref": "RegionDisksResizeRequest"
124826	//   },
124827	//   "response": {
124828	//     "$ref": "Operation"
124829	//   },
124830	//   "scopes": [
124831	//     "https://www.googleapis.com/auth/cloud-platform",
124832	//     "https://www.googleapis.com/auth/compute"
124833	//   ]
124834	// }
124835
124836}
124837
124838// method id "compute.regionDisks.setIamPolicy":
124839
124840type RegionDisksSetIamPolicyCall struct {
124841	s                      *Service
124842	project                string
124843	region                 string
124844	resource               string
124845	regionsetpolicyrequest *RegionSetPolicyRequest
124846	urlParams_             gensupport.URLParams
124847	ctx_                   context.Context
124848	header_                http.Header
124849}
124850
124851// SetIamPolicy: Sets the access control policy on the specified
124852// resource. Replaces any existing policy.
124853func (r *RegionDisksService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *RegionDisksSetIamPolicyCall {
124854	c := &RegionDisksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124855	c.project = project
124856	c.region = region
124857	c.resource = resource
124858	c.regionsetpolicyrequest = regionsetpolicyrequest
124859	return c
124860}
124861
124862// Fields allows partial responses to be retrieved. See
124863// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124864// for more information.
124865func (c *RegionDisksSetIamPolicyCall) Fields(s ...googleapi.Field) *RegionDisksSetIamPolicyCall {
124866	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124867	return c
124868}
124869
124870// Context sets the context to be used in this call's Do method. Any
124871// pending HTTP request will be aborted if the provided context is
124872// canceled.
124873func (c *RegionDisksSetIamPolicyCall) Context(ctx context.Context) *RegionDisksSetIamPolicyCall {
124874	c.ctx_ = ctx
124875	return c
124876}
124877
124878// Header returns an http.Header that can be modified by the caller to
124879// add HTTP headers to the request.
124880func (c *RegionDisksSetIamPolicyCall) Header() http.Header {
124881	if c.header_ == nil {
124882		c.header_ = make(http.Header)
124883	}
124884	return c.header_
124885}
124886
124887func (c *RegionDisksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
124888	reqHeaders := make(http.Header)
124889	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
124890	for k, v := range c.header_ {
124891		reqHeaders[k] = v
124892	}
124893	reqHeaders.Set("User-Agent", c.s.userAgent())
124894	var body io.Reader = nil
124895	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
124896	if err != nil {
124897		return nil, err
124898	}
124899	reqHeaders.Set("Content-Type", "application/json")
124900	c.urlParams_.Set("alt", alt)
124901	c.urlParams_.Set("prettyPrint", "false")
124902	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{resource}/setIamPolicy")
124903	urls += "?" + c.urlParams_.Encode()
124904	req, err := http.NewRequest("POST", urls, body)
124905	if err != nil {
124906		return nil, err
124907	}
124908	req.Header = reqHeaders
124909	googleapi.Expand(req.URL, map[string]string{
124910		"project":  c.project,
124911		"region":   c.region,
124912		"resource": c.resource,
124913	})
124914	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124915}
124916
124917// Do executes the "compute.regionDisks.setIamPolicy" call.
124918// Exactly one of *Policy or error will be non-nil. Any non-2xx status
124919// code is an error. Response headers are in either
124920// *Policy.ServerResponse.Header or (if a response was returned at all)
124921// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
124922// check whether the returned error was because http.StatusNotModified
124923// was returned.
124924func (c *RegionDisksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
124925	gensupport.SetOptions(c.urlParams_, opts...)
124926	res, err := c.doRequest("json")
124927	if res != nil && res.StatusCode == http.StatusNotModified {
124928		if res.Body != nil {
124929			res.Body.Close()
124930		}
124931		return nil, &googleapi.Error{
124932			Code:   res.StatusCode,
124933			Header: res.Header,
124934		}
124935	}
124936	if err != nil {
124937		return nil, err
124938	}
124939	defer googleapi.CloseBody(res)
124940	if err := googleapi.CheckResponse(res); err != nil {
124941		return nil, err
124942	}
124943	ret := &Policy{
124944		ServerResponse: googleapi.ServerResponse{
124945			Header:         res.Header,
124946			HTTPStatusCode: res.StatusCode,
124947		},
124948	}
124949	target := &ret
124950	if err := gensupport.DecodeResponse(target, res); err != nil {
124951		return nil, err
124952	}
124953	return ret, nil
124954	// {
124955	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
124956	//   "httpMethod": "POST",
124957	//   "id": "compute.regionDisks.setIamPolicy",
124958	//   "parameterOrder": [
124959	//     "project",
124960	//     "region",
124961	//     "resource"
124962	//   ],
124963	//   "parameters": {
124964	//     "project": {
124965	//       "description": "Project ID for this request.",
124966	//       "location": "path",
124967	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124968	//       "required": true,
124969	//       "type": "string"
124970	//     },
124971	//     "region": {
124972	//       "description": "The name of the region for this request.",
124973	//       "location": "path",
124974	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124975	//       "required": true,
124976	//       "type": "string"
124977	//     },
124978	//     "resource": {
124979	//       "description": "Name or id of the resource for this request.",
124980	//       "location": "path",
124981	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
124982	//       "required": true,
124983	//       "type": "string"
124984	//     }
124985	//   },
124986	//   "path": "{project}/regions/{region}/disks/{resource}/setIamPolicy",
124987	//   "request": {
124988	//     "$ref": "RegionSetPolicyRequest"
124989	//   },
124990	//   "response": {
124991	//     "$ref": "Policy"
124992	//   },
124993	//   "scopes": [
124994	//     "https://www.googleapis.com/auth/cloud-platform",
124995	//     "https://www.googleapis.com/auth/compute"
124996	//   ]
124997	// }
124998
124999}
125000
125001// method id "compute.regionDisks.setLabels":
125002
125003type RegionDisksSetLabelsCall struct {
125004	s                      *Service
125005	project                string
125006	region                 string
125007	resource               string
125008	regionsetlabelsrequest *RegionSetLabelsRequest
125009	urlParams_             gensupport.URLParams
125010	ctx_                   context.Context
125011	header_                http.Header
125012}
125013
125014// SetLabels: Sets the labels on the target regional disk.
125015func (r *RegionDisksService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *RegionDisksSetLabelsCall {
125016	c := &RegionDisksSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125017	c.project = project
125018	c.region = region
125019	c.resource = resource
125020	c.regionsetlabelsrequest = regionsetlabelsrequest
125021	return c
125022}
125023
125024// RequestId sets the optional parameter "requestId": An optional
125025// request ID to identify requests. Specify a unique request ID so that
125026// if you must retry your request, the server will know to ignore the
125027// request if it has already been completed.
125028//
125029// For example, consider a situation where you make an initial request
125030// and the request times out. If you make the request again with the
125031// same request ID, the server can check if original operation with the
125032// same request ID was received, and if so, will ignore the second
125033// request. This prevents clients from accidentally creating duplicate
125034// commitments.
125035//
125036// The request ID must be a valid UUID with the exception that zero UUID
125037// is not supported (00000000-0000-0000-0000-000000000000).
125038func (c *RegionDisksSetLabelsCall) RequestId(requestId string) *RegionDisksSetLabelsCall {
125039	c.urlParams_.Set("requestId", requestId)
125040	return c
125041}
125042
125043// Fields allows partial responses to be retrieved. See
125044// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125045// for more information.
125046func (c *RegionDisksSetLabelsCall) Fields(s ...googleapi.Field) *RegionDisksSetLabelsCall {
125047	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125048	return c
125049}
125050
125051// Context sets the context to be used in this call's Do method. Any
125052// pending HTTP request will be aborted if the provided context is
125053// canceled.
125054func (c *RegionDisksSetLabelsCall) Context(ctx context.Context) *RegionDisksSetLabelsCall {
125055	c.ctx_ = ctx
125056	return c
125057}
125058
125059// Header returns an http.Header that can be modified by the caller to
125060// add HTTP headers to the request.
125061func (c *RegionDisksSetLabelsCall) Header() http.Header {
125062	if c.header_ == nil {
125063		c.header_ = make(http.Header)
125064	}
125065	return c.header_
125066}
125067
125068func (c *RegionDisksSetLabelsCall) doRequest(alt string) (*http.Response, error) {
125069	reqHeaders := make(http.Header)
125070	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
125071	for k, v := range c.header_ {
125072		reqHeaders[k] = v
125073	}
125074	reqHeaders.Set("User-Agent", c.s.userAgent())
125075	var body io.Reader = nil
125076	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
125077	if err != nil {
125078		return nil, err
125079	}
125080	reqHeaders.Set("Content-Type", "application/json")
125081	c.urlParams_.Set("alt", alt)
125082	c.urlParams_.Set("prettyPrint", "false")
125083	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{resource}/setLabels")
125084	urls += "?" + c.urlParams_.Encode()
125085	req, err := http.NewRequest("POST", urls, body)
125086	if err != nil {
125087		return nil, err
125088	}
125089	req.Header = reqHeaders
125090	googleapi.Expand(req.URL, map[string]string{
125091		"project":  c.project,
125092		"region":   c.region,
125093		"resource": c.resource,
125094	})
125095	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125096}
125097
125098// Do executes the "compute.regionDisks.setLabels" call.
125099// Exactly one of *Operation or error will be non-nil. Any non-2xx
125100// status code is an error. Response headers are in either
125101// *Operation.ServerResponse.Header or (if a response was returned at
125102// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125103// to check whether the returned error was because
125104// http.StatusNotModified was returned.
125105func (c *RegionDisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
125106	gensupport.SetOptions(c.urlParams_, opts...)
125107	res, err := c.doRequest("json")
125108	if res != nil && res.StatusCode == http.StatusNotModified {
125109		if res.Body != nil {
125110			res.Body.Close()
125111		}
125112		return nil, &googleapi.Error{
125113			Code:   res.StatusCode,
125114			Header: res.Header,
125115		}
125116	}
125117	if err != nil {
125118		return nil, err
125119	}
125120	defer googleapi.CloseBody(res)
125121	if err := googleapi.CheckResponse(res); err != nil {
125122		return nil, err
125123	}
125124	ret := &Operation{
125125		ServerResponse: googleapi.ServerResponse{
125126			Header:         res.Header,
125127			HTTPStatusCode: res.StatusCode,
125128		},
125129	}
125130	target := &ret
125131	if err := gensupport.DecodeResponse(target, res); err != nil {
125132		return nil, err
125133	}
125134	return ret, nil
125135	// {
125136	//   "description": "Sets the labels on the target regional disk.",
125137	//   "httpMethod": "POST",
125138	//   "id": "compute.regionDisks.setLabels",
125139	//   "parameterOrder": [
125140	//     "project",
125141	//     "region",
125142	//     "resource"
125143	//   ],
125144	//   "parameters": {
125145	//     "project": {
125146	//       "description": "Project ID for this request.",
125147	//       "location": "path",
125148	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125149	//       "required": true,
125150	//       "type": "string"
125151	//     },
125152	//     "region": {
125153	//       "description": "The region for this request.",
125154	//       "location": "path",
125155	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125156	//       "required": true,
125157	//       "type": "string"
125158	//     },
125159	//     "requestId": {
125160	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
125161	//       "location": "query",
125162	//       "type": "string"
125163	//     },
125164	//     "resource": {
125165	//       "description": "Name or id of the resource for this request.",
125166	//       "location": "path",
125167	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
125168	//       "required": true,
125169	//       "type": "string"
125170	//     }
125171	//   },
125172	//   "path": "{project}/regions/{region}/disks/{resource}/setLabels",
125173	//   "request": {
125174	//     "$ref": "RegionSetLabelsRequest"
125175	//   },
125176	//   "response": {
125177	//     "$ref": "Operation"
125178	//   },
125179	//   "scopes": [
125180	//     "https://www.googleapis.com/auth/cloud-platform",
125181	//     "https://www.googleapis.com/auth/compute"
125182	//   ]
125183	// }
125184
125185}
125186
125187// method id "compute.regionDisks.testIamPermissions":
125188
125189type RegionDisksTestIamPermissionsCall struct {
125190	s                      *Service
125191	project                string
125192	region                 string
125193	resource               string
125194	testpermissionsrequest *TestPermissionsRequest
125195	urlParams_             gensupport.URLParams
125196	ctx_                   context.Context
125197	header_                http.Header
125198}
125199
125200// TestIamPermissions: Returns permissions that a caller has on the
125201// specified resource.
125202func (r *RegionDisksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionDisksTestIamPermissionsCall {
125203	c := &RegionDisksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125204	c.project = project
125205	c.region = region
125206	c.resource = resource
125207	c.testpermissionsrequest = testpermissionsrequest
125208	return c
125209}
125210
125211// Fields allows partial responses to be retrieved. See
125212// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125213// for more information.
125214func (c *RegionDisksTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionDisksTestIamPermissionsCall {
125215	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125216	return c
125217}
125218
125219// Context sets the context to be used in this call's Do method. Any
125220// pending HTTP request will be aborted if the provided context is
125221// canceled.
125222func (c *RegionDisksTestIamPermissionsCall) Context(ctx context.Context) *RegionDisksTestIamPermissionsCall {
125223	c.ctx_ = ctx
125224	return c
125225}
125226
125227// Header returns an http.Header that can be modified by the caller to
125228// add HTTP headers to the request.
125229func (c *RegionDisksTestIamPermissionsCall) Header() http.Header {
125230	if c.header_ == nil {
125231		c.header_ = make(http.Header)
125232	}
125233	return c.header_
125234}
125235
125236func (c *RegionDisksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
125237	reqHeaders := make(http.Header)
125238	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
125239	for k, v := range c.header_ {
125240		reqHeaders[k] = v
125241	}
125242	reqHeaders.Set("User-Agent", c.s.userAgent())
125243	var body io.Reader = nil
125244	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
125245	if err != nil {
125246		return nil, err
125247	}
125248	reqHeaders.Set("Content-Type", "application/json")
125249	c.urlParams_.Set("alt", alt)
125250	c.urlParams_.Set("prettyPrint", "false")
125251	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{resource}/testIamPermissions")
125252	urls += "?" + c.urlParams_.Encode()
125253	req, err := http.NewRequest("POST", urls, body)
125254	if err != nil {
125255		return nil, err
125256	}
125257	req.Header = reqHeaders
125258	googleapi.Expand(req.URL, map[string]string{
125259		"project":  c.project,
125260		"region":   c.region,
125261		"resource": c.resource,
125262	})
125263	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125264}
125265
125266// Do executes the "compute.regionDisks.testIamPermissions" call.
125267// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
125268// non-2xx status code is an error. Response headers are in either
125269// *TestPermissionsResponse.ServerResponse.Header or (if a response was
125270// returned at all) in error.(*googleapi.Error).Header. Use
125271// googleapi.IsNotModified to check whether the returned error was
125272// because http.StatusNotModified was returned.
125273func (c *RegionDisksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
125274	gensupport.SetOptions(c.urlParams_, opts...)
125275	res, err := c.doRequest("json")
125276	if res != nil && res.StatusCode == http.StatusNotModified {
125277		if res.Body != nil {
125278			res.Body.Close()
125279		}
125280		return nil, &googleapi.Error{
125281			Code:   res.StatusCode,
125282			Header: res.Header,
125283		}
125284	}
125285	if err != nil {
125286		return nil, err
125287	}
125288	defer googleapi.CloseBody(res)
125289	if err := googleapi.CheckResponse(res); err != nil {
125290		return nil, err
125291	}
125292	ret := &TestPermissionsResponse{
125293		ServerResponse: googleapi.ServerResponse{
125294			Header:         res.Header,
125295			HTTPStatusCode: res.StatusCode,
125296		},
125297	}
125298	target := &ret
125299	if err := gensupport.DecodeResponse(target, res); err != nil {
125300		return nil, err
125301	}
125302	return ret, nil
125303	// {
125304	//   "description": "Returns permissions that a caller has on the specified resource.",
125305	//   "httpMethod": "POST",
125306	//   "id": "compute.regionDisks.testIamPermissions",
125307	//   "parameterOrder": [
125308	//     "project",
125309	//     "region",
125310	//     "resource"
125311	//   ],
125312	//   "parameters": {
125313	//     "project": {
125314	//       "description": "Project ID for this request.",
125315	//       "location": "path",
125316	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125317	//       "required": true,
125318	//       "type": "string"
125319	//     },
125320	//     "region": {
125321	//       "description": "The name of the region for this request.",
125322	//       "location": "path",
125323	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125324	//       "required": true,
125325	//       "type": "string"
125326	//     },
125327	//     "resource": {
125328	//       "description": "Name or id of the resource for this request.",
125329	//       "location": "path",
125330	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
125331	//       "required": true,
125332	//       "type": "string"
125333	//     }
125334	//   },
125335	//   "path": "{project}/regions/{region}/disks/{resource}/testIamPermissions",
125336	//   "request": {
125337	//     "$ref": "TestPermissionsRequest"
125338	//   },
125339	//   "response": {
125340	//     "$ref": "TestPermissionsResponse"
125341	//   },
125342	//   "scopes": [
125343	//     "https://www.googleapis.com/auth/cloud-platform",
125344	//     "https://www.googleapis.com/auth/compute",
125345	//     "https://www.googleapis.com/auth/compute.readonly"
125346	//   ]
125347	// }
125348
125349}
125350
125351// method id "compute.regionHealthCheckServices.delete":
125352
125353type RegionHealthCheckServicesDeleteCall struct {
125354	s                  *Service
125355	project            string
125356	region             string
125357	healthCheckService string
125358	urlParams_         gensupport.URLParams
125359	ctx_               context.Context
125360	header_            http.Header
125361}
125362
125363// Delete: Deletes the specified regional HealthCheckService.
125364func (r *RegionHealthCheckServicesService) Delete(project string, region string, healthCheckService string) *RegionHealthCheckServicesDeleteCall {
125365	c := &RegionHealthCheckServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125366	c.project = project
125367	c.region = region
125368	c.healthCheckService = healthCheckService
125369	return c
125370}
125371
125372// RequestId sets the optional parameter "requestId": An optional
125373// request ID to identify requests. Specify a unique request ID so that
125374// if you must retry your request, the server will know to ignore the
125375// request if it has already been completed.
125376//
125377// For example, consider a situation where you make an initial request
125378// and the request times out. If you make the request again with the
125379// same request ID, the server can check if original operation with the
125380// same request ID was received, and if so, will ignore the second
125381// request. This prevents clients from accidentally creating duplicate
125382// commitments.
125383//
125384// The request ID must be a valid UUID with the exception that zero UUID
125385// is not supported (00000000-0000-0000-0000-000000000000).
125386func (c *RegionHealthCheckServicesDeleteCall) RequestId(requestId string) *RegionHealthCheckServicesDeleteCall {
125387	c.urlParams_.Set("requestId", requestId)
125388	return c
125389}
125390
125391// Fields allows partial responses to be retrieved. See
125392// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125393// for more information.
125394func (c *RegionHealthCheckServicesDeleteCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesDeleteCall {
125395	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125396	return c
125397}
125398
125399// Context sets the context to be used in this call's Do method. Any
125400// pending HTTP request will be aborted if the provided context is
125401// canceled.
125402func (c *RegionHealthCheckServicesDeleteCall) Context(ctx context.Context) *RegionHealthCheckServicesDeleteCall {
125403	c.ctx_ = ctx
125404	return c
125405}
125406
125407// Header returns an http.Header that can be modified by the caller to
125408// add HTTP headers to the request.
125409func (c *RegionHealthCheckServicesDeleteCall) Header() http.Header {
125410	if c.header_ == nil {
125411		c.header_ = make(http.Header)
125412	}
125413	return c.header_
125414}
125415
125416func (c *RegionHealthCheckServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
125417	reqHeaders := make(http.Header)
125418	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
125419	for k, v := range c.header_ {
125420		reqHeaders[k] = v
125421	}
125422	reqHeaders.Set("User-Agent", c.s.userAgent())
125423	var body io.Reader = nil
125424	c.urlParams_.Set("alt", alt)
125425	c.urlParams_.Set("prettyPrint", "false")
125426	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices/{healthCheckService}")
125427	urls += "?" + c.urlParams_.Encode()
125428	req, err := http.NewRequest("DELETE", urls, body)
125429	if err != nil {
125430		return nil, err
125431	}
125432	req.Header = reqHeaders
125433	googleapi.Expand(req.URL, map[string]string{
125434		"project":            c.project,
125435		"region":             c.region,
125436		"healthCheckService": c.healthCheckService,
125437	})
125438	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125439}
125440
125441// Do executes the "compute.regionHealthCheckServices.delete" call.
125442// Exactly one of *Operation or error will be non-nil. Any non-2xx
125443// status code is an error. Response headers are in either
125444// *Operation.ServerResponse.Header or (if a response was returned at
125445// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125446// to check whether the returned error was because
125447// http.StatusNotModified was returned.
125448func (c *RegionHealthCheckServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
125449	gensupport.SetOptions(c.urlParams_, opts...)
125450	res, err := c.doRequest("json")
125451	if res != nil && res.StatusCode == http.StatusNotModified {
125452		if res.Body != nil {
125453			res.Body.Close()
125454		}
125455		return nil, &googleapi.Error{
125456			Code:   res.StatusCode,
125457			Header: res.Header,
125458		}
125459	}
125460	if err != nil {
125461		return nil, err
125462	}
125463	defer googleapi.CloseBody(res)
125464	if err := googleapi.CheckResponse(res); err != nil {
125465		return nil, err
125466	}
125467	ret := &Operation{
125468		ServerResponse: googleapi.ServerResponse{
125469			Header:         res.Header,
125470			HTTPStatusCode: res.StatusCode,
125471		},
125472	}
125473	target := &ret
125474	if err := gensupport.DecodeResponse(target, res); err != nil {
125475		return nil, err
125476	}
125477	return ret, nil
125478	// {
125479	//   "description": "Deletes the specified regional HealthCheckService.",
125480	//   "httpMethod": "DELETE",
125481	//   "id": "compute.regionHealthCheckServices.delete",
125482	//   "parameterOrder": [
125483	//     "project",
125484	//     "region",
125485	//     "healthCheckService"
125486	//   ],
125487	//   "parameters": {
125488	//     "healthCheckService": {
125489	//       "description": "Name of the HealthCheckService to delete. The name must be 1-63 characters long, and comply with RFC1035.",
125490	//       "location": "path",
125491	//       "required": true,
125492	//       "type": "string"
125493	//     },
125494	//     "project": {
125495	//       "description": "Project ID for this request.",
125496	//       "location": "path",
125497	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125498	//       "required": true,
125499	//       "type": "string"
125500	//     },
125501	//     "region": {
125502	//       "description": "Name of the region scoping this request.",
125503	//       "location": "path",
125504	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125505	//       "required": true,
125506	//       "type": "string"
125507	//     },
125508	//     "requestId": {
125509	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
125510	//       "location": "query",
125511	//       "type": "string"
125512	//     }
125513	//   },
125514	//   "path": "{project}/regions/{region}/healthCheckServices/{healthCheckService}",
125515	//   "response": {
125516	//     "$ref": "Operation"
125517	//   },
125518	//   "scopes": [
125519	//     "https://www.googleapis.com/auth/cloud-platform",
125520	//     "https://www.googleapis.com/auth/compute"
125521	//   ]
125522	// }
125523
125524}
125525
125526// method id "compute.regionHealthCheckServices.get":
125527
125528type RegionHealthCheckServicesGetCall struct {
125529	s                  *Service
125530	project            string
125531	region             string
125532	healthCheckService string
125533	urlParams_         gensupport.URLParams
125534	ifNoneMatch_       string
125535	ctx_               context.Context
125536	header_            http.Header
125537}
125538
125539// Get: Returns the specified regional HealthCheckService resource.
125540func (r *RegionHealthCheckServicesService) Get(project string, region string, healthCheckService string) *RegionHealthCheckServicesGetCall {
125541	c := &RegionHealthCheckServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125542	c.project = project
125543	c.region = region
125544	c.healthCheckService = healthCheckService
125545	return c
125546}
125547
125548// Fields allows partial responses to be retrieved. See
125549// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125550// for more information.
125551func (c *RegionHealthCheckServicesGetCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesGetCall {
125552	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125553	return c
125554}
125555
125556// IfNoneMatch sets the optional parameter which makes the operation
125557// fail if the object's ETag matches the given value. This is useful for
125558// getting updates only after the object has changed since the last
125559// request. Use googleapi.IsNotModified to check whether the response
125560// error from Do is the result of In-None-Match.
125561func (c *RegionHealthCheckServicesGetCall) IfNoneMatch(entityTag string) *RegionHealthCheckServicesGetCall {
125562	c.ifNoneMatch_ = entityTag
125563	return c
125564}
125565
125566// Context sets the context to be used in this call's Do method. Any
125567// pending HTTP request will be aborted if the provided context is
125568// canceled.
125569func (c *RegionHealthCheckServicesGetCall) Context(ctx context.Context) *RegionHealthCheckServicesGetCall {
125570	c.ctx_ = ctx
125571	return c
125572}
125573
125574// Header returns an http.Header that can be modified by the caller to
125575// add HTTP headers to the request.
125576func (c *RegionHealthCheckServicesGetCall) Header() http.Header {
125577	if c.header_ == nil {
125578		c.header_ = make(http.Header)
125579	}
125580	return c.header_
125581}
125582
125583func (c *RegionHealthCheckServicesGetCall) doRequest(alt string) (*http.Response, error) {
125584	reqHeaders := make(http.Header)
125585	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
125586	for k, v := range c.header_ {
125587		reqHeaders[k] = v
125588	}
125589	reqHeaders.Set("User-Agent", c.s.userAgent())
125590	if c.ifNoneMatch_ != "" {
125591		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
125592	}
125593	var body io.Reader = nil
125594	c.urlParams_.Set("alt", alt)
125595	c.urlParams_.Set("prettyPrint", "false")
125596	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices/{healthCheckService}")
125597	urls += "?" + c.urlParams_.Encode()
125598	req, err := http.NewRequest("GET", urls, body)
125599	if err != nil {
125600		return nil, err
125601	}
125602	req.Header = reqHeaders
125603	googleapi.Expand(req.URL, map[string]string{
125604		"project":            c.project,
125605		"region":             c.region,
125606		"healthCheckService": c.healthCheckService,
125607	})
125608	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125609}
125610
125611// Do executes the "compute.regionHealthCheckServices.get" call.
125612// Exactly one of *HealthCheckService or error will be non-nil. Any
125613// non-2xx status code is an error. Response headers are in either
125614// *HealthCheckService.ServerResponse.Header or (if a response was
125615// returned at all) in error.(*googleapi.Error).Header. Use
125616// googleapi.IsNotModified to check whether the returned error was
125617// because http.StatusNotModified was returned.
125618func (c *RegionHealthCheckServicesGetCall) Do(opts ...googleapi.CallOption) (*HealthCheckService, error) {
125619	gensupport.SetOptions(c.urlParams_, opts...)
125620	res, err := c.doRequest("json")
125621	if res != nil && res.StatusCode == http.StatusNotModified {
125622		if res.Body != nil {
125623			res.Body.Close()
125624		}
125625		return nil, &googleapi.Error{
125626			Code:   res.StatusCode,
125627			Header: res.Header,
125628		}
125629	}
125630	if err != nil {
125631		return nil, err
125632	}
125633	defer googleapi.CloseBody(res)
125634	if err := googleapi.CheckResponse(res); err != nil {
125635		return nil, err
125636	}
125637	ret := &HealthCheckService{
125638		ServerResponse: googleapi.ServerResponse{
125639			Header:         res.Header,
125640			HTTPStatusCode: res.StatusCode,
125641		},
125642	}
125643	target := &ret
125644	if err := gensupport.DecodeResponse(target, res); err != nil {
125645		return nil, err
125646	}
125647	return ret, nil
125648	// {
125649	//   "description": "Returns the specified regional HealthCheckService resource.",
125650	//   "httpMethod": "GET",
125651	//   "id": "compute.regionHealthCheckServices.get",
125652	//   "parameterOrder": [
125653	//     "project",
125654	//     "region",
125655	//     "healthCheckService"
125656	//   ],
125657	//   "parameters": {
125658	//     "healthCheckService": {
125659	//       "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.",
125660	//       "location": "path",
125661	//       "required": true,
125662	//       "type": "string"
125663	//     },
125664	//     "project": {
125665	//       "description": "Project ID for this request.",
125666	//       "location": "path",
125667	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125668	//       "required": true,
125669	//       "type": "string"
125670	//     },
125671	//     "region": {
125672	//       "description": "Name of the region scoping this request.",
125673	//       "location": "path",
125674	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125675	//       "required": true,
125676	//       "type": "string"
125677	//     }
125678	//   },
125679	//   "path": "{project}/regions/{region}/healthCheckServices/{healthCheckService}",
125680	//   "response": {
125681	//     "$ref": "HealthCheckService"
125682	//   },
125683	//   "scopes": [
125684	//     "https://www.googleapis.com/auth/cloud-platform",
125685	//     "https://www.googleapis.com/auth/compute",
125686	//     "https://www.googleapis.com/auth/compute.readonly"
125687	//   ]
125688	// }
125689
125690}
125691
125692// method id "compute.regionHealthCheckServices.insert":
125693
125694type RegionHealthCheckServicesInsertCall struct {
125695	s                  *Service
125696	project            string
125697	region             string
125698	healthcheckservice *HealthCheckService
125699	urlParams_         gensupport.URLParams
125700	ctx_               context.Context
125701	header_            http.Header
125702}
125703
125704// Insert: Creates a regional HealthCheckService resource in the
125705// specified project and region using the data included in the request.
125706func (r *RegionHealthCheckServicesService) Insert(project string, region string, healthcheckservice *HealthCheckService) *RegionHealthCheckServicesInsertCall {
125707	c := &RegionHealthCheckServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125708	c.project = project
125709	c.region = region
125710	c.healthcheckservice = healthcheckservice
125711	return c
125712}
125713
125714// RequestId sets the optional parameter "requestId": An optional
125715// request ID to identify requests. Specify a unique request ID so that
125716// if you must retry your request, the server will know to ignore the
125717// request if it has already been completed.
125718//
125719// For example, consider a situation where you make an initial request
125720// and the request times out. If you make the request again with the
125721// same request ID, the server can check if original operation with the
125722// same request ID was received, and if so, will ignore the second
125723// request. This prevents clients from accidentally creating duplicate
125724// commitments.
125725//
125726// The request ID must be a valid UUID with the exception that zero UUID
125727// is not supported (00000000-0000-0000-0000-000000000000).
125728func (c *RegionHealthCheckServicesInsertCall) RequestId(requestId string) *RegionHealthCheckServicesInsertCall {
125729	c.urlParams_.Set("requestId", requestId)
125730	return c
125731}
125732
125733// Fields allows partial responses to be retrieved. See
125734// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125735// for more information.
125736func (c *RegionHealthCheckServicesInsertCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesInsertCall {
125737	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125738	return c
125739}
125740
125741// Context sets the context to be used in this call's Do method. Any
125742// pending HTTP request will be aborted if the provided context is
125743// canceled.
125744func (c *RegionHealthCheckServicesInsertCall) Context(ctx context.Context) *RegionHealthCheckServicesInsertCall {
125745	c.ctx_ = ctx
125746	return c
125747}
125748
125749// Header returns an http.Header that can be modified by the caller to
125750// add HTTP headers to the request.
125751func (c *RegionHealthCheckServicesInsertCall) Header() http.Header {
125752	if c.header_ == nil {
125753		c.header_ = make(http.Header)
125754	}
125755	return c.header_
125756}
125757
125758func (c *RegionHealthCheckServicesInsertCall) doRequest(alt string) (*http.Response, error) {
125759	reqHeaders := make(http.Header)
125760	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
125761	for k, v := range c.header_ {
125762		reqHeaders[k] = v
125763	}
125764	reqHeaders.Set("User-Agent", c.s.userAgent())
125765	var body io.Reader = nil
125766	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheckservice)
125767	if err != nil {
125768		return nil, err
125769	}
125770	reqHeaders.Set("Content-Type", "application/json")
125771	c.urlParams_.Set("alt", alt)
125772	c.urlParams_.Set("prettyPrint", "false")
125773	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices")
125774	urls += "?" + c.urlParams_.Encode()
125775	req, err := http.NewRequest("POST", urls, body)
125776	if err != nil {
125777		return nil, err
125778	}
125779	req.Header = reqHeaders
125780	googleapi.Expand(req.URL, map[string]string{
125781		"project": c.project,
125782		"region":  c.region,
125783	})
125784	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125785}
125786
125787// Do executes the "compute.regionHealthCheckServices.insert" call.
125788// Exactly one of *Operation or error will be non-nil. Any non-2xx
125789// status code is an error. Response headers are in either
125790// *Operation.ServerResponse.Header or (if a response was returned at
125791// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125792// to check whether the returned error was because
125793// http.StatusNotModified was returned.
125794func (c *RegionHealthCheckServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
125795	gensupport.SetOptions(c.urlParams_, opts...)
125796	res, err := c.doRequest("json")
125797	if res != nil && res.StatusCode == http.StatusNotModified {
125798		if res.Body != nil {
125799			res.Body.Close()
125800		}
125801		return nil, &googleapi.Error{
125802			Code:   res.StatusCode,
125803			Header: res.Header,
125804		}
125805	}
125806	if err != nil {
125807		return nil, err
125808	}
125809	defer googleapi.CloseBody(res)
125810	if err := googleapi.CheckResponse(res); err != nil {
125811		return nil, err
125812	}
125813	ret := &Operation{
125814		ServerResponse: googleapi.ServerResponse{
125815			Header:         res.Header,
125816			HTTPStatusCode: res.StatusCode,
125817		},
125818	}
125819	target := &ret
125820	if err := gensupport.DecodeResponse(target, res); err != nil {
125821		return nil, err
125822	}
125823	return ret, nil
125824	// {
125825	//   "description": "Creates a regional HealthCheckService resource in the specified project and region using the data included in the request.",
125826	//   "httpMethod": "POST",
125827	//   "id": "compute.regionHealthCheckServices.insert",
125828	//   "parameterOrder": [
125829	//     "project",
125830	//     "region"
125831	//   ],
125832	//   "parameters": {
125833	//     "project": {
125834	//       "description": "Project ID for this request.",
125835	//       "location": "path",
125836	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125837	//       "required": true,
125838	//       "type": "string"
125839	//     },
125840	//     "region": {
125841	//       "description": "Name of the region scoping this request.",
125842	//       "location": "path",
125843	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125844	//       "required": true,
125845	//       "type": "string"
125846	//     },
125847	//     "requestId": {
125848	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
125849	//       "location": "query",
125850	//       "type": "string"
125851	//     }
125852	//   },
125853	//   "path": "{project}/regions/{region}/healthCheckServices",
125854	//   "request": {
125855	//     "$ref": "HealthCheckService"
125856	//   },
125857	//   "response": {
125858	//     "$ref": "Operation"
125859	//   },
125860	//   "scopes": [
125861	//     "https://www.googleapis.com/auth/cloud-platform",
125862	//     "https://www.googleapis.com/auth/compute"
125863	//   ]
125864	// }
125865
125866}
125867
125868// method id "compute.regionHealthCheckServices.list":
125869
125870type RegionHealthCheckServicesListCall struct {
125871	s            *Service
125872	project      string
125873	region       string
125874	urlParams_   gensupport.URLParams
125875	ifNoneMatch_ string
125876	ctx_         context.Context
125877	header_      http.Header
125878}
125879
125880// List: Lists all the HealthCheckService resources that have been
125881// configured for the specified project in the given region.
125882func (r *RegionHealthCheckServicesService) List(project string, region string) *RegionHealthCheckServicesListCall {
125883	c := &RegionHealthCheckServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125884	c.project = project
125885	c.region = region
125886	return c
125887}
125888
125889// Filter sets the optional parameter "filter": A filter expression that
125890// filters resources listed in the response. The expression must specify
125891// the field name, a comparison operator, and the value that you want to
125892// use for filtering. The value must be a string, a number, or a
125893// boolean. The comparison operator must be either =, !=, >, or <.
125894//
125895// For example, if you are filtering Compute Engine instances, you can
125896// exclude instances named example-instance by specifying name !=
125897// example-instance.
125898//
125899// You can also filter nested fields. For example, you could specify
125900// scheduling.automaticRestart = false to include instances only if they
125901// are not scheduled for automatic restarts. You can use filtering on
125902// nested fields to filter based on resource labels.
125903//
125904// To filter on multiple expressions, provide each separate expression
125905// within parentheses. For example, (scheduling.automaticRestart = true)
125906// (cpuPlatform = "Intel Skylake"). By default, each expression is an
125907// AND expression. However, you can include AND and OR expressions
125908// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
125909// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
125910// true).
125911func (c *RegionHealthCheckServicesListCall) Filter(filter string) *RegionHealthCheckServicesListCall {
125912	c.urlParams_.Set("filter", filter)
125913	return c
125914}
125915
125916// MaxResults sets the optional parameter "maxResults": The maximum
125917// number of results per page that should be returned. If the number of
125918// available results is larger than maxResults, Compute Engine returns a
125919// nextPageToken that can be used to get the next page of results in
125920// subsequent list requests. Acceptable values are 0 to 500, inclusive.
125921// (Default: 500)
125922func (c *RegionHealthCheckServicesListCall) MaxResults(maxResults int64) *RegionHealthCheckServicesListCall {
125923	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
125924	return c
125925}
125926
125927// OrderBy sets the optional parameter "orderBy": Sorts list results by
125928// a certain order. By default, results are returned in alphanumerical
125929// order based on the resource name.
125930//
125931// You can also sort results in descending order based on the creation
125932// timestamp using orderBy="creationTimestamp desc". This sorts results
125933// based on the creationTimestamp field in reverse chronological order
125934// (newest result first). Use this to sort resources like operations so
125935// that the newest operation is returned first.
125936//
125937// Currently, only sorting by name or creationTimestamp desc is
125938// supported.
125939func (c *RegionHealthCheckServicesListCall) OrderBy(orderBy string) *RegionHealthCheckServicesListCall {
125940	c.urlParams_.Set("orderBy", orderBy)
125941	return c
125942}
125943
125944// PageToken sets the optional parameter "pageToken": Specifies a page
125945// token to use. Set pageToken to the nextPageToken returned by a
125946// previous list request to get the next page of results.
125947func (c *RegionHealthCheckServicesListCall) PageToken(pageToken string) *RegionHealthCheckServicesListCall {
125948	c.urlParams_.Set("pageToken", pageToken)
125949	return c
125950}
125951
125952// Fields allows partial responses to be retrieved. See
125953// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125954// for more information.
125955func (c *RegionHealthCheckServicesListCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesListCall {
125956	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125957	return c
125958}
125959
125960// IfNoneMatch sets the optional parameter which makes the operation
125961// fail if the object's ETag matches the given value. This is useful for
125962// getting updates only after the object has changed since the last
125963// request. Use googleapi.IsNotModified to check whether the response
125964// error from Do is the result of In-None-Match.
125965func (c *RegionHealthCheckServicesListCall) IfNoneMatch(entityTag string) *RegionHealthCheckServicesListCall {
125966	c.ifNoneMatch_ = entityTag
125967	return c
125968}
125969
125970// Context sets the context to be used in this call's Do method. Any
125971// pending HTTP request will be aborted if the provided context is
125972// canceled.
125973func (c *RegionHealthCheckServicesListCall) Context(ctx context.Context) *RegionHealthCheckServicesListCall {
125974	c.ctx_ = ctx
125975	return c
125976}
125977
125978// Header returns an http.Header that can be modified by the caller to
125979// add HTTP headers to the request.
125980func (c *RegionHealthCheckServicesListCall) Header() http.Header {
125981	if c.header_ == nil {
125982		c.header_ = make(http.Header)
125983	}
125984	return c.header_
125985}
125986
125987func (c *RegionHealthCheckServicesListCall) doRequest(alt string) (*http.Response, error) {
125988	reqHeaders := make(http.Header)
125989	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
125990	for k, v := range c.header_ {
125991		reqHeaders[k] = v
125992	}
125993	reqHeaders.Set("User-Agent", c.s.userAgent())
125994	if c.ifNoneMatch_ != "" {
125995		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
125996	}
125997	var body io.Reader = nil
125998	c.urlParams_.Set("alt", alt)
125999	c.urlParams_.Set("prettyPrint", "false")
126000	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices")
126001	urls += "?" + c.urlParams_.Encode()
126002	req, err := http.NewRequest("GET", urls, body)
126003	if err != nil {
126004		return nil, err
126005	}
126006	req.Header = reqHeaders
126007	googleapi.Expand(req.URL, map[string]string{
126008		"project": c.project,
126009		"region":  c.region,
126010	})
126011	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126012}
126013
126014// Do executes the "compute.regionHealthCheckServices.list" call.
126015// Exactly one of *HealthCheckServicesList or error will be non-nil. Any
126016// non-2xx status code is an error. Response headers are in either
126017// *HealthCheckServicesList.ServerResponse.Header or (if a response was
126018// returned at all) in error.(*googleapi.Error).Header. Use
126019// googleapi.IsNotModified to check whether the returned error was
126020// because http.StatusNotModified was returned.
126021func (c *RegionHealthCheckServicesListCall) Do(opts ...googleapi.CallOption) (*HealthCheckServicesList, error) {
126022	gensupport.SetOptions(c.urlParams_, opts...)
126023	res, err := c.doRequest("json")
126024	if res != nil && res.StatusCode == http.StatusNotModified {
126025		if res.Body != nil {
126026			res.Body.Close()
126027		}
126028		return nil, &googleapi.Error{
126029			Code:   res.StatusCode,
126030			Header: res.Header,
126031		}
126032	}
126033	if err != nil {
126034		return nil, err
126035	}
126036	defer googleapi.CloseBody(res)
126037	if err := googleapi.CheckResponse(res); err != nil {
126038		return nil, err
126039	}
126040	ret := &HealthCheckServicesList{
126041		ServerResponse: googleapi.ServerResponse{
126042			Header:         res.Header,
126043			HTTPStatusCode: res.StatusCode,
126044		},
126045	}
126046	target := &ret
126047	if err := gensupport.DecodeResponse(target, res); err != nil {
126048		return nil, err
126049	}
126050	return ret, nil
126051	// {
126052	//   "description": "Lists all the HealthCheckService resources that have been configured for the specified project in the given region.",
126053	//   "httpMethod": "GET",
126054	//   "id": "compute.regionHealthCheckServices.list",
126055	//   "parameterOrder": [
126056	//     "project",
126057	//     "region"
126058	//   ],
126059	//   "parameters": {
126060	//     "filter": {
126061	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
126062	//       "location": "query",
126063	//       "type": "string"
126064	//     },
126065	//     "maxResults": {
126066	//       "default": "500",
126067	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
126068	//       "format": "uint32",
126069	//       "location": "query",
126070	//       "minimum": "0",
126071	//       "type": "integer"
126072	//     },
126073	//     "orderBy": {
126074	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
126075	//       "location": "query",
126076	//       "type": "string"
126077	//     },
126078	//     "pageToken": {
126079	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
126080	//       "location": "query",
126081	//       "type": "string"
126082	//     },
126083	//     "project": {
126084	//       "description": "Project ID for this request.",
126085	//       "location": "path",
126086	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126087	//       "required": true,
126088	//       "type": "string"
126089	//     },
126090	//     "region": {
126091	//       "description": "Name of the region scoping this request.",
126092	//       "location": "path",
126093	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126094	//       "required": true,
126095	//       "type": "string"
126096	//     }
126097	//   },
126098	//   "path": "{project}/regions/{region}/healthCheckServices",
126099	//   "response": {
126100	//     "$ref": "HealthCheckServicesList"
126101	//   },
126102	//   "scopes": [
126103	//     "https://www.googleapis.com/auth/cloud-platform",
126104	//     "https://www.googleapis.com/auth/compute",
126105	//     "https://www.googleapis.com/auth/compute.readonly"
126106	//   ]
126107	// }
126108
126109}
126110
126111// Pages invokes f for each page of results.
126112// A non-nil error returned from f will halt the iteration.
126113// The provided context supersedes any context provided to the Context method.
126114func (c *RegionHealthCheckServicesListCall) Pages(ctx context.Context, f func(*HealthCheckServicesList) error) error {
126115	c.ctx_ = ctx
126116	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
126117	for {
126118		x, err := c.Do()
126119		if err != nil {
126120			return err
126121		}
126122		if err := f(x); err != nil {
126123			return err
126124		}
126125		if x.NextPageToken == "" {
126126			return nil
126127		}
126128		c.PageToken(x.NextPageToken)
126129	}
126130}
126131
126132// method id "compute.regionHealthCheckServices.patch":
126133
126134type RegionHealthCheckServicesPatchCall struct {
126135	s                  *Service
126136	project            string
126137	region             string
126138	healthCheckService string
126139	healthcheckservice *HealthCheckService
126140	urlParams_         gensupport.URLParams
126141	ctx_               context.Context
126142	header_            http.Header
126143}
126144
126145// Patch: Updates the specified regional HealthCheckService resource
126146// with the data included in the request. This method supports PATCH
126147// semantics and uses the JSON merge patch format and processing rules.
126148func (r *RegionHealthCheckServicesService) Patch(project string, region string, healthCheckService string, healthcheckservice *HealthCheckService) *RegionHealthCheckServicesPatchCall {
126149	c := &RegionHealthCheckServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126150	c.project = project
126151	c.region = region
126152	c.healthCheckService = healthCheckService
126153	c.healthcheckservice = healthcheckservice
126154	return c
126155}
126156
126157// RequestId sets the optional parameter "requestId": An optional
126158// request ID to identify requests. Specify a unique request ID so that
126159// if you must retry your request, the server will know to ignore the
126160// request if it has already been completed.
126161//
126162// For example, consider a situation where you make an initial request
126163// and the request times out. If you make the request again with the
126164// same request ID, the server can check if original operation with the
126165// same request ID was received, and if so, will ignore the second
126166// request. This prevents clients from accidentally creating duplicate
126167// commitments.
126168//
126169// The request ID must be a valid UUID with the exception that zero UUID
126170// is not supported (00000000-0000-0000-0000-000000000000).
126171func (c *RegionHealthCheckServicesPatchCall) RequestId(requestId string) *RegionHealthCheckServicesPatchCall {
126172	c.urlParams_.Set("requestId", requestId)
126173	return c
126174}
126175
126176// Fields allows partial responses to be retrieved. See
126177// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126178// for more information.
126179func (c *RegionHealthCheckServicesPatchCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesPatchCall {
126180	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126181	return c
126182}
126183
126184// Context sets the context to be used in this call's Do method. Any
126185// pending HTTP request will be aborted if the provided context is
126186// canceled.
126187func (c *RegionHealthCheckServicesPatchCall) Context(ctx context.Context) *RegionHealthCheckServicesPatchCall {
126188	c.ctx_ = ctx
126189	return c
126190}
126191
126192// Header returns an http.Header that can be modified by the caller to
126193// add HTTP headers to the request.
126194func (c *RegionHealthCheckServicesPatchCall) Header() http.Header {
126195	if c.header_ == nil {
126196		c.header_ = make(http.Header)
126197	}
126198	return c.header_
126199}
126200
126201func (c *RegionHealthCheckServicesPatchCall) doRequest(alt string) (*http.Response, error) {
126202	reqHeaders := make(http.Header)
126203	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
126204	for k, v := range c.header_ {
126205		reqHeaders[k] = v
126206	}
126207	reqHeaders.Set("User-Agent", c.s.userAgent())
126208	var body io.Reader = nil
126209	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheckservice)
126210	if err != nil {
126211		return nil, err
126212	}
126213	reqHeaders.Set("Content-Type", "application/json")
126214	c.urlParams_.Set("alt", alt)
126215	c.urlParams_.Set("prettyPrint", "false")
126216	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices/{healthCheckService}")
126217	urls += "?" + c.urlParams_.Encode()
126218	req, err := http.NewRequest("PATCH", urls, body)
126219	if err != nil {
126220		return nil, err
126221	}
126222	req.Header = reqHeaders
126223	googleapi.Expand(req.URL, map[string]string{
126224		"project":            c.project,
126225		"region":             c.region,
126226		"healthCheckService": c.healthCheckService,
126227	})
126228	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126229}
126230
126231// Do executes the "compute.regionHealthCheckServices.patch" call.
126232// Exactly one of *Operation or error will be non-nil. Any non-2xx
126233// status code is an error. Response headers are in either
126234// *Operation.ServerResponse.Header or (if a response was returned at
126235// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
126236// to check whether the returned error was because
126237// http.StatusNotModified was returned.
126238func (c *RegionHealthCheckServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
126239	gensupport.SetOptions(c.urlParams_, opts...)
126240	res, err := c.doRequest("json")
126241	if res != nil && res.StatusCode == http.StatusNotModified {
126242		if res.Body != nil {
126243			res.Body.Close()
126244		}
126245		return nil, &googleapi.Error{
126246			Code:   res.StatusCode,
126247			Header: res.Header,
126248		}
126249	}
126250	if err != nil {
126251		return nil, err
126252	}
126253	defer googleapi.CloseBody(res)
126254	if err := googleapi.CheckResponse(res); err != nil {
126255		return nil, err
126256	}
126257	ret := &Operation{
126258		ServerResponse: googleapi.ServerResponse{
126259			Header:         res.Header,
126260			HTTPStatusCode: res.StatusCode,
126261		},
126262	}
126263	target := &ret
126264	if err := gensupport.DecodeResponse(target, res); err != nil {
126265		return nil, err
126266	}
126267	return ret, nil
126268	// {
126269	//   "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.",
126270	//   "httpMethod": "PATCH",
126271	//   "id": "compute.regionHealthCheckServices.patch",
126272	//   "parameterOrder": [
126273	//     "project",
126274	//     "region",
126275	//     "healthCheckService"
126276	//   ],
126277	//   "parameters": {
126278	//     "healthCheckService": {
126279	//       "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.",
126280	//       "location": "path",
126281	//       "required": true,
126282	//       "type": "string"
126283	//     },
126284	//     "project": {
126285	//       "description": "Project ID for this request.",
126286	//       "location": "path",
126287	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126288	//       "required": true,
126289	//       "type": "string"
126290	//     },
126291	//     "region": {
126292	//       "description": "Name of the region scoping this request.",
126293	//       "location": "path",
126294	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126295	//       "required": true,
126296	//       "type": "string"
126297	//     },
126298	//     "requestId": {
126299	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
126300	//       "location": "query",
126301	//       "type": "string"
126302	//     }
126303	//   },
126304	//   "path": "{project}/regions/{region}/healthCheckServices/{healthCheckService}",
126305	//   "request": {
126306	//     "$ref": "HealthCheckService"
126307	//   },
126308	//   "response": {
126309	//     "$ref": "Operation"
126310	//   },
126311	//   "scopes": [
126312	//     "https://www.googleapis.com/auth/cloud-platform",
126313	//     "https://www.googleapis.com/auth/compute"
126314	//   ]
126315	// }
126316
126317}
126318
126319// method id "compute.regionHealthCheckServices.testIamPermissions":
126320
126321type RegionHealthCheckServicesTestIamPermissionsCall struct {
126322	s                      *Service
126323	project                string
126324	region                 string
126325	resource               string
126326	testpermissionsrequest *TestPermissionsRequest
126327	urlParams_             gensupport.URLParams
126328	ctx_                   context.Context
126329	header_                http.Header
126330}
126331
126332// TestIamPermissions: Returns permissions that a caller has on the
126333// specified resource.
126334func (r *RegionHealthCheckServicesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionHealthCheckServicesTestIamPermissionsCall {
126335	c := &RegionHealthCheckServicesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126336	c.project = project
126337	c.region = region
126338	c.resource = resource
126339	c.testpermissionsrequest = testpermissionsrequest
126340	return c
126341}
126342
126343// Fields allows partial responses to be retrieved. See
126344// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126345// for more information.
126346func (c *RegionHealthCheckServicesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesTestIamPermissionsCall {
126347	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126348	return c
126349}
126350
126351// Context sets the context to be used in this call's Do method. Any
126352// pending HTTP request will be aborted if the provided context is
126353// canceled.
126354func (c *RegionHealthCheckServicesTestIamPermissionsCall) Context(ctx context.Context) *RegionHealthCheckServicesTestIamPermissionsCall {
126355	c.ctx_ = ctx
126356	return c
126357}
126358
126359// Header returns an http.Header that can be modified by the caller to
126360// add HTTP headers to the request.
126361func (c *RegionHealthCheckServicesTestIamPermissionsCall) Header() http.Header {
126362	if c.header_ == nil {
126363		c.header_ = make(http.Header)
126364	}
126365	return c.header_
126366}
126367
126368func (c *RegionHealthCheckServicesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
126369	reqHeaders := make(http.Header)
126370	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
126371	for k, v := range c.header_ {
126372		reqHeaders[k] = v
126373	}
126374	reqHeaders.Set("User-Agent", c.s.userAgent())
126375	var body io.Reader = nil
126376	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
126377	if err != nil {
126378		return nil, err
126379	}
126380	reqHeaders.Set("Content-Type", "application/json")
126381	c.urlParams_.Set("alt", alt)
126382	c.urlParams_.Set("prettyPrint", "false")
126383	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices/{resource}/testIamPermissions")
126384	urls += "?" + c.urlParams_.Encode()
126385	req, err := http.NewRequest("POST", urls, body)
126386	if err != nil {
126387		return nil, err
126388	}
126389	req.Header = reqHeaders
126390	googleapi.Expand(req.URL, map[string]string{
126391		"project":  c.project,
126392		"region":   c.region,
126393		"resource": c.resource,
126394	})
126395	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126396}
126397
126398// Do executes the "compute.regionHealthCheckServices.testIamPermissions" call.
126399// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
126400// non-2xx status code is an error. Response headers are in either
126401// *TestPermissionsResponse.ServerResponse.Header or (if a response was
126402// returned at all) in error.(*googleapi.Error).Header. Use
126403// googleapi.IsNotModified to check whether the returned error was
126404// because http.StatusNotModified was returned.
126405func (c *RegionHealthCheckServicesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
126406	gensupport.SetOptions(c.urlParams_, opts...)
126407	res, err := c.doRequest("json")
126408	if res != nil && res.StatusCode == http.StatusNotModified {
126409		if res.Body != nil {
126410			res.Body.Close()
126411		}
126412		return nil, &googleapi.Error{
126413			Code:   res.StatusCode,
126414			Header: res.Header,
126415		}
126416	}
126417	if err != nil {
126418		return nil, err
126419	}
126420	defer googleapi.CloseBody(res)
126421	if err := googleapi.CheckResponse(res); err != nil {
126422		return nil, err
126423	}
126424	ret := &TestPermissionsResponse{
126425		ServerResponse: googleapi.ServerResponse{
126426			Header:         res.Header,
126427			HTTPStatusCode: res.StatusCode,
126428		},
126429	}
126430	target := &ret
126431	if err := gensupport.DecodeResponse(target, res); err != nil {
126432		return nil, err
126433	}
126434	return ret, nil
126435	// {
126436	//   "description": "Returns permissions that a caller has on the specified resource.",
126437	//   "httpMethod": "POST",
126438	//   "id": "compute.regionHealthCheckServices.testIamPermissions",
126439	//   "parameterOrder": [
126440	//     "project",
126441	//     "region",
126442	//     "resource"
126443	//   ],
126444	//   "parameters": {
126445	//     "project": {
126446	//       "description": "Project ID for this request.",
126447	//       "location": "path",
126448	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126449	//       "required": true,
126450	//       "type": "string"
126451	//     },
126452	//     "region": {
126453	//       "description": "The name of the region for this request.",
126454	//       "location": "path",
126455	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126456	//       "required": true,
126457	//       "type": "string"
126458	//     },
126459	//     "resource": {
126460	//       "description": "Name or id of the resource for this request.",
126461	//       "location": "path",
126462	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
126463	//       "required": true,
126464	//       "type": "string"
126465	//     }
126466	//   },
126467	//   "path": "{project}/regions/{region}/healthCheckServices/{resource}/testIamPermissions",
126468	//   "request": {
126469	//     "$ref": "TestPermissionsRequest"
126470	//   },
126471	//   "response": {
126472	//     "$ref": "TestPermissionsResponse"
126473	//   },
126474	//   "scopes": [
126475	//     "https://www.googleapis.com/auth/cloud-platform",
126476	//     "https://www.googleapis.com/auth/compute",
126477	//     "https://www.googleapis.com/auth/compute.readonly"
126478	//   ]
126479	// }
126480
126481}
126482
126483// method id "compute.regionHealthChecks.delete":
126484
126485type RegionHealthChecksDeleteCall struct {
126486	s           *Service
126487	project     string
126488	region      string
126489	healthCheck string
126490	urlParams_  gensupport.URLParams
126491	ctx_        context.Context
126492	header_     http.Header
126493}
126494
126495// Delete: Deletes the specified HealthCheck resource.
126496func (r *RegionHealthChecksService) Delete(project string, region string, healthCheck string) *RegionHealthChecksDeleteCall {
126497	c := &RegionHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126498	c.project = project
126499	c.region = region
126500	c.healthCheck = healthCheck
126501	return c
126502}
126503
126504// RequestId sets the optional parameter "requestId": An optional
126505// request ID to identify requests. Specify a unique request ID so that
126506// if you must retry your request, the server will know to ignore the
126507// request if it has already been completed.
126508//
126509// For example, consider a situation where you make an initial request
126510// and the request times out. If you make the request again with the
126511// same request ID, the server can check if original operation with the
126512// same request ID was received, and if so, will ignore the second
126513// request. This prevents clients from accidentally creating duplicate
126514// commitments.
126515//
126516// The request ID must be a valid UUID with the exception that zero UUID
126517// is not supported (00000000-0000-0000-0000-000000000000).
126518func (c *RegionHealthChecksDeleteCall) RequestId(requestId string) *RegionHealthChecksDeleteCall {
126519	c.urlParams_.Set("requestId", requestId)
126520	return c
126521}
126522
126523// Fields allows partial responses to be retrieved. See
126524// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126525// for more information.
126526func (c *RegionHealthChecksDeleteCall) Fields(s ...googleapi.Field) *RegionHealthChecksDeleteCall {
126527	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126528	return c
126529}
126530
126531// Context sets the context to be used in this call's Do method. Any
126532// pending HTTP request will be aborted if the provided context is
126533// canceled.
126534func (c *RegionHealthChecksDeleteCall) Context(ctx context.Context) *RegionHealthChecksDeleteCall {
126535	c.ctx_ = ctx
126536	return c
126537}
126538
126539// Header returns an http.Header that can be modified by the caller to
126540// add HTTP headers to the request.
126541func (c *RegionHealthChecksDeleteCall) Header() http.Header {
126542	if c.header_ == nil {
126543		c.header_ = make(http.Header)
126544	}
126545	return c.header_
126546}
126547
126548func (c *RegionHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
126549	reqHeaders := make(http.Header)
126550	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
126551	for k, v := range c.header_ {
126552		reqHeaders[k] = v
126553	}
126554	reqHeaders.Set("User-Agent", c.s.userAgent())
126555	var body io.Reader = nil
126556	c.urlParams_.Set("alt", alt)
126557	c.urlParams_.Set("prettyPrint", "false")
126558	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks/{healthCheck}")
126559	urls += "?" + c.urlParams_.Encode()
126560	req, err := http.NewRequest("DELETE", urls, body)
126561	if err != nil {
126562		return nil, err
126563	}
126564	req.Header = reqHeaders
126565	googleapi.Expand(req.URL, map[string]string{
126566		"project":     c.project,
126567		"region":      c.region,
126568		"healthCheck": c.healthCheck,
126569	})
126570	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126571}
126572
126573// Do executes the "compute.regionHealthChecks.delete" call.
126574// Exactly one of *Operation or error will be non-nil. Any non-2xx
126575// status code is an error. Response headers are in either
126576// *Operation.ServerResponse.Header or (if a response was returned at
126577// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
126578// to check whether the returned error was because
126579// http.StatusNotModified was returned.
126580func (c *RegionHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
126581	gensupport.SetOptions(c.urlParams_, opts...)
126582	res, err := c.doRequest("json")
126583	if res != nil && res.StatusCode == http.StatusNotModified {
126584		if res.Body != nil {
126585			res.Body.Close()
126586		}
126587		return nil, &googleapi.Error{
126588			Code:   res.StatusCode,
126589			Header: res.Header,
126590		}
126591	}
126592	if err != nil {
126593		return nil, err
126594	}
126595	defer googleapi.CloseBody(res)
126596	if err := googleapi.CheckResponse(res); err != nil {
126597		return nil, err
126598	}
126599	ret := &Operation{
126600		ServerResponse: googleapi.ServerResponse{
126601			Header:         res.Header,
126602			HTTPStatusCode: res.StatusCode,
126603		},
126604	}
126605	target := &ret
126606	if err := gensupport.DecodeResponse(target, res); err != nil {
126607		return nil, err
126608	}
126609	return ret, nil
126610	// {
126611	//   "description": "Deletes the specified HealthCheck resource.",
126612	//   "httpMethod": "DELETE",
126613	//   "id": "compute.regionHealthChecks.delete",
126614	//   "parameterOrder": [
126615	//     "project",
126616	//     "region",
126617	//     "healthCheck"
126618	//   ],
126619	//   "parameters": {
126620	//     "healthCheck": {
126621	//       "description": "Name of the HealthCheck resource to delete.",
126622	//       "location": "path",
126623	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
126624	//       "required": true,
126625	//       "type": "string"
126626	//     },
126627	//     "project": {
126628	//       "description": "Project ID for this request.",
126629	//       "location": "path",
126630	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126631	//       "required": true,
126632	//       "type": "string"
126633	//     },
126634	//     "region": {
126635	//       "description": "Name of the region scoping this request.",
126636	//       "location": "path",
126637	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126638	//       "required": true,
126639	//       "type": "string"
126640	//     },
126641	//     "requestId": {
126642	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
126643	//       "location": "query",
126644	//       "type": "string"
126645	//     }
126646	//   },
126647	//   "path": "{project}/regions/{region}/healthChecks/{healthCheck}",
126648	//   "response": {
126649	//     "$ref": "Operation"
126650	//   },
126651	//   "scopes": [
126652	//     "https://www.googleapis.com/auth/cloud-platform",
126653	//     "https://www.googleapis.com/auth/compute"
126654	//   ]
126655	// }
126656
126657}
126658
126659// method id "compute.regionHealthChecks.get":
126660
126661type RegionHealthChecksGetCall struct {
126662	s            *Service
126663	project      string
126664	region       string
126665	healthCheck  string
126666	urlParams_   gensupport.URLParams
126667	ifNoneMatch_ string
126668	ctx_         context.Context
126669	header_      http.Header
126670}
126671
126672// Get: Returns the specified HealthCheck resource. Gets a list of
126673// available health checks by making a list() request.
126674func (r *RegionHealthChecksService) Get(project string, region string, healthCheck string) *RegionHealthChecksGetCall {
126675	c := &RegionHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126676	c.project = project
126677	c.region = region
126678	c.healthCheck = healthCheck
126679	return c
126680}
126681
126682// Fields allows partial responses to be retrieved. See
126683// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126684// for more information.
126685func (c *RegionHealthChecksGetCall) Fields(s ...googleapi.Field) *RegionHealthChecksGetCall {
126686	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126687	return c
126688}
126689
126690// IfNoneMatch sets the optional parameter which makes the operation
126691// fail if the object's ETag matches the given value. This is useful for
126692// getting updates only after the object has changed since the last
126693// request. Use googleapi.IsNotModified to check whether the response
126694// error from Do is the result of In-None-Match.
126695func (c *RegionHealthChecksGetCall) IfNoneMatch(entityTag string) *RegionHealthChecksGetCall {
126696	c.ifNoneMatch_ = entityTag
126697	return c
126698}
126699
126700// Context sets the context to be used in this call's Do method. Any
126701// pending HTTP request will be aborted if the provided context is
126702// canceled.
126703func (c *RegionHealthChecksGetCall) Context(ctx context.Context) *RegionHealthChecksGetCall {
126704	c.ctx_ = ctx
126705	return c
126706}
126707
126708// Header returns an http.Header that can be modified by the caller to
126709// add HTTP headers to the request.
126710func (c *RegionHealthChecksGetCall) Header() http.Header {
126711	if c.header_ == nil {
126712		c.header_ = make(http.Header)
126713	}
126714	return c.header_
126715}
126716
126717func (c *RegionHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
126718	reqHeaders := make(http.Header)
126719	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
126720	for k, v := range c.header_ {
126721		reqHeaders[k] = v
126722	}
126723	reqHeaders.Set("User-Agent", c.s.userAgent())
126724	if c.ifNoneMatch_ != "" {
126725		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
126726	}
126727	var body io.Reader = nil
126728	c.urlParams_.Set("alt", alt)
126729	c.urlParams_.Set("prettyPrint", "false")
126730	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks/{healthCheck}")
126731	urls += "?" + c.urlParams_.Encode()
126732	req, err := http.NewRequest("GET", urls, body)
126733	if err != nil {
126734		return nil, err
126735	}
126736	req.Header = reqHeaders
126737	googleapi.Expand(req.URL, map[string]string{
126738		"project":     c.project,
126739		"region":      c.region,
126740		"healthCheck": c.healthCheck,
126741	})
126742	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126743}
126744
126745// Do executes the "compute.regionHealthChecks.get" call.
126746// Exactly one of *HealthCheck or error will be non-nil. Any non-2xx
126747// status code is an error. Response headers are in either
126748// *HealthCheck.ServerResponse.Header or (if a response was returned at
126749// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
126750// to check whether the returned error was because
126751// http.StatusNotModified was returned.
126752func (c *RegionHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, error) {
126753	gensupport.SetOptions(c.urlParams_, opts...)
126754	res, err := c.doRequest("json")
126755	if res != nil && res.StatusCode == http.StatusNotModified {
126756		if res.Body != nil {
126757			res.Body.Close()
126758		}
126759		return nil, &googleapi.Error{
126760			Code:   res.StatusCode,
126761			Header: res.Header,
126762		}
126763	}
126764	if err != nil {
126765		return nil, err
126766	}
126767	defer googleapi.CloseBody(res)
126768	if err := googleapi.CheckResponse(res); err != nil {
126769		return nil, err
126770	}
126771	ret := &HealthCheck{
126772		ServerResponse: googleapi.ServerResponse{
126773			Header:         res.Header,
126774			HTTPStatusCode: res.StatusCode,
126775		},
126776	}
126777	target := &ret
126778	if err := gensupport.DecodeResponse(target, res); err != nil {
126779		return nil, err
126780	}
126781	return ret, nil
126782	// {
126783	//   "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.",
126784	//   "httpMethod": "GET",
126785	//   "id": "compute.regionHealthChecks.get",
126786	//   "parameterOrder": [
126787	//     "project",
126788	//     "region",
126789	//     "healthCheck"
126790	//   ],
126791	//   "parameters": {
126792	//     "healthCheck": {
126793	//       "description": "Name of the HealthCheck resource to return.",
126794	//       "location": "path",
126795	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
126796	//       "required": true,
126797	//       "type": "string"
126798	//     },
126799	//     "project": {
126800	//       "description": "Project ID for this request.",
126801	//       "location": "path",
126802	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126803	//       "required": true,
126804	//       "type": "string"
126805	//     },
126806	//     "region": {
126807	//       "description": "Name of the region scoping this request.",
126808	//       "location": "path",
126809	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126810	//       "required": true,
126811	//       "type": "string"
126812	//     }
126813	//   },
126814	//   "path": "{project}/regions/{region}/healthChecks/{healthCheck}",
126815	//   "response": {
126816	//     "$ref": "HealthCheck"
126817	//   },
126818	//   "scopes": [
126819	//     "https://www.googleapis.com/auth/cloud-platform",
126820	//     "https://www.googleapis.com/auth/compute",
126821	//     "https://www.googleapis.com/auth/compute.readonly"
126822	//   ]
126823	// }
126824
126825}
126826
126827// method id "compute.regionHealthChecks.insert":
126828
126829type RegionHealthChecksInsertCall struct {
126830	s           *Service
126831	project     string
126832	region      string
126833	healthcheck *HealthCheck
126834	urlParams_  gensupport.URLParams
126835	ctx_        context.Context
126836	header_     http.Header
126837}
126838
126839// Insert: Creates a HealthCheck resource in the specified project using
126840// the data included in the request.
126841func (r *RegionHealthChecksService) Insert(project string, region string, healthcheck *HealthCheck) *RegionHealthChecksInsertCall {
126842	c := &RegionHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126843	c.project = project
126844	c.region = region
126845	c.healthcheck = healthcheck
126846	return c
126847}
126848
126849// RequestId sets the optional parameter "requestId": An optional
126850// request ID to identify requests. Specify a unique request ID so that
126851// if you must retry your request, the server will know to ignore the
126852// request if it has already been completed.
126853//
126854// For example, consider a situation where you make an initial request
126855// and the request times out. If you make the request again with the
126856// same request ID, the server can check if original operation with the
126857// same request ID was received, and if so, will ignore the second
126858// request. This prevents clients from accidentally creating duplicate
126859// commitments.
126860//
126861// The request ID must be a valid UUID with the exception that zero UUID
126862// is not supported (00000000-0000-0000-0000-000000000000).
126863func (c *RegionHealthChecksInsertCall) RequestId(requestId string) *RegionHealthChecksInsertCall {
126864	c.urlParams_.Set("requestId", requestId)
126865	return c
126866}
126867
126868// Fields allows partial responses to be retrieved. See
126869// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126870// for more information.
126871func (c *RegionHealthChecksInsertCall) Fields(s ...googleapi.Field) *RegionHealthChecksInsertCall {
126872	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126873	return c
126874}
126875
126876// Context sets the context to be used in this call's Do method. Any
126877// pending HTTP request will be aborted if the provided context is
126878// canceled.
126879func (c *RegionHealthChecksInsertCall) Context(ctx context.Context) *RegionHealthChecksInsertCall {
126880	c.ctx_ = ctx
126881	return c
126882}
126883
126884// Header returns an http.Header that can be modified by the caller to
126885// add HTTP headers to the request.
126886func (c *RegionHealthChecksInsertCall) Header() http.Header {
126887	if c.header_ == nil {
126888		c.header_ = make(http.Header)
126889	}
126890	return c.header_
126891}
126892
126893func (c *RegionHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
126894	reqHeaders := make(http.Header)
126895	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
126896	for k, v := range c.header_ {
126897		reqHeaders[k] = v
126898	}
126899	reqHeaders.Set("User-Agent", c.s.userAgent())
126900	var body io.Reader = nil
126901	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
126902	if err != nil {
126903		return nil, err
126904	}
126905	reqHeaders.Set("Content-Type", "application/json")
126906	c.urlParams_.Set("alt", alt)
126907	c.urlParams_.Set("prettyPrint", "false")
126908	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks")
126909	urls += "?" + c.urlParams_.Encode()
126910	req, err := http.NewRequest("POST", urls, body)
126911	if err != nil {
126912		return nil, err
126913	}
126914	req.Header = reqHeaders
126915	googleapi.Expand(req.URL, map[string]string{
126916		"project": c.project,
126917		"region":  c.region,
126918	})
126919	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126920}
126921
126922// Do executes the "compute.regionHealthChecks.insert" call.
126923// Exactly one of *Operation or error will be non-nil. Any non-2xx
126924// status code is an error. Response headers are in either
126925// *Operation.ServerResponse.Header or (if a response was returned at
126926// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
126927// to check whether the returned error was because
126928// http.StatusNotModified was returned.
126929func (c *RegionHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
126930	gensupport.SetOptions(c.urlParams_, opts...)
126931	res, err := c.doRequest("json")
126932	if res != nil && res.StatusCode == http.StatusNotModified {
126933		if res.Body != nil {
126934			res.Body.Close()
126935		}
126936		return nil, &googleapi.Error{
126937			Code:   res.StatusCode,
126938			Header: res.Header,
126939		}
126940	}
126941	if err != nil {
126942		return nil, err
126943	}
126944	defer googleapi.CloseBody(res)
126945	if err := googleapi.CheckResponse(res); err != nil {
126946		return nil, err
126947	}
126948	ret := &Operation{
126949		ServerResponse: googleapi.ServerResponse{
126950			Header:         res.Header,
126951			HTTPStatusCode: res.StatusCode,
126952		},
126953	}
126954	target := &ret
126955	if err := gensupport.DecodeResponse(target, res); err != nil {
126956		return nil, err
126957	}
126958	return ret, nil
126959	// {
126960	//   "description": "Creates a HealthCheck resource in the specified project using the data included in the request.",
126961	//   "httpMethod": "POST",
126962	//   "id": "compute.regionHealthChecks.insert",
126963	//   "parameterOrder": [
126964	//     "project",
126965	//     "region"
126966	//   ],
126967	//   "parameters": {
126968	//     "project": {
126969	//       "description": "Project ID for this request.",
126970	//       "location": "path",
126971	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126972	//       "required": true,
126973	//       "type": "string"
126974	//     },
126975	//     "region": {
126976	//       "description": "Name of the region scoping this request.",
126977	//       "location": "path",
126978	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126979	//       "required": true,
126980	//       "type": "string"
126981	//     },
126982	//     "requestId": {
126983	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
126984	//       "location": "query",
126985	//       "type": "string"
126986	//     }
126987	//   },
126988	//   "path": "{project}/regions/{region}/healthChecks",
126989	//   "request": {
126990	//     "$ref": "HealthCheck"
126991	//   },
126992	//   "response": {
126993	//     "$ref": "Operation"
126994	//   },
126995	//   "scopes": [
126996	//     "https://www.googleapis.com/auth/cloud-platform",
126997	//     "https://www.googleapis.com/auth/compute"
126998	//   ]
126999	// }
127000
127001}
127002
127003// method id "compute.regionHealthChecks.list":
127004
127005type RegionHealthChecksListCall struct {
127006	s            *Service
127007	project      string
127008	region       string
127009	urlParams_   gensupport.URLParams
127010	ifNoneMatch_ string
127011	ctx_         context.Context
127012	header_      http.Header
127013}
127014
127015// List: Retrieves the list of HealthCheck resources available to the
127016// specified project.
127017func (r *RegionHealthChecksService) List(project string, region string) *RegionHealthChecksListCall {
127018	c := &RegionHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127019	c.project = project
127020	c.region = region
127021	return c
127022}
127023
127024// Filter sets the optional parameter "filter": A filter expression that
127025// filters resources listed in the response. The expression must specify
127026// the field name, a comparison operator, and the value that you want to
127027// use for filtering. The value must be a string, a number, or a
127028// boolean. The comparison operator must be either =, !=, >, or <.
127029//
127030// For example, if you are filtering Compute Engine instances, you can
127031// exclude instances named example-instance by specifying name !=
127032// example-instance.
127033//
127034// You can also filter nested fields. For example, you could specify
127035// scheduling.automaticRestart = false to include instances only if they
127036// are not scheduled for automatic restarts. You can use filtering on
127037// nested fields to filter based on resource labels.
127038//
127039// To filter on multiple expressions, provide each separate expression
127040// within parentheses. For example, (scheduling.automaticRestart = true)
127041// (cpuPlatform = "Intel Skylake"). By default, each expression is an
127042// AND expression. However, you can include AND and OR expressions
127043// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
127044// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
127045// true).
127046func (c *RegionHealthChecksListCall) Filter(filter string) *RegionHealthChecksListCall {
127047	c.urlParams_.Set("filter", filter)
127048	return c
127049}
127050
127051// MaxResults sets the optional parameter "maxResults": The maximum
127052// number of results per page that should be returned. If the number of
127053// available results is larger than maxResults, Compute Engine returns a
127054// nextPageToken that can be used to get the next page of results in
127055// subsequent list requests. Acceptable values are 0 to 500, inclusive.
127056// (Default: 500)
127057func (c *RegionHealthChecksListCall) MaxResults(maxResults int64) *RegionHealthChecksListCall {
127058	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
127059	return c
127060}
127061
127062// OrderBy sets the optional parameter "orderBy": Sorts list results by
127063// a certain order. By default, results are returned in alphanumerical
127064// order based on the resource name.
127065//
127066// You can also sort results in descending order based on the creation
127067// timestamp using orderBy="creationTimestamp desc". This sorts results
127068// based on the creationTimestamp field in reverse chronological order
127069// (newest result first). Use this to sort resources like operations so
127070// that the newest operation is returned first.
127071//
127072// Currently, only sorting by name or creationTimestamp desc is
127073// supported.
127074func (c *RegionHealthChecksListCall) OrderBy(orderBy string) *RegionHealthChecksListCall {
127075	c.urlParams_.Set("orderBy", orderBy)
127076	return c
127077}
127078
127079// PageToken sets the optional parameter "pageToken": Specifies a page
127080// token to use. Set pageToken to the nextPageToken returned by a
127081// previous list request to get the next page of results.
127082func (c *RegionHealthChecksListCall) PageToken(pageToken string) *RegionHealthChecksListCall {
127083	c.urlParams_.Set("pageToken", pageToken)
127084	return c
127085}
127086
127087// Fields allows partial responses to be retrieved. See
127088// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127089// for more information.
127090func (c *RegionHealthChecksListCall) Fields(s ...googleapi.Field) *RegionHealthChecksListCall {
127091	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127092	return c
127093}
127094
127095// IfNoneMatch sets the optional parameter which makes the operation
127096// fail if the object's ETag matches the given value. This is useful for
127097// getting updates only after the object has changed since the last
127098// request. Use googleapi.IsNotModified to check whether the response
127099// error from Do is the result of In-None-Match.
127100func (c *RegionHealthChecksListCall) IfNoneMatch(entityTag string) *RegionHealthChecksListCall {
127101	c.ifNoneMatch_ = entityTag
127102	return c
127103}
127104
127105// Context sets the context to be used in this call's Do method. Any
127106// pending HTTP request will be aborted if the provided context is
127107// canceled.
127108func (c *RegionHealthChecksListCall) Context(ctx context.Context) *RegionHealthChecksListCall {
127109	c.ctx_ = ctx
127110	return c
127111}
127112
127113// Header returns an http.Header that can be modified by the caller to
127114// add HTTP headers to the request.
127115func (c *RegionHealthChecksListCall) Header() http.Header {
127116	if c.header_ == nil {
127117		c.header_ = make(http.Header)
127118	}
127119	return c.header_
127120}
127121
127122func (c *RegionHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
127123	reqHeaders := make(http.Header)
127124	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
127125	for k, v := range c.header_ {
127126		reqHeaders[k] = v
127127	}
127128	reqHeaders.Set("User-Agent", c.s.userAgent())
127129	if c.ifNoneMatch_ != "" {
127130		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
127131	}
127132	var body io.Reader = nil
127133	c.urlParams_.Set("alt", alt)
127134	c.urlParams_.Set("prettyPrint", "false")
127135	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks")
127136	urls += "?" + c.urlParams_.Encode()
127137	req, err := http.NewRequest("GET", urls, body)
127138	if err != nil {
127139		return nil, err
127140	}
127141	req.Header = reqHeaders
127142	googleapi.Expand(req.URL, map[string]string{
127143		"project": c.project,
127144		"region":  c.region,
127145	})
127146	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127147}
127148
127149// Do executes the "compute.regionHealthChecks.list" call.
127150// Exactly one of *HealthCheckList or error will be non-nil. Any non-2xx
127151// status code is an error. Response headers are in either
127152// *HealthCheckList.ServerResponse.Header or (if a response was returned
127153// at all) in error.(*googleapi.Error).Header. Use
127154// googleapi.IsNotModified to check whether the returned error was
127155// because http.StatusNotModified was returned.
127156func (c *RegionHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) {
127157	gensupport.SetOptions(c.urlParams_, opts...)
127158	res, err := c.doRequest("json")
127159	if res != nil && res.StatusCode == http.StatusNotModified {
127160		if res.Body != nil {
127161			res.Body.Close()
127162		}
127163		return nil, &googleapi.Error{
127164			Code:   res.StatusCode,
127165			Header: res.Header,
127166		}
127167	}
127168	if err != nil {
127169		return nil, err
127170	}
127171	defer googleapi.CloseBody(res)
127172	if err := googleapi.CheckResponse(res); err != nil {
127173		return nil, err
127174	}
127175	ret := &HealthCheckList{
127176		ServerResponse: googleapi.ServerResponse{
127177			Header:         res.Header,
127178			HTTPStatusCode: res.StatusCode,
127179		},
127180	}
127181	target := &ret
127182	if err := gensupport.DecodeResponse(target, res); err != nil {
127183		return nil, err
127184	}
127185	return ret, nil
127186	// {
127187	//   "description": "Retrieves the list of HealthCheck resources available to the specified project.",
127188	//   "httpMethod": "GET",
127189	//   "id": "compute.regionHealthChecks.list",
127190	//   "parameterOrder": [
127191	//     "project",
127192	//     "region"
127193	//   ],
127194	//   "parameters": {
127195	//     "filter": {
127196	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
127197	//       "location": "query",
127198	//       "type": "string"
127199	//     },
127200	//     "maxResults": {
127201	//       "default": "500",
127202	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
127203	//       "format": "uint32",
127204	//       "location": "query",
127205	//       "minimum": "0",
127206	//       "type": "integer"
127207	//     },
127208	//     "orderBy": {
127209	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
127210	//       "location": "query",
127211	//       "type": "string"
127212	//     },
127213	//     "pageToken": {
127214	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
127215	//       "location": "query",
127216	//       "type": "string"
127217	//     },
127218	//     "project": {
127219	//       "description": "Project ID for this request.",
127220	//       "location": "path",
127221	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127222	//       "required": true,
127223	//       "type": "string"
127224	//     },
127225	//     "region": {
127226	//       "description": "Name of the region scoping this request.",
127227	//       "location": "path",
127228	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127229	//       "required": true,
127230	//       "type": "string"
127231	//     }
127232	//   },
127233	//   "path": "{project}/regions/{region}/healthChecks",
127234	//   "response": {
127235	//     "$ref": "HealthCheckList"
127236	//   },
127237	//   "scopes": [
127238	//     "https://www.googleapis.com/auth/cloud-platform",
127239	//     "https://www.googleapis.com/auth/compute",
127240	//     "https://www.googleapis.com/auth/compute.readonly"
127241	//   ]
127242	// }
127243
127244}
127245
127246// Pages invokes f for each page of results.
127247// A non-nil error returned from f will halt the iteration.
127248// The provided context supersedes any context provided to the Context method.
127249func (c *RegionHealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error {
127250	c.ctx_ = ctx
127251	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
127252	for {
127253		x, err := c.Do()
127254		if err != nil {
127255			return err
127256		}
127257		if err := f(x); err != nil {
127258			return err
127259		}
127260		if x.NextPageToken == "" {
127261			return nil
127262		}
127263		c.PageToken(x.NextPageToken)
127264	}
127265}
127266
127267// method id "compute.regionHealthChecks.patch":
127268
127269type RegionHealthChecksPatchCall struct {
127270	s           *Service
127271	project     string
127272	region      string
127273	healthCheck string
127274	healthcheck *HealthCheck
127275	urlParams_  gensupport.URLParams
127276	ctx_        context.Context
127277	header_     http.Header
127278}
127279
127280// Patch: Updates a HealthCheck resource in the specified project using
127281// the data included in the request. This method supports PATCH
127282// semantics and uses the JSON merge patch format and processing rules.
127283func (r *RegionHealthChecksService) Patch(project string, region string, healthCheck string, healthcheck *HealthCheck) *RegionHealthChecksPatchCall {
127284	c := &RegionHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127285	c.project = project
127286	c.region = region
127287	c.healthCheck = healthCheck
127288	c.healthcheck = healthcheck
127289	return c
127290}
127291
127292// RequestId sets the optional parameter "requestId": An optional
127293// request ID to identify requests. Specify a unique request ID so that
127294// if you must retry your request, the server will know to ignore the
127295// request if it has already been completed.
127296//
127297// For example, consider a situation where you make an initial request
127298// and the request times out. If you make the request again with the
127299// same request ID, the server can check if original operation with the
127300// same request ID was received, and if so, will ignore the second
127301// request. This prevents clients from accidentally creating duplicate
127302// commitments.
127303//
127304// The request ID must be a valid UUID with the exception that zero UUID
127305// is not supported (00000000-0000-0000-0000-000000000000).
127306func (c *RegionHealthChecksPatchCall) RequestId(requestId string) *RegionHealthChecksPatchCall {
127307	c.urlParams_.Set("requestId", requestId)
127308	return c
127309}
127310
127311// Fields allows partial responses to be retrieved. See
127312// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127313// for more information.
127314func (c *RegionHealthChecksPatchCall) Fields(s ...googleapi.Field) *RegionHealthChecksPatchCall {
127315	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127316	return c
127317}
127318
127319// Context sets the context to be used in this call's Do method. Any
127320// pending HTTP request will be aborted if the provided context is
127321// canceled.
127322func (c *RegionHealthChecksPatchCall) Context(ctx context.Context) *RegionHealthChecksPatchCall {
127323	c.ctx_ = ctx
127324	return c
127325}
127326
127327// Header returns an http.Header that can be modified by the caller to
127328// add HTTP headers to the request.
127329func (c *RegionHealthChecksPatchCall) Header() http.Header {
127330	if c.header_ == nil {
127331		c.header_ = make(http.Header)
127332	}
127333	return c.header_
127334}
127335
127336func (c *RegionHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
127337	reqHeaders := make(http.Header)
127338	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
127339	for k, v := range c.header_ {
127340		reqHeaders[k] = v
127341	}
127342	reqHeaders.Set("User-Agent", c.s.userAgent())
127343	var body io.Reader = nil
127344	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
127345	if err != nil {
127346		return nil, err
127347	}
127348	reqHeaders.Set("Content-Type", "application/json")
127349	c.urlParams_.Set("alt", alt)
127350	c.urlParams_.Set("prettyPrint", "false")
127351	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks/{healthCheck}")
127352	urls += "?" + c.urlParams_.Encode()
127353	req, err := http.NewRequest("PATCH", urls, body)
127354	if err != nil {
127355		return nil, err
127356	}
127357	req.Header = reqHeaders
127358	googleapi.Expand(req.URL, map[string]string{
127359		"project":     c.project,
127360		"region":      c.region,
127361		"healthCheck": c.healthCheck,
127362	})
127363	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127364}
127365
127366// Do executes the "compute.regionHealthChecks.patch" call.
127367// Exactly one of *Operation or error will be non-nil. Any non-2xx
127368// status code is an error. Response headers are in either
127369// *Operation.ServerResponse.Header or (if a response was returned at
127370// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127371// to check whether the returned error was because
127372// http.StatusNotModified was returned.
127373func (c *RegionHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127374	gensupport.SetOptions(c.urlParams_, opts...)
127375	res, err := c.doRequest("json")
127376	if res != nil && res.StatusCode == http.StatusNotModified {
127377		if res.Body != nil {
127378			res.Body.Close()
127379		}
127380		return nil, &googleapi.Error{
127381			Code:   res.StatusCode,
127382			Header: res.Header,
127383		}
127384	}
127385	if err != nil {
127386		return nil, err
127387	}
127388	defer googleapi.CloseBody(res)
127389	if err := googleapi.CheckResponse(res); err != nil {
127390		return nil, err
127391	}
127392	ret := &Operation{
127393		ServerResponse: googleapi.ServerResponse{
127394			Header:         res.Header,
127395			HTTPStatusCode: res.StatusCode,
127396		},
127397	}
127398	target := &ret
127399	if err := gensupport.DecodeResponse(target, res); err != nil {
127400		return nil, err
127401	}
127402	return ret, nil
127403	// {
127404	//   "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.",
127405	//   "httpMethod": "PATCH",
127406	//   "id": "compute.regionHealthChecks.patch",
127407	//   "parameterOrder": [
127408	//     "project",
127409	//     "region",
127410	//     "healthCheck"
127411	//   ],
127412	//   "parameters": {
127413	//     "healthCheck": {
127414	//       "description": "Name of the HealthCheck resource to patch.",
127415	//       "location": "path",
127416	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
127417	//       "required": true,
127418	//       "type": "string"
127419	//     },
127420	//     "project": {
127421	//       "description": "Project ID for this request.",
127422	//       "location": "path",
127423	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127424	//       "required": true,
127425	//       "type": "string"
127426	//     },
127427	//     "region": {
127428	//       "description": "Name of the region scoping this request.",
127429	//       "location": "path",
127430	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127431	//       "required": true,
127432	//       "type": "string"
127433	//     },
127434	//     "requestId": {
127435	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
127436	//       "location": "query",
127437	//       "type": "string"
127438	//     }
127439	//   },
127440	//   "path": "{project}/regions/{region}/healthChecks/{healthCheck}",
127441	//   "request": {
127442	//     "$ref": "HealthCheck"
127443	//   },
127444	//   "response": {
127445	//     "$ref": "Operation"
127446	//   },
127447	//   "scopes": [
127448	//     "https://www.googleapis.com/auth/cloud-platform",
127449	//     "https://www.googleapis.com/auth/compute"
127450	//   ]
127451	// }
127452
127453}
127454
127455// method id "compute.regionHealthChecks.testIamPermissions":
127456
127457type RegionHealthChecksTestIamPermissionsCall struct {
127458	s                      *Service
127459	project                string
127460	region                 string
127461	resource               string
127462	testpermissionsrequest *TestPermissionsRequest
127463	urlParams_             gensupport.URLParams
127464	ctx_                   context.Context
127465	header_                http.Header
127466}
127467
127468// TestIamPermissions: Returns permissions that a caller has on the
127469// specified resource.
127470func (r *RegionHealthChecksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionHealthChecksTestIamPermissionsCall {
127471	c := &RegionHealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127472	c.project = project
127473	c.region = region
127474	c.resource = resource
127475	c.testpermissionsrequest = testpermissionsrequest
127476	return c
127477}
127478
127479// Fields allows partial responses to be retrieved. See
127480// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127481// for more information.
127482func (c *RegionHealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionHealthChecksTestIamPermissionsCall {
127483	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127484	return c
127485}
127486
127487// Context sets the context to be used in this call's Do method. Any
127488// pending HTTP request will be aborted if the provided context is
127489// canceled.
127490func (c *RegionHealthChecksTestIamPermissionsCall) Context(ctx context.Context) *RegionHealthChecksTestIamPermissionsCall {
127491	c.ctx_ = ctx
127492	return c
127493}
127494
127495// Header returns an http.Header that can be modified by the caller to
127496// add HTTP headers to the request.
127497func (c *RegionHealthChecksTestIamPermissionsCall) Header() http.Header {
127498	if c.header_ == nil {
127499		c.header_ = make(http.Header)
127500	}
127501	return c.header_
127502}
127503
127504func (c *RegionHealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
127505	reqHeaders := make(http.Header)
127506	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
127507	for k, v := range c.header_ {
127508		reqHeaders[k] = v
127509	}
127510	reqHeaders.Set("User-Agent", c.s.userAgent())
127511	var body io.Reader = nil
127512	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
127513	if err != nil {
127514		return nil, err
127515	}
127516	reqHeaders.Set("Content-Type", "application/json")
127517	c.urlParams_.Set("alt", alt)
127518	c.urlParams_.Set("prettyPrint", "false")
127519	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks/{resource}/testIamPermissions")
127520	urls += "?" + c.urlParams_.Encode()
127521	req, err := http.NewRequest("POST", urls, body)
127522	if err != nil {
127523		return nil, err
127524	}
127525	req.Header = reqHeaders
127526	googleapi.Expand(req.URL, map[string]string{
127527		"project":  c.project,
127528		"region":   c.region,
127529		"resource": c.resource,
127530	})
127531	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127532}
127533
127534// Do executes the "compute.regionHealthChecks.testIamPermissions" call.
127535// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
127536// non-2xx status code is an error. Response headers are in either
127537// *TestPermissionsResponse.ServerResponse.Header or (if a response was
127538// returned at all) in error.(*googleapi.Error).Header. Use
127539// googleapi.IsNotModified to check whether the returned error was
127540// because http.StatusNotModified was returned.
127541func (c *RegionHealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
127542	gensupport.SetOptions(c.urlParams_, opts...)
127543	res, err := c.doRequest("json")
127544	if res != nil && res.StatusCode == http.StatusNotModified {
127545		if res.Body != nil {
127546			res.Body.Close()
127547		}
127548		return nil, &googleapi.Error{
127549			Code:   res.StatusCode,
127550			Header: res.Header,
127551		}
127552	}
127553	if err != nil {
127554		return nil, err
127555	}
127556	defer googleapi.CloseBody(res)
127557	if err := googleapi.CheckResponse(res); err != nil {
127558		return nil, err
127559	}
127560	ret := &TestPermissionsResponse{
127561		ServerResponse: googleapi.ServerResponse{
127562			Header:         res.Header,
127563			HTTPStatusCode: res.StatusCode,
127564		},
127565	}
127566	target := &ret
127567	if err := gensupport.DecodeResponse(target, res); err != nil {
127568		return nil, err
127569	}
127570	return ret, nil
127571	// {
127572	//   "description": "Returns permissions that a caller has on the specified resource.",
127573	//   "httpMethod": "POST",
127574	//   "id": "compute.regionHealthChecks.testIamPermissions",
127575	//   "parameterOrder": [
127576	//     "project",
127577	//     "region",
127578	//     "resource"
127579	//   ],
127580	//   "parameters": {
127581	//     "project": {
127582	//       "description": "Project ID for this request.",
127583	//       "location": "path",
127584	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127585	//       "required": true,
127586	//       "type": "string"
127587	//     },
127588	//     "region": {
127589	//       "description": "The name of the region for this request.",
127590	//       "location": "path",
127591	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127592	//       "required": true,
127593	//       "type": "string"
127594	//     },
127595	//     "resource": {
127596	//       "description": "Name or id of the resource for this request.",
127597	//       "location": "path",
127598	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
127599	//       "required": true,
127600	//       "type": "string"
127601	//     }
127602	//   },
127603	//   "path": "{project}/regions/{region}/healthChecks/{resource}/testIamPermissions",
127604	//   "request": {
127605	//     "$ref": "TestPermissionsRequest"
127606	//   },
127607	//   "response": {
127608	//     "$ref": "TestPermissionsResponse"
127609	//   },
127610	//   "scopes": [
127611	//     "https://www.googleapis.com/auth/cloud-platform",
127612	//     "https://www.googleapis.com/auth/compute",
127613	//     "https://www.googleapis.com/auth/compute.readonly"
127614	//   ]
127615	// }
127616
127617}
127618
127619// method id "compute.regionHealthChecks.update":
127620
127621type RegionHealthChecksUpdateCall struct {
127622	s           *Service
127623	project     string
127624	region      string
127625	healthCheck string
127626	healthcheck *HealthCheck
127627	urlParams_  gensupport.URLParams
127628	ctx_        context.Context
127629	header_     http.Header
127630}
127631
127632// Update: Updates a HealthCheck resource in the specified project using
127633// the data included in the request.
127634func (r *RegionHealthChecksService) Update(project string, region string, healthCheck string, healthcheck *HealthCheck) *RegionHealthChecksUpdateCall {
127635	c := &RegionHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127636	c.project = project
127637	c.region = region
127638	c.healthCheck = healthCheck
127639	c.healthcheck = healthcheck
127640	return c
127641}
127642
127643// RequestId sets the optional parameter "requestId": An optional
127644// request ID to identify requests. Specify a unique request ID so that
127645// if you must retry your request, the server will know to ignore the
127646// request if it has already been completed.
127647//
127648// For example, consider a situation where you make an initial request
127649// and the request times out. If you make the request again with the
127650// same request ID, the server can check if original operation with the
127651// same request ID was received, and if so, will ignore the second
127652// request. This prevents clients from accidentally creating duplicate
127653// commitments.
127654//
127655// The request ID must be a valid UUID with the exception that zero UUID
127656// is not supported (00000000-0000-0000-0000-000000000000).
127657func (c *RegionHealthChecksUpdateCall) RequestId(requestId string) *RegionHealthChecksUpdateCall {
127658	c.urlParams_.Set("requestId", requestId)
127659	return c
127660}
127661
127662// Fields allows partial responses to be retrieved. See
127663// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127664// for more information.
127665func (c *RegionHealthChecksUpdateCall) Fields(s ...googleapi.Field) *RegionHealthChecksUpdateCall {
127666	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127667	return c
127668}
127669
127670// Context sets the context to be used in this call's Do method. Any
127671// pending HTTP request will be aborted if the provided context is
127672// canceled.
127673func (c *RegionHealthChecksUpdateCall) Context(ctx context.Context) *RegionHealthChecksUpdateCall {
127674	c.ctx_ = ctx
127675	return c
127676}
127677
127678// Header returns an http.Header that can be modified by the caller to
127679// add HTTP headers to the request.
127680func (c *RegionHealthChecksUpdateCall) Header() http.Header {
127681	if c.header_ == nil {
127682		c.header_ = make(http.Header)
127683	}
127684	return c.header_
127685}
127686
127687func (c *RegionHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
127688	reqHeaders := make(http.Header)
127689	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
127690	for k, v := range c.header_ {
127691		reqHeaders[k] = v
127692	}
127693	reqHeaders.Set("User-Agent", c.s.userAgent())
127694	var body io.Reader = nil
127695	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
127696	if err != nil {
127697		return nil, err
127698	}
127699	reqHeaders.Set("Content-Type", "application/json")
127700	c.urlParams_.Set("alt", alt)
127701	c.urlParams_.Set("prettyPrint", "false")
127702	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks/{healthCheck}")
127703	urls += "?" + c.urlParams_.Encode()
127704	req, err := http.NewRequest("PUT", urls, body)
127705	if err != nil {
127706		return nil, err
127707	}
127708	req.Header = reqHeaders
127709	googleapi.Expand(req.URL, map[string]string{
127710		"project":     c.project,
127711		"region":      c.region,
127712		"healthCheck": c.healthCheck,
127713	})
127714	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127715}
127716
127717// Do executes the "compute.regionHealthChecks.update" call.
127718// Exactly one of *Operation or error will be non-nil. Any non-2xx
127719// status code is an error. Response headers are in either
127720// *Operation.ServerResponse.Header or (if a response was returned at
127721// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127722// to check whether the returned error was because
127723// http.StatusNotModified was returned.
127724func (c *RegionHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127725	gensupport.SetOptions(c.urlParams_, opts...)
127726	res, err := c.doRequest("json")
127727	if res != nil && res.StatusCode == http.StatusNotModified {
127728		if res.Body != nil {
127729			res.Body.Close()
127730		}
127731		return nil, &googleapi.Error{
127732			Code:   res.StatusCode,
127733			Header: res.Header,
127734		}
127735	}
127736	if err != nil {
127737		return nil, err
127738	}
127739	defer googleapi.CloseBody(res)
127740	if err := googleapi.CheckResponse(res); err != nil {
127741		return nil, err
127742	}
127743	ret := &Operation{
127744		ServerResponse: googleapi.ServerResponse{
127745			Header:         res.Header,
127746			HTTPStatusCode: res.StatusCode,
127747		},
127748	}
127749	target := &ret
127750	if err := gensupport.DecodeResponse(target, res); err != nil {
127751		return nil, err
127752	}
127753	return ret, nil
127754	// {
127755	//   "description": "Updates a HealthCheck resource in the specified project using the data included in the request.",
127756	//   "httpMethod": "PUT",
127757	//   "id": "compute.regionHealthChecks.update",
127758	//   "parameterOrder": [
127759	//     "project",
127760	//     "region",
127761	//     "healthCheck"
127762	//   ],
127763	//   "parameters": {
127764	//     "healthCheck": {
127765	//       "description": "Name of the HealthCheck resource to update.",
127766	//       "location": "path",
127767	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
127768	//       "required": true,
127769	//       "type": "string"
127770	//     },
127771	//     "project": {
127772	//       "description": "Project ID for this request.",
127773	//       "location": "path",
127774	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127775	//       "required": true,
127776	//       "type": "string"
127777	//     },
127778	//     "region": {
127779	//       "description": "Name of the region scoping this request.",
127780	//       "location": "path",
127781	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127782	//       "required": true,
127783	//       "type": "string"
127784	//     },
127785	//     "requestId": {
127786	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
127787	//       "location": "query",
127788	//       "type": "string"
127789	//     }
127790	//   },
127791	//   "path": "{project}/regions/{region}/healthChecks/{healthCheck}",
127792	//   "request": {
127793	//     "$ref": "HealthCheck"
127794	//   },
127795	//   "response": {
127796	//     "$ref": "Operation"
127797	//   },
127798	//   "scopes": [
127799	//     "https://www.googleapis.com/auth/cloud-platform",
127800	//     "https://www.googleapis.com/auth/compute"
127801	//   ]
127802	// }
127803
127804}
127805
127806// method id "compute.regionInstanceGroupManagers.abandonInstances":
127807
127808type RegionInstanceGroupManagersAbandonInstancesCall struct {
127809	s                                                  *Service
127810	project                                            string
127811	region                                             string
127812	instanceGroupManager                               string
127813	regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest
127814	urlParams_                                         gensupport.URLParams
127815	ctx_                                               context.Context
127816	header_                                            http.Header
127817}
127818
127819// AbandonInstances: Flags the specified instances to be immediately
127820// removed from the managed instance group. Abandoning an instance does
127821// not delete the instance, but it does remove the instance from any
127822// target pools that are applied by the managed instance group. This
127823// method reduces the targetSize of the managed instance group by the
127824// number of instances that you abandon. This operation is marked as
127825// DONE when the action is scheduled even if the instances have not yet
127826// been removed from the group. You must separately verify the status of
127827// the abandoning action with the listmanagedinstances method.
127828//
127829// If the group is part of a backend service that has enabled connection
127830// draining, it can take up to 60 seconds after the connection draining
127831// duration has elapsed before the VM instance is removed or
127832// deleted.
127833//
127834// You can specify a maximum of 1000 instances with this method per
127835// request.
127836func (r *RegionInstanceGroupManagersService) AbandonInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest) *RegionInstanceGroupManagersAbandonInstancesCall {
127837	c := &RegionInstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127838	c.project = project
127839	c.region = region
127840	c.instanceGroupManager = instanceGroupManager
127841	c.regioninstancegroupmanagersabandoninstancesrequest = regioninstancegroupmanagersabandoninstancesrequest
127842	return c
127843}
127844
127845// RequestId sets the optional parameter "requestId": An optional
127846// request ID to identify requests. Specify a unique request ID so that
127847// if you must retry your request, the server will know to ignore the
127848// request if it has already been completed.
127849//
127850// For example, consider a situation where you make an initial request
127851// and the request times out. If you make the request again with the
127852// same request ID, the server can check if original operation with the
127853// same request ID was received, and if so, will ignore the second
127854// request. This prevents clients from accidentally creating duplicate
127855// commitments.
127856//
127857// The request ID must be a valid UUID with the exception that zero UUID
127858// is not supported (00000000-0000-0000-0000-000000000000).
127859func (c *RegionInstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersAbandonInstancesCall {
127860	c.urlParams_.Set("requestId", requestId)
127861	return c
127862}
127863
127864// Fields allows partial responses to be retrieved. See
127865// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127866// for more information.
127867func (c *RegionInstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersAbandonInstancesCall {
127868	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127869	return c
127870}
127871
127872// Context sets the context to be used in this call's Do method. Any
127873// pending HTTP request will be aborted if the provided context is
127874// canceled.
127875func (c *RegionInstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersAbandonInstancesCall {
127876	c.ctx_ = ctx
127877	return c
127878}
127879
127880// Header returns an http.Header that can be modified by the caller to
127881// add HTTP headers to the request.
127882func (c *RegionInstanceGroupManagersAbandonInstancesCall) Header() http.Header {
127883	if c.header_ == nil {
127884		c.header_ = make(http.Header)
127885	}
127886	return c.header_
127887}
127888
127889func (c *RegionInstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) {
127890	reqHeaders := make(http.Header)
127891	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
127892	for k, v := range c.header_ {
127893		reqHeaders[k] = v
127894	}
127895	reqHeaders.Set("User-Agent", c.s.userAgent())
127896	var body io.Reader = nil
127897	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersabandoninstancesrequest)
127898	if err != nil {
127899		return nil, err
127900	}
127901	reqHeaders.Set("Content-Type", "application/json")
127902	c.urlParams_.Set("alt", alt)
127903	c.urlParams_.Set("prettyPrint", "false")
127904	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances")
127905	urls += "?" + c.urlParams_.Encode()
127906	req, err := http.NewRequest("POST", urls, body)
127907	if err != nil {
127908		return nil, err
127909	}
127910	req.Header = reqHeaders
127911	googleapi.Expand(req.URL, map[string]string{
127912		"project":              c.project,
127913		"region":               c.region,
127914		"instanceGroupManager": c.instanceGroupManager,
127915	})
127916	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127917}
127918
127919// Do executes the "compute.regionInstanceGroupManagers.abandonInstances" call.
127920// Exactly one of *Operation or error will be non-nil. Any non-2xx
127921// status code is an error. Response headers are in either
127922// *Operation.ServerResponse.Header or (if a response was returned at
127923// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127924// to check whether the returned error was because
127925// http.StatusNotModified was returned.
127926func (c *RegionInstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127927	gensupport.SetOptions(c.urlParams_, opts...)
127928	res, err := c.doRequest("json")
127929	if res != nil && res.StatusCode == http.StatusNotModified {
127930		if res.Body != nil {
127931			res.Body.Close()
127932		}
127933		return nil, &googleapi.Error{
127934			Code:   res.StatusCode,
127935			Header: res.Header,
127936		}
127937	}
127938	if err != nil {
127939		return nil, err
127940	}
127941	defer googleapi.CloseBody(res)
127942	if err := googleapi.CheckResponse(res); err != nil {
127943		return nil, err
127944	}
127945	ret := &Operation{
127946		ServerResponse: googleapi.ServerResponse{
127947			Header:         res.Header,
127948			HTTPStatusCode: res.StatusCode,
127949		},
127950	}
127951	target := &ret
127952	if err := gensupport.DecodeResponse(target, res); err != nil {
127953		return nil, err
127954	}
127955	return ret, nil
127956	// {
127957	//   "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.",
127958	//   "httpMethod": "POST",
127959	//   "id": "compute.regionInstanceGroupManagers.abandonInstances",
127960	//   "parameterOrder": [
127961	//     "project",
127962	//     "region",
127963	//     "instanceGroupManager"
127964	//   ],
127965	//   "parameters": {
127966	//     "instanceGroupManager": {
127967	//       "description": "Name of the managed instance group.",
127968	//       "location": "path",
127969	//       "required": true,
127970	//       "type": "string"
127971	//     },
127972	//     "project": {
127973	//       "description": "Project ID for this request.",
127974	//       "location": "path",
127975	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127976	//       "required": true,
127977	//       "type": "string"
127978	//     },
127979	//     "region": {
127980	//       "description": "Name of the region scoping this request.",
127981	//       "location": "path",
127982	//       "required": true,
127983	//       "type": "string"
127984	//     },
127985	//     "requestId": {
127986	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
127987	//       "location": "query",
127988	//       "type": "string"
127989	//     }
127990	//   },
127991	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
127992	//   "request": {
127993	//     "$ref": "RegionInstanceGroupManagersAbandonInstancesRequest"
127994	//   },
127995	//   "response": {
127996	//     "$ref": "Operation"
127997	//   },
127998	//   "scopes": [
127999	//     "https://www.googleapis.com/auth/cloud-platform",
128000	//     "https://www.googleapis.com/auth/compute"
128001	//   ]
128002	// }
128003
128004}
128005
128006// method id "compute.regionInstanceGroupManagers.applyUpdatesToInstances":
128007
128008type RegionInstanceGroupManagersApplyUpdatesToInstancesCall struct {
128009	s                                              *Service
128010	project                                        string
128011	region                                         string
128012	instanceGroupManager                           string
128013	regioninstancegroupmanagersapplyupdatesrequest *RegionInstanceGroupManagersApplyUpdatesRequest
128014	urlParams_                                     gensupport.URLParams
128015	ctx_                                           context.Context
128016	header_                                        http.Header
128017}
128018
128019// ApplyUpdatesToInstances: Apply updates to selected instances the
128020// managed instance group.
128021func (r *RegionInstanceGroupManagersService) ApplyUpdatesToInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersapplyupdatesrequest *RegionInstanceGroupManagersApplyUpdatesRequest) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
128022	c := &RegionInstanceGroupManagersApplyUpdatesToInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128023	c.project = project
128024	c.region = region
128025	c.instanceGroupManager = instanceGroupManager
128026	c.regioninstancegroupmanagersapplyupdatesrequest = regioninstancegroupmanagersapplyupdatesrequest
128027	return c
128028}
128029
128030// Fields allows partial responses to be retrieved. See
128031// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128032// for more information.
128033func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
128034	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128035	return c
128036}
128037
128038// Context sets the context to be used in this call's Do method. Any
128039// pending HTTP request will be aborted if the provided context is
128040// canceled.
128041func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
128042	c.ctx_ = ctx
128043	return c
128044}
128045
128046// Header returns an http.Header that can be modified by the caller to
128047// add HTTP headers to the request.
128048func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Header() http.Header {
128049	if c.header_ == nil {
128050		c.header_ = make(http.Header)
128051	}
128052	return c.header_
128053}
128054
128055func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) doRequest(alt string) (*http.Response, error) {
128056	reqHeaders := make(http.Header)
128057	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
128058	for k, v := range c.header_ {
128059		reqHeaders[k] = v
128060	}
128061	reqHeaders.Set("User-Agent", c.s.userAgent())
128062	var body io.Reader = nil
128063	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersapplyupdatesrequest)
128064	if err != nil {
128065		return nil, err
128066	}
128067	reqHeaders.Set("Content-Type", "application/json")
128068	c.urlParams_.Set("alt", alt)
128069	c.urlParams_.Set("prettyPrint", "false")
128070	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances")
128071	urls += "?" + c.urlParams_.Encode()
128072	req, err := http.NewRequest("POST", urls, body)
128073	if err != nil {
128074		return nil, err
128075	}
128076	req.Header = reqHeaders
128077	googleapi.Expand(req.URL, map[string]string{
128078		"project":              c.project,
128079		"region":               c.region,
128080		"instanceGroupManager": c.instanceGroupManager,
128081	})
128082	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128083}
128084
128085// Do executes the "compute.regionInstanceGroupManagers.applyUpdatesToInstances" call.
128086// Exactly one of *Operation or error will be non-nil. Any non-2xx
128087// status code is an error. Response headers are in either
128088// *Operation.ServerResponse.Header or (if a response was returned at
128089// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128090// to check whether the returned error was because
128091// http.StatusNotModified was returned.
128092func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
128093	gensupport.SetOptions(c.urlParams_, opts...)
128094	res, err := c.doRequest("json")
128095	if res != nil && res.StatusCode == http.StatusNotModified {
128096		if res.Body != nil {
128097			res.Body.Close()
128098		}
128099		return nil, &googleapi.Error{
128100			Code:   res.StatusCode,
128101			Header: res.Header,
128102		}
128103	}
128104	if err != nil {
128105		return nil, err
128106	}
128107	defer googleapi.CloseBody(res)
128108	if err := googleapi.CheckResponse(res); err != nil {
128109		return nil, err
128110	}
128111	ret := &Operation{
128112		ServerResponse: googleapi.ServerResponse{
128113			Header:         res.Header,
128114			HTTPStatusCode: res.StatusCode,
128115		},
128116	}
128117	target := &ret
128118	if err := gensupport.DecodeResponse(target, res); err != nil {
128119		return nil, err
128120	}
128121	return ret, nil
128122	// {
128123	//   "description": "Apply updates to selected instances the managed instance group.",
128124	//   "httpMethod": "POST",
128125	//   "id": "compute.regionInstanceGroupManagers.applyUpdatesToInstances",
128126	//   "parameterOrder": [
128127	//     "project",
128128	//     "region",
128129	//     "instanceGroupManager"
128130	//   ],
128131	//   "parameters": {
128132	//     "instanceGroupManager": {
128133	//       "description": "The name of the managed instance group, should conform to RFC1035.",
128134	//       "location": "path",
128135	//       "required": true,
128136	//       "type": "string"
128137	//     },
128138	//     "project": {
128139	//       "description": "Project ID for this request.",
128140	//       "location": "path",
128141	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128142	//       "required": true,
128143	//       "type": "string"
128144	//     },
128145	//     "region": {
128146	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
128147	//       "location": "path",
128148	//       "required": true,
128149	//       "type": "string"
128150	//     }
128151	//   },
128152	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
128153	//   "request": {
128154	//     "$ref": "RegionInstanceGroupManagersApplyUpdatesRequest"
128155	//   },
128156	//   "response": {
128157	//     "$ref": "Operation"
128158	//   },
128159	//   "scopes": [
128160	//     "https://www.googleapis.com/auth/cloud-platform",
128161	//     "https://www.googleapis.com/auth/compute"
128162	//   ]
128163	// }
128164
128165}
128166
128167// method id "compute.regionInstanceGroupManagers.createInstances":
128168
128169type RegionInstanceGroupManagersCreateInstancesCall struct {
128170	s                                                 *Service
128171	project                                           string
128172	region                                            string
128173	instanceGroupManager                              string
128174	regioninstancegroupmanagerscreateinstancesrequest *RegionInstanceGroupManagersCreateInstancesRequest
128175	urlParams_                                        gensupport.URLParams
128176	ctx_                                              context.Context
128177	header_                                           http.Header
128178}
128179
128180// CreateInstances: Creates instances with per-instance configs in this
128181// regional managed instance group. Instances are created using the
128182// current instance template. The create instances operation is marked
128183// DONE if the createInstances request is successful. The underlying
128184// actions take additional time. You must separately verify the status
128185// of the creating or actions with the listmanagedinstances method.
128186func (r *RegionInstanceGroupManagersService) CreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagerscreateinstancesrequest *RegionInstanceGroupManagersCreateInstancesRequest) *RegionInstanceGroupManagersCreateInstancesCall {
128187	c := &RegionInstanceGroupManagersCreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128188	c.project = project
128189	c.region = region
128190	c.instanceGroupManager = instanceGroupManager
128191	c.regioninstancegroupmanagerscreateinstancesrequest = regioninstancegroupmanagerscreateinstancesrequest
128192	return c
128193}
128194
128195// RequestId sets the optional parameter "requestId": An optional
128196// request ID to identify requests. Specify a unique request ID so that
128197// if you must retry your request, the server will know to ignore the
128198// request if it has already been completed.
128199//
128200// For example, consider a situation where you make an initial request
128201// and the request times out. If you make the request again with the
128202// same request ID, the server can check if original operation with the
128203// same request ID was received, and if so, will ignore the second
128204// request.
128205//
128206// The request ID must be a valid UUID with the exception that zero UUID
128207// is not supported (00000000-0000-0000-0000-000000000000).
128208func (c *RegionInstanceGroupManagersCreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersCreateInstancesCall {
128209	c.urlParams_.Set("requestId", requestId)
128210	return c
128211}
128212
128213// Fields allows partial responses to be retrieved. See
128214// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128215// for more information.
128216func (c *RegionInstanceGroupManagersCreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersCreateInstancesCall {
128217	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128218	return c
128219}
128220
128221// Context sets the context to be used in this call's Do method. Any
128222// pending HTTP request will be aborted if the provided context is
128223// canceled.
128224func (c *RegionInstanceGroupManagersCreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersCreateInstancesCall {
128225	c.ctx_ = ctx
128226	return c
128227}
128228
128229// Header returns an http.Header that can be modified by the caller to
128230// add HTTP headers to the request.
128231func (c *RegionInstanceGroupManagersCreateInstancesCall) Header() http.Header {
128232	if c.header_ == nil {
128233		c.header_ = make(http.Header)
128234	}
128235	return c.header_
128236}
128237
128238func (c *RegionInstanceGroupManagersCreateInstancesCall) doRequest(alt string) (*http.Response, error) {
128239	reqHeaders := make(http.Header)
128240	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
128241	for k, v := range c.header_ {
128242		reqHeaders[k] = v
128243	}
128244	reqHeaders.Set("User-Agent", c.s.userAgent())
128245	var body io.Reader = nil
128246	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerscreateinstancesrequest)
128247	if err != nil {
128248		return nil, err
128249	}
128250	reqHeaders.Set("Content-Type", "application/json")
128251	c.urlParams_.Set("alt", alt)
128252	c.urlParams_.Set("prettyPrint", "false")
128253	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances")
128254	urls += "?" + c.urlParams_.Encode()
128255	req, err := http.NewRequest("POST", urls, body)
128256	if err != nil {
128257		return nil, err
128258	}
128259	req.Header = reqHeaders
128260	googleapi.Expand(req.URL, map[string]string{
128261		"project":              c.project,
128262		"region":               c.region,
128263		"instanceGroupManager": c.instanceGroupManager,
128264	})
128265	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128266}
128267
128268// Do executes the "compute.regionInstanceGroupManagers.createInstances" call.
128269// Exactly one of *Operation or error will be non-nil. Any non-2xx
128270// status code is an error. Response headers are in either
128271// *Operation.ServerResponse.Header or (if a response was returned at
128272// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128273// to check whether the returned error was because
128274// http.StatusNotModified was returned.
128275func (c *RegionInstanceGroupManagersCreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
128276	gensupport.SetOptions(c.urlParams_, opts...)
128277	res, err := c.doRequest("json")
128278	if res != nil && res.StatusCode == http.StatusNotModified {
128279		if res.Body != nil {
128280			res.Body.Close()
128281		}
128282		return nil, &googleapi.Error{
128283			Code:   res.StatusCode,
128284			Header: res.Header,
128285		}
128286	}
128287	if err != nil {
128288		return nil, err
128289	}
128290	defer googleapi.CloseBody(res)
128291	if err := googleapi.CheckResponse(res); err != nil {
128292		return nil, err
128293	}
128294	ret := &Operation{
128295		ServerResponse: googleapi.ServerResponse{
128296			Header:         res.Header,
128297			HTTPStatusCode: res.StatusCode,
128298		},
128299	}
128300	target := &ret
128301	if err := gensupport.DecodeResponse(target, res); err != nil {
128302		return nil, err
128303	}
128304	return ret, nil
128305	// {
128306	//   "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.",
128307	//   "httpMethod": "POST",
128308	//   "id": "compute.regionInstanceGroupManagers.createInstances",
128309	//   "parameterOrder": [
128310	//     "project",
128311	//     "region",
128312	//     "instanceGroupManager"
128313	//   ],
128314	//   "parameters": {
128315	//     "instanceGroupManager": {
128316	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
128317	//       "location": "path",
128318	//       "required": true,
128319	//       "type": "string"
128320	//     },
128321	//     "project": {
128322	//       "description": "Project ID for this request.",
128323	//       "location": "path",
128324	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128325	//       "required": true,
128326	//       "type": "string"
128327	//     },
128328	//     "region": {
128329	//       "description": "The name of the region where the managed instance group is located. It should conform to RFC1035.",
128330	//       "location": "path",
128331	//       "required": true,
128332	//       "type": "string"
128333	//     },
128334	//     "requestId": {
128335	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same 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).",
128336	//       "location": "query",
128337	//       "type": "string"
128338	//     }
128339	//   },
128340	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances",
128341	//   "request": {
128342	//     "$ref": "RegionInstanceGroupManagersCreateInstancesRequest"
128343	//   },
128344	//   "response": {
128345	//     "$ref": "Operation"
128346	//   },
128347	//   "scopes": [
128348	//     "https://www.googleapis.com/auth/cloud-platform",
128349	//     "https://www.googleapis.com/auth/compute"
128350	//   ]
128351	// }
128352
128353}
128354
128355// method id "compute.regionInstanceGroupManagers.delete":
128356
128357type RegionInstanceGroupManagersDeleteCall struct {
128358	s                    *Service
128359	project              string
128360	region               string
128361	instanceGroupManager string
128362	urlParams_           gensupport.URLParams
128363	ctx_                 context.Context
128364	header_              http.Header
128365}
128366
128367// Delete: Deletes the specified managed instance group and all of the
128368// instances in that group.
128369func (r *RegionInstanceGroupManagersService) Delete(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersDeleteCall {
128370	c := &RegionInstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128371	c.project = project
128372	c.region = region
128373	c.instanceGroupManager = instanceGroupManager
128374	return c
128375}
128376
128377// RequestId sets the optional parameter "requestId": An optional
128378// request ID to identify requests. Specify a unique request ID so that
128379// if you must retry your request, the server will know to ignore the
128380// request if it has already been completed.
128381//
128382// For example, consider a situation where you make an initial request
128383// and the request times out. If you make the request again with the
128384// same request ID, the server can check if original operation with the
128385// same request ID was received, and if so, will ignore the second
128386// request. This prevents clients from accidentally creating duplicate
128387// commitments.
128388//
128389// The request ID must be a valid UUID with the exception that zero UUID
128390// is not supported (00000000-0000-0000-0000-000000000000).
128391func (c *RegionInstanceGroupManagersDeleteCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteCall {
128392	c.urlParams_.Set("requestId", requestId)
128393	return c
128394}
128395
128396// Fields allows partial responses to be retrieved. See
128397// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128398// for more information.
128399func (c *RegionInstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteCall {
128400	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128401	return c
128402}
128403
128404// Context sets the context to be used in this call's Do method. Any
128405// pending HTTP request will be aborted if the provided context is
128406// canceled.
128407func (c *RegionInstanceGroupManagersDeleteCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteCall {
128408	c.ctx_ = ctx
128409	return c
128410}
128411
128412// Header returns an http.Header that can be modified by the caller to
128413// add HTTP headers to the request.
128414func (c *RegionInstanceGroupManagersDeleteCall) Header() http.Header {
128415	if c.header_ == nil {
128416		c.header_ = make(http.Header)
128417	}
128418	return c.header_
128419}
128420
128421func (c *RegionInstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) {
128422	reqHeaders := make(http.Header)
128423	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
128424	for k, v := range c.header_ {
128425		reqHeaders[k] = v
128426	}
128427	reqHeaders.Set("User-Agent", c.s.userAgent())
128428	var body io.Reader = nil
128429	c.urlParams_.Set("alt", alt)
128430	c.urlParams_.Set("prettyPrint", "false")
128431	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
128432	urls += "?" + c.urlParams_.Encode()
128433	req, err := http.NewRequest("DELETE", urls, body)
128434	if err != nil {
128435		return nil, err
128436	}
128437	req.Header = reqHeaders
128438	googleapi.Expand(req.URL, map[string]string{
128439		"project":              c.project,
128440		"region":               c.region,
128441		"instanceGroupManager": c.instanceGroupManager,
128442	})
128443	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128444}
128445
128446// Do executes the "compute.regionInstanceGroupManagers.delete" call.
128447// Exactly one of *Operation or error will be non-nil. Any non-2xx
128448// status code is an error. Response headers are in either
128449// *Operation.ServerResponse.Header or (if a response was returned at
128450// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128451// to check whether the returned error was because
128452// http.StatusNotModified was returned.
128453func (c *RegionInstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
128454	gensupport.SetOptions(c.urlParams_, opts...)
128455	res, err := c.doRequest("json")
128456	if res != nil && res.StatusCode == http.StatusNotModified {
128457		if res.Body != nil {
128458			res.Body.Close()
128459		}
128460		return nil, &googleapi.Error{
128461			Code:   res.StatusCode,
128462			Header: res.Header,
128463		}
128464	}
128465	if err != nil {
128466		return nil, err
128467	}
128468	defer googleapi.CloseBody(res)
128469	if err := googleapi.CheckResponse(res); err != nil {
128470		return nil, err
128471	}
128472	ret := &Operation{
128473		ServerResponse: googleapi.ServerResponse{
128474			Header:         res.Header,
128475			HTTPStatusCode: res.StatusCode,
128476		},
128477	}
128478	target := &ret
128479	if err := gensupport.DecodeResponse(target, res); err != nil {
128480		return nil, err
128481	}
128482	return ret, nil
128483	// {
128484	//   "description": "Deletes the specified managed instance group and all of the instances in that group.",
128485	//   "httpMethod": "DELETE",
128486	//   "id": "compute.regionInstanceGroupManagers.delete",
128487	//   "parameterOrder": [
128488	//     "project",
128489	//     "region",
128490	//     "instanceGroupManager"
128491	//   ],
128492	//   "parameters": {
128493	//     "instanceGroupManager": {
128494	//       "description": "Name of the managed instance group to delete.",
128495	//       "location": "path",
128496	//       "required": true,
128497	//       "type": "string"
128498	//     },
128499	//     "project": {
128500	//       "description": "Project ID for this request.",
128501	//       "location": "path",
128502	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128503	//       "required": true,
128504	//       "type": "string"
128505	//     },
128506	//     "region": {
128507	//       "description": "Name of the region scoping this request.",
128508	//       "location": "path",
128509	//       "required": true,
128510	//       "type": "string"
128511	//     },
128512	//     "requestId": {
128513	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
128514	//       "location": "query",
128515	//       "type": "string"
128516	//     }
128517	//   },
128518	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
128519	//   "response": {
128520	//     "$ref": "Operation"
128521	//   },
128522	//   "scopes": [
128523	//     "https://www.googleapis.com/auth/cloud-platform",
128524	//     "https://www.googleapis.com/auth/compute"
128525	//   ]
128526	// }
128527
128528}
128529
128530// method id "compute.regionInstanceGroupManagers.deleteInstances":
128531
128532type RegionInstanceGroupManagersDeleteInstancesCall struct {
128533	s                                                 *Service
128534	project                                           string
128535	region                                            string
128536	instanceGroupManager                              string
128537	regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest
128538	urlParams_                                        gensupport.URLParams
128539	ctx_                                              context.Context
128540	header_                                           http.Header
128541}
128542
128543// DeleteInstances: Flags the specified instances in the managed
128544// instance group to be immediately deleted. The instances are also
128545// removed from any target pools of which they were a member. This
128546// method reduces the targetSize of the managed instance group by the
128547// number of instances that you delete. The deleteInstances operation is
128548// marked DONE if the deleteInstances request is successful. The
128549// underlying actions take additional time. You must separately verify
128550// the status of the deleting action with the listmanagedinstances
128551// method.
128552//
128553// If the group is part of a backend service that has enabled connection
128554// draining, it can take up to 60 seconds after the connection draining
128555// duration has elapsed before the VM instance is removed or
128556// deleted.
128557//
128558// You can specify a maximum of 1000 instances with this method per
128559// request.
128560func (r *RegionInstanceGroupManagersService) DeleteInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest) *RegionInstanceGroupManagersDeleteInstancesCall {
128561	c := &RegionInstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128562	c.project = project
128563	c.region = region
128564	c.instanceGroupManager = instanceGroupManager
128565	c.regioninstancegroupmanagersdeleteinstancesrequest = regioninstancegroupmanagersdeleteinstancesrequest
128566	return c
128567}
128568
128569// RequestId sets the optional parameter "requestId": An optional
128570// request ID to identify requests. Specify a unique request ID so that
128571// if you must retry your request, the server will know to ignore the
128572// request if it has already been completed.
128573//
128574// For example, consider a situation where you make an initial request
128575// and the request times out. If you make the request again with the
128576// same request ID, the server can check if original operation with the
128577// same request ID was received, and if so, will ignore the second
128578// request. This prevents clients from accidentally creating duplicate
128579// commitments.
128580//
128581// The request ID must be a valid UUID with the exception that zero UUID
128582// is not supported (00000000-0000-0000-0000-000000000000).
128583func (c *RegionInstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteInstancesCall {
128584	c.urlParams_.Set("requestId", requestId)
128585	return c
128586}
128587
128588// Fields allows partial responses to be retrieved. See
128589// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128590// for more information.
128591func (c *RegionInstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteInstancesCall {
128592	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128593	return c
128594}
128595
128596// Context sets the context to be used in this call's Do method. Any
128597// pending HTTP request will be aborted if the provided context is
128598// canceled.
128599func (c *RegionInstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteInstancesCall {
128600	c.ctx_ = ctx
128601	return c
128602}
128603
128604// Header returns an http.Header that can be modified by the caller to
128605// add HTTP headers to the request.
128606func (c *RegionInstanceGroupManagersDeleteInstancesCall) Header() http.Header {
128607	if c.header_ == nil {
128608		c.header_ = make(http.Header)
128609	}
128610	return c.header_
128611}
128612
128613func (c *RegionInstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) {
128614	reqHeaders := make(http.Header)
128615	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
128616	for k, v := range c.header_ {
128617		reqHeaders[k] = v
128618	}
128619	reqHeaders.Set("User-Agent", c.s.userAgent())
128620	var body io.Reader = nil
128621	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersdeleteinstancesrequest)
128622	if err != nil {
128623		return nil, err
128624	}
128625	reqHeaders.Set("Content-Type", "application/json")
128626	c.urlParams_.Set("alt", alt)
128627	c.urlParams_.Set("prettyPrint", "false")
128628	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances")
128629	urls += "?" + c.urlParams_.Encode()
128630	req, err := http.NewRequest("POST", urls, body)
128631	if err != nil {
128632		return nil, err
128633	}
128634	req.Header = reqHeaders
128635	googleapi.Expand(req.URL, map[string]string{
128636		"project":              c.project,
128637		"region":               c.region,
128638		"instanceGroupManager": c.instanceGroupManager,
128639	})
128640	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128641}
128642
128643// Do executes the "compute.regionInstanceGroupManagers.deleteInstances" call.
128644// Exactly one of *Operation or error will be non-nil. Any non-2xx
128645// status code is an error. Response headers are in either
128646// *Operation.ServerResponse.Header or (if a response was returned at
128647// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128648// to check whether the returned error was because
128649// http.StatusNotModified was returned.
128650func (c *RegionInstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
128651	gensupport.SetOptions(c.urlParams_, opts...)
128652	res, err := c.doRequest("json")
128653	if res != nil && res.StatusCode == http.StatusNotModified {
128654		if res.Body != nil {
128655			res.Body.Close()
128656		}
128657		return nil, &googleapi.Error{
128658			Code:   res.StatusCode,
128659			Header: res.Header,
128660		}
128661	}
128662	if err != nil {
128663		return nil, err
128664	}
128665	defer googleapi.CloseBody(res)
128666	if err := googleapi.CheckResponse(res); err != nil {
128667		return nil, err
128668	}
128669	ret := &Operation{
128670		ServerResponse: googleapi.ServerResponse{
128671			Header:         res.Header,
128672			HTTPStatusCode: res.StatusCode,
128673		},
128674	}
128675	target := &ret
128676	if err := gensupport.DecodeResponse(target, res); err != nil {
128677		return nil, err
128678	}
128679	return ret, nil
128680	// {
128681	//   "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.",
128682	//   "httpMethod": "POST",
128683	//   "id": "compute.regionInstanceGroupManagers.deleteInstances",
128684	//   "parameterOrder": [
128685	//     "project",
128686	//     "region",
128687	//     "instanceGroupManager"
128688	//   ],
128689	//   "parameters": {
128690	//     "instanceGroupManager": {
128691	//       "description": "Name of the managed instance group.",
128692	//       "location": "path",
128693	//       "required": true,
128694	//       "type": "string"
128695	//     },
128696	//     "project": {
128697	//       "description": "Project ID for this request.",
128698	//       "location": "path",
128699	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128700	//       "required": true,
128701	//       "type": "string"
128702	//     },
128703	//     "region": {
128704	//       "description": "Name of the region scoping this request.",
128705	//       "location": "path",
128706	//       "required": true,
128707	//       "type": "string"
128708	//     },
128709	//     "requestId": {
128710	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
128711	//       "location": "query",
128712	//       "type": "string"
128713	//     }
128714	//   },
128715	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
128716	//   "request": {
128717	//     "$ref": "RegionInstanceGroupManagersDeleteInstancesRequest"
128718	//   },
128719	//   "response": {
128720	//     "$ref": "Operation"
128721	//   },
128722	//   "scopes": [
128723	//     "https://www.googleapis.com/auth/cloud-platform",
128724	//     "https://www.googleapis.com/auth/compute"
128725	//   ]
128726	// }
128727
128728}
128729
128730// method id "compute.regionInstanceGroupManagers.deletePerInstanceConfigs":
128731
128732type RegionInstanceGroupManagersDeletePerInstanceConfigsCall struct {
128733	s                                                 *Service
128734	project                                           string
128735	region                                            string
128736	instanceGroupManager                              string
128737	regioninstancegroupmanagerdeleteinstanceconfigreq *RegionInstanceGroupManagerDeleteInstanceConfigReq
128738	urlParams_                                        gensupport.URLParams
128739	ctx_                                              context.Context
128740	header_                                           http.Header
128741}
128742
128743// DeletePerInstanceConfigs: Deletes selected per-instance configs for
128744// the managed instance group.
128745func (r *RegionInstanceGroupManagersService) DeletePerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerdeleteinstanceconfigreq *RegionInstanceGroupManagerDeleteInstanceConfigReq) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
128746	c := &RegionInstanceGroupManagersDeletePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128747	c.project = project
128748	c.region = region
128749	c.instanceGroupManager = instanceGroupManager
128750	c.regioninstancegroupmanagerdeleteinstanceconfigreq = regioninstancegroupmanagerdeleteinstanceconfigreq
128751	return c
128752}
128753
128754// Fields allows partial responses to be retrieved. See
128755// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128756// for more information.
128757func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
128758	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128759	return c
128760}
128761
128762// Context sets the context to be used in this call's Do method. Any
128763// pending HTTP request will be aborted if the provided context is
128764// canceled.
128765func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
128766	c.ctx_ = ctx
128767	return c
128768}
128769
128770// Header returns an http.Header that can be modified by the caller to
128771// add HTTP headers to the request.
128772func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Header() http.Header {
128773	if c.header_ == nil {
128774		c.header_ = make(http.Header)
128775	}
128776	return c.header_
128777}
128778
128779func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
128780	reqHeaders := make(http.Header)
128781	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
128782	for k, v := range c.header_ {
128783		reqHeaders[k] = v
128784	}
128785	reqHeaders.Set("User-Agent", c.s.userAgent())
128786	var body io.Reader = nil
128787	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerdeleteinstanceconfigreq)
128788	if err != nil {
128789		return nil, err
128790	}
128791	reqHeaders.Set("Content-Type", "application/json")
128792	c.urlParams_.Set("alt", alt)
128793	c.urlParams_.Set("prettyPrint", "false")
128794	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs")
128795	urls += "?" + c.urlParams_.Encode()
128796	req, err := http.NewRequest("POST", urls, body)
128797	if err != nil {
128798		return nil, err
128799	}
128800	req.Header = reqHeaders
128801	googleapi.Expand(req.URL, map[string]string{
128802		"project":              c.project,
128803		"region":               c.region,
128804		"instanceGroupManager": c.instanceGroupManager,
128805	})
128806	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128807}
128808
128809// Do executes the "compute.regionInstanceGroupManagers.deletePerInstanceConfigs" call.
128810// Exactly one of *Operation or error will be non-nil. Any non-2xx
128811// status code is an error. Response headers are in either
128812// *Operation.ServerResponse.Header or (if a response was returned at
128813// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128814// to check whether the returned error was because
128815// http.StatusNotModified was returned.
128816func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
128817	gensupport.SetOptions(c.urlParams_, opts...)
128818	res, err := c.doRequest("json")
128819	if res != nil && res.StatusCode == http.StatusNotModified {
128820		if res.Body != nil {
128821			res.Body.Close()
128822		}
128823		return nil, &googleapi.Error{
128824			Code:   res.StatusCode,
128825			Header: res.Header,
128826		}
128827	}
128828	if err != nil {
128829		return nil, err
128830	}
128831	defer googleapi.CloseBody(res)
128832	if err := googleapi.CheckResponse(res); err != nil {
128833		return nil, err
128834	}
128835	ret := &Operation{
128836		ServerResponse: googleapi.ServerResponse{
128837			Header:         res.Header,
128838			HTTPStatusCode: res.StatusCode,
128839		},
128840	}
128841	target := &ret
128842	if err := gensupport.DecodeResponse(target, res); err != nil {
128843		return nil, err
128844	}
128845	return ret, nil
128846	// {
128847	//   "description": "Deletes selected per-instance configs for the managed instance group.",
128848	//   "httpMethod": "POST",
128849	//   "id": "compute.regionInstanceGroupManagers.deletePerInstanceConfigs",
128850	//   "parameterOrder": [
128851	//     "project",
128852	//     "region",
128853	//     "instanceGroupManager"
128854	//   ],
128855	//   "parameters": {
128856	//     "instanceGroupManager": {
128857	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
128858	//       "location": "path",
128859	//       "required": true,
128860	//       "type": "string"
128861	//     },
128862	//     "project": {
128863	//       "description": "Project ID for this request.",
128864	//       "location": "path",
128865	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128866	//       "required": true,
128867	//       "type": "string"
128868	//     },
128869	//     "region": {
128870	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
128871	//       "location": "path",
128872	//       "required": true,
128873	//       "type": "string"
128874	//     }
128875	//   },
128876	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs",
128877	//   "request": {
128878	//     "$ref": "RegionInstanceGroupManagerDeleteInstanceConfigReq"
128879	//   },
128880	//   "response": {
128881	//     "$ref": "Operation"
128882	//   },
128883	//   "scopes": [
128884	//     "https://www.googleapis.com/auth/cloud-platform",
128885	//     "https://www.googleapis.com/auth/compute"
128886	//   ]
128887	// }
128888
128889}
128890
128891// method id "compute.regionInstanceGroupManagers.get":
128892
128893type RegionInstanceGroupManagersGetCall struct {
128894	s                    *Service
128895	project              string
128896	region               string
128897	instanceGroupManager string
128898	urlParams_           gensupport.URLParams
128899	ifNoneMatch_         string
128900	ctx_                 context.Context
128901	header_              http.Header
128902}
128903
128904// Get: Returns all of the details about the specified managed instance
128905// group.
128906func (r *RegionInstanceGroupManagersService) Get(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersGetCall {
128907	c := &RegionInstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128908	c.project = project
128909	c.region = region
128910	c.instanceGroupManager = instanceGroupManager
128911	return c
128912}
128913
128914// Fields allows partial responses to be retrieved. See
128915// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128916// for more information.
128917func (c *RegionInstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersGetCall {
128918	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128919	return c
128920}
128921
128922// IfNoneMatch sets the optional parameter which makes the operation
128923// fail if the object's ETag matches the given value. This is useful for
128924// getting updates only after the object has changed since the last
128925// request. Use googleapi.IsNotModified to check whether the response
128926// error from Do is the result of In-None-Match.
128927func (c *RegionInstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersGetCall {
128928	c.ifNoneMatch_ = entityTag
128929	return c
128930}
128931
128932// Context sets the context to be used in this call's Do method. Any
128933// pending HTTP request will be aborted if the provided context is
128934// canceled.
128935func (c *RegionInstanceGroupManagersGetCall) Context(ctx context.Context) *RegionInstanceGroupManagersGetCall {
128936	c.ctx_ = ctx
128937	return c
128938}
128939
128940// Header returns an http.Header that can be modified by the caller to
128941// add HTTP headers to the request.
128942func (c *RegionInstanceGroupManagersGetCall) Header() http.Header {
128943	if c.header_ == nil {
128944		c.header_ = make(http.Header)
128945	}
128946	return c.header_
128947}
128948
128949func (c *RegionInstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) {
128950	reqHeaders := make(http.Header)
128951	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
128952	for k, v := range c.header_ {
128953		reqHeaders[k] = v
128954	}
128955	reqHeaders.Set("User-Agent", c.s.userAgent())
128956	if c.ifNoneMatch_ != "" {
128957		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
128958	}
128959	var body io.Reader = nil
128960	c.urlParams_.Set("alt", alt)
128961	c.urlParams_.Set("prettyPrint", "false")
128962	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
128963	urls += "?" + c.urlParams_.Encode()
128964	req, err := http.NewRequest("GET", urls, body)
128965	if err != nil {
128966		return nil, err
128967	}
128968	req.Header = reqHeaders
128969	googleapi.Expand(req.URL, map[string]string{
128970		"project":              c.project,
128971		"region":               c.region,
128972		"instanceGroupManager": c.instanceGroupManager,
128973	})
128974	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128975}
128976
128977// Do executes the "compute.regionInstanceGroupManagers.get" call.
128978// Exactly one of *InstanceGroupManager or error will be non-nil. Any
128979// non-2xx status code is an error. Response headers are in either
128980// *InstanceGroupManager.ServerResponse.Header or (if a response was
128981// returned at all) in error.(*googleapi.Error).Header. Use
128982// googleapi.IsNotModified to check whether the returned error was
128983// because http.StatusNotModified was returned.
128984func (c *RegionInstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) {
128985	gensupport.SetOptions(c.urlParams_, opts...)
128986	res, err := c.doRequest("json")
128987	if res != nil && res.StatusCode == http.StatusNotModified {
128988		if res.Body != nil {
128989			res.Body.Close()
128990		}
128991		return nil, &googleapi.Error{
128992			Code:   res.StatusCode,
128993			Header: res.Header,
128994		}
128995	}
128996	if err != nil {
128997		return nil, err
128998	}
128999	defer googleapi.CloseBody(res)
129000	if err := googleapi.CheckResponse(res); err != nil {
129001		return nil, err
129002	}
129003	ret := &InstanceGroupManager{
129004		ServerResponse: googleapi.ServerResponse{
129005			Header:         res.Header,
129006			HTTPStatusCode: res.StatusCode,
129007		},
129008	}
129009	target := &ret
129010	if err := gensupport.DecodeResponse(target, res); err != nil {
129011		return nil, err
129012	}
129013	return ret, nil
129014	// {
129015	//   "description": "Returns all of the details about the specified managed instance group.",
129016	//   "httpMethod": "GET",
129017	//   "id": "compute.regionInstanceGroupManagers.get",
129018	//   "parameterOrder": [
129019	//     "project",
129020	//     "region",
129021	//     "instanceGroupManager"
129022	//   ],
129023	//   "parameters": {
129024	//     "instanceGroupManager": {
129025	//       "description": "Name of the managed instance group to return.",
129026	//       "location": "path",
129027	//       "required": true,
129028	//       "type": "string"
129029	//     },
129030	//     "project": {
129031	//       "description": "Project ID for this request.",
129032	//       "location": "path",
129033	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129034	//       "required": true,
129035	//       "type": "string"
129036	//     },
129037	//     "region": {
129038	//       "description": "Name of the region scoping this request.",
129039	//       "location": "path",
129040	//       "required": true,
129041	//       "type": "string"
129042	//     }
129043	//   },
129044	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
129045	//   "response": {
129046	//     "$ref": "InstanceGroupManager"
129047	//   },
129048	//   "scopes": [
129049	//     "https://www.googleapis.com/auth/cloud-platform",
129050	//     "https://www.googleapis.com/auth/compute",
129051	//     "https://www.googleapis.com/auth/compute.readonly"
129052	//   ]
129053	// }
129054
129055}
129056
129057// method id "compute.regionInstanceGroupManagers.insert":
129058
129059type RegionInstanceGroupManagersInsertCall struct {
129060	s                    *Service
129061	project              string
129062	region               string
129063	instancegroupmanager *InstanceGroupManager
129064	urlParams_           gensupport.URLParams
129065	ctx_                 context.Context
129066	header_              http.Header
129067}
129068
129069// Insert: Creates a managed instance group using the information that
129070// you specify in the request. After the group is created, instances in
129071// the group are created using the specified instance template. This
129072// operation is marked as DONE when the group is created even if the
129073// instances in the group have not yet been created. You must separately
129074// verify the status of the individual instances with the
129075// listmanagedinstances method.
129076//
129077// A regional managed instance group can contain up to 2000 instances.
129078func (r *RegionInstanceGroupManagersService) Insert(project string, region string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersInsertCall {
129079	c := &RegionInstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129080	c.project = project
129081	c.region = region
129082	c.instancegroupmanager = instancegroupmanager
129083	return c
129084}
129085
129086// RequestId sets the optional parameter "requestId": An optional
129087// request ID to identify requests. Specify a unique request ID so that
129088// if you must retry your request, the server will know to ignore the
129089// request if it has already been completed.
129090//
129091// For example, consider a situation where you make an initial request
129092// and the request times out. If you make the request again with the
129093// same request ID, the server can check if original operation with the
129094// same request ID was received, and if so, will ignore the second
129095// request. This prevents clients from accidentally creating duplicate
129096// commitments.
129097//
129098// The request ID must be a valid UUID with the exception that zero UUID
129099// is not supported (00000000-0000-0000-0000-000000000000).
129100func (c *RegionInstanceGroupManagersInsertCall) RequestId(requestId string) *RegionInstanceGroupManagersInsertCall {
129101	c.urlParams_.Set("requestId", requestId)
129102	return c
129103}
129104
129105// Fields allows partial responses to be retrieved. See
129106// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129107// for more information.
129108func (c *RegionInstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersInsertCall {
129109	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129110	return c
129111}
129112
129113// Context sets the context to be used in this call's Do method. Any
129114// pending HTTP request will be aborted if the provided context is
129115// canceled.
129116func (c *RegionInstanceGroupManagersInsertCall) Context(ctx context.Context) *RegionInstanceGroupManagersInsertCall {
129117	c.ctx_ = ctx
129118	return c
129119}
129120
129121// Header returns an http.Header that can be modified by the caller to
129122// add HTTP headers to the request.
129123func (c *RegionInstanceGroupManagersInsertCall) Header() http.Header {
129124	if c.header_ == nil {
129125		c.header_ = make(http.Header)
129126	}
129127	return c.header_
129128}
129129
129130func (c *RegionInstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) {
129131	reqHeaders := make(http.Header)
129132	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
129133	for k, v := range c.header_ {
129134		reqHeaders[k] = v
129135	}
129136	reqHeaders.Set("User-Agent", c.s.userAgent())
129137	var body io.Reader = nil
129138	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
129139	if err != nil {
129140		return nil, err
129141	}
129142	reqHeaders.Set("Content-Type", "application/json")
129143	c.urlParams_.Set("alt", alt)
129144	c.urlParams_.Set("prettyPrint", "false")
129145	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers")
129146	urls += "?" + c.urlParams_.Encode()
129147	req, err := http.NewRequest("POST", urls, body)
129148	if err != nil {
129149		return nil, err
129150	}
129151	req.Header = reqHeaders
129152	googleapi.Expand(req.URL, map[string]string{
129153		"project": c.project,
129154		"region":  c.region,
129155	})
129156	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129157}
129158
129159// Do executes the "compute.regionInstanceGroupManagers.insert" call.
129160// Exactly one of *Operation or error will be non-nil. Any non-2xx
129161// status code is an error. Response headers are in either
129162// *Operation.ServerResponse.Header or (if a response was returned at
129163// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129164// to check whether the returned error was because
129165// http.StatusNotModified was returned.
129166func (c *RegionInstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129167	gensupport.SetOptions(c.urlParams_, opts...)
129168	res, err := c.doRequest("json")
129169	if res != nil && res.StatusCode == http.StatusNotModified {
129170		if res.Body != nil {
129171			res.Body.Close()
129172		}
129173		return nil, &googleapi.Error{
129174			Code:   res.StatusCode,
129175			Header: res.Header,
129176		}
129177	}
129178	if err != nil {
129179		return nil, err
129180	}
129181	defer googleapi.CloseBody(res)
129182	if err := googleapi.CheckResponse(res); err != nil {
129183		return nil, err
129184	}
129185	ret := &Operation{
129186		ServerResponse: googleapi.ServerResponse{
129187			Header:         res.Header,
129188			HTTPStatusCode: res.StatusCode,
129189		},
129190	}
129191	target := &ret
129192	if err := gensupport.DecodeResponse(target, res); err != nil {
129193		return nil, err
129194	}
129195	return ret, nil
129196	// {
129197	//   "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.",
129198	//   "httpMethod": "POST",
129199	//   "id": "compute.regionInstanceGroupManagers.insert",
129200	//   "parameterOrder": [
129201	//     "project",
129202	//     "region"
129203	//   ],
129204	//   "parameters": {
129205	//     "project": {
129206	//       "description": "Project ID for this request.",
129207	//       "location": "path",
129208	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129209	//       "required": true,
129210	//       "type": "string"
129211	//     },
129212	//     "region": {
129213	//       "description": "Name of the region scoping this request.",
129214	//       "location": "path",
129215	//       "required": true,
129216	//       "type": "string"
129217	//     },
129218	//     "requestId": {
129219	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
129220	//       "location": "query",
129221	//       "type": "string"
129222	//     }
129223	//   },
129224	//   "path": "{project}/regions/{region}/instanceGroupManagers",
129225	//   "request": {
129226	//     "$ref": "InstanceGroupManager"
129227	//   },
129228	//   "response": {
129229	//     "$ref": "Operation"
129230	//   },
129231	//   "scopes": [
129232	//     "https://www.googleapis.com/auth/cloud-platform",
129233	//     "https://www.googleapis.com/auth/compute"
129234	//   ]
129235	// }
129236
129237}
129238
129239// method id "compute.regionInstanceGroupManagers.list":
129240
129241type RegionInstanceGroupManagersListCall struct {
129242	s            *Service
129243	project      string
129244	region       string
129245	urlParams_   gensupport.URLParams
129246	ifNoneMatch_ string
129247	ctx_         context.Context
129248	header_      http.Header
129249}
129250
129251// List: Retrieves the list of managed instance groups that are
129252// contained within the specified region.
129253func (r *RegionInstanceGroupManagersService) List(project string, region string) *RegionInstanceGroupManagersListCall {
129254	c := &RegionInstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129255	c.project = project
129256	c.region = region
129257	return c
129258}
129259
129260// Filter sets the optional parameter "filter": A filter expression that
129261// filters resources listed in the response. The expression must specify
129262// the field name, a comparison operator, and the value that you want to
129263// use for filtering. The value must be a string, a number, or a
129264// boolean. The comparison operator must be either =, !=, >, or <.
129265//
129266// For example, if you are filtering Compute Engine instances, you can
129267// exclude instances named example-instance by specifying name !=
129268// example-instance.
129269//
129270// You can also filter nested fields. For example, you could specify
129271// scheduling.automaticRestart = false to include instances only if they
129272// are not scheduled for automatic restarts. You can use filtering on
129273// nested fields to filter based on resource labels.
129274//
129275// To filter on multiple expressions, provide each separate expression
129276// within parentheses. For example, (scheduling.automaticRestart = true)
129277// (cpuPlatform = "Intel Skylake"). By default, each expression is an
129278// AND expression. However, you can include AND and OR expressions
129279// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
129280// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
129281// true).
129282func (c *RegionInstanceGroupManagersListCall) Filter(filter string) *RegionInstanceGroupManagersListCall {
129283	c.urlParams_.Set("filter", filter)
129284	return c
129285}
129286
129287// MaxResults sets the optional parameter "maxResults": The maximum
129288// number of results per page that should be returned. If the number of
129289// available results is larger than maxResults, Compute Engine returns a
129290// nextPageToken that can be used to get the next page of results in
129291// subsequent list requests. Acceptable values are 0 to 500, inclusive.
129292// (Default: 500)
129293func (c *RegionInstanceGroupManagersListCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListCall {
129294	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
129295	return c
129296}
129297
129298// OrderBy sets the optional parameter "orderBy": Sorts list results by
129299// a certain order. By default, results are returned in alphanumerical
129300// order based on the resource name.
129301//
129302// You can also sort results in descending order based on the creation
129303// timestamp using orderBy="creationTimestamp desc". This sorts results
129304// based on the creationTimestamp field in reverse chronological order
129305// (newest result first). Use this to sort resources like operations so
129306// that the newest operation is returned first.
129307//
129308// Currently, only sorting by name or creationTimestamp desc is
129309// supported.
129310func (c *RegionInstanceGroupManagersListCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListCall {
129311	c.urlParams_.Set("orderBy", orderBy)
129312	return c
129313}
129314
129315// PageToken sets the optional parameter "pageToken": Specifies a page
129316// token to use. Set pageToken to the nextPageToken returned by a
129317// previous list request to get the next page of results.
129318func (c *RegionInstanceGroupManagersListCall) PageToken(pageToken string) *RegionInstanceGroupManagersListCall {
129319	c.urlParams_.Set("pageToken", pageToken)
129320	return c
129321}
129322
129323// Fields allows partial responses to be retrieved. See
129324// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129325// for more information.
129326func (c *RegionInstanceGroupManagersListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListCall {
129327	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129328	return c
129329}
129330
129331// IfNoneMatch sets the optional parameter which makes the operation
129332// fail if the object's ETag matches the given value. This is useful for
129333// getting updates only after the object has changed since the last
129334// request. Use googleapi.IsNotModified to check whether the response
129335// error from Do is the result of In-None-Match.
129336func (c *RegionInstanceGroupManagersListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListCall {
129337	c.ifNoneMatch_ = entityTag
129338	return c
129339}
129340
129341// Context sets the context to be used in this call's Do method. Any
129342// pending HTTP request will be aborted if the provided context is
129343// canceled.
129344func (c *RegionInstanceGroupManagersListCall) Context(ctx context.Context) *RegionInstanceGroupManagersListCall {
129345	c.ctx_ = ctx
129346	return c
129347}
129348
129349// Header returns an http.Header that can be modified by the caller to
129350// add HTTP headers to the request.
129351func (c *RegionInstanceGroupManagersListCall) Header() http.Header {
129352	if c.header_ == nil {
129353		c.header_ = make(http.Header)
129354	}
129355	return c.header_
129356}
129357
129358func (c *RegionInstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) {
129359	reqHeaders := make(http.Header)
129360	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
129361	for k, v := range c.header_ {
129362		reqHeaders[k] = v
129363	}
129364	reqHeaders.Set("User-Agent", c.s.userAgent())
129365	if c.ifNoneMatch_ != "" {
129366		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
129367	}
129368	var body io.Reader = nil
129369	c.urlParams_.Set("alt", alt)
129370	c.urlParams_.Set("prettyPrint", "false")
129371	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers")
129372	urls += "?" + c.urlParams_.Encode()
129373	req, err := http.NewRequest("GET", urls, body)
129374	if err != nil {
129375		return nil, err
129376	}
129377	req.Header = reqHeaders
129378	googleapi.Expand(req.URL, map[string]string{
129379		"project": c.project,
129380		"region":  c.region,
129381	})
129382	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129383}
129384
129385// Do executes the "compute.regionInstanceGroupManagers.list" call.
129386// Exactly one of *RegionInstanceGroupManagerList or error will be
129387// non-nil. Any non-2xx status code is an error. Response headers are in
129388// either *RegionInstanceGroupManagerList.ServerResponse.Header or (if a
129389// response was returned at all) in error.(*googleapi.Error).Header. Use
129390// googleapi.IsNotModified to check whether the returned error was
129391// because http.StatusNotModified was returned.
129392func (c *RegionInstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagerList, error) {
129393	gensupport.SetOptions(c.urlParams_, opts...)
129394	res, err := c.doRequest("json")
129395	if res != nil && res.StatusCode == http.StatusNotModified {
129396		if res.Body != nil {
129397			res.Body.Close()
129398		}
129399		return nil, &googleapi.Error{
129400			Code:   res.StatusCode,
129401			Header: res.Header,
129402		}
129403	}
129404	if err != nil {
129405		return nil, err
129406	}
129407	defer googleapi.CloseBody(res)
129408	if err := googleapi.CheckResponse(res); err != nil {
129409		return nil, err
129410	}
129411	ret := &RegionInstanceGroupManagerList{
129412		ServerResponse: googleapi.ServerResponse{
129413			Header:         res.Header,
129414			HTTPStatusCode: res.StatusCode,
129415		},
129416	}
129417	target := &ret
129418	if err := gensupport.DecodeResponse(target, res); err != nil {
129419		return nil, err
129420	}
129421	return ret, nil
129422	// {
129423	//   "description": "Retrieves the list of managed instance groups that are contained within the specified region.",
129424	//   "httpMethod": "GET",
129425	//   "id": "compute.regionInstanceGroupManagers.list",
129426	//   "parameterOrder": [
129427	//     "project",
129428	//     "region"
129429	//   ],
129430	//   "parameters": {
129431	//     "filter": {
129432	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
129433	//       "location": "query",
129434	//       "type": "string"
129435	//     },
129436	//     "maxResults": {
129437	//       "default": "500",
129438	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
129439	//       "format": "uint32",
129440	//       "location": "query",
129441	//       "minimum": "0",
129442	//       "type": "integer"
129443	//     },
129444	//     "orderBy": {
129445	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
129446	//       "location": "query",
129447	//       "type": "string"
129448	//     },
129449	//     "pageToken": {
129450	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
129451	//       "location": "query",
129452	//       "type": "string"
129453	//     },
129454	//     "project": {
129455	//       "description": "Project ID for this request.",
129456	//       "location": "path",
129457	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129458	//       "required": true,
129459	//       "type": "string"
129460	//     },
129461	//     "region": {
129462	//       "description": "Name of the region scoping this request.",
129463	//       "location": "path",
129464	//       "required": true,
129465	//       "type": "string"
129466	//     }
129467	//   },
129468	//   "path": "{project}/regions/{region}/instanceGroupManagers",
129469	//   "response": {
129470	//     "$ref": "RegionInstanceGroupManagerList"
129471	//   },
129472	//   "scopes": [
129473	//     "https://www.googleapis.com/auth/cloud-platform",
129474	//     "https://www.googleapis.com/auth/compute",
129475	//     "https://www.googleapis.com/auth/compute.readonly"
129476	//   ]
129477	// }
129478
129479}
129480
129481// Pages invokes f for each page of results.
129482// A non-nil error returned from f will halt the iteration.
129483// The provided context supersedes any context provided to the Context method.
129484func (c *RegionInstanceGroupManagersListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagerList) error) error {
129485	c.ctx_ = ctx
129486	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
129487	for {
129488		x, err := c.Do()
129489		if err != nil {
129490			return err
129491		}
129492		if err := f(x); err != nil {
129493			return err
129494		}
129495		if x.NextPageToken == "" {
129496			return nil
129497		}
129498		c.PageToken(x.NextPageToken)
129499	}
129500}
129501
129502// method id "compute.regionInstanceGroupManagers.listErrors":
129503
129504type RegionInstanceGroupManagersListErrorsCall struct {
129505	s                    *Service
129506	project              string
129507	region               string
129508	instanceGroupManager string
129509	urlParams_           gensupport.URLParams
129510	ifNoneMatch_         string
129511	ctx_                 context.Context
129512	header_              http.Header
129513}
129514
129515// ListErrors: Lists all errors thrown by actions on instances for a
129516// given regional managed instance group.
129517func (r *RegionInstanceGroupManagersService) ListErrors(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListErrorsCall {
129518	c := &RegionInstanceGroupManagersListErrorsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129519	c.project = project
129520	c.region = region
129521	c.instanceGroupManager = instanceGroupManager
129522	return c
129523}
129524
129525// Filter sets the optional parameter "filter": A filter expression that
129526// filters resources listed in the response. The expression must specify
129527// the field name, a comparison operator, and the value that you want to
129528// use for filtering. The value must be a string, a number, or a
129529// boolean. The comparison operator must be either =, !=, >, or <.
129530//
129531// For example, if you are filtering Compute Engine instances, you can
129532// exclude instances named example-instance by specifying name !=
129533// example-instance.
129534//
129535// You can also filter nested fields. For example, you could specify
129536// scheduling.automaticRestart = false to include instances only if they
129537// are not scheduled for automatic restarts. You can use filtering on
129538// nested fields to filter based on resource labels.
129539//
129540// To filter on multiple expressions, provide each separate expression
129541// within parentheses. For example, (scheduling.automaticRestart = true)
129542// (cpuPlatform = "Intel Skylake"). By default, each expression is an
129543// AND expression. However, you can include AND and OR expressions
129544// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
129545// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
129546// true).
129547func (c *RegionInstanceGroupManagersListErrorsCall) Filter(filter string) *RegionInstanceGroupManagersListErrorsCall {
129548	c.urlParams_.Set("filter", filter)
129549	return c
129550}
129551
129552// MaxResults sets the optional parameter "maxResults": The maximum
129553// number of results per page that should be returned. If the number of
129554// available results is larger than maxResults, Compute Engine returns a
129555// nextPageToken that can be used to get the next page of results in
129556// subsequent list requests. Acceptable values are 0 to 500, inclusive.
129557// (Default: 500)
129558func (c *RegionInstanceGroupManagersListErrorsCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListErrorsCall {
129559	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
129560	return c
129561}
129562
129563// OrderBy sets the optional parameter "orderBy": Sorts list results by
129564// a certain order. By default, results are returned in alphanumerical
129565// order based on the resource name.
129566//
129567// You can also sort results in descending order based on the creation
129568// timestamp using orderBy="creationTimestamp desc". This sorts results
129569// based on the creationTimestamp field in reverse chronological order
129570// (newest result first). Use this to sort resources like operations so
129571// that the newest operation is returned first.
129572//
129573// Currently, only sorting by name or creationTimestamp desc is
129574// supported.
129575func (c *RegionInstanceGroupManagersListErrorsCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListErrorsCall {
129576	c.urlParams_.Set("orderBy", orderBy)
129577	return c
129578}
129579
129580// PageToken sets the optional parameter "pageToken": Specifies a page
129581// token to use. Set pageToken to the nextPageToken returned by a
129582// previous list request to get the next page of results.
129583func (c *RegionInstanceGroupManagersListErrorsCall) PageToken(pageToken string) *RegionInstanceGroupManagersListErrorsCall {
129584	c.urlParams_.Set("pageToken", pageToken)
129585	return c
129586}
129587
129588// Fields allows partial responses to be retrieved. See
129589// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129590// for more information.
129591func (c *RegionInstanceGroupManagersListErrorsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListErrorsCall {
129592	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129593	return c
129594}
129595
129596// IfNoneMatch sets the optional parameter which makes the operation
129597// fail if the object's ETag matches the given value. This is useful for
129598// getting updates only after the object has changed since the last
129599// request. Use googleapi.IsNotModified to check whether the response
129600// error from Do is the result of In-None-Match.
129601func (c *RegionInstanceGroupManagersListErrorsCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListErrorsCall {
129602	c.ifNoneMatch_ = entityTag
129603	return c
129604}
129605
129606// Context sets the context to be used in this call's Do method. Any
129607// pending HTTP request will be aborted if the provided context is
129608// canceled.
129609func (c *RegionInstanceGroupManagersListErrorsCall) Context(ctx context.Context) *RegionInstanceGroupManagersListErrorsCall {
129610	c.ctx_ = ctx
129611	return c
129612}
129613
129614// Header returns an http.Header that can be modified by the caller to
129615// add HTTP headers to the request.
129616func (c *RegionInstanceGroupManagersListErrorsCall) Header() http.Header {
129617	if c.header_ == nil {
129618		c.header_ = make(http.Header)
129619	}
129620	return c.header_
129621}
129622
129623func (c *RegionInstanceGroupManagersListErrorsCall) doRequest(alt string) (*http.Response, error) {
129624	reqHeaders := make(http.Header)
129625	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
129626	for k, v := range c.header_ {
129627		reqHeaders[k] = v
129628	}
129629	reqHeaders.Set("User-Agent", c.s.userAgent())
129630	if c.ifNoneMatch_ != "" {
129631		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
129632	}
129633	var body io.Reader = nil
129634	c.urlParams_.Set("alt", alt)
129635	c.urlParams_.Set("prettyPrint", "false")
129636	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors")
129637	urls += "?" + c.urlParams_.Encode()
129638	req, err := http.NewRequest("GET", urls, body)
129639	if err != nil {
129640		return nil, err
129641	}
129642	req.Header = reqHeaders
129643	googleapi.Expand(req.URL, map[string]string{
129644		"project":              c.project,
129645		"region":               c.region,
129646		"instanceGroupManager": c.instanceGroupManager,
129647	})
129648	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129649}
129650
129651// Do executes the "compute.regionInstanceGroupManagers.listErrors" call.
129652// Exactly one of *RegionInstanceGroupManagersListErrorsResponse or
129653// error will be non-nil. Any non-2xx status code is an error. Response
129654// headers are in either
129655// *RegionInstanceGroupManagersListErrorsResponse.ServerResponse.Header
129656// or (if a response was returned at all) in
129657// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
129658// whether the returned error was because http.StatusNotModified was
129659// returned.
129660func (c *RegionInstanceGroupManagersListErrorsCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListErrorsResponse, error) {
129661	gensupport.SetOptions(c.urlParams_, opts...)
129662	res, err := c.doRequest("json")
129663	if res != nil && res.StatusCode == http.StatusNotModified {
129664		if res.Body != nil {
129665			res.Body.Close()
129666		}
129667		return nil, &googleapi.Error{
129668			Code:   res.StatusCode,
129669			Header: res.Header,
129670		}
129671	}
129672	if err != nil {
129673		return nil, err
129674	}
129675	defer googleapi.CloseBody(res)
129676	if err := googleapi.CheckResponse(res); err != nil {
129677		return nil, err
129678	}
129679	ret := &RegionInstanceGroupManagersListErrorsResponse{
129680		ServerResponse: googleapi.ServerResponse{
129681			Header:         res.Header,
129682			HTTPStatusCode: res.StatusCode,
129683		},
129684	}
129685	target := &ret
129686	if err := gensupport.DecodeResponse(target, res); err != nil {
129687		return nil, err
129688	}
129689	return ret, nil
129690	// {
129691	//   "description": "Lists all errors thrown by actions on instances for a given regional managed instance group.",
129692	//   "httpMethod": "GET",
129693	//   "id": "compute.regionInstanceGroupManagers.listErrors",
129694	//   "parameterOrder": [
129695	//     "project",
129696	//     "region",
129697	//     "instanceGroupManager"
129698	//   ],
129699	//   "parameters": {
129700	//     "filter": {
129701	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
129702	//       "location": "query",
129703	//       "type": "string"
129704	//     },
129705	//     "instanceGroupManager": {
129706	//       "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}.",
129707	//       "location": "path",
129708	//       "required": true,
129709	//       "type": "string"
129710	//     },
129711	//     "maxResults": {
129712	//       "default": "500",
129713	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
129714	//       "format": "uint32",
129715	//       "location": "query",
129716	//       "minimum": "0",
129717	//       "type": "integer"
129718	//     },
129719	//     "orderBy": {
129720	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
129721	//       "location": "query",
129722	//       "type": "string"
129723	//     },
129724	//     "pageToken": {
129725	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
129726	//       "location": "query",
129727	//       "type": "string"
129728	//     },
129729	//     "project": {
129730	//       "description": "Project ID for this request.",
129731	//       "location": "path",
129732	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129733	//       "required": true,
129734	//       "type": "string"
129735	//     },
129736	//     "region": {
129737	//       "description": "Name of the region scoping this request. This should conform to RFC1035.",
129738	//       "location": "path",
129739	//       "required": true,
129740	//       "type": "string"
129741	//     }
129742	//   },
129743	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors",
129744	//   "response": {
129745	//     "$ref": "RegionInstanceGroupManagersListErrorsResponse"
129746	//   },
129747	//   "scopes": [
129748	//     "https://www.googleapis.com/auth/cloud-platform",
129749	//     "https://www.googleapis.com/auth/compute",
129750	//     "https://www.googleapis.com/auth/compute.readonly"
129751	//   ]
129752	// }
129753
129754}
129755
129756// Pages invokes f for each page of results.
129757// A non-nil error returned from f will halt the iteration.
129758// The provided context supersedes any context provided to the Context method.
129759func (c *RegionInstanceGroupManagersListErrorsCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListErrorsResponse) error) error {
129760	c.ctx_ = ctx
129761	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
129762	for {
129763		x, err := c.Do()
129764		if err != nil {
129765			return err
129766		}
129767		if err := f(x); err != nil {
129768			return err
129769		}
129770		if x.NextPageToken == "" {
129771			return nil
129772		}
129773		c.PageToken(x.NextPageToken)
129774	}
129775}
129776
129777// method id "compute.regionInstanceGroupManagers.listManagedInstances":
129778
129779type RegionInstanceGroupManagersListManagedInstancesCall struct {
129780	s                    *Service
129781	project              string
129782	region               string
129783	instanceGroupManager string
129784	urlParams_           gensupport.URLParams
129785	ctx_                 context.Context
129786	header_              http.Header
129787}
129788
129789// ListManagedInstances: Lists the instances in the managed instance
129790// group and instances that are scheduled to be created. The list
129791// includes any current actions that the group has scheduled for its
129792// instances.
129793func (r *RegionInstanceGroupManagersService) ListManagedInstances(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListManagedInstancesCall {
129794	c := &RegionInstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129795	c.project = project
129796	c.region = region
129797	c.instanceGroupManager = instanceGroupManager
129798	return c
129799}
129800
129801// Filter sets the optional parameter "filter": A filter expression that
129802// filters resources listed in the response. The expression must specify
129803// the field name, a comparison operator, and the value that you want to
129804// use for filtering. The value must be a string, a number, or a
129805// boolean. The comparison operator must be either =, !=, >, or <.
129806//
129807// For example, if you are filtering Compute Engine instances, you can
129808// exclude instances named example-instance by specifying name !=
129809// example-instance.
129810//
129811// You can also filter nested fields. For example, you could specify
129812// scheduling.automaticRestart = false to include instances only if they
129813// are not scheduled for automatic restarts. You can use filtering on
129814// nested fields to filter based on resource labels.
129815//
129816// To filter on multiple expressions, provide each separate expression
129817// within parentheses. For example, (scheduling.automaticRestart = true)
129818// (cpuPlatform = "Intel Skylake"). By default, each expression is an
129819// AND expression. However, you can include AND and OR expressions
129820// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
129821// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
129822// true).
129823func (c *RegionInstanceGroupManagersListManagedInstancesCall) Filter(filter string) *RegionInstanceGroupManagersListManagedInstancesCall {
129824	c.urlParams_.Set("filter", filter)
129825	return c
129826}
129827
129828// MaxResults sets the optional parameter "maxResults": The maximum
129829// number of results per page that should be returned. If the number of
129830// available results is larger than maxResults, Compute Engine returns a
129831// nextPageToken that can be used to get the next page of results in
129832// subsequent list requests. Acceptable values are 0 to 500, inclusive.
129833// (Default: 500)
129834func (c *RegionInstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListManagedInstancesCall {
129835	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
129836	return c
129837}
129838
129839// OrderBy sets the optional parameter "order_by": Sorts list results by
129840// a certain order. By default, results are returned in alphanumerical
129841// order based on the resource name.
129842//
129843// You can also sort results in descending order based on the creation
129844// timestamp using orderBy="creationTimestamp desc". This sorts results
129845// based on the creationTimestamp field in reverse chronological order
129846// (newest result first). Use this to sort resources like operations so
129847// that the newest operation is returned first.
129848//
129849// Currently, only sorting by name or creationTimestamp desc is
129850// supported.
129851func (c *RegionInstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListManagedInstancesCall {
129852	c.urlParams_.Set("order_by", orderBy)
129853	return c
129854}
129855
129856// PageToken sets the optional parameter "pageToken": Specifies a page
129857// token to use. Set pageToken to the nextPageToken returned by a
129858// previous list request to get the next page of results.
129859func (c *RegionInstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *RegionInstanceGroupManagersListManagedInstancesCall {
129860	c.urlParams_.Set("pageToken", pageToken)
129861	return c
129862}
129863
129864// Fields allows partial responses to be retrieved. See
129865// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129866// for more information.
129867func (c *RegionInstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListManagedInstancesCall {
129868	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129869	return c
129870}
129871
129872// Context sets the context to be used in this call's Do method. Any
129873// pending HTTP request will be aborted if the provided context is
129874// canceled.
129875func (c *RegionInstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersListManagedInstancesCall {
129876	c.ctx_ = ctx
129877	return c
129878}
129879
129880// Header returns an http.Header that can be modified by the caller to
129881// add HTTP headers to the request.
129882func (c *RegionInstanceGroupManagersListManagedInstancesCall) Header() http.Header {
129883	if c.header_ == nil {
129884		c.header_ = make(http.Header)
129885	}
129886	return c.header_
129887}
129888
129889func (c *RegionInstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) {
129890	reqHeaders := make(http.Header)
129891	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
129892	for k, v := range c.header_ {
129893		reqHeaders[k] = v
129894	}
129895	reqHeaders.Set("User-Agent", c.s.userAgent())
129896	var body io.Reader = nil
129897	c.urlParams_.Set("alt", alt)
129898	c.urlParams_.Set("prettyPrint", "false")
129899	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances")
129900	urls += "?" + c.urlParams_.Encode()
129901	req, err := http.NewRequest("POST", urls, body)
129902	if err != nil {
129903		return nil, err
129904	}
129905	req.Header = reqHeaders
129906	googleapi.Expand(req.URL, map[string]string{
129907		"project":              c.project,
129908		"region":               c.region,
129909		"instanceGroupManager": c.instanceGroupManager,
129910	})
129911	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129912}
129913
129914// Do executes the "compute.regionInstanceGroupManagers.listManagedInstances" call.
129915// Exactly one of *RegionInstanceGroupManagersListInstancesResponse or
129916// error will be non-nil. Any non-2xx status code is an error. Response
129917// headers are in either
129918// *RegionInstanceGroupManagersListInstancesResponse.ServerResponse.Heade
129919// r or (if a response was returned at all) in
129920// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
129921// whether the returned error was because http.StatusNotModified was
129922// returned.
129923func (c *RegionInstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListInstancesResponse, error) {
129924	gensupport.SetOptions(c.urlParams_, opts...)
129925	res, err := c.doRequest("json")
129926	if res != nil && res.StatusCode == http.StatusNotModified {
129927		if res.Body != nil {
129928			res.Body.Close()
129929		}
129930		return nil, &googleapi.Error{
129931			Code:   res.StatusCode,
129932			Header: res.Header,
129933		}
129934	}
129935	if err != nil {
129936		return nil, err
129937	}
129938	defer googleapi.CloseBody(res)
129939	if err := googleapi.CheckResponse(res); err != nil {
129940		return nil, err
129941	}
129942	ret := &RegionInstanceGroupManagersListInstancesResponse{
129943		ServerResponse: googleapi.ServerResponse{
129944			Header:         res.Header,
129945			HTTPStatusCode: res.StatusCode,
129946		},
129947	}
129948	target := &ret
129949	if err := gensupport.DecodeResponse(target, res); err != nil {
129950		return nil, err
129951	}
129952	return ret, nil
129953	// {
129954	//   "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.",
129955	//   "httpMethod": "POST",
129956	//   "id": "compute.regionInstanceGroupManagers.listManagedInstances",
129957	//   "parameterOrder": [
129958	//     "project",
129959	//     "region",
129960	//     "instanceGroupManager"
129961	//   ],
129962	//   "parameters": {
129963	//     "filter": {
129964	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
129965	//       "location": "query",
129966	//       "type": "string"
129967	//     },
129968	//     "instanceGroupManager": {
129969	//       "description": "The name of the managed instance group.",
129970	//       "location": "path",
129971	//       "required": true,
129972	//       "type": "string"
129973	//     },
129974	//     "maxResults": {
129975	//       "default": "500",
129976	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
129977	//       "format": "uint32",
129978	//       "location": "query",
129979	//       "minimum": "0",
129980	//       "type": "integer"
129981	//     },
129982	//     "order_by": {
129983	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
129984	//       "location": "query",
129985	//       "type": "string"
129986	//     },
129987	//     "pageToken": {
129988	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
129989	//       "location": "query",
129990	//       "type": "string"
129991	//     },
129992	//     "project": {
129993	//       "description": "Project ID for this request.",
129994	//       "location": "path",
129995	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129996	//       "required": true,
129997	//       "type": "string"
129998	//     },
129999	//     "region": {
130000	//       "description": "Name of the region scoping this request.",
130001	//       "location": "path",
130002	//       "required": true,
130003	//       "type": "string"
130004	//     }
130005	//   },
130006	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
130007	//   "response": {
130008	//     "$ref": "RegionInstanceGroupManagersListInstancesResponse"
130009	//   },
130010	//   "scopes": [
130011	//     "https://www.googleapis.com/auth/cloud-platform",
130012	//     "https://www.googleapis.com/auth/compute",
130013	//     "https://www.googleapis.com/auth/compute.readonly"
130014	//   ]
130015	// }
130016
130017}
130018
130019// Pages invokes f for each page of results.
130020// A non-nil error returned from f will halt the iteration.
130021// The provided context supersedes any context provided to the Context method.
130022func (c *RegionInstanceGroupManagersListManagedInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListInstancesResponse) error) error {
130023	c.ctx_ = ctx
130024	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
130025	for {
130026		x, err := c.Do()
130027		if err != nil {
130028			return err
130029		}
130030		if err := f(x); err != nil {
130031			return err
130032		}
130033		if x.NextPageToken == "" {
130034			return nil
130035		}
130036		c.PageToken(x.NextPageToken)
130037	}
130038}
130039
130040// method id "compute.regionInstanceGroupManagers.listPerInstanceConfigs":
130041
130042type RegionInstanceGroupManagersListPerInstanceConfigsCall struct {
130043	s                    *Service
130044	project              string
130045	region               string
130046	instanceGroupManager string
130047	urlParams_           gensupport.URLParams
130048	ctx_                 context.Context
130049	header_              http.Header
130050}
130051
130052// ListPerInstanceConfigs: Lists all of the per-instance configs defined
130053// for the managed instance group.
130054func (r *RegionInstanceGroupManagersService) ListPerInstanceConfigs(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
130055	c := &RegionInstanceGroupManagersListPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130056	c.project = project
130057	c.region = region
130058	c.instanceGroupManager = instanceGroupManager
130059	return c
130060}
130061
130062// Filter sets the optional parameter "filter": A filter expression that
130063// filters resources listed in the response. The expression must specify
130064// the field name, a comparison operator, and the value that you want to
130065// use for filtering. The value must be a string, a number, or a
130066// boolean. The comparison operator must be either =, !=, >, or <.
130067//
130068// For example, if you are filtering Compute Engine instances, you can
130069// exclude instances named example-instance by specifying name !=
130070// example-instance.
130071//
130072// You can also filter nested fields. For example, you could specify
130073// scheduling.automaticRestart = false to include instances only if they
130074// are not scheduled for automatic restarts. You can use filtering on
130075// nested fields to filter based on resource labels.
130076//
130077// To filter on multiple expressions, provide each separate expression
130078// within parentheses. For example, (scheduling.automaticRestart = true)
130079// (cpuPlatform = "Intel Skylake"). By default, each expression is an
130080// AND expression. However, you can include AND and OR expressions
130081// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
130082// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
130083// true).
130084func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Filter(filter string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
130085	c.urlParams_.Set("filter", filter)
130086	return c
130087}
130088
130089// MaxResults sets the optional parameter "maxResults": The maximum
130090// number of results per page that should be returned. If the number of
130091// available results is larger than maxResults, Compute Engine returns a
130092// nextPageToken that can be used to get the next page of results in
130093// subsequent list requests. Acceptable values are 0 to 500, inclusive.
130094// (Default: 500)
130095func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
130096	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
130097	return c
130098}
130099
130100// OrderBy sets the optional parameter "orderBy": Sorts list results by
130101// a certain order. By default, results are returned in alphanumerical
130102// order based on the resource name.
130103//
130104// You can also sort results in descending order based on the creation
130105// timestamp using orderBy="creationTimestamp desc". This sorts results
130106// based on the creationTimestamp field in reverse chronological order
130107// (newest result first). Use this to sort resources like operations so
130108// that the newest operation is returned first.
130109//
130110// Currently, only sorting by name or creationTimestamp desc is
130111// supported.
130112func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
130113	c.urlParams_.Set("orderBy", orderBy)
130114	return c
130115}
130116
130117// PageToken sets the optional parameter "pageToken": Specifies a page
130118// token to use. Set pageToken to the nextPageToken returned by a
130119// previous list request to get the next page of results.
130120func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) PageToken(pageToken string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
130121	c.urlParams_.Set("pageToken", pageToken)
130122	return c
130123}
130124
130125// Fields allows partial responses to be retrieved. See
130126// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130127// for more information.
130128func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
130129	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130130	return c
130131}
130132
130133// Context sets the context to be used in this call's Do method. Any
130134// pending HTTP request will be aborted if the provided context is
130135// canceled.
130136func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
130137	c.ctx_ = ctx
130138	return c
130139}
130140
130141// Header returns an http.Header that can be modified by the caller to
130142// add HTTP headers to the request.
130143func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Header() http.Header {
130144	if c.header_ == nil {
130145		c.header_ = make(http.Header)
130146	}
130147	return c.header_
130148}
130149
130150func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
130151	reqHeaders := make(http.Header)
130152	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
130153	for k, v := range c.header_ {
130154		reqHeaders[k] = v
130155	}
130156	reqHeaders.Set("User-Agent", c.s.userAgent())
130157	var body io.Reader = nil
130158	c.urlParams_.Set("alt", alt)
130159	c.urlParams_.Set("prettyPrint", "false")
130160	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs")
130161	urls += "?" + c.urlParams_.Encode()
130162	req, err := http.NewRequest("POST", urls, body)
130163	if err != nil {
130164		return nil, err
130165	}
130166	req.Header = reqHeaders
130167	googleapi.Expand(req.URL, map[string]string{
130168		"project":              c.project,
130169		"region":               c.region,
130170		"instanceGroupManager": c.instanceGroupManager,
130171	})
130172	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130173}
130174
130175// Do executes the "compute.regionInstanceGroupManagers.listPerInstanceConfigs" call.
130176// Exactly one of *RegionInstanceGroupManagersListInstanceConfigsResp or
130177// error will be non-nil. Any non-2xx status code is an error. Response
130178// headers are in either
130179// *RegionInstanceGroupManagersListInstanceConfigsResp.ServerResponse.Hea
130180// der or (if a response was returned at all) in
130181// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
130182// whether the returned error was because http.StatusNotModified was
130183// returned.
130184func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListInstanceConfigsResp, error) {
130185	gensupport.SetOptions(c.urlParams_, opts...)
130186	res, err := c.doRequest("json")
130187	if res != nil && res.StatusCode == http.StatusNotModified {
130188		if res.Body != nil {
130189			res.Body.Close()
130190		}
130191		return nil, &googleapi.Error{
130192			Code:   res.StatusCode,
130193			Header: res.Header,
130194		}
130195	}
130196	if err != nil {
130197		return nil, err
130198	}
130199	defer googleapi.CloseBody(res)
130200	if err := googleapi.CheckResponse(res); err != nil {
130201		return nil, err
130202	}
130203	ret := &RegionInstanceGroupManagersListInstanceConfigsResp{
130204		ServerResponse: googleapi.ServerResponse{
130205			Header:         res.Header,
130206			HTTPStatusCode: res.StatusCode,
130207		},
130208	}
130209	target := &ret
130210	if err := gensupport.DecodeResponse(target, res); err != nil {
130211		return nil, err
130212	}
130213	return ret, nil
130214	// {
130215	//   "description": "Lists all of the per-instance configs defined for the managed instance group.",
130216	//   "httpMethod": "POST",
130217	//   "id": "compute.regionInstanceGroupManagers.listPerInstanceConfigs",
130218	//   "parameterOrder": [
130219	//     "project",
130220	//     "region",
130221	//     "instanceGroupManager"
130222	//   ],
130223	//   "parameters": {
130224	//     "filter": {
130225	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
130226	//       "location": "query",
130227	//       "type": "string"
130228	//     },
130229	//     "instanceGroupManager": {
130230	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
130231	//       "location": "path",
130232	//       "required": true,
130233	//       "type": "string"
130234	//     },
130235	//     "maxResults": {
130236	//       "default": "500",
130237	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
130238	//       "format": "uint32",
130239	//       "location": "query",
130240	//       "minimum": "0",
130241	//       "type": "integer"
130242	//     },
130243	//     "orderBy": {
130244	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
130245	//       "location": "query",
130246	//       "type": "string"
130247	//     },
130248	//     "pageToken": {
130249	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
130250	//       "location": "query",
130251	//       "type": "string"
130252	//     },
130253	//     "project": {
130254	//       "description": "Project ID for this request.",
130255	//       "location": "path",
130256	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130257	//       "required": true,
130258	//       "type": "string"
130259	//     },
130260	//     "region": {
130261	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
130262	//       "location": "path",
130263	//       "required": true,
130264	//       "type": "string"
130265	//     }
130266	//   },
130267	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs",
130268	//   "response": {
130269	//     "$ref": "RegionInstanceGroupManagersListInstanceConfigsResp"
130270	//   },
130271	//   "scopes": [
130272	//     "https://www.googleapis.com/auth/cloud-platform",
130273	//     "https://www.googleapis.com/auth/compute",
130274	//     "https://www.googleapis.com/auth/compute.readonly"
130275	//   ]
130276	// }
130277
130278}
130279
130280// Pages invokes f for each page of results.
130281// A non-nil error returned from f will halt the iteration.
130282// The provided context supersedes any context provided to the Context method.
130283func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListInstanceConfigsResp) error) error {
130284	c.ctx_ = ctx
130285	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
130286	for {
130287		x, err := c.Do()
130288		if err != nil {
130289			return err
130290		}
130291		if err := f(x); err != nil {
130292			return err
130293		}
130294		if x.NextPageToken == "" {
130295			return nil
130296		}
130297		c.PageToken(x.NextPageToken)
130298	}
130299}
130300
130301// method id "compute.regionInstanceGroupManagers.patch":
130302
130303type RegionInstanceGroupManagersPatchCall struct {
130304	s                    *Service
130305	project              string
130306	region               string
130307	instanceGroupManager string
130308	instancegroupmanager *InstanceGroupManager
130309	urlParams_           gensupport.URLParams
130310	ctx_                 context.Context
130311	header_              http.Header
130312}
130313
130314// Patch: Updates a managed instance group using the information that
130315// you specify in the request. This operation is marked as DONE when the
130316// group is patched even if the instances in the group are still in the
130317// process of being patched. You must separately verify the status of
130318// the individual instances with the listmanagedinstances method. This
130319// method supports PATCH semantics and uses the JSON merge patch format
130320// and processing rules.
130321func (r *RegionInstanceGroupManagersService) Patch(project string, region string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersPatchCall {
130322	c := &RegionInstanceGroupManagersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130323	c.project = project
130324	c.region = region
130325	c.instanceGroupManager = instanceGroupManager
130326	c.instancegroupmanager = instancegroupmanager
130327	return c
130328}
130329
130330// RequestId sets the optional parameter "requestId": An optional
130331// request ID to identify requests. Specify a unique request ID so that
130332// if you must retry your request, the server will know to ignore the
130333// request if it has already been completed.
130334//
130335// For example, consider a situation where you make an initial request
130336// and the request times out. If you make the request again with the
130337// same request ID, the server can check if original operation with the
130338// same request ID was received, and if so, will ignore the second
130339// request. This prevents clients from accidentally creating duplicate
130340// commitments.
130341//
130342// The request ID must be a valid UUID with the exception that zero UUID
130343// is not supported (00000000-0000-0000-0000-000000000000).
130344func (c *RegionInstanceGroupManagersPatchCall) RequestId(requestId string) *RegionInstanceGroupManagersPatchCall {
130345	c.urlParams_.Set("requestId", requestId)
130346	return c
130347}
130348
130349// Fields allows partial responses to be retrieved. See
130350// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130351// for more information.
130352func (c *RegionInstanceGroupManagersPatchCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersPatchCall {
130353	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130354	return c
130355}
130356
130357// Context sets the context to be used in this call's Do method. Any
130358// pending HTTP request will be aborted if the provided context is
130359// canceled.
130360func (c *RegionInstanceGroupManagersPatchCall) Context(ctx context.Context) *RegionInstanceGroupManagersPatchCall {
130361	c.ctx_ = ctx
130362	return c
130363}
130364
130365// Header returns an http.Header that can be modified by the caller to
130366// add HTTP headers to the request.
130367func (c *RegionInstanceGroupManagersPatchCall) Header() http.Header {
130368	if c.header_ == nil {
130369		c.header_ = make(http.Header)
130370	}
130371	return c.header_
130372}
130373
130374func (c *RegionInstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, error) {
130375	reqHeaders := make(http.Header)
130376	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
130377	for k, v := range c.header_ {
130378		reqHeaders[k] = v
130379	}
130380	reqHeaders.Set("User-Agent", c.s.userAgent())
130381	var body io.Reader = nil
130382	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
130383	if err != nil {
130384		return nil, err
130385	}
130386	reqHeaders.Set("Content-Type", "application/json")
130387	c.urlParams_.Set("alt", alt)
130388	c.urlParams_.Set("prettyPrint", "false")
130389	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
130390	urls += "?" + c.urlParams_.Encode()
130391	req, err := http.NewRequest("PATCH", urls, body)
130392	if err != nil {
130393		return nil, err
130394	}
130395	req.Header = reqHeaders
130396	googleapi.Expand(req.URL, map[string]string{
130397		"project":              c.project,
130398		"region":               c.region,
130399		"instanceGroupManager": c.instanceGroupManager,
130400	})
130401	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130402}
130403
130404// Do executes the "compute.regionInstanceGroupManagers.patch" call.
130405// Exactly one of *Operation or error will be non-nil. Any non-2xx
130406// status code is an error. Response headers are in either
130407// *Operation.ServerResponse.Header or (if a response was returned at
130408// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130409// to check whether the returned error was because
130410// http.StatusNotModified was returned.
130411func (c *RegionInstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130412	gensupport.SetOptions(c.urlParams_, opts...)
130413	res, err := c.doRequest("json")
130414	if res != nil && res.StatusCode == http.StatusNotModified {
130415		if res.Body != nil {
130416			res.Body.Close()
130417		}
130418		return nil, &googleapi.Error{
130419			Code:   res.StatusCode,
130420			Header: res.Header,
130421		}
130422	}
130423	if err != nil {
130424		return nil, err
130425	}
130426	defer googleapi.CloseBody(res)
130427	if err := googleapi.CheckResponse(res); err != nil {
130428		return nil, err
130429	}
130430	ret := &Operation{
130431		ServerResponse: googleapi.ServerResponse{
130432			Header:         res.Header,
130433			HTTPStatusCode: res.StatusCode,
130434		},
130435	}
130436	target := &ret
130437	if err := gensupport.DecodeResponse(target, res); err != nil {
130438		return nil, err
130439	}
130440	return ret, nil
130441	// {
130442	//   "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.",
130443	//   "httpMethod": "PATCH",
130444	//   "id": "compute.regionInstanceGroupManagers.patch",
130445	//   "parameterOrder": [
130446	//     "project",
130447	//     "region",
130448	//     "instanceGroupManager"
130449	//   ],
130450	//   "parameters": {
130451	//     "instanceGroupManager": {
130452	//       "description": "The name of the instance group manager.",
130453	//       "location": "path",
130454	//       "required": true,
130455	//       "type": "string"
130456	//     },
130457	//     "project": {
130458	//       "description": "Project ID for this request.",
130459	//       "location": "path",
130460	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130461	//       "required": true,
130462	//       "type": "string"
130463	//     },
130464	//     "region": {
130465	//       "description": "Name of the region scoping this request.",
130466	//       "location": "path",
130467	//       "required": true,
130468	//       "type": "string"
130469	//     },
130470	//     "requestId": {
130471	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
130472	//       "location": "query",
130473	//       "type": "string"
130474	//     }
130475	//   },
130476	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
130477	//   "request": {
130478	//     "$ref": "InstanceGroupManager"
130479	//   },
130480	//   "response": {
130481	//     "$ref": "Operation"
130482	//   },
130483	//   "scopes": [
130484	//     "https://www.googleapis.com/auth/cloud-platform",
130485	//     "https://www.googleapis.com/auth/compute"
130486	//   ]
130487	// }
130488
130489}
130490
130491// method id "compute.regionInstanceGroupManagers.patchPerInstanceConfigs":
130492
130493type RegionInstanceGroupManagersPatchPerInstanceConfigsCall struct {
130494	s                                                *Service
130495	project                                          string
130496	region                                           string
130497	instanceGroupManager                             string
130498	regioninstancegroupmanagerpatchinstanceconfigreq *RegionInstanceGroupManagerPatchInstanceConfigReq
130499	urlParams_                                       gensupport.URLParams
130500	ctx_                                             context.Context
130501	header_                                          http.Header
130502}
130503
130504// PatchPerInstanceConfigs: Insert or patch (for the ones that already
130505// exist) per-instance configs for the managed instance group.
130506// perInstanceConfig.instance serves as a key used to distinguish
130507// whether to perform insert or patch.
130508func (r *RegionInstanceGroupManagersService) PatchPerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerpatchinstanceconfigreq *RegionInstanceGroupManagerPatchInstanceConfigReq) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
130509	c := &RegionInstanceGroupManagersPatchPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130510	c.project = project
130511	c.region = region
130512	c.instanceGroupManager = instanceGroupManager
130513	c.regioninstancegroupmanagerpatchinstanceconfigreq = regioninstancegroupmanagerpatchinstanceconfigreq
130514	return c
130515}
130516
130517// RequestId sets the optional parameter "requestId": An optional
130518// request ID to identify requests. Specify a unique request ID so that
130519// if you must retry your request, the server will know to ignore the
130520// request if it has already been completed.
130521//
130522// For example, consider a situation where you make an initial request
130523// and the request times out. If you make the request again with the
130524// same request ID, the server can check if original operation with the
130525// same request ID was received, and if so, will ignore the second
130526// request. This prevents clients from accidentally creating duplicate
130527// commitments.
130528//
130529// The request ID must be a valid UUID with the exception that zero UUID
130530// is not supported (00000000-0000-0000-0000-000000000000).
130531func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) RequestId(requestId string) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
130532	c.urlParams_.Set("requestId", requestId)
130533	return c
130534}
130535
130536// Fields allows partial responses to be retrieved. See
130537// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130538// for more information.
130539func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
130540	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130541	return c
130542}
130543
130544// Context sets the context to be used in this call's Do method. Any
130545// pending HTTP request will be aborted if the provided context is
130546// canceled.
130547func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
130548	c.ctx_ = ctx
130549	return c
130550}
130551
130552// Header returns an http.Header that can be modified by the caller to
130553// add HTTP headers to the request.
130554func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Header() http.Header {
130555	if c.header_ == nil {
130556		c.header_ = make(http.Header)
130557	}
130558	return c.header_
130559}
130560
130561func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
130562	reqHeaders := make(http.Header)
130563	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
130564	for k, v := range c.header_ {
130565		reqHeaders[k] = v
130566	}
130567	reqHeaders.Set("User-Agent", c.s.userAgent())
130568	var body io.Reader = nil
130569	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerpatchinstanceconfigreq)
130570	if err != nil {
130571		return nil, err
130572	}
130573	reqHeaders.Set("Content-Type", "application/json")
130574	c.urlParams_.Set("alt", alt)
130575	c.urlParams_.Set("prettyPrint", "false")
130576	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs")
130577	urls += "?" + c.urlParams_.Encode()
130578	req, err := http.NewRequest("POST", urls, body)
130579	if err != nil {
130580		return nil, err
130581	}
130582	req.Header = reqHeaders
130583	googleapi.Expand(req.URL, map[string]string{
130584		"project":              c.project,
130585		"region":               c.region,
130586		"instanceGroupManager": c.instanceGroupManager,
130587	})
130588	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130589}
130590
130591// Do executes the "compute.regionInstanceGroupManagers.patchPerInstanceConfigs" call.
130592// Exactly one of *Operation or error will be non-nil. Any non-2xx
130593// status code is an error. Response headers are in either
130594// *Operation.ServerResponse.Header or (if a response was returned at
130595// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130596// to check whether the returned error was because
130597// http.StatusNotModified was returned.
130598func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130599	gensupport.SetOptions(c.urlParams_, opts...)
130600	res, err := c.doRequest("json")
130601	if res != nil && res.StatusCode == http.StatusNotModified {
130602		if res.Body != nil {
130603			res.Body.Close()
130604		}
130605		return nil, &googleapi.Error{
130606			Code:   res.StatusCode,
130607			Header: res.Header,
130608		}
130609	}
130610	if err != nil {
130611		return nil, err
130612	}
130613	defer googleapi.CloseBody(res)
130614	if err := googleapi.CheckResponse(res); err != nil {
130615		return nil, err
130616	}
130617	ret := &Operation{
130618		ServerResponse: googleapi.ServerResponse{
130619			Header:         res.Header,
130620			HTTPStatusCode: res.StatusCode,
130621		},
130622	}
130623	target := &ret
130624	if err := gensupport.DecodeResponse(target, res); err != nil {
130625		return nil, err
130626	}
130627	return ret, nil
130628	// {
130629	//   "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.",
130630	//   "httpMethod": "POST",
130631	//   "id": "compute.regionInstanceGroupManagers.patchPerInstanceConfigs",
130632	//   "parameterOrder": [
130633	//     "project",
130634	//     "region",
130635	//     "instanceGroupManager"
130636	//   ],
130637	//   "parameters": {
130638	//     "instanceGroupManager": {
130639	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
130640	//       "location": "path",
130641	//       "required": true,
130642	//       "type": "string"
130643	//     },
130644	//     "project": {
130645	//       "description": "Project ID for this request.",
130646	//       "location": "path",
130647	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130648	//       "required": true,
130649	//       "type": "string"
130650	//     },
130651	//     "region": {
130652	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
130653	//       "location": "path",
130654	//       "required": true,
130655	//       "type": "string"
130656	//     },
130657	//     "requestId": {
130658	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
130659	//       "location": "query",
130660	//       "type": "string"
130661	//     }
130662	//   },
130663	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs",
130664	//   "request": {
130665	//     "$ref": "RegionInstanceGroupManagerPatchInstanceConfigReq"
130666	//   },
130667	//   "response": {
130668	//     "$ref": "Operation"
130669	//   },
130670	//   "scopes": [
130671	//     "https://www.googleapis.com/auth/cloud-platform",
130672	//     "https://www.googleapis.com/auth/compute"
130673	//   ]
130674	// }
130675
130676}
130677
130678// method id "compute.regionInstanceGroupManagers.recreateInstances":
130679
130680type RegionInstanceGroupManagersRecreateInstancesCall struct {
130681	s                                          *Service
130682	project                                    string
130683	region                                     string
130684	instanceGroupManager                       string
130685	regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest
130686	urlParams_                                 gensupport.URLParams
130687	ctx_                                       context.Context
130688	header_                                    http.Header
130689}
130690
130691// RecreateInstances: Flags the specified instances in the managed
130692// instance group to be immediately recreated. The instances are deleted
130693// and recreated using the current instance template for the managed
130694// instance group. This operation is marked as DONE when the flag is set
130695// even if the instances have not yet been recreated. You must
130696// separately verify the status of the recreating action with the
130697// listmanagedinstances method.
130698//
130699// If the group is part of a backend service that has enabled connection
130700// draining, it can take up to 60 seconds after the connection draining
130701// duration has elapsed before the VM instance is removed or
130702// deleted.
130703//
130704// You can specify a maximum of 1000 instances with this method per
130705// request.
130706func (r *RegionInstanceGroupManagersService) RecreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest) *RegionInstanceGroupManagersRecreateInstancesCall {
130707	c := &RegionInstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130708	c.project = project
130709	c.region = region
130710	c.instanceGroupManager = instanceGroupManager
130711	c.regioninstancegroupmanagersrecreaterequest = regioninstancegroupmanagersrecreaterequest
130712	return c
130713}
130714
130715// RequestId sets the optional parameter "requestId": An optional
130716// request ID to identify requests. Specify a unique request ID so that
130717// if you must retry your request, the server will know to ignore the
130718// request if it has already been completed.
130719//
130720// For example, consider a situation where you make an initial request
130721// and the request times out. If you make the request again with the
130722// same request ID, the server can check if original operation with the
130723// same request ID was received, and if so, will ignore the second
130724// request. This prevents clients from accidentally creating duplicate
130725// commitments.
130726//
130727// The request ID must be a valid UUID with the exception that zero UUID
130728// is not supported (00000000-0000-0000-0000-000000000000).
130729func (c *RegionInstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersRecreateInstancesCall {
130730	c.urlParams_.Set("requestId", requestId)
130731	return c
130732}
130733
130734// Fields allows partial responses to be retrieved. See
130735// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130736// for more information.
130737func (c *RegionInstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersRecreateInstancesCall {
130738	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130739	return c
130740}
130741
130742// Context sets the context to be used in this call's Do method. Any
130743// pending HTTP request will be aborted if the provided context is
130744// canceled.
130745func (c *RegionInstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersRecreateInstancesCall {
130746	c.ctx_ = ctx
130747	return c
130748}
130749
130750// Header returns an http.Header that can be modified by the caller to
130751// add HTTP headers to the request.
130752func (c *RegionInstanceGroupManagersRecreateInstancesCall) Header() http.Header {
130753	if c.header_ == nil {
130754		c.header_ = make(http.Header)
130755	}
130756	return c.header_
130757}
130758
130759func (c *RegionInstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) {
130760	reqHeaders := make(http.Header)
130761	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
130762	for k, v := range c.header_ {
130763		reqHeaders[k] = v
130764	}
130765	reqHeaders.Set("User-Agent", c.s.userAgent())
130766	var body io.Reader = nil
130767	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersrecreaterequest)
130768	if err != nil {
130769		return nil, err
130770	}
130771	reqHeaders.Set("Content-Type", "application/json")
130772	c.urlParams_.Set("alt", alt)
130773	c.urlParams_.Set("prettyPrint", "false")
130774	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances")
130775	urls += "?" + c.urlParams_.Encode()
130776	req, err := http.NewRequest("POST", urls, body)
130777	if err != nil {
130778		return nil, err
130779	}
130780	req.Header = reqHeaders
130781	googleapi.Expand(req.URL, map[string]string{
130782		"project":              c.project,
130783		"region":               c.region,
130784		"instanceGroupManager": c.instanceGroupManager,
130785	})
130786	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130787}
130788
130789// Do executes the "compute.regionInstanceGroupManagers.recreateInstances" call.
130790// Exactly one of *Operation or error will be non-nil. Any non-2xx
130791// status code is an error. Response headers are in either
130792// *Operation.ServerResponse.Header or (if a response was returned at
130793// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130794// to check whether the returned error was because
130795// http.StatusNotModified was returned.
130796func (c *RegionInstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130797	gensupport.SetOptions(c.urlParams_, opts...)
130798	res, err := c.doRequest("json")
130799	if res != nil && res.StatusCode == http.StatusNotModified {
130800		if res.Body != nil {
130801			res.Body.Close()
130802		}
130803		return nil, &googleapi.Error{
130804			Code:   res.StatusCode,
130805			Header: res.Header,
130806		}
130807	}
130808	if err != nil {
130809		return nil, err
130810	}
130811	defer googleapi.CloseBody(res)
130812	if err := googleapi.CheckResponse(res); err != nil {
130813		return nil, err
130814	}
130815	ret := &Operation{
130816		ServerResponse: googleapi.ServerResponse{
130817			Header:         res.Header,
130818			HTTPStatusCode: res.StatusCode,
130819		},
130820	}
130821	target := &ret
130822	if err := gensupport.DecodeResponse(target, res); err != nil {
130823		return nil, err
130824	}
130825	return ret, nil
130826	// {
130827	//   "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.",
130828	//   "httpMethod": "POST",
130829	//   "id": "compute.regionInstanceGroupManagers.recreateInstances",
130830	//   "parameterOrder": [
130831	//     "project",
130832	//     "region",
130833	//     "instanceGroupManager"
130834	//   ],
130835	//   "parameters": {
130836	//     "instanceGroupManager": {
130837	//       "description": "Name of the managed instance group.",
130838	//       "location": "path",
130839	//       "required": true,
130840	//       "type": "string"
130841	//     },
130842	//     "project": {
130843	//       "description": "Project ID for this request.",
130844	//       "location": "path",
130845	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130846	//       "required": true,
130847	//       "type": "string"
130848	//     },
130849	//     "region": {
130850	//       "description": "Name of the region scoping this request.",
130851	//       "location": "path",
130852	//       "required": true,
130853	//       "type": "string"
130854	//     },
130855	//     "requestId": {
130856	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
130857	//       "location": "query",
130858	//       "type": "string"
130859	//     }
130860	//   },
130861	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
130862	//   "request": {
130863	//     "$ref": "RegionInstanceGroupManagersRecreateRequest"
130864	//   },
130865	//   "response": {
130866	//     "$ref": "Operation"
130867	//   },
130868	//   "scopes": [
130869	//     "https://www.googleapis.com/auth/cloud-platform",
130870	//     "https://www.googleapis.com/auth/compute"
130871	//   ]
130872	// }
130873
130874}
130875
130876// method id "compute.regionInstanceGroupManagers.resize":
130877
130878type RegionInstanceGroupManagersResizeCall struct {
130879	s                    *Service
130880	project              string
130881	region               string
130882	instanceGroupManager string
130883	urlParams_           gensupport.URLParams
130884	ctx_                 context.Context
130885	header_              http.Header
130886}
130887
130888// Resize: Changes the intended size of the managed instance group. If
130889// you increase the size, the group creates new instances using the
130890// current instance template. If you decrease the size, the group
130891// deletes one or more instances.
130892//
130893// The resize operation is marked DONE if the resize request is
130894// successful. The underlying actions take additional time. You must
130895// separately verify the status of the creating or deleting actions with
130896// the listmanagedinstances method.
130897//
130898// If the group is part of a backend service that has enabled connection
130899// draining, it can take up to 60 seconds after the connection draining
130900// duration has elapsed before the VM instance is removed or deleted.
130901func (r *RegionInstanceGroupManagersService) Resize(project string, region string, instanceGroupManager string, size int64) *RegionInstanceGroupManagersResizeCall {
130902	c := &RegionInstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130903	c.project = project
130904	c.region = region
130905	c.instanceGroupManager = instanceGroupManager
130906	c.urlParams_.Set("size", fmt.Sprint(size))
130907	return c
130908}
130909
130910// RequestId sets the optional parameter "requestId": An optional
130911// request ID to identify requests. Specify a unique request ID so that
130912// if you must retry your request, the server will know to ignore the
130913// request if it has already been completed.
130914//
130915// For example, consider a situation where you make an initial request
130916// and the request times out. If you make the request again with the
130917// same request ID, the server can check if original operation with the
130918// same request ID was received, and if so, will ignore the second
130919// request. This prevents clients from accidentally creating duplicate
130920// commitments.
130921//
130922// The request ID must be a valid UUID with the exception that zero UUID
130923// is not supported (00000000-0000-0000-0000-000000000000).
130924func (c *RegionInstanceGroupManagersResizeCall) RequestId(requestId string) *RegionInstanceGroupManagersResizeCall {
130925	c.urlParams_.Set("requestId", requestId)
130926	return c
130927}
130928
130929// Fields allows partial responses to be retrieved. See
130930// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130931// for more information.
130932func (c *RegionInstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersResizeCall {
130933	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130934	return c
130935}
130936
130937// Context sets the context to be used in this call's Do method. Any
130938// pending HTTP request will be aborted if the provided context is
130939// canceled.
130940func (c *RegionInstanceGroupManagersResizeCall) Context(ctx context.Context) *RegionInstanceGroupManagersResizeCall {
130941	c.ctx_ = ctx
130942	return c
130943}
130944
130945// Header returns an http.Header that can be modified by the caller to
130946// add HTTP headers to the request.
130947func (c *RegionInstanceGroupManagersResizeCall) Header() http.Header {
130948	if c.header_ == nil {
130949		c.header_ = make(http.Header)
130950	}
130951	return c.header_
130952}
130953
130954func (c *RegionInstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) {
130955	reqHeaders := make(http.Header)
130956	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
130957	for k, v := range c.header_ {
130958		reqHeaders[k] = v
130959	}
130960	reqHeaders.Set("User-Agent", c.s.userAgent())
130961	var body io.Reader = nil
130962	c.urlParams_.Set("alt", alt)
130963	c.urlParams_.Set("prettyPrint", "false")
130964	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize")
130965	urls += "?" + c.urlParams_.Encode()
130966	req, err := http.NewRequest("POST", urls, body)
130967	if err != nil {
130968		return nil, err
130969	}
130970	req.Header = reqHeaders
130971	googleapi.Expand(req.URL, map[string]string{
130972		"project":              c.project,
130973		"region":               c.region,
130974		"instanceGroupManager": c.instanceGroupManager,
130975	})
130976	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130977}
130978
130979// Do executes the "compute.regionInstanceGroupManagers.resize" call.
130980// Exactly one of *Operation or error will be non-nil. Any non-2xx
130981// status code is an error. Response headers are in either
130982// *Operation.ServerResponse.Header or (if a response was returned at
130983// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130984// to check whether the returned error was because
130985// http.StatusNotModified was returned.
130986func (c *RegionInstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130987	gensupport.SetOptions(c.urlParams_, opts...)
130988	res, err := c.doRequest("json")
130989	if res != nil && res.StatusCode == http.StatusNotModified {
130990		if res.Body != nil {
130991			res.Body.Close()
130992		}
130993		return nil, &googleapi.Error{
130994			Code:   res.StatusCode,
130995			Header: res.Header,
130996		}
130997	}
130998	if err != nil {
130999		return nil, err
131000	}
131001	defer googleapi.CloseBody(res)
131002	if err := googleapi.CheckResponse(res); err != nil {
131003		return nil, err
131004	}
131005	ret := &Operation{
131006		ServerResponse: googleapi.ServerResponse{
131007			Header:         res.Header,
131008			HTTPStatusCode: res.StatusCode,
131009		},
131010	}
131011	target := &ret
131012	if err := gensupport.DecodeResponse(target, res); err != nil {
131013		return nil, err
131014	}
131015	return ret, nil
131016	// {
131017	//   "description": "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.",
131018	//   "httpMethod": "POST",
131019	//   "id": "compute.regionInstanceGroupManagers.resize",
131020	//   "parameterOrder": [
131021	//     "project",
131022	//     "region",
131023	//     "instanceGroupManager",
131024	//     "size"
131025	//   ],
131026	//   "parameters": {
131027	//     "instanceGroupManager": {
131028	//       "description": "Name of the managed instance group.",
131029	//       "location": "path",
131030	//       "required": true,
131031	//       "type": "string"
131032	//     },
131033	//     "project": {
131034	//       "description": "Project ID for this request.",
131035	//       "location": "path",
131036	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131037	//       "required": true,
131038	//       "type": "string"
131039	//     },
131040	//     "region": {
131041	//       "description": "Name of the region scoping this request.",
131042	//       "location": "path",
131043	//       "required": true,
131044	//       "type": "string"
131045	//     },
131046	//     "requestId": {
131047	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
131048	//       "location": "query",
131049	//       "type": "string"
131050	//     },
131051	//     "size": {
131052	//       "description": "Number of instances that should exist in this instance group manager.",
131053	//       "format": "int32",
131054	//       "location": "query",
131055	//       "minimum": "0",
131056	//       "required": true,
131057	//       "type": "integer"
131058	//     }
131059	//   },
131060	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize",
131061	//   "response": {
131062	//     "$ref": "Operation"
131063	//   },
131064	//   "scopes": [
131065	//     "https://www.googleapis.com/auth/cloud-platform",
131066	//     "https://www.googleapis.com/auth/compute"
131067	//   ]
131068	// }
131069
131070}
131071
131072// method id "compute.regionInstanceGroupManagers.setAutoHealingPolicies":
131073
131074type RegionInstanceGroupManagersSetAutoHealingPoliciesCall struct {
131075	s                                                *Service
131076	project                                          string
131077	region                                           string
131078	instanceGroupManager                             string
131079	regioninstancegroupmanagerssetautohealingrequest *RegionInstanceGroupManagersSetAutoHealingRequest
131080	urlParams_                                       gensupport.URLParams
131081	ctx_                                             context.Context
131082	header_                                          http.Header
131083}
131084
131085// SetAutoHealingPolicies: Modifies the autohealing policy for the
131086// instances in this managed instance group. [Deprecated] This method is
131087// deprecated. Please use Patch instead.
131088func (r *RegionInstanceGroupManagersService) SetAutoHealingPolicies(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssetautohealingrequest *RegionInstanceGroupManagersSetAutoHealingRequest) *RegionInstanceGroupManagersSetAutoHealingPoliciesCall {
131089	c := &RegionInstanceGroupManagersSetAutoHealingPoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131090	c.project = project
131091	c.region = region
131092	c.instanceGroupManager = instanceGroupManager
131093	c.regioninstancegroupmanagerssetautohealingrequest = regioninstancegroupmanagerssetautohealingrequest
131094	return c
131095}
131096
131097// RequestId sets the optional parameter "requestId": An optional
131098// request ID to identify requests. Specify a unique request ID so that
131099// if you must retry your request, the server will know to ignore the
131100// request if it has already been completed.
131101//
131102// For example, consider a situation where you make an initial request
131103// and the request times out. If you make the request again with the
131104// same request ID, the server can check if original operation with the
131105// same request ID was received, and if so, will ignore the second
131106// request. This prevents clients from accidentally creating duplicate
131107// commitments.
131108//
131109// The request ID must be a valid UUID with the exception that zero UUID
131110// is not supported (00000000-0000-0000-0000-000000000000).
131111func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) RequestId(requestId string) *RegionInstanceGroupManagersSetAutoHealingPoliciesCall {
131112	c.urlParams_.Set("requestId", requestId)
131113	return c
131114}
131115
131116// Fields allows partial responses to be retrieved. See
131117// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131118// for more information.
131119func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetAutoHealingPoliciesCall {
131120	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131121	return c
131122}
131123
131124// Context sets the context to be used in this call's Do method. Any
131125// pending HTTP request will be aborted if the provided context is
131126// canceled.
131127func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetAutoHealingPoliciesCall {
131128	c.ctx_ = ctx
131129	return c
131130}
131131
131132// Header returns an http.Header that can be modified by the caller to
131133// add HTTP headers to the request.
131134func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Header() http.Header {
131135	if c.header_ == nil {
131136		c.header_ = make(http.Header)
131137	}
131138	return c.header_
131139}
131140
131141func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) doRequest(alt string) (*http.Response, error) {
131142	reqHeaders := make(http.Header)
131143	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
131144	for k, v := range c.header_ {
131145		reqHeaders[k] = v
131146	}
131147	reqHeaders.Set("User-Agent", c.s.userAgent())
131148	var body io.Reader = nil
131149	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssetautohealingrequest)
131150	if err != nil {
131151		return nil, err
131152	}
131153	reqHeaders.Set("Content-Type", "application/json")
131154	c.urlParams_.Set("alt", alt)
131155	c.urlParams_.Set("prettyPrint", "false")
131156	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies")
131157	urls += "?" + c.urlParams_.Encode()
131158	req, err := http.NewRequest("POST", urls, body)
131159	if err != nil {
131160		return nil, err
131161	}
131162	req.Header = reqHeaders
131163	googleapi.Expand(req.URL, map[string]string{
131164		"project":              c.project,
131165		"region":               c.region,
131166		"instanceGroupManager": c.instanceGroupManager,
131167	})
131168	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131169}
131170
131171// Do executes the "compute.regionInstanceGroupManagers.setAutoHealingPolicies" call.
131172// Exactly one of *Operation or error will be non-nil. Any non-2xx
131173// status code is an error. Response headers are in either
131174// *Operation.ServerResponse.Header or (if a response was returned at
131175// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131176// to check whether the returned error was because
131177// http.StatusNotModified was returned.
131178func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
131179	gensupport.SetOptions(c.urlParams_, opts...)
131180	res, err := c.doRequest("json")
131181	if res != nil && res.StatusCode == http.StatusNotModified {
131182		if res.Body != nil {
131183			res.Body.Close()
131184		}
131185		return nil, &googleapi.Error{
131186			Code:   res.StatusCode,
131187			Header: res.Header,
131188		}
131189	}
131190	if err != nil {
131191		return nil, err
131192	}
131193	defer googleapi.CloseBody(res)
131194	if err := googleapi.CheckResponse(res); err != nil {
131195		return nil, err
131196	}
131197	ret := &Operation{
131198		ServerResponse: googleapi.ServerResponse{
131199			Header:         res.Header,
131200			HTTPStatusCode: res.StatusCode,
131201		},
131202	}
131203	target := &ret
131204	if err := gensupport.DecodeResponse(target, res); err != nil {
131205		return nil, err
131206	}
131207	return ret, nil
131208	// {
131209	//   "description": "Modifies the autohealing policy for the instances in this managed instance group. [Deprecated] This method is deprecated. Please use Patch instead.",
131210	//   "httpMethod": "POST",
131211	//   "id": "compute.regionInstanceGroupManagers.setAutoHealingPolicies",
131212	//   "parameterOrder": [
131213	//     "project",
131214	//     "region",
131215	//     "instanceGroupManager"
131216	//   ],
131217	//   "parameters": {
131218	//     "instanceGroupManager": {
131219	//       "description": "Name of the managed instance group.",
131220	//       "location": "path",
131221	//       "required": true,
131222	//       "type": "string"
131223	//     },
131224	//     "project": {
131225	//       "description": "Project ID for this request.",
131226	//       "location": "path",
131227	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131228	//       "required": true,
131229	//       "type": "string"
131230	//     },
131231	//     "region": {
131232	//       "description": "Name of the region scoping this request.",
131233	//       "location": "path",
131234	//       "required": true,
131235	//       "type": "string"
131236	//     },
131237	//     "requestId": {
131238	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
131239	//       "location": "query",
131240	//       "type": "string"
131241	//     }
131242	//   },
131243	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies",
131244	//   "request": {
131245	//     "$ref": "RegionInstanceGroupManagersSetAutoHealingRequest"
131246	//   },
131247	//   "response": {
131248	//     "$ref": "Operation"
131249	//   },
131250	//   "scopes": [
131251	//     "https://www.googleapis.com/auth/cloud-platform",
131252	//     "https://www.googleapis.com/auth/compute"
131253	//   ]
131254	// }
131255
131256}
131257
131258// method id "compute.regionInstanceGroupManagers.setInstanceTemplate":
131259
131260type RegionInstanceGroupManagersSetInstanceTemplateCall struct {
131261	s                                             *Service
131262	project                                       string
131263	region                                        string
131264	instanceGroupManager                          string
131265	regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest
131266	urlParams_                                    gensupport.URLParams
131267	ctx_                                          context.Context
131268	header_                                       http.Header
131269}
131270
131271// SetInstanceTemplate: Sets the instance template to use when creating
131272// new instances or recreating instances in this group. Existing
131273// instances are not affected.
131274func (r *RegionInstanceGroupManagersService) SetInstanceTemplate(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest) *RegionInstanceGroupManagersSetInstanceTemplateCall {
131275	c := &RegionInstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131276	c.project = project
131277	c.region = region
131278	c.instanceGroupManager = instanceGroupManager
131279	c.regioninstancegroupmanagerssettemplaterequest = regioninstancegroupmanagerssettemplaterequest
131280	return c
131281}
131282
131283// RequestId sets the optional parameter "requestId": An optional
131284// request ID to identify requests. Specify a unique request ID so that
131285// if you must retry your request, the server will know to ignore the
131286// request if it has already been completed.
131287//
131288// For example, consider a situation where you make an initial request
131289// and the request times out. If you make the request again with the
131290// same request ID, the server can check if original operation with the
131291// same request ID was received, and if so, will ignore the second
131292// request. This prevents clients from accidentally creating duplicate
131293// commitments.
131294//
131295// The request ID must be a valid UUID with the exception that zero UUID
131296// is not supported (00000000-0000-0000-0000-000000000000).
131297func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *RegionInstanceGroupManagersSetInstanceTemplateCall {
131298	c.urlParams_.Set("requestId", requestId)
131299	return c
131300}
131301
131302// Fields allows partial responses to be retrieved. See
131303// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131304// for more information.
131305func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetInstanceTemplateCall {
131306	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131307	return c
131308}
131309
131310// Context sets the context to be used in this call's Do method. Any
131311// pending HTTP request will be aborted if the provided context is
131312// canceled.
131313func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetInstanceTemplateCall {
131314	c.ctx_ = ctx
131315	return c
131316}
131317
131318// Header returns an http.Header that can be modified by the caller to
131319// add HTTP headers to the request.
131320func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Header() http.Header {
131321	if c.header_ == nil {
131322		c.header_ = make(http.Header)
131323	}
131324	return c.header_
131325}
131326
131327func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) {
131328	reqHeaders := make(http.Header)
131329	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
131330	for k, v := range c.header_ {
131331		reqHeaders[k] = v
131332	}
131333	reqHeaders.Set("User-Agent", c.s.userAgent())
131334	var body io.Reader = nil
131335	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettemplaterequest)
131336	if err != nil {
131337		return nil, err
131338	}
131339	reqHeaders.Set("Content-Type", "application/json")
131340	c.urlParams_.Set("alt", alt)
131341	c.urlParams_.Set("prettyPrint", "false")
131342	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate")
131343	urls += "?" + c.urlParams_.Encode()
131344	req, err := http.NewRequest("POST", urls, body)
131345	if err != nil {
131346		return nil, err
131347	}
131348	req.Header = reqHeaders
131349	googleapi.Expand(req.URL, map[string]string{
131350		"project":              c.project,
131351		"region":               c.region,
131352		"instanceGroupManager": c.instanceGroupManager,
131353	})
131354	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131355}
131356
131357// Do executes the "compute.regionInstanceGroupManagers.setInstanceTemplate" call.
131358// Exactly one of *Operation or error will be non-nil. Any non-2xx
131359// status code is an error. Response headers are in either
131360// *Operation.ServerResponse.Header or (if a response was returned at
131361// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131362// to check whether the returned error was because
131363// http.StatusNotModified was returned.
131364func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
131365	gensupport.SetOptions(c.urlParams_, opts...)
131366	res, err := c.doRequest("json")
131367	if res != nil && res.StatusCode == http.StatusNotModified {
131368		if res.Body != nil {
131369			res.Body.Close()
131370		}
131371		return nil, &googleapi.Error{
131372			Code:   res.StatusCode,
131373			Header: res.Header,
131374		}
131375	}
131376	if err != nil {
131377		return nil, err
131378	}
131379	defer googleapi.CloseBody(res)
131380	if err := googleapi.CheckResponse(res); err != nil {
131381		return nil, err
131382	}
131383	ret := &Operation{
131384		ServerResponse: googleapi.ServerResponse{
131385			Header:         res.Header,
131386			HTTPStatusCode: res.StatusCode,
131387		},
131388	}
131389	target := &ret
131390	if err := gensupport.DecodeResponse(target, res); err != nil {
131391		return nil, err
131392	}
131393	return ret, nil
131394	// {
131395	//   "description": "Sets the instance template to use when creating new instances or recreating instances in this group. Existing instances are not affected.",
131396	//   "httpMethod": "POST",
131397	//   "id": "compute.regionInstanceGroupManagers.setInstanceTemplate",
131398	//   "parameterOrder": [
131399	//     "project",
131400	//     "region",
131401	//     "instanceGroupManager"
131402	//   ],
131403	//   "parameters": {
131404	//     "instanceGroupManager": {
131405	//       "description": "The name of the managed instance group.",
131406	//       "location": "path",
131407	//       "required": true,
131408	//       "type": "string"
131409	//     },
131410	//     "project": {
131411	//       "description": "Project ID for this request.",
131412	//       "location": "path",
131413	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131414	//       "required": true,
131415	//       "type": "string"
131416	//     },
131417	//     "region": {
131418	//       "description": "Name of the region scoping this request.",
131419	//       "location": "path",
131420	//       "required": true,
131421	//       "type": "string"
131422	//     },
131423	//     "requestId": {
131424	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
131425	//       "location": "query",
131426	//       "type": "string"
131427	//     }
131428	//   },
131429	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
131430	//   "request": {
131431	//     "$ref": "RegionInstanceGroupManagersSetTemplateRequest"
131432	//   },
131433	//   "response": {
131434	//     "$ref": "Operation"
131435	//   },
131436	//   "scopes": [
131437	//     "https://www.googleapis.com/auth/cloud-platform",
131438	//     "https://www.googleapis.com/auth/compute"
131439	//   ]
131440	// }
131441
131442}
131443
131444// method id "compute.regionInstanceGroupManagers.setTargetPools":
131445
131446type RegionInstanceGroupManagersSetTargetPoolsCall struct {
131447	s                                                *Service
131448	project                                          string
131449	region                                           string
131450	instanceGroupManager                             string
131451	regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest
131452	urlParams_                                       gensupport.URLParams
131453	ctx_                                             context.Context
131454	header_                                          http.Header
131455}
131456
131457// SetTargetPools: Modifies the target pools to which all new instances
131458// in this group are assigned. Existing instances in the group are not
131459// affected.
131460func (r *RegionInstanceGroupManagersService) SetTargetPools(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest) *RegionInstanceGroupManagersSetTargetPoolsCall {
131461	c := &RegionInstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131462	c.project = project
131463	c.region = region
131464	c.instanceGroupManager = instanceGroupManager
131465	c.regioninstancegroupmanagerssettargetpoolsrequest = regioninstancegroupmanagerssettargetpoolsrequest
131466	return c
131467}
131468
131469// RequestId sets the optional parameter "requestId": An optional
131470// request ID to identify requests. Specify a unique request ID so that
131471// if you must retry your request, the server will know to ignore the
131472// request if it has already been completed.
131473//
131474// For example, consider a situation where you make an initial request
131475// and the request times out. If you make the request again with the
131476// same request ID, the server can check if original operation with the
131477// same request ID was received, and if so, will ignore the second
131478// request. This prevents clients from accidentally creating duplicate
131479// commitments.
131480//
131481// The request ID must be a valid UUID with the exception that zero UUID
131482// is not supported (00000000-0000-0000-0000-000000000000).
131483func (c *RegionInstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *RegionInstanceGroupManagersSetTargetPoolsCall {
131484	c.urlParams_.Set("requestId", requestId)
131485	return c
131486}
131487
131488// Fields allows partial responses to be retrieved. See
131489// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131490// for more information.
131491func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetTargetPoolsCall {
131492	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131493	return c
131494}
131495
131496// Context sets the context to be used in this call's Do method. Any
131497// pending HTTP request will be aborted if the provided context is
131498// canceled.
131499func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetTargetPoolsCall {
131500	c.ctx_ = ctx
131501	return c
131502}
131503
131504// Header returns an http.Header that can be modified by the caller to
131505// add HTTP headers to the request.
131506func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Header() http.Header {
131507	if c.header_ == nil {
131508		c.header_ = make(http.Header)
131509	}
131510	return c.header_
131511}
131512
131513func (c *RegionInstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) {
131514	reqHeaders := make(http.Header)
131515	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
131516	for k, v := range c.header_ {
131517		reqHeaders[k] = v
131518	}
131519	reqHeaders.Set("User-Agent", c.s.userAgent())
131520	var body io.Reader = nil
131521	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettargetpoolsrequest)
131522	if err != nil {
131523		return nil, err
131524	}
131525	reqHeaders.Set("Content-Type", "application/json")
131526	c.urlParams_.Set("alt", alt)
131527	c.urlParams_.Set("prettyPrint", "false")
131528	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools")
131529	urls += "?" + c.urlParams_.Encode()
131530	req, err := http.NewRequest("POST", urls, body)
131531	if err != nil {
131532		return nil, err
131533	}
131534	req.Header = reqHeaders
131535	googleapi.Expand(req.URL, map[string]string{
131536		"project":              c.project,
131537		"region":               c.region,
131538		"instanceGroupManager": c.instanceGroupManager,
131539	})
131540	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131541}
131542
131543// Do executes the "compute.regionInstanceGroupManagers.setTargetPools" call.
131544// Exactly one of *Operation or error will be non-nil. Any non-2xx
131545// status code is an error. Response headers are in either
131546// *Operation.ServerResponse.Header or (if a response was returned at
131547// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131548// to check whether the returned error was because
131549// http.StatusNotModified was returned.
131550func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
131551	gensupport.SetOptions(c.urlParams_, opts...)
131552	res, err := c.doRequest("json")
131553	if res != nil && res.StatusCode == http.StatusNotModified {
131554		if res.Body != nil {
131555			res.Body.Close()
131556		}
131557		return nil, &googleapi.Error{
131558			Code:   res.StatusCode,
131559			Header: res.Header,
131560		}
131561	}
131562	if err != nil {
131563		return nil, err
131564	}
131565	defer googleapi.CloseBody(res)
131566	if err := googleapi.CheckResponse(res); err != nil {
131567		return nil, err
131568	}
131569	ret := &Operation{
131570		ServerResponse: googleapi.ServerResponse{
131571			Header:         res.Header,
131572			HTTPStatusCode: res.StatusCode,
131573		},
131574	}
131575	target := &ret
131576	if err := gensupport.DecodeResponse(target, res); err != nil {
131577		return nil, err
131578	}
131579	return ret, nil
131580	// {
131581	//   "description": "Modifies the target pools to which all new instances in this group are assigned. Existing instances in the group are not affected.",
131582	//   "httpMethod": "POST",
131583	//   "id": "compute.regionInstanceGroupManagers.setTargetPools",
131584	//   "parameterOrder": [
131585	//     "project",
131586	//     "region",
131587	//     "instanceGroupManager"
131588	//   ],
131589	//   "parameters": {
131590	//     "instanceGroupManager": {
131591	//       "description": "Name of the managed instance group.",
131592	//       "location": "path",
131593	//       "required": true,
131594	//       "type": "string"
131595	//     },
131596	//     "project": {
131597	//       "description": "Project ID for this request.",
131598	//       "location": "path",
131599	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131600	//       "required": true,
131601	//       "type": "string"
131602	//     },
131603	//     "region": {
131604	//       "description": "Name of the region scoping this request.",
131605	//       "location": "path",
131606	//       "required": true,
131607	//       "type": "string"
131608	//     },
131609	//     "requestId": {
131610	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
131611	//       "location": "query",
131612	//       "type": "string"
131613	//     }
131614	//   },
131615	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
131616	//   "request": {
131617	//     "$ref": "RegionInstanceGroupManagersSetTargetPoolsRequest"
131618	//   },
131619	//   "response": {
131620	//     "$ref": "Operation"
131621	//   },
131622	//   "scopes": [
131623	//     "https://www.googleapis.com/auth/cloud-platform",
131624	//     "https://www.googleapis.com/auth/compute"
131625	//   ]
131626	// }
131627
131628}
131629
131630// method id "compute.regionInstanceGroupManagers.testIamPermissions":
131631
131632type RegionInstanceGroupManagersTestIamPermissionsCall struct {
131633	s                      *Service
131634	project                string
131635	region                 string
131636	resource               string
131637	testpermissionsrequest *TestPermissionsRequest
131638	urlParams_             gensupport.URLParams
131639	ctx_                   context.Context
131640	header_                http.Header
131641}
131642
131643// TestIamPermissions: Returns permissions that a caller has on the
131644// specified resource.
131645func (r *RegionInstanceGroupManagersService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionInstanceGroupManagersTestIamPermissionsCall {
131646	c := &RegionInstanceGroupManagersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131647	c.project = project
131648	c.region = region
131649	c.resource = resource
131650	c.testpermissionsrequest = testpermissionsrequest
131651	return c
131652}
131653
131654// Fields allows partial responses to be retrieved. See
131655// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131656// for more information.
131657func (c *RegionInstanceGroupManagersTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersTestIamPermissionsCall {
131658	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131659	return c
131660}
131661
131662// Context sets the context to be used in this call's Do method. Any
131663// pending HTTP request will be aborted if the provided context is
131664// canceled.
131665func (c *RegionInstanceGroupManagersTestIamPermissionsCall) Context(ctx context.Context) *RegionInstanceGroupManagersTestIamPermissionsCall {
131666	c.ctx_ = ctx
131667	return c
131668}
131669
131670// Header returns an http.Header that can be modified by the caller to
131671// add HTTP headers to the request.
131672func (c *RegionInstanceGroupManagersTestIamPermissionsCall) Header() http.Header {
131673	if c.header_ == nil {
131674		c.header_ = make(http.Header)
131675	}
131676	return c.header_
131677}
131678
131679func (c *RegionInstanceGroupManagersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
131680	reqHeaders := make(http.Header)
131681	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
131682	for k, v := range c.header_ {
131683		reqHeaders[k] = v
131684	}
131685	reqHeaders.Set("User-Agent", c.s.userAgent())
131686	var body io.Reader = nil
131687	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
131688	if err != nil {
131689		return nil, err
131690	}
131691	reqHeaders.Set("Content-Type", "application/json")
131692	c.urlParams_.Set("alt", alt)
131693	c.urlParams_.Set("prettyPrint", "false")
131694	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{resource}/testIamPermissions")
131695	urls += "?" + c.urlParams_.Encode()
131696	req, err := http.NewRequest("POST", urls, body)
131697	if err != nil {
131698		return nil, err
131699	}
131700	req.Header = reqHeaders
131701	googleapi.Expand(req.URL, map[string]string{
131702		"project":  c.project,
131703		"region":   c.region,
131704		"resource": c.resource,
131705	})
131706	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131707}
131708
131709// Do executes the "compute.regionInstanceGroupManagers.testIamPermissions" call.
131710// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
131711// non-2xx status code is an error. Response headers are in either
131712// *TestPermissionsResponse.ServerResponse.Header or (if a response was
131713// returned at all) in error.(*googleapi.Error).Header. Use
131714// googleapi.IsNotModified to check whether the returned error was
131715// because http.StatusNotModified was returned.
131716func (c *RegionInstanceGroupManagersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
131717	gensupport.SetOptions(c.urlParams_, opts...)
131718	res, err := c.doRequest("json")
131719	if res != nil && res.StatusCode == http.StatusNotModified {
131720		if res.Body != nil {
131721			res.Body.Close()
131722		}
131723		return nil, &googleapi.Error{
131724			Code:   res.StatusCode,
131725			Header: res.Header,
131726		}
131727	}
131728	if err != nil {
131729		return nil, err
131730	}
131731	defer googleapi.CloseBody(res)
131732	if err := googleapi.CheckResponse(res); err != nil {
131733		return nil, err
131734	}
131735	ret := &TestPermissionsResponse{
131736		ServerResponse: googleapi.ServerResponse{
131737			Header:         res.Header,
131738			HTTPStatusCode: res.StatusCode,
131739		},
131740	}
131741	target := &ret
131742	if err := gensupport.DecodeResponse(target, res); err != nil {
131743		return nil, err
131744	}
131745	return ret, nil
131746	// {
131747	//   "description": "Returns permissions that a caller has on the specified resource.",
131748	//   "httpMethod": "POST",
131749	//   "id": "compute.regionInstanceGroupManagers.testIamPermissions",
131750	//   "parameterOrder": [
131751	//     "project",
131752	//     "region",
131753	//     "resource"
131754	//   ],
131755	//   "parameters": {
131756	//     "project": {
131757	//       "description": "Project ID for this request.",
131758	//       "location": "path",
131759	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131760	//       "required": true,
131761	//       "type": "string"
131762	//     },
131763	//     "region": {
131764	//       "description": "The name of the region for this request.",
131765	//       "location": "path",
131766	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131767	//       "required": true,
131768	//       "type": "string"
131769	//     },
131770	//     "resource": {
131771	//       "description": "Name or id of the resource for this request.",
131772	//       "location": "path",
131773	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131774	//       "required": true,
131775	//       "type": "string"
131776	//     }
131777	//   },
131778	//   "path": "{project}/regions/{region}/instanceGroupManagers/{resource}/testIamPermissions",
131779	//   "request": {
131780	//     "$ref": "TestPermissionsRequest"
131781	//   },
131782	//   "response": {
131783	//     "$ref": "TestPermissionsResponse"
131784	//   },
131785	//   "scopes": [
131786	//     "https://www.googleapis.com/auth/cloud-platform",
131787	//     "https://www.googleapis.com/auth/compute",
131788	//     "https://www.googleapis.com/auth/compute.readonly"
131789	//   ]
131790	// }
131791
131792}
131793
131794// method id "compute.regionInstanceGroupManagers.update":
131795
131796type RegionInstanceGroupManagersUpdateCall struct {
131797	s                    *Service
131798	project              string
131799	region               string
131800	instanceGroupManager string
131801	instancegroupmanager *InstanceGroupManager
131802	urlParams_           gensupport.URLParams
131803	ctx_                 context.Context
131804	header_              http.Header
131805}
131806
131807// Update: Updates a managed instance group using the information that
131808// you specify in the request. This operation is marked as DONE when the
131809// group is updated even if the instances in the group have not yet been
131810// updated. You must separately verify the status of the individual
131811// instances with the listmanagedinstances method.
131812func (r *RegionInstanceGroupManagersService) Update(project string, region string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersUpdateCall {
131813	c := &RegionInstanceGroupManagersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131814	c.project = project
131815	c.region = region
131816	c.instanceGroupManager = instanceGroupManager
131817	c.instancegroupmanager = instancegroupmanager
131818	return c
131819}
131820
131821// RequestId sets the optional parameter "requestId": An optional
131822// request ID to identify requests. Specify a unique request ID so that
131823// if you must retry your request, the server will know to ignore the
131824// request if it has already been completed.
131825//
131826// For example, consider a situation where you make an initial request
131827// and the request times out. If you make the request again with the
131828// same request ID, the server can check if original operation with the
131829// same request ID was received, and if so, will ignore the second
131830// request. This prevents clients from accidentally creating duplicate
131831// commitments.
131832//
131833// The request ID must be a valid UUID with the exception that zero UUID
131834// is not supported (00000000-0000-0000-0000-000000000000).
131835func (c *RegionInstanceGroupManagersUpdateCall) RequestId(requestId string) *RegionInstanceGroupManagersUpdateCall {
131836	c.urlParams_.Set("requestId", requestId)
131837	return c
131838}
131839
131840// Fields allows partial responses to be retrieved. See
131841// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131842// for more information.
131843func (c *RegionInstanceGroupManagersUpdateCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersUpdateCall {
131844	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131845	return c
131846}
131847
131848// Context sets the context to be used in this call's Do method. Any
131849// pending HTTP request will be aborted if the provided context is
131850// canceled.
131851func (c *RegionInstanceGroupManagersUpdateCall) Context(ctx context.Context) *RegionInstanceGroupManagersUpdateCall {
131852	c.ctx_ = ctx
131853	return c
131854}
131855
131856// Header returns an http.Header that can be modified by the caller to
131857// add HTTP headers to the request.
131858func (c *RegionInstanceGroupManagersUpdateCall) Header() http.Header {
131859	if c.header_ == nil {
131860		c.header_ = make(http.Header)
131861	}
131862	return c.header_
131863}
131864
131865func (c *RegionInstanceGroupManagersUpdateCall) doRequest(alt string) (*http.Response, error) {
131866	reqHeaders := make(http.Header)
131867	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
131868	for k, v := range c.header_ {
131869		reqHeaders[k] = v
131870	}
131871	reqHeaders.Set("User-Agent", c.s.userAgent())
131872	var body io.Reader = nil
131873	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
131874	if err != nil {
131875		return nil, err
131876	}
131877	reqHeaders.Set("Content-Type", "application/json")
131878	c.urlParams_.Set("alt", alt)
131879	c.urlParams_.Set("prettyPrint", "false")
131880	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
131881	urls += "?" + c.urlParams_.Encode()
131882	req, err := http.NewRequest("PUT", urls, body)
131883	if err != nil {
131884		return nil, err
131885	}
131886	req.Header = reqHeaders
131887	googleapi.Expand(req.URL, map[string]string{
131888		"project":              c.project,
131889		"region":               c.region,
131890		"instanceGroupManager": c.instanceGroupManager,
131891	})
131892	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131893}
131894
131895// Do executes the "compute.regionInstanceGroupManagers.update" call.
131896// Exactly one of *Operation or error will be non-nil. Any non-2xx
131897// status code is an error. Response headers are in either
131898// *Operation.ServerResponse.Header or (if a response was returned at
131899// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131900// to check whether the returned error was because
131901// http.StatusNotModified was returned.
131902func (c *RegionInstanceGroupManagersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
131903	gensupport.SetOptions(c.urlParams_, opts...)
131904	res, err := c.doRequest("json")
131905	if res != nil && res.StatusCode == http.StatusNotModified {
131906		if res.Body != nil {
131907			res.Body.Close()
131908		}
131909		return nil, &googleapi.Error{
131910			Code:   res.StatusCode,
131911			Header: res.Header,
131912		}
131913	}
131914	if err != nil {
131915		return nil, err
131916	}
131917	defer googleapi.CloseBody(res)
131918	if err := googleapi.CheckResponse(res); err != nil {
131919		return nil, err
131920	}
131921	ret := &Operation{
131922		ServerResponse: googleapi.ServerResponse{
131923			Header:         res.Header,
131924			HTTPStatusCode: res.StatusCode,
131925		},
131926	}
131927	target := &ret
131928	if err := gensupport.DecodeResponse(target, res); err != nil {
131929		return nil, err
131930	}
131931	return ret, nil
131932	// {
131933	//   "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.",
131934	//   "httpMethod": "PUT",
131935	//   "id": "compute.regionInstanceGroupManagers.update",
131936	//   "parameterOrder": [
131937	//     "project",
131938	//     "region",
131939	//     "instanceGroupManager"
131940	//   ],
131941	//   "parameters": {
131942	//     "instanceGroupManager": {
131943	//       "description": "The name of the instance group manager.",
131944	//       "location": "path",
131945	//       "required": true,
131946	//       "type": "string"
131947	//     },
131948	//     "project": {
131949	//       "description": "Project ID for this request.",
131950	//       "location": "path",
131951	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131952	//       "required": true,
131953	//       "type": "string"
131954	//     },
131955	//     "region": {
131956	//       "description": "Name of the region scoping this request.",
131957	//       "location": "path",
131958	//       "required": true,
131959	//       "type": "string"
131960	//     },
131961	//     "requestId": {
131962	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
131963	//       "location": "query",
131964	//       "type": "string"
131965	//     }
131966	//   },
131967	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
131968	//   "request": {
131969	//     "$ref": "InstanceGroupManager"
131970	//   },
131971	//   "response": {
131972	//     "$ref": "Operation"
131973	//   },
131974	//   "scopes": [
131975	//     "https://www.googleapis.com/auth/cloud-platform",
131976	//     "https://www.googleapis.com/auth/compute"
131977	//   ]
131978	// }
131979
131980}
131981
131982// method id "compute.regionInstanceGroupManagers.updatePerInstanceConfigs":
131983
131984type RegionInstanceGroupManagersUpdatePerInstanceConfigsCall struct {
131985	s                                                 *Service
131986	project                                           string
131987	region                                            string
131988	instanceGroupManager                              string
131989	regioninstancegroupmanagerupdateinstanceconfigreq *RegionInstanceGroupManagerUpdateInstanceConfigReq
131990	urlParams_                                        gensupport.URLParams
131991	ctx_                                              context.Context
131992	header_                                           http.Header
131993}
131994
131995// UpdatePerInstanceConfigs: Insert or update (for the ones that already
131996// exist) per-instance configs for the managed instance group.
131997// perInstanceConfig.instance serves as a key used to distinguish
131998// whether to perform insert or patch.
131999func (r *RegionInstanceGroupManagersService) UpdatePerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerupdateinstanceconfigreq *RegionInstanceGroupManagerUpdateInstanceConfigReq) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
132000	c := &RegionInstanceGroupManagersUpdatePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132001	c.project = project
132002	c.region = region
132003	c.instanceGroupManager = instanceGroupManager
132004	c.regioninstancegroupmanagerupdateinstanceconfigreq = regioninstancegroupmanagerupdateinstanceconfigreq
132005	return c
132006}
132007
132008// RequestId sets the optional parameter "requestId": An optional
132009// request ID to identify requests. Specify a unique request ID so that
132010// if you must retry your request, the server will know to ignore the
132011// request if it has already been completed.
132012//
132013// For example, consider a situation where you make an initial request
132014// and the request times out. If you make the request again with the
132015// same request ID, the server can check if original operation with the
132016// same request ID was received, and if so, will ignore the second
132017// request. This prevents clients from accidentally creating duplicate
132018// commitments.
132019//
132020// The request ID must be a valid UUID with the exception that zero UUID
132021// is not supported (00000000-0000-0000-0000-000000000000).
132022func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) RequestId(requestId string) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
132023	c.urlParams_.Set("requestId", requestId)
132024	return c
132025}
132026
132027// Fields allows partial responses to be retrieved. See
132028// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132029// for more information.
132030func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
132031	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132032	return c
132033}
132034
132035// Context sets the context to be used in this call's Do method. Any
132036// pending HTTP request will be aborted if the provided context is
132037// canceled.
132038func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
132039	c.ctx_ = ctx
132040	return c
132041}
132042
132043// Header returns an http.Header that can be modified by the caller to
132044// add HTTP headers to the request.
132045func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Header() http.Header {
132046	if c.header_ == nil {
132047		c.header_ = make(http.Header)
132048	}
132049	return c.header_
132050}
132051
132052func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
132053	reqHeaders := make(http.Header)
132054	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
132055	for k, v := range c.header_ {
132056		reqHeaders[k] = v
132057	}
132058	reqHeaders.Set("User-Agent", c.s.userAgent())
132059	var body io.Reader = nil
132060	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerupdateinstanceconfigreq)
132061	if err != nil {
132062		return nil, err
132063	}
132064	reqHeaders.Set("Content-Type", "application/json")
132065	c.urlParams_.Set("alt", alt)
132066	c.urlParams_.Set("prettyPrint", "false")
132067	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs")
132068	urls += "?" + c.urlParams_.Encode()
132069	req, err := http.NewRequest("POST", urls, body)
132070	if err != nil {
132071		return nil, err
132072	}
132073	req.Header = reqHeaders
132074	googleapi.Expand(req.URL, map[string]string{
132075		"project":              c.project,
132076		"region":               c.region,
132077		"instanceGroupManager": c.instanceGroupManager,
132078	})
132079	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132080}
132081
132082// Do executes the "compute.regionInstanceGroupManagers.updatePerInstanceConfigs" call.
132083// Exactly one of *Operation or error will be non-nil. Any non-2xx
132084// status code is an error. Response headers are in either
132085// *Operation.ServerResponse.Header or (if a response was returned at
132086// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132087// to check whether the returned error was because
132088// http.StatusNotModified was returned.
132089func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132090	gensupport.SetOptions(c.urlParams_, opts...)
132091	res, err := c.doRequest("json")
132092	if res != nil && res.StatusCode == http.StatusNotModified {
132093		if res.Body != nil {
132094			res.Body.Close()
132095		}
132096		return nil, &googleapi.Error{
132097			Code:   res.StatusCode,
132098			Header: res.Header,
132099		}
132100	}
132101	if err != nil {
132102		return nil, err
132103	}
132104	defer googleapi.CloseBody(res)
132105	if err := googleapi.CheckResponse(res); err != nil {
132106		return nil, err
132107	}
132108	ret := &Operation{
132109		ServerResponse: googleapi.ServerResponse{
132110			Header:         res.Header,
132111			HTTPStatusCode: res.StatusCode,
132112		},
132113	}
132114	target := &ret
132115	if err := gensupport.DecodeResponse(target, res); err != nil {
132116		return nil, err
132117	}
132118	return ret, nil
132119	// {
132120	//   "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.",
132121	//   "httpMethod": "POST",
132122	//   "id": "compute.regionInstanceGroupManagers.updatePerInstanceConfigs",
132123	//   "parameterOrder": [
132124	//     "project",
132125	//     "region",
132126	//     "instanceGroupManager"
132127	//   ],
132128	//   "parameters": {
132129	//     "instanceGroupManager": {
132130	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
132131	//       "location": "path",
132132	//       "required": true,
132133	//       "type": "string"
132134	//     },
132135	//     "project": {
132136	//       "description": "Project ID for this request.",
132137	//       "location": "path",
132138	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132139	//       "required": true,
132140	//       "type": "string"
132141	//     },
132142	//     "region": {
132143	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
132144	//       "location": "path",
132145	//       "required": true,
132146	//       "type": "string"
132147	//     },
132148	//     "requestId": {
132149	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
132150	//       "location": "query",
132151	//       "type": "string"
132152	//     }
132153	//   },
132154	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs",
132155	//   "request": {
132156	//     "$ref": "RegionInstanceGroupManagerUpdateInstanceConfigReq"
132157	//   },
132158	//   "response": {
132159	//     "$ref": "Operation"
132160	//   },
132161	//   "scopes": [
132162	//     "https://www.googleapis.com/auth/cloud-platform",
132163	//     "https://www.googleapis.com/auth/compute"
132164	//   ]
132165	// }
132166
132167}
132168
132169// method id "compute.regionInstanceGroups.get":
132170
132171type RegionInstanceGroupsGetCall struct {
132172	s             *Service
132173	project       string
132174	region        string
132175	instanceGroup string
132176	urlParams_    gensupport.URLParams
132177	ifNoneMatch_  string
132178	ctx_          context.Context
132179	header_       http.Header
132180}
132181
132182// Get: Returns the specified instance group resource.
132183func (r *RegionInstanceGroupsService) Get(project string, region string, instanceGroup string) *RegionInstanceGroupsGetCall {
132184	c := &RegionInstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132185	c.project = project
132186	c.region = region
132187	c.instanceGroup = instanceGroup
132188	return c
132189}
132190
132191// Fields allows partial responses to be retrieved. See
132192// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132193// for more information.
132194func (c *RegionInstanceGroupsGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsGetCall {
132195	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132196	return c
132197}
132198
132199// IfNoneMatch sets the optional parameter which makes the operation
132200// fail if the object's ETag matches the given value. This is useful for
132201// getting updates only after the object has changed since the last
132202// request. Use googleapi.IsNotModified to check whether the response
132203// error from Do is the result of In-None-Match.
132204func (c *RegionInstanceGroupsGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsGetCall {
132205	c.ifNoneMatch_ = entityTag
132206	return c
132207}
132208
132209// Context sets the context to be used in this call's Do method. Any
132210// pending HTTP request will be aborted if the provided context is
132211// canceled.
132212func (c *RegionInstanceGroupsGetCall) Context(ctx context.Context) *RegionInstanceGroupsGetCall {
132213	c.ctx_ = ctx
132214	return c
132215}
132216
132217// Header returns an http.Header that can be modified by the caller to
132218// add HTTP headers to the request.
132219func (c *RegionInstanceGroupsGetCall) Header() http.Header {
132220	if c.header_ == nil {
132221		c.header_ = make(http.Header)
132222	}
132223	return c.header_
132224}
132225
132226func (c *RegionInstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
132227	reqHeaders := make(http.Header)
132228	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
132229	for k, v := range c.header_ {
132230		reqHeaders[k] = v
132231	}
132232	reqHeaders.Set("User-Agent", c.s.userAgent())
132233	if c.ifNoneMatch_ != "" {
132234		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
132235	}
132236	var body io.Reader = nil
132237	c.urlParams_.Set("alt", alt)
132238	c.urlParams_.Set("prettyPrint", "false")
132239	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{instanceGroup}")
132240	urls += "?" + c.urlParams_.Encode()
132241	req, err := http.NewRequest("GET", urls, body)
132242	if err != nil {
132243		return nil, err
132244	}
132245	req.Header = reqHeaders
132246	googleapi.Expand(req.URL, map[string]string{
132247		"project":       c.project,
132248		"region":        c.region,
132249		"instanceGroup": c.instanceGroup,
132250	})
132251	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132252}
132253
132254// Do executes the "compute.regionInstanceGroups.get" call.
132255// Exactly one of *InstanceGroup or error will be non-nil. Any non-2xx
132256// status code is an error. Response headers are in either
132257// *InstanceGroup.ServerResponse.Header or (if a response was returned
132258// at all) in error.(*googleapi.Error).Header. Use
132259// googleapi.IsNotModified to check whether the returned error was
132260// because http.StatusNotModified was returned.
132261func (c *RegionInstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) {
132262	gensupport.SetOptions(c.urlParams_, opts...)
132263	res, err := c.doRequest("json")
132264	if res != nil && res.StatusCode == http.StatusNotModified {
132265		if res.Body != nil {
132266			res.Body.Close()
132267		}
132268		return nil, &googleapi.Error{
132269			Code:   res.StatusCode,
132270			Header: res.Header,
132271		}
132272	}
132273	if err != nil {
132274		return nil, err
132275	}
132276	defer googleapi.CloseBody(res)
132277	if err := googleapi.CheckResponse(res); err != nil {
132278		return nil, err
132279	}
132280	ret := &InstanceGroup{
132281		ServerResponse: googleapi.ServerResponse{
132282			Header:         res.Header,
132283			HTTPStatusCode: res.StatusCode,
132284		},
132285	}
132286	target := &ret
132287	if err := gensupport.DecodeResponse(target, res); err != nil {
132288		return nil, err
132289	}
132290	return ret, nil
132291	// {
132292	//   "description": "Returns the specified instance group resource.",
132293	//   "httpMethod": "GET",
132294	//   "id": "compute.regionInstanceGroups.get",
132295	//   "parameterOrder": [
132296	//     "project",
132297	//     "region",
132298	//     "instanceGroup"
132299	//   ],
132300	//   "parameters": {
132301	//     "instanceGroup": {
132302	//       "description": "Name of the instance group resource to return.",
132303	//       "location": "path",
132304	//       "required": true,
132305	//       "type": "string"
132306	//     },
132307	//     "project": {
132308	//       "description": "Project ID for this request.",
132309	//       "location": "path",
132310	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132311	//       "required": true,
132312	//       "type": "string"
132313	//     },
132314	//     "region": {
132315	//       "description": "Name of the region scoping this request.",
132316	//       "location": "path",
132317	//       "required": true,
132318	//       "type": "string"
132319	//     }
132320	//   },
132321	//   "path": "{project}/regions/{region}/instanceGroups/{instanceGroup}",
132322	//   "response": {
132323	//     "$ref": "InstanceGroup"
132324	//   },
132325	//   "scopes": [
132326	//     "https://www.googleapis.com/auth/cloud-platform",
132327	//     "https://www.googleapis.com/auth/compute",
132328	//     "https://www.googleapis.com/auth/compute.readonly"
132329	//   ]
132330	// }
132331
132332}
132333
132334// method id "compute.regionInstanceGroups.list":
132335
132336type RegionInstanceGroupsListCall struct {
132337	s            *Service
132338	project      string
132339	region       string
132340	urlParams_   gensupport.URLParams
132341	ifNoneMatch_ string
132342	ctx_         context.Context
132343	header_      http.Header
132344}
132345
132346// List: Retrieves the list of instance group resources contained within
132347// the specified region.
132348func (r *RegionInstanceGroupsService) List(project string, region string) *RegionInstanceGroupsListCall {
132349	c := &RegionInstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132350	c.project = project
132351	c.region = region
132352	return c
132353}
132354
132355// Filter sets the optional parameter "filter": A filter expression that
132356// filters resources listed in the response. The expression must specify
132357// the field name, a comparison operator, and the value that you want to
132358// use for filtering. The value must be a string, a number, or a
132359// boolean. The comparison operator must be either =, !=, >, or <.
132360//
132361// For example, if you are filtering Compute Engine instances, you can
132362// exclude instances named example-instance by specifying name !=
132363// example-instance.
132364//
132365// You can also filter nested fields. For example, you could specify
132366// scheduling.automaticRestart = false to include instances only if they
132367// are not scheduled for automatic restarts. You can use filtering on
132368// nested fields to filter based on resource labels.
132369//
132370// To filter on multiple expressions, provide each separate expression
132371// within parentheses. For example, (scheduling.automaticRestart = true)
132372// (cpuPlatform = "Intel Skylake"). By default, each expression is an
132373// AND expression. However, you can include AND and OR expressions
132374// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
132375// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
132376// true).
132377func (c *RegionInstanceGroupsListCall) Filter(filter string) *RegionInstanceGroupsListCall {
132378	c.urlParams_.Set("filter", filter)
132379	return c
132380}
132381
132382// MaxResults sets the optional parameter "maxResults": The maximum
132383// number of results per page that should be returned. If the number of
132384// available results is larger than maxResults, Compute Engine returns a
132385// nextPageToken that can be used to get the next page of results in
132386// subsequent list requests. Acceptable values are 0 to 500, inclusive.
132387// (Default: 500)
132388func (c *RegionInstanceGroupsListCall) MaxResults(maxResults int64) *RegionInstanceGroupsListCall {
132389	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
132390	return c
132391}
132392
132393// OrderBy sets the optional parameter "orderBy": Sorts list results by
132394// a certain order. By default, results are returned in alphanumerical
132395// order based on the resource name.
132396//
132397// You can also sort results in descending order based on the creation
132398// timestamp using orderBy="creationTimestamp desc". This sorts results
132399// based on the creationTimestamp field in reverse chronological order
132400// (newest result first). Use this to sort resources like operations so
132401// that the newest operation is returned first.
132402//
132403// Currently, only sorting by name or creationTimestamp desc is
132404// supported.
132405func (c *RegionInstanceGroupsListCall) OrderBy(orderBy string) *RegionInstanceGroupsListCall {
132406	c.urlParams_.Set("orderBy", orderBy)
132407	return c
132408}
132409
132410// PageToken sets the optional parameter "pageToken": Specifies a page
132411// token to use. Set pageToken to the nextPageToken returned by a
132412// previous list request to get the next page of results.
132413func (c *RegionInstanceGroupsListCall) PageToken(pageToken string) *RegionInstanceGroupsListCall {
132414	c.urlParams_.Set("pageToken", pageToken)
132415	return c
132416}
132417
132418// Fields allows partial responses to be retrieved. See
132419// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132420// for more information.
132421func (c *RegionInstanceGroupsListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListCall {
132422	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132423	return c
132424}
132425
132426// IfNoneMatch sets the optional parameter which makes the operation
132427// fail if the object's ETag matches the given value. This is useful for
132428// getting updates only after the object has changed since the last
132429// request. Use googleapi.IsNotModified to check whether the response
132430// error from Do is the result of In-None-Match.
132431func (c *RegionInstanceGroupsListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsListCall {
132432	c.ifNoneMatch_ = entityTag
132433	return c
132434}
132435
132436// Context sets the context to be used in this call's Do method. Any
132437// pending HTTP request will be aborted if the provided context is
132438// canceled.
132439func (c *RegionInstanceGroupsListCall) Context(ctx context.Context) *RegionInstanceGroupsListCall {
132440	c.ctx_ = ctx
132441	return c
132442}
132443
132444// Header returns an http.Header that can be modified by the caller to
132445// add HTTP headers to the request.
132446func (c *RegionInstanceGroupsListCall) Header() http.Header {
132447	if c.header_ == nil {
132448		c.header_ = make(http.Header)
132449	}
132450	return c.header_
132451}
132452
132453func (c *RegionInstanceGroupsListCall) doRequest(alt string) (*http.Response, error) {
132454	reqHeaders := make(http.Header)
132455	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
132456	for k, v := range c.header_ {
132457		reqHeaders[k] = v
132458	}
132459	reqHeaders.Set("User-Agent", c.s.userAgent())
132460	if c.ifNoneMatch_ != "" {
132461		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
132462	}
132463	var body io.Reader = nil
132464	c.urlParams_.Set("alt", alt)
132465	c.urlParams_.Set("prettyPrint", "false")
132466	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups")
132467	urls += "?" + c.urlParams_.Encode()
132468	req, err := http.NewRequest("GET", urls, body)
132469	if err != nil {
132470		return nil, err
132471	}
132472	req.Header = reqHeaders
132473	googleapi.Expand(req.URL, map[string]string{
132474		"project": c.project,
132475		"region":  c.region,
132476	})
132477	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132478}
132479
132480// Do executes the "compute.regionInstanceGroups.list" call.
132481// Exactly one of *RegionInstanceGroupList or error will be non-nil. Any
132482// non-2xx status code is an error. Response headers are in either
132483// *RegionInstanceGroupList.ServerResponse.Header or (if a response was
132484// returned at all) in error.(*googleapi.Error).Header. Use
132485// googleapi.IsNotModified to check whether the returned error was
132486// because http.StatusNotModified was returned.
132487func (c *RegionInstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupList, error) {
132488	gensupport.SetOptions(c.urlParams_, opts...)
132489	res, err := c.doRequest("json")
132490	if res != nil && res.StatusCode == http.StatusNotModified {
132491		if res.Body != nil {
132492			res.Body.Close()
132493		}
132494		return nil, &googleapi.Error{
132495			Code:   res.StatusCode,
132496			Header: res.Header,
132497		}
132498	}
132499	if err != nil {
132500		return nil, err
132501	}
132502	defer googleapi.CloseBody(res)
132503	if err := googleapi.CheckResponse(res); err != nil {
132504		return nil, err
132505	}
132506	ret := &RegionInstanceGroupList{
132507		ServerResponse: googleapi.ServerResponse{
132508			Header:         res.Header,
132509			HTTPStatusCode: res.StatusCode,
132510		},
132511	}
132512	target := &ret
132513	if err := gensupport.DecodeResponse(target, res); err != nil {
132514		return nil, err
132515	}
132516	return ret, nil
132517	// {
132518	//   "description": "Retrieves the list of instance group resources contained within the specified region.",
132519	//   "httpMethod": "GET",
132520	//   "id": "compute.regionInstanceGroups.list",
132521	//   "parameterOrder": [
132522	//     "project",
132523	//     "region"
132524	//   ],
132525	//   "parameters": {
132526	//     "filter": {
132527	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
132528	//       "location": "query",
132529	//       "type": "string"
132530	//     },
132531	//     "maxResults": {
132532	//       "default": "500",
132533	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
132534	//       "format": "uint32",
132535	//       "location": "query",
132536	//       "minimum": "0",
132537	//       "type": "integer"
132538	//     },
132539	//     "orderBy": {
132540	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
132541	//       "location": "query",
132542	//       "type": "string"
132543	//     },
132544	//     "pageToken": {
132545	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
132546	//       "location": "query",
132547	//       "type": "string"
132548	//     },
132549	//     "project": {
132550	//       "description": "Project ID for this request.",
132551	//       "location": "path",
132552	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132553	//       "required": true,
132554	//       "type": "string"
132555	//     },
132556	//     "region": {
132557	//       "description": "Name of the region scoping this request.",
132558	//       "location": "path",
132559	//       "required": true,
132560	//       "type": "string"
132561	//     }
132562	//   },
132563	//   "path": "{project}/regions/{region}/instanceGroups",
132564	//   "response": {
132565	//     "$ref": "RegionInstanceGroupList"
132566	//   },
132567	//   "scopes": [
132568	//     "https://www.googleapis.com/auth/cloud-platform",
132569	//     "https://www.googleapis.com/auth/compute",
132570	//     "https://www.googleapis.com/auth/compute.readonly"
132571	//   ]
132572	// }
132573
132574}
132575
132576// Pages invokes f for each page of results.
132577// A non-nil error returned from f will halt the iteration.
132578// The provided context supersedes any context provided to the Context method.
132579func (c *RegionInstanceGroupsListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupList) error) error {
132580	c.ctx_ = ctx
132581	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
132582	for {
132583		x, err := c.Do()
132584		if err != nil {
132585			return err
132586		}
132587		if err := f(x); err != nil {
132588			return err
132589		}
132590		if x.NextPageToken == "" {
132591			return nil
132592		}
132593		c.PageToken(x.NextPageToken)
132594	}
132595}
132596
132597// method id "compute.regionInstanceGroups.listInstances":
132598
132599type RegionInstanceGroupsListInstancesCall struct {
132600	s                                        *Service
132601	project                                  string
132602	region                                   string
132603	instanceGroup                            string
132604	regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest
132605	urlParams_                               gensupport.URLParams
132606	ctx_                                     context.Context
132607	header_                                  http.Header
132608}
132609
132610// ListInstances: Lists the instances in the specified instance group
132611// and displays information about the named ports. Depending on the
132612// specified options, this method can list all instances or only the
132613// instances that are running.
132614func (r *RegionInstanceGroupsService) ListInstances(project string, region string, instanceGroup string, regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest) *RegionInstanceGroupsListInstancesCall {
132615	c := &RegionInstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132616	c.project = project
132617	c.region = region
132618	c.instanceGroup = instanceGroup
132619	c.regioninstancegroupslistinstancesrequest = regioninstancegroupslistinstancesrequest
132620	return c
132621}
132622
132623// Filter sets the optional parameter "filter": A filter expression that
132624// filters resources listed in the response. The expression must specify
132625// the field name, a comparison operator, and the value that you want to
132626// use for filtering. The value must be a string, a number, or a
132627// boolean. The comparison operator must be either =, !=, >, or <.
132628//
132629// For example, if you are filtering Compute Engine instances, you can
132630// exclude instances named example-instance by specifying name !=
132631// example-instance.
132632//
132633// You can also filter nested fields. For example, you could specify
132634// scheduling.automaticRestart = false to include instances only if they
132635// are not scheduled for automatic restarts. You can use filtering on
132636// nested fields to filter based on resource labels.
132637//
132638// To filter on multiple expressions, provide each separate expression
132639// within parentheses. For example, (scheduling.automaticRestart = true)
132640// (cpuPlatform = "Intel Skylake"). By default, each expression is an
132641// AND expression. However, you can include AND and OR expressions
132642// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
132643// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
132644// true).
132645func (c *RegionInstanceGroupsListInstancesCall) Filter(filter string) *RegionInstanceGroupsListInstancesCall {
132646	c.urlParams_.Set("filter", filter)
132647	return c
132648}
132649
132650// MaxResults sets the optional parameter "maxResults": The maximum
132651// number of results per page that should be returned. If the number of
132652// available results is larger than maxResults, Compute Engine returns a
132653// nextPageToken that can be used to get the next page of results in
132654// subsequent list requests. Acceptable values are 0 to 500, inclusive.
132655// (Default: 500)
132656func (c *RegionInstanceGroupsListInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupsListInstancesCall {
132657	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
132658	return c
132659}
132660
132661// OrderBy sets the optional parameter "orderBy": Sorts list results by
132662// a certain order. By default, results are returned in alphanumerical
132663// order based on the resource name.
132664//
132665// You can also sort results in descending order based on the creation
132666// timestamp using orderBy="creationTimestamp desc". This sorts results
132667// based on the creationTimestamp field in reverse chronological order
132668// (newest result first). Use this to sort resources like operations so
132669// that the newest operation is returned first.
132670//
132671// Currently, only sorting by name or creationTimestamp desc is
132672// supported.
132673func (c *RegionInstanceGroupsListInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupsListInstancesCall {
132674	c.urlParams_.Set("orderBy", orderBy)
132675	return c
132676}
132677
132678// PageToken sets the optional parameter "pageToken": Specifies a page
132679// token to use. Set pageToken to the nextPageToken returned by a
132680// previous list request to get the next page of results.
132681func (c *RegionInstanceGroupsListInstancesCall) PageToken(pageToken string) *RegionInstanceGroupsListInstancesCall {
132682	c.urlParams_.Set("pageToken", pageToken)
132683	return c
132684}
132685
132686// Fields allows partial responses to be retrieved. See
132687// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132688// for more information.
132689func (c *RegionInstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListInstancesCall {
132690	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132691	return c
132692}
132693
132694// Context sets the context to be used in this call's Do method. Any
132695// pending HTTP request will be aborted if the provided context is
132696// canceled.
132697func (c *RegionInstanceGroupsListInstancesCall) Context(ctx context.Context) *RegionInstanceGroupsListInstancesCall {
132698	c.ctx_ = ctx
132699	return c
132700}
132701
132702// Header returns an http.Header that can be modified by the caller to
132703// add HTTP headers to the request.
132704func (c *RegionInstanceGroupsListInstancesCall) Header() http.Header {
132705	if c.header_ == nil {
132706		c.header_ = make(http.Header)
132707	}
132708	return c.header_
132709}
132710
132711func (c *RegionInstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) {
132712	reqHeaders := make(http.Header)
132713	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
132714	for k, v := range c.header_ {
132715		reqHeaders[k] = v
132716	}
132717	reqHeaders.Set("User-Agent", c.s.userAgent())
132718	var body io.Reader = nil
132719	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupslistinstancesrequest)
132720	if err != nil {
132721		return nil, err
132722	}
132723	reqHeaders.Set("Content-Type", "application/json")
132724	c.urlParams_.Set("alt", alt)
132725	c.urlParams_.Set("prettyPrint", "false")
132726	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances")
132727	urls += "?" + c.urlParams_.Encode()
132728	req, err := http.NewRequest("POST", urls, body)
132729	if err != nil {
132730		return nil, err
132731	}
132732	req.Header = reqHeaders
132733	googleapi.Expand(req.URL, map[string]string{
132734		"project":       c.project,
132735		"region":        c.region,
132736		"instanceGroup": c.instanceGroup,
132737	})
132738	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132739}
132740
132741// Do executes the "compute.regionInstanceGroups.listInstances" call.
132742// Exactly one of *RegionInstanceGroupsListInstances or error will be
132743// non-nil. Any non-2xx status code is an error. Response headers are in
132744// either *RegionInstanceGroupsListInstances.ServerResponse.Header or
132745// (if a response was returned at all) in
132746// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
132747// whether the returned error was because http.StatusNotModified was
132748// returned.
132749func (c *RegionInstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupsListInstances, error) {
132750	gensupport.SetOptions(c.urlParams_, opts...)
132751	res, err := c.doRequest("json")
132752	if res != nil && res.StatusCode == http.StatusNotModified {
132753		if res.Body != nil {
132754			res.Body.Close()
132755		}
132756		return nil, &googleapi.Error{
132757			Code:   res.StatusCode,
132758			Header: res.Header,
132759		}
132760	}
132761	if err != nil {
132762		return nil, err
132763	}
132764	defer googleapi.CloseBody(res)
132765	if err := googleapi.CheckResponse(res); err != nil {
132766		return nil, err
132767	}
132768	ret := &RegionInstanceGroupsListInstances{
132769		ServerResponse: googleapi.ServerResponse{
132770			Header:         res.Header,
132771			HTTPStatusCode: res.StatusCode,
132772		},
132773	}
132774	target := &ret
132775	if err := gensupport.DecodeResponse(target, res); err != nil {
132776		return nil, err
132777	}
132778	return ret, nil
132779	// {
132780	//   "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.",
132781	//   "httpMethod": "POST",
132782	//   "id": "compute.regionInstanceGroups.listInstances",
132783	//   "parameterOrder": [
132784	//     "project",
132785	//     "region",
132786	//     "instanceGroup"
132787	//   ],
132788	//   "parameters": {
132789	//     "filter": {
132790	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
132791	//       "location": "query",
132792	//       "type": "string"
132793	//     },
132794	//     "instanceGroup": {
132795	//       "description": "Name of the regional instance group for which we want to list the instances.",
132796	//       "location": "path",
132797	//       "required": true,
132798	//       "type": "string"
132799	//     },
132800	//     "maxResults": {
132801	//       "default": "500",
132802	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
132803	//       "format": "uint32",
132804	//       "location": "query",
132805	//       "minimum": "0",
132806	//       "type": "integer"
132807	//     },
132808	//     "orderBy": {
132809	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
132810	//       "location": "query",
132811	//       "type": "string"
132812	//     },
132813	//     "pageToken": {
132814	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
132815	//       "location": "query",
132816	//       "type": "string"
132817	//     },
132818	//     "project": {
132819	//       "description": "Project ID for this request.",
132820	//       "location": "path",
132821	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132822	//       "required": true,
132823	//       "type": "string"
132824	//     },
132825	//     "region": {
132826	//       "description": "Name of the region scoping this request.",
132827	//       "location": "path",
132828	//       "required": true,
132829	//       "type": "string"
132830	//     }
132831	//   },
132832	//   "path": "{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances",
132833	//   "request": {
132834	//     "$ref": "RegionInstanceGroupsListInstancesRequest"
132835	//   },
132836	//   "response": {
132837	//     "$ref": "RegionInstanceGroupsListInstances"
132838	//   },
132839	//   "scopes": [
132840	//     "https://www.googleapis.com/auth/cloud-platform",
132841	//     "https://www.googleapis.com/auth/compute",
132842	//     "https://www.googleapis.com/auth/compute.readonly"
132843	//   ]
132844	// }
132845
132846}
132847
132848// Pages invokes f for each page of results.
132849// A non-nil error returned from f will halt the iteration.
132850// The provided context supersedes any context provided to the Context method.
132851func (c *RegionInstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupsListInstances) error) error {
132852	c.ctx_ = ctx
132853	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
132854	for {
132855		x, err := c.Do()
132856		if err != nil {
132857			return err
132858		}
132859		if err := f(x); err != nil {
132860			return err
132861		}
132862		if x.NextPageToken == "" {
132863			return nil
132864		}
132865		c.PageToken(x.NextPageToken)
132866	}
132867}
132868
132869// method id "compute.regionInstanceGroups.setNamedPorts":
132870
132871type RegionInstanceGroupsSetNamedPortsCall struct {
132872	s                                        *Service
132873	project                                  string
132874	region                                   string
132875	instanceGroup                            string
132876	regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest
132877	urlParams_                               gensupport.URLParams
132878	ctx_                                     context.Context
132879	header_                                  http.Header
132880}
132881
132882// SetNamedPorts: Sets the named ports for the specified regional
132883// instance group.
132884func (r *RegionInstanceGroupsService) SetNamedPorts(project string, region string, instanceGroup string, regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest) *RegionInstanceGroupsSetNamedPortsCall {
132885	c := &RegionInstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132886	c.project = project
132887	c.region = region
132888	c.instanceGroup = instanceGroup
132889	c.regioninstancegroupssetnamedportsrequest = regioninstancegroupssetnamedportsrequest
132890	return c
132891}
132892
132893// RequestId sets the optional parameter "requestId": An optional
132894// request ID to identify requests. Specify a unique request ID so that
132895// if you must retry your request, the server will know to ignore the
132896// request if it has already been completed.
132897//
132898// For example, consider a situation where you make an initial request
132899// and the request times out. If you make the request again with the
132900// same request ID, the server can check if original operation with the
132901// same request ID was received, and if so, will ignore the second
132902// request. This prevents clients from accidentally creating duplicate
132903// commitments.
132904//
132905// The request ID must be a valid UUID with the exception that zero UUID
132906// is not supported (00000000-0000-0000-0000-000000000000).
132907func (c *RegionInstanceGroupsSetNamedPortsCall) RequestId(requestId string) *RegionInstanceGroupsSetNamedPortsCall {
132908	c.urlParams_.Set("requestId", requestId)
132909	return c
132910}
132911
132912// Fields allows partial responses to be retrieved. See
132913// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132914// for more information.
132915func (c *RegionInstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsSetNamedPortsCall {
132916	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132917	return c
132918}
132919
132920// Context sets the context to be used in this call's Do method. Any
132921// pending HTTP request will be aborted if the provided context is
132922// canceled.
132923func (c *RegionInstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *RegionInstanceGroupsSetNamedPortsCall {
132924	c.ctx_ = ctx
132925	return c
132926}
132927
132928// Header returns an http.Header that can be modified by the caller to
132929// add HTTP headers to the request.
132930func (c *RegionInstanceGroupsSetNamedPortsCall) Header() http.Header {
132931	if c.header_ == nil {
132932		c.header_ = make(http.Header)
132933	}
132934	return c.header_
132935}
132936
132937func (c *RegionInstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) {
132938	reqHeaders := make(http.Header)
132939	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
132940	for k, v := range c.header_ {
132941		reqHeaders[k] = v
132942	}
132943	reqHeaders.Set("User-Agent", c.s.userAgent())
132944	var body io.Reader = nil
132945	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupssetnamedportsrequest)
132946	if err != nil {
132947		return nil, err
132948	}
132949	reqHeaders.Set("Content-Type", "application/json")
132950	c.urlParams_.Set("alt", alt)
132951	c.urlParams_.Set("prettyPrint", "false")
132952	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts")
132953	urls += "?" + c.urlParams_.Encode()
132954	req, err := http.NewRequest("POST", urls, body)
132955	if err != nil {
132956		return nil, err
132957	}
132958	req.Header = reqHeaders
132959	googleapi.Expand(req.URL, map[string]string{
132960		"project":       c.project,
132961		"region":        c.region,
132962		"instanceGroup": c.instanceGroup,
132963	})
132964	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132965}
132966
132967// Do executes the "compute.regionInstanceGroups.setNamedPorts" call.
132968// Exactly one of *Operation or error will be non-nil. Any non-2xx
132969// status code is an error. Response headers are in either
132970// *Operation.ServerResponse.Header or (if a response was returned at
132971// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132972// to check whether the returned error was because
132973// http.StatusNotModified was returned.
132974func (c *RegionInstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132975	gensupport.SetOptions(c.urlParams_, opts...)
132976	res, err := c.doRequest("json")
132977	if res != nil && res.StatusCode == http.StatusNotModified {
132978		if res.Body != nil {
132979			res.Body.Close()
132980		}
132981		return nil, &googleapi.Error{
132982			Code:   res.StatusCode,
132983			Header: res.Header,
132984		}
132985	}
132986	if err != nil {
132987		return nil, err
132988	}
132989	defer googleapi.CloseBody(res)
132990	if err := googleapi.CheckResponse(res); err != nil {
132991		return nil, err
132992	}
132993	ret := &Operation{
132994		ServerResponse: googleapi.ServerResponse{
132995			Header:         res.Header,
132996			HTTPStatusCode: res.StatusCode,
132997		},
132998	}
132999	target := &ret
133000	if err := gensupport.DecodeResponse(target, res); err != nil {
133001		return nil, err
133002	}
133003	return ret, nil
133004	// {
133005	//   "description": "Sets the named ports for the specified regional instance group.",
133006	//   "httpMethod": "POST",
133007	//   "id": "compute.regionInstanceGroups.setNamedPorts",
133008	//   "parameterOrder": [
133009	//     "project",
133010	//     "region",
133011	//     "instanceGroup"
133012	//   ],
133013	//   "parameters": {
133014	//     "instanceGroup": {
133015	//       "description": "The name of the regional instance group where the named ports are updated.",
133016	//       "location": "path",
133017	//       "required": true,
133018	//       "type": "string"
133019	//     },
133020	//     "project": {
133021	//       "description": "Project ID for this request.",
133022	//       "location": "path",
133023	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133024	//       "required": true,
133025	//       "type": "string"
133026	//     },
133027	//     "region": {
133028	//       "description": "Name of the region scoping this request.",
133029	//       "location": "path",
133030	//       "required": true,
133031	//       "type": "string"
133032	//     },
133033	//     "requestId": {
133034	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
133035	//       "location": "query",
133036	//       "type": "string"
133037	//     }
133038	//   },
133039	//   "path": "{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts",
133040	//   "request": {
133041	//     "$ref": "RegionInstanceGroupsSetNamedPortsRequest"
133042	//   },
133043	//   "response": {
133044	//     "$ref": "Operation"
133045	//   },
133046	//   "scopes": [
133047	//     "https://www.googleapis.com/auth/cloud-platform",
133048	//     "https://www.googleapis.com/auth/compute"
133049	//   ]
133050	// }
133051
133052}
133053
133054// method id "compute.regionInstanceGroups.testIamPermissions":
133055
133056type RegionInstanceGroupsTestIamPermissionsCall struct {
133057	s                      *Service
133058	project                string
133059	region                 string
133060	resource               string
133061	testpermissionsrequest *TestPermissionsRequest
133062	urlParams_             gensupport.URLParams
133063	ctx_                   context.Context
133064	header_                http.Header
133065}
133066
133067// TestIamPermissions: Returns permissions that a caller has on the
133068// specified resource.
133069func (r *RegionInstanceGroupsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionInstanceGroupsTestIamPermissionsCall {
133070	c := &RegionInstanceGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133071	c.project = project
133072	c.region = region
133073	c.resource = resource
133074	c.testpermissionsrequest = testpermissionsrequest
133075	return c
133076}
133077
133078// Fields allows partial responses to be retrieved. See
133079// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133080// for more information.
133081func (c *RegionInstanceGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsTestIamPermissionsCall {
133082	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133083	return c
133084}
133085
133086// Context sets the context to be used in this call's Do method. Any
133087// pending HTTP request will be aborted if the provided context is
133088// canceled.
133089func (c *RegionInstanceGroupsTestIamPermissionsCall) Context(ctx context.Context) *RegionInstanceGroupsTestIamPermissionsCall {
133090	c.ctx_ = ctx
133091	return c
133092}
133093
133094// Header returns an http.Header that can be modified by the caller to
133095// add HTTP headers to the request.
133096func (c *RegionInstanceGroupsTestIamPermissionsCall) Header() http.Header {
133097	if c.header_ == nil {
133098		c.header_ = make(http.Header)
133099	}
133100	return c.header_
133101}
133102
133103func (c *RegionInstanceGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
133104	reqHeaders := make(http.Header)
133105	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
133106	for k, v := range c.header_ {
133107		reqHeaders[k] = v
133108	}
133109	reqHeaders.Set("User-Agent", c.s.userAgent())
133110	var body io.Reader = nil
133111	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
133112	if err != nil {
133113		return nil, err
133114	}
133115	reqHeaders.Set("Content-Type", "application/json")
133116	c.urlParams_.Set("alt", alt)
133117	c.urlParams_.Set("prettyPrint", "false")
133118	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{resource}/testIamPermissions")
133119	urls += "?" + c.urlParams_.Encode()
133120	req, err := http.NewRequest("POST", urls, body)
133121	if err != nil {
133122		return nil, err
133123	}
133124	req.Header = reqHeaders
133125	googleapi.Expand(req.URL, map[string]string{
133126		"project":  c.project,
133127		"region":   c.region,
133128		"resource": c.resource,
133129	})
133130	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133131}
133132
133133// Do executes the "compute.regionInstanceGroups.testIamPermissions" call.
133134// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
133135// non-2xx status code is an error. Response headers are in either
133136// *TestPermissionsResponse.ServerResponse.Header or (if a response was
133137// returned at all) in error.(*googleapi.Error).Header. Use
133138// googleapi.IsNotModified to check whether the returned error was
133139// because http.StatusNotModified was returned.
133140func (c *RegionInstanceGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
133141	gensupport.SetOptions(c.urlParams_, opts...)
133142	res, err := c.doRequest("json")
133143	if res != nil && res.StatusCode == http.StatusNotModified {
133144		if res.Body != nil {
133145			res.Body.Close()
133146		}
133147		return nil, &googleapi.Error{
133148			Code:   res.StatusCode,
133149			Header: res.Header,
133150		}
133151	}
133152	if err != nil {
133153		return nil, err
133154	}
133155	defer googleapi.CloseBody(res)
133156	if err := googleapi.CheckResponse(res); err != nil {
133157		return nil, err
133158	}
133159	ret := &TestPermissionsResponse{
133160		ServerResponse: googleapi.ServerResponse{
133161			Header:         res.Header,
133162			HTTPStatusCode: res.StatusCode,
133163		},
133164	}
133165	target := &ret
133166	if err := gensupport.DecodeResponse(target, res); err != nil {
133167		return nil, err
133168	}
133169	return ret, nil
133170	// {
133171	//   "description": "Returns permissions that a caller has on the specified resource.",
133172	//   "httpMethod": "POST",
133173	//   "id": "compute.regionInstanceGroups.testIamPermissions",
133174	//   "parameterOrder": [
133175	//     "project",
133176	//     "region",
133177	//     "resource"
133178	//   ],
133179	//   "parameters": {
133180	//     "project": {
133181	//       "description": "Project ID for this request.",
133182	//       "location": "path",
133183	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133184	//       "required": true,
133185	//       "type": "string"
133186	//     },
133187	//     "region": {
133188	//       "description": "The name of the region for this request.",
133189	//       "location": "path",
133190	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133191	//       "required": true,
133192	//       "type": "string"
133193	//     },
133194	//     "resource": {
133195	//       "description": "Name or id of the resource for this request.",
133196	//       "location": "path",
133197	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133198	//       "required": true,
133199	//       "type": "string"
133200	//     }
133201	//   },
133202	//   "path": "{project}/regions/{region}/instanceGroups/{resource}/testIamPermissions",
133203	//   "request": {
133204	//     "$ref": "TestPermissionsRequest"
133205	//   },
133206	//   "response": {
133207	//     "$ref": "TestPermissionsResponse"
133208	//   },
133209	//   "scopes": [
133210	//     "https://www.googleapis.com/auth/cloud-platform",
133211	//     "https://www.googleapis.com/auth/compute",
133212	//     "https://www.googleapis.com/auth/compute.readonly"
133213	//   ]
133214	// }
133215
133216}
133217
133218// method id "compute.regionNetworkEndpointGroups.delete":
133219
133220type RegionNetworkEndpointGroupsDeleteCall struct {
133221	s                    *Service
133222	project              string
133223	region               string
133224	networkEndpointGroup string
133225	urlParams_           gensupport.URLParams
133226	ctx_                 context.Context
133227	header_              http.Header
133228}
133229
133230// Delete: Deletes the specified network endpoint group. Note that the
133231// NEG cannot be deleted if it is configured as a backend of a backend
133232// service.
133233func (r *RegionNetworkEndpointGroupsService) Delete(project string, region string, networkEndpointGroup string) *RegionNetworkEndpointGroupsDeleteCall {
133234	c := &RegionNetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133235	c.project = project
133236	c.region = region
133237	c.networkEndpointGroup = networkEndpointGroup
133238	return c
133239}
133240
133241// RequestId sets the optional parameter "requestId": An optional
133242// request ID to identify requests. Specify a unique request ID so that
133243// if you must retry your request, the server will know to ignore the
133244// request if it has already been completed.
133245//
133246// For example, consider a situation where you make an initial request
133247// and the request times out. If you make the request again with the
133248// same request ID, the server can check if original operation with the
133249// same request ID was received, and if so, will ignore the second
133250// request. This prevents clients from accidentally creating duplicate
133251// commitments.
133252//
133253// The request ID must be a valid UUID with the exception that zero UUID
133254// is not supported (00000000-0000-0000-0000-000000000000).
133255func (c *RegionNetworkEndpointGroupsDeleteCall) RequestId(requestId string) *RegionNetworkEndpointGroupsDeleteCall {
133256	c.urlParams_.Set("requestId", requestId)
133257	return c
133258}
133259
133260// Fields allows partial responses to be retrieved. See
133261// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133262// for more information.
133263func (c *RegionNetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsDeleteCall {
133264	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133265	return c
133266}
133267
133268// Context sets the context to be used in this call's Do method. Any
133269// pending HTTP request will be aborted if the provided context is
133270// canceled.
133271func (c *RegionNetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsDeleteCall {
133272	c.ctx_ = ctx
133273	return c
133274}
133275
133276// Header returns an http.Header that can be modified by the caller to
133277// add HTTP headers to the request.
133278func (c *RegionNetworkEndpointGroupsDeleteCall) Header() http.Header {
133279	if c.header_ == nil {
133280		c.header_ = make(http.Header)
133281	}
133282	return c.header_
133283}
133284
133285func (c *RegionNetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
133286	reqHeaders := make(http.Header)
133287	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
133288	for k, v := range c.header_ {
133289		reqHeaders[k] = v
133290	}
133291	reqHeaders.Set("User-Agent", c.s.userAgent())
133292	var body io.Reader = nil
133293	c.urlParams_.Set("alt", alt)
133294	c.urlParams_.Set("prettyPrint", "false")
133295	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}")
133296	urls += "?" + c.urlParams_.Encode()
133297	req, err := http.NewRequest("DELETE", urls, body)
133298	if err != nil {
133299		return nil, err
133300	}
133301	req.Header = reqHeaders
133302	googleapi.Expand(req.URL, map[string]string{
133303		"project":              c.project,
133304		"region":               c.region,
133305		"networkEndpointGroup": c.networkEndpointGroup,
133306	})
133307	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133308}
133309
133310// Do executes the "compute.regionNetworkEndpointGroups.delete" call.
133311// Exactly one of *Operation or error will be non-nil. Any non-2xx
133312// status code is an error. Response headers are in either
133313// *Operation.ServerResponse.Header or (if a response was returned at
133314// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133315// to check whether the returned error was because
133316// http.StatusNotModified was returned.
133317func (c *RegionNetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
133318	gensupport.SetOptions(c.urlParams_, opts...)
133319	res, err := c.doRequest("json")
133320	if res != nil && res.StatusCode == http.StatusNotModified {
133321		if res.Body != nil {
133322			res.Body.Close()
133323		}
133324		return nil, &googleapi.Error{
133325			Code:   res.StatusCode,
133326			Header: res.Header,
133327		}
133328	}
133329	if err != nil {
133330		return nil, err
133331	}
133332	defer googleapi.CloseBody(res)
133333	if err := googleapi.CheckResponse(res); err != nil {
133334		return nil, err
133335	}
133336	ret := &Operation{
133337		ServerResponse: googleapi.ServerResponse{
133338			Header:         res.Header,
133339			HTTPStatusCode: res.StatusCode,
133340		},
133341	}
133342	target := &ret
133343	if err := gensupport.DecodeResponse(target, res); err != nil {
133344		return nil, err
133345	}
133346	return ret, nil
133347	// {
133348	//   "description": "Deletes the specified network endpoint group. Note that the NEG cannot be deleted if it is configured as a backend of a backend service.",
133349	//   "httpMethod": "DELETE",
133350	//   "id": "compute.regionNetworkEndpointGroups.delete",
133351	//   "parameterOrder": [
133352	//     "project",
133353	//     "region",
133354	//     "networkEndpointGroup"
133355	//   ],
133356	//   "parameters": {
133357	//     "networkEndpointGroup": {
133358	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
133359	//       "location": "path",
133360	//       "required": true,
133361	//       "type": "string"
133362	//     },
133363	//     "project": {
133364	//       "description": "Project ID for this request.",
133365	//       "location": "path",
133366	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133367	//       "required": true,
133368	//       "type": "string"
133369	//     },
133370	//     "region": {
133371	//       "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.",
133372	//       "location": "path",
133373	//       "required": true,
133374	//       "type": "string"
133375	//     },
133376	//     "requestId": {
133377	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
133378	//       "location": "query",
133379	//       "type": "string"
133380	//     }
133381	//   },
133382	//   "path": "{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}",
133383	//   "response": {
133384	//     "$ref": "Operation"
133385	//   },
133386	//   "scopes": [
133387	//     "https://www.googleapis.com/auth/cloud-platform",
133388	//     "https://www.googleapis.com/auth/compute"
133389	//   ]
133390	// }
133391
133392}
133393
133394// method id "compute.regionNetworkEndpointGroups.get":
133395
133396type RegionNetworkEndpointGroupsGetCall struct {
133397	s                    *Service
133398	project              string
133399	region               string
133400	networkEndpointGroup string
133401	urlParams_           gensupport.URLParams
133402	ifNoneMatch_         string
133403	ctx_                 context.Context
133404	header_              http.Header
133405}
133406
133407// Get: Returns the specified network endpoint group. Gets a list of
133408// available network endpoint groups by making a list() request.
133409func (r *RegionNetworkEndpointGroupsService) Get(project string, region string, networkEndpointGroup string) *RegionNetworkEndpointGroupsGetCall {
133410	c := &RegionNetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133411	c.project = project
133412	c.region = region
133413	c.networkEndpointGroup = networkEndpointGroup
133414	return c
133415}
133416
133417// Fields allows partial responses to be retrieved. See
133418// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133419// for more information.
133420func (c *RegionNetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsGetCall {
133421	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133422	return c
133423}
133424
133425// IfNoneMatch sets the optional parameter which makes the operation
133426// fail if the object's ETag matches the given value. This is useful for
133427// getting updates only after the object has changed since the last
133428// request. Use googleapi.IsNotModified to check whether the response
133429// error from Do is the result of In-None-Match.
133430func (c *RegionNetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *RegionNetworkEndpointGroupsGetCall {
133431	c.ifNoneMatch_ = entityTag
133432	return c
133433}
133434
133435// Context sets the context to be used in this call's Do method. Any
133436// pending HTTP request will be aborted if the provided context is
133437// canceled.
133438func (c *RegionNetworkEndpointGroupsGetCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsGetCall {
133439	c.ctx_ = ctx
133440	return c
133441}
133442
133443// Header returns an http.Header that can be modified by the caller to
133444// add HTTP headers to the request.
133445func (c *RegionNetworkEndpointGroupsGetCall) Header() http.Header {
133446	if c.header_ == nil {
133447		c.header_ = make(http.Header)
133448	}
133449	return c.header_
133450}
133451
133452func (c *RegionNetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
133453	reqHeaders := make(http.Header)
133454	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
133455	for k, v := range c.header_ {
133456		reqHeaders[k] = v
133457	}
133458	reqHeaders.Set("User-Agent", c.s.userAgent())
133459	if c.ifNoneMatch_ != "" {
133460		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
133461	}
133462	var body io.Reader = nil
133463	c.urlParams_.Set("alt", alt)
133464	c.urlParams_.Set("prettyPrint", "false")
133465	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}")
133466	urls += "?" + c.urlParams_.Encode()
133467	req, err := http.NewRequest("GET", urls, body)
133468	if err != nil {
133469		return nil, err
133470	}
133471	req.Header = reqHeaders
133472	googleapi.Expand(req.URL, map[string]string{
133473		"project":              c.project,
133474		"region":               c.region,
133475		"networkEndpointGroup": c.networkEndpointGroup,
133476	})
133477	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133478}
133479
133480// Do executes the "compute.regionNetworkEndpointGroups.get" call.
133481// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
133482// non-2xx status code is an error. Response headers are in either
133483// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
133484// returned at all) in error.(*googleapi.Error).Header. Use
133485// googleapi.IsNotModified to check whether the returned error was
133486// because http.StatusNotModified was returned.
133487func (c *RegionNetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
133488	gensupport.SetOptions(c.urlParams_, opts...)
133489	res, err := c.doRequest("json")
133490	if res != nil && res.StatusCode == http.StatusNotModified {
133491		if res.Body != nil {
133492			res.Body.Close()
133493		}
133494		return nil, &googleapi.Error{
133495			Code:   res.StatusCode,
133496			Header: res.Header,
133497		}
133498	}
133499	if err != nil {
133500		return nil, err
133501	}
133502	defer googleapi.CloseBody(res)
133503	if err := googleapi.CheckResponse(res); err != nil {
133504		return nil, err
133505	}
133506	ret := &NetworkEndpointGroup{
133507		ServerResponse: googleapi.ServerResponse{
133508			Header:         res.Header,
133509			HTTPStatusCode: res.StatusCode,
133510		},
133511	}
133512	target := &ret
133513	if err := gensupport.DecodeResponse(target, res); err != nil {
133514		return nil, err
133515	}
133516	return ret, nil
133517	// {
133518	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
133519	//   "httpMethod": "GET",
133520	//   "id": "compute.regionNetworkEndpointGroups.get",
133521	//   "parameterOrder": [
133522	//     "project",
133523	//     "region",
133524	//     "networkEndpointGroup"
133525	//   ],
133526	//   "parameters": {
133527	//     "networkEndpointGroup": {
133528	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
133529	//       "location": "path",
133530	//       "required": true,
133531	//       "type": "string"
133532	//     },
133533	//     "project": {
133534	//       "description": "Project ID for this request.",
133535	//       "location": "path",
133536	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133537	//       "required": true,
133538	//       "type": "string"
133539	//     },
133540	//     "region": {
133541	//       "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.",
133542	//       "location": "path",
133543	//       "required": true,
133544	//       "type": "string"
133545	//     }
133546	//   },
133547	//   "path": "{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}",
133548	//   "response": {
133549	//     "$ref": "NetworkEndpointGroup"
133550	//   },
133551	//   "scopes": [
133552	//     "https://www.googleapis.com/auth/cloud-platform",
133553	//     "https://www.googleapis.com/auth/compute",
133554	//     "https://www.googleapis.com/auth/compute.readonly"
133555	//   ]
133556	// }
133557
133558}
133559
133560// method id "compute.regionNetworkEndpointGroups.insert":
133561
133562type RegionNetworkEndpointGroupsInsertCall struct {
133563	s                    *Service
133564	project              string
133565	region               string
133566	networkendpointgroup *NetworkEndpointGroup
133567	urlParams_           gensupport.URLParams
133568	ctx_                 context.Context
133569	header_              http.Header
133570}
133571
133572// Insert: Creates a network endpoint group in the specified project
133573// using the parameters that are included in the request.
133574func (r *RegionNetworkEndpointGroupsService) Insert(project string, region string, networkendpointgroup *NetworkEndpointGroup) *RegionNetworkEndpointGroupsInsertCall {
133575	c := &RegionNetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133576	c.project = project
133577	c.region = region
133578	c.networkendpointgroup = networkendpointgroup
133579	return c
133580}
133581
133582// RequestId sets the optional parameter "requestId": An optional
133583// request ID to identify requests. Specify a unique request ID so that
133584// if you must retry your request, the server will know to ignore the
133585// request if it has already been completed.
133586//
133587// For example, consider a situation where you make an initial request
133588// and the request times out. If you make the request again with the
133589// same request ID, the server can check if original operation with the
133590// same request ID was received, and if so, will ignore the second
133591// request. This prevents clients from accidentally creating duplicate
133592// commitments.
133593//
133594// The request ID must be a valid UUID with the exception that zero UUID
133595// is not supported (00000000-0000-0000-0000-000000000000).
133596func (c *RegionNetworkEndpointGroupsInsertCall) RequestId(requestId string) *RegionNetworkEndpointGroupsInsertCall {
133597	c.urlParams_.Set("requestId", requestId)
133598	return c
133599}
133600
133601// Fields allows partial responses to be retrieved. See
133602// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133603// for more information.
133604func (c *RegionNetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsInsertCall {
133605	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133606	return c
133607}
133608
133609// Context sets the context to be used in this call's Do method. Any
133610// pending HTTP request will be aborted if the provided context is
133611// canceled.
133612func (c *RegionNetworkEndpointGroupsInsertCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsInsertCall {
133613	c.ctx_ = ctx
133614	return c
133615}
133616
133617// Header returns an http.Header that can be modified by the caller to
133618// add HTTP headers to the request.
133619func (c *RegionNetworkEndpointGroupsInsertCall) Header() http.Header {
133620	if c.header_ == nil {
133621		c.header_ = make(http.Header)
133622	}
133623	return c.header_
133624}
133625
133626func (c *RegionNetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
133627	reqHeaders := make(http.Header)
133628	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
133629	for k, v := range c.header_ {
133630		reqHeaders[k] = v
133631	}
133632	reqHeaders.Set("User-Agent", c.s.userAgent())
133633	var body io.Reader = nil
133634	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
133635	if err != nil {
133636		return nil, err
133637	}
133638	reqHeaders.Set("Content-Type", "application/json")
133639	c.urlParams_.Set("alt", alt)
133640	c.urlParams_.Set("prettyPrint", "false")
133641	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/networkEndpointGroups")
133642	urls += "?" + c.urlParams_.Encode()
133643	req, err := http.NewRequest("POST", urls, body)
133644	if err != nil {
133645		return nil, err
133646	}
133647	req.Header = reqHeaders
133648	googleapi.Expand(req.URL, map[string]string{
133649		"project": c.project,
133650		"region":  c.region,
133651	})
133652	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133653}
133654
133655// Do executes the "compute.regionNetworkEndpointGroups.insert" call.
133656// Exactly one of *Operation or error will be non-nil. Any non-2xx
133657// status code is an error. Response headers are in either
133658// *Operation.ServerResponse.Header or (if a response was returned at
133659// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133660// to check whether the returned error was because
133661// http.StatusNotModified was returned.
133662func (c *RegionNetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
133663	gensupport.SetOptions(c.urlParams_, opts...)
133664	res, err := c.doRequest("json")
133665	if res != nil && res.StatusCode == http.StatusNotModified {
133666		if res.Body != nil {
133667			res.Body.Close()
133668		}
133669		return nil, &googleapi.Error{
133670			Code:   res.StatusCode,
133671			Header: res.Header,
133672		}
133673	}
133674	if err != nil {
133675		return nil, err
133676	}
133677	defer googleapi.CloseBody(res)
133678	if err := googleapi.CheckResponse(res); err != nil {
133679		return nil, err
133680	}
133681	ret := &Operation{
133682		ServerResponse: googleapi.ServerResponse{
133683			Header:         res.Header,
133684			HTTPStatusCode: res.StatusCode,
133685		},
133686	}
133687	target := &ret
133688	if err := gensupport.DecodeResponse(target, res); err != nil {
133689		return nil, err
133690	}
133691	return ret, nil
133692	// {
133693	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
133694	//   "httpMethod": "POST",
133695	//   "id": "compute.regionNetworkEndpointGroups.insert",
133696	//   "parameterOrder": [
133697	//     "project",
133698	//     "region"
133699	//   ],
133700	//   "parameters": {
133701	//     "project": {
133702	//       "description": "Project ID for this request.",
133703	//       "location": "path",
133704	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133705	//       "required": true,
133706	//       "type": "string"
133707	//     },
133708	//     "region": {
133709	//       "description": "The name of the region where you want to create the network endpoint group. It should comply with RFC1035.",
133710	//       "location": "path",
133711	//       "required": true,
133712	//       "type": "string"
133713	//     },
133714	//     "requestId": {
133715	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
133716	//       "location": "query",
133717	//       "type": "string"
133718	//     }
133719	//   },
133720	//   "path": "{project}/regions/{region}/networkEndpointGroups",
133721	//   "request": {
133722	//     "$ref": "NetworkEndpointGroup"
133723	//   },
133724	//   "response": {
133725	//     "$ref": "Operation"
133726	//   },
133727	//   "scopes": [
133728	//     "https://www.googleapis.com/auth/cloud-platform",
133729	//     "https://www.googleapis.com/auth/compute"
133730	//   ]
133731	// }
133732
133733}
133734
133735// method id "compute.regionNetworkEndpointGroups.list":
133736
133737type RegionNetworkEndpointGroupsListCall struct {
133738	s            *Service
133739	project      string
133740	region       string
133741	urlParams_   gensupport.URLParams
133742	ifNoneMatch_ string
133743	ctx_         context.Context
133744	header_      http.Header
133745}
133746
133747// List: Retrieves the list of regional network endpoint groups
133748// available to the specified project in the given region.
133749func (r *RegionNetworkEndpointGroupsService) List(project string, region string) *RegionNetworkEndpointGroupsListCall {
133750	c := &RegionNetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133751	c.project = project
133752	c.region = region
133753	return c
133754}
133755
133756// Filter sets the optional parameter "filter": A filter expression that
133757// filters resources listed in the response. The expression must specify
133758// the field name, a comparison operator, and the value that you want to
133759// use for filtering. The value must be a string, a number, or a
133760// boolean. The comparison operator must be either =, !=, >, or <.
133761//
133762// For example, if you are filtering Compute Engine instances, you can
133763// exclude instances named example-instance by specifying name !=
133764// example-instance.
133765//
133766// You can also filter nested fields. For example, you could specify
133767// scheduling.automaticRestart = false to include instances only if they
133768// are not scheduled for automatic restarts. You can use filtering on
133769// nested fields to filter based on resource labels.
133770//
133771// To filter on multiple expressions, provide each separate expression
133772// within parentheses. For example, (scheduling.automaticRestart = true)
133773// (cpuPlatform = "Intel Skylake"). By default, each expression is an
133774// AND expression. However, you can include AND and OR expressions
133775// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
133776// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
133777// true).
133778func (c *RegionNetworkEndpointGroupsListCall) Filter(filter string) *RegionNetworkEndpointGroupsListCall {
133779	c.urlParams_.Set("filter", filter)
133780	return c
133781}
133782
133783// MaxResults sets the optional parameter "maxResults": The maximum
133784// number of results per page that should be returned. If the number of
133785// available results is larger than maxResults, Compute Engine returns a
133786// nextPageToken that can be used to get the next page of results in
133787// subsequent list requests. Acceptable values are 0 to 500, inclusive.
133788// (Default: 500)
133789func (c *RegionNetworkEndpointGroupsListCall) MaxResults(maxResults int64) *RegionNetworkEndpointGroupsListCall {
133790	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
133791	return c
133792}
133793
133794// OrderBy sets the optional parameter "orderBy": Sorts list results by
133795// a certain order. By default, results are returned in alphanumerical
133796// order based on the resource name.
133797//
133798// You can also sort results in descending order based on the creation
133799// timestamp using orderBy="creationTimestamp desc". This sorts results
133800// based on the creationTimestamp field in reverse chronological order
133801// (newest result first). Use this to sort resources like operations so
133802// that the newest operation is returned first.
133803//
133804// Currently, only sorting by name or creationTimestamp desc is
133805// supported.
133806func (c *RegionNetworkEndpointGroupsListCall) OrderBy(orderBy string) *RegionNetworkEndpointGroupsListCall {
133807	c.urlParams_.Set("orderBy", orderBy)
133808	return c
133809}
133810
133811// PageToken sets the optional parameter "pageToken": Specifies a page
133812// token to use. Set pageToken to the nextPageToken returned by a
133813// previous list request to get the next page of results.
133814func (c *RegionNetworkEndpointGroupsListCall) PageToken(pageToken string) *RegionNetworkEndpointGroupsListCall {
133815	c.urlParams_.Set("pageToken", pageToken)
133816	return c
133817}
133818
133819// Fields allows partial responses to be retrieved. See
133820// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133821// for more information.
133822func (c *RegionNetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsListCall {
133823	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133824	return c
133825}
133826
133827// IfNoneMatch sets the optional parameter which makes the operation
133828// fail if the object's ETag matches the given value. This is useful for
133829// getting updates only after the object has changed since the last
133830// request. Use googleapi.IsNotModified to check whether the response
133831// error from Do is the result of In-None-Match.
133832func (c *RegionNetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *RegionNetworkEndpointGroupsListCall {
133833	c.ifNoneMatch_ = entityTag
133834	return c
133835}
133836
133837// Context sets the context to be used in this call's Do method. Any
133838// pending HTTP request will be aborted if the provided context is
133839// canceled.
133840func (c *RegionNetworkEndpointGroupsListCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsListCall {
133841	c.ctx_ = ctx
133842	return c
133843}
133844
133845// Header returns an http.Header that can be modified by the caller to
133846// add HTTP headers to the request.
133847func (c *RegionNetworkEndpointGroupsListCall) Header() http.Header {
133848	if c.header_ == nil {
133849		c.header_ = make(http.Header)
133850	}
133851	return c.header_
133852}
133853
133854func (c *RegionNetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
133855	reqHeaders := make(http.Header)
133856	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
133857	for k, v := range c.header_ {
133858		reqHeaders[k] = v
133859	}
133860	reqHeaders.Set("User-Agent", c.s.userAgent())
133861	if c.ifNoneMatch_ != "" {
133862		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
133863	}
133864	var body io.Reader = nil
133865	c.urlParams_.Set("alt", alt)
133866	c.urlParams_.Set("prettyPrint", "false")
133867	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/networkEndpointGroups")
133868	urls += "?" + c.urlParams_.Encode()
133869	req, err := http.NewRequest("GET", urls, body)
133870	if err != nil {
133871		return nil, err
133872	}
133873	req.Header = reqHeaders
133874	googleapi.Expand(req.URL, map[string]string{
133875		"project": c.project,
133876		"region":  c.region,
133877	})
133878	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133879}
133880
133881// Do executes the "compute.regionNetworkEndpointGroups.list" call.
133882// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
133883// Any non-2xx status code is an error. Response headers are in either
133884// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
133885// returned at all) in error.(*googleapi.Error).Header. Use
133886// googleapi.IsNotModified to check whether the returned error was
133887// because http.StatusNotModified was returned.
133888func (c *RegionNetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
133889	gensupport.SetOptions(c.urlParams_, opts...)
133890	res, err := c.doRequest("json")
133891	if res != nil && res.StatusCode == http.StatusNotModified {
133892		if res.Body != nil {
133893			res.Body.Close()
133894		}
133895		return nil, &googleapi.Error{
133896			Code:   res.StatusCode,
133897			Header: res.Header,
133898		}
133899	}
133900	if err != nil {
133901		return nil, err
133902	}
133903	defer googleapi.CloseBody(res)
133904	if err := googleapi.CheckResponse(res); err != nil {
133905		return nil, err
133906	}
133907	ret := &NetworkEndpointGroupList{
133908		ServerResponse: googleapi.ServerResponse{
133909			Header:         res.Header,
133910			HTTPStatusCode: res.StatusCode,
133911		},
133912	}
133913	target := &ret
133914	if err := gensupport.DecodeResponse(target, res); err != nil {
133915		return nil, err
133916	}
133917	return ret, nil
133918	// {
133919	//   "description": "Retrieves the list of regional network endpoint groups available to the specified project in the given region.",
133920	//   "httpMethod": "GET",
133921	//   "id": "compute.regionNetworkEndpointGroups.list",
133922	//   "parameterOrder": [
133923	//     "project",
133924	//     "region"
133925	//   ],
133926	//   "parameters": {
133927	//     "filter": {
133928	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
133929	//       "location": "query",
133930	//       "type": "string"
133931	//     },
133932	//     "maxResults": {
133933	//       "default": "500",
133934	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
133935	//       "format": "uint32",
133936	//       "location": "query",
133937	//       "minimum": "0",
133938	//       "type": "integer"
133939	//     },
133940	//     "orderBy": {
133941	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
133942	//       "location": "query",
133943	//       "type": "string"
133944	//     },
133945	//     "pageToken": {
133946	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
133947	//       "location": "query",
133948	//       "type": "string"
133949	//     },
133950	//     "project": {
133951	//       "description": "Project ID for this request.",
133952	//       "location": "path",
133953	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133954	//       "required": true,
133955	//       "type": "string"
133956	//     },
133957	//     "region": {
133958	//       "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.",
133959	//       "location": "path",
133960	//       "required": true,
133961	//       "type": "string"
133962	//     }
133963	//   },
133964	//   "path": "{project}/regions/{region}/networkEndpointGroups",
133965	//   "response": {
133966	//     "$ref": "NetworkEndpointGroupList"
133967	//   },
133968	//   "scopes": [
133969	//     "https://www.googleapis.com/auth/cloud-platform",
133970	//     "https://www.googleapis.com/auth/compute",
133971	//     "https://www.googleapis.com/auth/compute.readonly"
133972	//   ]
133973	// }
133974
133975}
133976
133977// Pages invokes f for each page of results.
133978// A non-nil error returned from f will halt the iteration.
133979// The provided context supersedes any context provided to the Context method.
133980func (c *RegionNetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
133981	c.ctx_ = ctx
133982	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
133983	for {
133984		x, err := c.Do()
133985		if err != nil {
133986			return err
133987		}
133988		if err := f(x); err != nil {
133989			return err
133990		}
133991		if x.NextPageToken == "" {
133992			return nil
133993		}
133994		c.PageToken(x.NextPageToken)
133995	}
133996}
133997
133998// method id "compute.regionNotificationEndpoints.delete":
133999
134000type RegionNotificationEndpointsDeleteCall struct {
134001	s                    *Service
134002	project              string
134003	region               string
134004	notificationEndpoint string
134005	urlParams_           gensupport.URLParams
134006	ctx_                 context.Context
134007	header_              http.Header
134008}
134009
134010// Delete: Deletes the specified NotificationEndpoint in the given
134011// region
134012func (r *RegionNotificationEndpointsService) Delete(project string, region string, notificationEndpoint string) *RegionNotificationEndpointsDeleteCall {
134013	c := &RegionNotificationEndpointsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134014	c.project = project
134015	c.region = region
134016	c.notificationEndpoint = notificationEndpoint
134017	return c
134018}
134019
134020// RequestId sets the optional parameter "requestId": An optional
134021// request ID to identify requests. Specify a unique request ID so that
134022// if you must retry your request, the server will know to ignore the
134023// request if it has already been completed.
134024//
134025// For example, consider a situation where you make an initial request
134026// and the request times out. If you make the request again with the
134027// same request ID, the server can check if original operation with the
134028// same request ID was received, and if so, will ignore the second
134029// request. This prevents clients from accidentally creating duplicate
134030// commitments.
134031//
134032// The request ID must be a valid UUID with the exception that zero UUID
134033// is not supported (00000000-0000-0000-0000-000000000000).
134034func (c *RegionNotificationEndpointsDeleteCall) RequestId(requestId string) *RegionNotificationEndpointsDeleteCall {
134035	c.urlParams_.Set("requestId", requestId)
134036	return c
134037}
134038
134039// Fields allows partial responses to be retrieved. See
134040// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134041// for more information.
134042func (c *RegionNotificationEndpointsDeleteCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsDeleteCall {
134043	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134044	return c
134045}
134046
134047// Context sets the context to be used in this call's Do method. Any
134048// pending HTTP request will be aborted if the provided context is
134049// canceled.
134050func (c *RegionNotificationEndpointsDeleteCall) Context(ctx context.Context) *RegionNotificationEndpointsDeleteCall {
134051	c.ctx_ = ctx
134052	return c
134053}
134054
134055// Header returns an http.Header that can be modified by the caller to
134056// add HTTP headers to the request.
134057func (c *RegionNotificationEndpointsDeleteCall) Header() http.Header {
134058	if c.header_ == nil {
134059		c.header_ = make(http.Header)
134060	}
134061	return c.header_
134062}
134063
134064func (c *RegionNotificationEndpointsDeleteCall) doRequest(alt string) (*http.Response, error) {
134065	reqHeaders := make(http.Header)
134066	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
134067	for k, v := range c.header_ {
134068		reqHeaders[k] = v
134069	}
134070	reqHeaders.Set("User-Agent", c.s.userAgent())
134071	var body io.Reader = nil
134072	c.urlParams_.Set("alt", alt)
134073	c.urlParams_.Set("prettyPrint", "false")
134074	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}")
134075	urls += "?" + c.urlParams_.Encode()
134076	req, err := http.NewRequest("DELETE", urls, body)
134077	if err != nil {
134078		return nil, err
134079	}
134080	req.Header = reqHeaders
134081	googleapi.Expand(req.URL, map[string]string{
134082		"project":              c.project,
134083		"region":               c.region,
134084		"notificationEndpoint": c.notificationEndpoint,
134085	})
134086	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134087}
134088
134089// Do executes the "compute.regionNotificationEndpoints.delete" call.
134090// Exactly one of *Operation or error will be non-nil. Any non-2xx
134091// status code is an error. Response headers are in either
134092// *Operation.ServerResponse.Header or (if a response was returned at
134093// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
134094// to check whether the returned error was because
134095// http.StatusNotModified was returned.
134096func (c *RegionNotificationEndpointsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
134097	gensupport.SetOptions(c.urlParams_, opts...)
134098	res, err := c.doRequest("json")
134099	if res != nil && res.StatusCode == http.StatusNotModified {
134100		if res.Body != nil {
134101			res.Body.Close()
134102		}
134103		return nil, &googleapi.Error{
134104			Code:   res.StatusCode,
134105			Header: res.Header,
134106		}
134107	}
134108	if err != nil {
134109		return nil, err
134110	}
134111	defer googleapi.CloseBody(res)
134112	if err := googleapi.CheckResponse(res); err != nil {
134113		return nil, err
134114	}
134115	ret := &Operation{
134116		ServerResponse: googleapi.ServerResponse{
134117			Header:         res.Header,
134118			HTTPStatusCode: res.StatusCode,
134119		},
134120	}
134121	target := &ret
134122	if err := gensupport.DecodeResponse(target, res); err != nil {
134123		return nil, err
134124	}
134125	return ret, nil
134126	// {
134127	//   "description": "Deletes the specified NotificationEndpoint in the given region",
134128	//   "httpMethod": "DELETE",
134129	//   "id": "compute.regionNotificationEndpoints.delete",
134130	//   "parameterOrder": [
134131	//     "project",
134132	//     "region",
134133	//     "notificationEndpoint"
134134	//   ],
134135	//   "parameters": {
134136	//     "notificationEndpoint": {
134137	//       "description": "Name of the NotificationEndpoint resource to delete.",
134138	//       "location": "path",
134139	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
134140	//       "required": true,
134141	//       "type": "string"
134142	//     },
134143	//     "project": {
134144	//       "description": "Project ID for this request.",
134145	//       "location": "path",
134146	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134147	//       "required": true,
134148	//       "type": "string"
134149	//     },
134150	//     "region": {
134151	//       "description": "Name of the region scoping this request.",
134152	//       "location": "path",
134153	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134154	//       "required": true,
134155	//       "type": "string"
134156	//     },
134157	//     "requestId": {
134158	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
134159	//       "location": "query",
134160	//       "type": "string"
134161	//     }
134162	//   },
134163	//   "path": "{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
134164	//   "response": {
134165	//     "$ref": "Operation"
134166	//   },
134167	//   "scopes": [
134168	//     "https://www.googleapis.com/auth/cloud-platform",
134169	//     "https://www.googleapis.com/auth/compute"
134170	//   ]
134171	// }
134172
134173}
134174
134175// method id "compute.regionNotificationEndpoints.get":
134176
134177type RegionNotificationEndpointsGetCall struct {
134178	s                    *Service
134179	project              string
134180	region               string
134181	notificationEndpoint string
134182	urlParams_           gensupport.URLParams
134183	ifNoneMatch_         string
134184	ctx_                 context.Context
134185	header_              http.Header
134186}
134187
134188// Get: Returns the specified NotificationEndpoint resource in the given
134189// region.
134190func (r *RegionNotificationEndpointsService) Get(project string, region string, notificationEndpoint string) *RegionNotificationEndpointsGetCall {
134191	c := &RegionNotificationEndpointsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134192	c.project = project
134193	c.region = region
134194	c.notificationEndpoint = notificationEndpoint
134195	return c
134196}
134197
134198// Fields allows partial responses to be retrieved. See
134199// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134200// for more information.
134201func (c *RegionNotificationEndpointsGetCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsGetCall {
134202	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134203	return c
134204}
134205
134206// IfNoneMatch sets the optional parameter which makes the operation
134207// fail if the object's ETag matches the given value. This is useful for
134208// getting updates only after the object has changed since the last
134209// request. Use googleapi.IsNotModified to check whether the response
134210// error from Do is the result of In-None-Match.
134211func (c *RegionNotificationEndpointsGetCall) IfNoneMatch(entityTag string) *RegionNotificationEndpointsGetCall {
134212	c.ifNoneMatch_ = entityTag
134213	return c
134214}
134215
134216// Context sets the context to be used in this call's Do method. Any
134217// pending HTTP request will be aborted if the provided context is
134218// canceled.
134219func (c *RegionNotificationEndpointsGetCall) Context(ctx context.Context) *RegionNotificationEndpointsGetCall {
134220	c.ctx_ = ctx
134221	return c
134222}
134223
134224// Header returns an http.Header that can be modified by the caller to
134225// add HTTP headers to the request.
134226func (c *RegionNotificationEndpointsGetCall) Header() http.Header {
134227	if c.header_ == nil {
134228		c.header_ = make(http.Header)
134229	}
134230	return c.header_
134231}
134232
134233func (c *RegionNotificationEndpointsGetCall) doRequest(alt string) (*http.Response, error) {
134234	reqHeaders := make(http.Header)
134235	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
134236	for k, v := range c.header_ {
134237		reqHeaders[k] = v
134238	}
134239	reqHeaders.Set("User-Agent", c.s.userAgent())
134240	if c.ifNoneMatch_ != "" {
134241		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
134242	}
134243	var body io.Reader = nil
134244	c.urlParams_.Set("alt", alt)
134245	c.urlParams_.Set("prettyPrint", "false")
134246	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}")
134247	urls += "?" + c.urlParams_.Encode()
134248	req, err := http.NewRequest("GET", urls, body)
134249	if err != nil {
134250		return nil, err
134251	}
134252	req.Header = reqHeaders
134253	googleapi.Expand(req.URL, map[string]string{
134254		"project":              c.project,
134255		"region":               c.region,
134256		"notificationEndpoint": c.notificationEndpoint,
134257	})
134258	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134259}
134260
134261// Do executes the "compute.regionNotificationEndpoints.get" call.
134262// Exactly one of *NotificationEndpoint or error will be non-nil. Any
134263// non-2xx status code is an error. Response headers are in either
134264// *NotificationEndpoint.ServerResponse.Header or (if a response was
134265// returned at all) in error.(*googleapi.Error).Header. Use
134266// googleapi.IsNotModified to check whether the returned error was
134267// because http.StatusNotModified was returned.
134268func (c *RegionNotificationEndpointsGetCall) Do(opts ...googleapi.CallOption) (*NotificationEndpoint, error) {
134269	gensupport.SetOptions(c.urlParams_, opts...)
134270	res, err := c.doRequest("json")
134271	if res != nil && res.StatusCode == http.StatusNotModified {
134272		if res.Body != nil {
134273			res.Body.Close()
134274		}
134275		return nil, &googleapi.Error{
134276			Code:   res.StatusCode,
134277			Header: res.Header,
134278		}
134279	}
134280	if err != nil {
134281		return nil, err
134282	}
134283	defer googleapi.CloseBody(res)
134284	if err := googleapi.CheckResponse(res); err != nil {
134285		return nil, err
134286	}
134287	ret := &NotificationEndpoint{
134288		ServerResponse: googleapi.ServerResponse{
134289			Header:         res.Header,
134290			HTTPStatusCode: res.StatusCode,
134291		},
134292	}
134293	target := &ret
134294	if err := gensupport.DecodeResponse(target, res); err != nil {
134295		return nil, err
134296	}
134297	return ret, nil
134298	// {
134299	//   "description": "Returns the specified NotificationEndpoint resource in the given region.",
134300	//   "httpMethod": "GET",
134301	//   "id": "compute.regionNotificationEndpoints.get",
134302	//   "parameterOrder": [
134303	//     "project",
134304	//     "region",
134305	//     "notificationEndpoint"
134306	//   ],
134307	//   "parameters": {
134308	//     "notificationEndpoint": {
134309	//       "description": "Name of the NotificationEndpoint resource to return.",
134310	//       "location": "path",
134311	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
134312	//       "required": true,
134313	//       "type": "string"
134314	//     },
134315	//     "project": {
134316	//       "description": "Project ID for this request.",
134317	//       "location": "path",
134318	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134319	//       "required": true,
134320	//       "type": "string"
134321	//     },
134322	//     "region": {
134323	//       "description": "Name of the region scoping this request.",
134324	//       "location": "path",
134325	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134326	//       "required": true,
134327	//       "type": "string"
134328	//     }
134329	//   },
134330	//   "path": "{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
134331	//   "response": {
134332	//     "$ref": "NotificationEndpoint"
134333	//   },
134334	//   "scopes": [
134335	//     "https://www.googleapis.com/auth/cloud-platform",
134336	//     "https://www.googleapis.com/auth/compute",
134337	//     "https://www.googleapis.com/auth/compute.readonly"
134338	//   ]
134339	// }
134340
134341}
134342
134343// method id "compute.regionNotificationEndpoints.insert":
134344
134345type RegionNotificationEndpointsInsertCall struct {
134346	s                    *Service
134347	project              string
134348	region               string
134349	notificationendpoint *NotificationEndpoint
134350	urlParams_           gensupport.URLParams
134351	ctx_                 context.Context
134352	header_              http.Header
134353}
134354
134355// Insert: Create a NotificationEndpoint in the specified project in the
134356// given region using the parameters that are included in the request.
134357func (r *RegionNotificationEndpointsService) Insert(project string, region string, notificationendpoint *NotificationEndpoint) *RegionNotificationEndpointsInsertCall {
134358	c := &RegionNotificationEndpointsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134359	c.project = project
134360	c.region = region
134361	c.notificationendpoint = notificationendpoint
134362	return c
134363}
134364
134365// RequestId sets the optional parameter "requestId": An optional
134366// request ID to identify requests. Specify a unique request ID so that
134367// if you must retry your request, the server will know to ignore the
134368// request if it has already been completed.
134369//
134370// For example, consider a situation where you make an initial request
134371// and the request times out. If you make the request again with the
134372// same request ID, the server can check if original operation with the
134373// same request ID was received, and if so, will ignore the second
134374// request. This prevents clients from accidentally creating duplicate
134375// commitments.
134376//
134377// The request ID must be a valid UUID with the exception that zero UUID
134378// is not supported (00000000-0000-0000-0000-000000000000).
134379func (c *RegionNotificationEndpointsInsertCall) RequestId(requestId string) *RegionNotificationEndpointsInsertCall {
134380	c.urlParams_.Set("requestId", requestId)
134381	return c
134382}
134383
134384// Fields allows partial responses to be retrieved. See
134385// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134386// for more information.
134387func (c *RegionNotificationEndpointsInsertCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsInsertCall {
134388	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134389	return c
134390}
134391
134392// Context sets the context to be used in this call's Do method. Any
134393// pending HTTP request will be aborted if the provided context is
134394// canceled.
134395func (c *RegionNotificationEndpointsInsertCall) Context(ctx context.Context) *RegionNotificationEndpointsInsertCall {
134396	c.ctx_ = ctx
134397	return c
134398}
134399
134400// Header returns an http.Header that can be modified by the caller to
134401// add HTTP headers to the request.
134402func (c *RegionNotificationEndpointsInsertCall) Header() http.Header {
134403	if c.header_ == nil {
134404		c.header_ = make(http.Header)
134405	}
134406	return c.header_
134407}
134408
134409func (c *RegionNotificationEndpointsInsertCall) doRequest(alt string) (*http.Response, error) {
134410	reqHeaders := make(http.Header)
134411	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
134412	for k, v := range c.header_ {
134413		reqHeaders[k] = v
134414	}
134415	reqHeaders.Set("User-Agent", c.s.userAgent())
134416	var body io.Reader = nil
134417	body, err := googleapi.WithoutDataWrapper.JSONReader(c.notificationendpoint)
134418	if err != nil {
134419		return nil, err
134420	}
134421	reqHeaders.Set("Content-Type", "application/json")
134422	c.urlParams_.Set("alt", alt)
134423	c.urlParams_.Set("prettyPrint", "false")
134424	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/notificationEndpoints")
134425	urls += "?" + c.urlParams_.Encode()
134426	req, err := http.NewRequest("POST", urls, body)
134427	if err != nil {
134428		return nil, err
134429	}
134430	req.Header = reqHeaders
134431	googleapi.Expand(req.URL, map[string]string{
134432		"project": c.project,
134433		"region":  c.region,
134434	})
134435	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134436}
134437
134438// Do executes the "compute.regionNotificationEndpoints.insert" call.
134439// Exactly one of *Operation or error will be non-nil. Any non-2xx
134440// status code is an error. Response headers are in either
134441// *Operation.ServerResponse.Header or (if a response was returned at
134442// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
134443// to check whether the returned error was because
134444// http.StatusNotModified was returned.
134445func (c *RegionNotificationEndpointsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
134446	gensupport.SetOptions(c.urlParams_, opts...)
134447	res, err := c.doRequest("json")
134448	if res != nil && res.StatusCode == http.StatusNotModified {
134449		if res.Body != nil {
134450			res.Body.Close()
134451		}
134452		return nil, &googleapi.Error{
134453			Code:   res.StatusCode,
134454			Header: res.Header,
134455		}
134456	}
134457	if err != nil {
134458		return nil, err
134459	}
134460	defer googleapi.CloseBody(res)
134461	if err := googleapi.CheckResponse(res); err != nil {
134462		return nil, err
134463	}
134464	ret := &Operation{
134465		ServerResponse: googleapi.ServerResponse{
134466			Header:         res.Header,
134467			HTTPStatusCode: res.StatusCode,
134468		},
134469	}
134470	target := &ret
134471	if err := gensupport.DecodeResponse(target, res); err != nil {
134472		return nil, err
134473	}
134474	return ret, nil
134475	// {
134476	//   "description": "Create a NotificationEndpoint in the specified project in the given region using the parameters that are included in the request.",
134477	//   "httpMethod": "POST",
134478	//   "id": "compute.regionNotificationEndpoints.insert",
134479	//   "parameterOrder": [
134480	//     "project",
134481	//     "region"
134482	//   ],
134483	//   "parameters": {
134484	//     "project": {
134485	//       "description": "Project ID for this request.",
134486	//       "location": "path",
134487	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134488	//       "required": true,
134489	//       "type": "string"
134490	//     },
134491	//     "region": {
134492	//       "description": "Name of the region scoping this request.",
134493	//       "location": "path",
134494	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134495	//       "required": true,
134496	//       "type": "string"
134497	//     },
134498	//     "requestId": {
134499	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
134500	//       "location": "query",
134501	//       "type": "string"
134502	//     }
134503	//   },
134504	//   "path": "{project}/regions/{region}/notificationEndpoints",
134505	//   "request": {
134506	//     "$ref": "NotificationEndpoint"
134507	//   },
134508	//   "response": {
134509	//     "$ref": "Operation"
134510	//   },
134511	//   "scopes": [
134512	//     "https://www.googleapis.com/auth/cloud-platform",
134513	//     "https://www.googleapis.com/auth/compute"
134514	//   ]
134515	// }
134516
134517}
134518
134519// method id "compute.regionNotificationEndpoints.list":
134520
134521type RegionNotificationEndpointsListCall struct {
134522	s            *Service
134523	project      string
134524	region       string
134525	urlParams_   gensupport.URLParams
134526	ifNoneMatch_ string
134527	ctx_         context.Context
134528	header_      http.Header
134529}
134530
134531// List: Lists the NotificationEndpoints for a project in the given
134532// region.
134533func (r *RegionNotificationEndpointsService) List(project string, region string) *RegionNotificationEndpointsListCall {
134534	c := &RegionNotificationEndpointsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134535	c.project = project
134536	c.region = region
134537	return c
134538}
134539
134540// Filter sets the optional parameter "filter": A filter expression that
134541// filters resources listed in the response. The expression must specify
134542// the field name, a comparison operator, and the value that you want to
134543// use for filtering. The value must be a string, a number, or a
134544// boolean. The comparison operator must be either =, !=, >, or <.
134545//
134546// For example, if you are filtering Compute Engine instances, you can
134547// exclude instances named example-instance by specifying name !=
134548// example-instance.
134549//
134550// You can also filter nested fields. For example, you could specify
134551// scheduling.automaticRestart = false to include instances only if they
134552// are not scheduled for automatic restarts. You can use filtering on
134553// nested fields to filter based on resource labels.
134554//
134555// To filter on multiple expressions, provide each separate expression
134556// within parentheses. For example, (scheduling.automaticRestart = true)
134557// (cpuPlatform = "Intel Skylake"). By default, each expression is an
134558// AND expression. However, you can include AND and OR expressions
134559// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
134560// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
134561// true).
134562func (c *RegionNotificationEndpointsListCall) Filter(filter string) *RegionNotificationEndpointsListCall {
134563	c.urlParams_.Set("filter", filter)
134564	return c
134565}
134566
134567// MaxResults sets the optional parameter "maxResults": The maximum
134568// number of results per page that should be returned. If the number of
134569// available results is larger than maxResults, Compute Engine returns a
134570// nextPageToken that can be used to get the next page of results in
134571// subsequent list requests. Acceptable values are 0 to 500, inclusive.
134572// (Default: 500)
134573func (c *RegionNotificationEndpointsListCall) MaxResults(maxResults int64) *RegionNotificationEndpointsListCall {
134574	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
134575	return c
134576}
134577
134578// OrderBy sets the optional parameter "orderBy": Sorts list results by
134579// a certain order. By default, results are returned in alphanumerical
134580// order based on the resource name.
134581//
134582// You can also sort results in descending order based on the creation
134583// timestamp using orderBy="creationTimestamp desc". This sorts results
134584// based on the creationTimestamp field in reverse chronological order
134585// (newest result first). Use this to sort resources like operations so
134586// that the newest operation is returned first.
134587//
134588// Currently, only sorting by name or creationTimestamp desc is
134589// supported.
134590func (c *RegionNotificationEndpointsListCall) OrderBy(orderBy string) *RegionNotificationEndpointsListCall {
134591	c.urlParams_.Set("orderBy", orderBy)
134592	return c
134593}
134594
134595// PageToken sets the optional parameter "pageToken": Specifies a page
134596// token to use. Set pageToken to the nextPageToken returned by a
134597// previous list request to get the next page of results.
134598func (c *RegionNotificationEndpointsListCall) PageToken(pageToken string) *RegionNotificationEndpointsListCall {
134599	c.urlParams_.Set("pageToken", pageToken)
134600	return c
134601}
134602
134603// Fields allows partial responses to be retrieved. See
134604// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134605// for more information.
134606func (c *RegionNotificationEndpointsListCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsListCall {
134607	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134608	return c
134609}
134610
134611// IfNoneMatch sets the optional parameter which makes the operation
134612// fail if the object's ETag matches the given value. This is useful for
134613// getting updates only after the object has changed since the last
134614// request. Use googleapi.IsNotModified to check whether the response
134615// error from Do is the result of In-None-Match.
134616func (c *RegionNotificationEndpointsListCall) IfNoneMatch(entityTag string) *RegionNotificationEndpointsListCall {
134617	c.ifNoneMatch_ = entityTag
134618	return c
134619}
134620
134621// Context sets the context to be used in this call's Do method. Any
134622// pending HTTP request will be aborted if the provided context is
134623// canceled.
134624func (c *RegionNotificationEndpointsListCall) Context(ctx context.Context) *RegionNotificationEndpointsListCall {
134625	c.ctx_ = ctx
134626	return c
134627}
134628
134629// Header returns an http.Header that can be modified by the caller to
134630// add HTTP headers to the request.
134631func (c *RegionNotificationEndpointsListCall) Header() http.Header {
134632	if c.header_ == nil {
134633		c.header_ = make(http.Header)
134634	}
134635	return c.header_
134636}
134637
134638func (c *RegionNotificationEndpointsListCall) doRequest(alt string) (*http.Response, error) {
134639	reqHeaders := make(http.Header)
134640	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
134641	for k, v := range c.header_ {
134642		reqHeaders[k] = v
134643	}
134644	reqHeaders.Set("User-Agent", c.s.userAgent())
134645	if c.ifNoneMatch_ != "" {
134646		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
134647	}
134648	var body io.Reader = nil
134649	c.urlParams_.Set("alt", alt)
134650	c.urlParams_.Set("prettyPrint", "false")
134651	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/notificationEndpoints")
134652	urls += "?" + c.urlParams_.Encode()
134653	req, err := http.NewRequest("GET", urls, body)
134654	if err != nil {
134655		return nil, err
134656	}
134657	req.Header = reqHeaders
134658	googleapi.Expand(req.URL, map[string]string{
134659		"project": c.project,
134660		"region":  c.region,
134661	})
134662	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134663}
134664
134665// Do executes the "compute.regionNotificationEndpoints.list" call.
134666// Exactly one of *NotificationEndpointList or error will be non-nil.
134667// Any non-2xx status code is an error. Response headers are in either
134668// *NotificationEndpointList.ServerResponse.Header or (if a response was
134669// returned at all) in error.(*googleapi.Error).Header. Use
134670// googleapi.IsNotModified to check whether the returned error was
134671// because http.StatusNotModified was returned.
134672func (c *RegionNotificationEndpointsListCall) Do(opts ...googleapi.CallOption) (*NotificationEndpointList, error) {
134673	gensupport.SetOptions(c.urlParams_, opts...)
134674	res, err := c.doRequest("json")
134675	if res != nil && res.StatusCode == http.StatusNotModified {
134676		if res.Body != nil {
134677			res.Body.Close()
134678		}
134679		return nil, &googleapi.Error{
134680			Code:   res.StatusCode,
134681			Header: res.Header,
134682		}
134683	}
134684	if err != nil {
134685		return nil, err
134686	}
134687	defer googleapi.CloseBody(res)
134688	if err := googleapi.CheckResponse(res); err != nil {
134689		return nil, err
134690	}
134691	ret := &NotificationEndpointList{
134692		ServerResponse: googleapi.ServerResponse{
134693			Header:         res.Header,
134694			HTTPStatusCode: res.StatusCode,
134695		},
134696	}
134697	target := &ret
134698	if err := gensupport.DecodeResponse(target, res); err != nil {
134699		return nil, err
134700	}
134701	return ret, nil
134702	// {
134703	//   "description": "Lists the NotificationEndpoints for a project in the given region.",
134704	//   "httpMethod": "GET",
134705	//   "id": "compute.regionNotificationEndpoints.list",
134706	//   "parameterOrder": [
134707	//     "project",
134708	//     "region"
134709	//   ],
134710	//   "parameters": {
134711	//     "filter": {
134712	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
134713	//       "location": "query",
134714	//       "type": "string"
134715	//     },
134716	//     "maxResults": {
134717	//       "default": "500",
134718	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
134719	//       "format": "uint32",
134720	//       "location": "query",
134721	//       "minimum": "0",
134722	//       "type": "integer"
134723	//     },
134724	//     "orderBy": {
134725	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
134726	//       "location": "query",
134727	//       "type": "string"
134728	//     },
134729	//     "pageToken": {
134730	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
134731	//       "location": "query",
134732	//       "type": "string"
134733	//     },
134734	//     "project": {
134735	//       "description": "Project ID for this request.",
134736	//       "location": "path",
134737	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134738	//       "required": true,
134739	//       "type": "string"
134740	//     },
134741	//     "region": {
134742	//       "description": "Name of the region scoping this request.",
134743	//       "location": "path",
134744	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134745	//       "required": true,
134746	//       "type": "string"
134747	//     }
134748	//   },
134749	//   "path": "{project}/regions/{region}/notificationEndpoints",
134750	//   "response": {
134751	//     "$ref": "NotificationEndpointList"
134752	//   },
134753	//   "scopes": [
134754	//     "https://www.googleapis.com/auth/cloud-platform",
134755	//     "https://www.googleapis.com/auth/compute",
134756	//     "https://www.googleapis.com/auth/compute.readonly"
134757	//   ]
134758	// }
134759
134760}
134761
134762// Pages invokes f for each page of results.
134763// A non-nil error returned from f will halt the iteration.
134764// The provided context supersedes any context provided to the Context method.
134765func (c *RegionNotificationEndpointsListCall) Pages(ctx context.Context, f func(*NotificationEndpointList) error) error {
134766	c.ctx_ = ctx
134767	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
134768	for {
134769		x, err := c.Do()
134770		if err != nil {
134771			return err
134772		}
134773		if err := f(x); err != nil {
134774			return err
134775		}
134776		if x.NextPageToken == "" {
134777			return nil
134778		}
134779		c.PageToken(x.NextPageToken)
134780	}
134781}
134782
134783// method id "compute.regionNotificationEndpoints.testIamPermissions":
134784
134785type RegionNotificationEndpointsTestIamPermissionsCall struct {
134786	s                      *Service
134787	project                string
134788	region                 string
134789	resource               string
134790	testpermissionsrequest *TestPermissionsRequest
134791	urlParams_             gensupport.URLParams
134792	ctx_                   context.Context
134793	header_                http.Header
134794}
134795
134796// TestIamPermissions: Returns permissions that a caller has on the
134797// specified resource.
134798func (r *RegionNotificationEndpointsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionNotificationEndpointsTestIamPermissionsCall {
134799	c := &RegionNotificationEndpointsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134800	c.project = project
134801	c.region = region
134802	c.resource = resource
134803	c.testpermissionsrequest = testpermissionsrequest
134804	return c
134805}
134806
134807// Fields allows partial responses to be retrieved. See
134808// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134809// for more information.
134810func (c *RegionNotificationEndpointsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsTestIamPermissionsCall {
134811	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134812	return c
134813}
134814
134815// Context sets the context to be used in this call's Do method. Any
134816// pending HTTP request will be aborted if the provided context is
134817// canceled.
134818func (c *RegionNotificationEndpointsTestIamPermissionsCall) Context(ctx context.Context) *RegionNotificationEndpointsTestIamPermissionsCall {
134819	c.ctx_ = ctx
134820	return c
134821}
134822
134823// Header returns an http.Header that can be modified by the caller to
134824// add HTTP headers to the request.
134825func (c *RegionNotificationEndpointsTestIamPermissionsCall) Header() http.Header {
134826	if c.header_ == nil {
134827		c.header_ = make(http.Header)
134828	}
134829	return c.header_
134830}
134831
134832func (c *RegionNotificationEndpointsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
134833	reqHeaders := make(http.Header)
134834	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
134835	for k, v := range c.header_ {
134836		reqHeaders[k] = v
134837	}
134838	reqHeaders.Set("User-Agent", c.s.userAgent())
134839	var body io.Reader = nil
134840	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
134841	if err != nil {
134842		return nil, err
134843	}
134844	reqHeaders.Set("Content-Type", "application/json")
134845	c.urlParams_.Set("alt", alt)
134846	c.urlParams_.Set("prettyPrint", "false")
134847	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/notificationEndpoints/{resource}/testIamPermissions")
134848	urls += "?" + c.urlParams_.Encode()
134849	req, err := http.NewRequest("POST", urls, body)
134850	if err != nil {
134851		return nil, err
134852	}
134853	req.Header = reqHeaders
134854	googleapi.Expand(req.URL, map[string]string{
134855		"project":  c.project,
134856		"region":   c.region,
134857		"resource": c.resource,
134858	})
134859	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134860}
134861
134862// Do executes the "compute.regionNotificationEndpoints.testIamPermissions" call.
134863// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
134864// non-2xx status code is an error. Response headers are in either
134865// *TestPermissionsResponse.ServerResponse.Header or (if a response was
134866// returned at all) in error.(*googleapi.Error).Header. Use
134867// googleapi.IsNotModified to check whether the returned error was
134868// because http.StatusNotModified was returned.
134869func (c *RegionNotificationEndpointsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
134870	gensupport.SetOptions(c.urlParams_, opts...)
134871	res, err := c.doRequest("json")
134872	if res != nil && res.StatusCode == http.StatusNotModified {
134873		if res.Body != nil {
134874			res.Body.Close()
134875		}
134876		return nil, &googleapi.Error{
134877			Code:   res.StatusCode,
134878			Header: res.Header,
134879		}
134880	}
134881	if err != nil {
134882		return nil, err
134883	}
134884	defer googleapi.CloseBody(res)
134885	if err := googleapi.CheckResponse(res); err != nil {
134886		return nil, err
134887	}
134888	ret := &TestPermissionsResponse{
134889		ServerResponse: googleapi.ServerResponse{
134890			Header:         res.Header,
134891			HTTPStatusCode: res.StatusCode,
134892		},
134893	}
134894	target := &ret
134895	if err := gensupport.DecodeResponse(target, res); err != nil {
134896		return nil, err
134897	}
134898	return ret, nil
134899	// {
134900	//   "description": "Returns permissions that a caller has on the specified resource.",
134901	//   "httpMethod": "POST",
134902	//   "id": "compute.regionNotificationEndpoints.testIamPermissions",
134903	//   "parameterOrder": [
134904	//     "project",
134905	//     "region",
134906	//     "resource"
134907	//   ],
134908	//   "parameters": {
134909	//     "project": {
134910	//       "description": "Project ID for this request.",
134911	//       "location": "path",
134912	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134913	//       "required": true,
134914	//       "type": "string"
134915	//     },
134916	//     "region": {
134917	//       "description": "The name of the region for this request.",
134918	//       "location": "path",
134919	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134920	//       "required": true,
134921	//       "type": "string"
134922	//     },
134923	//     "resource": {
134924	//       "description": "Name or id of the resource for this request.",
134925	//       "location": "path",
134926	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
134927	//       "required": true,
134928	//       "type": "string"
134929	//     }
134930	//   },
134931	//   "path": "{project}/regions/{region}/notificationEndpoints/{resource}/testIamPermissions",
134932	//   "request": {
134933	//     "$ref": "TestPermissionsRequest"
134934	//   },
134935	//   "response": {
134936	//     "$ref": "TestPermissionsResponse"
134937	//   },
134938	//   "scopes": [
134939	//     "https://www.googleapis.com/auth/cloud-platform",
134940	//     "https://www.googleapis.com/auth/compute",
134941	//     "https://www.googleapis.com/auth/compute.readonly"
134942	//   ]
134943	// }
134944
134945}
134946
134947// method id "compute.regionOperations.delete":
134948
134949type RegionOperationsDeleteCall struct {
134950	s          *Service
134951	project    string
134952	region     string
134953	operation  string
134954	urlParams_ gensupport.URLParams
134955	ctx_       context.Context
134956	header_    http.Header
134957}
134958
134959// Delete: Deletes the specified region-specific Operations resource.
134960// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/delete
134961func (r *RegionOperationsService) Delete(project string, region string, operation string) *RegionOperationsDeleteCall {
134962	c := &RegionOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134963	c.project = project
134964	c.region = region
134965	c.operation = operation
134966	return c
134967}
134968
134969// Fields allows partial responses to be retrieved. See
134970// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134971// for more information.
134972func (c *RegionOperationsDeleteCall) Fields(s ...googleapi.Field) *RegionOperationsDeleteCall {
134973	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134974	return c
134975}
134976
134977// Context sets the context to be used in this call's Do method. Any
134978// pending HTTP request will be aborted if the provided context is
134979// canceled.
134980func (c *RegionOperationsDeleteCall) Context(ctx context.Context) *RegionOperationsDeleteCall {
134981	c.ctx_ = ctx
134982	return c
134983}
134984
134985// Header returns an http.Header that can be modified by the caller to
134986// add HTTP headers to the request.
134987func (c *RegionOperationsDeleteCall) Header() http.Header {
134988	if c.header_ == nil {
134989		c.header_ = make(http.Header)
134990	}
134991	return c.header_
134992}
134993
134994func (c *RegionOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
134995	reqHeaders := make(http.Header)
134996	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
134997	for k, v := range c.header_ {
134998		reqHeaders[k] = v
134999	}
135000	reqHeaders.Set("User-Agent", c.s.userAgent())
135001	var body io.Reader = nil
135002	c.urlParams_.Set("alt", alt)
135003	c.urlParams_.Set("prettyPrint", "false")
135004	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations/{operation}")
135005	urls += "?" + c.urlParams_.Encode()
135006	req, err := http.NewRequest("DELETE", urls, body)
135007	if err != nil {
135008		return nil, err
135009	}
135010	req.Header = reqHeaders
135011	googleapi.Expand(req.URL, map[string]string{
135012		"project":   c.project,
135013		"region":    c.region,
135014		"operation": c.operation,
135015	})
135016	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135017}
135018
135019// Do executes the "compute.regionOperations.delete" call.
135020func (c *RegionOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
135021	gensupport.SetOptions(c.urlParams_, opts...)
135022	res, err := c.doRequest("json")
135023	if err != nil {
135024		return err
135025	}
135026	defer googleapi.CloseBody(res)
135027	if err := googleapi.CheckResponse(res); err != nil {
135028		return err
135029	}
135030	return nil
135031	// {
135032	//   "description": "Deletes the specified region-specific Operations resource.",
135033	//   "httpMethod": "DELETE",
135034	//   "id": "compute.regionOperations.delete",
135035	//   "parameterOrder": [
135036	//     "project",
135037	//     "region",
135038	//     "operation"
135039	//   ],
135040	//   "parameters": {
135041	//     "operation": {
135042	//       "description": "Name of the Operations resource to delete.",
135043	//       "location": "path",
135044	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
135045	//       "required": true,
135046	//       "type": "string"
135047	//     },
135048	//     "project": {
135049	//       "description": "Project ID for this request.",
135050	//       "location": "path",
135051	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135052	//       "required": true,
135053	//       "type": "string"
135054	//     },
135055	//     "region": {
135056	//       "description": "Name of the region for this request.",
135057	//       "location": "path",
135058	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135059	//       "required": true,
135060	//       "type": "string"
135061	//     }
135062	//   },
135063	//   "path": "{project}/regions/{region}/operations/{operation}",
135064	//   "scopes": [
135065	//     "https://www.googleapis.com/auth/cloud-platform",
135066	//     "https://www.googleapis.com/auth/compute"
135067	//   ]
135068	// }
135069
135070}
135071
135072// method id "compute.regionOperations.get":
135073
135074type RegionOperationsGetCall struct {
135075	s            *Service
135076	project      string
135077	region       string
135078	operation    string
135079	urlParams_   gensupport.URLParams
135080	ifNoneMatch_ string
135081	ctx_         context.Context
135082	header_      http.Header
135083}
135084
135085// Get: Retrieves the specified region-specific Operations resource.
135086// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/get
135087func (r *RegionOperationsService) Get(project string, region string, operation string) *RegionOperationsGetCall {
135088	c := &RegionOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135089	c.project = project
135090	c.region = region
135091	c.operation = operation
135092	return c
135093}
135094
135095// Fields allows partial responses to be retrieved. See
135096// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135097// for more information.
135098func (c *RegionOperationsGetCall) Fields(s ...googleapi.Field) *RegionOperationsGetCall {
135099	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135100	return c
135101}
135102
135103// IfNoneMatch sets the optional parameter which makes the operation
135104// fail if the object's ETag matches the given value. This is useful for
135105// getting updates only after the object has changed since the last
135106// request. Use googleapi.IsNotModified to check whether the response
135107// error from Do is the result of In-None-Match.
135108func (c *RegionOperationsGetCall) IfNoneMatch(entityTag string) *RegionOperationsGetCall {
135109	c.ifNoneMatch_ = entityTag
135110	return c
135111}
135112
135113// Context sets the context to be used in this call's Do method. Any
135114// pending HTTP request will be aborted if the provided context is
135115// canceled.
135116func (c *RegionOperationsGetCall) Context(ctx context.Context) *RegionOperationsGetCall {
135117	c.ctx_ = ctx
135118	return c
135119}
135120
135121// Header returns an http.Header that can be modified by the caller to
135122// add HTTP headers to the request.
135123func (c *RegionOperationsGetCall) Header() http.Header {
135124	if c.header_ == nil {
135125		c.header_ = make(http.Header)
135126	}
135127	return c.header_
135128}
135129
135130func (c *RegionOperationsGetCall) doRequest(alt string) (*http.Response, error) {
135131	reqHeaders := make(http.Header)
135132	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
135133	for k, v := range c.header_ {
135134		reqHeaders[k] = v
135135	}
135136	reqHeaders.Set("User-Agent", c.s.userAgent())
135137	if c.ifNoneMatch_ != "" {
135138		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
135139	}
135140	var body io.Reader = nil
135141	c.urlParams_.Set("alt", alt)
135142	c.urlParams_.Set("prettyPrint", "false")
135143	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations/{operation}")
135144	urls += "?" + c.urlParams_.Encode()
135145	req, err := http.NewRequest("GET", urls, body)
135146	if err != nil {
135147		return nil, err
135148	}
135149	req.Header = reqHeaders
135150	googleapi.Expand(req.URL, map[string]string{
135151		"project":   c.project,
135152		"region":    c.region,
135153		"operation": c.operation,
135154	})
135155	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135156}
135157
135158// Do executes the "compute.regionOperations.get" call.
135159// Exactly one of *Operation or error will be non-nil. Any non-2xx
135160// status code is an error. Response headers are in either
135161// *Operation.ServerResponse.Header or (if a response was returned at
135162// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135163// to check whether the returned error was because
135164// http.StatusNotModified was returned.
135165func (c *RegionOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135166	gensupport.SetOptions(c.urlParams_, opts...)
135167	res, err := c.doRequest("json")
135168	if res != nil && res.StatusCode == http.StatusNotModified {
135169		if res.Body != nil {
135170			res.Body.Close()
135171		}
135172		return nil, &googleapi.Error{
135173			Code:   res.StatusCode,
135174			Header: res.Header,
135175		}
135176	}
135177	if err != nil {
135178		return nil, err
135179	}
135180	defer googleapi.CloseBody(res)
135181	if err := googleapi.CheckResponse(res); err != nil {
135182		return nil, err
135183	}
135184	ret := &Operation{
135185		ServerResponse: googleapi.ServerResponse{
135186			Header:         res.Header,
135187			HTTPStatusCode: res.StatusCode,
135188		},
135189	}
135190	target := &ret
135191	if err := gensupport.DecodeResponse(target, res); err != nil {
135192		return nil, err
135193	}
135194	return ret, nil
135195	// {
135196	//   "description": "Retrieves the specified region-specific Operations resource.",
135197	//   "httpMethod": "GET",
135198	//   "id": "compute.regionOperations.get",
135199	//   "parameterOrder": [
135200	//     "project",
135201	//     "region",
135202	//     "operation"
135203	//   ],
135204	//   "parameters": {
135205	//     "operation": {
135206	//       "description": "Name of the Operations resource to return.",
135207	//       "location": "path",
135208	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
135209	//       "required": true,
135210	//       "type": "string"
135211	//     },
135212	//     "project": {
135213	//       "description": "Project ID for this request.",
135214	//       "location": "path",
135215	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135216	//       "required": true,
135217	//       "type": "string"
135218	//     },
135219	//     "region": {
135220	//       "description": "Name of the region for this request.",
135221	//       "location": "path",
135222	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135223	//       "required": true,
135224	//       "type": "string"
135225	//     }
135226	//   },
135227	//   "path": "{project}/regions/{region}/operations/{operation}",
135228	//   "response": {
135229	//     "$ref": "Operation"
135230	//   },
135231	//   "scopes": [
135232	//     "https://www.googleapis.com/auth/cloud-platform",
135233	//     "https://www.googleapis.com/auth/compute",
135234	//     "https://www.googleapis.com/auth/compute.readonly"
135235	//   ]
135236	// }
135237
135238}
135239
135240// method id "compute.regionOperations.list":
135241
135242type RegionOperationsListCall struct {
135243	s            *Service
135244	project      string
135245	region       string
135246	urlParams_   gensupport.URLParams
135247	ifNoneMatch_ string
135248	ctx_         context.Context
135249	header_      http.Header
135250}
135251
135252// List: Retrieves a list of Operation resources contained within the
135253// specified region.
135254// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/list
135255func (r *RegionOperationsService) List(project string, region string) *RegionOperationsListCall {
135256	c := &RegionOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135257	c.project = project
135258	c.region = region
135259	return c
135260}
135261
135262// Filter sets the optional parameter "filter": A filter expression that
135263// filters resources listed in the response. The expression must specify
135264// the field name, a comparison operator, and the value that you want to
135265// use for filtering. The value must be a string, a number, or a
135266// boolean. The comparison operator must be either =, !=, >, or <.
135267//
135268// For example, if you are filtering Compute Engine instances, you can
135269// exclude instances named example-instance by specifying name !=
135270// example-instance.
135271//
135272// You can also filter nested fields. For example, you could specify
135273// scheduling.automaticRestart = false to include instances only if they
135274// are not scheduled for automatic restarts. You can use filtering on
135275// nested fields to filter based on resource labels.
135276//
135277// To filter on multiple expressions, provide each separate expression
135278// within parentheses. For example, (scheduling.automaticRestart = true)
135279// (cpuPlatform = "Intel Skylake"). By default, each expression is an
135280// AND expression. However, you can include AND and OR expressions
135281// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
135282// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
135283// true).
135284func (c *RegionOperationsListCall) Filter(filter string) *RegionOperationsListCall {
135285	c.urlParams_.Set("filter", filter)
135286	return c
135287}
135288
135289// MaxResults sets the optional parameter "maxResults": The maximum
135290// number of results per page that should be returned. If the number of
135291// available results is larger than maxResults, Compute Engine returns a
135292// nextPageToken that can be used to get the next page of results in
135293// subsequent list requests. Acceptable values are 0 to 500, inclusive.
135294// (Default: 500)
135295func (c *RegionOperationsListCall) MaxResults(maxResults int64) *RegionOperationsListCall {
135296	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
135297	return c
135298}
135299
135300// OrderBy sets the optional parameter "orderBy": Sorts list results by
135301// a certain order. By default, results are returned in alphanumerical
135302// order based on the resource name.
135303//
135304// You can also sort results in descending order based on the creation
135305// timestamp using orderBy="creationTimestamp desc". This sorts results
135306// based on the creationTimestamp field in reverse chronological order
135307// (newest result first). Use this to sort resources like operations so
135308// that the newest operation is returned first.
135309//
135310// Currently, only sorting by name or creationTimestamp desc is
135311// supported.
135312func (c *RegionOperationsListCall) OrderBy(orderBy string) *RegionOperationsListCall {
135313	c.urlParams_.Set("orderBy", orderBy)
135314	return c
135315}
135316
135317// PageToken sets the optional parameter "pageToken": Specifies a page
135318// token to use. Set pageToken to the nextPageToken returned by a
135319// previous list request to get the next page of results.
135320func (c *RegionOperationsListCall) PageToken(pageToken string) *RegionOperationsListCall {
135321	c.urlParams_.Set("pageToken", pageToken)
135322	return c
135323}
135324
135325// Fields allows partial responses to be retrieved. See
135326// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135327// for more information.
135328func (c *RegionOperationsListCall) Fields(s ...googleapi.Field) *RegionOperationsListCall {
135329	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135330	return c
135331}
135332
135333// IfNoneMatch sets the optional parameter which makes the operation
135334// fail if the object's ETag matches the given value. This is useful for
135335// getting updates only after the object has changed since the last
135336// request. Use googleapi.IsNotModified to check whether the response
135337// error from Do is the result of In-None-Match.
135338func (c *RegionOperationsListCall) IfNoneMatch(entityTag string) *RegionOperationsListCall {
135339	c.ifNoneMatch_ = entityTag
135340	return c
135341}
135342
135343// Context sets the context to be used in this call's Do method. Any
135344// pending HTTP request will be aborted if the provided context is
135345// canceled.
135346func (c *RegionOperationsListCall) Context(ctx context.Context) *RegionOperationsListCall {
135347	c.ctx_ = ctx
135348	return c
135349}
135350
135351// Header returns an http.Header that can be modified by the caller to
135352// add HTTP headers to the request.
135353func (c *RegionOperationsListCall) Header() http.Header {
135354	if c.header_ == nil {
135355		c.header_ = make(http.Header)
135356	}
135357	return c.header_
135358}
135359
135360func (c *RegionOperationsListCall) doRequest(alt string) (*http.Response, error) {
135361	reqHeaders := make(http.Header)
135362	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
135363	for k, v := range c.header_ {
135364		reqHeaders[k] = v
135365	}
135366	reqHeaders.Set("User-Agent", c.s.userAgent())
135367	if c.ifNoneMatch_ != "" {
135368		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
135369	}
135370	var body io.Reader = nil
135371	c.urlParams_.Set("alt", alt)
135372	c.urlParams_.Set("prettyPrint", "false")
135373	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations")
135374	urls += "?" + c.urlParams_.Encode()
135375	req, err := http.NewRequest("GET", urls, body)
135376	if err != nil {
135377		return nil, err
135378	}
135379	req.Header = reqHeaders
135380	googleapi.Expand(req.URL, map[string]string{
135381		"project": c.project,
135382		"region":  c.region,
135383	})
135384	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135385}
135386
135387// Do executes the "compute.regionOperations.list" call.
135388// Exactly one of *OperationList or error will be non-nil. Any non-2xx
135389// status code is an error. Response headers are in either
135390// *OperationList.ServerResponse.Header or (if a response was returned
135391// at all) in error.(*googleapi.Error).Header. Use
135392// googleapi.IsNotModified to check whether the returned error was
135393// because http.StatusNotModified was returned.
135394func (c *RegionOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
135395	gensupport.SetOptions(c.urlParams_, opts...)
135396	res, err := c.doRequest("json")
135397	if res != nil && res.StatusCode == http.StatusNotModified {
135398		if res.Body != nil {
135399			res.Body.Close()
135400		}
135401		return nil, &googleapi.Error{
135402			Code:   res.StatusCode,
135403			Header: res.Header,
135404		}
135405	}
135406	if err != nil {
135407		return nil, err
135408	}
135409	defer googleapi.CloseBody(res)
135410	if err := googleapi.CheckResponse(res); err != nil {
135411		return nil, err
135412	}
135413	ret := &OperationList{
135414		ServerResponse: googleapi.ServerResponse{
135415			Header:         res.Header,
135416			HTTPStatusCode: res.StatusCode,
135417		},
135418	}
135419	target := &ret
135420	if err := gensupport.DecodeResponse(target, res); err != nil {
135421		return nil, err
135422	}
135423	return ret, nil
135424	// {
135425	//   "description": "Retrieves a list of Operation resources contained within the specified region.",
135426	//   "httpMethod": "GET",
135427	//   "id": "compute.regionOperations.list",
135428	//   "parameterOrder": [
135429	//     "project",
135430	//     "region"
135431	//   ],
135432	//   "parameters": {
135433	//     "filter": {
135434	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
135435	//       "location": "query",
135436	//       "type": "string"
135437	//     },
135438	//     "maxResults": {
135439	//       "default": "500",
135440	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
135441	//       "format": "uint32",
135442	//       "location": "query",
135443	//       "minimum": "0",
135444	//       "type": "integer"
135445	//     },
135446	//     "orderBy": {
135447	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
135448	//       "location": "query",
135449	//       "type": "string"
135450	//     },
135451	//     "pageToken": {
135452	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
135453	//       "location": "query",
135454	//       "type": "string"
135455	//     },
135456	//     "project": {
135457	//       "description": "Project ID for this request.",
135458	//       "location": "path",
135459	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135460	//       "required": true,
135461	//       "type": "string"
135462	//     },
135463	//     "region": {
135464	//       "description": "Name of the region for this request.",
135465	//       "location": "path",
135466	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135467	//       "required": true,
135468	//       "type": "string"
135469	//     }
135470	//   },
135471	//   "path": "{project}/regions/{region}/operations",
135472	//   "response": {
135473	//     "$ref": "OperationList"
135474	//   },
135475	//   "scopes": [
135476	//     "https://www.googleapis.com/auth/cloud-platform",
135477	//     "https://www.googleapis.com/auth/compute",
135478	//     "https://www.googleapis.com/auth/compute.readonly"
135479	//   ]
135480	// }
135481
135482}
135483
135484// Pages invokes f for each page of results.
135485// A non-nil error returned from f will halt the iteration.
135486// The provided context supersedes any context provided to the Context method.
135487func (c *RegionOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
135488	c.ctx_ = ctx
135489	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
135490	for {
135491		x, err := c.Do()
135492		if err != nil {
135493			return err
135494		}
135495		if err := f(x); err != nil {
135496			return err
135497		}
135498		if x.NextPageToken == "" {
135499			return nil
135500		}
135501		c.PageToken(x.NextPageToken)
135502	}
135503}
135504
135505// method id "compute.regionOperations.wait":
135506
135507type RegionOperationsWaitCall struct {
135508	s          *Service
135509	project    string
135510	region     string
135511	operation  string
135512	urlParams_ gensupport.URLParams
135513	ctx_       context.Context
135514	header_    http.Header
135515}
135516
135517// Wait: Waits for the specified Operation resource to return as DONE or
135518// for the request to approach the 2 minute deadline, and retrieves the
135519// specified Operation resource. This method differs from the GET method
135520// in that it waits for no more than the default deadline (2 minutes)
135521// and then returns the current state of the operation, which might be
135522// DONE or still in progress.
135523//
135524// This method is called on a best-effort basis. Specifically:
135525// - In uncommon cases, when the server is overloaded, the request might
135526// return before the default deadline is reached, or might return after
135527// zero seconds.
135528// - If the default deadline is reached, there is no guarantee that the
135529// operation is actually done when the method returns. Be prepared to
135530// retry if the operation is not DONE.
135531func (r *RegionOperationsService) Wait(project string, region string, operation string) *RegionOperationsWaitCall {
135532	c := &RegionOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135533	c.project = project
135534	c.region = region
135535	c.operation = operation
135536	return c
135537}
135538
135539// Fields allows partial responses to be retrieved. See
135540// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135541// for more information.
135542func (c *RegionOperationsWaitCall) Fields(s ...googleapi.Field) *RegionOperationsWaitCall {
135543	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135544	return c
135545}
135546
135547// Context sets the context to be used in this call's Do method. Any
135548// pending HTTP request will be aborted if the provided context is
135549// canceled.
135550func (c *RegionOperationsWaitCall) Context(ctx context.Context) *RegionOperationsWaitCall {
135551	c.ctx_ = ctx
135552	return c
135553}
135554
135555// Header returns an http.Header that can be modified by the caller to
135556// add HTTP headers to the request.
135557func (c *RegionOperationsWaitCall) Header() http.Header {
135558	if c.header_ == nil {
135559		c.header_ = make(http.Header)
135560	}
135561	return c.header_
135562}
135563
135564func (c *RegionOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
135565	reqHeaders := make(http.Header)
135566	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
135567	for k, v := range c.header_ {
135568		reqHeaders[k] = v
135569	}
135570	reqHeaders.Set("User-Agent", c.s.userAgent())
135571	var body io.Reader = nil
135572	c.urlParams_.Set("alt", alt)
135573	c.urlParams_.Set("prettyPrint", "false")
135574	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations/{operation}/wait")
135575	urls += "?" + c.urlParams_.Encode()
135576	req, err := http.NewRequest("POST", urls, body)
135577	if err != nil {
135578		return nil, err
135579	}
135580	req.Header = reqHeaders
135581	googleapi.Expand(req.URL, map[string]string{
135582		"project":   c.project,
135583		"region":    c.region,
135584		"operation": c.operation,
135585	})
135586	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135587}
135588
135589// Do executes the "compute.regionOperations.wait" call.
135590// Exactly one of *Operation or error will be non-nil. Any non-2xx
135591// status code is an error. Response headers are in either
135592// *Operation.ServerResponse.Header or (if a response was returned at
135593// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135594// to check whether the returned error was because
135595// http.StatusNotModified was returned.
135596func (c *RegionOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135597	gensupport.SetOptions(c.urlParams_, opts...)
135598	res, err := c.doRequest("json")
135599	if res != nil && res.StatusCode == http.StatusNotModified {
135600		if res.Body != nil {
135601			res.Body.Close()
135602		}
135603		return nil, &googleapi.Error{
135604			Code:   res.StatusCode,
135605			Header: res.Header,
135606		}
135607	}
135608	if err != nil {
135609		return nil, err
135610	}
135611	defer googleapi.CloseBody(res)
135612	if err := googleapi.CheckResponse(res); err != nil {
135613		return nil, err
135614	}
135615	ret := &Operation{
135616		ServerResponse: googleapi.ServerResponse{
135617			Header:         res.Header,
135618			HTTPStatusCode: res.StatusCode,
135619		},
135620	}
135621	target := &ret
135622	if err := gensupport.DecodeResponse(target, res); err != nil {
135623		return nil, err
135624	}
135625	return ret, nil
135626	// {
135627	//   "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.",
135628	//   "httpMethod": "POST",
135629	//   "id": "compute.regionOperations.wait",
135630	//   "parameterOrder": [
135631	//     "project",
135632	//     "region",
135633	//     "operation"
135634	//   ],
135635	//   "parameters": {
135636	//     "operation": {
135637	//       "description": "Name of the Operations resource to return.",
135638	//       "location": "path",
135639	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
135640	//       "required": true,
135641	//       "type": "string"
135642	//     },
135643	//     "project": {
135644	//       "description": "Project ID for this request.",
135645	//       "location": "path",
135646	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135647	//       "required": true,
135648	//       "type": "string"
135649	//     },
135650	//     "region": {
135651	//       "description": "Name of the region for this request.",
135652	//       "location": "path",
135653	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135654	//       "required": true,
135655	//       "type": "string"
135656	//     }
135657	//   },
135658	//   "path": "{project}/regions/{region}/operations/{operation}/wait",
135659	//   "response": {
135660	//     "$ref": "Operation"
135661	//   },
135662	//   "scopes": [
135663	//     "https://www.googleapis.com/auth/cloud-platform",
135664	//     "https://www.googleapis.com/auth/compute",
135665	//     "https://www.googleapis.com/auth/compute.readonly"
135666	//   ]
135667	// }
135668
135669}
135670
135671// method id "compute.regionSslCertificates.delete":
135672
135673type RegionSslCertificatesDeleteCall struct {
135674	s              *Service
135675	project        string
135676	region         string
135677	sslCertificate string
135678	urlParams_     gensupport.URLParams
135679	ctx_           context.Context
135680	header_        http.Header
135681}
135682
135683// Delete: Deletes the specified SslCertificate resource in the region.
135684func (r *RegionSslCertificatesService) Delete(project string, region string, sslCertificate string) *RegionSslCertificatesDeleteCall {
135685	c := &RegionSslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135686	c.project = project
135687	c.region = region
135688	c.sslCertificate = sslCertificate
135689	return c
135690}
135691
135692// RequestId sets the optional parameter "requestId": An optional
135693// request ID to identify requests. Specify a unique request ID so that
135694// if you must retry your request, the server will know to ignore the
135695// request if it has already been completed.
135696//
135697// For example, consider a situation where you make an initial request
135698// and the request times out. If you make the request again with the
135699// same request ID, the server can check if original operation with the
135700// same request ID was received, and if so, will ignore the second
135701// request. This prevents clients from accidentally creating duplicate
135702// commitments.
135703//
135704// The request ID must be a valid UUID with the exception that zero UUID
135705// is not supported (00000000-0000-0000-0000-000000000000).
135706func (c *RegionSslCertificatesDeleteCall) RequestId(requestId string) *RegionSslCertificatesDeleteCall {
135707	c.urlParams_.Set("requestId", requestId)
135708	return c
135709}
135710
135711// Fields allows partial responses to be retrieved. See
135712// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135713// for more information.
135714func (c *RegionSslCertificatesDeleteCall) Fields(s ...googleapi.Field) *RegionSslCertificatesDeleteCall {
135715	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135716	return c
135717}
135718
135719// Context sets the context to be used in this call's Do method. Any
135720// pending HTTP request will be aborted if the provided context is
135721// canceled.
135722func (c *RegionSslCertificatesDeleteCall) Context(ctx context.Context) *RegionSslCertificatesDeleteCall {
135723	c.ctx_ = ctx
135724	return c
135725}
135726
135727// Header returns an http.Header that can be modified by the caller to
135728// add HTTP headers to the request.
135729func (c *RegionSslCertificatesDeleteCall) Header() http.Header {
135730	if c.header_ == nil {
135731		c.header_ = make(http.Header)
135732	}
135733	return c.header_
135734}
135735
135736func (c *RegionSslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) {
135737	reqHeaders := make(http.Header)
135738	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
135739	for k, v := range c.header_ {
135740		reqHeaders[k] = v
135741	}
135742	reqHeaders.Set("User-Agent", c.s.userAgent())
135743	var body io.Reader = nil
135744	c.urlParams_.Set("alt", alt)
135745	c.urlParams_.Set("prettyPrint", "false")
135746	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/sslCertificates/{sslCertificate}")
135747	urls += "?" + c.urlParams_.Encode()
135748	req, err := http.NewRequest("DELETE", urls, body)
135749	if err != nil {
135750		return nil, err
135751	}
135752	req.Header = reqHeaders
135753	googleapi.Expand(req.URL, map[string]string{
135754		"project":        c.project,
135755		"region":         c.region,
135756		"sslCertificate": c.sslCertificate,
135757	})
135758	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135759}
135760
135761// Do executes the "compute.regionSslCertificates.delete" call.
135762// Exactly one of *Operation or error will be non-nil. Any non-2xx
135763// status code is an error. Response headers are in either
135764// *Operation.ServerResponse.Header or (if a response was returned at
135765// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135766// to check whether the returned error was because
135767// http.StatusNotModified was returned.
135768func (c *RegionSslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135769	gensupport.SetOptions(c.urlParams_, opts...)
135770	res, err := c.doRequest("json")
135771	if res != nil && res.StatusCode == http.StatusNotModified {
135772		if res.Body != nil {
135773			res.Body.Close()
135774		}
135775		return nil, &googleapi.Error{
135776			Code:   res.StatusCode,
135777			Header: res.Header,
135778		}
135779	}
135780	if err != nil {
135781		return nil, err
135782	}
135783	defer googleapi.CloseBody(res)
135784	if err := googleapi.CheckResponse(res); err != nil {
135785		return nil, err
135786	}
135787	ret := &Operation{
135788		ServerResponse: googleapi.ServerResponse{
135789			Header:         res.Header,
135790			HTTPStatusCode: res.StatusCode,
135791		},
135792	}
135793	target := &ret
135794	if err := gensupport.DecodeResponse(target, res); err != nil {
135795		return nil, err
135796	}
135797	return ret, nil
135798	// {
135799	//   "description": "Deletes the specified SslCertificate resource in the region.",
135800	//   "httpMethod": "DELETE",
135801	//   "id": "compute.regionSslCertificates.delete",
135802	//   "parameterOrder": [
135803	//     "project",
135804	//     "region",
135805	//     "sslCertificate"
135806	//   ],
135807	//   "parameters": {
135808	//     "project": {
135809	//       "description": "Project ID for this request.",
135810	//       "location": "path",
135811	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135812	//       "required": true,
135813	//       "type": "string"
135814	//     },
135815	//     "region": {
135816	//       "description": "Name of the region scoping this request.",
135817	//       "location": "path",
135818	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135819	//       "required": true,
135820	//       "type": "string"
135821	//     },
135822	//     "requestId": {
135823	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
135824	//       "location": "query",
135825	//       "type": "string"
135826	//     },
135827	//     "sslCertificate": {
135828	//       "description": "Name of the SslCertificate resource to delete.",
135829	//       "location": "path",
135830	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
135831	//       "required": true,
135832	//       "type": "string"
135833	//     }
135834	//   },
135835	//   "path": "{project}/regions/{region}/sslCertificates/{sslCertificate}",
135836	//   "response": {
135837	//     "$ref": "Operation"
135838	//   },
135839	//   "scopes": [
135840	//     "https://www.googleapis.com/auth/cloud-platform",
135841	//     "https://www.googleapis.com/auth/compute"
135842	//   ]
135843	// }
135844
135845}
135846
135847// method id "compute.regionSslCertificates.get":
135848
135849type RegionSslCertificatesGetCall struct {
135850	s              *Service
135851	project        string
135852	region         string
135853	sslCertificate string
135854	urlParams_     gensupport.URLParams
135855	ifNoneMatch_   string
135856	ctx_           context.Context
135857	header_        http.Header
135858}
135859
135860// Get: Returns the specified SslCertificate resource in the specified
135861// region. Get a list of available SSL certificates by making a list()
135862// request.
135863func (r *RegionSslCertificatesService) Get(project string, region string, sslCertificate string) *RegionSslCertificatesGetCall {
135864	c := &RegionSslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135865	c.project = project
135866	c.region = region
135867	c.sslCertificate = sslCertificate
135868	return c
135869}
135870
135871// Fields allows partial responses to be retrieved. See
135872// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135873// for more information.
135874func (c *RegionSslCertificatesGetCall) Fields(s ...googleapi.Field) *RegionSslCertificatesGetCall {
135875	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135876	return c
135877}
135878
135879// IfNoneMatch sets the optional parameter which makes the operation
135880// fail if the object's ETag matches the given value. This is useful for
135881// getting updates only after the object has changed since the last
135882// request. Use googleapi.IsNotModified to check whether the response
135883// error from Do is the result of In-None-Match.
135884func (c *RegionSslCertificatesGetCall) IfNoneMatch(entityTag string) *RegionSslCertificatesGetCall {
135885	c.ifNoneMatch_ = entityTag
135886	return c
135887}
135888
135889// Context sets the context to be used in this call's Do method. Any
135890// pending HTTP request will be aborted if the provided context is
135891// canceled.
135892func (c *RegionSslCertificatesGetCall) Context(ctx context.Context) *RegionSslCertificatesGetCall {
135893	c.ctx_ = ctx
135894	return c
135895}
135896
135897// Header returns an http.Header that can be modified by the caller to
135898// add HTTP headers to the request.
135899func (c *RegionSslCertificatesGetCall) Header() http.Header {
135900	if c.header_ == nil {
135901		c.header_ = make(http.Header)
135902	}
135903	return c.header_
135904}
135905
135906func (c *RegionSslCertificatesGetCall) doRequest(alt string) (*http.Response, error) {
135907	reqHeaders := make(http.Header)
135908	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
135909	for k, v := range c.header_ {
135910		reqHeaders[k] = v
135911	}
135912	reqHeaders.Set("User-Agent", c.s.userAgent())
135913	if c.ifNoneMatch_ != "" {
135914		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
135915	}
135916	var body io.Reader = nil
135917	c.urlParams_.Set("alt", alt)
135918	c.urlParams_.Set("prettyPrint", "false")
135919	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/sslCertificates/{sslCertificate}")
135920	urls += "?" + c.urlParams_.Encode()
135921	req, err := http.NewRequest("GET", urls, body)
135922	if err != nil {
135923		return nil, err
135924	}
135925	req.Header = reqHeaders
135926	googleapi.Expand(req.URL, map[string]string{
135927		"project":        c.project,
135928		"region":         c.region,
135929		"sslCertificate": c.sslCertificate,
135930	})
135931	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135932}
135933
135934// Do executes the "compute.regionSslCertificates.get" call.
135935// Exactly one of *SslCertificate or error will be non-nil. Any non-2xx
135936// status code is an error. Response headers are in either
135937// *SslCertificate.ServerResponse.Header or (if a response was returned
135938// at all) in error.(*googleapi.Error).Header. Use
135939// googleapi.IsNotModified to check whether the returned error was
135940// because http.StatusNotModified was returned.
135941func (c *RegionSslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) {
135942	gensupport.SetOptions(c.urlParams_, opts...)
135943	res, err := c.doRequest("json")
135944	if res != nil && res.StatusCode == http.StatusNotModified {
135945		if res.Body != nil {
135946			res.Body.Close()
135947		}
135948		return nil, &googleapi.Error{
135949			Code:   res.StatusCode,
135950			Header: res.Header,
135951		}
135952	}
135953	if err != nil {
135954		return nil, err
135955	}
135956	defer googleapi.CloseBody(res)
135957	if err := googleapi.CheckResponse(res); err != nil {
135958		return nil, err
135959	}
135960	ret := &SslCertificate{
135961		ServerResponse: googleapi.ServerResponse{
135962			Header:         res.Header,
135963			HTTPStatusCode: res.StatusCode,
135964		},
135965	}
135966	target := &ret
135967	if err := gensupport.DecodeResponse(target, res); err != nil {
135968		return nil, err
135969	}
135970	return ret, nil
135971	// {
135972	//   "description": "Returns the specified SslCertificate resource in the specified region. Get a list of available SSL certificates by making a list() request.",
135973	//   "httpMethod": "GET",
135974	//   "id": "compute.regionSslCertificates.get",
135975	//   "parameterOrder": [
135976	//     "project",
135977	//     "region",
135978	//     "sslCertificate"
135979	//   ],
135980	//   "parameters": {
135981	//     "project": {
135982	//       "description": "Project ID for this request.",
135983	//       "location": "path",
135984	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135985	//       "required": true,
135986	//       "type": "string"
135987	//     },
135988	//     "region": {
135989	//       "description": "Name of the region scoping this request.",
135990	//       "location": "path",
135991	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135992	//       "required": true,
135993	//       "type": "string"
135994	//     },
135995	//     "sslCertificate": {
135996	//       "description": "Name of the SslCertificate resource to return.",
135997	//       "location": "path",
135998	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
135999	//       "required": true,
136000	//       "type": "string"
136001	//     }
136002	//   },
136003	//   "path": "{project}/regions/{region}/sslCertificates/{sslCertificate}",
136004	//   "response": {
136005	//     "$ref": "SslCertificate"
136006	//   },
136007	//   "scopes": [
136008	//     "https://www.googleapis.com/auth/cloud-platform",
136009	//     "https://www.googleapis.com/auth/compute",
136010	//     "https://www.googleapis.com/auth/compute.readonly"
136011	//   ]
136012	// }
136013
136014}
136015
136016// method id "compute.regionSslCertificates.insert":
136017
136018type RegionSslCertificatesInsertCall struct {
136019	s              *Service
136020	project        string
136021	region         string
136022	sslcertificate *SslCertificate
136023	urlParams_     gensupport.URLParams
136024	ctx_           context.Context
136025	header_        http.Header
136026}
136027
136028// Insert: Creates a SslCertificate resource in the specified project
136029// and region using the data included in the request
136030func (r *RegionSslCertificatesService) Insert(project string, region string, sslcertificate *SslCertificate) *RegionSslCertificatesInsertCall {
136031	c := &RegionSslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136032	c.project = project
136033	c.region = region
136034	c.sslcertificate = sslcertificate
136035	return c
136036}
136037
136038// RequestId sets the optional parameter "requestId": An optional
136039// request ID to identify requests. Specify a unique request ID so that
136040// if you must retry your request, the server will know to ignore the
136041// request if it has already been completed.
136042//
136043// For example, consider a situation where you make an initial request
136044// and the request times out. If you make the request again with the
136045// same request ID, the server can check if original operation with the
136046// same request ID was received, and if so, will ignore the second
136047// request. This prevents clients from accidentally creating duplicate
136048// commitments.
136049//
136050// The request ID must be a valid UUID with the exception that zero UUID
136051// is not supported (00000000-0000-0000-0000-000000000000).
136052func (c *RegionSslCertificatesInsertCall) RequestId(requestId string) *RegionSslCertificatesInsertCall {
136053	c.urlParams_.Set("requestId", requestId)
136054	return c
136055}
136056
136057// Fields allows partial responses to be retrieved. See
136058// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136059// for more information.
136060func (c *RegionSslCertificatesInsertCall) Fields(s ...googleapi.Field) *RegionSslCertificatesInsertCall {
136061	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136062	return c
136063}
136064
136065// Context sets the context to be used in this call's Do method. Any
136066// pending HTTP request will be aborted if the provided context is
136067// canceled.
136068func (c *RegionSslCertificatesInsertCall) Context(ctx context.Context) *RegionSslCertificatesInsertCall {
136069	c.ctx_ = ctx
136070	return c
136071}
136072
136073// Header returns an http.Header that can be modified by the caller to
136074// add HTTP headers to the request.
136075func (c *RegionSslCertificatesInsertCall) Header() http.Header {
136076	if c.header_ == nil {
136077		c.header_ = make(http.Header)
136078	}
136079	return c.header_
136080}
136081
136082func (c *RegionSslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) {
136083	reqHeaders := make(http.Header)
136084	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
136085	for k, v := range c.header_ {
136086		reqHeaders[k] = v
136087	}
136088	reqHeaders.Set("User-Agent", c.s.userAgent())
136089	var body io.Reader = nil
136090	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslcertificate)
136091	if err != nil {
136092		return nil, err
136093	}
136094	reqHeaders.Set("Content-Type", "application/json")
136095	c.urlParams_.Set("alt", alt)
136096	c.urlParams_.Set("prettyPrint", "false")
136097	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/sslCertificates")
136098	urls += "?" + c.urlParams_.Encode()
136099	req, err := http.NewRequest("POST", urls, body)
136100	if err != nil {
136101		return nil, err
136102	}
136103	req.Header = reqHeaders
136104	googleapi.Expand(req.URL, map[string]string{
136105		"project": c.project,
136106		"region":  c.region,
136107	})
136108	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136109}
136110
136111// Do executes the "compute.regionSslCertificates.insert" call.
136112// Exactly one of *Operation or error will be non-nil. Any non-2xx
136113// status code is an error. Response headers are in either
136114// *Operation.ServerResponse.Header or (if a response was returned at
136115// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
136116// to check whether the returned error was because
136117// http.StatusNotModified was returned.
136118func (c *RegionSslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
136119	gensupport.SetOptions(c.urlParams_, opts...)
136120	res, err := c.doRequest("json")
136121	if res != nil && res.StatusCode == http.StatusNotModified {
136122		if res.Body != nil {
136123			res.Body.Close()
136124		}
136125		return nil, &googleapi.Error{
136126			Code:   res.StatusCode,
136127			Header: res.Header,
136128		}
136129	}
136130	if err != nil {
136131		return nil, err
136132	}
136133	defer googleapi.CloseBody(res)
136134	if err := googleapi.CheckResponse(res); err != nil {
136135		return nil, err
136136	}
136137	ret := &Operation{
136138		ServerResponse: googleapi.ServerResponse{
136139			Header:         res.Header,
136140			HTTPStatusCode: res.StatusCode,
136141		},
136142	}
136143	target := &ret
136144	if err := gensupport.DecodeResponse(target, res); err != nil {
136145		return nil, err
136146	}
136147	return ret, nil
136148	// {
136149	//   "description": "Creates a SslCertificate resource in the specified project and region using the data included in the request",
136150	//   "httpMethod": "POST",
136151	//   "id": "compute.regionSslCertificates.insert",
136152	//   "parameterOrder": [
136153	//     "project",
136154	//     "region"
136155	//   ],
136156	//   "parameters": {
136157	//     "project": {
136158	//       "description": "Project ID for this request.",
136159	//       "location": "path",
136160	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136161	//       "required": true,
136162	//       "type": "string"
136163	//     },
136164	//     "region": {
136165	//       "description": "Name of the region scoping this request.",
136166	//       "location": "path",
136167	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
136168	//       "required": true,
136169	//       "type": "string"
136170	//     },
136171	//     "requestId": {
136172	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
136173	//       "location": "query",
136174	//       "type": "string"
136175	//     }
136176	//   },
136177	//   "path": "{project}/regions/{region}/sslCertificates",
136178	//   "request": {
136179	//     "$ref": "SslCertificate"
136180	//   },
136181	//   "response": {
136182	//     "$ref": "Operation"
136183	//   },
136184	//   "scopes": [
136185	//     "https://www.googleapis.com/auth/cloud-platform",
136186	//     "https://www.googleapis.com/auth/compute"
136187	//   ]
136188	// }
136189
136190}
136191
136192// method id "compute.regionSslCertificates.list":
136193
136194type RegionSslCertificatesListCall struct {
136195	s            *Service
136196	project      string
136197	region       string
136198	urlParams_   gensupport.URLParams
136199	ifNoneMatch_ string
136200	ctx_         context.Context
136201	header_      http.Header
136202}
136203
136204// List: Retrieves the list of SslCertificate resources available to the
136205// specified project in the specified region.
136206func (r *RegionSslCertificatesService) List(project string, region string) *RegionSslCertificatesListCall {
136207	c := &RegionSslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136208	c.project = project
136209	c.region = region
136210	return c
136211}
136212
136213// Filter sets the optional parameter "filter": A filter expression that
136214// filters resources listed in the response. The expression must specify
136215// the field name, a comparison operator, and the value that you want to
136216// use for filtering. The value must be a string, a number, or a
136217// boolean. The comparison operator must be either =, !=, >, or <.
136218//
136219// For example, if you are filtering Compute Engine instances, you can
136220// exclude instances named example-instance by specifying name !=
136221// example-instance.
136222//
136223// You can also filter nested fields. For example, you could specify
136224// scheduling.automaticRestart = false to include instances only if they
136225// are not scheduled for automatic restarts. You can use filtering on
136226// nested fields to filter based on resource labels.
136227//
136228// To filter on multiple expressions, provide each separate expression
136229// within parentheses. For example, (scheduling.automaticRestart = true)
136230// (cpuPlatform = "Intel Skylake"). By default, each expression is an
136231// AND expression. However, you can include AND and OR expressions
136232// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
136233// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
136234// true).
136235func (c *RegionSslCertificatesListCall) Filter(filter string) *RegionSslCertificatesListCall {
136236	c.urlParams_.Set("filter", filter)
136237	return c
136238}
136239
136240// MaxResults sets the optional parameter "maxResults": The maximum
136241// number of results per page that should be returned. If the number of
136242// available results is larger than maxResults, Compute Engine returns a
136243// nextPageToken that can be used to get the next page of results in
136244// subsequent list requests. Acceptable values are 0 to 500, inclusive.
136245// (Default: 500)
136246func (c *RegionSslCertificatesListCall) MaxResults(maxResults int64) *RegionSslCertificatesListCall {
136247	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
136248	return c
136249}
136250
136251// OrderBy sets the optional parameter "orderBy": Sorts list results by
136252// a certain order. By default, results are returned in alphanumerical
136253// order based on the resource name.
136254//
136255// You can also sort results in descending order based on the creation
136256// timestamp using orderBy="creationTimestamp desc". This sorts results
136257// based on the creationTimestamp field in reverse chronological order
136258// (newest result first). Use this to sort resources like operations so
136259// that the newest operation is returned first.
136260//
136261// Currently, only sorting by name or creationTimestamp desc is
136262// supported.
136263func (c *RegionSslCertificatesListCall) OrderBy(orderBy string) *RegionSslCertificatesListCall {
136264	c.urlParams_.Set("orderBy", orderBy)
136265	return c
136266}
136267
136268// PageToken sets the optional parameter "pageToken": Specifies a page
136269// token to use. Set pageToken to the nextPageToken returned by a
136270// previous list request to get the next page of results.
136271func (c *RegionSslCertificatesListCall) PageToken(pageToken string) *RegionSslCertificatesListCall {
136272	c.urlParams_.Set("pageToken", pageToken)
136273	return c
136274}
136275
136276// Fields allows partial responses to be retrieved. See
136277// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136278// for more information.
136279func (c *RegionSslCertificatesListCall) Fields(s ...googleapi.Field) *RegionSslCertificatesListCall {
136280	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136281	return c
136282}
136283
136284// IfNoneMatch sets the optional parameter which makes the operation
136285// fail if the object's ETag matches the given value. This is useful for
136286// getting updates only after the object has changed since the last
136287// request. Use googleapi.IsNotModified to check whether the response
136288// error from Do is the result of In-None-Match.
136289func (c *RegionSslCertificatesListCall) IfNoneMatch(entityTag string) *RegionSslCertificatesListCall {
136290	c.ifNoneMatch_ = entityTag
136291	return c
136292}
136293
136294// Context sets the context to be used in this call's Do method. Any
136295// pending HTTP request will be aborted if the provided context is
136296// canceled.
136297func (c *RegionSslCertificatesListCall) Context(ctx context.Context) *RegionSslCertificatesListCall {
136298	c.ctx_ = ctx
136299	return c
136300}
136301
136302// Header returns an http.Header that can be modified by the caller to
136303// add HTTP headers to the request.
136304func (c *RegionSslCertificatesListCall) Header() http.Header {
136305	if c.header_ == nil {
136306		c.header_ = make(http.Header)
136307	}
136308	return c.header_
136309}
136310
136311func (c *RegionSslCertificatesListCall) doRequest(alt string) (*http.Response, error) {
136312	reqHeaders := make(http.Header)
136313	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
136314	for k, v := range c.header_ {
136315		reqHeaders[k] = v
136316	}
136317	reqHeaders.Set("User-Agent", c.s.userAgent())
136318	if c.ifNoneMatch_ != "" {
136319		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
136320	}
136321	var body io.Reader = nil
136322	c.urlParams_.Set("alt", alt)
136323	c.urlParams_.Set("prettyPrint", "false")
136324	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/sslCertificates")
136325	urls += "?" + c.urlParams_.Encode()
136326	req, err := http.NewRequest("GET", urls, body)
136327	if err != nil {
136328		return nil, err
136329	}
136330	req.Header = reqHeaders
136331	googleapi.Expand(req.URL, map[string]string{
136332		"project": c.project,
136333		"region":  c.region,
136334	})
136335	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136336}
136337
136338// Do executes the "compute.regionSslCertificates.list" call.
136339// Exactly one of *SslCertificateList or error will be non-nil. Any
136340// non-2xx status code is an error. Response headers are in either
136341// *SslCertificateList.ServerResponse.Header or (if a response was
136342// returned at all) in error.(*googleapi.Error).Header. Use
136343// googleapi.IsNotModified to check whether the returned error was
136344// because http.StatusNotModified was returned.
136345func (c *RegionSslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) {
136346	gensupport.SetOptions(c.urlParams_, opts...)
136347	res, err := c.doRequest("json")
136348	if res != nil && res.StatusCode == http.StatusNotModified {
136349		if res.Body != nil {
136350			res.Body.Close()
136351		}
136352		return nil, &googleapi.Error{
136353			Code:   res.StatusCode,
136354			Header: res.Header,
136355		}
136356	}
136357	if err != nil {
136358		return nil, err
136359	}
136360	defer googleapi.CloseBody(res)
136361	if err := googleapi.CheckResponse(res); err != nil {
136362		return nil, err
136363	}
136364	ret := &SslCertificateList{
136365		ServerResponse: googleapi.ServerResponse{
136366			Header:         res.Header,
136367			HTTPStatusCode: res.StatusCode,
136368		},
136369	}
136370	target := &ret
136371	if err := gensupport.DecodeResponse(target, res); err != nil {
136372		return nil, err
136373	}
136374	return ret, nil
136375	// {
136376	//   "description": "Retrieves the list of SslCertificate resources available to the specified project in the specified region.",
136377	//   "httpMethod": "GET",
136378	//   "id": "compute.regionSslCertificates.list",
136379	//   "parameterOrder": [
136380	//     "project",
136381	//     "region"
136382	//   ],
136383	//   "parameters": {
136384	//     "filter": {
136385	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
136386	//       "location": "query",
136387	//       "type": "string"
136388	//     },
136389	//     "maxResults": {
136390	//       "default": "500",
136391	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
136392	//       "format": "uint32",
136393	//       "location": "query",
136394	//       "minimum": "0",
136395	//       "type": "integer"
136396	//     },
136397	//     "orderBy": {
136398	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
136399	//       "location": "query",
136400	//       "type": "string"
136401	//     },
136402	//     "pageToken": {
136403	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
136404	//       "location": "query",
136405	//       "type": "string"
136406	//     },
136407	//     "project": {
136408	//       "description": "Project ID for this request.",
136409	//       "location": "path",
136410	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136411	//       "required": true,
136412	//       "type": "string"
136413	//     },
136414	//     "region": {
136415	//       "description": "Name of the region scoping this request.",
136416	//       "location": "path",
136417	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
136418	//       "required": true,
136419	//       "type": "string"
136420	//     }
136421	//   },
136422	//   "path": "{project}/regions/{region}/sslCertificates",
136423	//   "response": {
136424	//     "$ref": "SslCertificateList"
136425	//   },
136426	//   "scopes": [
136427	//     "https://www.googleapis.com/auth/cloud-platform",
136428	//     "https://www.googleapis.com/auth/compute",
136429	//     "https://www.googleapis.com/auth/compute.readonly"
136430	//   ]
136431	// }
136432
136433}
136434
136435// Pages invokes f for each page of results.
136436// A non-nil error returned from f will halt the iteration.
136437// The provided context supersedes any context provided to the Context method.
136438func (c *RegionSslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error {
136439	c.ctx_ = ctx
136440	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
136441	for {
136442		x, err := c.Do()
136443		if err != nil {
136444			return err
136445		}
136446		if err := f(x); err != nil {
136447			return err
136448		}
136449		if x.NextPageToken == "" {
136450			return nil
136451		}
136452		c.PageToken(x.NextPageToken)
136453	}
136454}
136455
136456// method id "compute.regionSslCertificates.testIamPermissions":
136457
136458type RegionSslCertificatesTestIamPermissionsCall struct {
136459	s                      *Service
136460	project                string
136461	region                 string
136462	resource               string
136463	testpermissionsrequest *TestPermissionsRequest
136464	urlParams_             gensupport.URLParams
136465	ctx_                   context.Context
136466	header_                http.Header
136467}
136468
136469// TestIamPermissions: Returns permissions that a caller has on the
136470// specified resource and region.
136471func (r *RegionSslCertificatesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionSslCertificatesTestIamPermissionsCall {
136472	c := &RegionSslCertificatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136473	c.project = project
136474	c.region = region
136475	c.resource = resource
136476	c.testpermissionsrequest = testpermissionsrequest
136477	return c
136478}
136479
136480// Fields allows partial responses to be retrieved. See
136481// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136482// for more information.
136483func (c *RegionSslCertificatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionSslCertificatesTestIamPermissionsCall {
136484	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136485	return c
136486}
136487
136488// Context sets the context to be used in this call's Do method. Any
136489// pending HTTP request will be aborted if the provided context is
136490// canceled.
136491func (c *RegionSslCertificatesTestIamPermissionsCall) Context(ctx context.Context) *RegionSslCertificatesTestIamPermissionsCall {
136492	c.ctx_ = ctx
136493	return c
136494}
136495
136496// Header returns an http.Header that can be modified by the caller to
136497// add HTTP headers to the request.
136498func (c *RegionSslCertificatesTestIamPermissionsCall) Header() http.Header {
136499	if c.header_ == nil {
136500		c.header_ = make(http.Header)
136501	}
136502	return c.header_
136503}
136504
136505func (c *RegionSslCertificatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
136506	reqHeaders := make(http.Header)
136507	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
136508	for k, v := range c.header_ {
136509		reqHeaders[k] = v
136510	}
136511	reqHeaders.Set("User-Agent", c.s.userAgent())
136512	var body io.Reader = nil
136513	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
136514	if err != nil {
136515		return nil, err
136516	}
136517	reqHeaders.Set("Content-Type", "application/json")
136518	c.urlParams_.Set("alt", alt)
136519	c.urlParams_.Set("prettyPrint", "false")
136520	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/sslCertificates/{resource}/testIamPermissions")
136521	urls += "?" + c.urlParams_.Encode()
136522	req, err := http.NewRequest("POST", urls, body)
136523	if err != nil {
136524		return nil, err
136525	}
136526	req.Header = reqHeaders
136527	googleapi.Expand(req.URL, map[string]string{
136528		"project":  c.project,
136529		"region":   c.region,
136530		"resource": c.resource,
136531	})
136532	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136533}
136534
136535// Do executes the "compute.regionSslCertificates.testIamPermissions" call.
136536// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
136537// non-2xx status code is an error. Response headers are in either
136538// *TestPermissionsResponse.ServerResponse.Header or (if a response was
136539// returned at all) in error.(*googleapi.Error).Header. Use
136540// googleapi.IsNotModified to check whether the returned error was
136541// because http.StatusNotModified was returned.
136542func (c *RegionSslCertificatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
136543	gensupport.SetOptions(c.urlParams_, opts...)
136544	res, err := c.doRequest("json")
136545	if res != nil && res.StatusCode == http.StatusNotModified {
136546		if res.Body != nil {
136547			res.Body.Close()
136548		}
136549		return nil, &googleapi.Error{
136550			Code:   res.StatusCode,
136551			Header: res.Header,
136552		}
136553	}
136554	if err != nil {
136555		return nil, err
136556	}
136557	defer googleapi.CloseBody(res)
136558	if err := googleapi.CheckResponse(res); err != nil {
136559		return nil, err
136560	}
136561	ret := &TestPermissionsResponse{
136562		ServerResponse: googleapi.ServerResponse{
136563			Header:         res.Header,
136564			HTTPStatusCode: res.StatusCode,
136565		},
136566	}
136567	target := &ret
136568	if err := gensupport.DecodeResponse(target, res); err != nil {
136569		return nil, err
136570	}
136571	return ret, nil
136572	// {
136573	//   "description": "Returns permissions that a caller has on the specified resource and region.",
136574	//   "httpMethod": "POST",
136575	//   "id": "compute.regionSslCertificates.testIamPermissions",
136576	//   "parameterOrder": [
136577	//     "project",
136578	//     "region",
136579	//     "resource"
136580	//   ],
136581	//   "parameters": {
136582	//     "project": {
136583	//       "description": "Project ID for this request.",
136584	//       "location": "path",
136585	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136586	//       "required": true,
136587	//       "type": "string"
136588	//     },
136589	//     "region": {
136590	//       "description": "The name of the region for this request.",
136591	//       "location": "path",
136592	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
136593	//       "required": true,
136594	//       "type": "string"
136595	//     },
136596	//     "resource": {
136597	//       "description": "Name or id of the resource for this request.",
136598	//       "location": "path",
136599	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
136600	//       "required": true,
136601	//       "type": "string"
136602	//     }
136603	//   },
136604	//   "path": "{project}/regions/{region}/sslCertificates/{resource}/testIamPermissions",
136605	//   "request": {
136606	//     "$ref": "TestPermissionsRequest"
136607	//   },
136608	//   "response": {
136609	//     "$ref": "TestPermissionsResponse"
136610	//   },
136611	//   "scopes": [
136612	//     "https://www.googleapis.com/auth/cloud-platform",
136613	//     "https://www.googleapis.com/auth/compute",
136614	//     "https://www.googleapis.com/auth/compute.readonly"
136615	//   ]
136616	// }
136617
136618}
136619
136620// method id "compute.regionTargetHttpProxies.delete":
136621
136622type RegionTargetHttpProxiesDeleteCall struct {
136623	s               *Service
136624	project         string
136625	region          string
136626	targetHttpProxy string
136627	urlParams_      gensupport.URLParams
136628	ctx_            context.Context
136629	header_         http.Header
136630}
136631
136632// Delete: Deletes the specified TargetHttpProxy resource.
136633func (r *RegionTargetHttpProxiesService) Delete(project string, region string, targetHttpProxy string) *RegionTargetHttpProxiesDeleteCall {
136634	c := &RegionTargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136635	c.project = project
136636	c.region = region
136637	c.targetHttpProxy = targetHttpProxy
136638	return c
136639}
136640
136641// RequestId sets the optional parameter "requestId": An optional
136642// request ID to identify requests. Specify a unique request ID so that
136643// if you must retry your request, the server will know to ignore the
136644// request if it has already been completed.
136645//
136646// For example, consider a situation where you make an initial request
136647// and the request times out. If you make the request again with the
136648// same request ID, the server can check if original operation with the
136649// same request ID was received, and if so, will ignore the second
136650// request. This prevents clients from accidentally creating duplicate
136651// commitments.
136652//
136653// The request ID must be a valid UUID with the exception that zero UUID
136654// is not supported (00000000-0000-0000-0000-000000000000).
136655func (c *RegionTargetHttpProxiesDeleteCall) RequestId(requestId string) *RegionTargetHttpProxiesDeleteCall {
136656	c.urlParams_.Set("requestId", requestId)
136657	return c
136658}
136659
136660// Fields allows partial responses to be retrieved. See
136661// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136662// for more information.
136663func (c *RegionTargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesDeleteCall {
136664	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136665	return c
136666}
136667
136668// Context sets the context to be used in this call's Do method. Any
136669// pending HTTP request will be aborted if the provided context is
136670// canceled.
136671func (c *RegionTargetHttpProxiesDeleteCall) Context(ctx context.Context) *RegionTargetHttpProxiesDeleteCall {
136672	c.ctx_ = ctx
136673	return c
136674}
136675
136676// Header returns an http.Header that can be modified by the caller to
136677// add HTTP headers to the request.
136678func (c *RegionTargetHttpProxiesDeleteCall) Header() http.Header {
136679	if c.header_ == nil {
136680		c.header_ = make(http.Header)
136681	}
136682	return c.header_
136683}
136684
136685func (c *RegionTargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
136686	reqHeaders := make(http.Header)
136687	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
136688	for k, v := range c.header_ {
136689		reqHeaders[k] = v
136690	}
136691	reqHeaders.Set("User-Agent", c.s.userAgent())
136692	var body io.Reader = nil
136693	c.urlParams_.Set("alt", alt)
136694	c.urlParams_.Set("prettyPrint", "false")
136695	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}")
136696	urls += "?" + c.urlParams_.Encode()
136697	req, err := http.NewRequest("DELETE", urls, body)
136698	if err != nil {
136699		return nil, err
136700	}
136701	req.Header = reqHeaders
136702	googleapi.Expand(req.URL, map[string]string{
136703		"project":         c.project,
136704		"region":          c.region,
136705		"targetHttpProxy": c.targetHttpProxy,
136706	})
136707	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136708}
136709
136710// Do executes the "compute.regionTargetHttpProxies.delete" call.
136711// Exactly one of *Operation or error will be non-nil. Any non-2xx
136712// status code is an error. Response headers are in either
136713// *Operation.ServerResponse.Header or (if a response was returned at
136714// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
136715// to check whether the returned error was because
136716// http.StatusNotModified was returned.
136717func (c *RegionTargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
136718	gensupport.SetOptions(c.urlParams_, opts...)
136719	res, err := c.doRequest("json")
136720	if res != nil && res.StatusCode == http.StatusNotModified {
136721		if res.Body != nil {
136722			res.Body.Close()
136723		}
136724		return nil, &googleapi.Error{
136725			Code:   res.StatusCode,
136726			Header: res.Header,
136727		}
136728	}
136729	if err != nil {
136730		return nil, err
136731	}
136732	defer googleapi.CloseBody(res)
136733	if err := googleapi.CheckResponse(res); err != nil {
136734		return nil, err
136735	}
136736	ret := &Operation{
136737		ServerResponse: googleapi.ServerResponse{
136738			Header:         res.Header,
136739			HTTPStatusCode: res.StatusCode,
136740		},
136741	}
136742	target := &ret
136743	if err := gensupport.DecodeResponse(target, res); err != nil {
136744		return nil, err
136745	}
136746	return ret, nil
136747	// {
136748	//   "description": "Deletes the specified TargetHttpProxy resource.",
136749	//   "httpMethod": "DELETE",
136750	//   "id": "compute.regionTargetHttpProxies.delete",
136751	//   "parameterOrder": [
136752	//     "project",
136753	//     "region",
136754	//     "targetHttpProxy"
136755	//   ],
136756	//   "parameters": {
136757	//     "project": {
136758	//       "description": "Project ID for this request.",
136759	//       "location": "path",
136760	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136761	//       "required": true,
136762	//       "type": "string"
136763	//     },
136764	//     "region": {
136765	//       "description": "Name of the region scoping this request.",
136766	//       "location": "path",
136767	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
136768	//       "required": true,
136769	//       "type": "string"
136770	//     },
136771	//     "requestId": {
136772	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
136773	//       "location": "query",
136774	//       "type": "string"
136775	//     },
136776	//     "targetHttpProxy": {
136777	//       "description": "Name of the TargetHttpProxy resource to delete.",
136778	//       "location": "path",
136779	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
136780	//       "required": true,
136781	//       "type": "string"
136782	//     }
136783	//   },
136784	//   "path": "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
136785	//   "response": {
136786	//     "$ref": "Operation"
136787	//   },
136788	//   "scopes": [
136789	//     "https://www.googleapis.com/auth/cloud-platform",
136790	//     "https://www.googleapis.com/auth/compute"
136791	//   ]
136792	// }
136793
136794}
136795
136796// method id "compute.regionTargetHttpProxies.get":
136797
136798type RegionTargetHttpProxiesGetCall struct {
136799	s               *Service
136800	project         string
136801	region          string
136802	targetHttpProxy string
136803	urlParams_      gensupport.URLParams
136804	ifNoneMatch_    string
136805	ctx_            context.Context
136806	header_         http.Header
136807}
136808
136809// Get: Returns the specified TargetHttpProxy resource in the specified
136810// region. Gets a list of available target HTTP proxies by making a
136811// list() request.
136812func (r *RegionTargetHttpProxiesService) Get(project string, region string, targetHttpProxy string) *RegionTargetHttpProxiesGetCall {
136813	c := &RegionTargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136814	c.project = project
136815	c.region = region
136816	c.targetHttpProxy = targetHttpProxy
136817	return c
136818}
136819
136820// Fields allows partial responses to be retrieved. See
136821// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136822// for more information.
136823func (c *RegionTargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesGetCall {
136824	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136825	return c
136826}
136827
136828// IfNoneMatch sets the optional parameter which makes the operation
136829// fail if the object's ETag matches the given value. This is useful for
136830// getting updates only after the object has changed since the last
136831// request. Use googleapi.IsNotModified to check whether the response
136832// error from Do is the result of In-None-Match.
136833func (c *RegionTargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *RegionTargetHttpProxiesGetCall {
136834	c.ifNoneMatch_ = entityTag
136835	return c
136836}
136837
136838// Context sets the context to be used in this call's Do method. Any
136839// pending HTTP request will be aborted if the provided context is
136840// canceled.
136841func (c *RegionTargetHttpProxiesGetCall) Context(ctx context.Context) *RegionTargetHttpProxiesGetCall {
136842	c.ctx_ = ctx
136843	return c
136844}
136845
136846// Header returns an http.Header that can be modified by the caller to
136847// add HTTP headers to the request.
136848func (c *RegionTargetHttpProxiesGetCall) Header() http.Header {
136849	if c.header_ == nil {
136850		c.header_ = make(http.Header)
136851	}
136852	return c.header_
136853}
136854
136855func (c *RegionTargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
136856	reqHeaders := make(http.Header)
136857	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
136858	for k, v := range c.header_ {
136859		reqHeaders[k] = v
136860	}
136861	reqHeaders.Set("User-Agent", c.s.userAgent())
136862	if c.ifNoneMatch_ != "" {
136863		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
136864	}
136865	var body io.Reader = nil
136866	c.urlParams_.Set("alt", alt)
136867	c.urlParams_.Set("prettyPrint", "false")
136868	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}")
136869	urls += "?" + c.urlParams_.Encode()
136870	req, err := http.NewRequest("GET", urls, body)
136871	if err != nil {
136872		return nil, err
136873	}
136874	req.Header = reqHeaders
136875	googleapi.Expand(req.URL, map[string]string{
136876		"project":         c.project,
136877		"region":          c.region,
136878		"targetHttpProxy": c.targetHttpProxy,
136879	})
136880	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136881}
136882
136883// Do executes the "compute.regionTargetHttpProxies.get" call.
136884// Exactly one of *TargetHttpProxy or error will be non-nil. Any non-2xx
136885// status code is an error. Response headers are in either
136886// *TargetHttpProxy.ServerResponse.Header or (if a response was returned
136887// at all) in error.(*googleapi.Error).Header. Use
136888// googleapi.IsNotModified to check whether the returned error was
136889// because http.StatusNotModified was returned.
136890func (c *RegionTargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) {
136891	gensupport.SetOptions(c.urlParams_, opts...)
136892	res, err := c.doRequest("json")
136893	if res != nil && res.StatusCode == http.StatusNotModified {
136894		if res.Body != nil {
136895			res.Body.Close()
136896		}
136897		return nil, &googleapi.Error{
136898			Code:   res.StatusCode,
136899			Header: res.Header,
136900		}
136901	}
136902	if err != nil {
136903		return nil, err
136904	}
136905	defer googleapi.CloseBody(res)
136906	if err := googleapi.CheckResponse(res); err != nil {
136907		return nil, err
136908	}
136909	ret := &TargetHttpProxy{
136910		ServerResponse: googleapi.ServerResponse{
136911			Header:         res.Header,
136912			HTTPStatusCode: res.StatusCode,
136913		},
136914	}
136915	target := &ret
136916	if err := gensupport.DecodeResponse(target, res); err != nil {
136917		return nil, err
136918	}
136919	return ret, nil
136920	// {
136921	//   "description": "Returns the specified TargetHttpProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.",
136922	//   "httpMethod": "GET",
136923	//   "id": "compute.regionTargetHttpProxies.get",
136924	//   "parameterOrder": [
136925	//     "project",
136926	//     "region",
136927	//     "targetHttpProxy"
136928	//   ],
136929	//   "parameters": {
136930	//     "project": {
136931	//       "description": "Project ID for this request.",
136932	//       "location": "path",
136933	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136934	//       "required": true,
136935	//       "type": "string"
136936	//     },
136937	//     "region": {
136938	//       "description": "Name of the region scoping this request.",
136939	//       "location": "path",
136940	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
136941	//       "required": true,
136942	//       "type": "string"
136943	//     },
136944	//     "targetHttpProxy": {
136945	//       "description": "Name of the TargetHttpProxy resource to return.",
136946	//       "location": "path",
136947	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
136948	//       "required": true,
136949	//       "type": "string"
136950	//     }
136951	//   },
136952	//   "path": "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
136953	//   "response": {
136954	//     "$ref": "TargetHttpProxy"
136955	//   },
136956	//   "scopes": [
136957	//     "https://www.googleapis.com/auth/cloud-platform",
136958	//     "https://www.googleapis.com/auth/compute",
136959	//     "https://www.googleapis.com/auth/compute.readonly"
136960	//   ]
136961	// }
136962
136963}
136964
136965// method id "compute.regionTargetHttpProxies.insert":
136966
136967type RegionTargetHttpProxiesInsertCall struct {
136968	s               *Service
136969	project         string
136970	region          string
136971	targethttpproxy *TargetHttpProxy
136972	urlParams_      gensupport.URLParams
136973	ctx_            context.Context
136974	header_         http.Header
136975}
136976
136977// Insert: Creates a TargetHttpProxy resource in the specified project
136978// and region using the data included in the request.
136979func (r *RegionTargetHttpProxiesService) Insert(project string, region string, targethttpproxy *TargetHttpProxy) *RegionTargetHttpProxiesInsertCall {
136980	c := &RegionTargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136981	c.project = project
136982	c.region = region
136983	c.targethttpproxy = targethttpproxy
136984	return c
136985}
136986
136987// RequestId sets the optional parameter "requestId": An optional
136988// request ID to identify requests. Specify a unique request ID so that
136989// if you must retry your request, the server will know to ignore the
136990// request if it has already been completed.
136991//
136992// For example, consider a situation where you make an initial request
136993// and the request times out. If you make the request again with the
136994// same request ID, the server can check if original operation with the
136995// same request ID was received, and if so, will ignore the second
136996// request. This prevents clients from accidentally creating duplicate
136997// commitments.
136998//
136999// The request ID must be a valid UUID with the exception that zero UUID
137000// is not supported (00000000-0000-0000-0000-000000000000).
137001func (c *RegionTargetHttpProxiesInsertCall) RequestId(requestId string) *RegionTargetHttpProxiesInsertCall {
137002	c.urlParams_.Set("requestId", requestId)
137003	return c
137004}
137005
137006// Fields allows partial responses to be retrieved. See
137007// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137008// for more information.
137009func (c *RegionTargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesInsertCall {
137010	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137011	return c
137012}
137013
137014// Context sets the context to be used in this call's Do method. Any
137015// pending HTTP request will be aborted if the provided context is
137016// canceled.
137017func (c *RegionTargetHttpProxiesInsertCall) Context(ctx context.Context) *RegionTargetHttpProxiesInsertCall {
137018	c.ctx_ = ctx
137019	return c
137020}
137021
137022// Header returns an http.Header that can be modified by the caller to
137023// add HTTP headers to the request.
137024func (c *RegionTargetHttpProxiesInsertCall) Header() http.Header {
137025	if c.header_ == nil {
137026		c.header_ = make(http.Header)
137027	}
137028	return c.header_
137029}
137030
137031func (c *RegionTargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
137032	reqHeaders := make(http.Header)
137033	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
137034	for k, v := range c.header_ {
137035		reqHeaders[k] = v
137036	}
137037	reqHeaders.Set("User-Agent", c.s.userAgent())
137038	var body io.Reader = nil
137039	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
137040	if err != nil {
137041		return nil, err
137042	}
137043	reqHeaders.Set("Content-Type", "application/json")
137044	c.urlParams_.Set("alt", alt)
137045	c.urlParams_.Set("prettyPrint", "false")
137046	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies")
137047	urls += "?" + c.urlParams_.Encode()
137048	req, err := http.NewRequest("POST", urls, body)
137049	if err != nil {
137050		return nil, err
137051	}
137052	req.Header = reqHeaders
137053	googleapi.Expand(req.URL, map[string]string{
137054		"project": c.project,
137055		"region":  c.region,
137056	})
137057	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137058}
137059
137060// Do executes the "compute.regionTargetHttpProxies.insert" call.
137061// Exactly one of *Operation or error will be non-nil. Any non-2xx
137062// status code is an error. Response headers are in either
137063// *Operation.ServerResponse.Header or (if a response was returned at
137064// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
137065// to check whether the returned error was because
137066// http.StatusNotModified was returned.
137067func (c *RegionTargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
137068	gensupport.SetOptions(c.urlParams_, opts...)
137069	res, err := c.doRequest("json")
137070	if res != nil && res.StatusCode == http.StatusNotModified {
137071		if res.Body != nil {
137072			res.Body.Close()
137073		}
137074		return nil, &googleapi.Error{
137075			Code:   res.StatusCode,
137076			Header: res.Header,
137077		}
137078	}
137079	if err != nil {
137080		return nil, err
137081	}
137082	defer googleapi.CloseBody(res)
137083	if err := googleapi.CheckResponse(res); err != nil {
137084		return nil, err
137085	}
137086	ret := &Operation{
137087		ServerResponse: googleapi.ServerResponse{
137088			Header:         res.Header,
137089			HTTPStatusCode: res.StatusCode,
137090		},
137091	}
137092	target := &ret
137093	if err := gensupport.DecodeResponse(target, res); err != nil {
137094		return nil, err
137095	}
137096	return ret, nil
137097	// {
137098	//   "description": "Creates a TargetHttpProxy resource in the specified project and region using the data included in the request.",
137099	//   "httpMethod": "POST",
137100	//   "id": "compute.regionTargetHttpProxies.insert",
137101	//   "parameterOrder": [
137102	//     "project",
137103	//     "region"
137104	//   ],
137105	//   "parameters": {
137106	//     "project": {
137107	//       "description": "Project ID for this request.",
137108	//       "location": "path",
137109	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137110	//       "required": true,
137111	//       "type": "string"
137112	//     },
137113	//     "region": {
137114	//       "description": "Name of the region scoping this request.",
137115	//       "location": "path",
137116	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137117	//       "required": true,
137118	//       "type": "string"
137119	//     },
137120	//     "requestId": {
137121	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
137122	//       "location": "query",
137123	//       "type": "string"
137124	//     }
137125	//   },
137126	//   "path": "{project}/regions/{region}/targetHttpProxies",
137127	//   "request": {
137128	//     "$ref": "TargetHttpProxy"
137129	//   },
137130	//   "response": {
137131	//     "$ref": "Operation"
137132	//   },
137133	//   "scopes": [
137134	//     "https://www.googleapis.com/auth/cloud-platform",
137135	//     "https://www.googleapis.com/auth/compute"
137136	//   ]
137137	// }
137138
137139}
137140
137141// method id "compute.regionTargetHttpProxies.list":
137142
137143type RegionTargetHttpProxiesListCall struct {
137144	s            *Service
137145	project      string
137146	region       string
137147	urlParams_   gensupport.URLParams
137148	ifNoneMatch_ string
137149	ctx_         context.Context
137150	header_      http.Header
137151}
137152
137153// List: Retrieves the list of TargetHttpProxy resources available to
137154// the specified project in the specified region.
137155func (r *RegionTargetHttpProxiesService) List(project string, region string) *RegionTargetHttpProxiesListCall {
137156	c := &RegionTargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137157	c.project = project
137158	c.region = region
137159	return c
137160}
137161
137162// Filter sets the optional parameter "filter": A filter expression that
137163// filters resources listed in the response. The expression must specify
137164// the field name, a comparison operator, and the value that you want to
137165// use for filtering. The value must be a string, a number, or a
137166// boolean. The comparison operator must be either =, !=, >, or <.
137167//
137168// For example, if you are filtering Compute Engine instances, you can
137169// exclude instances named example-instance by specifying name !=
137170// example-instance.
137171//
137172// You can also filter nested fields. For example, you could specify
137173// scheduling.automaticRestart = false to include instances only if they
137174// are not scheduled for automatic restarts. You can use filtering on
137175// nested fields to filter based on resource labels.
137176//
137177// To filter on multiple expressions, provide each separate expression
137178// within parentheses. For example, (scheduling.automaticRestart = true)
137179// (cpuPlatform = "Intel Skylake"). By default, each expression is an
137180// AND expression. However, you can include AND and OR expressions
137181// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
137182// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
137183// true).
137184func (c *RegionTargetHttpProxiesListCall) Filter(filter string) *RegionTargetHttpProxiesListCall {
137185	c.urlParams_.Set("filter", filter)
137186	return c
137187}
137188
137189// MaxResults sets the optional parameter "maxResults": The maximum
137190// number of results per page that should be returned. If the number of
137191// available results is larger than maxResults, Compute Engine returns a
137192// nextPageToken that can be used to get the next page of results in
137193// subsequent list requests. Acceptable values are 0 to 500, inclusive.
137194// (Default: 500)
137195func (c *RegionTargetHttpProxiesListCall) MaxResults(maxResults int64) *RegionTargetHttpProxiesListCall {
137196	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
137197	return c
137198}
137199
137200// OrderBy sets the optional parameter "orderBy": Sorts list results by
137201// a certain order. By default, results are returned in alphanumerical
137202// order based on the resource name.
137203//
137204// You can also sort results in descending order based on the creation
137205// timestamp using orderBy="creationTimestamp desc". This sorts results
137206// based on the creationTimestamp field in reverse chronological order
137207// (newest result first). Use this to sort resources like operations so
137208// that the newest operation is returned first.
137209//
137210// Currently, only sorting by name or creationTimestamp desc is
137211// supported.
137212func (c *RegionTargetHttpProxiesListCall) OrderBy(orderBy string) *RegionTargetHttpProxiesListCall {
137213	c.urlParams_.Set("orderBy", orderBy)
137214	return c
137215}
137216
137217// PageToken sets the optional parameter "pageToken": Specifies a page
137218// token to use. Set pageToken to the nextPageToken returned by a
137219// previous list request to get the next page of results.
137220func (c *RegionTargetHttpProxiesListCall) PageToken(pageToken string) *RegionTargetHttpProxiesListCall {
137221	c.urlParams_.Set("pageToken", pageToken)
137222	return c
137223}
137224
137225// Fields allows partial responses to be retrieved. See
137226// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137227// for more information.
137228func (c *RegionTargetHttpProxiesListCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesListCall {
137229	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137230	return c
137231}
137232
137233// IfNoneMatch sets the optional parameter which makes the operation
137234// fail if the object's ETag matches the given value. This is useful for
137235// getting updates only after the object has changed since the last
137236// request. Use googleapi.IsNotModified to check whether the response
137237// error from Do is the result of In-None-Match.
137238func (c *RegionTargetHttpProxiesListCall) IfNoneMatch(entityTag string) *RegionTargetHttpProxiesListCall {
137239	c.ifNoneMatch_ = entityTag
137240	return c
137241}
137242
137243// Context sets the context to be used in this call's Do method. Any
137244// pending HTTP request will be aborted if the provided context is
137245// canceled.
137246func (c *RegionTargetHttpProxiesListCall) Context(ctx context.Context) *RegionTargetHttpProxiesListCall {
137247	c.ctx_ = ctx
137248	return c
137249}
137250
137251// Header returns an http.Header that can be modified by the caller to
137252// add HTTP headers to the request.
137253func (c *RegionTargetHttpProxiesListCall) Header() http.Header {
137254	if c.header_ == nil {
137255		c.header_ = make(http.Header)
137256	}
137257	return c.header_
137258}
137259
137260func (c *RegionTargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) {
137261	reqHeaders := make(http.Header)
137262	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
137263	for k, v := range c.header_ {
137264		reqHeaders[k] = v
137265	}
137266	reqHeaders.Set("User-Agent", c.s.userAgent())
137267	if c.ifNoneMatch_ != "" {
137268		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
137269	}
137270	var body io.Reader = nil
137271	c.urlParams_.Set("alt", alt)
137272	c.urlParams_.Set("prettyPrint", "false")
137273	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies")
137274	urls += "?" + c.urlParams_.Encode()
137275	req, err := http.NewRequest("GET", urls, body)
137276	if err != nil {
137277		return nil, err
137278	}
137279	req.Header = reqHeaders
137280	googleapi.Expand(req.URL, map[string]string{
137281		"project": c.project,
137282		"region":  c.region,
137283	})
137284	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137285}
137286
137287// Do executes the "compute.regionTargetHttpProxies.list" call.
137288// Exactly one of *TargetHttpProxyList or error will be non-nil. Any
137289// non-2xx status code is an error. Response headers are in either
137290// *TargetHttpProxyList.ServerResponse.Header or (if a response was
137291// returned at all) in error.(*googleapi.Error).Header. Use
137292// googleapi.IsNotModified to check whether the returned error was
137293// because http.StatusNotModified was returned.
137294func (c *RegionTargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, error) {
137295	gensupport.SetOptions(c.urlParams_, opts...)
137296	res, err := c.doRequest("json")
137297	if res != nil && res.StatusCode == http.StatusNotModified {
137298		if res.Body != nil {
137299			res.Body.Close()
137300		}
137301		return nil, &googleapi.Error{
137302			Code:   res.StatusCode,
137303			Header: res.Header,
137304		}
137305	}
137306	if err != nil {
137307		return nil, err
137308	}
137309	defer googleapi.CloseBody(res)
137310	if err := googleapi.CheckResponse(res); err != nil {
137311		return nil, err
137312	}
137313	ret := &TargetHttpProxyList{
137314		ServerResponse: googleapi.ServerResponse{
137315			Header:         res.Header,
137316			HTTPStatusCode: res.StatusCode,
137317		},
137318	}
137319	target := &ret
137320	if err := gensupport.DecodeResponse(target, res); err != nil {
137321		return nil, err
137322	}
137323	return ret, nil
137324	// {
137325	//   "description": "Retrieves the list of TargetHttpProxy resources available to the specified project in the specified region.",
137326	//   "httpMethod": "GET",
137327	//   "id": "compute.regionTargetHttpProxies.list",
137328	//   "parameterOrder": [
137329	//     "project",
137330	//     "region"
137331	//   ],
137332	//   "parameters": {
137333	//     "filter": {
137334	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
137335	//       "location": "query",
137336	//       "type": "string"
137337	//     },
137338	//     "maxResults": {
137339	//       "default": "500",
137340	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
137341	//       "format": "uint32",
137342	//       "location": "query",
137343	//       "minimum": "0",
137344	//       "type": "integer"
137345	//     },
137346	//     "orderBy": {
137347	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
137348	//       "location": "query",
137349	//       "type": "string"
137350	//     },
137351	//     "pageToken": {
137352	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
137353	//       "location": "query",
137354	//       "type": "string"
137355	//     },
137356	//     "project": {
137357	//       "description": "Project ID for this request.",
137358	//       "location": "path",
137359	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137360	//       "required": true,
137361	//       "type": "string"
137362	//     },
137363	//     "region": {
137364	//       "description": "Name of the region scoping this request.",
137365	//       "location": "path",
137366	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137367	//       "required": true,
137368	//       "type": "string"
137369	//     }
137370	//   },
137371	//   "path": "{project}/regions/{region}/targetHttpProxies",
137372	//   "response": {
137373	//     "$ref": "TargetHttpProxyList"
137374	//   },
137375	//   "scopes": [
137376	//     "https://www.googleapis.com/auth/cloud-platform",
137377	//     "https://www.googleapis.com/auth/compute",
137378	//     "https://www.googleapis.com/auth/compute.readonly"
137379	//   ]
137380	// }
137381
137382}
137383
137384// Pages invokes f for each page of results.
137385// A non-nil error returned from f will halt the iteration.
137386// The provided context supersedes any context provided to the Context method.
137387func (c *RegionTargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error {
137388	c.ctx_ = ctx
137389	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
137390	for {
137391		x, err := c.Do()
137392		if err != nil {
137393			return err
137394		}
137395		if err := f(x); err != nil {
137396			return err
137397		}
137398		if x.NextPageToken == "" {
137399			return nil
137400		}
137401		c.PageToken(x.NextPageToken)
137402	}
137403}
137404
137405// method id "compute.regionTargetHttpProxies.setUrlMap":
137406
137407type RegionTargetHttpProxiesSetUrlMapCall struct {
137408	s               *Service
137409	project         string
137410	region          string
137411	targetHttpProxy string
137412	urlmapreference *UrlMapReference
137413	urlParams_      gensupport.URLParams
137414	ctx_            context.Context
137415	header_         http.Header
137416}
137417
137418// SetUrlMap: Changes the URL map for TargetHttpProxy.
137419func (r *RegionTargetHttpProxiesService) SetUrlMap(project string, region string, targetHttpProxy string, urlmapreference *UrlMapReference) *RegionTargetHttpProxiesSetUrlMapCall {
137420	c := &RegionTargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137421	c.project = project
137422	c.region = region
137423	c.targetHttpProxy = targetHttpProxy
137424	c.urlmapreference = urlmapreference
137425	return c
137426}
137427
137428// RequestId sets the optional parameter "requestId": An optional
137429// request ID to identify requests. Specify a unique request ID so that
137430// if you must retry your request, the server will know to ignore the
137431// request if it has already been completed.
137432//
137433// For example, consider a situation where you make an initial request
137434// and the request times out. If you make the request again with the
137435// same request ID, the server can check if original operation with the
137436// same request ID was received, and if so, will ignore the second
137437// request. This prevents clients from accidentally creating duplicate
137438// commitments.
137439//
137440// The request ID must be a valid UUID with the exception that zero UUID
137441// is not supported (00000000-0000-0000-0000-000000000000).
137442func (c *RegionTargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *RegionTargetHttpProxiesSetUrlMapCall {
137443	c.urlParams_.Set("requestId", requestId)
137444	return c
137445}
137446
137447// Fields allows partial responses to be retrieved. See
137448// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137449// for more information.
137450func (c *RegionTargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesSetUrlMapCall {
137451	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137452	return c
137453}
137454
137455// Context sets the context to be used in this call's Do method. Any
137456// pending HTTP request will be aborted if the provided context is
137457// canceled.
137458func (c *RegionTargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *RegionTargetHttpProxiesSetUrlMapCall {
137459	c.ctx_ = ctx
137460	return c
137461}
137462
137463// Header returns an http.Header that can be modified by the caller to
137464// add HTTP headers to the request.
137465func (c *RegionTargetHttpProxiesSetUrlMapCall) Header() http.Header {
137466	if c.header_ == nil {
137467		c.header_ = make(http.Header)
137468	}
137469	return c.header_
137470}
137471
137472func (c *RegionTargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
137473	reqHeaders := make(http.Header)
137474	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
137475	for k, v := range c.header_ {
137476		reqHeaders[k] = v
137477	}
137478	reqHeaders.Set("User-Agent", c.s.userAgent())
137479	var body io.Reader = nil
137480	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
137481	if err != nil {
137482		return nil, err
137483	}
137484	reqHeaders.Set("Content-Type", "application/json")
137485	c.urlParams_.Set("alt", alt)
137486	c.urlParams_.Set("prettyPrint", "false")
137487	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap")
137488	urls += "?" + c.urlParams_.Encode()
137489	req, err := http.NewRequest("POST", urls, body)
137490	if err != nil {
137491		return nil, err
137492	}
137493	req.Header = reqHeaders
137494	googleapi.Expand(req.URL, map[string]string{
137495		"project":         c.project,
137496		"region":          c.region,
137497		"targetHttpProxy": c.targetHttpProxy,
137498	})
137499	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137500}
137501
137502// Do executes the "compute.regionTargetHttpProxies.setUrlMap" call.
137503// Exactly one of *Operation or error will be non-nil. Any non-2xx
137504// status code is an error. Response headers are in either
137505// *Operation.ServerResponse.Header or (if a response was returned at
137506// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
137507// to check whether the returned error was because
137508// http.StatusNotModified was returned.
137509func (c *RegionTargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
137510	gensupport.SetOptions(c.urlParams_, opts...)
137511	res, err := c.doRequest("json")
137512	if res != nil && res.StatusCode == http.StatusNotModified {
137513		if res.Body != nil {
137514			res.Body.Close()
137515		}
137516		return nil, &googleapi.Error{
137517			Code:   res.StatusCode,
137518			Header: res.Header,
137519		}
137520	}
137521	if err != nil {
137522		return nil, err
137523	}
137524	defer googleapi.CloseBody(res)
137525	if err := googleapi.CheckResponse(res); err != nil {
137526		return nil, err
137527	}
137528	ret := &Operation{
137529		ServerResponse: googleapi.ServerResponse{
137530			Header:         res.Header,
137531			HTTPStatusCode: res.StatusCode,
137532		},
137533	}
137534	target := &ret
137535	if err := gensupport.DecodeResponse(target, res); err != nil {
137536		return nil, err
137537	}
137538	return ret, nil
137539	// {
137540	//   "description": "Changes the URL map for TargetHttpProxy.",
137541	//   "httpMethod": "POST",
137542	//   "id": "compute.regionTargetHttpProxies.setUrlMap",
137543	//   "parameterOrder": [
137544	//     "project",
137545	//     "region",
137546	//     "targetHttpProxy"
137547	//   ],
137548	//   "parameters": {
137549	//     "project": {
137550	//       "description": "Project ID for this request.",
137551	//       "location": "path",
137552	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137553	//       "required": true,
137554	//       "type": "string"
137555	//     },
137556	//     "region": {
137557	//       "description": "Name of the region scoping this request.",
137558	//       "location": "path",
137559	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137560	//       "required": true,
137561	//       "type": "string"
137562	//     },
137563	//     "requestId": {
137564	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
137565	//       "location": "query",
137566	//       "type": "string"
137567	//     },
137568	//     "targetHttpProxy": {
137569	//       "description": "Name of the TargetHttpProxy to set a URL map for.",
137570	//       "location": "path",
137571	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
137572	//       "required": true,
137573	//       "type": "string"
137574	//     }
137575	//   },
137576	//   "path": "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
137577	//   "request": {
137578	//     "$ref": "UrlMapReference"
137579	//   },
137580	//   "response": {
137581	//     "$ref": "Operation"
137582	//   },
137583	//   "scopes": [
137584	//     "https://www.googleapis.com/auth/cloud-platform",
137585	//     "https://www.googleapis.com/auth/compute"
137586	//   ]
137587	// }
137588
137589}
137590
137591// method id "compute.regionTargetHttpProxies.testIamPermissions":
137592
137593type RegionTargetHttpProxiesTestIamPermissionsCall struct {
137594	s                      *Service
137595	project                string
137596	region                 string
137597	resource               string
137598	testpermissionsrequest *TestPermissionsRequest
137599	urlParams_             gensupport.URLParams
137600	ctx_                   context.Context
137601	header_                http.Header
137602}
137603
137604// TestIamPermissions: Returns permissions that a caller has on the
137605// specified resource.
137606func (r *RegionTargetHttpProxiesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionTargetHttpProxiesTestIamPermissionsCall {
137607	c := &RegionTargetHttpProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137608	c.project = project
137609	c.region = region
137610	c.resource = resource
137611	c.testpermissionsrequest = testpermissionsrequest
137612	return c
137613}
137614
137615// Fields allows partial responses to be retrieved. See
137616// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137617// for more information.
137618func (c *RegionTargetHttpProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesTestIamPermissionsCall {
137619	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137620	return c
137621}
137622
137623// Context sets the context to be used in this call's Do method. Any
137624// pending HTTP request will be aborted if the provided context is
137625// canceled.
137626func (c *RegionTargetHttpProxiesTestIamPermissionsCall) Context(ctx context.Context) *RegionTargetHttpProxiesTestIamPermissionsCall {
137627	c.ctx_ = ctx
137628	return c
137629}
137630
137631// Header returns an http.Header that can be modified by the caller to
137632// add HTTP headers to the request.
137633func (c *RegionTargetHttpProxiesTestIamPermissionsCall) Header() http.Header {
137634	if c.header_ == nil {
137635		c.header_ = make(http.Header)
137636	}
137637	return c.header_
137638}
137639
137640func (c *RegionTargetHttpProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
137641	reqHeaders := make(http.Header)
137642	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
137643	for k, v := range c.header_ {
137644		reqHeaders[k] = v
137645	}
137646	reqHeaders.Set("User-Agent", c.s.userAgent())
137647	var body io.Reader = nil
137648	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
137649	if err != nil {
137650		return nil, err
137651	}
137652	reqHeaders.Set("Content-Type", "application/json")
137653	c.urlParams_.Set("alt", alt)
137654	c.urlParams_.Set("prettyPrint", "false")
137655	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies/{resource}/testIamPermissions")
137656	urls += "?" + c.urlParams_.Encode()
137657	req, err := http.NewRequest("POST", urls, body)
137658	if err != nil {
137659		return nil, err
137660	}
137661	req.Header = reqHeaders
137662	googleapi.Expand(req.URL, map[string]string{
137663		"project":  c.project,
137664		"region":   c.region,
137665		"resource": c.resource,
137666	})
137667	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137668}
137669
137670// Do executes the "compute.regionTargetHttpProxies.testIamPermissions" call.
137671// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
137672// non-2xx status code is an error. Response headers are in either
137673// *TestPermissionsResponse.ServerResponse.Header or (if a response was
137674// returned at all) in error.(*googleapi.Error).Header. Use
137675// googleapi.IsNotModified to check whether the returned error was
137676// because http.StatusNotModified was returned.
137677func (c *RegionTargetHttpProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
137678	gensupport.SetOptions(c.urlParams_, opts...)
137679	res, err := c.doRequest("json")
137680	if res != nil && res.StatusCode == http.StatusNotModified {
137681		if res.Body != nil {
137682			res.Body.Close()
137683		}
137684		return nil, &googleapi.Error{
137685			Code:   res.StatusCode,
137686			Header: res.Header,
137687		}
137688	}
137689	if err != nil {
137690		return nil, err
137691	}
137692	defer googleapi.CloseBody(res)
137693	if err := googleapi.CheckResponse(res); err != nil {
137694		return nil, err
137695	}
137696	ret := &TestPermissionsResponse{
137697		ServerResponse: googleapi.ServerResponse{
137698			Header:         res.Header,
137699			HTTPStatusCode: res.StatusCode,
137700		},
137701	}
137702	target := &ret
137703	if err := gensupport.DecodeResponse(target, res); err != nil {
137704		return nil, err
137705	}
137706	return ret, nil
137707	// {
137708	//   "description": "Returns permissions that a caller has on the specified resource.",
137709	//   "httpMethod": "POST",
137710	//   "id": "compute.regionTargetHttpProxies.testIamPermissions",
137711	//   "parameterOrder": [
137712	//     "project",
137713	//     "region",
137714	//     "resource"
137715	//   ],
137716	//   "parameters": {
137717	//     "project": {
137718	//       "description": "Project ID for this request.",
137719	//       "location": "path",
137720	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137721	//       "required": true,
137722	//       "type": "string"
137723	//     },
137724	//     "region": {
137725	//       "description": "The name of the region for this request.",
137726	//       "location": "path",
137727	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137728	//       "required": true,
137729	//       "type": "string"
137730	//     },
137731	//     "resource": {
137732	//       "description": "Name or id of the resource for this request.",
137733	//       "location": "path",
137734	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
137735	//       "required": true,
137736	//       "type": "string"
137737	//     }
137738	//   },
137739	//   "path": "{project}/regions/{region}/targetHttpProxies/{resource}/testIamPermissions",
137740	//   "request": {
137741	//     "$ref": "TestPermissionsRequest"
137742	//   },
137743	//   "response": {
137744	//     "$ref": "TestPermissionsResponse"
137745	//   },
137746	//   "scopes": [
137747	//     "https://www.googleapis.com/auth/cloud-platform",
137748	//     "https://www.googleapis.com/auth/compute",
137749	//     "https://www.googleapis.com/auth/compute.readonly"
137750	//   ]
137751	// }
137752
137753}
137754
137755// method id "compute.regionTargetHttpsProxies.delete":
137756
137757type RegionTargetHttpsProxiesDeleteCall struct {
137758	s                *Service
137759	project          string
137760	region           string
137761	targetHttpsProxy string
137762	urlParams_       gensupport.URLParams
137763	ctx_             context.Context
137764	header_          http.Header
137765}
137766
137767// Delete: Deletes the specified TargetHttpsProxy resource.
137768func (r *RegionTargetHttpsProxiesService) Delete(project string, region string, targetHttpsProxy string) *RegionTargetHttpsProxiesDeleteCall {
137769	c := &RegionTargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137770	c.project = project
137771	c.region = region
137772	c.targetHttpsProxy = targetHttpsProxy
137773	return c
137774}
137775
137776// RequestId sets the optional parameter "requestId": An optional
137777// request ID to identify requests. Specify a unique request ID so that
137778// if you must retry your request, the server will know to ignore the
137779// request if it has already been completed.
137780//
137781// For example, consider a situation where you make an initial request
137782// and the request times out. If you make the request again with the
137783// same request ID, the server can check if original operation with the
137784// same request ID was received, and if so, will ignore the second
137785// request. This prevents clients from accidentally creating duplicate
137786// commitments.
137787//
137788// The request ID must be a valid UUID with the exception that zero UUID
137789// is not supported (00000000-0000-0000-0000-000000000000).
137790func (c *RegionTargetHttpsProxiesDeleteCall) RequestId(requestId string) *RegionTargetHttpsProxiesDeleteCall {
137791	c.urlParams_.Set("requestId", requestId)
137792	return c
137793}
137794
137795// Fields allows partial responses to be retrieved. See
137796// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137797// for more information.
137798func (c *RegionTargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesDeleteCall {
137799	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137800	return c
137801}
137802
137803// Context sets the context to be used in this call's Do method. Any
137804// pending HTTP request will be aborted if the provided context is
137805// canceled.
137806func (c *RegionTargetHttpsProxiesDeleteCall) Context(ctx context.Context) *RegionTargetHttpsProxiesDeleteCall {
137807	c.ctx_ = ctx
137808	return c
137809}
137810
137811// Header returns an http.Header that can be modified by the caller to
137812// add HTTP headers to the request.
137813func (c *RegionTargetHttpsProxiesDeleteCall) Header() http.Header {
137814	if c.header_ == nil {
137815		c.header_ = make(http.Header)
137816	}
137817	return c.header_
137818}
137819
137820func (c *RegionTargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
137821	reqHeaders := make(http.Header)
137822	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
137823	for k, v := range c.header_ {
137824		reqHeaders[k] = v
137825	}
137826	reqHeaders.Set("User-Agent", c.s.userAgent())
137827	var body io.Reader = nil
137828	c.urlParams_.Set("alt", alt)
137829	c.urlParams_.Set("prettyPrint", "false")
137830	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}")
137831	urls += "?" + c.urlParams_.Encode()
137832	req, err := http.NewRequest("DELETE", urls, body)
137833	if err != nil {
137834		return nil, err
137835	}
137836	req.Header = reqHeaders
137837	googleapi.Expand(req.URL, map[string]string{
137838		"project":          c.project,
137839		"region":           c.region,
137840		"targetHttpsProxy": c.targetHttpsProxy,
137841	})
137842	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137843}
137844
137845// Do executes the "compute.regionTargetHttpsProxies.delete" call.
137846// Exactly one of *Operation or error will be non-nil. Any non-2xx
137847// status code is an error. Response headers are in either
137848// *Operation.ServerResponse.Header or (if a response was returned at
137849// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
137850// to check whether the returned error was because
137851// http.StatusNotModified was returned.
137852func (c *RegionTargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
137853	gensupport.SetOptions(c.urlParams_, opts...)
137854	res, err := c.doRequest("json")
137855	if res != nil && res.StatusCode == http.StatusNotModified {
137856		if res.Body != nil {
137857			res.Body.Close()
137858		}
137859		return nil, &googleapi.Error{
137860			Code:   res.StatusCode,
137861			Header: res.Header,
137862		}
137863	}
137864	if err != nil {
137865		return nil, err
137866	}
137867	defer googleapi.CloseBody(res)
137868	if err := googleapi.CheckResponse(res); err != nil {
137869		return nil, err
137870	}
137871	ret := &Operation{
137872		ServerResponse: googleapi.ServerResponse{
137873			Header:         res.Header,
137874			HTTPStatusCode: res.StatusCode,
137875		},
137876	}
137877	target := &ret
137878	if err := gensupport.DecodeResponse(target, res); err != nil {
137879		return nil, err
137880	}
137881	return ret, nil
137882	// {
137883	//   "description": "Deletes the specified TargetHttpsProxy resource.",
137884	//   "httpMethod": "DELETE",
137885	//   "id": "compute.regionTargetHttpsProxies.delete",
137886	//   "parameterOrder": [
137887	//     "project",
137888	//     "region",
137889	//     "targetHttpsProxy"
137890	//   ],
137891	//   "parameters": {
137892	//     "project": {
137893	//       "description": "Project ID for this request.",
137894	//       "location": "path",
137895	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137896	//       "required": true,
137897	//       "type": "string"
137898	//     },
137899	//     "region": {
137900	//       "description": "Name of the region scoping this request.",
137901	//       "location": "path",
137902	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137903	//       "required": true,
137904	//       "type": "string"
137905	//     },
137906	//     "requestId": {
137907	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
137908	//       "location": "query",
137909	//       "type": "string"
137910	//     },
137911	//     "targetHttpsProxy": {
137912	//       "description": "Name of the TargetHttpsProxy resource to delete.",
137913	//       "location": "path",
137914	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
137915	//       "required": true,
137916	//       "type": "string"
137917	//     }
137918	//   },
137919	//   "path": "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
137920	//   "response": {
137921	//     "$ref": "Operation"
137922	//   },
137923	//   "scopes": [
137924	//     "https://www.googleapis.com/auth/cloud-platform",
137925	//     "https://www.googleapis.com/auth/compute"
137926	//   ]
137927	// }
137928
137929}
137930
137931// method id "compute.regionTargetHttpsProxies.get":
137932
137933type RegionTargetHttpsProxiesGetCall struct {
137934	s                *Service
137935	project          string
137936	region           string
137937	targetHttpsProxy string
137938	urlParams_       gensupport.URLParams
137939	ifNoneMatch_     string
137940	ctx_             context.Context
137941	header_          http.Header
137942}
137943
137944// Get: Returns the specified TargetHttpsProxy resource in the specified
137945// region. Gets a list of available target HTTP proxies by making a
137946// list() request.
137947func (r *RegionTargetHttpsProxiesService) Get(project string, region string, targetHttpsProxy string) *RegionTargetHttpsProxiesGetCall {
137948	c := &RegionTargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137949	c.project = project
137950	c.region = region
137951	c.targetHttpsProxy = targetHttpsProxy
137952	return c
137953}
137954
137955// Fields allows partial responses to be retrieved. See
137956// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137957// for more information.
137958func (c *RegionTargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesGetCall {
137959	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137960	return c
137961}
137962
137963// IfNoneMatch sets the optional parameter which makes the operation
137964// fail if the object's ETag matches the given value. This is useful for
137965// getting updates only after the object has changed since the last
137966// request. Use googleapi.IsNotModified to check whether the response
137967// error from Do is the result of In-None-Match.
137968func (c *RegionTargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *RegionTargetHttpsProxiesGetCall {
137969	c.ifNoneMatch_ = entityTag
137970	return c
137971}
137972
137973// Context sets the context to be used in this call's Do method. Any
137974// pending HTTP request will be aborted if the provided context is
137975// canceled.
137976func (c *RegionTargetHttpsProxiesGetCall) Context(ctx context.Context) *RegionTargetHttpsProxiesGetCall {
137977	c.ctx_ = ctx
137978	return c
137979}
137980
137981// Header returns an http.Header that can be modified by the caller to
137982// add HTTP headers to the request.
137983func (c *RegionTargetHttpsProxiesGetCall) Header() http.Header {
137984	if c.header_ == nil {
137985		c.header_ = make(http.Header)
137986	}
137987	return c.header_
137988}
137989
137990func (c *RegionTargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) {
137991	reqHeaders := make(http.Header)
137992	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
137993	for k, v := range c.header_ {
137994		reqHeaders[k] = v
137995	}
137996	reqHeaders.Set("User-Agent", c.s.userAgent())
137997	if c.ifNoneMatch_ != "" {
137998		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
137999	}
138000	var body io.Reader = nil
138001	c.urlParams_.Set("alt", alt)
138002	c.urlParams_.Set("prettyPrint", "false")
138003	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}")
138004	urls += "?" + c.urlParams_.Encode()
138005	req, err := http.NewRequest("GET", urls, body)
138006	if err != nil {
138007		return nil, err
138008	}
138009	req.Header = reqHeaders
138010	googleapi.Expand(req.URL, map[string]string{
138011		"project":          c.project,
138012		"region":           c.region,
138013		"targetHttpsProxy": c.targetHttpsProxy,
138014	})
138015	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138016}
138017
138018// Do executes the "compute.regionTargetHttpsProxies.get" call.
138019// Exactly one of *TargetHttpsProxy or error will be non-nil. Any
138020// non-2xx status code is an error. Response headers are in either
138021// *TargetHttpsProxy.ServerResponse.Header or (if a response was
138022// returned at all) in error.(*googleapi.Error).Header. Use
138023// googleapi.IsNotModified to check whether the returned error was
138024// because http.StatusNotModified was returned.
138025func (c *RegionTargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) {
138026	gensupport.SetOptions(c.urlParams_, opts...)
138027	res, err := c.doRequest("json")
138028	if res != nil && res.StatusCode == http.StatusNotModified {
138029		if res.Body != nil {
138030			res.Body.Close()
138031		}
138032		return nil, &googleapi.Error{
138033			Code:   res.StatusCode,
138034			Header: res.Header,
138035		}
138036	}
138037	if err != nil {
138038		return nil, err
138039	}
138040	defer googleapi.CloseBody(res)
138041	if err := googleapi.CheckResponse(res); err != nil {
138042		return nil, err
138043	}
138044	ret := &TargetHttpsProxy{
138045		ServerResponse: googleapi.ServerResponse{
138046			Header:         res.Header,
138047			HTTPStatusCode: res.StatusCode,
138048		},
138049	}
138050	target := &ret
138051	if err := gensupport.DecodeResponse(target, res); err != nil {
138052		return nil, err
138053	}
138054	return ret, nil
138055	// {
138056	//   "description": "Returns the specified TargetHttpsProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.",
138057	//   "httpMethod": "GET",
138058	//   "id": "compute.regionTargetHttpsProxies.get",
138059	//   "parameterOrder": [
138060	//     "project",
138061	//     "region",
138062	//     "targetHttpsProxy"
138063	//   ],
138064	//   "parameters": {
138065	//     "project": {
138066	//       "description": "Project ID for this request.",
138067	//       "location": "path",
138068	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138069	//       "required": true,
138070	//       "type": "string"
138071	//     },
138072	//     "region": {
138073	//       "description": "Name of the region scoping this request.",
138074	//       "location": "path",
138075	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
138076	//       "required": true,
138077	//       "type": "string"
138078	//     },
138079	//     "targetHttpsProxy": {
138080	//       "description": "Name of the TargetHttpsProxy resource to return.",
138081	//       "location": "path",
138082	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138083	//       "required": true,
138084	//       "type": "string"
138085	//     }
138086	//   },
138087	//   "path": "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
138088	//   "response": {
138089	//     "$ref": "TargetHttpsProxy"
138090	//   },
138091	//   "scopes": [
138092	//     "https://www.googleapis.com/auth/cloud-platform",
138093	//     "https://www.googleapis.com/auth/compute",
138094	//     "https://www.googleapis.com/auth/compute.readonly"
138095	//   ]
138096	// }
138097
138098}
138099
138100// method id "compute.regionTargetHttpsProxies.insert":
138101
138102type RegionTargetHttpsProxiesInsertCall struct {
138103	s                *Service
138104	project          string
138105	region           string
138106	targethttpsproxy *TargetHttpsProxy
138107	urlParams_       gensupport.URLParams
138108	ctx_             context.Context
138109	header_          http.Header
138110}
138111
138112// Insert: Creates a TargetHttpsProxy resource in the specified project
138113// and region using the data included in the request.
138114func (r *RegionTargetHttpsProxiesService) Insert(project string, region string, targethttpsproxy *TargetHttpsProxy) *RegionTargetHttpsProxiesInsertCall {
138115	c := &RegionTargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138116	c.project = project
138117	c.region = region
138118	c.targethttpsproxy = targethttpsproxy
138119	return c
138120}
138121
138122// RequestId sets the optional parameter "requestId": An optional
138123// request ID to identify requests. Specify a unique request ID so that
138124// if you must retry your request, the server will know to ignore the
138125// request if it has already been completed.
138126//
138127// For example, consider a situation where you make an initial request
138128// and the request times out. If you make the request again with the
138129// same request ID, the server can check if original operation with the
138130// same request ID was received, and if so, will ignore the second
138131// request. This prevents clients from accidentally creating duplicate
138132// commitments.
138133//
138134// The request ID must be a valid UUID with the exception that zero UUID
138135// is not supported (00000000-0000-0000-0000-000000000000).
138136func (c *RegionTargetHttpsProxiesInsertCall) RequestId(requestId string) *RegionTargetHttpsProxiesInsertCall {
138137	c.urlParams_.Set("requestId", requestId)
138138	return c
138139}
138140
138141// Fields allows partial responses to be retrieved. See
138142// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138143// for more information.
138144func (c *RegionTargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesInsertCall {
138145	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138146	return c
138147}
138148
138149// Context sets the context to be used in this call's Do method. Any
138150// pending HTTP request will be aborted if the provided context is
138151// canceled.
138152func (c *RegionTargetHttpsProxiesInsertCall) Context(ctx context.Context) *RegionTargetHttpsProxiesInsertCall {
138153	c.ctx_ = ctx
138154	return c
138155}
138156
138157// Header returns an http.Header that can be modified by the caller to
138158// add HTTP headers to the request.
138159func (c *RegionTargetHttpsProxiesInsertCall) Header() http.Header {
138160	if c.header_ == nil {
138161		c.header_ = make(http.Header)
138162	}
138163	return c.header_
138164}
138165
138166func (c *RegionTargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
138167	reqHeaders := make(http.Header)
138168	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
138169	for k, v := range c.header_ {
138170		reqHeaders[k] = v
138171	}
138172	reqHeaders.Set("User-Agent", c.s.userAgent())
138173	var body io.Reader = nil
138174	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
138175	if err != nil {
138176		return nil, err
138177	}
138178	reqHeaders.Set("Content-Type", "application/json")
138179	c.urlParams_.Set("alt", alt)
138180	c.urlParams_.Set("prettyPrint", "false")
138181	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies")
138182	urls += "?" + c.urlParams_.Encode()
138183	req, err := http.NewRequest("POST", urls, body)
138184	if err != nil {
138185		return nil, err
138186	}
138187	req.Header = reqHeaders
138188	googleapi.Expand(req.URL, map[string]string{
138189		"project": c.project,
138190		"region":  c.region,
138191	})
138192	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138193}
138194
138195// Do executes the "compute.regionTargetHttpsProxies.insert" call.
138196// Exactly one of *Operation or error will be non-nil. Any non-2xx
138197// status code is an error. Response headers are in either
138198// *Operation.ServerResponse.Header or (if a response was returned at
138199// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138200// to check whether the returned error was because
138201// http.StatusNotModified was returned.
138202func (c *RegionTargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138203	gensupport.SetOptions(c.urlParams_, opts...)
138204	res, err := c.doRequest("json")
138205	if res != nil && res.StatusCode == http.StatusNotModified {
138206		if res.Body != nil {
138207			res.Body.Close()
138208		}
138209		return nil, &googleapi.Error{
138210			Code:   res.StatusCode,
138211			Header: res.Header,
138212		}
138213	}
138214	if err != nil {
138215		return nil, err
138216	}
138217	defer googleapi.CloseBody(res)
138218	if err := googleapi.CheckResponse(res); err != nil {
138219		return nil, err
138220	}
138221	ret := &Operation{
138222		ServerResponse: googleapi.ServerResponse{
138223			Header:         res.Header,
138224			HTTPStatusCode: res.StatusCode,
138225		},
138226	}
138227	target := &ret
138228	if err := gensupport.DecodeResponse(target, res); err != nil {
138229		return nil, err
138230	}
138231	return ret, nil
138232	// {
138233	//   "description": "Creates a TargetHttpsProxy resource in the specified project and region using the data included in the request.",
138234	//   "httpMethod": "POST",
138235	//   "id": "compute.regionTargetHttpsProxies.insert",
138236	//   "parameterOrder": [
138237	//     "project",
138238	//     "region"
138239	//   ],
138240	//   "parameters": {
138241	//     "project": {
138242	//       "description": "Project ID for this request.",
138243	//       "location": "path",
138244	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138245	//       "required": true,
138246	//       "type": "string"
138247	//     },
138248	//     "region": {
138249	//       "description": "Name of the region scoping this request.",
138250	//       "location": "path",
138251	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
138252	//       "required": true,
138253	//       "type": "string"
138254	//     },
138255	//     "requestId": {
138256	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
138257	//       "location": "query",
138258	//       "type": "string"
138259	//     }
138260	//   },
138261	//   "path": "{project}/regions/{region}/targetHttpsProxies",
138262	//   "request": {
138263	//     "$ref": "TargetHttpsProxy"
138264	//   },
138265	//   "response": {
138266	//     "$ref": "Operation"
138267	//   },
138268	//   "scopes": [
138269	//     "https://www.googleapis.com/auth/cloud-platform",
138270	//     "https://www.googleapis.com/auth/compute"
138271	//   ]
138272	// }
138273
138274}
138275
138276// method id "compute.regionTargetHttpsProxies.list":
138277
138278type RegionTargetHttpsProxiesListCall struct {
138279	s            *Service
138280	project      string
138281	region       string
138282	urlParams_   gensupport.URLParams
138283	ifNoneMatch_ string
138284	ctx_         context.Context
138285	header_      http.Header
138286}
138287
138288// List: Retrieves the list of TargetHttpsProxy resources available to
138289// the specified project in the specified region.
138290func (r *RegionTargetHttpsProxiesService) List(project string, region string) *RegionTargetHttpsProxiesListCall {
138291	c := &RegionTargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138292	c.project = project
138293	c.region = region
138294	return c
138295}
138296
138297// Filter sets the optional parameter "filter": A filter expression that
138298// filters resources listed in the response. The expression must specify
138299// the field name, a comparison operator, and the value that you want to
138300// use for filtering. The value must be a string, a number, or a
138301// boolean. The comparison operator must be either =, !=, >, or <.
138302//
138303// For example, if you are filtering Compute Engine instances, you can
138304// exclude instances named example-instance by specifying name !=
138305// example-instance.
138306//
138307// You can also filter nested fields. For example, you could specify
138308// scheduling.automaticRestart = false to include instances only if they
138309// are not scheduled for automatic restarts. You can use filtering on
138310// nested fields to filter based on resource labels.
138311//
138312// To filter on multiple expressions, provide each separate expression
138313// within parentheses. For example, (scheduling.automaticRestart = true)
138314// (cpuPlatform = "Intel Skylake"). By default, each expression is an
138315// AND expression. However, you can include AND and OR expressions
138316// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
138317// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
138318// true).
138319func (c *RegionTargetHttpsProxiesListCall) Filter(filter string) *RegionTargetHttpsProxiesListCall {
138320	c.urlParams_.Set("filter", filter)
138321	return c
138322}
138323
138324// MaxResults sets the optional parameter "maxResults": The maximum
138325// number of results per page that should be returned. If the number of
138326// available results is larger than maxResults, Compute Engine returns a
138327// nextPageToken that can be used to get the next page of results in
138328// subsequent list requests. Acceptable values are 0 to 500, inclusive.
138329// (Default: 500)
138330func (c *RegionTargetHttpsProxiesListCall) MaxResults(maxResults int64) *RegionTargetHttpsProxiesListCall {
138331	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
138332	return c
138333}
138334
138335// OrderBy sets the optional parameter "orderBy": Sorts list results by
138336// a certain order. By default, results are returned in alphanumerical
138337// order based on the resource name.
138338//
138339// You can also sort results in descending order based on the creation
138340// timestamp using orderBy="creationTimestamp desc". This sorts results
138341// based on the creationTimestamp field in reverse chronological order
138342// (newest result first). Use this to sort resources like operations so
138343// that the newest operation is returned first.
138344//
138345// Currently, only sorting by name or creationTimestamp desc is
138346// supported.
138347func (c *RegionTargetHttpsProxiesListCall) OrderBy(orderBy string) *RegionTargetHttpsProxiesListCall {
138348	c.urlParams_.Set("orderBy", orderBy)
138349	return c
138350}
138351
138352// PageToken sets the optional parameter "pageToken": Specifies a page
138353// token to use. Set pageToken to the nextPageToken returned by a
138354// previous list request to get the next page of results.
138355func (c *RegionTargetHttpsProxiesListCall) PageToken(pageToken string) *RegionTargetHttpsProxiesListCall {
138356	c.urlParams_.Set("pageToken", pageToken)
138357	return c
138358}
138359
138360// Fields allows partial responses to be retrieved. See
138361// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138362// for more information.
138363func (c *RegionTargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesListCall {
138364	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138365	return c
138366}
138367
138368// IfNoneMatch sets the optional parameter which makes the operation
138369// fail if the object's ETag matches the given value. This is useful for
138370// getting updates only after the object has changed since the last
138371// request. Use googleapi.IsNotModified to check whether the response
138372// error from Do is the result of In-None-Match.
138373func (c *RegionTargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *RegionTargetHttpsProxiesListCall {
138374	c.ifNoneMatch_ = entityTag
138375	return c
138376}
138377
138378// Context sets the context to be used in this call's Do method. Any
138379// pending HTTP request will be aborted if the provided context is
138380// canceled.
138381func (c *RegionTargetHttpsProxiesListCall) Context(ctx context.Context) *RegionTargetHttpsProxiesListCall {
138382	c.ctx_ = ctx
138383	return c
138384}
138385
138386// Header returns an http.Header that can be modified by the caller to
138387// add HTTP headers to the request.
138388func (c *RegionTargetHttpsProxiesListCall) Header() http.Header {
138389	if c.header_ == nil {
138390		c.header_ = make(http.Header)
138391	}
138392	return c.header_
138393}
138394
138395func (c *RegionTargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) {
138396	reqHeaders := make(http.Header)
138397	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
138398	for k, v := range c.header_ {
138399		reqHeaders[k] = v
138400	}
138401	reqHeaders.Set("User-Agent", c.s.userAgent())
138402	if c.ifNoneMatch_ != "" {
138403		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
138404	}
138405	var body io.Reader = nil
138406	c.urlParams_.Set("alt", alt)
138407	c.urlParams_.Set("prettyPrint", "false")
138408	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies")
138409	urls += "?" + c.urlParams_.Encode()
138410	req, err := http.NewRequest("GET", urls, body)
138411	if err != nil {
138412		return nil, err
138413	}
138414	req.Header = reqHeaders
138415	googleapi.Expand(req.URL, map[string]string{
138416		"project": c.project,
138417		"region":  c.region,
138418	})
138419	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138420}
138421
138422// Do executes the "compute.regionTargetHttpsProxies.list" call.
138423// Exactly one of *TargetHttpsProxyList or error will be non-nil. Any
138424// non-2xx status code is an error. Response headers are in either
138425// *TargetHttpsProxyList.ServerResponse.Header or (if a response was
138426// returned at all) in error.(*googleapi.Error).Header. Use
138427// googleapi.IsNotModified to check whether the returned error was
138428// because http.StatusNotModified was returned.
138429func (c *RegionTargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) {
138430	gensupport.SetOptions(c.urlParams_, opts...)
138431	res, err := c.doRequest("json")
138432	if res != nil && res.StatusCode == http.StatusNotModified {
138433		if res.Body != nil {
138434			res.Body.Close()
138435		}
138436		return nil, &googleapi.Error{
138437			Code:   res.StatusCode,
138438			Header: res.Header,
138439		}
138440	}
138441	if err != nil {
138442		return nil, err
138443	}
138444	defer googleapi.CloseBody(res)
138445	if err := googleapi.CheckResponse(res); err != nil {
138446		return nil, err
138447	}
138448	ret := &TargetHttpsProxyList{
138449		ServerResponse: googleapi.ServerResponse{
138450			Header:         res.Header,
138451			HTTPStatusCode: res.StatusCode,
138452		},
138453	}
138454	target := &ret
138455	if err := gensupport.DecodeResponse(target, res); err != nil {
138456		return nil, err
138457	}
138458	return ret, nil
138459	// {
138460	//   "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project in the specified region.",
138461	//   "httpMethod": "GET",
138462	//   "id": "compute.regionTargetHttpsProxies.list",
138463	//   "parameterOrder": [
138464	//     "project",
138465	//     "region"
138466	//   ],
138467	//   "parameters": {
138468	//     "filter": {
138469	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
138470	//       "location": "query",
138471	//       "type": "string"
138472	//     },
138473	//     "maxResults": {
138474	//       "default": "500",
138475	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
138476	//       "format": "uint32",
138477	//       "location": "query",
138478	//       "minimum": "0",
138479	//       "type": "integer"
138480	//     },
138481	//     "orderBy": {
138482	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
138483	//       "location": "query",
138484	//       "type": "string"
138485	//     },
138486	//     "pageToken": {
138487	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
138488	//       "location": "query",
138489	//       "type": "string"
138490	//     },
138491	//     "project": {
138492	//       "description": "Project ID for this request.",
138493	//       "location": "path",
138494	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138495	//       "required": true,
138496	//       "type": "string"
138497	//     },
138498	//     "region": {
138499	//       "description": "Name of the region scoping this request.",
138500	//       "location": "path",
138501	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
138502	//       "required": true,
138503	//       "type": "string"
138504	//     }
138505	//   },
138506	//   "path": "{project}/regions/{region}/targetHttpsProxies",
138507	//   "response": {
138508	//     "$ref": "TargetHttpsProxyList"
138509	//   },
138510	//   "scopes": [
138511	//     "https://www.googleapis.com/auth/cloud-platform",
138512	//     "https://www.googleapis.com/auth/compute",
138513	//     "https://www.googleapis.com/auth/compute.readonly"
138514	//   ]
138515	// }
138516
138517}
138518
138519// Pages invokes f for each page of results.
138520// A non-nil error returned from f will halt the iteration.
138521// The provided context supersedes any context provided to the Context method.
138522func (c *RegionTargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error {
138523	c.ctx_ = ctx
138524	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
138525	for {
138526		x, err := c.Do()
138527		if err != nil {
138528			return err
138529		}
138530		if err := f(x); err != nil {
138531			return err
138532		}
138533		if x.NextPageToken == "" {
138534			return nil
138535		}
138536		c.PageToken(x.NextPageToken)
138537	}
138538}
138539
138540// method id "compute.regionTargetHttpsProxies.setSslCertificates":
138541
138542type RegionTargetHttpsProxiesSetSslCertificatesCall struct {
138543	s                                                 *Service
138544	project                                           string
138545	region                                            string
138546	targetHttpsProxy                                  string
138547	regiontargethttpsproxiessetsslcertificatesrequest *RegionTargetHttpsProxiesSetSslCertificatesRequest
138548	urlParams_                                        gensupport.URLParams
138549	ctx_                                              context.Context
138550	header_                                           http.Header
138551}
138552
138553// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy.
138554func (r *RegionTargetHttpsProxiesService) SetSslCertificates(project string, region string, targetHttpsProxy string, regiontargethttpsproxiessetsslcertificatesrequest *RegionTargetHttpsProxiesSetSslCertificatesRequest) *RegionTargetHttpsProxiesSetSslCertificatesCall {
138555	c := &RegionTargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138556	c.project = project
138557	c.region = region
138558	c.targetHttpsProxy = targetHttpsProxy
138559	c.regiontargethttpsproxiessetsslcertificatesrequest = regiontargethttpsproxiessetsslcertificatesrequest
138560	return c
138561}
138562
138563// RequestId sets the optional parameter "requestId": An optional
138564// request ID to identify requests. Specify a unique request ID so that
138565// if you must retry your request, the server will know to ignore the
138566// request if it has already been completed.
138567//
138568// For example, consider a situation where you make an initial request
138569// and the request times out. If you make the request again with the
138570// same request ID, the server can check if original operation with the
138571// same request ID was received, and if so, will ignore the second
138572// request. This prevents clients from accidentally creating duplicate
138573// commitments.
138574//
138575// The request ID must be a valid UUID with the exception that zero UUID
138576// is not supported (00000000-0000-0000-0000-000000000000).
138577func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *RegionTargetHttpsProxiesSetSslCertificatesCall {
138578	c.urlParams_.Set("requestId", requestId)
138579	return c
138580}
138581
138582// Fields allows partial responses to be retrieved. See
138583// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138584// for more information.
138585func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesSetSslCertificatesCall {
138586	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138587	return c
138588}
138589
138590// Context sets the context to be used in this call's Do method. Any
138591// pending HTTP request will be aborted if the provided context is
138592// canceled.
138593func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *RegionTargetHttpsProxiesSetSslCertificatesCall {
138594	c.ctx_ = ctx
138595	return c
138596}
138597
138598// Header returns an http.Header that can be modified by the caller to
138599// add HTTP headers to the request.
138600func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Header() http.Header {
138601	if c.header_ == nil {
138602		c.header_ = make(http.Header)
138603	}
138604	return c.header_
138605}
138606
138607func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
138608	reqHeaders := make(http.Header)
138609	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
138610	for k, v := range c.header_ {
138611		reqHeaders[k] = v
138612	}
138613	reqHeaders.Set("User-Agent", c.s.userAgent())
138614	var body io.Reader = nil
138615	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiontargethttpsproxiessetsslcertificatesrequest)
138616	if err != nil {
138617		return nil, err
138618	}
138619	reqHeaders.Set("Content-Type", "application/json")
138620	c.urlParams_.Set("alt", alt)
138621	c.urlParams_.Set("prettyPrint", "false")
138622	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates")
138623	urls += "?" + c.urlParams_.Encode()
138624	req, err := http.NewRequest("POST", urls, body)
138625	if err != nil {
138626		return nil, err
138627	}
138628	req.Header = reqHeaders
138629	googleapi.Expand(req.URL, map[string]string{
138630		"project":          c.project,
138631		"region":           c.region,
138632		"targetHttpsProxy": c.targetHttpsProxy,
138633	})
138634	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138635}
138636
138637// Do executes the "compute.regionTargetHttpsProxies.setSslCertificates" call.
138638// Exactly one of *Operation or error will be non-nil. Any non-2xx
138639// status code is an error. Response headers are in either
138640// *Operation.ServerResponse.Header or (if a response was returned at
138641// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138642// to check whether the returned error was because
138643// http.StatusNotModified was returned.
138644func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138645	gensupport.SetOptions(c.urlParams_, opts...)
138646	res, err := c.doRequest("json")
138647	if res != nil && res.StatusCode == http.StatusNotModified {
138648		if res.Body != nil {
138649			res.Body.Close()
138650		}
138651		return nil, &googleapi.Error{
138652			Code:   res.StatusCode,
138653			Header: res.Header,
138654		}
138655	}
138656	if err != nil {
138657		return nil, err
138658	}
138659	defer googleapi.CloseBody(res)
138660	if err := googleapi.CheckResponse(res); err != nil {
138661		return nil, err
138662	}
138663	ret := &Operation{
138664		ServerResponse: googleapi.ServerResponse{
138665			Header:         res.Header,
138666			HTTPStatusCode: res.StatusCode,
138667		},
138668	}
138669	target := &ret
138670	if err := gensupport.DecodeResponse(target, res); err != nil {
138671		return nil, err
138672	}
138673	return ret, nil
138674	// {
138675	//   "description": "Replaces SslCertificates for TargetHttpsProxy.",
138676	//   "httpMethod": "POST",
138677	//   "id": "compute.regionTargetHttpsProxies.setSslCertificates",
138678	//   "parameterOrder": [
138679	//     "project",
138680	//     "region",
138681	//     "targetHttpsProxy"
138682	//   ],
138683	//   "parameters": {
138684	//     "project": {
138685	//       "description": "Project ID for this request.",
138686	//       "location": "path",
138687	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138688	//       "required": true,
138689	//       "type": "string"
138690	//     },
138691	//     "region": {
138692	//       "description": "Name of the region scoping this request.",
138693	//       "location": "path",
138694	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
138695	//       "required": true,
138696	//       "type": "string"
138697	//     },
138698	//     "requestId": {
138699	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
138700	//       "location": "query",
138701	//       "type": "string"
138702	//     },
138703	//     "targetHttpsProxy": {
138704	//       "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.",
138705	//       "location": "path",
138706	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138707	//       "required": true,
138708	//       "type": "string"
138709	//     }
138710	//   },
138711	//   "path": "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
138712	//   "request": {
138713	//     "$ref": "RegionTargetHttpsProxiesSetSslCertificatesRequest"
138714	//   },
138715	//   "response": {
138716	//     "$ref": "Operation"
138717	//   },
138718	//   "scopes": [
138719	//     "https://www.googleapis.com/auth/cloud-platform",
138720	//     "https://www.googleapis.com/auth/compute"
138721	//   ]
138722	// }
138723
138724}
138725
138726// method id "compute.regionTargetHttpsProxies.setUrlMap":
138727
138728type RegionTargetHttpsProxiesSetUrlMapCall struct {
138729	s                *Service
138730	project          string
138731	region           string
138732	targetHttpsProxy string
138733	urlmapreference  *UrlMapReference
138734	urlParams_       gensupport.URLParams
138735	ctx_             context.Context
138736	header_          http.Header
138737}
138738
138739// SetUrlMap: Changes the URL map for TargetHttpsProxy.
138740func (r *RegionTargetHttpsProxiesService) SetUrlMap(project string, region string, targetHttpsProxy string, urlmapreference *UrlMapReference) *RegionTargetHttpsProxiesSetUrlMapCall {
138741	c := &RegionTargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138742	c.project = project
138743	c.region = region
138744	c.targetHttpsProxy = targetHttpsProxy
138745	c.urlmapreference = urlmapreference
138746	return c
138747}
138748
138749// RequestId sets the optional parameter "requestId": An optional
138750// request ID to identify requests. Specify a unique request ID so that
138751// if you must retry your request, the server will know to ignore the
138752// request if it has already been completed.
138753//
138754// For example, consider a situation where you make an initial request
138755// and the request times out. If you make the request again with the
138756// same request ID, the server can check if original operation with the
138757// same request ID was received, and if so, will ignore the second
138758// request. This prevents clients from accidentally creating duplicate
138759// commitments.
138760//
138761// The request ID must be a valid UUID with the exception that zero UUID
138762// is not supported (00000000-0000-0000-0000-000000000000).
138763func (c *RegionTargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *RegionTargetHttpsProxiesSetUrlMapCall {
138764	c.urlParams_.Set("requestId", requestId)
138765	return c
138766}
138767
138768// Fields allows partial responses to be retrieved. See
138769// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138770// for more information.
138771func (c *RegionTargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesSetUrlMapCall {
138772	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138773	return c
138774}
138775
138776// Context sets the context to be used in this call's Do method. Any
138777// pending HTTP request will be aborted if the provided context is
138778// canceled.
138779func (c *RegionTargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *RegionTargetHttpsProxiesSetUrlMapCall {
138780	c.ctx_ = ctx
138781	return c
138782}
138783
138784// Header returns an http.Header that can be modified by the caller to
138785// add HTTP headers to the request.
138786func (c *RegionTargetHttpsProxiesSetUrlMapCall) Header() http.Header {
138787	if c.header_ == nil {
138788		c.header_ = make(http.Header)
138789	}
138790	return c.header_
138791}
138792
138793func (c *RegionTargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
138794	reqHeaders := make(http.Header)
138795	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
138796	for k, v := range c.header_ {
138797		reqHeaders[k] = v
138798	}
138799	reqHeaders.Set("User-Agent", c.s.userAgent())
138800	var body io.Reader = nil
138801	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
138802	if err != nil {
138803		return nil, err
138804	}
138805	reqHeaders.Set("Content-Type", "application/json")
138806	c.urlParams_.Set("alt", alt)
138807	c.urlParams_.Set("prettyPrint", "false")
138808	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap")
138809	urls += "?" + c.urlParams_.Encode()
138810	req, err := http.NewRequest("POST", urls, body)
138811	if err != nil {
138812		return nil, err
138813	}
138814	req.Header = reqHeaders
138815	googleapi.Expand(req.URL, map[string]string{
138816		"project":          c.project,
138817		"region":           c.region,
138818		"targetHttpsProxy": c.targetHttpsProxy,
138819	})
138820	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138821}
138822
138823// Do executes the "compute.regionTargetHttpsProxies.setUrlMap" call.
138824// Exactly one of *Operation or error will be non-nil. Any non-2xx
138825// status code is an error. Response headers are in either
138826// *Operation.ServerResponse.Header or (if a response was returned at
138827// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138828// to check whether the returned error was because
138829// http.StatusNotModified was returned.
138830func (c *RegionTargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138831	gensupport.SetOptions(c.urlParams_, opts...)
138832	res, err := c.doRequest("json")
138833	if res != nil && res.StatusCode == http.StatusNotModified {
138834		if res.Body != nil {
138835			res.Body.Close()
138836		}
138837		return nil, &googleapi.Error{
138838			Code:   res.StatusCode,
138839			Header: res.Header,
138840		}
138841	}
138842	if err != nil {
138843		return nil, err
138844	}
138845	defer googleapi.CloseBody(res)
138846	if err := googleapi.CheckResponse(res); err != nil {
138847		return nil, err
138848	}
138849	ret := &Operation{
138850		ServerResponse: googleapi.ServerResponse{
138851			Header:         res.Header,
138852			HTTPStatusCode: res.StatusCode,
138853		},
138854	}
138855	target := &ret
138856	if err := gensupport.DecodeResponse(target, res); err != nil {
138857		return nil, err
138858	}
138859	return ret, nil
138860	// {
138861	//   "description": "Changes the URL map for TargetHttpsProxy.",
138862	//   "httpMethod": "POST",
138863	//   "id": "compute.regionTargetHttpsProxies.setUrlMap",
138864	//   "parameterOrder": [
138865	//     "project",
138866	//     "region",
138867	//     "targetHttpsProxy"
138868	//   ],
138869	//   "parameters": {
138870	//     "project": {
138871	//       "description": "Project ID for this request.",
138872	//       "location": "path",
138873	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138874	//       "required": true,
138875	//       "type": "string"
138876	//     },
138877	//     "region": {
138878	//       "description": "Name of the region scoping this request.",
138879	//       "location": "path",
138880	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
138881	//       "required": true,
138882	//       "type": "string"
138883	//     },
138884	//     "requestId": {
138885	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
138886	//       "location": "query",
138887	//       "type": "string"
138888	//     },
138889	//     "targetHttpsProxy": {
138890	//       "description": "Name of the TargetHttpsProxy to set a URL map for.",
138891	//       "location": "path",
138892	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138893	//       "required": true,
138894	//       "type": "string"
138895	//     }
138896	//   },
138897	//   "path": "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
138898	//   "request": {
138899	//     "$ref": "UrlMapReference"
138900	//   },
138901	//   "response": {
138902	//     "$ref": "Operation"
138903	//   },
138904	//   "scopes": [
138905	//     "https://www.googleapis.com/auth/cloud-platform",
138906	//     "https://www.googleapis.com/auth/compute"
138907	//   ]
138908	// }
138909
138910}
138911
138912// method id "compute.regionTargetHttpsProxies.testIamPermissions":
138913
138914type RegionTargetHttpsProxiesTestIamPermissionsCall struct {
138915	s                      *Service
138916	project                string
138917	region                 string
138918	resource               string
138919	testpermissionsrequest *TestPermissionsRequest
138920	urlParams_             gensupport.URLParams
138921	ctx_                   context.Context
138922	header_                http.Header
138923}
138924
138925// TestIamPermissions: Returns permissions that a caller has on the
138926// specified resource.
138927func (r *RegionTargetHttpsProxiesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionTargetHttpsProxiesTestIamPermissionsCall {
138928	c := &RegionTargetHttpsProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138929	c.project = project
138930	c.region = region
138931	c.resource = resource
138932	c.testpermissionsrequest = testpermissionsrequest
138933	return c
138934}
138935
138936// Fields allows partial responses to be retrieved. See
138937// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138938// for more information.
138939func (c *RegionTargetHttpsProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesTestIamPermissionsCall {
138940	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138941	return c
138942}
138943
138944// Context sets the context to be used in this call's Do method. Any
138945// pending HTTP request will be aborted if the provided context is
138946// canceled.
138947func (c *RegionTargetHttpsProxiesTestIamPermissionsCall) Context(ctx context.Context) *RegionTargetHttpsProxiesTestIamPermissionsCall {
138948	c.ctx_ = ctx
138949	return c
138950}
138951
138952// Header returns an http.Header that can be modified by the caller to
138953// add HTTP headers to the request.
138954func (c *RegionTargetHttpsProxiesTestIamPermissionsCall) Header() http.Header {
138955	if c.header_ == nil {
138956		c.header_ = make(http.Header)
138957	}
138958	return c.header_
138959}
138960
138961func (c *RegionTargetHttpsProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
138962	reqHeaders := make(http.Header)
138963	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
138964	for k, v := range c.header_ {
138965		reqHeaders[k] = v
138966	}
138967	reqHeaders.Set("User-Agent", c.s.userAgent())
138968	var body io.Reader = nil
138969	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
138970	if err != nil {
138971		return nil, err
138972	}
138973	reqHeaders.Set("Content-Type", "application/json")
138974	c.urlParams_.Set("alt", alt)
138975	c.urlParams_.Set("prettyPrint", "false")
138976	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies/{resource}/testIamPermissions")
138977	urls += "?" + c.urlParams_.Encode()
138978	req, err := http.NewRequest("POST", urls, body)
138979	if err != nil {
138980		return nil, err
138981	}
138982	req.Header = reqHeaders
138983	googleapi.Expand(req.URL, map[string]string{
138984		"project":  c.project,
138985		"region":   c.region,
138986		"resource": c.resource,
138987	})
138988	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138989}
138990
138991// Do executes the "compute.regionTargetHttpsProxies.testIamPermissions" call.
138992// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
138993// non-2xx status code is an error. Response headers are in either
138994// *TestPermissionsResponse.ServerResponse.Header or (if a response was
138995// returned at all) in error.(*googleapi.Error).Header. Use
138996// googleapi.IsNotModified to check whether the returned error was
138997// because http.StatusNotModified was returned.
138998func (c *RegionTargetHttpsProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
138999	gensupport.SetOptions(c.urlParams_, opts...)
139000	res, err := c.doRequest("json")
139001	if res != nil && res.StatusCode == http.StatusNotModified {
139002		if res.Body != nil {
139003			res.Body.Close()
139004		}
139005		return nil, &googleapi.Error{
139006			Code:   res.StatusCode,
139007			Header: res.Header,
139008		}
139009	}
139010	if err != nil {
139011		return nil, err
139012	}
139013	defer googleapi.CloseBody(res)
139014	if err := googleapi.CheckResponse(res); err != nil {
139015		return nil, err
139016	}
139017	ret := &TestPermissionsResponse{
139018		ServerResponse: googleapi.ServerResponse{
139019			Header:         res.Header,
139020			HTTPStatusCode: res.StatusCode,
139021		},
139022	}
139023	target := &ret
139024	if err := gensupport.DecodeResponse(target, res); err != nil {
139025		return nil, err
139026	}
139027	return ret, nil
139028	// {
139029	//   "description": "Returns permissions that a caller has on the specified resource.",
139030	//   "httpMethod": "POST",
139031	//   "id": "compute.regionTargetHttpsProxies.testIamPermissions",
139032	//   "parameterOrder": [
139033	//     "project",
139034	//     "region",
139035	//     "resource"
139036	//   ],
139037	//   "parameters": {
139038	//     "project": {
139039	//       "description": "Project ID for this request.",
139040	//       "location": "path",
139041	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139042	//       "required": true,
139043	//       "type": "string"
139044	//     },
139045	//     "region": {
139046	//       "description": "The name of the region for this request.",
139047	//       "location": "path",
139048	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139049	//       "required": true,
139050	//       "type": "string"
139051	//     },
139052	//     "resource": {
139053	//       "description": "Name or id of the resource for this request.",
139054	//       "location": "path",
139055	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139056	//       "required": true,
139057	//       "type": "string"
139058	//     }
139059	//   },
139060	//   "path": "{project}/regions/{region}/targetHttpsProxies/{resource}/testIamPermissions",
139061	//   "request": {
139062	//     "$ref": "TestPermissionsRequest"
139063	//   },
139064	//   "response": {
139065	//     "$ref": "TestPermissionsResponse"
139066	//   },
139067	//   "scopes": [
139068	//     "https://www.googleapis.com/auth/cloud-platform",
139069	//     "https://www.googleapis.com/auth/compute",
139070	//     "https://www.googleapis.com/auth/compute.readonly"
139071	//   ]
139072	// }
139073
139074}
139075
139076// method id "compute.regionUrlMaps.delete":
139077
139078type RegionUrlMapsDeleteCall struct {
139079	s          *Service
139080	project    string
139081	region     string
139082	urlMap     string
139083	urlParams_ gensupport.URLParams
139084	ctx_       context.Context
139085	header_    http.Header
139086}
139087
139088// Delete: Deletes the specified UrlMap resource.
139089func (r *RegionUrlMapsService) Delete(project string, region string, urlMap string) *RegionUrlMapsDeleteCall {
139090	c := &RegionUrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139091	c.project = project
139092	c.region = region
139093	c.urlMap = urlMap
139094	return c
139095}
139096
139097// RequestId sets the optional parameter "requestId": begin_interface:
139098// MixerMutationRequestBuilder Request ID to support idempotency.
139099func (c *RegionUrlMapsDeleteCall) RequestId(requestId string) *RegionUrlMapsDeleteCall {
139100	c.urlParams_.Set("requestId", requestId)
139101	return c
139102}
139103
139104// Fields allows partial responses to be retrieved. See
139105// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139106// for more information.
139107func (c *RegionUrlMapsDeleteCall) Fields(s ...googleapi.Field) *RegionUrlMapsDeleteCall {
139108	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139109	return c
139110}
139111
139112// Context sets the context to be used in this call's Do method. Any
139113// pending HTTP request will be aborted if the provided context is
139114// canceled.
139115func (c *RegionUrlMapsDeleteCall) Context(ctx context.Context) *RegionUrlMapsDeleteCall {
139116	c.ctx_ = ctx
139117	return c
139118}
139119
139120// Header returns an http.Header that can be modified by the caller to
139121// add HTTP headers to the request.
139122func (c *RegionUrlMapsDeleteCall) Header() http.Header {
139123	if c.header_ == nil {
139124		c.header_ = make(http.Header)
139125	}
139126	return c.header_
139127}
139128
139129func (c *RegionUrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) {
139130	reqHeaders := make(http.Header)
139131	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
139132	for k, v := range c.header_ {
139133		reqHeaders[k] = v
139134	}
139135	reqHeaders.Set("User-Agent", c.s.userAgent())
139136	var body io.Reader = nil
139137	c.urlParams_.Set("alt", alt)
139138	c.urlParams_.Set("prettyPrint", "false")
139139	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}")
139140	urls += "?" + c.urlParams_.Encode()
139141	req, err := http.NewRequest("DELETE", urls, body)
139142	if err != nil {
139143		return nil, err
139144	}
139145	req.Header = reqHeaders
139146	googleapi.Expand(req.URL, map[string]string{
139147		"project": c.project,
139148		"region":  c.region,
139149		"urlMap":  c.urlMap,
139150	})
139151	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139152}
139153
139154// Do executes the "compute.regionUrlMaps.delete" call.
139155// Exactly one of *Operation or error will be non-nil. Any non-2xx
139156// status code is an error. Response headers are in either
139157// *Operation.ServerResponse.Header or (if a response was returned at
139158// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
139159// to check whether the returned error was because
139160// http.StatusNotModified was returned.
139161func (c *RegionUrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
139162	gensupport.SetOptions(c.urlParams_, opts...)
139163	res, err := c.doRequest("json")
139164	if res != nil && res.StatusCode == http.StatusNotModified {
139165		if res.Body != nil {
139166			res.Body.Close()
139167		}
139168		return nil, &googleapi.Error{
139169			Code:   res.StatusCode,
139170			Header: res.Header,
139171		}
139172	}
139173	if err != nil {
139174		return nil, err
139175	}
139176	defer googleapi.CloseBody(res)
139177	if err := googleapi.CheckResponse(res); err != nil {
139178		return nil, err
139179	}
139180	ret := &Operation{
139181		ServerResponse: googleapi.ServerResponse{
139182			Header:         res.Header,
139183			HTTPStatusCode: res.StatusCode,
139184		},
139185	}
139186	target := &ret
139187	if err := gensupport.DecodeResponse(target, res); err != nil {
139188		return nil, err
139189	}
139190	return ret, nil
139191	// {
139192	//   "description": "Deletes the specified UrlMap resource.",
139193	//   "httpMethod": "DELETE",
139194	//   "id": "compute.regionUrlMaps.delete",
139195	//   "parameterOrder": [
139196	//     "project",
139197	//     "region",
139198	//     "urlMap"
139199	//   ],
139200	//   "parameters": {
139201	//     "project": {
139202	//       "description": "Project ID for this request.",
139203	//       "location": "path",
139204	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139205	//       "required": true,
139206	//       "type": "string"
139207	//     },
139208	//     "region": {
139209	//       "description": "Name of the region scoping this request.",
139210	//       "location": "path",
139211	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139212	//       "required": true,
139213	//       "type": "string"
139214	//     },
139215	//     "requestId": {
139216	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
139217	//       "location": "query",
139218	//       "type": "string"
139219	//     },
139220	//     "urlMap": {
139221	//       "description": "Name of the UrlMap resource to delete.",
139222	//       "location": "path",
139223	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139224	//       "required": true,
139225	//       "type": "string"
139226	//     }
139227	//   },
139228	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}",
139229	//   "response": {
139230	//     "$ref": "Operation"
139231	//   },
139232	//   "scopes": [
139233	//     "https://www.googleapis.com/auth/cloud-platform",
139234	//     "https://www.googleapis.com/auth/compute"
139235	//   ]
139236	// }
139237
139238}
139239
139240// method id "compute.regionUrlMaps.get":
139241
139242type RegionUrlMapsGetCall struct {
139243	s            *Service
139244	project      string
139245	region       string
139246	urlMap       string
139247	urlParams_   gensupport.URLParams
139248	ifNoneMatch_ string
139249	ctx_         context.Context
139250	header_      http.Header
139251}
139252
139253// Get: Returns the specified UrlMap resource. Gets a list of available
139254// URL maps by making a list() request.
139255func (r *RegionUrlMapsService) Get(project string, region string, urlMap string) *RegionUrlMapsGetCall {
139256	c := &RegionUrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139257	c.project = project
139258	c.region = region
139259	c.urlMap = urlMap
139260	return c
139261}
139262
139263// Fields allows partial responses to be retrieved. See
139264// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139265// for more information.
139266func (c *RegionUrlMapsGetCall) Fields(s ...googleapi.Field) *RegionUrlMapsGetCall {
139267	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139268	return c
139269}
139270
139271// IfNoneMatch sets the optional parameter which makes the operation
139272// fail if the object's ETag matches the given value. This is useful for
139273// getting updates only after the object has changed since the last
139274// request. Use googleapi.IsNotModified to check whether the response
139275// error from Do is the result of In-None-Match.
139276func (c *RegionUrlMapsGetCall) IfNoneMatch(entityTag string) *RegionUrlMapsGetCall {
139277	c.ifNoneMatch_ = entityTag
139278	return c
139279}
139280
139281// Context sets the context to be used in this call's Do method. Any
139282// pending HTTP request will be aborted if the provided context is
139283// canceled.
139284func (c *RegionUrlMapsGetCall) Context(ctx context.Context) *RegionUrlMapsGetCall {
139285	c.ctx_ = ctx
139286	return c
139287}
139288
139289// Header returns an http.Header that can be modified by the caller to
139290// add HTTP headers to the request.
139291func (c *RegionUrlMapsGetCall) Header() http.Header {
139292	if c.header_ == nil {
139293		c.header_ = make(http.Header)
139294	}
139295	return c.header_
139296}
139297
139298func (c *RegionUrlMapsGetCall) doRequest(alt string) (*http.Response, error) {
139299	reqHeaders := make(http.Header)
139300	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
139301	for k, v := range c.header_ {
139302		reqHeaders[k] = v
139303	}
139304	reqHeaders.Set("User-Agent", c.s.userAgent())
139305	if c.ifNoneMatch_ != "" {
139306		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
139307	}
139308	var body io.Reader = nil
139309	c.urlParams_.Set("alt", alt)
139310	c.urlParams_.Set("prettyPrint", "false")
139311	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}")
139312	urls += "?" + c.urlParams_.Encode()
139313	req, err := http.NewRequest("GET", urls, body)
139314	if err != nil {
139315		return nil, err
139316	}
139317	req.Header = reqHeaders
139318	googleapi.Expand(req.URL, map[string]string{
139319		"project": c.project,
139320		"region":  c.region,
139321		"urlMap":  c.urlMap,
139322	})
139323	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139324}
139325
139326// Do executes the "compute.regionUrlMaps.get" call.
139327// Exactly one of *UrlMap or error will be non-nil. Any non-2xx status
139328// code is an error. Response headers are in either
139329// *UrlMap.ServerResponse.Header or (if a response was returned at all)
139330// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
139331// check whether the returned error was because http.StatusNotModified
139332// was returned.
139333func (c *RegionUrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) {
139334	gensupport.SetOptions(c.urlParams_, opts...)
139335	res, err := c.doRequest("json")
139336	if res != nil && res.StatusCode == http.StatusNotModified {
139337		if res.Body != nil {
139338			res.Body.Close()
139339		}
139340		return nil, &googleapi.Error{
139341			Code:   res.StatusCode,
139342			Header: res.Header,
139343		}
139344	}
139345	if err != nil {
139346		return nil, err
139347	}
139348	defer googleapi.CloseBody(res)
139349	if err := googleapi.CheckResponse(res); err != nil {
139350		return nil, err
139351	}
139352	ret := &UrlMap{
139353		ServerResponse: googleapi.ServerResponse{
139354			Header:         res.Header,
139355			HTTPStatusCode: res.StatusCode,
139356		},
139357	}
139358	target := &ret
139359	if err := gensupport.DecodeResponse(target, res); err != nil {
139360		return nil, err
139361	}
139362	return ret, nil
139363	// {
139364	//   "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.",
139365	//   "httpMethod": "GET",
139366	//   "id": "compute.regionUrlMaps.get",
139367	//   "parameterOrder": [
139368	//     "project",
139369	//     "region",
139370	//     "urlMap"
139371	//   ],
139372	//   "parameters": {
139373	//     "project": {
139374	//       "description": "Project ID for this request.",
139375	//       "location": "path",
139376	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139377	//       "required": true,
139378	//       "type": "string"
139379	//     },
139380	//     "region": {
139381	//       "description": "Name of the region scoping this request.",
139382	//       "location": "path",
139383	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139384	//       "required": true,
139385	//       "type": "string"
139386	//     },
139387	//     "urlMap": {
139388	//       "description": "Name of the UrlMap resource to return.",
139389	//       "location": "path",
139390	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139391	//       "required": true,
139392	//       "type": "string"
139393	//     }
139394	//   },
139395	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}",
139396	//   "response": {
139397	//     "$ref": "UrlMap"
139398	//   },
139399	//   "scopes": [
139400	//     "https://www.googleapis.com/auth/cloud-platform",
139401	//     "https://www.googleapis.com/auth/compute",
139402	//     "https://www.googleapis.com/auth/compute.readonly"
139403	//   ]
139404	// }
139405
139406}
139407
139408// method id "compute.regionUrlMaps.insert":
139409
139410type RegionUrlMapsInsertCall struct {
139411	s          *Service
139412	project    string
139413	region     string
139414	urlmap     *UrlMap
139415	urlParams_ gensupport.URLParams
139416	ctx_       context.Context
139417	header_    http.Header
139418}
139419
139420// Insert: Creates a UrlMap resource in the specified project using the
139421// data included in the request.
139422func (r *RegionUrlMapsService) Insert(project string, region string, urlmap *UrlMap) *RegionUrlMapsInsertCall {
139423	c := &RegionUrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139424	c.project = project
139425	c.region = region
139426	c.urlmap = urlmap
139427	return c
139428}
139429
139430// RequestId sets the optional parameter "requestId": begin_interface:
139431// MixerMutationRequestBuilder Request ID to support idempotency.
139432func (c *RegionUrlMapsInsertCall) RequestId(requestId string) *RegionUrlMapsInsertCall {
139433	c.urlParams_.Set("requestId", requestId)
139434	return c
139435}
139436
139437// Fields allows partial responses to be retrieved. See
139438// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139439// for more information.
139440func (c *RegionUrlMapsInsertCall) Fields(s ...googleapi.Field) *RegionUrlMapsInsertCall {
139441	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139442	return c
139443}
139444
139445// Context sets the context to be used in this call's Do method. Any
139446// pending HTTP request will be aborted if the provided context is
139447// canceled.
139448func (c *RegionUrlMapsInsertCall) Context(ctx context.Context) *RegionUrlMapsInsertCall {
139449	c.ctx_ = ctx
139450	return c
139451}
139452
139453// Header returns an http.Header that can be modified by the caller to
139454// add HTTP headers to the request.
139455func (c *RegionUrlMapsInsertCall) Header() http.Header {
139456	if c.header_ == nil {
139457		c.header_ = make(http.Header)
139458	}
139459	return c.header_
139460}
139461
139462func (c *RegionUrlMapsInsertCall) doRequest(alt string) (*http.Response, error) {
139463	reqHeaders := make(http.Header)
139464	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
139465	for k, v := range c.header_ {
139466		reqHeaders[k] = v
139467	}
139468	reqHeaders.Set("User-Agent", c.s.userAgent())
139469	var body io.Reader = nil
139470	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
139471	if err != nil {
139472		return nil, err
139473	}
139474	reqHeaders.Set("Content-Type", "application/json")
139475	c.urlParams_.Set("alt", alt)
139476	c.urlParams_.Set("prettyPrint", "false")
139477	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps")
139478	urls += "?" + c.urlParams_.Encode()
139479	req, err := http.NewRequest("POST", urls, body)
139480	if err != nil {
139481		return nil, err
139482	}
139483	req.Header = reqHeaders
139484	googleapi.Expand(req.URL, map[string]string{
139485		"project": c.project,
139486		"region":  c.region,
139487	})
139488	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139489}
139490
139491// Do executes the "compute.regionUrlMaps.insert" call.
139492// Exactly one of *Operation or error will be non-nil. Any non-2xx
139493// status code is an error. Response headers are in either
139494// *Operation.ServerResponse.Header or (if a response was returned at
139495// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
139496// to check whether the returned error was because
139497// http.StatusNotModified was returned.
139498func (c *RegionUrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
139499	gensupport.SetOptions(c.urlParams_, opts...)
139500	res, err := c.doRequest("json")
139501	if res != nil && res.StatusCode == http.StatusNotModified {
139502		if res.Body != nil {
139503			res.Body.Close()
139504		}
139505		return nil, &googleapi.Error{
139506			Code:   res.StatusCode,
139507			Header: res.Header,
139508		}
139509	}
139510	if err != nil {
139511		return nil, err
139512	}
139513	defer googleapi.CloseBody(res)
139514	if err := googleapi.CheckResponse(res); err != nil {
139515		return nil, err
139516	}
139517	ret := &Operation{
139518		ServerResponse: googleapi.ServerResponse{
139519			Header:         res.Header,
139520			HTTPStatusCode: res.StatusCode,
139521		},
139522	}
139523	target := &ret
139524	if err := gensupport.DecodeResponse(target, res); err != nil {
139525		return nil, err
139526	}
139527	return ret, nil
139528	// {
139529	//   "description": "Creates a UrlMap resource in the specified project using the data included in the request.",
139530	//   "httpMethod": "POST",
139531	//   "id": "compute.regionUrlMaps.insert",
139532	//   "parameterOrder": [
139533	//     "project",
139534	//     "region"
139535	//   ],
139536	//   "parameters": {
139537	//     "project": {
139538	//       "description": "Project ID for this request.",
139539	//       "location": "path",
139540	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139541	//       "required": true,
139542	//       "type": "string"
139543	//     },
139544	//     "region": {
139545	//       "description": "Name of the region scoping this request.",
139546	//       "location": "path",
139547	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139548	//       "required": true,
139549	//       "type": "string"
139550	//     },
139551	//     "requestId": {
139552	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
139553	//       "location": "query",
139554	//       "type": "string"
139555	//     }
139556	//   },
139557	//   "path": "{project}/regions/{region}/urlMaps",
139558	//   "request": {
139559	//     "$ref": "UrlMap"
139560	//   },
139561	//   "response": {
139562	//     "$ref": "Operation"
139563	//   },
139564	//   "scopes": [
139565	//     "https://www.googleapis.com/auth/cloud-platform",
139566	//     "https://www.googleapis.com/auth/compute"
139567	//   ]
139568	// }
139569
139570}
139571
139572// method id "compute.regionUrlMaps.invalidateCache":
139573
139574type RegionUrlMapsInvalidateCacheCall struct {
139575	s                     *Service
139576	project               string
139577	region                string
139578	urlMap                string
139579	cacheinvalidationrule *CacheInvalidationRule
139580	urlParams_            gensupport.URLParams
139581	ctx_                  context.Context
139582	header_               http.Header
139583}
139584
139585// InvalidateCache: Initiates a cache invalidation operation,
139586// invalidating the specified path, scoped to the specified UrlMap.
139587func (r *RegionUrlMapsService) InvalidateCache(project string, region string, urlMap string, cacheinvalidationrule *CacheInvalidationRule) *RegionUrlMapsInvalidateCacheCall {
139588	c := &RegionUrlMapsInvalidateCacheCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139589	c.project = project
139590	c.region = region
139591	c.urlMap = urlMap
139592	c.cacheinvalidationrule = cacheinvalidationrule
139593	return c
139594}
139595
139596// RequestId sets the optional parameter "requestId": begin_interface:
139597// MixerMutationRequestBuilder Request ID to support idempotency.
139598func (c *RegionUrlMapsInvalidateCacheCall) RequestId(requestId string) *RegionUrlMapsInvalidateCacheCall {
139599	c.urlParams_.Set("requestId", requestId)
139600	return c
139601}
139602
139603// Fields allows partial responses to be retrieved. See
139604// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139605// for more information.
139606func (c *RegionUrlMapsInvalidateCacheCall) Fields(s ...googleapi.Field) *RegionUrlMapsInvalidateCacheCall {
139607	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139608	return c
139609}
139610
139611// Context sets the context to be used in this call's Do method. Any
139612// pending HTTP request will be aborted if the provided context is
139613// canceled.
139614func (c *RegionUrlMapsInvalidateCacheCall) Context(ctx context.Context) *RegionUrlMapsInvalidateCacheCall {
139615	c.ctx_ = ctx
139616	return c
139617}
139618
139619// Header returns an http.Header that can be modified by the caller to
139620// add HTTP headers to the request.
139621func (c *RegionUrlMapsInvalidateCacheCall) Header() http.Header {
139622	if c.header_ == nil {
139623		c.header_ = make(http.Header)
139624	}
139625	return c.header_
139626}
139627
139628func (c *RegionUrlMapsInvalidateCacheCall) doRequest(alt string) (*http.Response, error) {
139629	reqHeaders := make(http.Header)
139630	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
139631	for k, v := range c.header_ {
139632		reqHeaders[k] = v
139633	}
139634	reqHeaders.Set("User-Agent", c.s.userAgent())
139635	var body io.Reader = nil
139636	body, err := googleapi.WithoutDataWrapper.JSONReader(c.cacheinvalidationrule)
139637	if err != nil {
139638		return nil, err
139639	}
139640	reqHeaders.Set("Content-Type", "application/json")
139641	c.urlParams_.Set("alt", alt)
139642	c.urlParams_.Set("prettyPrint", "false")
139643	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}/invalidateCache")
139644	urls += "?" + c.urlParams_.Encode()
139645	req, err := http.NewRequest("POST", urls, body)
139646	if err != nil {
139647		return nil, err
139648	}
139649	req.Header = reqHeaders
139650	googleapi.Expand(req.URL, map[string]string{
139651		"project": c.project,
139652		"region":  c.region,
139653		"urlMap":  c.urlMap,
139654	})
139655	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139656}
139657
139658// Do executes the "compute.regionUrlMaps.invalidateCache" call.
139659// Exactly one of *Operation or error will be non-nil. Any non-2xx
139660// status code is an error. Response headers are in either
139661// *Operation.ServerResponse.Header or (if a response was returned at
139662// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
139663// to check whether the returned error was because
139664// http.StatusNotModified was returned.
139665func (c *RegionUrlMapsInvalidateCacheCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
139666	gensupport.SetOptions(c.urlParams_, opts...)
139667	res, err := c.doRequest("json")
139668	if res != nil && res.StatusCode == http.StatusNotModified {
139669		if res.Body != nil {
139670			res.Body.Close()
139671		}
139672		return nil, &googleapi.Error{
139673			Code:   res.StatusCode,
139674			Header: res.Header,
139675		}
139676	}
139677	if err != nil {
139678		return nil, err
139679	}
139680	defer googleapi.CloseBody(res)
139681	if err := googleapi.CheckResponse(res); err != nil {
139682		return nil, err
139683	}
139684	ret := &Operation{
139685		ServerResponse: googleapi.ServerResponse{
139686			Header:         res.Header,
139687			HTTPStatusCode: res.StatusCode,
139688		},
139689	}
139690	target := &ret
139691	if err := gensupport.DecodeResponse(target, res); err != nil {
139692		return nil, err
139693	}
139694	return ret, nil
139695	// {
139696	//   "description": "Initiates a cache invalidation operation, invalidating the specified path, scoped to the specified UrlMap.",
139697	//   "httpMethod": "POST",
139698	//   "id": "compute.regionUrlMaps.invalidateCache",
139699	//   "parameterOrder": [
139700	//     "project",
139701	//     "region",
139702	//     "urlMap"
139703	//   ],
139704	//   "parameters": {
139705	//     "project": {
139706	//       "description": "Project ID for this request.",
139707	//       "location": "path",
139708	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139709	//       "required": true,
139710	//       "type": "string"
139711	//     },
139712	//     "region": {
139713	//       "description": "Name of the region scoping this request.",
139714	//       "location": "path",
139715	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139716	//       "required": true,
139717	//       "type": "string"
139718	//     },
139719	//     "requestId": {
139720	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
139721	//       "location": "query",
139722	//       "type": "string"
139723	//     },
139724	//     "urlMap": {
139725	//       "description": "Name of the UrlMap scoping this request.",
139726	//       "location": "path",
139727	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139728	//       "required": true,
139729	//       "type": "string"
139730	//     }
139731	//   },
139732	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}/invalidateCache",
139733	//   "request": {
139734	//     "$ref": "CacheInvalidationRule"
139735	//   },
139736	//   "response": {
139737	//     "$ref": "Operation"
139738	//   },
139739	//   "scopes": [
139740	//     "https://www.googleapis.com/auth/cloud-platform",
139741	//     "https://www.googleapis.com/auth/compute"
139742	//   ]
139743	// }
139744
139745}
139746
139747// method id "compute.regionUrlMaps.list":
139748
139749type RegionUrlMapsListCall struct {
139750	s            *Service
139751	project      string
139752	region       string
139753	urlParams_   gensupport.URLParams
139754	ifNoneMatch_ string
139755	ctx_         context.Context
139756	header_      http.Header
139757}
139758
139759// List: Retrieves the list of UrlMap resources available to the
139760// specified project in the specified region.
139761func (r *RegionUrlMapsService) List(project string, region string) *RegionUrlMapsListCall {
139762	c := &RegionUrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139763	c.project = project
139764	c.region = region
139765	return c
139766}
139767
139768// Filter sets the optional parameter "filter": A filter expression that
139769// filters resources listed in the response. The expression must specify
139770// the field name, a comparison operator, and the value that you want to
139771// use for filtering. The value must be a string, a number, or a
139772// boolean. The comparison operator must be either =, !=, >, or <.
139773//
139774// For example, if you are filtering Compute Engine instances, you can
139775// exclude instances named example-instance by specifying name !=
139776// example-instance.
139777//
139778// You can also filter nested fields. For example, you could specify
139779// scheduling.automaticRestart = false to include instances only if they
139780// are not scheduled for automatic restarts. You can use filtering on
139781// nested fields to filter based on resource labels.
139782//
139783// To filter on multiple expressions, provide each separate expression
139784// within parentheses. For example, (scheduling.automaticRestart = true)
139785// (cpuPlatform = "Intel Skylake"). By default, each expression is an
139786// AND expression. However, you can include AND and OR expressions
139787// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
139788// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
139789// true).
139790func (c *RegionUrlMapsListCall) Filter(filter string) *RegionUrlMapsListCall {
139791	c.urlParams_.Set("filter", filter)
139792	return c
139793}
139794
139795// MaxResults sets the optional parameter "maxResults": The maximum
139796// number of results per page that should be returned. If the number of
139797// available results is larger than maxResults, Compute Engine returns a
139798// nextPageToken that can be used to get the next page of results in
139799// subsequent list requests. Acceptable values are 0 to 500, inclusive.
139800// (Default: 500)
139801func (c *RegionUrlMapsListCall) MaxResults(maxResults int64) *RegionUrlMapsListCall {
139802	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
139803	return c
139804}
139805
139806// OrderBy sets the optional parameter "orderBy": Sorts list results by
139807// a certain order. By default, results are returned in alphanumerical
139808// order based on the resource name.
139809//
139810// You can also sort results in descending order based on the creation
139811// timestamp using orderBy="creationTimestamp desc". This sorts results
139812// based on the creationTimestamp field in reverse chronological order
139813// (newest result first). Use this to sort resources like operations so
139814// that the newest operation is returned first.
139815//
139816// Currently, only sorting by name or creationTimestamp desc is
139817// supported.
139818func (c *RegionUrlMapsListCall) OrderBy(orderBy string) *RegionUrlMapsListCall {
139819	c.urlParams_.Set("orderBy", orderBy)
139820	return c
139821}
139822
139823// PageToken sets the optional parameter "pageToken": Specifies a page
139824// token to use. Set pageToken to the nextPageToken returned by a
139825// previous list request to get the next page of results.
139826func (c *RegionUrlMapsListCall) PageToken(pageToken string) *RegionUrlMapsListCall {
139827	c.urlParams_.Set("pageToken", pageToken)
139828	return c
139829}
139830
139831// Fields allows partial responses to be retrieved. See
139832// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139833// for more information.
139834func (c *RegionUrlMapsListCall) Fields(s ...googleapi.Field) *RegionUrlMapsListCall {
139835	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139836	return c
139837}
139838
139839// IfNoneMatch sets the optional parameter which makes the operation
139840// fail if the object's ETag matches the given value. This is useful for
139841// getting updates only after the object has changed since the last
139842// request. Use googleapi.IsNotModified to check whether the response
139843// error from Do is the result of In-None-Match.
139844func (c *RegionUrlMapsListCall) IfNoneMatch(entityTag string) *RegionUrlMapsListCall {
139845	c.ifNoneMatch_ = entityTag
139846	return c
139847}
139848
139849// Context sets the context to be used in this call's Do method. Any
139850// pending HTTP request will be aborted if the provided context is
139851// canceled.
139852func (c *RegionUrlMapsListCall) Context(ctx context.Context) *RegionUrlMapsListCall {
139853	c.ctx_ = ctx
139854	return c
139855}
139856
139857// Header returns an http.Header that can be modified by the caller to
139858// add HTTP headers to the request.
139859func (c *RegionUrlMapsListCall) Header() http.Header {
139860	if c.header_ == nil {
139861		c.header_ = make(http.Header)
139862	}
139863	return c.header_
139864}
139865
139866func (c *RegionUrlMapsListCall) doRequest(alt string) (*http.Response, error) {
139867	reqHeaders := make(http.Header)
139868	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
139869	for k, v := range c.header_ {
139870		reqHeaders[k] = v
139871	}
139872	reqHeaders.Set("User-Agent", c.s.userAgent())
139873	if c.ifNoneMatch_ != "" {
139874		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
139875	}
139876	var body io.Reader = nil
139877	c.urlParams_.Set("alt", alt)
139878	c.urlParams_.Set("prettyPrint", "false")
139879	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps")
139880	urls += "?" + c.urlParams_.Encode()
139881	req, err := http.NewRequest("GET", urls, body)
139882	if err != nil {
139883		return nil, err
139884	}
139885	req.Header = reqHeaders
139886	googleapi.Expand(req.URL, map[string]string{
139887		"project": c.project,
139888		"region":  c.region,
139889	})
139890	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139891}
139892
139893// Do executes the "compute.regionUrlMaps.list" call.
139894// Exactly one of *UrlMapList or error will be non-nil. Any non-2xx
139895// status code is an error. Response headers are in either
139896// *UrlMapList.ServerResponse.Header or (if a response was returned at
139897// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
139898// to check whether the returned error was because
139899// http.StatusNotModified was returned.
139900func (c *RegionUrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, error) {
139901	gensupport.SetOptions(c.urlParams_, opts...)
139902	res, err := c.doRequest("json")
139903	if res != nil && res.StatusCode == http.StatusNotModified {
139904		if res.Body != nil {
139905			res.Body.Close()
139906		}
139907		return nil, &googleapi.Error{
139908			Code:   res.StatusCode,
139909			Header: res.Header,
139910		}
139911	}
139912	if err != nil {
139913		return nil, err
139914	}
139915	defer googleapi.CloseBody(res)
139916	if err := googleapi.CheckResponse(res); err != nil {
139917		return nil, err
139918	}
139919	ret := &UrlMapList{
139920		ServerResponse: googleapi.ServerResponse{
139921			Header:         res.Header,
139922			HTTPStatusCode: res.StatusCode,
139923		},
139924	}
139925	target := &ret
139926	if err := gensupport.DecodeResponse(target, res); err != nil {
139927		return nil, err
139928	}
139929	return ret, nil
139930	// {
139931	//   "description": "Retrieves the list of UrlMap resources available to the specified project in the specified region.",
139932	//   "httpMethod": "GET",
139933	//   "id": "compute.regionUrlMaps.list",
139934	//   "parameterOrder": [
139935	//     "project",
139936	//     "region"
139937	//   ],
139938	//   "parameters": {
139939	//     "filter": {
139940	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
139941	//       "location": "query",
139942	//       "type": "string"
139943	//     },
139944	//     "maxResults": {
139945	//       "default": "500",
139946	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
139947	//       "format": "uint32",
139948	//       "location": "query",
139949	//       "minimum": "0",
139950	//       "type": "integer"
139951	//     },
139952	//     "orderBy": {
139953	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
139954	//       "location": "query",
139955	//       "type": "string"
139956	//     },
139957	//     "pageToken": {
139958	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
139959	//       "location": "query",
139960	//       "type": "string"
139961	//     },
139962	//     "project": {
139963	//       "description": "Project ID for this request.",
139964	//       "location": "path",
139965	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139966	//       "required": true,
139967	//       "type": "string"
139968	//     },
139969	//     "region": {
139970	//       "description": "Name of the region scoping this request.",
139971	//       "location": "path",
139972	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139973	//       "required": true,
139974	//       "type": "string"
139975	//     }
139976	//   },
139977	//   "path": "{project}/regions/{region}/urlMaps",
139978	//   "response": {
139979	//     "$ref": "UrlMapList"
139980	//   },
139981	//   "scopes": [
139982	//     "https://www.googleapis.com/auth/cloud-platform",
139983	//     "https://www.googleapis.com/auth/compute",
139984	//     "https://www.googleapis.com/auth/compute.readonly"
139985	//   ]
139986	// }
139987
139988}
139989
139990// Pages invokes f for each page of results.
139991// A non-nil error returned from f will halt the iteration.
139992// The provided context supersedes any context provided to the Context method.
139993func (c *RegionUrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error {
139994	c.ctx_ = ctx
139995	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
139996	for {
139997		x, err := c.Do()
139998		if err != nil {
139999			return err
140000		}
140001		if err := f(x); err != nil {
140002			return err
140003		}
140004		if x.NextPageToken == "" {
140005			return nil
140006		}
140007		c.PageToken(x.NextPageToken)
140008	}
140009}
140010
140011// method id "compute.regionUrlMaps.patch":
140012
140013type RegionUrlMapsPatchCall struct {
140014	s          *Service
140015	project    string
140016	region     string
140017	urlMap     string
140018	urlmap     *UrlMap
140019	urlParams_ gensupport.URLParams
140020	ctx_       context.Context
140021	header_    http.Header
140022}
140023
140024// Patch: Patches the specified UrlMap resource with the data included
140025// in the request. This method supports PATCH semantics and uses JSON
140026// merge patch format and processing rules.
140027func (r *RegionUrlMapsService) Patch(project string, region string, urlMap string, urlmap *UrlMap) *RegionUrlMapsPatchCall {
140028	c := &RegionUrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140029	c.project = project
140030	c.region = region
140031	c.urlMap = urlMap
140032	c.urlmap = urlmap
140033	return c
140034}
140035
140036// RequestId sets the optional parameter "requestId": begin_interface:
140037// MixerMutationRequestBuilder Request ID to support idempotency.
140038func (c *RegionUrlMapsPatchCall) RequestId(requestId string) *RegionUrlMapsPatchCall {
140039	c.urlParams_.Set("requestId", requestId)
140040	return c
140041}
140042
140043// Fields allows partial responses to be retrieved. See
140044// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140045// for more information.
140046func (c *RegionUrlMapsPatchCall) Fields(s ...googleapi.Field) *RegionUrlMapsPatchCall {
140047	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140048	return c
140049}
140050
140051// Context sets the context to be used in this call's Do method. Any
140052// pending HTTP request will be aborted if the provided context is
140053// canceled.
140054func (c *RegionUrlMapsPatchCall) Context(ctx context.Context) *RegionUrlMapsPatchCall {
140055	c.ctx_ = ctx
140056	return c
140057}
140058
140059// Header returns an http.Header that can be modified by the caller to
140060// add HTTP headers to the request.
140061func (c *RegionUrlMapsPatchCall) Header() http.Header {
140062	if c.header_ == nil {
140063		c.header_ = make(http.Header)
140064	}
140065	return c.header_
140066}
140067
140068func (c *RegionUrlMapsPatchCall) doRequest(alt string) (*http.Response, error) {
140069	reqHeaders := make(http.Header)
140070	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
140071	for k, v := range c.header_ {
140072		reqHeaders[k] = v
140073	}
140074	reqHeaders.Set("User-Agent", c.s.userAgent())
140075	var body io.Reader = nil
140076	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
140077	if err != nil {
140078		return nil, err
140079	}
140080	reqHeaders.Set("Content-Type", "application/json")
140081	c.urlParams_.Set("alt", alt)
140082	c.urlParams_.Set("prettyPrint", "false")
140083	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}")
140084	urls += "?" + c.urlParams_.Encode()
140085	req, err := http.NewRequest("PATCH", urls, body)
140086	if err != nil {
140087		return nil, err
140088	}
140089	req.Header = reqHeaders
140090	googleapi.Expand(req.URL, map[string]string{
140091		"project": c.project,
140092		"region":  c.region,
140093		"urlMap":  c.urlMap,
140094	})
140095	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140096}
140097
140098// Do executes the "compute.regionUrlMaps.patch" call.
140099// Exactly one of *Operation or error will be non-nil. Any non-2xx
140100// status code is an error. Response headers are in either
140101// *Operation.ServerResponse.Header or (if a response was returned at
140102// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
140103// to check whether the returned error was because
140104// http.StatusNotModified was returned.
140105func (c *RegionUrlMapsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
140106	gensupport.SetOptions(c.urlParams_, opts...)
140107	res, err := c.doRequest("json")
140108	if res != nil && res.StatusCode == http.StatusNotModified {
140109		if res.Body != nil {
140110			res.Body.Close()
140111		}
140112		return nil, &googleapi.Error{
140113			Code:   res.StatusCode,
140114			Header: res.Header,
140115		}
140116	}
140117	if err != nil {
140118		return nil, err
140119	}
140120	defer googleapi.CloseBody(res)
140121	if err := googleapi.CheckResponse(res); err != nil {
140122		return nil, err
140123	}
140124	ret := &Operation{
140125		ServerResponse: googleapi.ServerResponse{
140126			Header:         res.Header,
140127			HTTPStatusCode: res.StatusCode,
140128		},
140129	}
140130	target := &ret
140131	if err := gensupport.DecodeResponse(target, res); err != nil {
140132		return nil, err
140133	}
140134	return ret, nil
140135	// {
140136	//   "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.",
140137	//   "httpMethod": "PATCH",
140138	//   "id": "compute.regionUrlMaps.patch",
140139	//   "parameterOrder": [
140140	//     "project",
140141	//     "region",
140142	//     "urlMap"
140143	//   ],
140144	//   "parameters": {
140145	//     "project": {
140146	//       "description": "Project ID for this request.",
140147	//       "location": "path",
140148	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140149	//       "required": true,
140150	//       "type": "string"
140151	//     },
140152	//     "region": {
140153	//       "description": "Name of the region scoping this request.",
140154	//       "location": "path",
140155	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140156	//       "required": true,
140157	//       "type": "string"
140158	//     },
140159	//     "requestId": {
140160	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
140161	//       "location": "query",
140162	//       "type": "string"
140163	//     },
140164	//     "urlMap": {
140165	//       "description": "Name of the UrlMap resource to patch.",
140166	//       "location": "path",
140167	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140168	//       "required": true,
140169	//       "type": "string"
140170	//     }
140171	//   },
140172	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}",
140173	//   "request": {
140174	//     "$ref": "UrlMap"
140175	//   },
140176	//   "response": {
140177	//     "$ref": "Operation"
140178	//   },
140179	//   "scopes": [
140180	//     "https://www.googleapis.com/auth/cloud-platform",
140181	//     "https://www.googleapis.com/auth/compute"
140182	//   ]
140183	// }
140184
140185}
140186
140187// method id "compute.regionUrlMaps.testIamPermissions":
140188
140189type RegionUrlMapsTestIamPermissionsCall struct {
140190	s                      *Service
140191	project                string
140192	region                 string
140193	resource               string
140194	testpermissionsrequest *TestPermissionsRequest
140195	urlParams_             gensupport.URLParams
140196	ctx_                   context.Context
140197	header_                http.Header
140198}
140199
140200// TestIamPermissions: Returns permissions that a caller has on the
140201// specified resource.
140202func (r *RegionUrlMapsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionUrlMapsTestIamPermissionsCall {
140203	c := &RegionUrlMapsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140204	c.project = project
140205	c.region = region
140206	c.resource = resource
140207	c.testpermissionsrequest = testpermissionsrequest
140208	return c
140209}
140210
140211// Fields allows partial responses to be retrieved. See
140212// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140213// for more information.
140214func (c *RegionUrlMapsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionUrlMapsTestIamPermissionsCall {
140215	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140216	return c
140217}
140218
140219// Context sets the context to be used in this call's Do method. Any
140220// pending HTTP request will be aborted if the provided context is
140221// canceled.
140222func (c *RegionUrlMapsTestIamPermissionsCall) Context(ctx context.Context) *RegionUrlMapsTestIamPermissionsCall {
140223	c.ctx_ = ctx
140224	return c
140225}
140226
140227// Header returns an http.Header that can be modified by the caller to
140228// add HTTP headers to the request.
140229func (c *RegionUrlMapsTestIamPermissionsCall) Header() http.Header {
140230	if c.header_ == nil {
140231		c.header_ = make(http.Header)
140232	}
140233	return c.header_
140234}
140235
140236func (c *RegionUrlMapsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
140237	reqHeaders := make(http.Header)
140238	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
140239	for k, v := range c.header_ {
140240		reqHeaders[k] = v
140241	}
140242	reqHeaders.Set("User-Agent", c.s.userAgent())
140243	var body io.Reader = nil
140244	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
140245	if err != nil {
140246		return nil, err
140247	}
140248	reqHeaders.Set("Content-Type", "application/json")
140249	c.urlParams_.Set("alt", alt)
140250	c.urlParams_.Set("prettyPrint", "false")
140251	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{resource}/testIamPermissions")
140252	urls += "?" + c.urlParams_.Encode()
140253	req, err := http.NewRequest("POST", urls, body)
140254	if err != nil {
140255		return nil, err
140256	}
140257	req.Header = reqHeaders
140258	googleapi.Expand(req.URL, map[string]string{
140259		"project":  c.project,
140260		"region":   c.region,
140261		"resource": c.resource,
140262	})
140263	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140264}
140265
140266// Do executes the "compute.regionUrlMaps.testIamPermissions" call.
140267// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
140268// non-2xx status code is an error. Response headers are in either
140269// *TestPermissionsResponse.ServerResponse.Header or (if a response was
140270// returned at all) in error.(*googleapi.Error).Header. Use
140271// googleapi.IsNotModified to check whether the returned error was
140272// because http.StatusNotModified was returned.
140273func (c *RegionUrlMapsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
140274	gensupport.SetOptions(c.urlParams_, opts...)
140275	res, err := c.doRequest("json")
140276	if res != nil && res.StatusCode == http.StatusNotModified {
140277		if res.Body != nil {
140278			res.Body.Close()
140279		}
140280		return nil, &googleapi.Error{
140281			Code:   res.StatusCode,
140282			Header: res.Header,
140283		}
140284	}
140285	if err != nil {
140286		return nil, err
140287	}
140288	defer googleapi.CloseBody(res)
140289	if err := googleapi.CheckResponse(res); err != nil {
140290		return nil, err
140291	}
140292	ret := &TestPermissionsResponse{
140293		ServerResponse: googleapi.ServerResponse{
140294			Header:         res.Header,
140295			HTTPStatusCode: res.StatusCode,
140296		},
140297	}
140298	target := &ret
140299	if err := gensupport.DecodeResponse(target, res); err != nil {
140300		return nil, err
140301	}
140302	return ret, nil
140303	// {
140304	//   "description": "Returns permissions that a caller has on the specified resource.",
140305	//   "httpMethod": "POST",
140306	//   "id": "compute.regionUrlMaps.testIamPermissions",
140307	//   "parameterOrder": [
140308	//     "project",
140309	//     "region",
140310	//     "resource"
140311	//   ],
140312	//   "parameters": {
140313	//     "project": {
140314	//       "description": "Project ID for this request.",
140315	//       "location": "path",
140316	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140317	//       "required": true,
140318	//       "type": "string"
140319	//     },
140320	//     "region": {
140321	//       "description": "The name of the region for this request.",
140322	//       "location": "path",
140323	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140324	//       "required": true,
140325	//       "type": "string"
140326	//     },
140327	//     "resource": {
140328	//       "description": "Name or id of the resource for this request.",
140329	//       "location": "path",
140330	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140331	//       "required": true,
140332	//       "type": "string"
140333	//     }
140334	//   },
140335	//   "path": "{project}/regions/{region}/urlMaps/{resource}/testIamPermissions",
140336	//   "request": {
140337	//     "$ref": "TestPermissionsRequest"
140338	//   },
140339	//   "response": {
140340	//     "$ref": "TestPermissionsResponse"
140341	//   },
140342	//   "scopes": [
140343	//     "https://www.googleapis.com/auth/cloud-platform",
140344	//     "https://www.googleapis.com/auth/compute",
140345	//     "https://www.googleapis.com/auth/compute.readonly"
140346	//   ]
140347	// }
140348
140349}
140350
140351// method id "compute.regionUrlMaps.update":
140352
140353type RegionUrlMapsUpdateCall struct {
140354	s          *Service
140355	project    string
140356	region     string
140357	urlMap     string
140358	urlmap     *UrlMap
140359	urlParams_ gensupport.URLParams
140360	ctx_       context.Context
140361	header_    http.Header
140362}
140363
140364// Update: Updates the specified UrlMap resource with the data included
140365// in the request.
140366func (r *RegionUrlMapsService) Update(project string, region string, urlMap string, urlmap *UrlMap) *RegionUrlMapsUpdateCall {
140367	c := &RegionUrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140368	c.project = project
140369	c.region = region
140370	c.urlMap = urlMap
140371	c.urlmap = urlmap
140372	return c
140373}
140374
140375// RequestId sets the optional parameter "requestId": begin_interface:
140376// MixerMutationRequestBuilder Request ID to support idempotency.
140377func (c *RegionUrlMapsUpdateCall) RequestId(requestId string) *RegionUrlMapsUpdateCall {
140378	c.urlParams_.Set("requestId", requestId)
140379	return c
140380}
140381
140382// Fields allows partial responses to be retrieved. See
140383// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140384// for more information.
140385func (c *RegionUrlMapsUpdateCall) Fields(s ...googleapi.Field) *RegionUrlMapsUpdateCall {
140386	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140387	return c
140388}
140389
140390// Context sets the context to be used in this call's Do method. Any
140391// pending HTTP request will be aborted if the provided context is
140392// canceled.
140393func (c *RegionUrlMapsUpdateCall) Context(ctx context.Context) *RegionUrlMapsUpdateCall {
140394	c.ctx_ = ctx
140395	return c
140396}
140397
140398// Header returns an http.Header that can be modified by the caller to
140399// add HTTP headers to the request.
140400func (c *RegionUrlMapsUpdateCall) Header() http.Header {
140401	if c.header_ == nil {
140402		c.header_ = make(http.Header)
140403	}
140404	return c.header_
140405}
140406
140407func (c *RegionUrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) {
140408	reqHeaders := make(http.Header)
140409	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
140410	for k, v := range c.header_ {
140411		reqHeaders[k] = v
140412	}
140413	reqHeaders.Set("User-Agent", c.s.userAgent())
140414	var body io.Reader = nil
140415	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
140416	if err != nil {
140417		return nil, err
140418	}
140419	reqHeaders.Set("Content-Type", "application/json")
140420	c.urlParams_.Set("alt", alt)
140421	c.urlParams_.Set("prettyPrint", "false")
140422	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}")
140423	urls += "?" + c.urlParams_.Encode()
140424	req, err := http.NewRequest("PUT", urls, body)
140425	if err != nil {
140426		return nil, err
140427	}
140428	req.Header = reqHeaders
140429	googleapi.Expand(req.URL, map[string]string{
140430		"project": c.project,
140431		"region":  c.region,
140432		"urlMap":  c.urlMap,
140433	})
140434	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140435}
140436
140437// Do executes the "compute.regionUrlMaps.update" call.
140438// Exactly one of *Operation or error will be non-nil. Any non-2xx
140439// status code is an error. Response headers are in either
140440// *Operation.ServerResponse.Header or (if a response was returned at
140441// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
140442// to check whether the returned error was because
140443// http.StatusNotModified was returned.
140444func (c *RegionUrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
140445	gensupport.SetOptions(c.urlParams_, opts...)
140446	res, err := c.doRequest("json")
140447	if res != nil && res.StatusCode == http.StatusNotModified {
140448		if res.Body != nil {
140449			res.Body.Close()
140450		}
140451		return nil, &googleapi.Error{
140452			Code:   res.StatusCode,
140453			Header: res.Header,
140454		}
140455	}
140456	if err != nil {
140457		return nil, err
140458	}
140459	defer googleapi.CloseBody(res)
140460	if err := googleapi.CheckResponse(res); err != nil {
140461		return nil, err
140462	}
140463	ret := &Operation{
140464		ServerResponse: googleapi.ServerResponse{
140465			Header:         res.Header,
140466			HTTPStatusCode: res.StatusCode,
140467		},
140468	}
140469	target := &ret
140470	if err := gensupport.DecodeResponse(target, res); err != nil {
140471		return nil, err
140472	}
140473	return ret, nil
140474	// {
140475	//   "description": "Updates the specified UrlMap resource with the data included in the request.",
140476	//   "httpMethod": "PUT",
140477	//   "id": "compute.regionUrlMaps.update",
140478	//   "parameterOrder": [
140479	//     "project",
140480	//     "region",
140481	//     "urlMap"
140482	//   ],
140483	//   "parameters": {
140484	//     "project": {
140485	//       "description": "Project ID for this request.",
140486	//       "location": "path",
140487	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140488	//       "required": true,
140489	//       "type": "string"
140490	//     },
140491	//     "region": {
140492	//       "description": "Name of the region scoping this request.",
140493	//       "location": "path",
140494	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140495	//       "required": true,
140496	//       "type": "string"
140497	//     },
140498	//     "requestId": {
140499	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
140500	//       "location": "query",
140501	//       "type": "string"
140502	//     },
140503	//     "urlMap": {
140504	//       "description": "Name of the UrlMap resource to update.",
140505	//       "location": "path",
140506	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140507	//       "required": true,
140508	//       "type": "string"
140509	//     }
140510	//   },
140511	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}",
140512	//   "request": {
140513	//     "$ref": "UrlMap"
140514	//   },
140515	//   "response": {
140516	//     "$ref": "Operation"
140517	//   },
140518	//   "scopes": [
140519	//     "https://www.googleapis.com/auth/cloud-platform",
140520	//     "https://www.googleapis.com/auth/compute"
140521	//   ]
140522	// }
140523
140524}
140525
140526// method id "compute.regionUrlMaps.validate":
140527
140528type RegionUrlMapsValidateCall struct {
140529	s                            *Service
140530	project                      string
140531	region                       string
140532	urlMap                       string
140533	regionurlmapsvalidaterequest *RegionUrlMapsValidateRequest
140534	urlParams_                   gensupport.URLParams
140535	ctx_                         context.Context
140536	header_                      http.Header
140537}
140538
140539// Validate: Runs static validation for the UrlMap. In particular, the
140540// tests of the provided UrlMap will be run. Calling this method does
140541// NOT create the UrlMap.
140542func (r *RegionUrlMapsService) Validate(project string, region string, urlMap string, regionurlmapsvalidaterequest *RegionUrlMapsValidateRequest) *RegionUrlMapsValidateCall {
140543	c := &RegionUrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140544	c.project = project
140545	c.region = region
140546	c.urlMap = urlMap
140547	c.regionurlmapsvalidaterequest = regionurlmapsvalidaterequest
140548	return c
140549}
140550
140551// Fields allows partial responses to be retrieved. See
140552// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140553// for more information.
140554func (c *RegionUrlMapsValidateCall) Fields(s ...googleapi.Field) *RegionUrlMapsValidateCall {
140555	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140556	return c
140557}
140558
140559// Context sets the context to be used in this call's Do method. Any
140560// pending HTTP request will be aborted if the provided context is
140561// canceled.
140562func (c *RegionUrlMapsValidateCall) Context(ctx context.Context) *RegionUrlMapsValidateCall {
140563	c.ctx_ = ctx
140564	return c
140565}
140566
140567// Header returns an http.Header that can be modified by the caller to
140568// add HTTP headers to the request.
140569func (c *RegionUrlMapsValidateCall) Header() http.Header {
140570	if c.header_ == nil {
140571		c.header_ = make(http.Header)
140572	}
140573	return c.header_
140574}
140575
140576func (c *RegionUrlMapsValidateCall) doRequest(alt string) (*http.Response, error) {
140577	reqHeaders := make(http.Header)
140578	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
140579	for k, v := range c.header_ {
140580		reqHeaders[k] = v
140581	}
140582	reqHeaders.Set("User-Agent", c.s.userAgent())
140583	var body io.Reader = nil
140584	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionurlmapsvalidaterequest)
140585	if err != nil {
140586		return nil, err
140587	}
140588	reqHeaders.Set("Content-Type", "application/json")
140589	c.urlParams_.Set("alt", alt)
140590	c.urlParams_.Set("prettyPrint", "false")
140591	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}/validate")
140592	urls += "?" + c.urlParams_.Encode()
140593	req, err := http.NewRequest("POST", urls, body)
140594	if err != nil {
140595		return nil, err
140596	}
140597	req.Header = reqHeaders
140598	googleapi.Expand(req.URL, map[string]string{
140599		"project": c.project,
140600		"region":  c.region,
140601		"urlMap":  c.urlMap,
140602	})
140603	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140604}
140605
140606// Do executes the "compute.regionUrlMaps.validate" call.
140607// Exactly one of *UrlMapsValidateResponse or error will be non-nil. Any
140608// non-2xx status code is an error. Response headers are in either
140609// *UrlMapsValidateResponse.ServerResponse.Header or (if a response was
140610// returned at all) in error.(*googleapi.Error).Header. Use
140611// googleapi.IsNotModified to check whether the returned error was
140612// because http.StatusNotModified was returned.
140613func (c *RegionUrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, error) {
140614	gensupport.SetOptions(c.urlParams_, opts...)
140615	res, err := c.doRequest("json")
140616	if res != nil && res.StatusCode == http.StatusNotModified {
140617		if res.Body != nil {
140618			res.Body.Close()
140619		}
140620		return nil, &googleapi.Error{
140621			Code:   res.StatusCode,
140622			Header: res.Header,
140623		}
140624	}
140625	if err != nil {
140626		return nil, err
140627	}
140628	defer googleapi.CloseBody(res)
140629	if err := googleapi.CheckResponse(res); err != nil {
140630		return nil, err
140631	}
140632	ret := &UrlMapsValidateResponse{
140633		ServerResponse: googleapi.ServerResponse{
140634			Header:         res.Header,
140635			HTTPStatusCode: res.StatusCode,
140636		},
140637	}
140638	target := &ret
140639	if err := gensupport.DecodeResponse(target, res); err != nil {
140640		return nil, err
140641	}
140642	return ret, nil
140643	// {
140644	//   "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.",
140645	//   "httpMethod": "POST",
140646	//   "id": "compute.regionUrlMaps.validate",
140647	//   "parameterOrder": [
140648	//     "project",
140649	//     "region",
140650	//     "urlMap"
140651	//   ],
140652	//   "parameters": {
140653	//     "project": {
140654	//       "description": "Project ID for this request.",
140655	//       "location": "path",
140656	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140657	//       "required": true,
140658	//       "type": "string"
140659	//     },
140660	//     "region": {
140661	//       "description": "Name of the region scoping this request.",
140662	//       "location": "path",
140663	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140664	//       "required": true,
140665	//       "type": "string"
140666	//     },
140667	//     "urlMap": {
140668	//       "description": "Name of the UrlMap resource to be validated as.",
140669	//       "location": "path",
140670	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140671	//       "required": true,
140672	//       "type": "string"
140673	//     }
140674	//   },
140675	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}/validate",
140676	//   "request": {
140677	//     "$ref": "RegionUrlMapsValidateRequest"
140678	//   },
140679	//   "response": {
140680	//     "$ref": "UrlMapsValidateResponse"
140681	//   },
140682	//   "scopes": [
140683	//     "https://www.googleapis.com/auth/cloud-platform",
140684	//     "https://www.googleapis.com/auth/compute"
140685	//   ]
140686	// }
140687
140688}
140689
140690// method id "compute.regions.get":
140691
140692type RegionsGetCall struct {
140693	s            *Service
140694	project      string
140695	region       string
140696	urlParams_   gensupport.URLParams
140697	ifNoneMatch_ string
140698	ctx_         context.Context
140699	header_      http.Header
140700}
140701
140702// Get: Returns the specified Region resource. Gets a list of available
140703// regions by making a list() request.
140704// For details, see https://cloud.google.com/compute/docs/reference/latest/regions/get
140705func (r *RegionsService) Get(project string, region string) *RegionsGetCall {
140706	c := &RegionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140707	c.project = project
140708	c.region = region
140709	return c
140710}
140711
140712// Fields allows partial responses to be retrieved. See
140713// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140714// for more information.
140715func (c *RegionsGetCall) Fields(s ...googleapi.Field) *RegionsGetCall {
140716	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140717	return c
140718}
140719
140720// IfNoneMatch sets the optional parameter which makes the operation
140721// fail if the object's ETag matches the given value. This is useful for
140722// getting updates only after the object has changed since the last
140723// request. Use googleapi.IsNotModified to check whether the response
140724// error from Do is the result of In-None-Match.
140725func (c *RegionsGetCall) IfNoneMatch(entityTag string) *RegionsGetCall {
140726	c.ifNoneMatch_ = entityTag
140727	return c
140728}
140729
140730// Context sets the context to be used in this call's Do method. Any
140731// pending HTTP request will be aborted if the provided context is
140732// canceled.
140733func (c *RegionsGetCall) Context(ctx context.Context) *RegionsGetCall {
140734	c.ctx_ = ctx
140735	return c
140736}
140737
140738// Header returns an http.Header that can be modified by the caller to
140739// add HTTP headers to the request.
140740func (c *RegionsGetCall) Header() http.Header {
140741	if c.header_ == nil {
140742		c.header_ = make(http.Header)
140743	}
140744	return c.header_
140745}
140746
140747func (c *RegionsGetCall) doRequest(alt string) (*http.Response, error) {
140748	reqHeaders := make(http.Header)
140749	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
140750	for k, v := range c.header_ {
140751		reqHeaders[k] = v
140752	}
140753	reqHeaders.Set("User-Agent", c.s.userAgent())
140754	if c.ifNoneMatch_ != "" {
140755		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
140756	}
140757	var body io.Reader = nil
140758	c.urlParams_.Set("alt", alt)
140759	c.urlParams_.Set("prettyPrint", "false")
140760	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}")
140761	urls += "?" + c.urlParams_.Encode()
140762	req, err := http.NewRequest("GET", urls, body)
140763	if err != nil {
140764		return nil, err
140765	}
140766	req.Header = reqHeaders
140767	googleapi.Expand(req.URL, map[string]string{
140768		"project": c.project,
140769		"region":  c.region,
140770	})
140771	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140772}
140773
140774// Do executes the "compute.regions.get" call.
140775// Exactly one of *Region or error will be non-nil. Any non-2xx status
140776// code is an error. Response headers are in either
140777// *Region.ServerResponse.Header or (if a response was returned at all)
140778// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
140779// check whether the returned error was because http.StatusNotModified
140780// was returned.
140781func (c *RegionsGetCall) Do(opts ...googleapi.CallOption) (*Region, error) {
140782	gensupport.SetOptions(c.urlParams_, opts...)
140783	res, err := c.doRequest("json")
140784	if res != nil && res.StatusCode == http.StatusNotModified {
140785		if res.Body != nil {
140786			res.Body.Close()
140787		}
140788		return nil, &googleapi.Error{
140789			Code:   res.StatusCode,
140790			Header: res.Header,
140791		}
140792	}
140793	if err != nil {
140794		return nil, err
140795	}
140796	defer googleapi.CloseBody(res)
140797	if err := googleapi.CheckResponse(res); err != nil {
140798		return nil, err
140799	}
140800	ret := &Region{
140801		ServerResponse: googleapi.ServerResponse{
140802			Header:         res.Header,
140803			HTTPStatusCode: res.StatusCode,
140804		},
140805	}
140806	target := &ret
140807	if err := gensupport.DecodeResponse(target, res); err != nil {
140808		return nil, err
140809	}
140810	return ret, nil
140811	// {
140812	//   "description": "Returns the specified Region resource. Gets a list of available regions by making a list() request.",
140813	//   "httpMethod": "GET",
140814	//   "id": "compute.regions.get",
140815	//   "parameterOrder": [
140816	//     "project",
140817	//     "region"
140818	//   ],
140819	//   "parameters": {
140820	//     "project": {
140821	//       "description": "Project ID for this request.",
140822	//       "location": "path",
140823	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140824	//       "required": true,
140825	//       "type": "string"
140826	//     },
140827	//     "region": {
140828	//       "description": "Name of the region resource to return.",
140829	//       "location": "path",
140830	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140831	//       "required": true,
140832	//       "type": "string"
140833	//     }
140834	//   },
140835	//   "path": "{project}/regions/{region}",
140836	//   "response": {
140837	//     "$ref": "Region"
140838	//   },
140839	//   "scopes": [
140840	//     "https://www.googleapis.com/auth/cloud-platform",
140841	//     "https://www.googleapis.com/auth/compute",
140842	//     "https://www.googleapis.com/auth/compute.readonly"
140843	//   ]
140844	// }
140845
140846}
140847
140848// method id "compute.regions.list":
140849
140850type RegionsListCall struct {
140851	s            *Service
140852	project      string
140853	urlParams_   gensupport.URLParams
140854	ifNoneMatch_ string
140855	ctx_         context.Context
140856	header_      http.Header
140857}
140858
140859// List: Retrieves the list of region resources available to the
140860// specified project.
140861// For details, see https://cloud.google.com/compute/docs/reference/latest/regions/list
140862func (r *RegionsService) List(project string) *RegionsListCall {
140863	c := &RegionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140864	c.project = project
140865	return c
140866}
140867
140868// Filter sets the optional parameter "filter": A filter expression that
140869// filters resources listed in the response. The expression must specify
140870// the field name, a comparison operator, and the value that you want to
140871// use for filtering. The value must be a string, a number, or a
140872// boolean. The comparison operator must be either =, !=, >, or <.
140873//
140874// For example, if you are filtering Compute Engine instances, you can
140875// exclude instances named example-instance by specifying name !=
140876// example-instance.
140877//
140878// You can also filter nested fields. For example, you could specify
140879// scheduling.automaticRestart = false to include instances only if they
140880// are not scheduled for automatic restarts. You can use filtering on
140881// nested fields to filter based on resource labels.
140882//
140883// To filter on multiple expressions, provide each separate expression
140884// within parentheses. For example, (scheduling.automaticRestart = true)
140885// (cpuPlatform = "Intel Skylake"). By default, each expression is an
140886// AND expression. However, you can include AND and OR expressions
140887// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
140888// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
140889// true).
140890func (c *RegionsListCall) Filter(filter string) *RegionsListCall {
140891	c.urlParams_.Set("filter", filter)
140892	return c
140893}
140894
140895// MaxResults sets the optional parameter "maxResults": The maximum
140896// number of results per page that should be returned. If the number of
140897// available results is larger than maxResults, Compute Engine returns a
140898// nextPageToken that can be used to get the next page of results in
140899// subsequent list requests. Acceptable values are 0 to 500, inclusive.
140900// (Default: 500)
140901func (c *RegionsListCall) MaxResults(maxResults int64) *RegionsListCall {
140902	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
140903	return c
140904}
140905
140906// OrderBy sets the optional parameter "orderBy": Sorts list results by
140907// a certain order. By default, results are returned in alphanumerical
140908// order based on the resource name.
140909//
140910// You can also sort results in descending order based on the creation
140911// timestamp using orderBy="creationTimestamp desc". This sorts results
140912// based on the creationTimestamp field in reverse chronological order
140913// (newest result first). Use this to sort resources like operations so
140914// that the newest operation is returned first.
140915//
140916// Currently, only sorting by name or creationTimestamp desc is
140917// supported.
140918func (c *RegionsListCall) OrderBy(orderBy string) *RegionsListCall {
140919	c.urlParams_.Set("orderBy", orderBy)
140920	return c
140921}
140922
140923// PageToken sets the optional parameter "pageToken": Specifies a page
140924// token to use. Set pageToken to the nextPageToken returned by a
140925// previous list request to get the next page of results.
140926func (c *RegionsListCall) PageToken(pageToken string) *RegionsListCall {
140927	c.urlParams_.Set("pageToken", pageToken)
140928	return c
140929}
140930
140931// Fields allows partial responses to be retrieved. See
140932// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140933// for more information.
140934func (c *RegionsListCall) Fields(s ...googleapi.Field) *RegionsListCall {
140935	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140936	return c
140937}
140938
140939// IfNoneMatch sets the optional parameter which makes the operation
140940// fail if the object's ETag matches the given value. This is useful for
140941// getting updates only after the object has changed since the last
140942// request. Use googleapi.IsNotModified to check whether the response
140943// error from Do is the result of In-None-Match.
140944func (c *RegionsListCall) IfNoneMatch(entityTag string) *RegionsListCall {
140945	c.ifNoneMatch_ = entityTag
140946	return c
140947}
140948
140949// Context sets the context to be used in this call's Do method. Any
140950// pending HTTP request will be aborted if the provided context is
140951// canceled.
140952func (c *RegionsListCall) Context(ctx context.Context) *RegionsListCall {
140953	c.ctx_ = ctx
140954	return c
140955}
140956
140957// Header returns an http.Header that can be modified by the caller to
140958// add HTTP headers to the request.
140959func (c *RegionsListCall) Header() http.Header {
140960	if c.header_ == nil {
140961		c.header_ = make(http.Header)
140962	}
140963	return c.header_
140964}
140965
140966func (c *RegionsListCall) doRequest(alt string) (*http.Response, error) {
140967	reqHeaders := make(http.Header)
140968	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
140969	for k, v := range c.header_ {
140970		reqHeaders[k] = v
140971	}
140972	reqHeaders.Set("User-Agent", c.s.userAgent())
140973	if c.ifNoneMatch_ != "" {
140974		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
140975	}
140976	var body io.Reader = nil
140977	c.urlParams_.Set("alt", alt)
140978	c.urlParams_.Set("prettyPrint", "false")
140979	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions")
140980	urls += "?" + c.urlParams_.Encode()
140981	req, err := http.NewRequest("GET", urls, body)
140982	if err != nil {
140983		return nil, err
140984	}
140985	req.Header = reqHeaders
140986	googleapi.Expand(req.URL, map[string]string{
140987		"project": c.project,
140988	})
140989	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140990}
140991
140992// Do executes the "compute.regions.list" call.
140993// Exactly one of *RegionList or error will be non-nil. Any non-2xx
140994// status code is an error. Response headers are in either
140995// *RegionList.ServerResponse.Header or (if a response was returned at
140996// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
140997// to check whether the returned error was because
140998// http.StatusNotModified was returned.
140999func (c *RegionsListCall) Do(opts ...googleapi.CallOption) (*RegionList, error) {
141000	gensupport.SetOptions(c.urlParams_, opts...)
141001	res, err := c.doRequest("json")
141002	if res != nil && res.StatusCode == http.StatusNotModified {
141003		if res.Body != nil {
141004			res.Body.Close()
141005		}
141006		return nil, &googleapi.Error{
141007			Code:   res.StatusCode,
141008			Header: res.Header,
141009		}
141010	}
141011	if err != nil {
141012		return nil, err
141013	}
141014	defer googleapi.CloseBody(res)
141015	if err := googleapi.CheckResponse(res); err != nil {
141016		return nil, err
141017	}
141018	ret := &RegionList{
141019		ServerResponse: googleapi.ServerResponse{
141020			Header:         res.Header,
141021			HTTPStatusCode: res.StatusCode,
141022		},
141023	}
141024	target := &ret
141025	if err := gensupport.DecodeResponse(target, res); err != nil {
141026		return nil, err
141027	}
141028	return ret, nil
141029	// {
141030	//   "description": "Retrieves the list of region resources available to the specified project.",
141031	//   "httpMethod": "GET",
141032	//   "id": "compute.regions.list",
141033	//   "parameterOrder": [
141034	//     "project"
141035	//   ],
141036	//   "parameters": {
141037	//     "filter": {
141038	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
141039	//       "location": "query",
141040	//       "type": "string"
141041	//     },
141042	//     "maxResults": {
141043	//       "default": "500",
141044	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
141045	//       "format": "uint32",
141046	//       "location": "query",
141047	//       "minimum": "0",
141048	//       "type": "integer"
141049	//     },
141050	//     "orderBy": {
141051	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
141052	//       "location": "query",
141053	//       "type": "string"
141054	//     },
141055	//     "pageToken": {
141056	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
141057	//       "location": "query",
141058	//       "type": "string"
141059	//     },
141060	//     "project": {
141061	//       "description": "Project ID for this request.",
141062	//       "location": "path",
141063	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141064	//       "required": true,
141065	//       "type": "string"
141066	//     }
141067	//   },
141068	//   "path": "{project}/regions",
141069	//   "response": {
141070	//     "$ref": "RegionList"
141071	//   },
141072	//   "scopes": [
141073	//     "https://www.googleapis.com/auth/cloud-platform",
141074	//     "https://www.googleapis.com/auth/compute",
141075	//     "https://www.googleapis.com/auth/compute.readonly"
141076	//   ]
141077	// }
141078
141079}
141080
141081// Pages invokes f for each page of results.
141082// A non-nil error returned from f will halt the iteration.
141083// The provided context supersedes any context provided to the Context method.
141084func (c *RegionsListCall) Pages(ctx context.Context, f func(*RegionList) error) error {
141085	c.ctx_ = ctx
141086	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
141087	for {
141088		x, err := c.Do()
141089		if err != nil {
141090			return err
141091		}
141092		if err := f(x); err != nil {
141093			return err
141094		}
141095		if x.NextPageToken == "" {
141096			return nil
141097		}
141098		c.PageToken(x.NextPageToken)
141099	}
141100}
141101
141102// method id "compute.reservations.aggregatedList":
141103
141104type ReservationsAggregatedListCall struct {
141105	s            *Service
141106	project      string
141107	urlParams_   gensupport.URLParams
141108	ifNoneMatch_ string
141109	ctx_         context.Context
141110	header_      http.Header
141111}
141112
141113// AggregatedList: Retrieves an aggregated list of reservations.
141114func (r *ReservationsService) AggregatedList(project string) *ReservationsAggregatedListCall {
141115	c := &ReservationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141116	c.project = project
141117	return c
141118}
141119
141120// Filter sets the optional parameter "filter": A filter expression that
141121// filters resources listed in the response. The expression must specify
141122// the field name, a comparison operator, and the value that you want to
141123// use for filtering. The value must be a string, a number, or a
141124// boolean. The comparison operator must be either =, !=, >, or <.
141125//
141126// For example, if you are filtering Compute Engine instances, you can
141127// exclude instances named example-instance by specifying name !=
141128// example-instance.
141129//
141130// You can also filter nested fields. For example, you could specify
141131// scheduling.automaticRestart = false to include instances only if they
141132// are not scheduled for automatic restarts. You can use filtering on
141133// nested fields to filter based on resource labels.
141134//
141135// To filter on multiple expressions, provide each separate expression
141136// within parentheses. For example, (scheduling.automaticRestart = true)
141137// (cpuPlatform = "Intel Skylake"). By default, each expression is an
141138// AND expression. However, you can include AND and OR expressions
141139// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
141140// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
141141// true).
141142func (c *ReservationsAggregatedListCall) Filter(filter string) *ReservationsAggregatedListCall {
141143	c.urlParams_.Set("filter", filter)
141144	return c
141145}
141146
141147// IncludeAllScopes sets the optional parameter "includeAllScopes":
141148// Indicates whether every visible scope for each scope type (zone,
141149// region, global) should be included in the response. For new resource
141150// types added after this field, the flag has no effect as new resource
141151// types will always include every visible scope for each scope type in
141152// response. For resource types which predate this field, if this flag
141153// is omitted or false, only scopes of the scope types where the
141154// resource type is expected to be found will be included.
141155func (c *ReservationsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ReservationsAggregatedListCall {
141156	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
141157	return c
141158}
141159
141160// MaxResults sets the optional parameter "maxResults": The maximum
141161// number of results per page that should be returned. If the number of
141162// available results is larger than maxResults, Compute Engine returns a
141163// nextPageToken that can be used to get the next page of results in
141164// subsequent list requests. Acceptable values are 0 to 500, inclusive.
141165// (Default: 500)
141166func (c *ReservationsAggregatedListCall) MaxResults(maxResults int64) *ReservationsAggregatedListCall {
141167	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
141168	return c
141169}
141170
141171// OrderBy sets the optional parameter "orderBy": Sorts list results by
141172// a certain order. By default, results are returned in alphanumerical
141173// order based on the resource name.
141174//
141175// You can also sort results in descending order based on the creation
141176// timestamp using orderBy="creationTimestamp desc". This sorts results
141177// based on the creationTimestamp field in reverse chronological order
141178// (newest result first). Use this to sort resources like operations so
141179// that the newest operation is returned first.
141180//
141181// Currently, only sorting by name or creationTimestamp desc is
141182// supported.
141183func (c *ReservationsAggregatedListCall) OrderBy(orderBy string) *ReservationsAggregatedListCall {
141184	c.urlParams_.Set("orderBy", orderBy)
141185	return c
141186}
141187
141188// PageToken sets the optional parameter "pageToken": Specifies a page
141189// token to use. Set pageToken to the nextPageToken returned by a
141190// previous list request to get the next page of results.
141191func (c *ReservationsAggregatedListCall) PageToken(pageToken string) *ReservationsAggregatedListCall {
141192	c.urlParams_.Set("pageToken", pageToken)
141193	return c
141194}
141195
141196// Fields allows partial responses to be retrieved. See
141197// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141198// for more information.
141199func (c *ReservationsAggregatedListCall) Fields(s ...googleapi.Field) *ReservationsAggregatedListCall {
141200	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141201	return c
141202}
141203
141204// IfNoneMatch sets the optional parameter which makes the operation
141205// fail if the object's ETag matches the given value. This is useful for
141206// getting updates only after the object has changed since the last
141207// request. Use googleapi.IsNotModified to check whether the response
141208// error from Do is the result of In-None-Match.
141209func (c *ReservationsAggregatedListCall) IfNoneMatch(entityTag string) *ReservationsAggregatedListCall {
141210	c.ifNoneMatch_ = entityTag
141211	return c
141212}
141213
141214// Context sets the context to be used in this call's Do method. Any
141215// pending HTTP request will be aborted if the provided context is
141216// canceled.
141217func (c *ReservationsAggregatedListCall) Context(ctx context.Context) *ReservationsAggregatedListCall {
141218	c.ctx_ = ctx
141219	return c
141220}
141221
141222// Header returns an http.Header that can be modified by the caller to
141223// add HTTP headers to the request.
141224func (c *ReservationsAggregatedListCall) Header() http.Header {
141225	if c.header_ == nil {
141226		c.header_ = make(http.Header)
141227	}
141228	return c.header_
141229}
141230
141231func (c *ReservationsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
141232	reqHeaders := make(http.Header)
141233	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
141234	for k, v := range c.header_ {
141235		reqHeaders[k] = v
141236	}
141237	reqHeaders.Set("User-Agent", c.s.userAgent())
141238	if c.ifNoneMatch_ != "" {
141239		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
141240	}
141241	var body io.Reader = nil
141242	c.urlParams_.Set("alt", alt)
141243	c.urlParams_.Set("prettyPrint", "false")
141244	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/reservations")
141245	urls += "?" + c.urlParams_.Encode()
141246	req, err := http.NewRequest("GET", urls, body)
141247	if err != nil {
141248		return nil, err
141249	}
141250	req.Header = reqHeaders
141251	googleapi.Expand(req.URL, map[string]string{
141252		"project": c.project,
141253	})
141254	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141255}
141256
141257// Do executes the "compute.reservations.aggregatedList" call.
141258// Exactly one of *ReservationAggregatedList or error will be non-nil.
141259// Any non-2xx status code is an error. Response headers are in either
141260// *ReservationAggregatedList.ServerResponse.Header or (if a response
141261// was returned at all) in error.(*googleapi.Error).Header. Use
141262// googleapi.IsNotModified to check whether the returned error was
141263// because http.StatusNotModified was returned.
141264func (c *ReservationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*ReservationAggregatedList, error) {
141265	gensupport.SetOptions(c.urlParams_, opts...)
141266	res, err := c.doRequest("json")
141267	if res != nil && res.StatusCode == http.StatusNotModified {
141268		if res.Body != nil {
141269			res.Body.Close()
141270		}
141271		return nil, &googleapi.Error{
141272			Code:   res.StatusCode,
141273			Header: res.Header,
141274		}
141275	}
141276	if err != nil {
141277		return nil, err
141278	}
141279	defer googleapi.CloseBody(res)
141280	if err := googleapi.CheckResponse(res); err != nil {
141281		return nil, err
141282	}
141283	ret := &ReservationAggregatedList{
141284		ServerResponse: googleapi.ServerResponse{
141285			Header:         res.Header,
141286			HTTPStatusCode: res.StatusCode,
141287		},
141288	}
141289	target := &ret
141290	if err := gensupport.DecodeResponse(target, res); err != nil {
141291		return nil, err
141292	}
141293	return ret, nil
141294	// {
141295	//   "description": "Retrieves an aggregated list of reservations.",
141296	//   "httpMethod": "GET",
141297	//   "id": "compute.reservations.aggregatedList",
141298	//   "parameterOrder": [
141299	//     "project"
141300	//   ],
141301	//   "parameters": {
141302	//     "filter": {
141303	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
141304	//       "location": "query",
141305	//       "type": "string"
141306	//     },
141307	//     "includeAllScopes": {
141308	//       "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.",
141309	//       "location": "query",
141310	//       "type": "boolean"
141311	//     },
141312	//     "maxResults": {
141313	//       "default": "500",
141314	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
141315	//       "format": "uint32",
141316	//       "location": "query",
141317	//       "minimum": "0",
141318	//       "type": "integer"
141319	//     },
141320	//     "orderBy": {
141321	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
141322	//       "location": "query",
141323	//       "type": "string"
141324	//     },
141325	//     "pageToken": {
141326	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
141327	//       "location": "query",
141328	//       "type": "string"
141329	//     },
141330	//     "project": {
141331	//       "description": "Project ID for this request.",
141332	//       "location": "path",
141333	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141334	//       "required": true,
141335	//       "type": "string"
141336	//     }
141337	//   },
141338	//   "path": "{project}/aggregated/reservations",
141339	//   "response": {
141340	//     "$ref": "ReservationAggregatedList"
141341	//   },
141342	//   "scopes": [
141343	//     "https://www.googleapis.com/auth/cloud-platform",
141344	//     "https://www.googleapis.com/auth/compute",
141345	//     "https://www.googleapis.com/auth/compute.readonly"
141346	//   ]
141347	// }
141348
141349}
141350
141351// Pages invokes f for each page of results.
141352// A non-nil error returned from f will halt the iteration.
141353// The provided context supersedes any context provided to the Context method.
141354func (c *ReservationsAggregatedListCall) Pages(ctx context.Context, f func(*ReservationAggregatedList) error) error {
141355	c.ctx_ = ctx
141356	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
141357	for {
141358		x, err := c.Do()
141359		if err != nil {
141360			return err
141361		}
141362		if err := f(x); err != nil {
141363			return err
141364		}
141365		if x.NextPageToken == "" {
141366			return nil
141367		}
141368		c.PageToken(x.NextPageToken)
141369	}
141370}
141371
141372// method id "compute.reservations.delete":
141373
141374type ReservationsDeleteCall struct {
141375	s           *Service
141376	project     string
141377	zone        string
141378	reservation string
141379	urlParams_  gensupport.URLParams
141380	ctx_        context.Context
141381	header_     http.Header
141382}
141383
141384// Delete: Deletes the specified reservation.
141385func (r *ReservationsService) Delete(project string, zone string, reservation string) *ReservationsDeleteCall {
141386	c := &ReservationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141387	c.project = project
141388	c.zone = zone
141389	c.reservation = reservation
141390	return c
141391}
141392
141393// RequestId sets the optional parameter "requestId": An optional
141394// request ID to identify requests. Specify a unique request ID so that
141395// if you must retry your request, the server will know to ignore the
141396// request if it has already been completed.
141397//
141398// For example, consider a situation where you make an initial request
141399// and the request times out. If you make the request again with the
141400// same request ID, the server can check if original operation with the
141401// same request ID was received, and if so, will ignore the second
141402// request. This prevents clients from accidentally creating duplicate
141403// commitments.
141404//
141405// The request ID must be a valid UUID with the exception that zero UUID
141406// is not supported (00000000-0000-0000-0000-000000000000).
141407func (c *ReservationsDeleteCall) RequestId(requestId string) *ReservationsDeleteCall {
141408	c.urlParams_.Set("requestId", requestId)
141409	return c
141410}
141411
141412// Fields allows partial responses to be retrieved. See
141413// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141414// for more information.
141415func (c *ReservationsDeleteCall) Fields(s ...googleapi.Field) *ReservationsDeleteCall {
141416	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141417	return c
141418}
141419
141420// Context sets the context to be used in this call's Do method. Any
141421// pending HTTP request will be aborted if the provided context is
141422// canceled.
141423func (c *ReservationsDeleteCall) Context(ctx context.Context) *ReservationsDeleteCall {
141424	c.ctx_ = ctx
141425	return c
141426}
141427
141428// Header returns an http.Header that can be modified by the caller to
141429// add HTTP headers to the request.
141430func (c *ReservationsDeleteCall) Header() http.Header {
141431	if c.header_ == nil {
141432		c.header_ = make(http.Header)
141433	}
141434	return c.header_
141435}
141436
141437func (c *ReservationsDeleteCall) doRequest(alt string) (*http.Response, error) {
141438	reqHeaders := make(http.Header)
141439	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
141440	for k, v := range c.header_ {
141441		reqHeaders[k] = v
141442	}
141443	reqHeaders.Set("User-Agent", c.s.userAgent())
141444	var body io.Reader = nil
141445	c.urlParams_.Set("alt", alt)
141446	c.urlParams_.Set("prettyPrint", "false")
141447	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{reservation}")
141448	urls += "?" + c.urlParams_.Encode()
141449	req, err := http.NewRequest("DELETE", urls, body)
141450	if err != nil {
141451		return nil, err
141452	}
141453	req.Header = reqHeaders
141454	googleapi.Expand(req.URL, map[string]string{
141455		"project":     c.project,
141456		"zone":        c.zone,
141457		"reservation": c.reservation,
141458	})
141459	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141460}
141461
141462// Do executes the "compute.reservations.delete" call.
141463// Exactly one of *Operation or error will be non-nil. Any non-2xx
141464// status code is an error. Response headers are in either
141465// *Operation.ServerResponse.Header or (if a response was returned at
141466// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141467// to check whether the returned error was because
141468// http.StatusNotModified was returned.
141469func (c *ReservationsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141470	gensupport.SetOptions(c.urlParams_, opts...)
141471	res, err := c.doRequest("json")
141472	if res != nil && res.StatusCode == http.StatusNotModified {
141473		if res.Body != nil {
141474			res.Body.Close()
141475		}
141476		return nil, &googleapi.Error{
141477			Code:   res.StatusCode,
141478			Header: res.Header,
141479		}
141480	}
141481	if err != nil {
141482		return nil, err
141483	}
141484	defer googleapi.CloseBody(res)
141485	if err := googleapi.CheckResponse(res); err != nil {
141486		return nil, err
141487	}
141488	ret := &Operation{
141489		ServerResponse: googleapi.ServerResponse{
141490			Header:         res.Header,
141491			HTTPStatusCode: res.StatusCode,
141492		},
141493	}
141494	target := &ret
141495	if err := gensupport.DecodeResponse(target, res); err != nil {
141496		return nil, err
141497	}
141498	return ret, nil
141499	// {
141500	//   "description": "Deletes the specified reservation.",
141501	//   "httpMethod": "DELETE",
141502	//   "id": "compute.reservations.delete",
141503	//   "parameterOrder": [
141504	//     "project",
141505	//     "zone",
141506	//     "reservation"
141507	//   ],
141508	//   "parameters": {
141509	//     "project": {
141510	//       "description": "Project ID for this request.",
141511	//       "location": "path",
141512	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141513	//       "required": true,
141514	//       "type": "string"
141515	//     },
141516	//     "requestId": {
141517	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
141518	//       "location": "query",
141519	//       "type": "string"
141520	//     },
141521	//     "reservation": {
141522	//       "description": "Name of the reservation to delete.",
141523	//       "location": "path",
141524	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141525	//       "required": true,
141526	//       "type": "string"
141527	//     },
141528	//     "zone": {
141529	//       "description": "Name of the zone for this request.",
141530	//       "location": "path",
141531	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141532	//       "required": true,
141533	//       "type": "string"
141534	//     }
141535	//   },
141536	//   "path": "{project}/zones/{zone}/reservations/{reservation}",
141537	//   "response": {
141538	//     "$ref": "Operation"
141539	//   },
141540	//   "scopes": [
141541	//     "https://www.googleapis.com/auth/cloud-platform",
141542	//     "https://www.googleapis.com/auth/compute"
141543	//   ]
141544	// }
141545
141546}
141547
141548// method id "compute.reservations.get":
141549
141550type ReservationsGetCall struct {
141551	s            *Service
141552	project      string
141553	zone         string
141554	reservation  string
141555	urlParams_   gensupport.URLParams
141556	ifNoneMatch_ string
141557	ctx_         context.Context
141558	header_      http.Header
141559}
141560
141561// Get: Retrieves information about the specified reservation.
141562func (r *ReservationsService) Get(project string, zone string, reservation string) *ReservationsGetCall {
141563	c := &ReservationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141564	c.project = project
141565	c.zone = zone
141566	c.reservation = reservation
141567	return c
141568}
141569
141570// Fields allows partial responses to be retrieved. See
141571// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141572// for more information.
141573func (c *ReservationsGetCall) Fields(s ...googleapi.Field) *ReservationsGetCall {
141574	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141575	return c
141576}
141577
141578// IfNoneMatch sets the optional parameter which makes the operation
141579// fail if the object's ETag matches the given value. This is useful for
141580// getting updates only after the object has changed since the last
141581// request. Use googleapi.IsNotModified to check whether the response
141582// error from Do is the result of In-None-Match.
141583func (c *ReservationsGetCall) IfNoneMatch(entityTag string) *ReservationsGetCall {
141584	c.ifNoneMatch_ = entityTag
141585	return c
141586}
141587
141588// Context sets the context to be used in this call's Do method. Any
141589// pending HTTP request will be aborted if the provided context is
141590// canceled.
141591func (c *ReservationsGetCall) Context(ctx context.Context) *ReservationsGetCall {
141592	c.ctx_ = ctx
141593	return c
141594}
141595
141596// Header returns an http.Header that can be modified by the caller to
141597// add HTTP headers to the request.
141598func (c *ReservationsGetCall) Header() http.Header {
141599	if c.header_ == nil {
141600		c.header_ = make(http.Header)
141601	}
141602	return c.header_
141603}
141604
141605func (c *ReservationsGetCall) doRequest(alt string) (*http.Response, error) {
141606	reqHeaders := make(http.Header)
141607	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
141608	for k, v := range c.header_ {
141609		reqHeaders[k] = v
141610	}
141611	reqHeaders.Set("User-Agent", c.s.userAgent())
141612	if c.ifNoneMatch_ != "" {
141613		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
141614	}
141615	var body io.Reader = nil
141616	c.urlParams_.Set("alt", alt)
141617	c.urlParams_.Set("prettyPrint", "false")
141618	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{reservation}")
141619	urls += "?" + c.urlParams_.Encode()
141620	req, err := http.NewRequest("GET", urls, body)
141621	if err != nil {
141622		return nil, err
141623	}
141624	req.Header = reqHeaders
141625	googleapi.Expand(req.URL, map[string]string{
141626		"project":     c.project,
141627		"zone":        c.zone,
141628		"reservation": c.reservation,
141629	})
141630	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141631}
141632
141633// Do executes the "compute.reservations.get" call.
141634// Exactly one of *Reservation or error will be non-nil. Any non-2xx
141635// status code is an error. Response headers are in either
141636// *Reservation.ServerResponse.Header or (if a response was returned at
141637// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141638// to check whether the returned error was because
141639// http.StatusNotModified was returned.
141640func (c *ReservationsGetCall) Do(opts ...googleapi.CallOption) (*Reservation, error) {
141641	gensupport.SetOptions(c.urlParams_, opts...)
141642	res, err := c.doRequest("json")
141643	if res != nil && res.StatusCode == http.StatusNotModified {
141644		if res.Body != nil {
141645			res.Body.Close()
141646		}
141647		return nil, &googleapi.Error{
141648			Code:   res.StatusCode,
141649			Header: res.Header,
141650		}
141651	}
141652	if err != nil {
141653		return nil, err
141654	}
141655	defer googleapi.CloseBody(res)
141656	if err := googleapi.CheckResponse(res); err != nil {
141657		return nil, err
141658	}
141659	ret := &Reservation{
141660		ServerResponse: googleapi.ServerResponse{
141661			Header:         res.Header,
141662			HTTPStatusCode: res.StatusCode,
141663		},
141664	}
141665	target := &ret
141666	if err := gensupport.DecodeResponse(target, res); err != nil {
141667		return nil, err
141668	}
141669	return ret, nil
141670	// {
141671	//   "description": "Retrieves information about the specified reservation.",
141672	//   "httpMethod": "GET",
141673	//   "id": "compute.reservations.get",
141674	//   "parameterOrder": [
141675	//     "project",
141676	//     "zone",
141677	//     "reservation"
141678	//   ],
141679	//   "parameters": {
141680	//     "project": {
141681	//       "description": "Project ID for this request.",
141682	//       "location": "path",
141683	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141684	//       "required": true,
141685	//       "type": "string"
141686	//     },
141687	//     "reservation": {
141688	//       "description": "Name of the reservation to retrieve.",
141689	//       "location": "path",
141690	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141691	//       "required": true,
141692	//       "type": "string"
141693	//     },
141694	//     "zone": {
141695	//       "description": "Name of the zone for this request.",
141696	//       "location": "path",
141697	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141698	//       "required": true,
141699	//       "type": "string"
141700	//     }
141701	//   },
141702	//   "path": "{project}/zones/{zone}/reservations/{reservation}",
141703	//   "response": {
141704	//     "$ref": "Reservation"
141705	//   },
141706	//   "scopes": [
141707	//     "https://www.googleapis.com/auth/cloud-platform",
141708	//     "https://www.googleapis.com/auth/compute",
141709	//     "https://www.googleapis.com/auth/compute.readonly"
141710	//   ]
141711	// }
141712
141713}
141714
141715// method id "compute.reservations.getIamPolicy":
141716
141717type ReservationsGetIamPolicyCall struct {
141718	s            *Service
141719	project      string
141720	zone         string
141721	resource     string
141722	urlParams_   gensupport.URLParams
141723	ifNoneMatch_ string
141724	ctx_         context.Context
141725	header_      http.Header
141726}
141727
141728// GetIamPolicy: Gets the access control policy for a resource. May be
141729// empty if no such policy or resource exists.
141730func (r *ReservationsService) GetIamPolicy(project string, zone string, resource string) *ReservationsGetIamPolicyCall {
141731	c := &ReservationsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141732	c.project = project
141733	c.zone = zone
141734	c.resource = resource
141735	return c
141736}
141737
141738// OptionsRequestedPolicyVersion sets the optional parameter
141739// "optionsRequestedPolicyVersion": Requested IAM Policy version.
141740func (c *ReservationsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ReservationsGetIamPolicyCall {
141741	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
141742	return c
141743}
141744
141745// Fields allows partial responses to be retrieved. See
141746// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141747// for more information.
141748func (c *ReservationsGetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationsGetIamPolicyCall {
141749	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141750	return c
141751}
141752
141753// IfNoneMatch sets the optional parameter which makes the operation
141754// fail if the object's ETag matches the given value. This is useful for
141755// getting updates only after the object has changed since the last
141756// request. Use googleapi.IsNotModified to check whether the response
141757// error from Do is the result of In-None-Match.
141758func (c *ReservationsGetIamPolicyCall) IfNoneMatch(entityTag string) *ReservationsGetIamPolicyCall {
141759	c.ifNoneMatch_ = entityTag
141760	return c
141761}
141762
141763// Context sets the context to be used in this call's Do method. Any
141764// pending HTTP request will be aborted if the provided context is
141765// canceled.
141766func (c *ReservationsGetIamPolicyCall) Context(ctx context.Context) *ReservationsGetIamPolicyCall {
141767	c.ctx_ = ctx
141768	return c
141769}
141770
141771// Header returns an http.Header that can be modified by the caller to
141772// add HTTP headers to the request.
141773func (c *ReservationsGetIamPolicyCall) Header() http.Header {
141774	if c.header_ == nil {
141775		c.header_ = make(http.Header)
141776	}
141777	return c.header_
141778}
141779
141780func (c *ReservationsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
141781	reqHeaders := make(http.Header)
141782	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
141783	for k, v := range c.header_ {
141784		reqHeaders[k] = v
141785	}
141786	reqHeaders.Set("User-Agent", c.s.userAgent())
141787	if c.ifNoneMatch_ != "" {
141788		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
141789	}
141790	var body io.Reader = nil
141791	c.urlParams_.Set("alt", alt)
141792	c.urlParams_.Set("prettyPrint", "false")
141793	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{resource}/getIamPolicy")
141794	urls += "?" + c.urlParams_.Encode()
141795	req, err := http.NewRequest("GET", urls, body)
141796	if err != nil {
141797		return nil, err
141798	}
141799	req.Header = reqHeaders
141800	googleapi.Expand(req.URL, map[string]string{
141801		"project":  c.project,
141802		"zone":     c.zone,
141803		"resource": c.resource,
141804	})
141805	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141806}
141807
141808// Do executes the "compute.reservations.getIamPolicy" call.
141809// Exactly one of *Policy or error will be non-nil. Any non-2xx status
141810// code is an error. Response headers are in either
141811// *Policy.ServerResponse.Header or (if a response was returned at all)
141812// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
141813// check whether the returned error was because http.StatusNotModified
141814// was returned.
141815func (c *ReservationsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
141816	gensupport.SetOptions(c.urlParams_, opts...)
141817	res, err := c.doRequest("json")
141818	if res != nil && res.StatusCode == http.StatusNotModified {
141819		if res.Body != nil {
141820			res.Body.Close()
141821		}
141822		return nil, &googleapi.Error{
141823			Code:   res.StatusCode,
141824			Header: res.Header,
141825		}
141826	}
141827	if err != nil {
141828		return nil, err
141829	}
141830	defer googleapi.CloseBody(res)
141831	if err := googleapi.CheckResponse(res); err != nil {
141832		return nil, err
141833	}
141834	ret := &Policy{
141835		ServerResponse: googleapi.ServerResponse{
141836			Header:         res.Header,
141837			HTTPStatusCode: res.StatusCode,
141838		},
141839	}
141840	target := &ret
141841	if err := gensupport.DecodeResponse(target, res); err != nil {
141842		return nil, err
141843	}
141844	return ret, nil
141845	// {
141846	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
141847	//   "httpMethod": "GET",
141848	//   "id": "compute.reservations.getIamPolicy",
141849	//   "parameterOrder": [
141850	//     "project",
141851	//     "zone",
141852	//     "resource"
141853	//   ],
141854	//   "parameters": {
141855	//     "optionsRequestedPolicyVersion": {
141856	//       "description": "Requested IAM Policy version.",
141857	//       "format": "int32",
141858	//       "location": "query",
141859	//       "type": "integer"
141860	//     },
141861	//     "project": {
141862	//       "description": "Project ID for this request.",
141863	//       "location": "path",
141864	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141865	//       "required": true,
141866	//       "type": "string"
141867	//     },
141868	//     "resource": {
141869	//       "description": "Name or id of the resource for this request.",
141870	//       "location": "path",
141871	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141872	//       "required": true,
141873	//       "type": "string"
141874	//     },
141875	//     "zone": {
141876	//       "description": "The name of the zone for this request.",
141877	//       "location": "path",
141878	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141879	//       "required": true,
141880	//       "type": "string"
141881	//     }
141882	//   },
141883	//   "path": "{project}/zones/{zone}/reservations/{resource}/getIamPolicy",
141884	//   "response": {
141885	//     "$ref": "Policy"
141886	//   },
141887	//   "scopes": [
141888	//     "https://www.googleapis.com/auth/cloud-platform",
141889	//     "https://www.googleapis.com/auth/compute",
141890	//     "https://www.googleapis.com/auth/compute.readonly"
141891	//   ]
141892	// }
141893
141894}
141895
141896// method id "compute.reservations.insert":
141897
141898type ReservationsInsertCall struct {
141899	s           *Service
141900	project     string
141901	zone        string
141902	reservation *Reservation
141903	urlParams_  gensupport.URLParams
141904	ctx_        context.Context
141905	header_     http.Header
141906}
141907
141908// Insert: Creates a new reservation. For more information, read
141909// Reserving zonal resources.
141910func (r *ReservationsService) Insert(project string, zone string, reservation *Reservation) *ReservationsInsertCall {
141911	c := &ReservationsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141912	c.project = project
141913	c.zone = zone
141914	c.reservation = reservation
141915	return c
141916}
141917
141918// RequestId sets the optional parameter "requestId": An optional
141919// request ID to identify requests. Specify a unique request ID so that
141920// if you must retry your request, the server will know to ignore the
141921// request if it has already been completed.
141922//
141923// For example, consider a situation where you make an initial request
141924// and the request times out. If you make the request again with the
141925// same request ID, the server can check if original operation with the
141926// same request ID was received, and if so, will ignore the second
141927// request. This prevents clients from accidentally creating duplicate
141928// commitments.
141929//
141930// The request ID must be a valid UUID with the exception that zero UUID
141931// is not supported (00000000-0000-0000-0000-000000000000).
141932func (c *ReservationsInsertCall) RequestId(requestId string) *ReservationsInsertCall {
141933	c.urlParams_.Set("requestId", requestId)
141934	return c
141935}
141936
141937// Fields allows partial responses to be retrieved. See
141938// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141939// for more information.
141940func (c *ReservationsInsertCall) Fields(s ...googleapi.Field) *ReservationsInsertCall {
141941	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141942	return c
141943}
141944
141945// Context sets the context to be used in this call's Do method. Any
141946// pending HTTP request will be aborted if the provided context is
141947// canceled.
141948func (c *ReservationsInsertCall) Context(ctx context.Context) *ReservationsInsertCall {
141949	c.ctx_ = ctx
141950	return c
141951}
141952
141953// Header returns an http.Header that can be modified by the caller to
141954// add HTTP headers to the request.
141955func (c *ReservationsInsertCall) Header() http.Header {
141956	if c.header_ == nil {
141957		c.header_ = make(http.Header)
141958	}
141959	return c.header_
141960}
141961
141962func (c *ReservationsInsertCall) doRequest(alt string) (*http.Response, error) {
141963	reqHeaders := make(http.Header)
141964	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
141965	for k, v := range c.header_ {
141966		reqHeaders[k] = v
141967	}
141968	reqHeaders.Set("User-Agent", c.s.userAgent())
141969	var body io.Reader = nil
141970	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reservation)
141971	if err != nil {
141972		return nil, err
141973	}
141974	reqHeaders.Set("Content-Type", "application/json")
141975	c.urlParams_.Set("alt", alt)
141976	c.urlParams_.Set("prettyPrint", "false")
141977	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations")
141978	urls += "?" + c.urlParams_.Encode()
141979	req, err := http.NewRequest("POST", urls, body)
141980	if err != nil {
141981		return nil, err
141982	}
141983	req.Header = reqHeaders
141984	googleapi.Expand(req.URL, map[string]string{
141985		"project": c.project,
141986		"zone":    c.zone,
141987	})
141988	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141989}
141990
141991// Do executes the "compute.reservations.insert" call.
141992// Exactly one of *Operation or error will be non-nil. Any non-2xx
141993// status code is an error. Response headers are in either
141994// *Operation.ServerResponse.Header or (if a response was returned at
141995// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141996// to check whether the returned error was because
141997// http.StatusNotModified was returned.
141998func (c *ReservationsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141999	gensupport.SetOptions(c.urlParams_, opts...)
142000	res, err := c.doRequest("json")
142001	if res != nil && res.StatusCode == http.StatusNotModified {
142002		if res.Body != nil {
142003			res.Body.Close()
142004		}
142005		return nil, &googleapi.Error{
142006			Code:   res.StatusCode,
142007			Header: res.Header,
142008		}
142009	}
142010	if err != nil {
142011		return nil, err
142012	}
142013	defer googleapi.CloseBody(res)
142014	if err := googleapi.CheckResponse(res); err != nil {
142015		return nil, err
142016	}
142017	ret := &Operation{
142018		ServerResponse: googleapi.ServerResponse{
142019			Header:         res.Header,
142020			HTTPStatusCode: res.StatusCode,
142021		},
142022	}
142023	target := &ret
142024	if err := gensupport.DecodeResponse(target, res); err != nil {
142025		return nil, err
142026	}
142027	return ret, nil
142028	// {
142029	//   "description": "Creates a new reservation. For more information, read Reserving zonal resources.",
142030	//   "httpMethod": "POST",
142031	//   "id": "compute.reservations.insert",
142032	//   "parameterOrder": [
142033	//     "project",
142034	//     "zone"
142035	//   ],
142036	//   "parameters": {
142037	//     "project": {
142038	//       "description": "Project ID for this request.",
142039	//       "location": "path",
142040	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142041	//       "required": true,
142042	//       "type": "string"
142043	//     },
142044	//     "requestId": {
142045	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
142046	//       "location": "query",
142047	//       "type": "string"
142048	//     },
142049	//     "zone": {
142050	//       "description": "Name of the zone for this request.",
142051	//       "location": "path",
142052	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142053	//       "required": true,
142054	//       "type": "string"
142055	//     }
142056	//   },
142057	//   "path": "{project}/zones/{zone}/reservations",
142058	//   "request": {
142059	//     "$ref": "Reservation"
142060	//   },
142061	//   "response": {
142062	//     "$ref": "Operation"
142063	//   },
142064	//   "scopes": [
142065	//     "https://www.googleapis.com/auth/cloud-platform",
142066	//     "https://www.googleapis.com/auth/compute"
142067	//   ]
142068	// }
142069
142070}
142071
142072// method id "compute.reservations.list":
142073
142074type ReservationsListCall struct {
142075	s            *Service
142076	project      string
142077	zone         string
142078	urlParams_   gensupport.URLParams
142079	ifNoneMatch_ string
142080	ctx_         context.Context
142081	header_      http.Header
142082}
142083
142084// List: A list of all the reservations that have been configured for
142085// the specified project in specified zone.
142086func (r *ReservationsService) List(project string, zone string) *ReservationsListCall {
142087	c := &ReservationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142088	c.project = project
142089	c.zone = zone
142090	return c
142091}
142092
142093// Filter sets the optional parameter "filter": A filter expression that
142094// filters resources listed in the response. The expression must specify
142095// the field name, a comparison operator, and the value that you want to
142096// use for filtering. The value must be a string, a number, or a
142097// boolean. The comparison operator must be either =, !=, >, or <.
142098//
142099// For example, if you are filtering Compute Engine instances, you can
142100// exclude instances named example-instance by specifying name !=
142101// example-instance.
142102//
142103// You can also filter nested fields. For example, you could specify
142104// scheduling.automaticRestart = false to include instances only if they
142105// are not scheduled for automatic restarts. You can use filtering on
142106// nested fields to filter based on resource labels.
142107//
142108// To filter on multiple expressions, provide each separate expression
142109// within parentheses. For example, (scheduling.automaticRestart = true)
142110// (cpuPlatform = "Intel Skylake"). By default, each expression is an
142111// AND expression. However, you can include AND and OR expressions
142112// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
142113// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
142114// true).
142115func (c *ReservationsListCall) Filter(filter string) *ReservationsListCall {
142116	c.urlParams_.Set("filter", filter)
142117	return c
142118}
142119
142120// MaxResults sets the optional parameter "maxResults": The maximum
142121// number of results per page that should be returned. If the number of
142122// available results is larger than maxResults, Compute Engine returns a
142123// nextPageToken that can be used to get the next page of results in
142124// subsequent list requests. Acceptable values are 0 to 500, inclusive.
142125// (Default: 500)
142126func (c *ReservationsListCall) MaxResults(maxResults int64) *ReservationsListCall {
142127	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
142128	return c
142129}
142130
142131// OrderBy sets the optional parameter "orderBy": Sorts list results by
142132// a certain order. By default, results are returned in alphanumerical
142133// order based on the resource name.
142134//
142135// You can also sort results in descending order based on the creation
142136// timestamp using orderBy="creationTimestamp desc". This sorts results
142137// based on the creationTimestamp field in reverse chronological order
142138// (newest result first). Use this to sort resources like operations so
142139// that the newest operation is returned first.
142140//
142141// Currently, only sorting by name or creationTimestamp desc is
142142// supported.
142143func (c *ReservationsListCall) OrderBy(orderBy string) *ReservationsListCall {
142144	c.urlParams_.Set("orderBy", orderBy)
142145	return c
142146}
142147
142148// PageToken sets the optional parameter "pageToken": Specifies a page
142149// token to use. Set pageToken to the nextPageToken returned by a
142150// previous list request to get the next page of results.
142151func (c *ReservationsListCall) PageToken(pageToken string) *ReservationsListCall {
142152	c.urlParams_.Set("pageToken", pageToken)
142153	return c
142154}
142155
142156// Fields allows partial responses to be retrieved. See
142157// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142158// for more information.
142159func (c *ReservationsListCall) Fields(s ...googleapi.Field) *ReservationsListCall {
142160	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142161	return c
142162}
142163
142164// IfNoneMatch sets the optional parameter which makes the operation
142165// fail if the object's ETag matches the given value. This is useful for
142166// getting updates only after the object has changed since the last
142167// request. Use googleapi.IsNotModified to check whether the response
142168// error from Do is the result of In-None-Match.
142169func (c *ReservationsListCall) IfNoneMatch(entityTag string) *ReservationsListCall {
142170	c.ifNoneMatch_ = entityTag
142171	return c
142172}
142173
142174// Context sets the context to be used in this call's Do method. Any
142175// pending HTTP request will be aborted if the provided context is
142176// canceled.
142177func (c *ReservationsListCall) Context(ctx context.Context) *ReservationsListCall {
142178	c.ctx_ = ctx
142179	return c
142180}
142181
142182// Header returns an http.Header that can be modified by the caller to
142183// add HTTP headers to the request.
142184func (c *ReservationsListCall) Header() http.Header {
142185	if c.header_ == nil {
142186		c.header_ = make(http.Header)
142187	}
142188	return c.header_
142189}
142190
142191func (c *ReservationsListCall) doRequest(alt string) (*http.Response, error) {
142192	reqHeaders := make(http.Header)
142193	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
142194	for k, v := range c.header_ {
142195		reqHeaders[k] = v
142196	}
142197	reqHeaders.Set("User-Agent", c.s.userAgent())
142198	if c.ifNoneMatch_ != "" {
142199		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
142200	}
142201	var body io.Reader = nil
142202	c.urlParams_.Set("alt", alt)
142203	c.urlParams_.Set("prettyPrint", "false")
142204	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations")
142205	urls += "?" + c.urlParams_.Encode()
142206	req, err := http.NewRequest("GET", urls, body)
142207	if err != nil {
142208		return nil, err
142209	}
142210	req.Header = reqHeaders
142211	googleapi.Expand(req.URL, map[string]string{
142212		"project": c.project,
142213		"zone":    c.zone,
142214	})
142215	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142216}
142217
142218// Do executes the "compute.reservations.list" call.
142219// Exactly one of *ReservationList or error will be non-nil. Any non-2xx
142220// status code is an error. Response headers are in either
142221// *ReservationList.ServerResponse.Header or (if a response was returned
142222// at all) in error.(*googleapi.Error).Header. Use
142223// googleapi.IsNotModified to check whether the returned error was
142224// because http.StatusNotModified was returned.
142225func (c *ReservationsListCall) Do(opts ...googleapi.CallOption) (*ReservationList, error) {
142226	gensupport.SetOptions(c.urlParams_, opts...)
142227	res, err := c.doRequest("json")
142228	if res != nil && res.StatusCode == http.StatusNotModified {
142229		if res.Body != nil {
142230			res.Body.Close()
142231		}
142232		return nil, &googleapi.Error{
142233			Code:   res.StatusCode,
142234			Header: res.Header,
142235		}
142236	}
142237	if err != nil {
142238		return nil, err
142239	}
142240	defer googleapi.CloseBody(res)
142241	if err := googleapi.CheckResponse(res); err != nil {
142242		return nil, err
142243	}
142244	ret := &ReservationList{
142245		ServerResponse: googleapi.ServerResponse{
142246			Header:         res.Header,
142247			HTTPStatusCode: res.StatusCode,
142248		},
142249	}
142250	target := &ret
142251	if err := gensupport.DecodeResponse(target, res); err != nil {
142252		return nil, err
142253	}
142254	return ret, nil
142255	// {
142256	//   "description": "A list of all the reservations that have been configured for the specified project in specified zone.",
142257	//   "httpMethod": "GET",
142258	//   "id": "compute.reservations.list",
142259	//   "parameterOrder": [
142260	//     "project",
142261	//     "zone"
142262	//   ],
142263	//   "parameters": {
142264	//     "filter": {
142265	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
142266	//       "location": "query",
142267	//       "type": "string"
142268	//     },
142269	//     "maxResults": {
142270	//       "default": "500",
142271	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
142272	//       "format": "uint32",
142273	//       "location": "query",
142274	//       "minimum": "0",
142275	//       "type": "integer"
142276	//     },
142277	//     "orderBy": {
142278	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
142279	//       "location": "query",
142280	//       "type": "string"
142281	//     },
142282	//     "pageToken": {
142283	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
142284	//       "location": "query",
142285	//       "type": "string"
142286	//     },
142287	//     "project": {
142288	//       "description": "Project ID for this request.",
142289	//       "location": "path",
142290	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142291	//       "required": true,
142292	//       "type": "string"
142293	//     },
142294	//     "zone": {
142295	//       "description": "Name of the zone for this request.",
142296	//       "location": "path",
142297	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142298	//       "required": true,
142299	//       "type": "string"
142300	//     }
142301	//   },
142302	//   "path": "{project}/zones/{zone}/reservations",
142303	//   "response": {
142304	//     "$ref": "ReservationList"
142305	//   },
142306	//   "scopes": [
142307	//     "https://www.googleapis.com/auth/cloud-platform",
142308	//     "https://www.googleapis.com/auth/compute",
142309	//     "https://www.googleapis.com/auth/compute.readonly"
142310	//   ]
142311	// }
142312
142313}
142314
142315// Pages invokes f for each page of results.
142316// A non-nil error returned from f will halt the iteration.
142317// The provided context supersedes any context provided to the Context method.
142318func (c *ReservationsListCall) Pages(ctx context.Context, f func(*ReservationList) error) error {
142319	c.ctx_ = ctx
142320	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
142321	for {
142322		x, err := c.Do()
142323		if err != nil {
142324			return err
142325		}
142326		if err := f(x); err != nil {
142327			return err
142328		}
142329		if x.NextPageToken == "" {
142330			return nil
142331		}
142332		c.PageToken(x.NextPageToken)
142333	}
142334}
142335
142336// method id "compute.reservations.resize":
142337
142338type ReservationsResizeCall struct {
142339	s                         *Service
142340	project                   string
142341	zone                      string
142342	reservation               string
142343	reservationsresizerequest *ReservationsResizeRequest
142344	urlParams_                gensupport.URLParams
142345	ctx_                      context.Context
142346	header_                   http.Header
142347}
142348
142349// Resize: Resizes the reservation (applicable to standalone
142350// reservations only). For more information, read Modifying
142351// reservations.
142352func (r *ReservationsService) Resize(project string, zone string, reservation string, reservationsresizerequest *ReservationsResizeRequest) *ReservationsResizeCall {
142353	c := &ReservationsResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142354	c.project = project
142355	c.zone = zone
142356	c.reservation = reservation
142357	c.reservationsresizerequest = reservationsresizerequest
142358	return c
142359}
142360
142361// RequestId sets the optional parameter "requestId": An optional
142362// request ID to identify requests. Specify a unique request ID so that
142363// if you must retry your request, the server will know to ignore the
142364// request if it has already been completed.
142365//
142366// For example, consider a situation where you make an initial request
142367// and the request times out. If you make the request again with the
142368// same request ID, the server can check if original operation with the
142369// same request ID was received, and if so, will ignore the second
142370// request. This prevents clients from accidentally creating duplicate
142371// commitments.
142372//
142373// The request ID must be a valid UUID with the exception that zero UUID
142374// is not supported (00000000-0000-0000-0000-000000000000).
142375func (c *ReservationsResizeCall) RequestId(requestId string) *ReservationsResizeCall {
142376	c.urlParams_.Set("requestId", requestId)
142377	return c
142378}
142379
142380// Fields allows partial responses to be retrieved. See
142381// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142382// for more information.
142383func (c *ReservationsResizeCall) Fields(s ...googleapi.Field) *ReservationsResizeCall {
142384	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142385	return c
142386}
142387
142388// Context sets the context to be used in this call's Do method. Any
142389// pending HTTP request will be aborted if the provided context is
142390// canceled.
142391func (c *ReservationsResizeCall) Context(ctx context.Context) *ReservationsResizeCall {
142392	c.ctx_ = ctx
142393	return c
142394}
142395
142396// Header returns an http.Header that can be modified by the caller to
142397// add HTTP headers to the request.
142398func (c *ReservationsResizeCall) Header() http.Header {
142399	if c.header_ == nil {
142400		c.header_ = make(http.Header)
142401	}
142402	return c.header_
142403}
142404
142405func (c *ReservationsResizeCall) doRequest(alt string) (*http.Response, error) {
142406	reqHeaders := make(http.Header)
142407	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
142408	for k, v := range c.header_ {
142409		reqHeaders[k] = v
142410	}
142411	reqHeaders.Set("User-Agent", c.s.userAgent())
142412	var body io.Reader = nil
142413	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reservationsresizerequest)
142414	if err != nil {
142415		return nil, err
142416	}
142417	reqHeaders.Set("Content-Type", "application/json")
142418	c.urlParams_.Set("alt", alt)
142419	c.urlParams_.Set("prettyPrint", "false")
142420	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{reservation}/resize")
142421	urls += "?" + c.urlParams_.Encode()
142422	req, err := http.NewRequest("POST", urls, body)
142423	if err != nil {
142424		return nil, err
142425	}
142426	req.Header = reqHeaders
142427	googleapi.Expand(req.URL, map[string]string{
142428		"project":     c.project,
142429		"zone":        c.zone,
142430		"reservation": c.reservation,
142431	})
142432	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142433}
142434
142435// Do executes the "compute.reservations.resize" call.
142436// Exactly one of *Operation or error will be non-nil. Any non-2xx
142437// status code is an error. Response headers are in either
142438// *Operation.ServerResponse.Header or (if a response was returned at
142439// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
142440// to check whether the returned error was because
142441// http.StatusNotModified was returned.
142442func (c *ReservationsResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
142443	gensupport.SetOptions(c.urlParams_, opts...)
142444	res, err := c.doRequest("json")
142445	if res != nil && res.StatusCode == http.StatusNotModified {
142446		if res.Body != nil {
142447			res.Body.Close()
142448		}
142449		return nil, &googleapi.Error{
142450			Code:   res.StatusCode,
142451			Header: res.Header,
142452		}
142453	}
142454	if err != nil {
142455		return nil, err
142456	}
142457	defer googleapi.CloseBody(res)
142458	if err := googleapi.CheckResponse(res); err != nil {
142459		return nil, err
142460	}
142461	ret := &Operation{
142462		ServerResponse: googleapi.ServerResponse{
142463			Header:         res.Header,
142464			HTTPStatusCode: res.StatusCode,
142465		},
142466	}
142467	target := &ret
142468	if err := gensupport.DecodeResponse(target, res); err != nil {
142469		return nil, err
142470	}
142471	return ret, nil
142472	// {
142473	//   "description": "Resizes the reservation (applicable to standalone reservations only). For more information, read Modifying reservations.",
142474	//   "httpMethod": "POST",
142475	//   "id": "compute.reservations.resize",
142476	//   "parameterOrder": [
142477	//     "project",
142478	//     "zone",
142479	//     "reservation"
142480	//   ],
142481	//   "parameters": {
142482	//     "project": {
142483	//       "description": "Project ID for this request.",
142484	//       "location": "path",
142485	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142486	//       "required": true,
142487	//       "type": "string"
142488	//     },
142489	//     "requestId": {
142490	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
142491	//       "location": "query",
142492	//       "type": "string"
142493	//     },
142494	//     "reservation": {
142495	//       "description": "Name of the reservation to update.",
142496	//       "location": "path",
142497	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142498	//       "required": true,
142499	//       "type": "string"
142500	//     },
142501	//     "zone": {
142502	//       "description": "Name of the zone for this request.",
142503	//       "location": "path",
142504	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142505	//       "required": true,
142506	//       "type": "string"
142507	//     }
142508	//   },
142509	//   "path": "{project}/zones/{zone}/reservations/{reservation}/resize",
142510	//   "request": {
142511	//     "$ref": "ReservationsResizeRequest"
142512	//   },
142513	//   "response": {
142514	//     "$ref": "Operation"
142515	//   },
142516	//   "scopes": [
142517	//     "https://www.googleapis.com/auth/cloud-platform",
142518	//     "https://www.googleapis.com/auth/compute"
142519	//   ]
142520	// }
142521
142522}
142523
142524// method id "compute.reservations.setIamPolicy":
142525
142526type ReservationsSetIamPolicyCall struct {
142527	s                    *Service
142528	project              string
142529	zone                 string
142530	resource             string
142531	zonesetpolicyrequest *ZoneSetPolicyRequest
142532	urlParams_           gensupport.URLParams
142533	ctx_                 context.Context
142534	header_              http.Header
142535}
142536
142537// SetIamPolicy: Sets the access control policy on the specified
142538// resource. Replaces any existing policy.
142539func (r *ReservationsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *ReservationsSetIamPolicyCall {
142540	c := &ReservationsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142541	c.project = project
142542	c.zone = zone
142543	c.resource = resource
142544	c.zonesetpolicyrequest = zonesetpolicyrequest
142545	return c
142546}
142547
142548// Fields allows partial responses to be retrieved. See
142549// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142550// for more information.
142551func (c *ReservationsSetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationsSetIamPolicyCall {
142552	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142553	return c
142554}
142555
142556// Context sets the context to be used in this call's Do method. Any
142557// pending HTTP request will be aborted if the provided context is
142558// canceled.
142559func (c *ReservationsSetIamPolicyCall) Context(ctx context.Context) *ReservationsSetIamPolicyCall {
142560	c.ctx_ = ctx
142561	return c
142562}
142563
142564// Header returns an http.Header that can be modified by the caller to
142565// add HTTP headers to the request.
142566func (c *ReservationsSetIamPolicyCall) Header() http.Header {
142567	if c.header_ == nil {
142568		c.header_ = make(http.Header)
142569	}
142570	return c.header_
142571}
142572
142573func (c *ReservationsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
142574	reqHeaders := make(http.Header)
142575	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
142576	for k, v := range c.header_ {
142577		reqHeaders[k] = v
142578	}
142579	reqHeaders.Set("User-Agent", c.s.userAgent())
142580	var body io.Reader = nil
142581	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
142582	if err != nil {
142583		return nil, err
142584	}
142585	reqHeaders.Set("Content-Type", "application/json")
142586	c.urlParams_.Set("alt", alt)
142587	c.urlParams_.Set("prettyPrint", "false")
142588	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{resource}/setIamPolicy")
142589	urls += "?" + c.urlParams_.Encode()
142590	req, err := http.NewRequest("POST", urls, body)
142591	if err != nil {
142592		return nil, err
142593	}
142594	req.Header = reqHeaders
142595	googleapi.Expand(req.URL, map[string]string{
142596		"project":  c.project,
142597		"zone":     c.zone,
142598		"resource": c.resource,
142599	})
142600	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142601}
142602
142603// Do executes the "compute.reservations.setIamPolicy" call.
142604// Exactly one of *Policy or error will be non-nil. Any non-2xx status
142605// code is an error. Response headers are in either
142606// *Policy.ServerResponse.Header or (if a response was returned at all)
142607// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
142608// check whether the returned error was because http.StatusNotModified
142609// was returned.
142610func (c *ReservationsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
142611	gensupport.SetOptions(c.urlParams_, opts...)
142612	res, err := c.doRequest("json")
142613	if res != nil && res.StatusCode == http.StatusNotModified {
142614		if res.Body != nil {
142615			res.Body.Close()
142616		}
142617		return nil, &googleapi.Error{
142618			Code:   res.StatusCode,
142619			Header: res.Header,
142620		}
142621	}
142622	if err != nil {
142623		return nil, err
142624	}
142625	defer googleapi.CloseBody(res)
142626	if err := googleapi.CheckResponse(res); err != nil {
142627		return nil, err
142628	}
142629	ret := &Policy{
142630		ServerResponse: googleapi.ServerResponse{
142631			Header:         res.Header,
142632			HTTPStatusCode: res.StatusCode,
142633		},
142634	}
142635	target := &ret
142636	if err := gensupport.DecodeResponse(target, res); err != nil {
142637		return nil, err
142638	}
142639	return ret, nil
142640	// {
142641	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
142642	//   "httpMethod": "POST",
142643	//   "id": "compute.reservations.setIamPolicy",
142644	//   "parameterOrder": [
142645	//     "project",
142646	//     "zone",
142647	//     "resource"
142648	//   ],
142649	//   "parameters": {
142650	//     "project": {
142651	//       "description": "Project ID for this request.",
142652	//       "location": "path",
142653	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142654	//       "required": true,
142655	//       "type": "string"
142656	//     },
142657	//     "resource": {
142658	//       "description": "Name or id of the resource for this request.",
142659	//       "location": "path",
142660	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142661	//       "required": true,
142662	//       "type": "string"
142663	//     },
142664	//     "zone": {
142665	//       "description": "The name of the zone for this request.",
142666	//       "location": "path",
142667	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142668	//       "required": true,
142669	//       "type": "string"
142670	//     }
142671	//   },
142672	//   "path": "{project}/zones/{zone}/reservations/{resource}/setIamPolicy",
142673	//   "request": {
142674	//     "$ref": "ZoneSetPolicyRequest"
142675	//   },
142676	//   "response": {
142677	//     "$ref": "Policy"
142678	//   },
142679	//   "scopes": [
142680	//     "https://www.googleapis.com/auth/cloud-platform",
142681	//     "https://www.googleapis.com/auth/compute"
142682	//   ]
142683	// }
142684
142685}
142686
142687// method id "compute.reservations.testIamPermissions":
142688
142689type ReservationsTestIamPermissionsCall struct {
142690	s                      *Service
142691	project                string
142692	zone                   string
142693	resource               string
142694	testpermissionsrequest *TestPermissionsRequest
142695	urlParams_             gensupport.URLParams
142696	ctx_                   context.Context
142697	header_                http.Header
142698}
142699
142700// TestIamPermissions: Returns permissions that a caller has on the
142701// specified resource.
142702func (r *ReservationsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *ReservationsTestIamPermissionsCall {
142703	c := &ReservationsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142704	c.project = project
142705	c.zone = zone
142706	c.resource = resource
142707	c.testpermissionsrequest = testpermissionsrequest
142708	return c
142709}
142710
142711// Fields allows partial responses to be retrieved. See
142712// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142713// for more information.
142714func (c *ReservationsTestIamPermissionsCall) Fields(s ...googleapi.Field) *ReservationsTestIamPermissionsCall {
142715	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142716	return c
142717}
142718
142719// Context sets the context to be used in this call's Do method. Any
142720// pending HTTP request will be aborted if the provided context is
142721// canceled.
142722func (c *ReservationsTestIamPermissionsCall) Context(ctx context.Context) *ReservationsTestIamPermissionsCall {
142723	c.ctx_ = ctx
142724	return c
142725}
142726
142727// Header returns an http.Header that can be modified by the caller to
142728// add HTTP headers to the request.
142729func (c *ReservationsTestIamPermissionsCall) Header() http.Header {
142730	if c.header_ == nil {
142731		c.header_ = make(http.Header)
142732	}
142733	return c.header_
142734}
142735
142736func (c *ReservationsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
142737	reqHeaders := make(http.Header)
142738	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
142739	for k, v := range c.header_ {
142740		reqHeaders[k] = v
142741	}
142742	reqHeaders.Set("User-Agent", c.s.userAgent())
142743	var body io.Reader = nil
142744	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
142745	if err != nil {
142746		return nil, err
142747	}
142748	reqHeaders.Set("Content-Type", "application/json")
142749	c.urlParams_.Set("alt", alt)
142750	c.urlParams_.Set("prettyPrint", "false")
142751	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{resource}/testIamPermissions")
142752	urls += "?" + c.urlParams_.Encode()
142753	req, err := http.NewRequest("POST", urls, body)
142754	if err != nil {
142755		return nil, err
142756	}
142757	req.Header = reqHeaders
142758	googleapi.Expand(req.URL, map[string]string{
142759		"project":  c.project,
142760		"zone":     c.zone,
142761		"resource": c.resource,
142762	})
142763	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142764}
142765
142766// Do executes the "compute.reservations.testIamPermissions" call.
142767// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
142768// non-2xx status code is an error. Response headers are in either
142769// *TestPermissionsResponse.ServerResponse.Header or (if a response was
142770// returned at all) in error.(*googleapi.Error).Header. Use
142771// googleapi.IsNotModified to check whether the returned error was
142772// because http.StatusNotModified was returned.
142773func (c *ReservationsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
142774	gensupport.SetOptions(c.urlParams_, opts...)
142775	res, err := c.doRequest("json")
142776	if res != nil && res.StatusCode == http.StatusNotModified {
142777		if res.Body != nil {
142778			res.Body.Close()
142779		}
142780		return nil, &googleapi.Error{
142781			Code:   res.StatusCode,
142782			Header: res.Header,
142783		}
142784	}
142785	if err != nil {
142786		return nil, err
142787	}
142788	defer googleapi.CloseBody(res)
142789	if err := googleapi.CheckResponse(res); err != nil {
142790		return nil, err
142791	}
142792	ret := &TestPermissionsResponse{
142793		ServerResponse: googleapi.ServerResponse{
142794			Header:         res.Header,
142795			HTTPStatusCode: res.StatusCode,
142796		},
142797	}
142798	target := &ret
142799	if err := gensupport.DecodeResponse(target, res); err != nil {
142800		return nil, err
142801	}
142802	return ret, nil
142803	// {
142804	//   "description": "Returns permissions that a caller has on the specified resource.",
142805	//   "httpMethod": "POST",
142806	//   "id": "compute.reservations.testIamPermissions",
142807	//   "parameterOrder": [
142808	//     "project",
142809	//     "zone",
142810	//     "resource"
142811	//   ],
142812	//   "parameters": {
142813	//     "project": {
142814	//       "description": "Project ID for this request.",
142815	//       "location": "path",
142816	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142817	//       "required": true,
142818	//       "type": "string"
142819	//     },
142820	//     "resource": {
142821	//       "description": "Name or id of the resource for this request.",
142822	//       "location": "path",
142823	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142824	//       "required": true,
142825	//       "type": "string"
142826	//     },
142827	//     "zone": {
142828	//       "description": "The name of the zone for this request.",
142829	//       "location": "path",
142830	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142831	//       "required": true,
142832	//       "type": "string"
142833	//     }
142834	//   },
142835	//   "path": "{project}/zones/{zone}/reservations/{resource}/testIamPermissions",
142836	//   "request": {
142837	//     "$ref": "TestPermissionsRequest"
142838	//   },
142839	//   "response": {
142840	//     "$ref": "TestPermissionsResponse"
142841	//   },
142842	//   "scopes": [
142843	//     "https://www.googleapis.com/auth/cloud-platform",
142844	//     "https://www.googleapis.com/auth/compute",
142845	//     "https://www.googleapis.com/auth/compute.readonly"
142846	//   ]
142847	// }
142848
142849}
142850
142851// method id "compute.resourcePolicies.aggregatedList":
142852
142853type ResourcePoliciesAggregatedListCall struct {
142854	s            *Service
142855	project      string
142856	urlParams_   gensupport.URLParams
142857	ifNoneMatch_ string
142858	ctx_         context.Context
142859	header_      http.Header
142860}
142861
142862// AggregatedList: Retrieves an aggregated list of resource policies.
142863func (r *ResourcePoliciesService) AggregatedList(project string) *ResourcePoliciesAggregatedListCall {
142864	c := &ResourcePoliciesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142865	c.project = project
142866	return c
142867}
142868
142869// Filter sets the optional parameter "filter": A filter expression that
142870// filters resources listed in the response. The expression must specify
142871// the field name, a comparison operator, and the value that you want to
142872// use for filtering. The value must be a string, a number, or a
142873// boolean. The comparison operator must be either =, !=, >, or <.
142874//
142875// For example, if you are filtering Compute Engine instances, you can
142876// exclude instances named example-instance by specifying name !=
142877// example-instance.
142878//
142879// You can also filter nested fields. For example, you could specify
142880// scheduling.automaticRestart = false to include instances only if they
142881// are not scheduled for automatic restarts. You can use filtering on
142882// nested fields to filter based on resource labels.
142883//
142884// To filter on multiple expressions, provide each separate expression
142885// within parentheses. For example, (scheduling.automaticRestart = true)
142886// (cpuPlatform = "Intel Skylake"). By default, each expression is an
142887// AND expression. However, you can include AND and OR expressions
142888// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
142889// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
142890// true).
142891func (c *ResourcePoliciesAggregatedListCall) Filter(filter string) *ResourcePoliciesAggregatedListCall {
142892	c.urlParams_.Set("filter", filter)
142893	return c
142894}
142895
142896// IncludeAllScopes sets the optional parameter "includeAllScopes":
142897// Indicates whether every visible scope for each scope type (zone,
142898// region, global) should be included in the response. For new resource
142899// types added after this field, the flag has no effect as new resource
142900// types will always include every visible scope for each scope type in
142901// response. For resource types which predate this field, if this flag
142902// is omitted or false, only scopes of the scope types where the
142903// resource type is expected to be found will be included.
142904func (c *ResourcePoliciesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ResourcePoliciesAggregatedListCall {
142905	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
142906	return c
142907}
142908
142909// MaxResults sets the optional parameter "maxResults": The maximum
142910// number of results per page that should be returned. If the number of
142911// available results is larger than maxResults, Compute Engine returns a
142912// nextPageToken that can be used to get the next page of results in
142913// subsequent list requests. Acceptable values are 0 to 500, inclusive.
142914// (Default: 500)
142915func (c *ResourcePoliciesAggregatedListCall) MaxResults(maxResults int64) *ResourcePoliciesAggregatedListCall {
142916	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
142917	return c
142918}
142919
142920// OrderBy sets the optional parameter "orderBy": Sorts list results by
142921// a certain order. By default, results are returned in alphanumerical
142922// order based on the resource name.
142923//
142924// You can also sort results in descending order based on the creation
142925// timestamp using orderBy="creationTimestamp desc". This sorts results
142926// based on the creationTimestamp field in reverse chronological order
142927// (newest result first). Use this to sort resources like operations so
142928// that the newest operation is returned first.
142929//
142930// Currently, only sorting by name or creationTimestamp desc is
142931// supported.
142932func (c *ResourcePoliciesAggregatedListCall) OrderBy(orderBy string) *ResourcePoliciesAggregatedListCall {
142933	c.urlParams_.Set("orderBy", orderBy)
142934	return c
142935}
142936
142937// PageToken sets the optional parameter "pageToken": Specifies a page
142938// token to use. Set pageToken to the nextPageToken returned by a
142939// previous list request to get the next page of results.
142940func (c *ResourcePoliciesAggregatedListCall) PageToken(pageToken string) *ResourcePoliciesAggregatedListCall {
142941	c.urlParams_.Set("pageToken", pageToken)
142942	return c
142943}
142944
142945// Fields allows partial responses to be retrieved. See
142946// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142947// for more information.
142948func (c *ResourcePoliciesAggregatedListCall) Fields(s ...googleapi.Field) *ResourcePoliciesAggregatedListCall {
142949	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142950	return c
142951}
142952
142953// IfNoneMatch sets the optional parameter which makes the operation
142954// fail if the object's ETag matches the given value. This is useful for
142955// getting updates only after the object has changed since the last
142956// request. Use googleapi.IsNotModified to check whether the response
142957// error from Do is the result of In-None-Match.
142958func (c *ResourcePoliciesAggregatedListCall) IfNoneMatch(entityTag string) *ResourcePoliciesAggregatedListCall {
142959	c.ifNoneMatch_ = entityTag
142960	return c
142961}
142962
142963// Context sets the context to be used in this call's Do method. Any
142964// pending HTTP request will be aborted if the provided context is
142965// canceled.
142966func (c *ResourcePoliciesAggregatedListCall) Context(ctx context.Context) *ResourcePoliciesAggregatedListCall {
142967	c.ctx_ = ctx
142968	return c
142969}
142970
142971// Header returns an http.Header that can be modified by the caller to
142972// add HTTP headers to the request.
142973func (c *ResourcePoliciesAggregatedListCall) Header() http.Header {
142974	if c.header_ == nil {
142975		c.header_ = make(http.Header)
142976	}
142977	return c.header_
142978}
142979
142980func (c *ResourcePoliciesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
142981	reqHeaders := make(http.Header)
142982	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
142983	for k, v := range c.header_ {
142984		reqHeaders[k] = v
142985	}
142986	reqHeaders.Set("User-Agent", c.s.userAgent())
142987	if c.ifNoneMatch_ != "" {
142988		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
142989	}
142990	var body io.Reader = nil
142991	c.urlParams_.Set("alt", alt)
142992	c.urlParams_.Set("prettyPrint", "false")
142993	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/resourcePolicies")
142994	urls += "?" + c.urlParams_.Encode()
142995	req, err := http.NewRequest("GET", urls, body)
142996	if err != nil {
142997		return nil, err
142998	}
142999	req.Header = reqHeaders
143000	googleapi.Expand(req.URL, map[string]string{
143001		"project": c.project,
143002	})
143003	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143004}
143005
143006// Do executes the "compute.resourcePolicies.aggregatedList" call.
143007// Exactly one of *ResourcePolicyAggregatedList or error will be
143008// non-nil. Any non-2xx status code is an error. Response headers are in
143009// either *ResourcePolicyAggregatedList.ServerResponse.Header or (if a
143010// response was returned at all) in error.(*googleapi.Error).Header. Use
143011// googleapi.IsNotModified to check whether the returned error was
143012// because http.StatusNotModified was returned.
143013func (c *ResourcePoliciesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ResourcePolicyAggregatedList, error) {
143014	gensupport.SetOptions(c.urlParams_, opts...)
143015	res, err := c.doRequest("json")
143016	if res != nil && res.StatusCode == http.StatusNotModified {
143017		if res.Body != nil {
143018			res.Body.Close()
143019		}
143020		return nil, &googleapi.Error{
143021			Code:   res.StatusCode,
143022			Header: res.Header,
143023		}
143024	}
143025	if err != nil {
143026		return nil, err
143027	}
143028	defer googleapi.CloseBody(res)
143029	if err := googleapi.CheckResponse(res); err != nil {
143030		return nil, err
143031	}
143032	ret := &ResourcePolicyAggregatedList{
143033		ServerResponse: googleapi.ServerResponse{
143034			Header:         res.Header,
143035			HTTPStatusCode: res.StatusCode,
143036		},
143037	}
143038	target := &ret
143039	if err := gensupport.DecodeResponse(target, res); err != nil {
143040		return nil, err
143041	}
143042	return ret, nil
143043	// {
143044	//   "description": "Retrieves an aggregated list of resource policies.",
143045	//   "httpMethod": "GET",
143046	//   "id": "compute.resourcePolicies.aggregatedList",
143047	//   "parameterOrder": [
143048	//     "project"
143049	//   ],
143050	//   "parameters": {
143051	//     "filter": {
143052	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
143053	//       "location": "query",
143054	//       "type": "string"
143055	//     },
143056	//     "includeAllScopes": {
143057	//       "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.",
143058	//       "location": "query",
143059	//       "type": "boolean"
143060	//     },
143061	//     "maxResults": {
143062	//       "default": "500",
143063	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
143064	//       "format": "uint32",
143065	//       "location": "query",
143066	//       "minimum": "0",
143067	//       "type": "integer"
143068	//     },
143069	//     "orderBy": {
143070	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
143071	//       "location": "query",
143072	//       "type": "string"
143073	//     },
143074	//     "pageToken": {
143075	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
143076	//       "location": "query",
143077	//       "type": "string"
143078	//     },
143079	//     "project": {
143080	//       "description": "Project ID for this request.",
143081	//       "location": "path",
143082	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143083	//       "required": true,
143084	//       "type": "string"
143085	//     }
143086	//   },
143087	//   "path": "{project}/aggregated/resourcePolicies",
143088	//   "response": {
143089	//     "$ref": "ResourcePolicyAggregatedList"
143090	//   },
143091	//   "scopes": [
143092	//     "https://www.googleapis.com/auth/cloud-platform",
143093	//     "https://www.googleapis.com/auth/compute",
143094	//     "https://www.googleapis.com/auth/compute.readonly"
143095	//   ]
143096	// }
143097
143098}
143099
143100// Pages invokes f for each page of results.
143101// A non-nil error returned from f will halt the iteration.
143102// The provided context supersedes any context provided to the Context method.
143103func (c *ResourcePoliciesAggregatedListCall) Pages(ctx context.Context, f func(*ResourcePolicyAggregatedList) error) error {
143104	c.ctx_ = ctx
143105	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
143106	for {
143107		x, err := c.Do()
143108		if err != nil {
143109			return err
143110		}
143111		if err := f(x); err != nil {
143112			return err
143113		}
143114		if x.NextPageToken == "" {
143115			return nil
143116		}
143117		c.PageToken(x.NextPageToken)
143118	}
143119}
143120
143121// method id "compute.resourcePolicies.delete":
143122
143123type ResourcePoliciesDeleteCall struct {
143124	s              *Service
143125	project        string
143126	region         string
143127	resourcePolicy string
143128	urlParams_     gensupport.URLParams
143129	ctx_           context.Context
143130	header_        http.Header
143131}
143132
143133// Delete: Deletes the specified resource policy.
143134func (r *ResourcePoliciesService) Delete(project string, region string, resourcePolicy string) *ResourcePoliciesDeleteCall {
143135	c := &ResourcePoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143136	c.project = project
143137	c.region = region
143138	c.resourcePolicy = resourcePolicy
143139	return c
143140}
143141
143142// RequestId sets the optional parameter "requestId": An optional
143143// request ID to identify requests. Specify a unique request ID so that
143144// if you must retry your request, the server will know to ignore the
143145// request if it has already been completed.
143146//
143147// For example, consider a situation where you make an initial request
143148// and the request times out. If you make the request again with the
143149// same request ID, the server can check if original operation with the
143150// same request ID was received, and if so, will ignore the second
143151// request. This prevents clients from accidentally creating duplicate
143152// commitments.
143153//
143154// The request ID must be a valid UUID with the exception that zero UUID
143155// is not supported (00000000-0000-0000-0000-000000000000).
143156func (c *ResourcePoliciesDeleteCall) RequestId(requestId string) *ResourcePoliciesDeleteCall {
143157	c.urlParams_.Set("requestId", requestId)
143158	return c
143159}
143160
143161// Fields allows partial responses to be retrieved. See
143162// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143163// for more information.
143164func (c *ResourcePoliciesDeleteCall) Fields(s ...googleapi.Field) *ResourcePoliciesDeleteCall {
143165	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143166	return c
143167}
143168
143169// Context sets the context to be used in this call's Do method. Any
143170// pending HTTP request will be aborted if the provided context is
143171// canceled.
143172func (c *ResourcePoliciesDeleteCall) Context(ctx context.Context) *ResourcePoliciesDeleteCall {
143173	c.ctx_ = ctx
143174	return c
143175}
143176
143177// Header returns an http.Header that can be modified by the caller to
143178// add HTTP headers to the request.
143179func (c *ResourcePoliciesDeleteCall) Header() http.Header {
143180	if c.header_ == nil {
143181		c.header_ = make(http.Header)
143182	}
143183	return c.header_
143184}
143185
143186func (c *ResourcePoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
143187	reqHeaders := make(http.Header)
143188	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
143189	for k, v := range c.header_ {
143190		reqHeaders[k] = v
143191	}
143192	reqHeaders.Set("User-Agent", c.s.userAgent())
143193	var body io.Reader = nil
143194	c.urlParams_.Set("alt", alt)
143195	c.urlParams_.Set("prettyPrint", "false")
143196	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resourcePolicy}")
143197	urls += "?" + c.urlParams_.Encode()
143198	req, err := http.NewRequest("DELETE", urls, body)
143199	if err != nil {
143200		return nil, err
143201	}
143202	req.Header = reqHeaders
143203	googleapi.Expand(req.URL, map[string]string{
143204		"project":        c.project,
143205		"region":         c.region,
143206		"resourcePolicy": c.resourcePolicy,
143207	})
143208	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143209}
143210
143211// Do executes the "compute.resourcePolicies.delete" call.
143212// Exactly one of *Operation or error will be non-nil. Any non-2xx
143213// status code is an error. Response headers are in either
143214// *Operation.ServerResponse.Header or (if a response was returned at
143215// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
143216// to check whether the returned error was because
143217// http.StatusNotModified was returned.
143218func (c *ResourcePoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
143219	gensupport.SetOptions(c.urlParams_, opts...)
143220	res, err := c.doRequest("json")
143221	if res != nil && res.StatusCode == http.StatusNotModified {
143222		if res.Body != nil {
143223			res.Body.Close()
143224		}
143225		return nil, &googleapi.Error{
143226			Code:   res.StatusCode,
143227			Header: res.Header,
143228		}
143229	}
143230	if err != nil {
143231		return nil, err
143232	}
143233	defer googleapi.CloseBody(res)
143234	if err := googleapi.CheckResponse(res); err != nil {
143235		return nil, err
143236	}
143237	ret := &Operation{
143238		ServerResponse: googleapi.ServerResponse{
143239			Header:         res.Header,
143240			HTTPStatusCode: res.StatusCode,
143241		},
143242	}
143243	target := &ret
143244	if err := gensupport.DecodeResponse(target, res); err != nil {
143245		return nil, err
143246	}
143247	return ret, nil
143248	// {
143249	//   "description": "Deletes the specified resource policy.",
143250	//   "httpMethod": "DELETE",
143251	//   "id": "compute.resourcePolicies.delete",
143252	//   "parameterOrder": [
143253	//     "project",
143254	//     "region",
143255	//     "resourcePolicy"
143256	//   ],
143257	//   "parameters": {
143258	//     "project": {
143259	//       "description": "Project ID for this request.",
143260	//       "location": "path",
143261	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143262	//       "required": true,
143263	//       "type": "string"
143264	//     },
143265	//     "region": {
143266	//       "description": "Name of the region for this request.",
143267	//       "location": "path",
143268	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143269	//       "required": true,
143270	//       "type": "string"
143271	//     },
143272	//     "requestId": {
143273	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
143274	//       "location": "query",
143275	//       "type": "string"
143276	//     },
143277	//     "resourcePolicy": {
143278	//       "description": "Name of the resource policy to delete.",
143279	//       "location": "path",
143280	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143281	//       "required": true,
143282	//       "type": "string"
143283	//     }
143284	//   },
143285	//   "path": "{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
143286	//   "response": {
143287	//     "$ref": "Operation"
143288	//   },
143289	//   "scopes": [
143290	//     "https://www.googleapis.com/auth/cloud-platform",
143291	//     "https://www.googleapis.com/auth/compute"
143292	//   ]
143293	// }
143294
143295}
143296
143297// method id "compute.resourcePolicies.get":
143298
143299type ResourcePoliciesGetCall struct {
143300	s              *Service
143301	project        string
143302	region         string
143303	resourcePolicy string
143304	urlParams_     gensupport.URLParams
143305	ifNoneMatch_   string
143306	ctx_           context.Context
143307	header_        http.Header
143308}
143309
143310// Get: Retrieves all information of the specified resource policy.
143311func (r *ResourcePoliciesService) Get(project string, region string, resourcePolicy string) *ResourcePoliciesGetCall {
143312	c := &ResourcePoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143313	c.project = project
143314	c.region = region
143315	c.resourcePolicy = resourcePolicy
143316	return c
143317}
143318
143319// Fields allows partial responses to be retrieved. See
143320// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143321// for more information.
143322func (c *ResourcePoliciesGetCall) Fields(s ...googleapi.Field) *ResourcePoliciesGetCall {
143323	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143324	return c
143325}
143326
143327// IfNoneMatch sets the optional parameter which makes the operation
143328// fail if the object's ETag matches the given value. This is useful for
143329// getting updates only after the object has changed since the last
143330// request. Use googleapi.IsNotModified to check whether the response
143331// error from Do is the result of In-None-Match.
143332func (c *ResourcePoliciesGetCall) IfNoneMatch(entityTag string) *ResourcePoliciesGetCall {
143333	c.ifNoneMatch_ = entityTag
143334	return c
143335}
143336
143337// Context sets the context to be used in this call's Do method. Any
143338// pending HTTP request will be aborted if the provided context is
143339// canceled.
143340func (c *ResourcePoliciesGetCall) Context(ctx context.Context) *ResourcePoliciesGetCall {
143341	c.ctx_ = ctx
143342	return c
143343}
143344
143345// Header returns an http.Header that can be modified by the caller to
143346// add HTTP headers to the request.
143347func (c *ResourcePoliciesGetCall) Header() http.Header {
143348	if c.header_ == nil {
143349		c.header_ = make(http.Header)
143350	}
143351	return c.header_
143352}
143353
143354func (c *ResourcePoliciesGetCall) doRequest(alt string) (*http.Response, error) {
143355	reqHeaders := make(http.Header)
143356	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
143357	for k, v := range c.header_ {
143358		reqHeaders[k] = v
143359	}
143360	reqHeaders.Set("User-Agent", c.s.userAgent())
143361	if c.ifNoneMatch_ != "" {
143362		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
143363	}
143364	var body io.Reader = nil
143365	c.urlParams_.Set("alt", alt)
143366	c.urlParams_.Set("prettyPrint", "false")
143367	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resourcePolicy}")
143368	urls += "?" + c.urlParams_.Encode()
143369	req, err := http.NewRequest("GET", urls, body)
143370	if err != nil {
143371		return nil, err
143372	}
143373	req.Header = reqHeaders
143374	googleapi.Expand(req.URL, map[string]string{
143375		"project":        c.project,
143376		"region":         c.region,
143377		"resourcePolicy": c.resourcePolicy,
143378	})
143379	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143380}
143381
143382// Do executes the "compute.resourcePolicies.get" call.
143383// Exactly one of *ResourcePolicy or error will be non-nil. Any non-2xx
143384// status code is an error. Response headers are in either
143385// *ResourcePolicy.ServerResponse.Header or (if a response was returned
143386// at all) in error.(*googleapi.Error).Header. Use
143387// googleapi.IsNotModified to check whether the returned error was
143388// because http.StatusNotModified was returned.
143389func (c *ResourcePoliciesGetCall) Do(opts ...googleapi.CallOption) (*ResourcePolicy, error) {
143390	gensupport.SetOptions(c.urlParams_, opts...)
143391	res, err := c.doRequest("json")
143392	if res != nil && res.StatusCode == http.StatusNotModified {
143393		if res.Body != nil {
143394			res.Body.Close()
143395		}
143396		return nil, &googleapi.Error{
143397			Code:   res.StatusCode,
143398			Header: res.Header,
143399		}
143400	}
143401	if err != nil {
143402		return nil, err
143403	}
143404	defer googleapi.CloseBody(res)
143405	if err := googleapi.CheckResponse(res); err != nil {
143406		return nil, err
143407	}
143408	ret := &ResourcePolicy{
143409		ServerResponse: googleapi.ServerResponse{
143410			Header:         res.Header,
143411			HTTPStatusCode: res.StatusCode,
143412		},
143413	}
143414	target := &ret
143415	if err := gensupport.DecodeResponse(target, res); err != nil {
143416		return nil, err
143417	}
143418	return ret, nil
143419	// {
143420	//   "description": "Retrieves all information of the specified resource policy.",
143421	//   "httpMethod": "GET",
143422	//   "id": "compute.resourcePolicies.get",
143423	//   "parameterOrder": [
143424	//     "project",
143425	//     "region",
143426	//     "resourcePolicy"
143427	//   ],
143428	//   "parameters": {
143429	//     "project": {
143430	//       "description": "Project ID for this request.",
143431	//       "location": "path",
143432	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143433	//       "required": true,
143434	//       "type": "string"
143435	//     },
143436	//     "region": {
143437	//       "description": "Name of the region for this request.",
143438	//       "location": "path",
143439	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143440	//       "required": true,
143441	//       "type": "string"
143442	//     },
143443	//     "resourcePolicy": {
143444	//       "description": "Name of the resource policy to retrieve.",
143445	//       "location": "path",
143446	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143447	//       "required": true,
143448	//       "type": "string"
143449	//     }
143450	//   },
143451	//   "path": "{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
143452	//   "response": {
143453	//     "$ref": "ResourcePolicy"
143454	//   },
143455	//   "scopes": [
143456	//     "https://www.googleapis.com/auth/cloud-platform",
143457	//     "https://www.googleapis.com/auth/compute",
143458	//     "https://www.googleapis.com/auth/compute.readonly"
143459	//   ]
143460	// }
143461
143462}
143463
143464// method id "compute.resourcePolicies.getIamPolicy":
143465
143466type ResourcePoliciesGetIamPolicyCall struct {
143467	s            *Service
143468	project      string
143469	region       string
143470	resource     string
143471	urlParams_   gensupport.URLParams
143472	ifNoneMatch_ string
143473	ctx_         context.Context
143474	header_      http.Header
143475}
143476
143477// GetIamPolicy: Gets the access control policy for a resource. May be
143478// empty if no such policy or resource exists.
143479func (r *ResourcePoliciesService) GetIamPolicy(project string, region string, resource string) *ResourcePoliciesGetIamPolicyCall {
143480	c := &ResourcePoliciesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143481	c.project = project
143482	c.region = region
143483	c.resource = resource
143484	return c
143485}
143486
143487// OptionsRequestedPolicyVersion sets the optional parameter
143488// "optionsRequestedPolicyVersion": Requested IAM Policy version.
143489func (c *ResourcePoliciesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ResourcePoliciesGetIamPolicyCall {
143490	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
143491	return c
143492}
143493
143494// Fields allows partial responses to be retrieved. See
143495// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143496// for more information.
143497func (c *ResourcePoliciesGetIamPolicyCall) Fields(s ...googleapi.Field) *ResourcePoliciesGetIamPolicyCall {
143498	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143499	return c
143500}
143501
143502// IfNoneMatch sets the optional parameter which makes the operation
143503// fail if the object's ETag matches the given value. This is useful for
143504// getting updates only after the object has changed since the last
143505// request. Use googleapi.IsNotModified to check whether the response
143506// error from Do is the result of In-None-Match.
143507func (c *ResourcePoliciesGetIamPolicyCall) IfNoneMatch(entityTag string) *ResourcePoliciesGetIamPolicyCall {
143508	c.ifNoneMatch_ = entityTag
143509	return c
143510}
143511
143512// Context sets the context to be used in this call's Do method. Any
143513// pending HTTP request will be aborted if the provided context is
143514// canceled.
143515func (c *ResourcePoliciesGetIamPolicyCall) Context(ctx context.Context) *ResourcePoliciesGetIamPolicyCall {
143516	c.ctx_ = ctx
143517	return c
143518}
143519
143520// Header returns an http.Header that can be modified by the caller to
143521// add HTTP headers to the request.
143522func (c *ResourcePoliciesGetIamPolicyCall) Header() http.Header {
143523	if c.header_ == nil {
143524		c.header_ = make(http.Header)
143525	}
143526	return c.header_
143527}
143528
143529func (c *ResourcePoliciesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
143530	reqHeaders := make(http.Header)
143531	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
143532	for k, v := range c.header_ {
143533		reqHeaders[k] = v
143534	}
143535	reqHeaders.Set("User-Agent", c.s.userAgent())
143536	if c.ifNoneMatch_ != "" {
143537		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
143538	}
143539	var body io.Reader = nil
143540	c.urlParams_.Set("alt", alt)
143541	c.urlParams_.Set("prettyPrint", "false")
143542	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy")
143543	urls += "?" + c.urlParams_.Encode()
143544	req, err := http.NewRequest("GET", urls, body)
143545	if err != nil {
143546		return nil, err
143547	}
143548	req.Header = reqHeaders
143549	googleapi.Expand(req.URL, map[string]string{
143550		"project":  c.project,
143551		"region":   c.region,
143552		"resource": c.resource,
143553	})
143554	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143555}
143556
143557// Do executes the "compute.resourcePolicies.getIamPolicy" call.
143558// Exactly one of *Policy or error will be non-nil. Any non-2xx status
143559// code is an error. Response headers are in either
143560// *Policy.ServerResponse.Header or (if a response was returned at all)
143561// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
143562// check whether the returned error was because http.StatusNotModified
143563// was returned.
143564func (c *ResourcePoliciesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
143565	gensupport.SetOptions(c.urlParams_, opts...)
143566	res, err := c.doRequest("json")
143567	if res != nil && res.StatusCode == http.StatusNotModified {
143568		if res.Body != nil {
143569			res.Body.Close()
143570		}
143571		return nil, &googleapi.Error{
143572			Code:   res.StatusCode,
143573			Header: res.Header,
143574		}
143575	}
143576	if err != nil {
143577		return nil, err
143578	}
143579	defer googleapi.CloseBody(res)
143580	if err := googleapi.CheckResponse(res); err != nil {
143581		return nil, err
143582	}
143583	ret := &Policy{
143584		ServerResponse: googleapi.ServerResponse{
143585			Header:         res.Header,
143586			HTTPStatusCode: res.StatusCode,
143587		},
143588	}
143589	target := &ret
143590	if err := gensupport.DecodeResponse(target, res); err != nil {
143591		return nil, err
143592	}
143593	return ret, nil
143594	// {
143595	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
143596	//   "httpMethod": "GET",
143597	//   "id": "compute.resourcePolicies.getIamPolicy",
143598	//   "parameterOrder": [
143599	//     "project",
143600	//     "region",
143601	//     "resource"
143602	//   ],
143603	//   "parameters": {
143604	//     "optionsRequestedPolicyVersion": {
143605	//       "description": "Requested IAM Policy version.",
143606	//       "format": "int32",
143607	//       "location": "query",
143608	//       "type": "integer"
143609	//     },
143610	//     "project": {
143611	//       "description": "Project ID for this request.",
143612	//       "location": "path",
143613	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143614	//       "required": true,
143615	//       "type": "string"
143616	//     },
143617	//     "region": {
143618	//       "description": "The name of the region for this request.",
143619	//       "location": "path",
143620	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143621	//       "required": true,
143622	//       "type": "string"
143623	//     },
143624	//     "resource": {
143625	//       "description": "Name or id of the resource for this request.",
143626	//       "location": "path",
143627	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143628	//       "required": true,
143629	//       "type": "string"
143630	//     }
143631	//   },
143632	//   "path": "{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy",
143633	//   "response": {
143634	//     "$ref": "Policy"
143635	//   },
143636	//   "scopes": [
143637	//     "https://www.googleapis.com/auth/cloud-platform",
143638	//     "https://www.googleapis.com/auth/compute",
143639	//     "https://www.googleapis.com/auth/compute.readonly"
143640	//   ]
143641	// }
143642
143643}
143644
143645// method id "compute.resourcePolicies.insert":
143646
143647type ResourcePoliciesInsertCall struct {
143648	s              *Service
143649	project        string
143650	region         string
143651	resourcepolicy *ResourcePolicy
143652	urlParams_     gensupport.URLParams
143653	ctx_           context.Context
143654	header_        http.Header
143655}
143656
143657// Insert: Creates a new resource policy.
143658func (r *ResourcePoliciesService) Insert(project string, region string, resourcepolicy *ResourcePolicy) *ResourcePoliciesInsertCall {
143659	c := &ResourcePoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143660	c.project = project
143661	c.region = region
143662	c.resourcepolicy = resourcepolicy
143663	return c
143664}
143665
143666// RequestId sets the optional parameter "requestId": An optional
143667// request ID to identify requests. Specify a unique request ID so that
143668// if you must retry your request, the server will know to ignore the
143669// request if it has already been completed.
143670//
143671// For example, consider a situation where you make an initial request
143672// and the request times out. If you make the request again with the
143673// same request ID, the server can check if original operation with the
143674// same request ID was received, and if so, will ignore the second
143675// request. This prevents clients from accidentally creating duplicate
143676// commitments.
143677//
143678// The request ID must be a valid UUID with the exception that zero UUID
143679// is not supported (00000000-0000-0000-0000-000000000000).
143680func (c *ResourcePoliciesInsertCall) RequestId(requestId string) *ResourcePoliciesInsertCall {
143681	c.urlParams_.Set("requestId", requestId)
143682	return c
143683}
143684
143685// Fields allows partial responses to be retrieved. See
143686// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143687// for more information.
143688func (c *ResourcePoliciesInsertCall) Fields(s ...googleapi.Field) *ResourcePoliciesInsertCall {
143689	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143690	return c
143691}
143692
143693// Context sets the context to be used in this call's Do method. Any
143694// pending HTTP request will be aborted if the provided context is
143695// canceled.
143696func (c *ResourcePoliciesInsertCall) Context(ctx context.Context) *ResourcePoliciesInsertCall {
143697	c.ctx_ = ctx
143698	return c
143699}
143700
143701// Header returns an http.Header that can be modified by the caller to
143702// add HTTP headers to the request.
143703func (c *ResourcePoliciesInsertCall) Header() http.Header {
143704	if c.header_ == nil {
143705		c.header_ = make(http.Header)
143706	}
143707	return c.header_
143708}
143709
143710func (c *ResourcePoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
143711	reqHeaders := make(http.Header)
143712	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
143713	for k, v := range c.header_ {
143714		reqHeaders[k] = v
143715	}
143716	reqHeaders.Set("User-Agent", c.s.userAgent())
143717	var body io.Reader = nil
143718	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcepolicy)
143719	if err != nil {
143720		return nil, err
143721	}
143722	reqHeaders.Set("Content-Type", "application/json")
143723	c.urlParams_.Set("alt", alt)
143724	c.urlParams_.Set("prettyPrint", "false")
143725	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies")
143726	urls += "?" + c.urlParams_.Encode()
143727	req, err := http.NewRequest("POST", urls, body)
143728	if err != nil {
143729		return nil, err
143730	}
143731	req.Header = reqHeaders
143732	googleapi.Expand(req.URL, map[string]string{
143733		"project": c.project,
143734		"region":  c.region,
143735	})
143736	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143737}
143738
143739// Do executes the "compute.resourcePolicies.insert" call.
143740// Exactly one of *Operation or error will be non-nil. Any non-2xx
143741// status code is an error. Response headers are in either
143742// *Operation.ServerResponse.Header or (if a response was returned at
143743// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
143744// to check whether the returned error was because
143745// http.StatusNotModified was returned.
143746func (c *ResourcePoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
143747	gensupport.SetOptions(c.urlParams_, opts...)
143748	res, err := c.doRequest("json")
143749	if res != nil && res.StatusCode == http.StatusNotModified {
143750		if res.Body != nil {
143751			res.Body.Close()
143752		}
143753		return nil, &googleapi.Error{
143754			Code:   res.StatusCode,
143755			Header: res.Header,
143756		}
143757	}
143758	if err != nil {
143759		return nil, err
143760	}
143761	defer googleapi.CloseBody(res)
143762	if err := googleapi.CheckResponse(res); err != nil {
143763		return nil, err
143764	}
143765	ret := &Operation{
143766		ServerResponse: googleapi.ServerResponse{
143767			Header:         res.Header,
143768			HTTPStatusCode: res.StatusCode,
143769		},
143770	}
143771	target := &ret
143772	if err := gensupport.DecodeResponse(target, res); err != nil {
143773		return nil, err
143774	}
143775	return ret, nil
143776	// {
143777	//   "description": "Creates a new resource policy.",
143778	//   "httpMethod": "POST",
143779	//   "id": "compute.resourcePolicies.insert",
143780	//   "parameterOrder": [
143781	//     "project",
143782	//     "region"
143783	//   ],
143784	//   "parameters": {
143785	//     "project": {
143786	//       "description": "Project ID for this request.",
143787	//       "location": "path",
143788	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143789	//       "required": true,
143790	//       "type": "string"
143791	//     },
143792	//     "region": {
143793	//       "description": "Name of the region for this request.",
143794	//       "location": "path",
143795	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143796	//       "required": true,
143797	//       "type": "string"
143798	//     },
143799	//     "requestId": {
143800	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
143801	//       "location": "query",
143802	//       "type": "string"
143803	//     }
143804	//   },
143805	//   "path": "{project}/regions/{region}/resourcePolicies",
143806	//   "request": {
143807	//     "$ref": "ResourcePolicy"
143808	//   },
143809	//   "response": {
143810	//     "$ref": "Operation"
143811	//   },
143812	//   "scopes": [
143813	//     "https://www.googleapis.com/auth/cloud-platform",
143814	//     "https://www.googleapis.com/auth/compute"
143815	//   ]
143816	// }
143817
143818}
143819
143820// method id "compute.resourcePolicies.list":
143821
143822type ResourcePoliciesListCall struct {
143823	s            *Service
143824	project      string
143825	region       string
143826	urlParams_   gensupport.URLParams
143827	ifNoneMatch_ string
143828	ctx_         context.Context
143829	header_      http.Header
143830}
143831
143832// List: A list all the resource policies that have been configured for
143833// the specified project in specified region.
143834func (r *ResourcePoliciesService) List(project string, region string) *ResourcePoliciesListCall {
143835	c := &ResourcePoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143836	c.project = project
143837	c.region = region
143838	return c
143839}
143840
143841// Filter sets the optional parameter "filter": A filter expression that
143842// filters resources listed in the response. The expression must specify
143843// the field name, a comparison operator, and the value that you want to
143844// use for filtering. The value must be a string, a number, or a
143845// boolean. The comparison operator must be either =, !=, >, or <.
143846//
143847// For example, if you are filtering Compute Engine instances, you can
143848// exclude instances named example-instance by specifying name !=
143849// example-instance.
143850//
143851// You can also filter nested fields. For example, you could specify
143852// scheduling.automaticRestart = false to include instances only if they
143853// are not scheduled for automatic restarts. You can use filtering on
143854// nested fields to filter based on resource labels.
143855//
143856// To filter on multiple expressions, provide each separate expression
143857// within parentheses. For example, (scheduling.automaticRestart = true)
143858// (cpuPlatform = "Intel Skylake"). By default, each expression is an
143859// AND expression. However, you can include AND and OR expressions
143860// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
143861// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
143862// true).
143863func (c *ResourcePoliciesListCall) Filter(filter string) *ResourcePoliciesListCall {
143864	c.urlParams_.Set("filter", filter)
143865	return c
143866}
143867
143868// MaxResults sets the optional parameter "maxResults": The maximum
143869// number of results per page that should be returned. If the number of
143870// available results is larger than maxResults, Compute Engine returns a
143871// nextPageToken that can be used to get the next page of results in
143872// subsequent list requests. Acceptable values are 0 to 500, inclusive.
143873// (Default: 500)
143874func (c *ResourcePoliciesListCall) MaxResults(maxResults int64) *ResourcePoliciesListCall {
143875	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
143876	return c
143877}
143878
143879// OrderBy sets the optional parameter "orderBy": Sorts list results by
143880// a certain order. By default, results are returned in alphanumerical
143881// order based on the resource name.
143882//
143883// You can also sort results in descending order based on the creation
143884// timestamp using orderBy="creationTimestamp desc". This sorts results
143885// based on the creationTimestamp field in reverse chronological order
143886// (newest result first). Use this to sort resources like operations so
143887// that the newest operation is returned first.
143888//
143889// Currently, only sorting by name or creationTimestamp desc is
143890// supported.
143891func (c *ResourcePoliciesListCall) OrderBy(orderBy string) *ResourcePoliciesListCall {
143892	c.urlParams_.Set("orderBy", orderBy)
143893	return c
143894}
143895
143896// PageToken sets the optional parameter "pageToken": Specifies a page
143897// token to use. Set pageToken to the nextPageToken returned by a
143898// previous list request to get the next page of results.
143899func (c *ResourcePoliciesListCall) PageToken(pageToken string) *ResourcePoliciesListCall {
143900	c.urlParams_.Set("pageToken", pageToken)
143901	return c
143902}
143903
143904// Fields allows partial responses to be retrieved. See
143905// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143906// for more information.
143907func (c *ResourcePoliciesListCall) Fields(s ...googleapi.Field) *ResourcePoliciesListCall {
143908	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143909	return c
143910}
143911
143912// IfNoneMatch sets the optional parameter which makes the operation
143913// fail if the object's ETag matches the given value. This is useful for
143914// getting updates only after the object has changed since the last
143915// request. Use googleapi.IsNotModified to check whether the response
143916// error from Do is the result of In-None-Match.
143917func (c *ResourcePoliciesListCall) IfNoneMatch(entityTag string) *ResourcePoliciesListCall {
143918	c.ifNoneMatch_ = entityTag
143919	return c
143920}
143921
143922// Context sets the context to be used in this call's Do method. Any
143923// pending HTTP request will be aborted if the provided context is
143924// canceled.
143925func (c *ResourcePoliciesListCall) Context(ctx context.Context) *ResourcePoliciesListCall {
143926	c.ctx_ = ctx
143927	return c
143928}
143929
143930// Header returns an http.Header that can be modified by the caller to
143931// add HTTP headers to the request.
143932func (c *ResourcePoliciesListCall) Header() http.Header {
143933	if c.header_ == nil {
143934		c.header_ = make(http.Header)
143935	}
143936	return c.header_
143937}
143938
143939func (c *ResourcePoliciesListCall) doRequest(alt string) (*http.Response, error) {
143940	reqHeaders := make(http.Header)
143941	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
143942	for k, v := range c.header_ {
143943		reqHeaders[k] = v
143944	}
143945	reqHeaders.Set("User-Agent", c.s.userAgent())
143946	if c.ifNoneMatch_ != "" {
143947		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
143948	}
143949	var body io.Reader = nil
143950	c.urlParams_.Set("alt", alt)
143951	c.urlParams_.Set("prettyPrint", "false")
143952	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies")
143953	urls += "?" + c.urlParams_.Encode()
143954	req, err := http.NewRequest("GET", urls, body)
143955	if err != nil {
143956		return nil, err
143957	}
143958	req.Header = reqHeaders
143959	googleapi.Expand(req.URL, map[string]string{
143960		"project": c.project,
143961		"region":  c.region,
143962	})
143963	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143964}
143965
143966// Do executes the "compute.resourcePolicies.list" call.
143967// Exactly one of *ResourcePolicyList or error will be non-nil. Any
143968// non-2xx status code is an error. Response headers are in either
143969// *ResourcePolicyList.ServerResponse.Header or (if a response was
143970// returned at all) in error.(*googleapi.Error).Header. Use
143971// googleapi.IsNotModified to check whether the returned error was
143972// because http.StatusNotModified was returned.
143973func (c *ResourcePoliciesListCall) Do(opts ...googleapi.CallOption) (*ResourcePolicyList, error) {
143974	gensupport.SetOptions(c.urlParams_, opts...)
143975	res, err := c.doRequest("json")
143976	if res != nil && res.StatusCode == http.StatusNotModified {
143977		if res.Body != nil {
143978			res.Body.Close()
143979		}
143980		return nil, &googleapi.Error{
143981			Code:   res.StatusCode,
143982			Header: res.Header,
143983		}
143984	}
143985	if err != nil {
143986		return nil, err
143987	}
143988	defer googleapi.CloseBody(res)
143989	if err := googleapi.CheckResponse(res); err != nil {
143990		return nil, err
143991	}
143992	ret := &ResourcePolicyList{
143993		ServerResponse: googleapi.ServerResponse{
143994			Header:         res.Header,
143995			HTTPStatusCode: res.StatusCode,
143996		},
143997	}
143998	target := &ret
143999	if err := gensupport.DecodeResponse(target, res); err != nil {
144000		return nil, err
144001	}
144002	return ret, nil
144003	// {
144004	//   "description": "A list all the resource policies that have been configured for the specified project in specified region.",
144005	//   "httpMethod": "GET",
144006	//   "id": "compute.resourcePolicies.list",
144007	//   "parameterOrder": [
144008	//     "project",
144009	//     "region"
144010	//   ],
144011	//   "parameters": {
144012	//     "filter": {
144013	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
144014	//       "location": "query",
144015	//       "type": "string"
144016	//     },
144017	//     "maxResults": {
144018	//       "default": "500",
144019	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
144020	//       "format": "uint32",
144021	//       "location": "query",
144022	//       "minimum": "0",
144023	//       "type": "integer"
144024	//     },
144025	//     "orderBy": {
144026	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
144027	//       "location": "query",
144028	//       "type": "string"
144029	//     },
144030	//     "pageToken": {
144031	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
144032	//       "location": "query",
144033	//       "type": "string"
144034	//     },
144035	//     "project": {
144036	//       "description": "Project ID for this request.",
144037	//       "location": "path",
144038	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144039	//       "required": true,
144040	//       "type": "string"
144041	//     },
144042	//     "region": {
144043	//       "description": "Name of the region for this request.",
144044	//       "location": "path",
144045	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144046	//       "required": true,
144047	//       "type": "string"
144048	//     }
144049	//   },
144050	//   "path": "{project}/regions/{region}/resourcePolicies",
144051	//   "response": {
144052	//     "$ref": "ResourcePolicyList"
144053	//   },
144054	//   "scopes": [
144055	//     "https://www.googleapis.com/auth/cloud-platform",
144056	//     "https://www.googleapis.com/auth/compute",
144057	//     "https://www.googleapis.com/auth/compute.readonly"
144058	//   ]
144059	// }
144060
144061}
144062
144063// Pages invokes f for each page of results.
144064// A non-nil error returned from f will halt the iteration.
144065// The provided context supersedes any context provided to the Context method.
144066func (c *ResourcePoliciesListCall) Pages(ctx context.Context, f func(*ResourcePolicyList) error) error {
144067	c.ctx_ = ctx
144068	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
144069	for {
144070		x, err := c.Do()
144071		if err != nil {
144072			return err
144073		}
144074		if err := f(x); err != nil {
144075			return err
144076		}
144077		if x.NextPageToken == "" {
144078			return nil
144079		}
144080		c.PageToken(x.NextPageToken)
144081	}
144082}
144083
144084// method id "compute.resourcePolicies.setIamPolicy":
144085
144086type ResourcePoliciesSetIamPolicyCall struct {
144087	s                      *Service
144088	project                string
144089	region                 string
144090	resource               string
144091	regionsetpolicyrequest *RegionSetPolicyRequest
144092	urlParams_             gensupport.URLParams
144093	ctx_                   context.Context
144094	header_                http.Header
144095}
144096
144097// SetIamPolicy: Sets the access control policy on the specified
144098// resource. Replaces any existing policy.
144099func (r *ResourcePoliciesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *ResourcePoliciesSetIamPolicyCall {
144100	c := &ResourcePoliciesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144101	c.project = project
144102	c.region = region
144103	c.resource = resource
144104	c.regionsetpolicyrequest = regionsetpolicyrequest
144105	return c
144106}
144107
144108// Fields allows partial responses to be retrieved. See
144109// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144110// for more information.
144111func (c *ResourcePoliciesSetIamPolicyCall) Fields(s ...googleapi.Field) *ResourcePoliciesSetIamPolicyCall {
144112	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144113	return c
144114}
144115
144116// Context sets the context to be used in this call's Do method. Any
144117// pending HTTP request will be aborted if the provided context is
144118// canceled.
144119func (c *ResourcePoliciesSetIamPolicyCall) Context(ctx context.Context) *ResourcePoliciesSetIamPolicyCall {
144120	c.ctx_ = ctx
144121	return c
144122}
144123
144124// Header returns an http.Header that can be modified by the caller to
144125// add HTTP headers to the request.
144126func (c *ResourcePoliciesSetIamPolicyCall) Header() http.Header {
144127	if c.header_ == nil {
144128		c.header_ = make(http.Header)
144129	}
144130	return c.header_
144131}
144132
144133func (c *ResourcePoliciesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
144134	reqHeaders := make(http.Header)
144135	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
144136	for k, v := range c.header_ {
144137		reqHeaders[k] = v
144138	}
144139	reqHeaders.Set("User-Agent", c.s.userAgent())
144140	var body io.Reader = nil
144141	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
144142	if err != nil {
144143		return nil, err
144144	}
144145	reqHeaders.Set("Content-Type", "application/json")
144146	c.urlParams_.Set("alt", alt)
144147	c.urlParams_.Set("prettyPrint", "false")
144148	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy")
144149	urls += "?" + c.urlParams_.Encode()
144150	req, err := http.NewRequest("POST", urls, body)
144151	if err != nil {
144152		return nil, err
144153	}
144154	req.Header = reqHeaders
144155	googleapi.Expand(req.URL, map[string]string{
144156		"project":  c.project,
144157		"region":   c.region,
144158		"resource": c.resource,
144159	})
144160	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144161}
144162
144163// Do executes the "compute.resourcePolicies.setIamPolicy" call.
144164// Exactly one of *Policy or error will be non-nil. Any non-2xx status
144165// code is an error. Response headers are in either
144166// *Policy.ServerResponse.Header or (if a response was returned at all)
144167// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
144168// check whether the returned error was because http.StatusNotModified
144169// was returned.
144170func (c *ResourcePoliciesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
144171	gensupport.SetOptions(c.urlParams_, opts...)
144172	res, err := c.doRequest("json")
144173	if res != nil && res.StatusCode == http.StatusNotModified {
144174		if res.Body != nil {
144175			res.Body.Close()
144176		}
144177		return nil, &googleapi.Error{
144178			Code:   res.StatusCode,
144179			Header: res.Header,
144180		}
144181	}
144182	if err != nil {
144183		return nil, err
144184	}
144185	defer googleapi.CloseBody(res)
144186	if err := googleapi.CheckResponse(res); err != nil {
144187		return nil, err
144188	}
144189	ret := &Policy{
144190		ServerResponse: googleapi.ServerResponse{
144191			Header:         res.Header,
144192			HTTPStatusCode: res.StatusCode,
144193		},
144194	}
144195	target := &ret
144196	if err := gensupport.DecodeResponse(target, res); err != nil {
144197		return nil, err
144198	}
144199	return ret, nil
144200	// {
144201	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
144202	//   "httpMethod": "POST",
144203	//   "id": "compute.resourcePolicies.setIamPolicy",
144204	//   "parameterOrder": [
144205	//     "project",
144206	//     "region",
144207	//     "resource"
144208	//   ],
144209	//   "parameters": {
144210	//     "project": {
144211	//       "description": "Project ID for this request.",
144212	//       "location": "path",
144213	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144214	//       "required": true,
144215	//       "type": "string"
144216	//     },
144217	//     "region": {
144218	//       "description": "The name of the region for this request.",
144219	//       "location": "path",
144220	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144221	//       "required": true,
144222	//       "type": "string"
144223	//     },
144224	//     "resource": {
144225	//       "description": "Name or id of the resource for this request.",
144226	//       "location": "path",
144227	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144228	//       "required": true,
144229	//       "type": "string"
144230	//     }
144231	//   },
144232	//   "path": "{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy",
144233	//   "request": {
144234	//     "$ref": "RegionSetPolicyRequest"
144235	//   },
144236	//   "response": {
144237	//     "$ref": "Policy"
144238	//   },
144239	//   "scopes": [
144240	//     "https://www.googleapis.com/auth/cloud-platform",
144241	//     "https://www.googleapis.com/auth/compute"
144242	//   ]
144243	// }
144244
144245}
144246
144247// method id "compute.resourcePolicies.testIamPermissions":
144248
144249type ResourcePoliciesTestIamPermissionsCall struct {
144250	s                      *Service
144251	project                string
144252	region                 string
144253	resource               string
144254	testpermissionsrequest *TestPermissionsRequest
144255	urlParams_             gensupport.URLParams
144256	ctx_                   context.Context
144257	header_                http.Header
144258}
144259
144260// TestIamPermissions: Returns permissions that a caller has on the
144261// specified resource.
144262func (r *ResourcePoliciesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *ResourcePoliciesTestIamPermissionsCall {
144263	c := &ResourcePoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144264	c.project = project
144265	c.region = region
144266	c.resource = resource
144267	c.testpermissionsrequest = testpermissionsrequest
144268	return c
144269}
144270
144271// Fields allows partial responses to be retrieved. See
144272// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144273// for more information.
144274func (c *ResourcePoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ResourcePoliciesTestIamPermissionsCall {
144275	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144276	return c
144277}
144278
144279// Context sets the context to be used in this call's Do method. Any
144280// pending HTTP request will be aborted if the provided context is
144281// canceled.
144282func (c *ResourcePoliciesTestIamPermissionsCall) Context(ctx context.Context) *ResourcePoliciesTestIamPermissionsCall {
144283	c.ctx_ = ctx
144284	return c
144285}
144286
144287// Header returns an http.Header that can be modified by the caller to
144288// add HTTP headers to the request.
144289func (c *ResourcePoliciesTestIamPermissionsCall) Header() http.Header {
144290	if c.header_ == nil {
144291		c.header_ = make(http.Header)
144292	}
144293	return c.header_
144294}
144295
144296func (c *ResourcePoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
144297	reqHeaders := make(http.Header)
144298	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
144299	for k, v := range c.header_ {
144300		reqHeaders[k] = v
144301	}
144302	reqHeaders.Set("User-Agent", c.s.userAgent())
144303	var body io.Reader = nil
144304	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
144305	if err != nil {
144306		return nil, err
144307	}
144308	reqHeaders.Set("Content-Type", "application/json")
144309	c.urlParams_.Set("alt", alt)
144310	c.urlParams_.Set("prettyPrint", "false")
144311	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions")
144312	urls += "?" + c.urlParams_.Encode()
144313	req, err := http.NewRequest("POST", urls, body)
144314	if err != nil {
144315		return nil, err
144316	}
144317	req.Header = reqHeaders
144318	googleapi.Expand(req.URL, map[string]string{
144319		"project":  c.project,
144320		"region":   c.region,
144321		"resource": c.resource,
144322	})
144323	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144324}
144325
144326// Do executes the "compute.resourcePolicies.testIamPermissions" call.
144327// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
144328// non-2xx status code is an error. Response headers are in either
144329// *TestPermissionsResponse.ServerResponse.Header or (if a response was
144330// returned at all) in error.(*googleapi.Error).Header. Use
144331// googleapi.IsNotModified to check whether the returned error was
144332// because http.StatusNotModified was returned.
144333func (c *ResourcePoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
144334	gensupport.SetOptions(c.urlParams_, opts...)
144335	res, err := c.doRequest("json")
144336	if res != nil && res.StatusCode == http.StatusNotModified {
144337		if res.Body != nil {
144338			res.Body.Close()
144339		}
144340		return nil, &googleapi.Error{
144341			Code:   res.StatusCode,
144342			Header: res.Header,
144343		}
144344	}
144345	if err != nil {
144346		return nil, err
144347	}
144348	defer googleapi.CloseBody(res)
144349	if err := googleapi.CheckResponse(res); err != nil {
144350		return nil, err
144351	}
144352	ret := &TestPermissionsResponse{
144353		ServerResponse: googleapi.ServerResponse{
144354			Header:         res.Header,
144355			HTTPStatusCode: res.StatusCode,
144356		},
144357	}
144358	target := &ret
144359	if err := gensupport.DecodeResponse(target, res); err != nil {
144360		return nil, err
144361	}
144362	return ret, nil
144363	// {
144364	//   "description": "Returns permissions that a caller has on the specified resource.",
144365	//   "httpMethod": "POST",
144366	//   "id": "compute.resourcePolicies.testIamPermissions",
144367	//   "parameterOrder": [
144368	//     "project",
144369	//     "region",
144370	//     "resource"
144371	//   ],
144372	//   "parameters": {
144373	//     "project": {
144374	//       "description": "Project ID for this request.",
144375	//       "location": "path",
144376	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144377	//       "required": true,
144378	//       "type": "string"
144379	//     },
144380	//     "region": {
144381	//       "description": "The name of the region for this request.",
144382	//       "location": "path",
144383	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144384	//       "required": true,
144385	//       "type": "string"
144386	//     },
144387	//     "resource": {
144388	//       "description": "Name or id of the resource for this request.",
144389	//       "location": "path",
144390	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144391	//       "required": true,
144392	//       "type": "string"
144393	//     }
144394	//   },
144395	//   "path": "{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions",
144396	//   "request": {
144397	//     "$ref": "TestPermissionsRequest"
144398	//   },
144399	//   "response": {
144400	//     "$ref": "TestPermissionsResponse"
144401	//   },
144402	//   "scopes": [
144403	//     "https://www.googleapis.com/auth/cloud-platform",
144404	//     "https://www.googleapis.com/auth/compute",
144405	//     "https://www.googleapis.com/auth/compute.readonly"
144406	//   ]
144407	// }
144408
144409}
144410
144411// method id "compute.routers.aggregatedList":
144412
144413type RoutersAggregatedListCall struct {
144414	s            *Service
144415	project      string
144416	urlParams_   gensupport.URLParams
144417	ifNoneMatch_ string
144418	ctx_         context.Context
144419	header_      http.Header
144420}
144421
144422// AggregatedList: Retrieves an aggregated list of routers.
144423func (r *RoutersService) AggregatedList(project string) *RoutersAggregatedListCall {
144424	c := &RoutersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144425	c.project = project
144426	return c
144427}
144428
144429// Filter sets the optional parameter "filter": A filter expression that
144430// filters resources listed in the response. The expression must specify
144431// the field name, a comparison operator, and the value that you want to
144432// use for filtering. The value must be a string, a number, or a
144433// boolean. The comparison operator must be either =, !=, >, or <.
144434//
144435// For example, if you are filtering Compute Engine instances, you can
144436// exclude instances named example-instance by specifying name !=
144437// example-instance.
144438//
144439// You can also filter nested fields. For example, you could specify
144440// scheduling.automaticRestart = false to include instances only if they
144441// are not scheduled for automatic restarts. You can use filtering on
144442// nested fields to filter based on resource labels.
144443//
144444// To filter on multiple expressions, provide each separate expression
144445// within parentheses. For example, (scheduling.automaticRestart = true)
144446// (cpuPlatform = "Intel Skylake"). By default, each expression is an
144447// AND expression. However, you can include AND and OR expressions
144448// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
144449// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
144450// true).
144451func (c *RoutersAggregatedListCall) Filter(filter string) *RoutersAggregatedListCall {
144452	c.urlParams_.Set("filter", filter)
144453	return c
144454}
144455
144456// IncludeAllScopes sets the optional parameter "includeAllScopes":
144457// Indicates whether every visible scope for each scope type (zone,
144458// region, global) should be included in the response. For new resource
144459// types added after this field, the flag has no effect as new resource
144460// types will always include every visible scope for each scope type in
144461// response. For resource types which predate this field, if this flag
144462// is omitted or false, only scopes of the scope types where the
144463// resource type is expected to be found will be included.
144464func (c *RoutersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RoutersAggregatedListCall {
144465	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
144466	return c
144467}
144468
144469// MaxResults sets the optional parameter "maxResults": The maximum
144470// number of results per page that should be returned. If the number of
144471// available results is larger than maxResults, Compute Engine returns a
144472// nextPageToken that can be used to get the next page of results in
144473// subsequent list requests. Acceptable values are 0 to 500, inclusive.
144474// (Default: 500)
144475func (c *RoutersAggregatedListCall) MaxResults(maxResults int64) *RoutersAggregatedListCall {
144476	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
144477	return c
144478}
144479
144480// OrderBy sets the optional parameter "orderBy": Sorts list results by
144481// a certain order. By default, results are returned in alphanumerical
144482// order based on the resource name.
144483//
144484// You can also sort results in descending order based on the creation
144485// timestamp using orderBy="creationTimestamp desc". This sorts results
144486// based on the creationTimestamp field in reverse chronological order
144487// (newest result first). Use this to sort resources like operations so
144488// that the newest operation is returned first.
144489//
144490// Currently, only sorting by name or creationTimestamp desc is
144491// supported.
144492func (c *RoutersAggregatedListCall) OrderBy(orderBy string) *RoutersAggregatedListCall {
144493	c.urlParams_.Set("orderBy", orderBy)
144494	return c
144495}
144496
144497// PageToken sets the optional parameter "pageToken": Specifies a page
144498// token to use. Set pageToken to the nextPageToken returned by a
144499// previous list request to get the next page of results.
144500func (c *RoutersAggregatedListCall) PageToken(pageToken string) *RoutersAggregatedListCall {
144501	c.urlParams_.Set("pageToken", pageToken)
144502	return c
144503}
144504
144505// Fields allows partial responses to be retrieved. See
144506// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144507// for more information.
144508func (c *RoutersAggregatedListCall) Fields(s ...googleapi.Field) *RoutersAggregatedListCall {
144509	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144510	return c
144511}
144512
144513// IfNoneMatch sets the optional parameter which makes the operation
144514// fail if the object's ETag matches the given value. This is useful for
144515// getting updates only after the object has changed since the last
144516// request. Use googleapi.IsNotModified to check whether the response
144517// error from Do is the result of In-None-Match.
144518func (c *RoutersAggregatedListCall) IfNoneMatch(entityTag string) *RoutersAggregatedListCall {
144519	c.ifNoneMatch_ = entityTag
144520	return c
144521}
144522
144523// Context sets the context to be used in this call's Do method. Any
144524// pending HTTP request will be aborted if the provided context is
144525// canceled.
144526func (c *RoutersAggregatedListCall) Context(ctx context.Context) *RoutersAggregatedListCall {
144527	c.ctx_ = ctx
144528	return c
144529}
144530
144531// Header returns an http.Header that can be modified by the caller to
144532// add HTTP headers to the request.
144533func (c *RoutersAggregatedListCall) Header() http.Header {
144534	if c.header_ == nil {
144535		c.header_ = make(http.Header)
144536	}
144537	return c.header_
144538}
144539
144540func (c *RoutersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
144541	reqHeaders := make(http.Header)
144542	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
144543	for k, v := range c.header_ {
144544		reqHeaders[k] = v
144545	}
144546	reqHeaders.Set("User-Agent", c.s.userAgent())
144547	if c.ifNoneMatch_ != "" {
144548		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
144549	}
144550	var body io.Reader = nil
144551	c.urlParams_.Set("alt", alt)
144552	c.urlParams_.Set("prettyPrint", "false")
144553	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/routers")
144554	urls += "?" + c.urlParams_.Encode()
144555	req, err := http.NewRequest("GET", urls, body)
144556	if err != nil {
144557		return nil, err
144558	}
144559	req.Header = reqHeaders
144560	googleapi.Expand(req.URL, map[string]string{
144561		"project": c.project,
144562	})
144563	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144564}
144565
144566// Do executes the "compute.routers.aggregatedList" call.
144567// Exactly one of *RouterAggregatedList or error will be non-nil. Any
144568// non-2xx status code is an error. Response headers are in either
144569// *RouterAggregatedList.ServerResponse.Header or (if a response was
144570// returned at all) in error.(*googleapi.Error).Header. Use
144571// googleapi.IsNotModified to check whether the returned error was
144572// because http.StatusNotModified was returned.
144573func (c *RoutersAggregatedListCall) Do(opts ...googleapi.CallOption) (*RouterAggregatedList, error) {
144574	gensupport.SetOptions(c.urlParams_, opts...)
144575	res, err := c.doRequest("json")
144576	if res != nil && res.StatusCode == http.StatusNotModified {
144577		if res.Body != nil {
144578			res.Body.Close()
144579		}
144580		return nil, &googleapi.Error{
144581			Code:   res.StatusCode,
144582			Header: res.Header,
144583		}
144584	}
144585	if err != nil {
144586		return nil, err
144587	}
144588	defer googleapi.CloseBody(res)
144589	if err := googleapi.CheckResponse(res); err != nil {
144590		return nil, err
144591	}
144592	ret := &RouterAggregatedList{
144593		ServerResponse: googleapi.ServerResponse{
144594			Header:         res.Header,
144595			HTTPStatusCode: res.StatusCode,
144596		},
144597	}
144598	target := &ret
144599	if err := gensupport.DecodeResponse(target, res); err != nil {
144600		return nil, err
144601	}
144602	return ret, nil
144603	// {
144604	//   "description": "Retrieves an aggregated list of routers.",
144605	//   "httpMethod": "GET",
144606	//   "id": "compute.routers.aggregatedList",
144607	//   "parameterOrder": [
144608	//     "project"
144609	//   ],
144610	//   "parameters": {
144611	//     "filter": {
144612	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
144613	//       "location": "query",
144614	//       "type": "string"
144615	//     },
144616	//     "includeAllScopes": {
144617	//       "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.",
144618	//       "location": "query",
144619	//       "type": "boolean"
144620	//     },
144621	//     "maxResults": {
144622	//       "default": "500",
144623	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
144624	//       "format": "uint32",
144625	//       "location": "query",
144626	//       "minimum": "0",
144627	//       "type": "integer"
144628	//     },
144629	//     "orderBy": {
144630	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
144631	//       "location": "query",
144632	//       "type": "string"
144633	//     },
144634	//     "pageToken": {
144635	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
144636	//       "location": "query",
144637	//       "type": "string"
144638	//     },
144639	//     "project": {
144640	//       "description": "Project ID for this request.",
144641	//       "location": "path",
144642	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144643	//       "required": true,
144644	//       "type": "string"
144645	//     }
144646	//   },
144647	//   "path": "{project}/aggregated/routers",
144648	//   "response": {
144649	//     "$ref": "RouterAggregatedList"
144650	//   },
144651	//   "scopes": [
144652	//     "https://www.googleapis.com/auth/cloud-platform",
144653	//     "https://www.googleapis.com/auth/compute",
144654	//     "https://www.googleapis.com/auth/compute.readonly"
144655	//   ]
144656	// }
144657
144658}
144659
144660// Pages invokes f for each page of results.
144661// A non-nil error returned from f will halt the iteration.
144662// The provided context supersedes any context provided to the Context method.
144663func (c *RoutersAggregatedListCall) Pages(ctx context.Context, f func(*RouterAggregatedList) error) error {
144664	c.ctx_ = ctx
144665	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
144666	for {
144667		x, err := c.Do()
144668		if err != nil {
144669			return err
144670		}
144671		if err := f(x); err != nil {
144672			return err
144673		}
144674		if x.NextPageToken == "" {
144675			return nil
144676		}
144677		c.PageToken(x.NextPageToken)
144678	}
144679}
144680
144681// method id "compute.routers.delete":
144682
144683type RoutersDeleteCall struct {
144684	s          *Service
144685	project    string
144686	region     string
144687	router     string
144688	urlParams_ gensupport.URLParams
144689	ctx_       context.Context
144690	header_    http.Header
144691}
144692
144693// Delete: Deletes the specified Router resource.
144694func (r *RoutersService) Delete(project string, region string, router string) *RoutersDeleteCall {
144695	c := &RoutersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144696	c.project = project
144697	c.region = region
144698	c.router = router
144699	return c
144700}
144701
144702// RequestId sets the optional parameter "requestId": An optional
144703// request ID to identify requests. Specify a unique request ID so that
144704// if you must retry your request, the server will know to ignore the
144705// request if it has already been completed.
144706//
144707// For example, consider a situation where you make an initial request
144708// and the request times out. If you make the request again with the
144709// same request ID, the server can check if original operation with the
144710// same request ID was received, and if so, will ignore the second
144711// request. This prevents clients from accidentally creating duplicate
144712// commitments.
144713//
144714// The request ID must be a valid UUID with the exception that zero UUID
144715// is not supported (00000000-0000-0000-0000-000000000000).
144716func (c *RoutersDeleteCall) RequestId(requestId string) *RoutersDeleteCall {
144717	c.urlParams_.Set("requestId", requestId)
144718	return c
144719}
144720
144721// Fields allows partial responses to be retrieved. See
144722// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144723// for more information.
144724func (c *RoutersDeleteCall) Fields(s ...googleapi.Field) *RoutersDeleteCall {
144725	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144726	return c
144727}
144728
144729// Context sets the context to be used in this call's Do method. Any
144730// pending HTTP request will be aborted if the provided context is
144731// canceled.
144732func (c *RoutersDeleteCall) Context(ctx context.Context) *RoutersDeleteCall {
144733	c.ctx_ = ctx
144734	return c
144735}
144736
144737// Header returns an http.Header that can be modified by the caller to
144738// add HTTP headers to the request.
144739func (c *RoutersDeleteCall) Header() http.Header {
144740	if c.header_ == nil {
144741		c.header_ = make(http.Header)
144742	}
144743	return c.header_
144744}
144745
144746func (c *RoutersDeleteCall) doRequest(alt string) (*http.Response, error) {
144747	reqHeaders := make(http.Header)
144748	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
144749	for k, v := range c.header_ {
144750		reqHeaders[k] = v
144751	}
144752	reqHeaders.Set("User-Agent", c.s.userAgent())
144753	var body io.Reader = nil
144754	c.urlParams_.Set("alt", alt)
144755	c.urlParams_.Set("prettyPrint", "false")
144756	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
144757	urls += "?" + c.urlParams_.Encode()
144758	req, err := http.NewRequest("DELETE", urls, body)
144759	if err != nil {
144760		return nil, err
144761	}
144762	req.Header = reqHeaders
144763	googleapi.Expand(req.URL, map[string]string{
144764		"project": c.project,
144765		"region":  c.region,
144766		"router":  c.router,
144767	})
144768	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144769}
144770
144771// Do executes the "compute.routers.delete" call.
144772// Exactly one of *Operation or error will be non-nil. Any non-2xx
144773// status code is an error. Response headers are in either
144774// *Operation.ServerResponse.Header or (if a response was returned at
144775// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
144776// to check whether the returned error was because
144777// http.StatusNotModified was returned.
144778func (c *RoutersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
144779	gensupport.SetOptions(c.urlParams_, opts...)
144780	res, err := c.doRequest("json")
144781	if res != nil && res.StatusCode == http.StatusNotModified {
144782		if res.Body != nil {
144783			res.Body.Close()
144784		}
144785		return nil, &googleapi.Error{
144786			Code:   res.StatusCode,
144787			Header: res.Header,
144788		}
144789	}
144790	if err != nil {
144791		return nil, err
144792	}
144793	defer googleapi.CloseBody(res)
144794	if err := googleapi.CheckResponse(res); err != nil {
144795		return nil, err
144796	}
144797	ret := &Operation{
144798		ServerResponse: googleapi.ServerResponse{
144799			Header:         res.Header,
144800			HTTPStatusCode: res.StatusCode,
144801		},
144802	}
144803	target := &ret
144804	if err := gensupport.DecodeResponse(target, res); err != nil {
144805		return nil, err
144806	}
144807	return ret, nil
144808	// {
144809	//   "description": "Deletes the specified Router resource.",
144810	//   "httpMethod": "DELETE",
144811	//   "id": "compute.routers.delete",
144812	//   "parameterOrder": [
144813	//     "project",
144814	//     "region",
144815	//     "router"
144816	//   ],
144817	//   "parameters": {
144818	//     "project": {
144819	//       "description": "Project ID for this request.",
144820	//       "location": "path",
144821	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144822	//       "required": true,
144823	//       "type": "string"
144824	//     },
144825	//     "region": {
144826	//       "description": "Name of the region for this request.",
144827	//       "location": "path",
144828	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144829	//       "required": true,
144830	//       "type": "string"
144831	//     },
144832	//     "requestId": {
144833	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
144834	//       "location": "query",
144835	//       "type": "string"
144836	//     },
144837	//     "router": {
144838	//       "description": "Name of the Router resource to delete.",
144839	//       "location": "path",
144840	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144841	//       "required": true,
144842	//       "type": "string"
144843	//     }
144844	//   },
144845	//   "path": "{project}/regions/{region}/routers/{router}",
144846	//   "response": {
144847	//     "$ref": "Operation"
144848	//   },
144849	//   "scopes": [
144850	//     "https://www.googleapis.com/auth/cloud-platform",
144851	//     "https://www.googleapis.com/auth/compute"
144852	//   ]
144853	// }
144854
144855}
144856
144857// method id "compute.routers.get":
144858
144859type RoutersGetCall struct {
144860	s            *Service
144861	project      string
144862	region       string
144863	router       string
144864	urlParams_   gensupport.URLParams
144865	ifNoneMatch_ string
144866	ctx_         context.Context
144867	header_      http.Header
144868}
144869
144870// Get: Returns the specified Router resource. Gets a list of available
144871// routers by making a list() request.
144872func (r *RoutersService) Get(project string, region string, router string) *RoutersGetCall {
144873	c := &RoutersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144874	c.project = project
144875	c.region = region
144876	c.router = router
144877	return c
144878}
144879
144880// Fields allows partial responses to be retrieved. See
144881// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144882// for more information.
144883func (c *RoutersGetCall) Fields(s ...googleapi.Field) *RoutersGetCall {
144884	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144885	return c
144886}
144887
144888// IfNoneMatch sets the optional parameter which makes the operation
144889// fail if the object's ETag matches the given value. This is useful for
144890// getting updates only after the object has changed since the last
144891// request. Use googleapi.IsNotModified to check whether the response
144892// error from Do is the result of In-None-Match.
144893func (c *RoutersGetCall) IfNoneMatch(entityTag string) *RoutersGetCall {
144894	c.ifNoneMatch_ = entityTag
144895	return c
144896}
144897
144898// Context sets the context to be used in this call's Do method. Any
144899// pending HTTP request will be aborted if the provided context is
144900// canceled.
144901func (c *RoutersGetCall) Context(ctx context.Context) *RoutersGetCall {
144902	c.ctx_ = ctx
144903	return c
144904}
144905
144906// Header returns an http.Header that can be modified by the caller to
144907// add HTTP headers to the request.
144908func (c *RoutersGetCall) Header() http.Header {
144909	if c.header_ == nil {
144910		c.header_ = make(http.Header)
144911	}
144912	return c.header_
144913}
144914
144915func (c *RoutersGetCall) doRequest(alt string) (*http.Response, error) {
144916	reqHeaders := make(http.Header)
144917	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
144918	for k, v := range c.header_ {
144919		reqHeaders[k] = v
144920	}
144921	reqHeaders.Set("User-Agent", c.s.userAgent())
144922	if c.ifNoneMatch_ != "" {
144923		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
144924	}
144925	var body io.Reader = nil
144926	c.urlParams_.Set("alt", alt)
144927	c.urlParams_.Set("prettyPrint", "false")
144928	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
144929	urls += "?" + c.urlParams_.Encode()
144930	req, err := http.NewRequest("GET", urls, body)
144931	if err != nil {
144932		return nil, err
144933	}
144934	req.Header = reqHeaders
144935	googleapi.Expand(req.URL, map[string]string{
144936		"project": c.project,
144937		"region":  c.region,
144938		"router":  c.router,
144939	})
144940	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144941}
144942
144943// Do executes the "compute.routers.get" call.
144944// Exactly one of *Router or error will be non-nil. Any non-2xx status
144945// code is an error. Response headers are in either
144946// *Router.ServerResponse.Header or (if a response was returned at all)
144947// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
144948// check whether the returned error was because http.StatusNotModified
144949// was returned.
144950func (c *RoutersGetCall) Do(opts ...googleapi.CallOption) (*Router, error) {
144951	gensupport.SetOptions(c.urlParams_, opts...)
144952	res, err := c.doRequest("json")
144953	if res != nil && res.StatusCode == http.StatusNotModified {
144954		if res.Body != nil {
144955			res.Body.Close()
144956		}
144957		return nil, &googleapi.Error{
144958			Code:   res.StatusCode,
144959			Header: res.Header,
144960		}
144961	}
144962	if err != nil {
144963		return nil, err
144964	}
144965	defer googleapi.CloseBody(res)
144966	if err := googleapi.CheckResponse(res); err != nil {
144967		return nil, err
144968	}
144969	ret := &Router{
144970		ServerResponse: googleapi.ServerResponse{
144971			Header:         res.Header,
144972			HTTPStatusCode: res.StatusCode,
144973		},
144974	}
144975	target := &ret
144976	if err := gensupport.DecodeResponse(target, res); err != nil {
144977		return nil, err
144978	}
144979	return ret, nil
144980	// {
144981	//   "description": "Returns the specified Router resource. Gets a list of available routers by making a list() request.",
144982	//   "httpMethod": "GET",
144983	//   "id": "compute.routers.get",
144984	//   "parameterOrder": [
144985	//     "project",
144986	//     "region",
144987	//     "router"
144988	//   ],
144989	//   "parameters": {
144990	//     "project": {
144991	//       "description": "Project ID for this request.",
144992	//       "location": "path",
144993	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144994	//       "required": true,
144995	//       "type": "string"
144996	//     },
144997	//     "region": {
144998	//       "description": "Name of the region for this request.",
144999	//       "location": "path",
145000	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145001	//       "required": true,
145002	//       "type": "string"
145003	//     },
145004	//     "router": {
145005	//       "description": "Name of the Router resource to return.",
145006	//       "location": "path",
145007	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145008	//       "required": true,
145009	//       "type": "string"
145010	//     }
145011	//   },
145012	//   "path": "{project}/regions/{region}/routers/{router}",
145013	//   "response": {
145014	//     "$ref": "Router"
145015	//   },
145016	//   "scopes": [
145017	//     "https://www.googleapis.com/auth/cloud-platform",
145018	//     "https://www.googleapis.com/auth/compute",
145019	//     "https://www.googleapis.com/auth/compute.readonly"
145020	//   ]
145021	// }
145022
145023}
145024
145025// method id "compute.routers.getNatMappingInfo":
145026
145027type RoutersGetNatMappingInfoCall struct {
145028	s            *Service
145029	project      string
145030	region       string
145031	router       string
145032	urlParams_   gensupport.URLParams
145033	ifNoneMatch_ string
145034	ctx_         context.Context
145035	header_      http.Header
145036}
145037
145038// GetNatMappingInfo: Retrieves runtime Nat mapping information of VM
145039// endpoints.
145040func (r *RoutersService) GetNatMappingInfo(project string, region string, router string) *RoutersGetNatMappingInfoCall {
145041	c := &RoutersGetNatMappingInfoCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145042	c.project = project
145043	c.region = region
145044	c.router = router
145045	return c
145046}
145047
145048// Filter sets the optional parameter "filter": A filter expression that
145049// filters resources listed in the response. The expression must specify
145050// the field name, a comparison operator, and the value that you want to
145051// use for filtering. The value must be a string, a number, or a
145052// boolean. The comparison operator must be either =, !=, >, or <.
145053//
145054// For example, if you are filtering Compute Engine instances, you can
145055// exclude instances named example-instance by specifying name !=
145056// example-instance.
145057//
145058// You can also filter nested fields. For example, you could specify
145059// scheduling.automaticRestart = false to include instances only if they
145060// are not scheduled for automatic restarts. You can use filtering on
145061// nested fields to filter based on resource labels.
145062//
145063// To filter on multiple expressions, provide each separate expression
145064// within parentheses. For example, (scheduling.automaticRestart = true)
145065// (cpuPlatform = "Intel Skylake"). By default, each expression is an
145066// AND expression. However, you can include AND and OR expressions
145067// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
145068// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
145069// true).
145070func (c *RoutersGetNatMappingInfoCall) Filter(filter string) *RoutersGetNatMappingInfoCall {
145071	c.urlParams_.Set("filter", filter)
145072	return c
145073}
145074
145075// MaxResults sets the optional parameter "maxResults": The maximum
145076// number of results per page that should be returned. If the number of
145077// available results is larger than maxResults, Compute Engine returns a
145078// nextPageToken that can be used to get the next page of results in
145079// subsequent list requests. Acceptable values are 0 to 500, inclusive.
145080// (Default: 500)
145081func (c *RoutersGetNatMappingInfoCall) MaxResults(maxResults int64) *RoutersGetNatMappingInfoCall {
145082	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
145083	return c
145084}
145085
145086// NatName sets the optional parameter "natName": Name of the nat
145087// service to filter the Nat Mapping information. If it is omitted, all
145088// nats for this router will be returned. Name should conform to
145089// RFC1035.
145090func (c *RoutersGetNatMappingInfoCall) NatName(natName string) *RoutersGetNatMappingInfoCall {
145091	c.urlParams_.Set("natName", natName)
145092	return c
145093}
145094
145095// OrderBy sets the optional parameter "orderBy": Sorts list results by
145096// a certain order. By default, results are returned in alphanumerical
145097// order based on the resource name.
145098//
145099// You can also sort results in descending order based on the creation
145100// timestamp using orderBy="creationTimestamp desc". This sorts results
145101// based on the creationTimestamp field in reverse chronological order
145102// (newest result first). Use this to sort resources like operations so
145103// that the newest operation is returned first.
145104//
145105// Currently, only sorting by name or creationTimestamp desc is
145106// supported.
145107func (c *RoutersGetNatMappingInfoCall) OrderBy(orderBy string) *RoutersGetNatMappingInfoCall {
145108	c.urlParams_.Set("orderBy", orderBy)
145109	return c
145110}
145111
145112// PageToken sets the optional parameter "pageToken": Specifies a page
145113// token to use. Set pageToken to the nextPageToken returned by a
145114// previous list request to get the next page of results.
145115func (c *RoutersGetNatMappingInfoCall) PageToken(pageToken string) *RoutersGetNatMappingInfoCall {
145116	c.urlParams_.Set("pageToken", pageToken)
145117	return c
145118}
145119
145120// Fields allows partial responses to be retrieved. See
145121// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145122// for more information.
145123func (c *RoutersGetNatMappingInfoCall) Fields(s ...googleapi.Field) *RoutersGetNatMappingInfoCall {
145124	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145125	return c
145126}
145127
145128// IfNoneMatch sets the optional parameter which makes the operation
145129// fail if the object's ETag matches the given value. This is useful for
145130// getting updates only after the object has changed since the last
145131// request. Use googleapi.IsNotModified to check whether the response
145132// error from Do is the result of In-None-Match.
145133func (c *RoutersGetNatMappingInfoCall) IfNoneMatch(entityTag string) *RoutersGetNatMappingInfoCall {
145134	c.ifNoneMatch_ = entityTag
145135	return c
145136}
145137
145138// Context sets the context to be used in this call's Do method. Any
145139// pending HTTP request will be aborted if the provided context is
145140// canceled.
145141func (c *RoutersGetNatMappingInfoCall) Context(ctx context.Context) *RoutersGetNatMappingInfoCall {
145142	c.ctx_ = ctx
145143	return c
145144}
145145
145146// Header returns an http.Header that can be modified by the caller to
145147// add HTTP headers to the request.
145148func (c *RoutersGetNatMappingInfoCall) Header() http.Header {
145149	if c.header_ == nil {
145150		c.header_ = make(http.Header)
145151	}
145152	return c.header_
145153}
145154
145155func (c *RoutersGetNatMappingInfoCall) doRequest(alt string) (*http.Response, error) {
145156	reqHeaders := make(http.Header)
145157	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
145158	for k, v := range c.header_ {
145159		reqHeaders[k] = v
145160	}
145161	reqHeaders.Set("User-Agent", c.s.userAgent())
145162	if c.ifNoneMatch_ != "" {
145163		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
145164	}
145165	var body io.Reader = nil
145166	c.urlParams_.Set("alt", alt)
145167	c.urlParams_.Set("prettyPrint", "false")
145168	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}/getNatMappingInfo")
145169	urls += "?" + c.urlParams_.Encode()
145170	req, err := http.NewRequest("GET", 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		"router":  c.router,
145179	})
145180	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145181}
145182
145183// Do executes the "compute.routers.getNatMappingInfo" call.
145184// Exactly one of *VmEndpointNatMappingsList or error will be non-nil.
145185// Any non-2xx status code is an error. Response headers are in either
145186// *VmEndpointNatMappingsList.ServerResponse.Header or (if a response
145187// was returned at all) in error.(*googleapi.Error).Header. Use
145188// googleapi.IsNotModified to check whether the returned error was
145189// because http.StatusNotModified was returned.
145190func (c *RoutersGetNatMappingInfoCall) Do(opts ...googleapi.CallOption) (*VmEndpointNatMappingsList, 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 := &VmEndpointNatMappingsList{
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": "Retrieves runtime Nat mapping information of VM endpoints.",
145222	//   "httpMethod": "GET",
145223	//   "id": "compute.routers.getNatMappingInfo",
145224	//   "parameterOrder": [
145225	//     "project",
145226	//     "region",
145227	//     "router"
145228	//   ],
145229	//   "parameters": {
145230	//     "filter": {
145231	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
145232	//       "location": "query",
145233	//       "type": "string"
145234	//     },
145235	//     "maxResults": {
145236	//       "default": "500",
145237	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
145238	//       "format": "uint32",
145239	//       "location": "query",
145240	//       "minimum": "0",
145241	//       "type": "integer"
145242	//     },
145243	//     "natName": {
145244	//       "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.",
145245	//       "location": "query",
145246	//       "type": "string"
145247	//     },
145248	//     "orderBy": {
145249	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
145250	//       "location": "query",
145251	//       "type": "string"
145252	//     },
145253	//     "pageToken": {
145254	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
145255	//       "location": "query",
145256	//       "type": "string"
145257	//     },
145258	//     "project": {
145259	//       "description": "Project ID for this request.",
145260	//       "location": "path",
145261	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145262	//       "required": true,
145263	//       "type": "string"
145264	//     },
145265	//     "region": {
145266	//       "description": "Name of the region for this request.",
145267	//       "location": "path",
145268	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145269	//       "required": true,
145270	//       "type": "string"
145271	//     },
145272	//     "router": {
145273	//       "description": "Name of the Router resource to query for Nat Mapping information of VM endpoints.",
145274	//       "location": "path",
145275	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145276	//       "required": true,
145277	//       "type": "string"
145278	//     }
145279	//   },
145280	//   "path": "{project}/regions/{region}/routers/{router}/getNatMappingInfo",
145281	//   "response": {
145282	//     "$ref": "VmEndpointNatMappingsList"
145283	//   },
145284	//   "scopes": [
145285	//     "https://www.googleapis.com/auth/cloud-platform",
145286	//     "https://www.googleapis.com/auth/compute",
145287	//     "https://www.googleapis.com/auth/compute.readonly"
145288	//   ]
145289	// }
145290
145291}
145292
145293// Pages invokes f for each page of results.
145294// A non-nil error returned from f will halt the iteration.
145295// The provided context supersedes any context provided to the Context method.
145296func (c *RoutersGetNatMappingInfoCall) Pages(ctx context.Context, f func(*VmEndpointNatMappingsList) error) error {
145297	c.ctx_ = ctx
145298	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
145299	for {
145300		x, err := c.Do()
145301		if err != nil {
145302			return err
145303		}
145304		if err := f(x); err != nil {
145305			return err
145306		}
145307		if x.NextPageToken == "" {
145308			return nil
145309		}
145310		c.PageToken(x.NextPageToken)
145311	}
145312}
145313
145314// method id "compute.routers.getRouterStatus":
145315
145316type RoutersGetRouterStatusCall struct {
145317	s            *Service
145318	project      string
145319	region       string
145320	router       string
145321	urlParams_   gensupport.URLParams
145322	ifNoneMatch_ string
145323	ctx_         context.Context
145324	header_      http.Header
145325}
145326
145327// GetRouterStatus: Retrieves runtime information of the specified
145328// router.
145329func (r *RoutersService) GetRouterStatus(project string, region string, router string) *RoutersGetRouterStatusCall {
145330	c := &RoutersGetRouterStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145331	c.project = project
145332	c.region = region
145333	c.router = router
145334	return c
145335}
145336
145337// Fields allows partial responses to be retrieved. See
145338// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145339// for more information.
145340func (c *RoutersGetRouterStatusCall) Fields(s ...googleapi.Field) *RoutersGetRouterStatusCall {
145341	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145342	return c
145343}
145344
145345// IfNoneMatch sets the optional parameter which makes the operation
145346// fail if the object's ETag matches the given value. This is useful for
145347// getting updates only after the object has changed since the last
145348// request. Use googleapi.IsNotModified to check whether the response
145349// error from Do is the result of In-None-Match.
145350func (c *RoutersGetRouterStatusCall) IfNoneMatch(entityTag string) *RoutersGetRouterStatusCall {
145351	c.ifNoneMatch_ = entityTag
145352	return c
145353}
145354
145355// Context sets the context to be used in this call's Do method. Any
145356// pending HTTP request will be aborted if the provided context is
145357// canceled.
145358func (c *RoutersGetRouterStatusCall) Context(ctx context.Context) *RoutersGetRouterStatusCall {
145359	c.ctx_ = ctx
145360	return c
145361}
145362
145363// Header returns an http.Header that can be modified by the caller to
145364// add HTTP headers to the request.
145365func (c *RoutersGetRouterStatusCall) Header() http.Header {
145366	if c.header_ == nil {
145367		c.header_ = make(http.Header)
145368	}
145369	return c.header_
145370}
145371
145372func (c *RoutersGetRouterStatusCall) doRequest(alt string) (*http.Response, error) {
145373	reqHeaders := make(http.Header)
145374	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
145375	for k, v := range c.header_ {
145376		reqHeaders[k] = v
145377	}
145378	reqHeaders.Set("User-Agent", c.s.userAgent())
145379	if c.ifNoneMatch_ != "" {
145380		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
145381	}
145382	var body io.Reader = nil
145383	c.urlParams_.Set("alt", alt)
145384	c.urlParams_.Set("prettyPrint", "false")
145385	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}/getRouterStatus")
145386	urls += "?" + c.urlParams_.Encode()
145387	req, err := http.NewRequest("GET", urls, body)
145388	if err != nil {
145389		return nil, err
145390	}
145391	req.Header = reqHeaders
145392	googleapi.Expand(req.URL, map[string]string{
145393		"project": c.project,
145394		"region":  c.region,
145395		"router":  c.router,
145396	})
145397	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145398}
145399
145400// Do executes the "compute.routers.getRouterStatus" call.
145401// Exactly one of *RouterStatusResponse or error will be non-nil. Any
145402// non-2xx status code is an error. Response headers are in either
145403// *RouterStatusResponse.ServerResponse.Header or (if a response was
145404// returned at all) in error.(*googleapi.Error).Header. Use
145405// googleapi.IsNotModified to check whether the returned error was
145406// because http.StatusNotModified was returned.
145407func (c *RoutersGetRouterStatusCall) Do(opts ...googleapi.CallOption) (*RouterStatusResponse, error) {
145408	gensupport.SetOptions(c.urlParams_, opts...)
145409	res, err := c.doRequest("json")
145410	if res != nil && res.StatusCode == http.StatusNotModified {
145411		if res.Body != nil {
145412			res.Body.Close()
145413		}
145414		return nil, &googleapi.Error{
145415			Code:   res.StatusCode,
145416			Header: res.Header,
145417		}
145418	}
145419	if err != nil {
145420		return nil, err
145421	}
145422	defer googleapi.CloseBody(res)
145423	if err := googleapi.CheckResponse(res); err != nil {
145424		return nil, err
145425	}
145426	ret := &RouterStatusResponse{
145427		ServerResponse: googleapi.ServerResponse{
145428			Header:         res.Header,
145429			HTTPStatusCode: res.StatusCode,
145430		},
145431	}
145432	target := &ret
145433	if err := gensupport.DecodeResponse(target, res); err != nil {
145434		return nil, err
145435	}
145436	return ret, nil
145437	// {
145438	//   "description": "Retrieves runtime information of the specified router.",
145439	//   "httpMethod": "GET",
145440	//   "id": "compute.routers.getRouterStatus",
145441	//   "parameterOrder": [
145442	//     "project",
145443	//     "region",
145444	//     "router"
145445	//   ],
145446	//   "parameters": {
145447	//     "project": {
145448	//       "description": "Project ID for this request.",
145449	//       "location": "path",
145450	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145451	//       "required": true,
145452	//       "type": "string"
145453	//     },
145454	//     "region": {
145455	//       "description": "Name of the region for this request.",
145456	//       "location": "path",
145457	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145458	//       "required": true,
145459	//       "type": "string"
145460	//     },
145461	//     "router": {
145462	//       "description": "Name of the Router resource to query.",
145463	//       "location": "path",
145464	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145465	//       "required": true,
145466	//       "type": "string"
145467	//     }
145468	//   },
145469	//   "path": "{project}/regions/{region}/routers/{router}/getRouterStatus",
145470	//   "response": {
145471	//     "$ref": "RouterStatusResponse"
145472	//   },
145473	//   "scopes": [
145474	//     "https://www.googleapis.com/auth/cloud-platform",
145475	//     "https://www.googleapis.com/auth/compute",
145476	//     "https://www.googleapis.com/auth/compute.readonly"
145477	//   ]
145478	// }
145479
145480}
145481
145482// method id "compute.routers.insert":
145483
145484type RoutersInsertCall struct {
145485	s          *Service
145486	project    string
145487	region     string
145488	router     *Router
145489	urlParams_ gensupport.URLParams
145490	ctx_       context.Context
145491	header_    http.Header
145492}
145493
145494// Insert: Creates a Router resource in the specified project and region
145495// using the data included in the request.
145496func (r *RoutersService) Insert(project string, region string, router *Router) *RoutersInsertCall {
145497	c := &RoutersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145498	c.project = project
145499	c.region = region
145500	c.router = router
145501	return c
145502}
145503
145504// RequestId sets the optional parameter "requestId": An optional
145505// request ID to identify requests. Specify a unique request ID so that
145506// if you must retry your request, the server will know to ignore the
145507// request if it has already been completed.
145508//
145509// For example, consider a situation where you make an initial request
145510// and the request times out. If you make the request again with the
145511// same request ID, the server can check if original operation with the
145512// same request ID was received, and if so, will ignore the second
145513// request. This prevents clients from accidentally creating duplicate
145514// commitments.
145515//
145516// The request ID must be a valid UUID with the exception that zero UUID
145517// is not supported (00000000-0000-0000-0000-000000000000).
145518func (c *RoutersInsertCall) RequestId(requestId string) *RoutersInsertCall {
145519	c.urlParams_.Set("requestId", requestId)
145520	return c
145521}
145522
145523// Fields allows partial responses to be retrieved. See
145524// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145525// for more information.
145526func (c *RoutersInsertCall) Fields(s ...googleapi.Field) *RoutersInsertCall {
145527	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145528	return c
145529}
145530
145531// Context sets the context to be used in this call's Do method. Any
145532// pending HTTP request will be aborted if the provided context is
145533// canceled.
145534func (c *RoutersInsertCall) Context(ctx context.Context) *RoutersInsertCall {
145535	c.ctx_ = ctx
145536	return c
145537}
145538
145539// Header returns an http.Header that can be modified by the caller to
145540// add HTTP headers to the request.
145541func (c *RoutersInsertCall) Header() http.Header {
145542	if c.header_ == nil {
145543		c.header_ = make(http.Header)
145544	}
145545	return c.header_
145546}
145547
145548func (c *RoutersInsertCall) doRequest(alt string) (*http.Response, error) {
145549	reqHeaders := make(http.Header)
145550	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
145551	for k, v := range c.header_ {
145552		reqHeaders[k] = v
145553	}
145554	reqHeaders.Set("User-Agent", c.s.userAgent())
145555	var body io.Reader = nil
145556	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router)
145557	if err != nil {
145558		return nil, err
145559	}
145560	reqHeaders.Set("Content-Type", "application/json")
145561	c.urlParams_.Set("alt", alt)
145562	c.urlParams_.Set("prettyPrint", "false")
145563	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers")
145564	urls += "?" + c.urlParams_.Encode()
145565	req, err := http.NewRequest("POST", urls, body)
145566	if err != nil {
145567		return nil, err
145568	}
145569	req.Header = reqHeaders
145570	googleapi.Expand(req.URL, map[string]string{
145571		"project": c.project,
145572		"region":  c.region,
145573	})
145574	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145575}
145576
145577// Do executes the "compute.routers.insert" call.
145578// Exactly one of *Operation or error will be non-nil. Any non-2xx
145579// status code is an error. Response headers are in either
145580// *Operation.ServerResponse.Header or (if a response was returned at
145581// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
145582// to check whether the returned error was because
145583// http.StatusNotModified was returned.
145584func (c *RoutersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
145585	gensupport.SetOptions(c.urlParams_, opts...)
145586	res, err := c.doRequest("json")
145587	if res != nil && res.StatusCode == http.StatusNotModified {
145588		if res.Body != nil {
145589			res.Body.Close()
145590		}
145591		return nil, &googleapi.Error{
145592			Code:   res.StatusCode,
145593			Header: res.Header,
145594		}
145595	}
145596	if err != nil {
145597		return nil, err
145598	}
145599	defer googleapi.CloseBody(res)
145600	if err := googleapi.CheckResponse(res); err != nil {
145601		return nil, err
145602	}
145603	ret := &Operation{
145604		ServerResponse: googleapi.ServerResponse{
145605			Header:         res.Header,
145606			HTTPStatusCode: res.StatusCode,
145607		},
145608	}
145609	target := &ret
145610	if err := gensupport.DecodeResponse(target, res); err != nil {
145611		return nil, err
145612	}
145613	return ret, nil
145614	// {
145615	//   "description": "Creates a Router resource in the specified project and region using the data included in the request.",
145616	//   "httpMethod": "POST",
145617	//   "id": "compute.routers.insert",
145618	//   "parameterOrder": [
145619	//     "project",
145620	//     "region"
145621	//   ],
145622	//   "parameters": {
145623	//     "project": {
145624	//       "description": "Project ID for this request.",
145625	//       "location": "path",
145626	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145627	//       "required": true,
145628	//       "type": "string"
145629	//     },
145630	//     "region": {
145631	//       "description": "Name of the region for this request.",
145632	//       "location": "path",
145633	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145634	//       "required": true,
145635	//       "type": "string"
145636	//     },
145637	//     "requestId": {
145638	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
145639	//       "location": "query",
145640	//       "type": "string"
145641	//     }
145642	//   },
145643	//   "path": "{project}/regions/{region}/routers",
145644	//   "request": {
145645	//     "$ref": "Router"
145646	//   },
145647	//   "response": {
145648	//     "$ref": "Operation"
145649	//   },
145650	//   "scopes": [
145651	//     "https://www.googleapis.com/auth/cloud-platform",
145652	//     "https://www.googleapis.com/auth/compute"
145653	//   ]
145654	// }
145655
145656}
145657
145658// method id "compute.routers.list":
145659
145660type RoutersListCall struct {
145661	s            *Service
145662	project      string
145663	region       string
145664	urlParams_   gensupport.URLParams
145665	ifNoneMatch_ string
145666	ctx_         context.Context
145667	header_      http.Header
145668}
145669
145670// List: Retrieves a list of Router resources available to the specified
145671// project.
145672func (r *RoutersService) List(project string, region string) *RoutersListCall {
145673	c := &RoutersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145674	c.project = project
145675	c.region = region
145676	return c
145677}
145678
145679// Filter sets the optional parameter "filter": A filter expression that
145680// filters resources listed in the response. The expression must specify
145681// the field name, a comparison operator, and the value that you want to
145682// use for filtering. The value must be a string, a number, or a
145683// boolean. The comparison operator must be either =, !=, >, or <.
145684//
145685// For example, if you are filtering Compute Engine instances, you can
145686// exclude instances named example-instance by specifying name !=
145687// example-instance.
145688//
145689// You can also filter nested fields. For example, you could specify
145690// scheduling.automaticRestart = false to include instances only if they
145691// are not scheduled for automatic restarts. You can use filtering on
145692// nested fields to filter based on resource labels.
145693//
145694// To filter on multiple expressions, provide each separate expression
145695// within parentheses. For example, (scheduling.automaticRestart = true)
145696// (cpuPlatform = "Intel Skylake"). By default, each expression is an
145697// AND expression. However, you can include AND and OR expressions
145698// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
145699// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
145700// true).
145701func (c *RoutersListCall) Filter(filter string) *RoutersListCall {
145702	c.urlParams_.Set("filter", filter)
145703	return c
145704}
145705
145706// MaxResults sets the optional parameter "maxResults": The maximum
145707// number of results per page that should be returned. If the number of
145708// available results is larger than maxResults, Compute Engine returns a
145709// nextPageToken that can be used to get the next page of results in
145710// subsequent list requests. Acceptable values are 0 to 500, inclusive.
145711// (Default: 500)
145712func (c *RoutersListCall) MaxResults(maxResults int64) *RoutersListCall {
145713	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
145714	return c
145715}
145716
145717// OrderBy sets the optional parameter "orderBy": Sorts list results by
145718// a certain order. By default, results are returned in alphanumerical
145719// order based on the resource name.
145720//
145721// You can also sort results in descending order based on the creation
145722// timestamp using orderBy="creationTimestamp desc". This sorts results
145723// based on the creationTimestamp field in reverse chronological order
145724// (newest result first). Use this to sort resources like operations so
145725// that the newest operation is returned first.
145726//
145727// Currently, only sorting by name or creationTimestamp desc is
145728// supported.
145729func (c *RoutersListCall) OrderBy(orderBy string) *RoutersListCall {
145730	c.urlParams_.Set("orderBy", orderBy)
145731	return c
145732}
145733
145734// PageToken sets the optional parameter "pageToken": Specifies a page
145735// token to use. Set pageToken to the nextPageToken returned by a
145736// previous list request to get the next page of results.
145737func (c *RoutersListCall) PageToken(pageToken string) *RoutersListCall {
145738	c.urlParams_.Set("pageToken", pageToken)
145739	return c
145740}
145741
145742// Fields allows partial responses to be retrieved. See
145743// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145744// for more information.
145745func (c *RoutersListCall) Fields(s ...googleapi.Field) *RoutersListCall {
145746	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145747	return c
145748}
145749
145750// IfNoneMatch sets the optional parameter which makes the operation
145751// fail if the object's ETag matches the given value. This is useful for
145752// getting updates only after the object has changed since the last
145753// request. Use googleapi.IsNotModified to check whether the response
145754// error from Do is the result of In-None-Match.
145755func (c *RoutersListCall) IfNoneMatch(entityTag string) *RoutersListCall {
145756	c.ifNoneMatch_ = entityTag
145757	return c
145758}
145759
145760// Context sets the context to be used in this call's Do method. Any
145761// pending HTTP request will be aborted if the provided context is
145762// canceled.
145763func (c *RoutersListCall) Context(ctx context.Context) *RoutersListCall {
145764	c.ctx_ = ctx
145765	return c
145766}
145767
145768// Header returns an http.Header that can be modified by the caller to
145769// add HTTP headers to the request.
145770func (c *RoutersListCall) Header() http.Header {
145771	if c.header_ == nil {
145772		c.header_ = make(http.Header)
145773	}
145774	return c.header_
145775}
145776
145777func (c *RoutersListCall) doRequest(alt string) (*http.Response, error) {
145778	reqHeaders := make(http.Header)
145779	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
145780	for k, v := range c.header_ {
145781		reqHeaders[k] = v
145782	}
145783	reqHeaders.Set("User-Agent", c.s.userAgent())
145784	if c.ifNoneMatch_ != "" {
145785		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
145786	}
145787	var body io.Reader = nil
145788	c.urlParams_.Set("alt", alt)
145789	c.urlParams_.Set("prettyPrint", "false")
145790	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers")
145791	urls += "?" + c.urlParams_.Encode()
145792	req, err := http.NewRequest("GET", urls, body)
145793	if err != nil {
145794		return nil, err
145795	}
145796	req.Header = reqHeaders
145797	googleapi.Expand(req.URL, map[string]string{
145798		"project": c.project,
145799		"region":  c.region,
145800	})
145801	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145802}
145803
145804// Do executes the "compute.routers.list" call.
145805// Exactly one of *RouterList or error will be non-nil. Any non-2xx
145806// status code is an error. Response headers are in either
145807// *RouterList.ServerResponse.Header or (if a response was returned at
145808// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
145809// to check whether the returned error was because
145810// http.StatusNotModified was returned.
145811func (c *RoutersListCall) Do(opts ...googleapi.CallOption) (*RouterList, error) {
145812	gensupport.SetOptions(c.urlParams_, opts...)
145813	res, err := c.doRequest("json")
145814	if res != nil && res.StatusCode == http.StatusNotModified {
145815		if res.Body != nil {
145816			res.Body.Close()
145817		}
145818		return nil, &googleapi.Error{
145819			Code:   res.StatusCode,
145820			Header: res.Header,
145821		}
145822	}
145823	if err != nil {
145824		return nil, err
145825	}
145826	defer googleapi.CloseBody(res)
145827	if err := googleapi.CheckResponse(res); err != nil {
145828		return nil, err
145829	}
145830	ret := &RouterList{
145831		ServerResponse: googleapi.ServerResponse{
145832			Header:         res.Header,
145833			HTTPStatusCode: res.StatusCode,
145834		},
145835	}
145836	target := &ret
145837	if err := gensupport.DecodeResponse(target, res); err != nil {
145838		return nil, err
145839	}
145840	return ret, nil
145841	// {
145842	//   "description": "Retrieves a list of Router resources available to the specified project.",
145843	//   "httpMethod": "GET",
145844	//   "id": "compute.routers.list",
145845	//   "parameterOrder": [
145846	//     "project",
145847	//     "region"
145848	//   ],
145849	//   "parameters": {
145850	//     "filter": {
145851	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
145852	//       "location": "query",
145853	//       "type": "string"
145854	//     },
145855	//     "maxResults": {
145856	//       "default": "500",
145857	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
145858	//       "format": "uint32",
145859	//       "location": "query",
145860	//       "minimum": "0",
145861	//       "type": "integer"
145862	//     },
145863	//     "orderBy": {
145864	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
145865	//       "location": "query",
145866	//       "type": "string"
145867	//     },
145868	//     "pageToken": {
145869	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
145870	//       "location": "query",
145871	//       "type": "string"
145872	//     },
145873	//     "project": {
145874	//       "description": "Project ID for this request.",
145875	//       "location": "path",
145876	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145877	//       "required": true,
145878	//       "type": "string"
145879	//     },
145880	//     "region": {
145881	//       "description": "Name of the region for this request.",
145882	//       "location": "path",
145883	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145884	//       "required": true,
145885	//       "type": "string"
145886	//     }
145887	//   },
145888	//   "path": "{project}/regions/{region}/routers",
145889	//   "response": {
145890	//     "$ref": "RouterList"
145891	//   },
145892	//   "scopes": [
145893	//     "https://www.googleapis.com/auth/cloud-platform",
145894	//     "https://www.googleapis.com/auth/compute",
145895	//     "https://www.googleapis.com/auth/compute.readonly"
145896	//   ]
145897	// }
145898
145899}
145900
145901// Pages invokes f for each page of results.
145902// A non-nil error returned from f will halt the iteration.
145903// The provided context supersedes any context provided to the Context method.
145904func (c *RoutersListCall) Pages(ctx context.Context, f func(*RouterList) error) error {
145905	c.ctx_ = ctx
145906	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
145907	for {
145908		x, err := c.Do()
145909		if err != nil {
145910			return err
145911		}
145912		if err := f(x); err != nil {
145913			return err
145914		}
145915		if x.NextPageToken == "" {
145916			return nil
145917		}
145918		c.PageToken(x.NextPageToken)
145919	}
145920}
145921
145922// method id "compute.routers.patch":
145923
145924type RoutersPatchCall struct {
145925	s          *Service
145926	project    string
145927	region     string
145928	router     string
145929	router2    *Router
145930	urlParams_ gensupport.URLParams
145931	ctx_       context.Context
145932	header_    http.Header
145933}
145934
145935// Patch: Patches the specified Router resource with the data included
145936// in the request. This method supports PATCH semantics and uses JSON
145937// merge patch format and processing rules.
145938func (r *RoutersService) Patch(project string, region string, router string, router2 *Router) *RoutersPatchCall {
145939	c := &RoutersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145940	c.project = project
145941	c.region = region
145942	c.router = router
145943	c.router2 = router2
145944	return c
145945}
145946
145947// RequestId sets the optional parameter "requestId": An optional
145948// request ID to identify requests. Specify a unique request ID so that
145949// if you must retry your request, the server will know to ignore the
145950// request if it has already been completed.
145951//
145952// For example, consider a situation where you make an initial request
145953// and the request times out. If you make the request again with the
145954// same request ID, the server can check if original operation with the
145955// same request ID was received, and if so, will ignore the second
145956// request. This prevents clients from accidentally creating duplicate
145957// commitments.
145958//
145959// The request ID must be a valid UUID with the exception that zero UUID
145960// is not supported (00000000-0000-0000-0000-000000000000).
145961func (c *RoutersPatchCall) RequestId(requestId string) *RoutersPatchCall {
145962	c.urlParams_.Set("requestId", requestId)
145963	return c
145964}
145965
145966// Fields allows partial responses to be retrieved. See
145967// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145968// for more information.
145969func (c *RoutersPatchCall) Fields(s ...googleapi.Field) *RoutersPatchCall {
145970	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145971	return c
145972}
145973
145974// Context sets the context to be used in this call's Do method. Any
145975// pending HTTP request will be aborted if the provided context is
145976// canceled.
145977func (c *RoutersPatchCall) Context(ctx context.Context) *RoutersPatchCall {
145978	c.ctx_ = ctx
145979	return c
145980}
145981
145982// Header returns an http.Header that can be modified by the caller to
145983// add HTTP headers to the request.
145984func (c *RoutersPatchCall) Header() http.Header {
145985	if c.header_ == nil {
145986		c.header_ = make(http.Header)
145987	}
145988	return c.header_
145989}
145990
145991func (c *RoutersPatchCall) doRequest(alt string) (*http.Response, error) {
145992	reqHeaders := make(http.Header)
145993	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
145994	for k, v := range c.header_ {
145995		reqHeaders[k] = v
145996	}
145997	reqHeaders.Set("User-Agent", c.s.userAgent())
145998	var body io.Reader = nil
145999	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
146000	if err != nil {
146001		return nil, err
146002	}
146003	reqHeaders.Set("Content-Type", "application/json")
146004	c.urlParams_.Set("alt", alt)
146005	c.urlParams_.Set("prettyPrint", "false")
146006	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
146007	urls += "?" + c.urlParams_.Encode()
146008	req, err := http.NewRequest("PATCH", urls, body)
146009	if err != nil {
146010		return nil, err
146011	}
146012	req.Header = reqHeaders
146013	googleapi.Expand(req.URL, map[string]string{
146014		"project": c.project,
146015		"region":  c.region,
146016		"router":  c.router,
146017	})
146018	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146019}
146020
146021// Do executes the "compute.routers.patch" call.
146022// Exactly one of *Operation or error will be non-nil. Any non-2xx
146023// status code is an error. Response headers are in either
146024// *Operation.ServerResponse.Header or (if a response was returned at
146025// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146026// to check whether the returned error was because
146027// http.StatusNotModified was returned.
146028func (c *RoutersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
146029	gensupport.SetOptions(c.urlParams_, opts...)
146030	res, err := c.doRequest("json")
146031	if res != nil && res.StatusCode == http.StatusNotModified {
146032		if res.Body != nil {
146033			res.Body.Close()
146034		}
146035		return nil, &googleapi.Error{
146036			Code:   res.StatusCode,
146037			Header: res.Header,
146038		}
146039	}
146040	if err != nil {
146041		return nil, err
146042	}
146043	defer googleapi.CloseBody(res)
146044	if err := googleapi.CheckResponse(res); err != nil {
146045		return nil, err
146046	}
146047	ret := &Operation{
146048		ServerResponse: googleapi.ServerResponse{
146049			Header:         res.Header,
146050			HTTPStatusCode: res.StatusCode,
146051		},
146052	}
146053	target := &ret
146054	if err := gensupport.DecodeResponse(target, res); err != nil {
146055		return nil, err
146056	}
146057	return ret, nil
146058	// {
146059	//   "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.",
146060	//   "httpMethod": "PATCH",
146061	//   "id": "compute.routers.patch",
146062	//   "parameterOrder": [
146063	//     "project",
146064	//     "region",
146065	//     "router"
146066	//   ],
146067	//   "parameters": {
146068	//     "project": {
146069	//       "description": "Project ID for this request.",
146070	//       "location": "path",
146071	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146072	//       "required": true,
146073	//       "type": "string"
146074	//     },
146075	//     "region": {
146076	//       "description": "Name of the region for this request.",
146077	//       "location": "path",
146078	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
146079	//       "required": true,
146080	//       "type": "string"
146081	//     },
146082	//     "requestId": {
146083	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
146084	//       "location": "query",
146085	//       "type": "string"
146086	//     },
146087	//     "router": {
146088	//       "description": "Name of the Router resource to patch.",
146089	//       "location": "path",
146090	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146091	//       "required": true,
146092	//       "type": "string"
146093	//     }
146094	//   },
146095	//   "path": "{project}/regions/{region}/routers/{router}",
146096	//   "request": {
146097	//     "$ref": "Router"
146098	//   },
146099	//   "response": {
146100	//     "$ref": "Operation"
146101	//   },
146102	//   "scopes": [
146103	//     "https://www.googleapis.com/auth/cloud-platform",
146104	//     "https://www.googleapis.com/auth/compute"
146105	//   ]
146106	// }
146107
146108}
146109
146110// method id "compute.routers.preview":
146111
146112type RoutersPreviewCall struct {
146113	s          *Service
146114	project    string
146115	region     string
146116	router     string
146117	router2    *Router
146118	urlParams_ gensupport.URLParams
146119	ctx_       context.Context
146120	header_    http.Header
146121}
146122
146123// Preview: Preview fields auto-generated during router create and
146124// update operations. Calling this method does NOT create or update the
146125// router.
146126func (r *RoutersService) Preview(project string, region string, router string, router2 *Router) *RoutersPreviewCall {
146127	c := &RoutersPreviewCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146128	c.project = project
146129	c.region = region
146130	c.router = router
146131	c.router2 = router2
146132	return c
146133}
146134
146135// Fields allows partial responses to be retrieved. See
146136// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146137// for more information.
146138func (c *RoutersPreviewCall) Fields(s ...googleapi.Field) *RoutersPreviewCall {
146139	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146140	return c
146141}
146142
146143// Context sets the context to be used in this call's Do method. Any
146144// pending HTTP request will be aborted if the provided context is
146145// canceled.
146146func (c *RoutersPreviewCall) Context(ctx context.Context) *RoutersPreviewCall {
146147	c.ctx_ = ctx
146148	return c
146149}
146150
146151// Header returns an http.Header that can be modified by the caller to
146152// add HTTP headers to the request.
146153func (c *RoutersPreviewCall) Header() http.Header {
146154	if c.header_ == nil {
146155		c.header_ = make(http.Header)
146156	}
146157	return c.header_
146158}
146159
146160func (c *RoutersPreviewCall) doRequest(alt string) (*http.Response, error) {
146161	reqHeaders := make(http.Header)
146162	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
146163	for k, v := range c.header_ {
146164		reqHeaders[k] = v
146165	}
146166	reqHeaders.Set("User-Agent", c.s.userAgent())
146167	var body io.Reader = nil
146168	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
146169	if err != nil {
146170		return nil, err
146171	}
146172	reqHeaders.Set("Content-Type", "application/json")
146173	c.urlParams_.Set("alt", alt)
146174	c.urlParams_.Set("prettyPrint", "false")
146175	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}/preview")
146176	urls += "?" + c.urlParams_.Encode()
146177	req, err := http.NewRequest("POST", urls, body)
146178	if err != nil {
146179		return nil, err
146180	}
146181	req.Header = reqHeaders
146182	googleapi.Expand(req.URL, map[string]string{
146183		"project": c.project,
146184		"region":  c.region,
146185		"router":  c.router,
146186	})
146187	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146188}
146189
146190// Do executes the "compute.routers.preview" call.
146191// Exactly one of *RoutersPreviewResponse or error will be non-nil. Any
146192// non-2xx status code is an error. Response headers are in either
146193// *RoutersPreviewResponse.ServerResponse.Header or (if a response was
146194// returned at all) in error.(*googleapi.Error).Header. Use
146195// googleapi.IsNotModified to check whether the returned error was
146196// because http.StatusNotModified was returned.
146197func (c *RoutersPreviewCall) Do(opts ...googleapi.CallOption) (*RoutersPreviewResponse, error) {
146198	gensupport.SetOptions(c.urlParams_, opts...)
146199	res, err := c.doRequest("json")
146200	if res != nil && res.StatusCode == http.StatusNotModified {
146201		if res.Body != nil {
146202			res.Body.Close()
146203		}
146204		return nil, &googleapi.Error{
146205			Code:   res.StatusCode,
146206			Header: res.Header,
146207		}
146208	}
146209	if err != nil {
146210		return nil, err
146211	}
146212	defer googleapi.CloseBody(res)
146213	if err := googleapi.CheckResponse(res); err != nil {
146214		return nil, err
146215	}
146216	ret := &RoutersPreviewResponse{
146217		ServerResponse: googleapi.ServerResponse{
146218			Header:         res.Header,
146219			HTTPStatusCode: res.StatusCode,
146220		},
146221	}
146222	target := &ret
146223	if err := gensupport.DecodeResponse(target, res); err != nil {
146224		return nil, err
146225	}
146226	return ret, nil
146227	// {
146228	//   "description": "Preview fields auto-generated during router create and update operations. Calling this method does NOT create or update the router.",
146229	//   "httpMethod": "POST",
146230	//   "id": "compute.routers.preview",
146231	//   "parameterOrder": [
146232	//     "project",
146233	//     "region",
146234	//     "router"
146235	//   ],
146236	//   "parameters": {
146237	//     "project": {
146238	//       "description": "Project ID for this request.",
146239	//       "location": "path",
146240	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146241	//       "required": true,
146242	//       "type": "string"
146243	//     },
146244	//     "region": {
146245	//       "description": "Name of the region for this request.",
146246	//       "location": "path",
146247	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
146248	//       "required": true,
146249	//       "type": "string"
146250	//     },
146251	//     "router": {
146252	//       "description": "Name of the Router resource to query.",
146253	//       "location": "path",
146254	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146255	//       "required": true,
146256	//       "type": "string"
146257	//     }
146258	//   },
146259	//   "path": "{project}/regions/{region}/routers/{router}/preview",
146260	//   "request": {
146261	//     "$ref": "Router"
146262	//   },
146263	//   "response": {
146264	//     "$ref": "RoutersPreviewResponse"
146265	//   },
146266	//   "scopes": [
146267	//     "https://www.googleapis.com/auth/cloud-platform",
146268	//     "https://www.googleapis.com/auth/compute",
146269	//     "https://www.googleapis.com/auth/compute.readonly"
146270	//   ]
146271	// }
146272
146273}
146274
146275// method id "compute.routers.testIamPermissions":
146276
146277type RoutersTestIamPermissionsCall struct {
146278	s                      *Service
146279	project                string
146280	region                 string
146281	resource               string
146282	testpermissionsrequest *TestPermissionsRequest
146283	urlParams_             gensupport.URLParams
146284	ctx_                   context.Context
146285	header_                http.Header
146286}
146287
146288// TestIamPermissions: Returns permissions that a caller has on the
146289// specified resource.
146290func (r *RoutersService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RoutersTestIamPermissionsCall {
146291	c := &RoutersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146292	c.project = project
146293	c.region = region
146294	c.resource = resource
146295	c.testpermissionsrequest = testpermissionsrequest
146296	return c
146297}
146298
146299// Fields allows partial responses to be retrieved. See
146300// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146301// for more information.
146302func (c *RoutersTestIamPermissionsCall) Fields(s ...googleapi.Field) *RoutersTestIamPermissionsCall {
146303	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146304	return c
146305}
146306
146307// Context sets the context to be used in this call's Do method. Any
146308// pending HTTP request will be aborted if the provided context is
146309// canceled.
146310func (c *RoutersTestIamPermissionsCall) Context(ctx context.Context) *RoutersTestIamPermissionsCall {
146311	c.ctx_ = ctx
146312	return c
146313}
146314
146315// Header returns an http.Header that can be modified by the caller to
146316// add HTTP headers to the request.
146317func (c *RoutersTestIamPermissionsCall) Header() http.Header {
146318	if c.header_ == nil {
146319		c.header_ = make(http.Header)
146320	}
146321	return c.header_
146322}
146323
146324func (c *RoutersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
146325	reqHeaders := make(http.Header)
146326	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
146327	for k, v := range c.header_ {
146328		reqHeaders[k] = v
146329	}
146330	reqHeaders.Set("User-Agent", c.s.userAgent())
146331	var body io.Reader = nil
146332	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
146333	if err != nil {
146334		return nil, err
146335	}
146336	reqHeaders.Set("Content-Type", "application/json")
146337	c.urlParams_.Set("alt", alt)
146338	c.urlParams_.Set("prettyPrint", "false")
146339	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{resource}/testIamPermissions")
146340	urls += "?" + c.urlParams_.Encode()
146341	req, err := http.NewRequest("POST", urls, body)
146342	if err != nil {
146343		return nil, err
146344	}
146345	req.Header = reqHeaders
146346	googleapi.Expand(req.URL, map[string]string{
146347		"project":  c.project,
146348		"region":   c.region,
146349		"resource": c.resource,
146350	})
146351	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146352}
146353
146354// Do executes the "compute.routers.testIamPermissions" call.
146355// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
146356// non-2xx status code is an error. Response headers are in either
146357// *TestPermissionsResponse.ServerResponse.Header or (if a response was
146358// returned at all) in error.(*googleapi.Error).Header. Use
146359// googleapi.IsNotModified to check whether the returned error was
146360// because http.StatusNotModified was returned.
146361func (c *RoutersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
146362	gensupport.SetOptions(c.urlParams_, opts...)
146363	res, err := c.doRequest("json")
146364	if res != nil && res.StatusCode == http.StatusNotModified {
146365		if res.Body != nil {
146366			res.Body.Close()
146367		}
146368		return nil, &googleapi.Error{
146369			Code:   res.StatusCode,
146370			Header: res.Header,
146371		}
146372	}
146373	if err != nil {
146374		return nil, err
146375	}
146376	defer googleapi.CloseBody(res)
146377	if err := googleapi.CheckResponse(res); err != nil {
146378		return nil, err
146379	}
146380	ret := &TestPermissionsResponse{
146381		ServerResponse: googleapi.ServerResponse{
146382			Header:         res.Header,
146383			HTTPStatusCode: res.StatusCode,
146384		},
146385	}
146386	target := &ret
146387	if err := gensupport.DecodeResponse(target, res); err != nil {
146388		return nil, err
146389	}
146390	return ret, nil
146391	// {
146392	//   "description": "Returns permissions that a caller has on the specified resource.",
146393	//   "httpMethod": "POST",
146394	//   "id": "compute.routers.testIamPermissions",
146395	//   "parameterOrder": [
146396	//     "project",
146397	//     "region",
146398	//     "resource"
146399	//   ],
146400	//   "parameters": {
146401	//     "project": {
146402	//       "description": "Project ID for this request.",
146403	//       "location": "path",
146404	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146405	//       "required": true,
146406	//       "type": "string"
146407	//     },
146408	//     "region": {
146409	//       "description": "The name of the region for this request.",
146410	//       "location": "path",
146411	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
146412	//       "required": true,
146413	//       "type": "string"
146414	//     },
146415	//     "resource": {
146416	//       "description": "Name or id of the resource for this request.",
146417	//       "location": "path",
146418	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146419	//       "required": true,
146420	//       "type": "string"
146421	//     }
146422	//   },
146423	//   "path": "{project}/regions/{region}/routers/{resource}/testIamPermissions",
146424	//   "request": {
146425	//     "$ref": "TestPermissionsRequest"
146426	//   },
146427	//   "response": {
146428	//     "$ref": "TestPermissionsResponse"
146429	//   },
146430	//   "scopes": [
146431	//     "https://www.googleapis.com/auth/cloud-platform",
146432	//     "https://www.googleapis.com/auth/compute",
146433	//     "https://www.googleapis.com/auth/compute.readonly"
146434	//   ]
146435	// }
146436
146437}
146438
146439// method id "compute.routers.update":
146440
146441type RoutersUpdateCall struct {
146442	s          *Service
146443	project    string
146444	region     string
146445	router     string
146446	router2    *Router
146447	urlParams_ gensupport.URLParams
146448	ctx_       context.Context
146449	header_    http.Header
146450}
146451
146452// Update: Updates the specified Router resource with the data included
146453// in the request. This method conforms to PUT semantics, which requests
146454// that the state of the target resource be created or replaced with the
146455// state defined by the representation enclosed in the request message
146456// payload.
146457func (r *RoutersService) Update(project string, region string, router string, router2 *Router) *RoutersUpdateCall {
146458	c := &RoutersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146459	c.project = project
146460	c.region = region
146461	c.router = router
146462	c.router2 = router2
146463	return c
146464}
146465
146466// RequestId sets the optional parameter "requestId": An optional
146467// request ID to identify requests. Specify a unique request ID so that
146468// if you must retry your request, the server will know to ignore the
146469// request if it has already been completed.
146470//
146471// For example, consider a situation where you make an initial request
146472// and the request times out. If you make the request again with the
146473// same request ID, the server can check if original operation with the
146474// same request ID was received, and if so, will ignore the second
146475// request. This prevents clients from accidentally creating duplicate
146476// commitments.
146477//
146478// The request ID must be a valid UUID with the exception that zero UUID
146479// is not supported (00000000-0000-0000-0000-000000000000).
146480func (c *RoutersUpdateCall) RequestId(requestId string) *RoutersUpdateCall {
146481	c.urlParams_.Set("requestId", requestId)
146482	return c
146483}
146484
146485// Fields allows partial responses to be retrieved. See
146486// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146487// for more information.
146488func (c *RoutersUpdateCall) Fields(s ...googleapi.Field) *RoutersUpdateCall {
146489	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146490	return c
146491}
146492
146493// Context sets the context to be used in this call's Do method. Any
146494// pending HTTP request will be aborted if the provided context is
146495// canceled.
146496func (c *RoutersUpdateCall) Context(ctx context.Context) *RoutersUpdateCall {
146497	c.ctx_ = ctx
146498	return c
146499}
146500
146501// Header returns an http.Header that can be modified by the caller to
146502// add HTTP headers to the request.
146503func (c *RoutersUpdateCall) Header() http.Header {
146504	if c.header_ == nil {
146505		c.header_ = make(http.Header)
146506	}
146507	return c.header_
146508}
146509
146510func (c *RoutersUpdateCall) doRequest(alt string) (*http.Response, error) {
146511	reqHeaders := make(http.Header)
146512	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
146513	for k, v := range c.header_ {
146514		reqHeaders[k] = v
146515	}
146516	reqHeaders.Set("User-Agent", c.s.userAgent())
146517	var body io.Reader = nil
146518	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
146519	if err != nil {
146520		return nil, err
146521	}
146522	reqHeaders.Set("Content-Type", "application/json")
146523	c.urlParams_.Set("alt", alt)
146524	c.urlParams_.Set("prettyPrint", "false")
146525	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
146526	urls += "?" + c.urlParams_.Encode()
146527	req, err := http.NewRequest("PUT", urls, body)
146528	if err != nil {
146529		return nil, err
146530	}
146531	req.Header = reqHeaders
146532	googleapi.Expand(req.URL, map[string]string{
146533		"project": c.project,
146534		"region":  c.region,
146535		"router":  c.router,
146536	})
146537	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146538}
146539
146540// Do executes the "compute.routers.update" call.
146541// Exactly one of *Operation or error will be non-nil. Any non-2xx
146542// status code is an error. Response headers are in either
146543// *Operation.ServerResponse.Header or (if a response was returned at
146544// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146545// to check whether the returned error was because
146546// http.StatusNotModified was returned.
146547func (c *RoutersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
146548	gensupport.SetOptions(c.urlParams_, opts...)
146549	res, err := c.doRequest("json")
146550	if res != nil && res.StatusCode == http.StatusNotModified {
146551		if res.Body != nil {
146552			res.Body.Close()
146553		}
146554		return nil, &googleapi.Error{
146555			Code:   res.StatusCode,
146556			Header: res.Header,
146557		}
146558	}
146559	if err != nil {
146560		return nil, err
146561	}
146562	defer googleapi.CloseBody(res)
146563	if err := googleapi.CheckResponse(res); err != nil {
146564		return nil, err
146565	}
146566	ret := &Operation{
146567		ServerResponse: googleapi.ServerResponse{
146568			Header:         res.Header,
146569			HTTPStatusCode: res.StatusCode,
146570		},
146571	}
146572	target := &ret
146573	if err := gensupport.DecodeResponse(target, res); err != nil {
146574		return nil, err
146575	}
146576	return ret, nil
146577	// {
146578	//   "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.",
146579	//   "httpMethod": "PUT",
146580	//   "id": "compute.routers.update",
146581	//   "parameterOrder": [
146582	//     "project",
146583	//     "region",
146584	//     "router"
146585	//   ],
146586	//   "parameters": {
146587	//     "project": {
146588	//       "description": "Project ID for this request.",
146589	//       "location": "path",
146590	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146591	//       "required": true,
146592	//       "type": "string"
146593	//     },
146594	//     "region": {
146595	//       "description": "Name of the region for this request.",
146596	//       "location": "path",
146597	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
146598	//       "required": true,
146599	//       "type": "string"
146600	//     },
146601	//     "requestId": {
146602	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
146603	//       "location": "query",
146604	//       "type": "string"
146605	//     },
146606	//     "router": {
146607	//       "description": "Name of the Router resource to update.",
146608	//       "location": "path",
146609	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146610	//       "required": true,
146611	//       "type": "string"
146612	//     }
146613	//   },
146614	//   "path": "{project}/regions/{region}/routers/{router}",
146615	//   "request": {
146616	//     "$ref": "Router"
146617	//   },
146618	//   "response": {
146619	//     "$ref": "Operation"
146620	//   },
146621	//   "scopes": [
146622	//     "https://www.googleapis.com/auth/cloud-platform",
146623	//     "https://www.googleapis.com/auth/compute"
146624	//   ]
146625	// }
146626
146627}
146628
146629// method id "compute.routes.delete":
146630
146631type RoutesDeleteCall struct {
146632	s          *Service
146633	project    string
146634	route      string
146635	urlParams_ gensupport.URLParams
146636	ctx_       context.Context
146637	header_    http.Header
146638}
146639
146640// Delete: Deletes the specified Route resource.
146641// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/delete
146642func (r *RoutesService) Delete(project string, route string) *RoutesDeleteCall {
146643	c := &RoutesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146644	c.project = project
146645	c.route = route
146646	return c
146647}
146648
146649// RequestId sets the optional parameter "requestId": An optional
146650// request ID to identify requests. Specify a unique request ID so that
146651// if you must retry your request, the server will know to ignore the
146652// request if it has already been completed.
146653//
146654// For example, consider a situation where you make an initial request
146655// and the request times out. If you make the request again with the
146656// same request ID, the server can check if original operation with the
146657// same request ID was received, and if so, will ignore the second
146658// request. This prevents clients from accidentally creating duplicate
146659// commitments.
146660//
146661// The request ID must be a valid UUID with the exception that zero UUID
146662// is not supported (00000000-0000-0000-0000-000000000000).
146663func (c *RoutesDeleteCall) RequestId(requestId string) *RoutesDeleteCall {
146664	c.urlParams_.Set("requestId", requestId)
146665	return c
146666}
146667
146668// Fields allows partial responses to be retrieved. See
146669// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146670// for more information.
146671func (c *RoutesDeleteCall) Fields(s ...googleapi.Field) *RoutesDeleteCall {
146672	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146673	return c
146674}
146675
146676// Context sets the context to be used in this call's Do method. Any
146677// pending HTTP request will be aborted if the provided context is
146678// canceled.
146679func (c *RoutesDeleteCall) Context(ctx context.Context) *RoutesDeleteCall {
146680	c.ctx_ = ctx
146681	return c
146682}
146683
146684// Header returns an http.Header that can be modified by the caller to
146685// add HTTP headers to the request.
146686func (c *RoutesDeleteCall) Header() http.Header {
146687	if c.header_ == nil {
146688		c.header_ = make(http.Header)
146689	}
146690	return c.header_
146691}
146692
146693func (c *RoutesDeleteCall) doRequest(alt string) (*http.Response, error) {
146694	reqHeaders := make(http.Header)
146695	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
146696	for k, v := range c.header_ {
146697		reqHeaders[k] = v
146698	}
146699	reqHeaders.Set("User-Agent", c.s.userAgent())
146700	var body io.Reader = nil
146701	c.urlParams_.Set("alt", alt)
146702	c.urlParams_.Set("prettyPrint", "false")
146703	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes/{route}")
146704	urls += "?" + c.urlParams_.Encode()
146705	req, err := http.NewRequest("DELETE", urls, body)
146706	if err != nil {
146707		return nil, err
146708	}
146709	req.Header = reqHeaders
146710	googleapi.Expand(req.URL, map[string]string{
146711		"project": c.project,
146712		"route":   c.route,
146713	})
146714	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146715}
146716
146717// Do executes the "compute.routes.delete" call.
146718// Exactly one of *Operation or error will be non-nil. Any non-2xx
146719// status code is an error. Response headers are in either
146720// *Operation.ServerResponse.Header or (if a response was returned at
146721// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146722// to check whether the returned error was because
146723// http.StatusNotModified was returned.
146724func (c *RoutesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
146725	gensupport.SetOptions(c.urlParams_, opts...)
146726	res, err := c.doRequest("json")
146727	if res != nil && res.StatusCode == http.StatusNotModified {
146728		if res.Body != nil {
146729			res.Body.Close()
146730		}
146731		return nil, &googleapi.Error{
146732			Code:   res.StatusCode,
146733			Header: res.Header,
146734		}
146735	}
146736	if err != nil {
146737		return nil, err
146738	}
146739	defer googleapi.CloseBody(res)
146740	if err := googleapi.CheckResponse(res); err != nil {
146741		return nil, err
146742	}
146743	ret := &Operation{
146744		ServerResponse: googleapi.ServerResponse{
146745			Header:         res.Header,
146746			HTTPStatusCode: res.StatusCode,
146747		},
146748	}
146749	target := &ret
146750	if err := gensupport.DecodeResponse(target, res); err != nil {
146751		return nil, err
146752	}
146753	return ret, nil
146754	// {
146755	//   "description": "Deletes the specified Route resource.",
146756	//   "httpMethod": "DELETE",
146757	//   "id": "compute.routes.delete",
146758	//   "parameterOrder": [
146759	//     "project",
146760	//     "route"
146761	//   ],
146762	//   "parameters": {
146763	//     "project": {
146764	//       "description": "Project ID for this request.",
146765	//       "location": "path",
146766	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146767	//       "required": true,
146768	//       "type": "string"
146769	//     },
146770	//     "requestId": {
146771	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
146772	//       "location": "query",
146773	//       "type": "string"
146774	//     },
146775	//     "route": {
146776	//       "description": "Name of the Route resource to delete.",
146777	//       "location": "path",
146778	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146779	//       "required": true,
146780	//       "type": "string"
146781	//     }
146782	//   },
146783	//   "path": "{project}/global/routes/{route}",
146784	//   "response": {
146785	//     "$ref": "Operation"
146786	//   },
146787	//   "scopes": [
146788	//     "https://www.googleapis.com/auth/cloud-platform",
146789	//     "https://www.googleapis.com/auth/compute"
146790	//   ]
146791	// }
146792
146793}
146794
146795// method id "compute.routes.get":
146796
146797type RoutesGetCall struct {
146798	s            *Service
146799	project      string
146800	route        string
146801	urlParams_   gensupport.URLParams
146802	ifNoneMatch_ string
146803	ctx_         context.Context
146804	header_      http.Header
146805}
146806
146807// Get: Returns the specified Route resource. Gets a list of available
146808// routes by making a list() request.
146809// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/get
146810func (r *RoutesService) Get(project string, route string) *RoutesGetCall {
146811	c := &RoutesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146812	c.project = project
146813	c.route = route
146814	return c
146815}
146816
146817// Fields allows partial responses to be retrieved. See
146818// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146819// for more information.
146820func (c *RoutesGetCall) Fields(s ...googleapi.Field) *RoutesGetCall {
146821	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146822	return c
146823}
146824
146825// IfNoneMatch sets the optional parameter which makes the operation
146826// fail if the object's ETag matches the given value. This is useful for
146827// getting updates only after the object has changed since the last
146828// request. Use googleapi.IsNotModified to check whether the response
146829// error from Do is the result of In-None-Match.
146830func (c *RoutesGetCall) IfNoneMatch(entityTag string) *RoutesGetCall {
146831	c.ifNoneMatch_ = entityTag
146832	return c
146833}
146834
146835// Context sets the context to be used in this call's Do method. Any
146836// pending HTTP request will be aborted if the provided context is
146837// canceled.
146838func (c *RoutesGetCall) Context(ctx context.Context) *RoutesGetCall {
146839	c.ctx_ = ctx
146840	return c
146841}
146842
146843// Header returns an http.Header that can be modified by the caller to
146844// add HTTP headers to the request.
146845func (c *RoutesGetCall) Header() http.Header {
146846	if c.header_ == nil {
146847		c.header_ = make(http.Header)
146848	}
146849	return c.header_
146850}
146851
146852func (c *RoutesGetCall) doRequest(alt string) (*http.Response, error) {
146853	reqHeaders := make(http.Header)
146854	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
146855	for k, v := range c.header_ {
146856		reqHeaders[k] = v
146857	}
146858	reqHeaders.Set("User-Agent", c.s.userAgent())
146859	if c.ifNoneMatch_ != "" {
146860		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
146861	}
146862	var body io.Reader = nil
146863	c.urlParams_.Set("alt", alt)
146864	c.urlParams_.Set("prettyPrint", "false")
146865	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes/{route}")
146866	urls += "?" + c.urlParams_.Encode()
146867	req, err := http.NewRequest("GET", urls, body)
146868	if err != nil {
146869		return nil, err
146870	}
146871	req.Header = reqHeaders
146872	googleapi.Expand(req.URL, map[string]string{
146873		"project": c.project,
146874		"route":   c.route,
146875	})
146876	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146877}
146878
146879// Do executes the "compute.routes.get" call.
146880// Exactly one of *Route or error will be non-nil. Any non-2xx status
146881// code is an error. Response headers are in either
146882// *Route.ServerResponse.Header or (if a response was returned at all)
146883// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
146884// check whether the returned error was because http.StatusNotModified
146885// was returned.
146886func (c *RoutesGetCall) Do(opts ...googleapi.CallOption) (*Route, error) {
146887	gensupport.SetOptions(c.urlParams_, opts...)
146888	res, err := c.doRequest("json")
146889	if res != nil && res.StatusCode == http.StatusNotModified {
146890		if res.Body != nil {
146891			res.Body.Close()
146892		}
146893		return nil, &googleapi.Error{
146894			Code:   res.StatusCode,
146895			Header: res.Header,
146896		}
146897	}
146898	if err != nil {
146899		return nil, err
146900	}
146901	defer googleapi.CloseBody(res)
146902	if err := googleapi.CheckResponse(res); err != nil {
146903		return nil, err
146904	}
146905	ret := &Route{
146906		ServerResponse: googleapi.ServerResponse{
146907			Header:         res.Header,
146908			HTTPStatusCode: res.StatusCode,
146909		},
146910	}
146911	target := &ret
146912	if err := gensupport.DecodeResponse(target, res); err != nil {
146913		return nil, err
146914	}
146915	return ret, nil
146916	// {
146917	//   "description": "Returns the specified Route resource. Gets a list of available routes by making a list() request.",
146918	//   "httpMethod": "GET",
146919	//   "id": "compute.routes.get",
146920	//   "parameterOrder": [
146921	//     "project",
146922	//     "route"
146923	//   ],
146924	//   "parameters": {
146925	//     "project": {
146926	//       "description": "Project ID for this request.",
146927	//       "location": "path",
146928	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146929	//       "required": true,
146930	//       "type": "string"
146931	//     },
146932	//     "route": {
146933	//       "description": "Name of the Route resource to return.",
146934	//       "location": "path",
146935	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146936	//       "required": true,
146937	//       "type": "string"
146938	//     }
146939	//   },
146940	//   "path": "{project}/global/routes/{route}",
146941	//   "response": {
146942	//     "$ref": "Route"
146943	//   },
146944	//   "scopes": [
146945	//     "https://www.googleapis.com/auth/cloud-platform",
146946	//     "https://www.googleapis.com/auth/compute",
146947	//     "https://www.googleapis.com/auth/compute.readonly"
146948	//   ]
146949	// }
146950
146951}
146952
146953// method id "compute.routes.insert":
146954
146955type RoutesInsertCall struct {
146956	s          *Service
146957	project    string
146958	route      *Route
146959	urlParams_ gensupport.URLParams
146960	ctx_       context.Context
146961	header_    http.Header
146962}
146963
146964// Insert: Creates a Route resource in the specified project using the
146965// data included in the request.
146966// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/insert
146967func (r *RoutesService) Insert(project string, route *Route) *RoutesInsertCall {
146968	c := &RoutesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146969	c.project = project
146970	c.route = route
146971	return c
146972}
146973
146974// RequestId sets the optional parameter "requestId": An optional
146975// request ID to identify requests. Specify a unique request ID so that
146976// if you must retry your request, the server will know to ignore the
146977// request if it has already been completed.
146978//
146979// For example, consider a situation where you make an initial request
146980// and the request times out. If you make the request again with the
146981// same request ID, the server can check if original operation with the
146982// same request ID was received, and if so, will ignore the second
146983// request. This prevents clients from accidentally creating duplicate
146984// commitments.
146985//
146986// The request ID must be a valid UUID with the exception that zero UUID
146987// is not supported (00000000-0000-0000-0000-000000000000).
146988func (c *RoutesInsertCall) RequestId(requestId string) *RoutesInsertCall {
146989	c.urlParams_.Set("requestId", requestId)
146990	return c
146991}
146992
146993// Fields allows partial responses to be retrieved. See
146994// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146995// for more information.
146996func (c *RoutesInsertCall) Fields(s ...googleapi.Field) *RoutesInsertCall {
146997	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146998	return c
146999}
147000
147001// Context sets the context to be used in this call's Do method. Any
147002// pending HTTP request will be aborted if the provided context is
147003// canceled.
147004func (c *RoutesInsertCall) Context(ctx context.Context) *RoutesInsertCall {
147005	c.ctx_ = ctx
147006	return c
147007}
147008
147009// Header returns an http.Header that can be modified by the caller to
147010// add HTTP headers to the request.
147011func (c *RoutesInsertCall) Header() http.Header {
147012	if c.header_ == nil {
147013		c.header_ = make(http.Header)
147014	}
147015	return c.header_
147016}
147017
147018func (c *RoutesInsertCall) doRequest(alt string) (*http.Response, error) {
147019	reqHeaders := make(http.Header)
147020	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
147021	for k, v := range c.header_ {
147022		reqHeaders[k] = v
147023	}
147024	reqHeaders.Set("User-Agent", c.s.userAgent())
147025	var body io.Reader = nil
147026	body, err := googleapi.WithoutDataWrapper.JSONReader(c.route)
147027	if err != nil {
147028		return nil, err
147029	}
147030	reqHeaders.Set("Content-Type", "application/json")
147031	c.urlParams_.Set("alt", alt)
147032	c.urlParams_.Set("prettyPrint", "false")
147033	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes")
147034	urls += "?" + c.urlParams_.Encode()
147035	req, err := http.NewRequest("POST", urls, body)
147036	if err != nil {
147037		return nil, err
147038	}
147039	req.Header = reqHeaders
147040	googleapi.Expand(req.URL, map[string]string{
147041		"project": c.project,
147042	})
147043	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147044}
147045
147046// Do executes the "compute.routes.insert" call.
147047// Exactly one of *Operation or error will be non-nil. Any non-2xx
147048// status code is an error. Response headers are in either
147049// *Operation.ServerResponse.Header or (if a response was returned at
147050// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
147051// to check whether the returned error was because
147052// http.StatusNotModified was returned.
147053func (c *RoutesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
147054	gensupport.SetOptions(c.urlParams_, opts...)
147055	res, err := c.doRequest("json")
147056	if res != nil && res.StatusCode == http.StatusNotModified {
147057		if res.Body != nil {
147058			res.Body.Close()
147059		}
147060		return nil, &googleapi.Error{
147061			Code:   res.StatusCode,
147062			Header: res.Header,
147063		}
147064	}
147065	if err != nil {
147066		return nil, err
147067	}
147068	defer googleapi.CloseBody(res)
147069	if err := googleapi.CheckResponse(res); err != nil {
147070		return nil, err
147071	}
147072	ret := &Operation{
147073		ServerResponse: googleapi.ServerResponse{
147074			Header:         res.Header,
147075			HTTPStatusCode: res.StatusCode,
147076		},
147077	}
147078	target := &ret
147079	if err := gensupport.DecodeResponse(target, res); err != nil {
147080		return nil, err
147081	}
147082	return ret, nil
147083	// {
147084	//   "description": "Creates a Route resource in the specified project using the data included in the request.",
147085	//   "httpMethod": "POST",
147086	//   "id": "compute.routes.insert",
147087	//   "parameterOrder": [
147088	//     "project"
147089	//   ],
147090	//   "parameters": {
147091	//     "project": {
147092	//       "description": "Project ID for this request.",
147093	//       "location": "path",
147094	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147095	//       "required": true,
147096	//       "type": "string"
147097	//     },
147098	//     "requestId": {
147099	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
147100	//       "location": "query",
147101	//       "type": "string"
147102	//     }
147103	//   },
147104	//   "path": "{project}/global/routes",
147105	//   "request": {
147106	//     "$ref": "Route"
147107	//   },
147108	//   "response": {
147109	//     "$ref": "Operation"
147110	//   },
147111	//   "scopes": [
147112	//     "https://www.googleapis.com/auth/cloud-platform",
147113	//     "https://www.googleapis.com/auth/compute"
147114	//   ]
147115	// }
147116
147117}
147118
147119// method id "compute.routes.list":
147120
147121type RoutesListCall struct {
147122	s            *Service
147123	project      string
147124	urlParams_   gensupport.URLParams
147125	ifNoneMatch_ string
147126	ctx_         context.Context
147127	header_      http.Header
147128}
147129
147130// List: Retrieves the list of Route resources available to the
147131// specified project.
147132// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/list
147133func (r *RoutesService) List(project string) *RoutesListCall {
147134	c := &RoutesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147135	c.project = project
147136	return c
147137}
147138
147139// Filter sets the optional parameter "filter": A filter expression that
147140// filters resources listed in the response. The expression must specify
147141// the field name, a comparison operator, and the value that you want to
147142// use for filtering. The value must be a string, a number, or a
147143// boolean. The comparison operator must be either =, !=, >, or <.
147144//
147145// For example, if you are filtering Compute Engine instances, you can
147146// exclude instances named example-instance by specifying name !=
147147// example-instance.
147148//
147149// You can also filter nested fields. For example, you could specify
147150// scheduling.automaticRestart = false to include instances only if they
147151// are not scheduled for automatic restarts. You can use filtering on
147152// nested fields to filter based on resource labels.
147153//
147154// To filter on multiple expressions, provide each separate expression
147155// within parentheses. For example, (scheduling.automaticRestart = true)
147156// (cpuPlatform = "Intel Skylake"). By default, each expression is an
147157// AND expression. However, you can include AND and OR expressions
147158// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
147159// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
147160// true).
147161func (c *RoutesListCall) Filter(filter string) *RoutesListCall {
147162	c.urlParams_.Set("filter", filter)
147163	return c
147164}
147165
147166// MaxResults sets the optional parameter "maxResults": The maximum
147167// number of results per page that should be returned. If the number of
147168// available results is larger than maxResults, Compute Engine returns a
147169// nextPageToken that can be used to get the next page of results in
147170// subsequent list requests. Acceptable values are 0 to 500, inclusive.
147171// (Default: 500)
147172func (c *RoutesListCall) MaxResults(maxResults int64) *RoutesListCall {
147173	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
147174	return c
147175}
147176
147177// OrderBy sets the optional parameter "orderBy": Sorts list results by
147178// a certain order. By default, results are returned in alphanumerical
147179// order based on the resource name.
147180//
147181// You can also sort results in descending order based on the creation
147182// timestamp using orderBy="creationTimestamp desc". This sorts results
147183// based on the creationTimestamp field in reverse chronological order
147184// (newest result first). Use this to sort resources like operations so
147185// that the newest operation is returned first.
147186//
147187// Currently, only sorting by name or creationTimestamp desc is
147188// supported.
147189func (c *RoutesListCall) OrderBy(orderBy string) *RoutesListCall {
147190	c.urlParams_.Set("orderBy", orderBy)
147191	return c
147192}
147193
147194// PageToken sets the optional parameter "pageToken": Specifies a page
147195// token to use. Set pageToken to the nextPageToken returned by a
147196// previous list request to get the next page of results.
147197func (c *RoutesListCall) PageToken(pageToken string) *RoutesListCall {
147198	c.urlParams_.Set("pageToken", pageToken)
147199	return c
147200}
147201
147202// Fields allows partial responses to be retrieved. See
147203// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147204// for more information.
147205func (c *RoutesListCall) Fields(s ...googleapi.Field) *RoutesListCall {
147206	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147207	return c
147208}
147209
147210// IfNoneMatch sets the optional parameter which makes the operation
147211// fail if the object's ETag matches the given value. This is useful for
147212// getting updates only after the object has changed since the last
147213// request. Use googleapi.IsNotModified to check whether the response
147214// error from Do is the result of In-None-Match.
147215func (c *RoutesListCall) IfNoneMatch(entityTag string) *RoutesListCall {
147216	c.ifNoneMatch_ = entityTag
147217	return c
147218}
147219
147220// Context sets the context to be used in this call's Do method. Any
147221// pending HTTP request will be aborted if the provided context is
147222// canceled.
147223func (c *RoutesListCall) Context(ctx context.Context) *RoutesListCall {
147224	c.ctx_ = ctx
147225	return c
147226}
147227
147228// Header returns an http.Header that can be modified by the caller to
147229// add HTTP headers to the request.
147230func (c *RoutesListCall) Header() http.Header {
147231	if c.header_ == nil {
147232		c.header_ = make(http.Header)
147233	}
147234	return c.header_
147235}
147236
147237func (c *RoutesListCall) doRequest(alt string) (*http.Response, error) {
147238	reqHeaders := make(http.Header)
147239	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
147240	for k, v := range c.header_ {
147241		reqHeaders[k] = v
147242	}
147243	reqHeaders.Set("User-Agent", c.s.userAgent())
147244	if c.ifNoneMatch_ != "" {
147245		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
147246	}
147247	var body io.Reader = nil
147248	c.urlParams_.Set("alt", alt)
147249	c.urlParams_.Set("prettyPrint", "false")
147250	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes")
147251	urls += "?" + c.urlParams_.Encode()
147252	req, err := http.NewRequest("GET", urls, body)
147253	if err != nil {
147254		return nil, err
147255	}
147256	req.Header = reqHeaders
147257	googleapi.Expand(req.URL, map[string]string{
147258		"project": c.project,
147259	})
147260	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147261}
147262
147263// Do executes the "compute.routes.list" call.
147264// Exactly one of *RouteList or error will be non-nil. Any non-2xx
147265// status code is an error. Response headers are in either
147266// *RouteList.ServerResponse.Header or (if a response was returned at
147267// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
147268// to check whether the returned error was because
147269// http.StatusNotModified was returned.
147270func (c *RoutesListCall) Do(opts ...googleapi.CallOption) (*RouteList, error) {
147271	gensupport.SetOptions(c.urlParams_, opts...)
147272	res, err := c.doRequest("json")
147273	if res != nil && res.StatusCode == http.StatusNotModified {
147274		if res.Body != nil {
147275			res.Body.Close()
147276		}
147277		return nil, &googleapi.Error{
147278			Code:   res.StatusCode,
147279			Header: res.Header,
147280		}
147281	}
147282	if err != nil {
147283		return nil, err
147284	}
147285	defer googleapi.CloseBody(res)
147286	if err := googleapi.CheckResponse(res); err != nil {
147287		return nil, err
147288	}
147289	ret := &RouteList{
147290		ServerResponse: googleapi.ServerResponse{
147291			Header:         res.Header,
147292			HTTPStatusCode: res.StatusCode,
147293		},
147294	}
147295	target := &ret
147296	if err := gensupport.DecodeResponse(target, res); err != nil {
147297		return nil, err
147298	}
147299	return ret, nil
147300	// {
147301	//   "description": "Retrieves the list of Route resources available to the specified project.",
147302	//   "httpMethod": "GET",
147303	//   "id": "compute.routes.list",
147304	//   "parameterOrder": [
147305	//     "project"
147306	//   ],
147307	//   "parameters": {
147308	//     "filter": {
147309	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
147310	//       "location": "query",
147311	//       "type": "string"
147312	//     },
147313	//     "maxResults": {
147314	//       "default": "500",
147315	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
147316	//       "format": "uint32",
147317	//       "location": "query",
147318	//       "minimum": "0",
147319	//       "type": "integer"
147320	//     },
147321	//     "orderBy": {
147322	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
147323	//       "location": "query",
147324	//       "type": "string"
147325	//     },
147326	//     "pageToken": {
147327	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
147328	//       "location": "query",
147329	//       "type": "string"
147330	//     },
147331	//     "project": {
147332	//       "description": "Project ID for this request.",
147333	//       "location": "path",
147334	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147335	//       "required": true,
147336	//       "type": "string"
147337	//     }
147338	//   },
147339	//   "path": "{project}/global/routes",
147340	//   "response": {
147341	//     "$ref": "RouteList"
147342	//   },
147343	//   "scopes": [
147344	//     "https://www.googleapis.com/auth/cloud-platform",
147345	//     "https://www.googleapis.com/auth/compute",
147346	//     "https://www.googleapis.com/auth/compute.readonly"
147347	//   ]
147348	// }
147349
147350}
147351
147352// Pages invokes f for each page of results.
147353// A non-nil error returned from f will halt the iteration.
147354// The provided context supersedes any context provided to the Context method.
147355func (c *RoutesListCall) Pages(ctx context.Context, f func(*RouteList) error) error {
147356	c.ctx_ = ctx
147357	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
147358	for {
147359		x, err := c.Do()
147360		if err != nil {
147361			return err
147362		}
147363		if err := f(x); err != nil {
147364			return err
147365		}
147366		if x.NextPageToken == "" {
147367			return nil
147368		}
147369		c.PageToken(x.NextPageToken)
147370	}
147371}
147372
147373// method id "compute.routes.testIamPermissions":
147374
147375type RoutesTestIamPermissionsCall struct {
147376	s                      *Service
147377	project                string
147378	resource               string
147379	testpermissionsrequest *TestPermissionsRequest
147380	urlParams_             gensupport.URLParams
147381	ctx_                   context.Context
147382	header_                http.Header
147383}
147384
147385// TestIamPermissions: Returns permissions that a caller has on the
147386// specified resource.
147387func (r *RoutesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *RoutesTestIamPermissionsCall {
147388	c := &RoutesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147389	c.project = project
147390	c.resource = resource
147391	c.testpermissionsrequest = testpermissionsrequest
147392	return c
147393}
147394
147395// Fields allows partial responses to be retrieved. See
147396// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147397// for more information.
147398func (c *RoutesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RoutesTestIamPermissionsCall {
147399	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147400	return c
147401}
147402
147403// Context sets the context to be used in this call's Do method. Any
147404// pending HTTP request will be aborted if the provided context is
147405// canceled.
147406func (c *RoutesTestIamPermissionsCall) Context(ctx context.Context) *RoutesTestIamPermissionsCall {
147407	c.ctx_ = ctx
147408	return c
147409}
147410
147411// Header returns an http.Header that can be modified by the caller to
147412// add HTTP headers to the request.
147413func (c *RoutesTestIamPermissionsCall) Header() http.Header {
147414	if c.header_ == nil {
147415		c.header_ = make(http.Header)
147416	}
147417	return c.header_
147418}
147419
147420func (c *RoutesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
147421	reqHeaders := make(http.Header)
147422	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
147423	for k, v := range c.header_ {
147424		reqHeaders[k] = v
147425	}
147426	reqHeaders.Set("User-Agent", c.s.userAgent())
147427	var body io.Reader = nil
147428	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
147429	if err != nil {
147430		return nil, err
147431	}
147432	reqHeaders.Set("Content-Type", "application/json")
147433	c.urlParams_.Set("alt", alt)
147434	c.urlParams_.Set("prettyPrint", "false")
147435	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes/{resource}/testIamPermissions")
147436	urls += "?" + c.urlParams_.Encode()
147437	req, err := http.NewRequest("POST", urls, body)
147438	if err != nil {
147439		return nil, err
147440	}
147441	req.Header = reqHeaders
147442	googleapi.Expand(req.URL, map[string]string{
147443		"project":  c.project,
147444		"resource": c.resource,
147445	})
147446	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147447}
147448
147449// Do executes the "compute.routes.testIamPermissions" call.
147450// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
147451// non-2xx status code is an error. Response headers are in either
147452// *TestPermissionsResponse.ServerResponse.Header or (if a response was
147453// returned at all) in error.(*googleapi.Error).Header. Use
147454// googleapi.IsNotModified to check whether the returned error was
147455// because http.StatusNotModified was returned.
147456func (c *RoutesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
147457	gensupport.SetOptions(c.urlParams_, opts...)
147458	res, err := c.doRequest("json")
147459	if res != nil && res.StatusCode == http.StatusNotModified {
147460		if res.Body != nil {
147461			res.Body.Close()
147462		}
147463		return nil, &googleapi.Error{
147464			Code:   res.StatusCode,
147465			Header: res.Header,
147466		}
147467	}
147468	if err != nil {
147469		return nil, err
147470	}
147471	defer googleapi.CloseBody(res)
147472	if err := googleapi.CheckResponse(res); err != nil {
147473		return nil, err
147474	}
147475	ret := &TestPermissionsResponse{
147476		ServerResponse: googleapi.ServerResponse{
147477			Header:         res.Header,
147478			HTTPStatusCode: res.StatusCode,
147479		},
147480	}
147481	target := &ret
147482	if err := gensupport.DecodeResponse(target, res); err != nil {
147483		return nil, err
147484	}
147485	return ret, nil
147486	// {
147487	//   "description": "Returns permissions that a caller has on the specified resource.",
147488	//   "httpMethod": "POST",
147489	//   "id": "compute.routes.testIamPermissions",
147490	//   "parameterOrder": [
147491	//     "project",
147492	//     "resource"
147493	//   ],
147494	//   "parameters": {
147495	//     "project": {
147496	//       "description": "Project ID for this request.",
147497	//       "location": "path",
147498	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147499	//       "required": true,
147500	//       "type": "string"
147501	//     },
147502	//     "resource": {
147503	//       "description": "Name or id of the resource for this request.",
147504	//       "location": "path",
147505	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147506	//       "required": true,
147507	//       "type": "string"
147508	//     }
147509	//   },
147510	//   "path": "{project}/global/routes/{resource}/testIamPermissions",
147511	//   "request": {
147512	//     "$ref": "TestPermissionsRequest"
147513	//   },
147514	//   "response": {
147515	//     "$ref": "TestPermissionsResponse"
147516	//   },
147517	//   "scopes": [
147518	//     "https://www.googleapis.com/auth/cloud-platform",
147519	//     "https://www.googleapis.com/auth/compute",
147520	//     "https://www.googleapis.com/auth/compute.readonly"
147521	//   ]
147522	// }
147523
147524}
147525
147526// method id "compute.securityPolicies.addRule":
147527
147528type SecurityPoliciesAddRuleCall struct {
147529	s                  *Service
147530	project            string
147531	securityPolicy     string
147532	securitypolicyrule *SecurityPolicyRule
147533	urlParams_         gensupport.URLParams
147534	ctx_               context.Context
147535	header_            http.Header
147536}
147537
147538// AddRule: Inserts a rule into a security policy.
147539func (r *SecurityPoliciesService) AddRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesAddRuleCall {
147540	c := &SecurityPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147541	c.project = project
147542	c.securityPolicy = securityPolicy
147543	c.securitypolicyrule = securitypolicyrule
147544	return c
147545}
147546
147547// ValidateOnly sets the optional parameter "validateOnly": If true, the
147548// request will not be committed.
147549func (c *SecurityPoliciesAddRuleCall) ValidateOnly(validateOnly bool) *SecurityPoliciesAddRuleCall {
147550	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
147551	return c
147552}
147553
147554// Fields allows partial responses to be retrieved. See
147555// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147556// for more information.
147557func (c *SecurityPoliciesAddRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesAddRuleCall {
147558	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147559	return c
147560}
147561
147562// Context sets the context to be used in this call's Do method. Any
147563// pending HTTP request will be aborted if the provided context is
147564// canceled.
147565func (c *SecurityPoliciesAddRuleCall) Context(ctx context.Context) *SecurityPoliciesAddRuleCall {
147566	c.ctx_ = ctx
147567	return c
147568}
147569
147570// Header returns an http.Header that can be modified by the caller to
147571// add HTTP headers to the request.
147572func (c *SecurityPoliciesAddRuleCall) Header() http.Header {
147573	if c.header_ == nil {
147574		c.header_ = make(http.Header)
147575	}
147576	return c.header_
147577}
147578
147579func (c *SecurityPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) {
147580	reqHeaders := make(http.Header)
147581	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
147582	for k, v := range c.header_ {
147583		reqHeaders[k] = v
147584	}
147585	reqHeaders.Set("User-Agent", c.s.userAgent())
147586	var body io.Reader = nil
147587	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
147588	if err != nil {
147589		return nil, err
147590	}
147591	reqHeaders.Set("Content-Type", "application/json")
147592	c.urlParams_.Set("alt", alt)
147593	c.urlParams_.Set("prettyPrint", "false")
147594	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/addRule")
147595	urls += "?" + c.urlParams_.Encode()
147596	req, err := http.NewRequest("POST", urls, body)
147597	if err != nil {
147598		return nil, err
147599	}
147600	req.Header = reqHeaders
147601	googleapi.Expand(req.URL, map[string]string{
147602		"project":        c.project,
147603		"securityPolicy": c.securityPolicy,
147604	})
147605	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147606}
147607
147608// Do executes the "compute.securityPolicies.addRule" call.
147609// Exactly one of *Operation or error will be non-nil. Any non-2xx
147610// status code is an error. Response headers are in either
147611// *Operation.ServerResponse.Header or (if a response was returned at
147612// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
147613// to check whether the returned error was because
147614// http.StatusNotModified was returned.
147615func (c *SecurityPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
147616	gensupport.SetOptions(c.urlParams_, opts...)
147617	res, err := c.doRequest("json")
147618	if res != nil && res.StatusCode == http.StatusNotModified {
147619		if res.Body != nil {
147620			res.Body.Close()
147621		}
147622		return nil, &googleapi.Error{
147623			Code:   res.StatusCode,
147624			Header: res.Header,
147625		}
147626	}
147627	if err != nil {
147628		return nil, err
147629	}
147630	defer googleapi.CloseBody(res)
147631	if err := googleapi.CheckResponse(res); err != nil {
147632		return nil, err
147633	}
147634	ret := &Operation{
147635		ServerResponse: googleapi.ServerResponse{
147636			Header:         res.Header,
147637			HTTPStatusCode: res.StatusCode,
147638		},
147639	}
147640	target := &ret
147641	if err := gensupport.DecodeResponse(target, res); err != nil {
147642		return nil, err
147643	}
147644	return ret, nil
147645	// {
147646	//   "description": "Inserts a rule into a security policy.",
147647	//   "httpMethod": "POST",
147648	//   "id": "compute.securityPolicies.addRule",
147649	//   "parameterOrder": [
147650	//     "project",
147651	//     "securityPolicy"
147652	//   ],
147653	//   "parameters": {
147654	//     "project": {
147655	//       "description": "Project ID for this request.",
147656	//       "location": "path",
147657	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147658	//       "required": true,
147659	//       "type": "string"
147660	//     },
147661	//     "securityPolicy": {
147662	//       "description": "Name of the security policy to update.",
147663	//       "location": "path",
147664	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147665	//       "required": true,
147666	//       "type": "string"
147667	//     },
147668	//     "validateOnly": {
147669	//       "description": "If true, the request will not be committed.",
147670	//       "location": "query",
147671	//       "type": "boolean"
147672	//     }
147673	//   },
147674	//   "path": "{project}/global/securityPolicies/{securityPolicy}/addRule",
147675	//   "request": {
147676	//     "$ref": "SecurityPolicyRule"
147677	//   },
147678	//   "response": {
147679	//     "$ref": "Operation"
147680	//   },
147681	//   "scopes": [
147682	//     "https://www.googleapis.com/auth/cloud-platform",
147683	//     "https://www.googleapis.com/auth/compute"
147684	//   ]
147685	// }
147686
147687}
147688
147689// method id "compute.securityPolicies.delete":
147690
147691type SecurityPoliciesDeleteCall struct {
147692	s              *Service
147693	project        string
147694	securityPolicy string
147695	urlParams_     gensupport.URLParams
147696	ctx_           context.Context
147697	header_        http.Header
147698}
147699
147700// Delete: Deletes the specified policy.
147701func (r *SecurityPoliciesService) Delete(project string, securityPolicy string) *SecurityPoliciesDeleteCall {
147702	c := &SecurityPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147703	c.project = project
147704	c.securityPolicy = securityPolicy
147705	return c
147706}
147707
147708// RequestId sets the optional parameter "requestId": An optional
147709// request ID to identify requests. Specify a unique request ID so that
147710// if you must retry your request, the server will know to ignore the
147711// request if it has already been completed.
147712//
147713// For example, consider a situation where you make an initial request
147714// and the request times out. If you make the request again with the
147715// same request ID, the server can check if original operation with the
147716// same request ID was received, and if so, will ignore the second
147717// request. This prevents clients from accidentally creating duplicate
147718// commitments.
147719//
147720// The request ID must be a valid UUID with the exception that zero UUID
147721// is not supported (00000000-0000-0000-0000-000000000000).
147722func (c *SecurityPoliciesDeleteCall) RequestId(requestId string) *SecurityPoliciesDeleteCall {
147723	c.urlParams_.Set("requestId", requestId)
147724	return c
147725}
147726
147727// Fields allows partial responses to be retrieved. See
147728// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147729// for more information.
147730func (c *SecurityPoliciesDeleteCall) Fields(s ...googleapi.Field) *SecurityPoliciesDeleteCall {
147731	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147732	return c
147733}
147734
147735// Context sets the context to be used in this call's Do method. Any
147736// pending HTTP request will be aborted if the provided context is
147737// canceled.
147738func (c *SecurityPoliciesDeleteCall) Context(ctx context.Context) *SecurityPoliciesDeleteCall {
147739	c.ctx_ = ctx
147740	return c
147741}
147742
147743// Header returns an http.Header that can be modified by the caller to
147744// add HTTP headers to the request.
147745func (c *SecurityPoliciesDeleteCall) Header() http.Header {
147746	if c.header_ == nil {
147747		c.header_ = make(http.Header)
147748	}
147749	return c.header_
147750}
147751
147752func (c *SecurityPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
147753	reqHeaders := make(http.Header)
147754	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
147755	for k, v := range c.header_ {
147756		reqHeaders[k] = v
147757	}
147758	reqHeaders.Set("User-Agent", c.s.userAgent())
147759	var body io.Reader = nil
147760	c.urlParams_.Set("alt", alt)
147761	c.urlParams_.Set("prettyPrint", "false")
147762	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}")
147763	urls += "?" + c.urlParams_.Encode()
147764	req, err := http.NewRequest("DELETE", urls, body)
147765	if err != nil {
147766		return nil, err
147767	}
147768	req.Header = reqHeaders
147769	googleapi.Expand(req.URL, map[string]string{
147770		"project":        c.project,
147771		"securityPolicy": c.securityPolicy,
147772	})
147773	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147774}
147775
147776// Do executes the "compute.securityPolicies.delete" call.
147777// Exactly one of *Operation or error will be non-nil. Any non-2xx
147778// status code is an error. Response headers are in either
147779// *Operation.ServerResponse.Header or (if a response was returned at
147780// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
147781// to check whether the returned error was because
147782// http.StatusNotModified was returned.
147783func (c *SecurityPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
147784	gensupport.SetOptions(c.urlParams_, opts...)
147785	res, err := c.doRequest("json")
147786	if res != nil && res.StatusCode == http.StatusNotModified {
147787		if res.Body != nil {
147788			res.Body.Close()
147789		}
147790		return nil, &googleapi.Error{
147791			Code:   res.StatusCode,
147792			Header: res.Header,
147793		}
147794	}
147795	if err != nil {
147796		return nil, err
147797	}
147798	defer googleapi.CloseBody(res)
147799	if err := googleapi.CheckResponse(res); err != nil {
147800		return nil, err
147801	}
147802	ret := &Operation{
147803		ServerResponse: googleapi.ServerResponse{
147804			Header:         res.Header,
147805			HTTPStatusCode: res.StatusCode,
147806		},
147807	}
147808	target := &ret
147809	if err := gensupport.DecodeResponse(target, res); err != nil {
147810		return nil, err
147811	}
147812	return ret, nil
147813	// {
147814	//   "description": "Deletes the specified policy.",
147815	//   "httpMethod": "DELETE",
147816	//   "id": "compute.securityPolicies.delete",
147817	//   "parameterOrder": [
147818	//     "project",
147819	//     "securityPolicy"
147820	//   ],
147821	//   "parameters": {
147822	//     "project": {
147823	//       "description": "Project ID for this request.",
147824	//       "location": "path",
147825	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147826	//       "required": true,
147827	//       "type": "string"
147828	//     },
147829	//     "requestId": {
147830	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
147831	//       "location": "query",
147832	//       "type": "string"
147833	//     },
147834	//     "securityPolicy": {
147835	//       "description": "Name of the security policy to delete.",
147836	//       "location": "path",
147837	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147838	//       "required": true,
147839	//       "type": "string"
147840	//     }
147841	//   },
147842	//   "path": "{project}/global/securityPolicies/{securityPolicy}",
147843	//   "response": {
147844	//     "$ref": "Operation"
147845	//   },
147846	//   "scopes": [
147847	//     "https://www.googleapis.com/auth/cloud-platform",
147848	//     "https://www.googleapis.com/auth/compute"
147849	//   ]
147850	// }
147851
147852}
147853
147854// method id "compute.securityPolicies.get":
147855
147856type SecurityPoliciesGetCall struct {
147857	s              *Service
147858	project        string
147859	securityPolicy string
147860	urlParams_     gensupport.URLParams
147861	ifNoneMatch_   string
147862	ctx_           context.Context
147863	header_        http.Header
147864}
147865
147866// Get: List all of the ordered rules present in a single specified
147867// policy.
147868func (r *SecurityPoliciesService) Get(project string, securityPolicy string) *SecurityPoliciesGetCall {
147869	c := &SecurityPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147870	c.project = project
147871	c.securityPolicy = securityPolicy
147872	return c
147873}
147874
147875// Fields allows partial responses to be retrieved. See
147876// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147877// for more information.
147878func (c *SecurityPoliciesGetCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetCall {
147879	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147880	return c
147881}
147882
147883// IfNoneMatch sets the optional parameter which makes the operation
147884// fail if the object's ETag matches the given value. This is useful for
147885// getting updates only after the object has changed since the last
147886// request. Use googleapi.IsNotModified to check whether the response
147887// error from Do is the result of In-None-Match.
147888func (c *SecurityPoliciesGetCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetCall {
147889	c.ifNoneMatch_ = entityTag
147890	return c
147891}
147892
147893// Context sets the context to be used in this call's Do method. Any
147894// pending HTTP request will be aborted if the provided context is
147895// canceled.
147896func (c *SecurityPoliciesGetCall) Context(ctx context.Context) *SecurityPoliciesGetCall {
147897	c.ctx_ = ctx
147898	return c
147899}
147900
147901// Header returns an http.Header that can be modified by the caller to
147902// add HTTP headers to the request.
147903func (c *SecurityPoliciesGetCall) Header() http.Header {
147904	if c.header_ == nil {
147905		c.header_ = make(http.Header)
147906	}
147907	return c.header_
147908}
147909
147910func (c *SecurityPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
147911	reqHeaders := make(http.Header)
147912	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
147913	for k, v := range c.header_ {
147914		reqHeaders[k] = v
147915	}
147916	reqHeaders.Set("User-Agent", c.s.userAgent())
147917	if c.ifNoneMatch_ != "" {
147918		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
147919	}
147920	var body io.Reader = nil
147921	c.urlParams_.Set("alt", alt)
147922	c.urlParams_.Set("prettyPrint", "false")
147923	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}")
147924	urls += "?" + c.urlParams_.Encode()
147925	req, err := http.NewRequest("GET", urls, body)
147926	if err != nil {
147927		return nil, err
147928	}
147929	req.Header = reqHeaders
147930	googleapi.Expand(req.URL, map[string]string{
147931		"project":        c.project,
147932		"securityPolicy": c.securityPolicy,
147933	})
147934	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147935}
147936
147937// Do executes the "compute.securityPolicies.get" call.
147938// Exactly one of *SecurityPolicy or error will be non-nil. Any non-2xx
147939// status code is an error. Response headers are in either
147940// *SecurityPolicy.ServerResponse.Header or (if a response was returned
147941// at all) in error.(*googleapi.Error).Header. Use
147942// googleapi.IsNotModified to check whether the returned error was
147943// because http.StatusNotModified was returned.
147944func (c *SecurityPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SecurityPolicy, error) {
147945	gensupport.SetOptions(c.urlParams_, opts...)
147946	res, err := c.doRequest("json")
147947	if res != nil && res.StatusCode == http.StatusNotModified {
147948		if res.Body != nil {
147949			res.Body.Close()
147950		}
147951		return nil, &googleapi.Error{
147952			Code:   res.StatusCode,
147953			Header: res.Header,
147954		}
147955	}
147956	if err != nil {
147957		return nil, err
147958	}
147959	defer googleapi.CloseBody(res)
147960	if err := googleapi.CheckResponse(res); err != nil {
147961		return nil, err
147962	}
147963	ret := &SecurityPolicy{
147964		ServerResponse: googleapi.ServerResponse{
147965			Header:         res.Header,
147966			HTTPStatusCode: res.StatusCode,
147967		},
147968	}
147969	target := &ret
147970	if err := gensupport.DecodeResponse(target, res); err != nil {
147971		return nil, err
147972	}
147973	return ret, nil
147974	// {
147975	//   "description": "List all of the ordered rules present in a single specified policy.",
147976	//   "httpMethod": "GET",
147977	//   "id": "compute.securityPolicies.get",
147978	//   "parameterOrder": [
147979	//     "project",
147980	//     "securityPolicy"
147981	//   ],
147982	//   "parameters": {
147983	//     "project": {
147984	//       "description": "Project ID for this request.",
147985	//       "location": "path",
147986	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147987	//       "required": true,
147988	//       "type": "string"
147989	//     },
147990	//     "securityPolicy": {
147991	//       "description": "Name of the security policy to get.",
147992	//       "location": "path",
147993	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147994	//       "required": true,
147995	//       "type": "string"
147996	//     }
147997	//   },
147998	//   "path": "{project}/global/securityPolicies/{securityPolicy}",
147999	//   "response": {
148000	//     "$ref": "SecurityPolicy"
148001	//   },
148002	//   "scopes": [
148003	//     "https://www.googleapis.com/auth/cloud-platform",
148004	//     "https://www.googleapis.com/auth/compute",
148005	//     "https://www.googleapis.com/auth/compute.readonly"
148006	//   ]
148007	// }
148008
148009}
148010
148011// method id "compute.securityPolicies.getRule":
148012
148013type SecurityPoliciesGetRuleCall struct {
148014	s              *Service
148015	project        string
148016	securityPolicy string
148017	urlParams_     gensupport.URLParams
148018	ifNoneMatch_   string
148019	ctx_           context.Context
148020	header_        http.Header
148021}
148022
148023// GetRule: Gets a rule at the specified priority.
148024func (r *SecurityPoliciesService) GetRule(project string, securityPolicy string) *SecurityPoliciesGetRuleCall {
148025	c := &SecurityPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148026	c.project = project
148027	c.securityPolicy = securityPolicy
148028	return c
148029}
148030
148031// Priority sets the optional parameter "priority": The priority of the
148032// rule to get from the security policy.
148033func (c *SecurityPoliciesGetRuleCall) Priority(priority int64) *SecurityPoliciesGetRuleCall {
148034	c.urlParams_.Set("priority", fmt.Sprint(priority))
148035	return c
148036}
148037
148038// Fields allows partial responses to be retrieved. See
148039// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148040// for more information.
148041func (c *SecurityPoliciesGetRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetRuleCall {
148042	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148043	return c
148044}
148045
148046// IfNoneMatch sets the optional parameter which makes the operation
148047// fail if the object's ETag matches the given value. This is useful for
148048// getting updates only after the object has changed since the last
148049// request. Use googleapi.IsNotModified to check whether the response
148050// error from Do is the result of In-None-Match.
148051func (c *SecurityPoliciesGetRuleCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetRuleCall {
148052	c.ifNoneMatch_ = entityTag
148053	return c
148054}
148055
148056// Context sets the context to be used in this call's Do method. Any
148057// pending HTTP request will be aborted if the provided context is
148058// canceled.
148059func (c *SecurityPoliciesGetRuleCall) Context(ctx context.Context) *SecurityPoliciesGetRuleCall {
148060	c.ctx_ = ctx
148061	return c
148062}
148063
148064// Header returns an http.Header that can be modified by the caller to
148065// add HTTP headers to the request.
148066func (c *SecurityPoliciesGetRuleCall) Header() http.Header {
148067	if c.header_ == nil {
148068		c.header_ = make(http.Header)
148069	}
148070	return c.header_
148071}
148072
148073func (c *SecurityPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) {
148074	reqHeaders := make(http.Header)
148075	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
148076	for k, v := range c.header_ {
148077		reqHeaders[k] = v
148078	}
148079	reqHeaders.Set("User-Agent", c.s.userAgent())
148080	if c.ifNoneMatch_ != "" {
148081		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
148082	}
148083	var body io.Reader = nil
148084	c.urlParams_.Set("alt", alt)
148085	c.urlParams_.Set("prettyPrint", "false")
148086	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/getRule")
148087	urls += "?" + c.urlParams_.Encode()
148088	req, err := http.NewRequest("GET", urls, body)
148089	if err != nil {
148090		return nil, err
148091	}
148092	req.Header = reqHeaders
148093	googleapi.Expand(req.URL, map[string]string{
148094		"project":        c.project,
148095		"securityPolicy": c.securityPolicy,
148096	})
148097	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148098}
148099
148100// Do executes the "compute.securityPolicies.getRule" call.
148101// Exactly one of *SecurityPolicyRule or error will be non-nil. Any
148102// non-2xx status code is an error. Response headers are in either
148103// *SecurityPolicyRule.ServerResponse.Header or (if a response was
148104// returned at all) in error.(*googleapi.Error).Header. Use
148105// googleapi.IsNotModified to check whether the returned error was
148106// because http.StatusNotModified was returned.
148107func (c *SecurityPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyRule, error) {
148108	gensupport.SetOptions(c.urlParams_, opts...)
148109	res, err := c.doRequest("json")
148110	if res != nil && res.StatusCode == http.StatusNotModified {
148111		if res.Body != nil {
148112			res.Body.Close()
148113		}
148114		return nil, &googleapi.Error{
148115			Code:   res.StatusCode,
148116			Header: res.Header,
148117		}
148118	}
148119	if err != nil {
148120		return nil, err
148121	}
148122	defer googleapi.CloseBody(res)
148123	if err := googleapi.CheckResponse(res); err != nil {
148124		return nil, err
148125	}
148126	ret := &SecurityPolicyRule{
148127		ServerResponse: googleapi.ServerResponse{
148128			Header:         res.Header,
148129			HTTPStatusCode: res.StatusCode,
148130		},
148131	}
148132	target := &ret
148133	if err := gensupport.DecodeResponse(target, res); err != nil {
148134		return nil, err
148135	}
148136	return ret, nil
148137	// {
148138	//   "description": "Gets a rule at the specified priority.",
148139	//   "httpMethod": "GET",
148140	//   "id": "compute.securityPolicies.getRule",
148141	//   "parameterOrder": [
148142	//     "project",
148143	//     "securityPolicy"
148144	//   ],
148145	//   "parameters": {
148146	//     "priority": {
148147	//       "description": "The priority of the rule to get from the security policy.",
148148	//       "format": "int32",
148149	//       "location": "query",
148150	//       "type": "integer"
148151	//     },
148152	//     "project": {
148153	//       "description": "Project ID for this request.",
148154	//       "location": "path",
148155	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148156	//       "required": true,
148157	//       "type": "string"
148158	//     },
148159	//     "securityPolicy": {
148160	//       "description": "Name of the security policy to which the queried rule belongs.",
148161	//       "location": "path",
148162	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
148163	//       "required": true,
148164	//       "type": "string"
148165	//     }
148166	//   },
148167	//   "path": "{project}/global/securityPolicies/{securityPolicy}/getRule",
148168	//   "response": {
148169	//     "$ref": "SecurityPolicyRule"
148170	//   },
148171	//   "scopes": [
148172	//     "https://www.googleapis.com/auth/cloud-platform",
148173	//     "https://www.googleapis.com/auth/compute",
148174	//     "https://www.googleapis.com/auth/compute.readonly"
148175	//   ]
148176	// }
148177
148178}
148179
148180// method id "compute.securityPolicies.insert":
148181
148182type SecurityPoliciesInsertCall struct {
148183	s              *Service
148184	project        string
148185	securitypolicy *SecurityPolicy
148186	urlParams_     gensupport.URLParams
148187	ctx_           context.Context
148188	header_        http.Header
148189}
148190
148191// Insert: Creates a new policy in the specified project using the data
148192// included in the request.
148193func (r *SecurityPoliciesService) Insert(project string, securitypolicy *SecurityPolicy) *SecurityPoliciesInsertCall {
148194	c := &SecurityPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148195	c.project = project
148196	c.securitypolicy = securitypolicy
148197	return c
148198}
148199
148200// RequestId sets the optional parameter "requestId": An optional
148201// request ID to identify requests. Specify a unique request ID so that
148202// if you must retry your request, the server will know to ignore the
148203// request if it has already been completed.
148204//
148205// For example, consider a situation where you make an initial request
148206// and the request times out. If you make the request again with the
148207// same request ID, the server can check if original operation with the
148208// same request ID was received, and if so, will ignore the second
148209// request. This prevents clients from accidentally creating duplicate
148210// commitments.
148211//
148212// The request ID must be a valid UUID with the exception that zero UUID
148213// is not supported (00000000-0000-0000-0000-000000000000).
148214func (c *SecurityPoliciesInsertCall) RequestId(requestId string) *SecurityPoliciesInsertCall {
148215	c.urlParams_.Set("requestId", requestId)
148216	return c
148217}
148218
148219// ValidateOnly sets the optional parameter "validateOnly": If true, the
148220// request will not be committed.
148221func (c *SecurityPoliciesInsertCall) ValidateOnly(validateOnly bool) *SecurityPoliciesInsertCall {
148222	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
148223	return c
148224}
148225
148226// Fields allows partial responses to be retrieved. See
148227// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148228// for more information.
148229func (c *SecurityPoliciesInsertCall) Fields(s ...googleapi.Field) *SecurityPoliciesInsertCall {
148230	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148231	return c
148232}
148233
148234// Context sets the context to be used in this call's Do method. Any
148235// pending HTTP request will be aborted if the provided context is
148236// canceled.
148237func (c *SecurityPoliciesInsertCall) Context(ctx context.Context) *SecurityPoliciesInsertCall {
148238	c.ctx_ = ctx
148239	return c
148240}
148241
148242// Header returns an http.Header that can be modified by the caller to
148243// add HTTP headers to the request.
148244func (c *SecurityPoliciesInsertCall) Header() http.Header {
148245	if c.header_ == nil {
148246		c.header_ = make(http.Header)
148247	}
148248	return c.header_
148249}
148250
148251func (c *SecurityPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
148252	reqHeaders := make(http.Header)
148253	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
148254	for k, v := range c.header_ {
148255		reqHeaders[k] = v
148256	}
148257	reqHeaders.Set("User-Agent", c.s.userAgent())
148258	var body io.Reader = nil
148259	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
148260	if err != nil {
148261		return nil, err
148262	}
148263	reqHeaders.Set("Content-Type", "application/json")
148264	c.urlParams_.Set("alt", alt)
148265	c.urlParams_.Set("prettyPrint", "false")
148266	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies")
148267	urls += "?" + c.urlParams_.Encode()
148268	req, err := http.NewRequest("POST", urls, body)
148269	if err != nil {
148270		return nil, err
148271	}
148272	req.Header = reqHeaders
148273	googleapi.Expand(req.URL, map[string]string{
148274		"project": c.project,
148275	})
148276	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148277}
148278
148279// Do executes the "compute.securityPolicies.insert" call.
148280// Exactly one of *Operation or error will be non-nil. Any non-2xx
148281// status code is an error. Response headers are in either
148282// *Operation.ServerResponse.Header or (if a response was returned at
148283// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
148284// to check whether the returned error was because
148285// http.StatusNotModified was returned.
148286func (c *SecurityPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
148287	gensupport.SetOptions(c.urlParams_, opts...)
148288	res, err := c.doRequest("json")
148289	if res != nil && res.StatusCode == http.StatusNotModified {
148290		if res.Body != nil {
148291			res.Body.Close()
148292		}
148293		return nil, &googleapi.Error{
148294			Code:   res.StatusCode,
148295			Header: res.Header,
148296		}
148297	}
148298	if err != nil {
148299		return nil, err
148300	}
148301	defer googleapi.CloseBody(res)
148302	if err := googleapi.CheckResponse(res); err != nil {
148303		return nil, err
148304	}
148305	ret := &Operation{
148306		ServerResponse: googleapi.ServerResponse{
148307			Header:         res.Header,
148308			HTTPStatusCode: res.StatusCode,
148309		},
148310	}
148311	target := &ret
148312	if err := gensupport.DecodeResponse(target, res); err != nil {
148313		return nil, err
148314	}
148315	return ret, nil
148316	// {
148317	//   "description": "Creates a new policy in the specified project using the data included in the request.",
148318	//   "httpMethod": "POST",
148319	//   "id": "compute.securityPolicies.insert",
148320	//   "parameterOrder": [
148321	//     "project"
148322	//   ],
148323	//   "parameters": {
148324	//     "project": {
148325	//       "description": "Project ID for this request.",
148326	//       "location": "path",
148327	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148328	//       "required": true,
148329	//       "type": "string"
148330	//     },
148331	//     "requestId": {
148332	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
148333	//       "location": "query",
148334	//       "type": "string"
148335	//     },
148336	//     "validateOnly": {
148337	//       "description": "If true, the request will not be committed.",
148338	//       "location": "query",
148339	//       "type": "boolean"
148340	//     }
148341	//   },
148342	//   "path": "{project}/global/securityPolicies",
148343	//   "request": {
148344	//     "$ref": "SecurityPolicy"
148345	//   },
148346	//   "response": {
148347	//     "$ref": "Operation"
148348	//   },
148349	//   "scopes": [
148350	//     "https://www.googleapis.com/auth/cloud-platform",
148351	//     "https://www.googleapis.com/auth/compute"
148352	//   ]
148353	// }
148354
148355}
148356
148357// method id "compute.securityPolicies.list":
148358
148359type SecurityPoliciesListCall struct {
148360	s            *Service
148361	project      string
148362	urlParams_   gensupport.URLParams
148363	ifNoneMatch_ string
148364	ctx_         context.Context
148365	header_      http.Header
148366}
148367
148368// List: List all the policies that have been configured for the
148369// specified project.
148370func (r *SecurityPoliciesService) List(project string) *SecurityPoliciesListCall {
148371	c := &SecurityPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148372	c.project = project
148373	return c
148374}
148375
148376// Filter sets the optional parameter "filter": A filter expression that
148377// filters resources listed in the response. The expression must specify
148378// the field name, a comparison operator, and the value that you want to
148379// use for filtering. The value must be a string, a number, or a
148380// boolean. The comparison operator must be either =, !=, >, or <.
148381//
148382// For example, if you are filtering Compute Engine instances, you can
148383// exclude instances named example-instance by specifying name !=
148384// example-instance.
148385//
148386// You can also filter nested fields. For example, you could specify
148387// scheduling.automaticRestart = false to include instances only if they
148388// are not scheduled for automatic restarts. You can use filtering on
148389// nested fields to filter based on resource labels.
148390//
148391// To filter on multiple expressions, provide each separate expression
148392// within parentheses. For example, (scheduling.automaticRestart = true)
148393// (cpuPlatform = "Intel Skylake"). By default, each expression is an
148394// AND expression. However, you can include AND and OR expressions
148395// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
148396// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
148397// true).
148398func (c *SecurityPoliciesListCall) Filter(filter string) *SecurityPoliciesListCall {
148399	c.urlParams_.Set("filter", filter)
148400	return c
148401}
148402
148403// MaxResults sets the optional parameter "maxResults": The maximum
148404// number of results per page that should be returned. If the number of
148405// available results is larger than maxResults, Compute Engine returns a
148406// nextPageToken that can be used to get the next page of results in
148407// subsequent list requests. Acceptable values are 0 to 500, inclusive.
148408// (Default: 500)
148409func (c *SecurityPoliciesListCall) MaxResults(maxResults int64) *SecurityPoliciesListCall {
148410	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
148411	return c
148412}
148413
148414// OrderBy sets the optional parameter "orderBy": Sorts list results by
148415// a certain order. By default, results are returned in alphanumerical
148416// order based on the resource name.
148417//
148418// You can also sort results in descending order based on the creation
148419// timestamp using orderBy="creationTimestamp desc". This sorts results
148420// based on the creationTimestamp field in reverse chronological order
148421// (newest result first). Use this to sort resources like operations so
148422// that the newest operation is returned first.
148423//
148424// Currently, only sorting by name or creationTimestamp desc is
148425// supported.
148426func (c *SecurityPoliciesListCall) OrderBy(orderBy string) *SecurityPoliciesListCall {
148427	c.urlParams_.Set("orderBy", orderBy)
148428	return c
148429}
148430
148431// PageToken sets the optional parameter "pageToken": Specifies a page
148432// token to use. Set pageToken to the nextPageToken returned by a
148433// previous list request to get the next page of results.
148434func (c *SecurityPoliciesListCall) PageToken(pageToken string) *SecurityPoliciesListCall {
148435	c.urlParams_.Set("pageToken", pageToken)
148436	return c
148437}
148438
148439// Fields allows partial responses to be retrieved. See
148440// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148441// for more information.
148442func (c *SecurityPoliciesListCall) Fields(s ...googleapi.Field) *SecurityPoliciesListCall {
148443	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148444	return c
148445}
148446
148447// IfNoneMatch sets the optional parameter which makes the operation
148448// fail if the object's ETag matches the given value. This is useful for
148449// getting updates only after the object has changed since the last
148450// request. Use googleapi.IsNotModified to check whether the response
148451// error from Do is the result of In-None-Match.
148452func (c *SecurityPoliciesListCall) IfNoneMatch(entityTag string) *SecurityPoliciesListCall {
148453	c.ifNoneMatch_ = entityTag
148454	return c
148455}
148456
148457// Context sets the context to be used in this call's Do method. Any
148458// pending HTTP request will be aborted if the provided context is
148459// canceled.
148460func (c *SecurityPoliciesListCall) Context(ctx context.Context) *SecurityPoliciesListCall {
148461	c.ctx_ = ctx
148462	return c
148463}
148464
148465// Header returns an http.Header that can be modified by the caller to
148466// add HTTP headers to the request.
148467func (c *SecurityPoliciesListCall) Header() http.Header {
148468	if c.header_ == nil {
148469		c.header_ = make(http.Header)
148470	}
148471	return c.header_
148472}
148473
148474func (c *SecurityPoliciesListCall) doRequest(alt string) (*http.Response, error) {
148475	reqHeaders := make(http.Header)
148476	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
148477	for k, v := range c.header_ {
148478		reqHeaders[k] = v
148479	}
148480	reqHeaders.Set("User-Agent", c.s.userAgent())
148481	if c.ifNoneMatch_ != "" {
148482		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
148483	}
148484	var body io.Reader = nil
148485	c.urlParams_.Set("alt", alt)
148486	c.urlParams_.Set("prettyPrint", "false")
148487	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies")
148488	urls += "?" + c.urlParams_.Encode()
148489	req, err := http.NewRequest("GET", urls, body)
148490	if err != nil {
148491		return nil, err
148492	}
148493	req.Header = reqHeaders
148494	googleapi.Expand(req.URL, map[string]string{
148495		"project": c.project,
148496	})
148497	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148498}
148499
148500// Do executes the "compute.securityPolicies.list" call.
148501// Exactly one of *SecurityPolicyList or error will be non-nil. Any
148502// non-2xx status code is an error. Response headers are in either
148503// *SecurityPolicyList.ServerResponse.Header or (if a response was
148504// returned at all) in error.(*googleapi.Error).Header. Use
148505// googleapi.IsNotModified to check whether the returned error was
148506// because http.StatusNotModified was returned.
148507func (c *SecurityPoliciesListCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyList, error) {
148508	gensupport.SetOptions(c.urlParams_, opts...)
148509	res, err := c.doRequest("json")
148510	if res != nil && res.StatusCode == http.StatusNotModified {
148511		if res.Body != nil {
148512			res.Body.Close()
148513		}
148514		return nil, &googleapi.Error{
148515			Code:   res.StatusCode,
148516			Header: res.Header,
148517		}
148518	}
148519	if err != nil {
148520		return nil, err
148521	}
148522	defer googleapi.CloseBody(res)
148523	if err := googleapi.CheckResponse(res); err != nil {
148524		return nil, err
148525	}
148526	ret := &SecurityPolicyList{
148527		ServerResponse: googleapi.ServerResponse{
148528			Header:         res.Header,
148529			HTTPStatusCode: res.StatusCode,
148530		},
148531	}
148532	target := &ret
148533	if err := gensupport.DecodeResponse(target, res); err != nil {
148534		return nil, err
148535	}
148536	return ret, nil
148537	// {
148538	//   "description": "List all the policies that have been configured for the specified project.",
148539	//   "httpMethod": "GET",
148540	//   "id": "compute.securityPolicies.list",
148541	//   "parameterOrder": [
148542	//     "project"
148543	//   ],
148544	//   "parameters": {
148545	//     "filter": {
148546	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
148547	//       "location": "query",
148548	//       "type": "string"
148549	//     },
148550	//     "maxResults": {
148551	//       "default": "500",
148552	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
148553	//       "format": "uint32",
148554	//       "location": "query",
148555	//       "minimum": "0",
148556	//       "type": "integer"
148557	//     },
148558	//     "orderBy": {
148559	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
148560	//       "location": "query",
148561	//       "type": "string"
148562	//     },
148563	//     "pageToken": {
148564	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
148565	//       "location": "query",
148566	//       "type": "string"
148567	//     },
148568	//     "project": {
148569	//       "description": "Project ID for this request.",
148570	//       "location": "path",
148571	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148572	//       "required": true,
148573	//       "type": "string"
148574	//     }
148575	//   },
148576	//   "path": "{project}/global/securityPolicies",
148577	//   "response": {
148578	//     "$ref": "SecurityPolicyList"
148579	//   },
148580	//   "scopes": [
148581	//     "https://www.googleapis.com/auth/cloud-platform",
148582	//     "https://www.googleapis.com/auth/compute",
148583	//     "https://www.googleapis.com/auth/compute.readonly"
148584	//   ]
148585	// }
148586
148587}
148588
148589// Pages invokes f for each page of results.
148590// A non-nil error returned from f will halt the iteration.
148591// The provided context supersedes any context provided to the Context method.
148592func (c *SecurityPoliciesListCall) Pages(ctx context.Context, f func(*SecurityPolicyList) error) error {
148593	c.ctx_ = ctx
148594	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
148595	for {
148596		x, err := c.Do()
148597		if err != nil {
148598			return err
148599		}
148600		if err := f(x); err != nil {
148601			return err
148602		}
148603		if x.NextPageToken == "" {
148604			return nil
148605		}
148606		c.PageToken(x.NextPageToken)
148607	}
148608}
148609
148610// method id "compute.securityPolicies.listPreconfiguredExpressionSets":
148611
148612type SecurityPoliciesListPreconfiguredExpressionSetsCall struct {
148613	s            *Service
148614	project      string
148615	urlParams_   gensupport.URLParams
148616	ifNoneMatch_ string
148617	ctx_         context.Context
148618	header_      http.Header
148619}
148620
148621// ListPreconfiguredExpressionSets: Gets the current list of
148622// preconfigured Web Application Firewall (WAF) expressions.
148623func (r *SecurityPoliciesService) ListPreconfiguredExpressionSets(project string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
148624	c := &SecurityPoliciesListPreconfiguredExpressionSetsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148625	c.project = project
148626	return c
148627}
148628
148629// Filter sets the optional parameter "filter": A filter expression that
148630// filters resources listed in the response. The expression must specify
148631// the field name, a comparison operator, and the value that you want to
148632// use for filtering. The value must be a string, a number, or a
148633// boolean. The comparison operator must be either =, !=, >, or <.
148634//
148635// For example, if you are filtering Compute Engine instances, you can
148636// exclude instances named example-instance by specifying name !=
148637// example-instance.
148638//
148639// You can also filter nested fields. For example, you could specify
148640// scheduling.automaticRestart = false to include instances only if they
148641// are not scheduled for automatic restarts. You can use filtering on
148642// nested fields to filter based on resource labels.
148643//
148644// To filter on multiple expressions, provide each separate expression
148645// within parentheses. For example, (scheduling.automaticRestart = true)
148646// (cpuPlatform = "Intel Skylake"). By default, each expression is an
148647// AND expression. However, you can include AND and OR expressions
148648// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
148649// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
148650// true).
148651func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Filter(filter string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
148652	c.urlParams_.Set("filter", filter)
148653	return c
148654}
148655
148656// MaxResults sets the optional parameter "maxResults": The maximum
148657// number of results per page that should be returned. If the number of
148658// available results is larger than maxResults, Compute Engine returns a
148659// nextPageToken that can be used to get the next page of results in
148660// subsequent list requests. Acceptable values are 0 to 500, inclusive.
148661// (Default: 500)
148662func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) MaxResults(maxResults int64) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
148663	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
148664	return c
148665}
148666
148667// OrderBy sets the optional parameter "orderBy": Sorts list results by
148668// a certain order. By default, results are returned in alphanumerical
148669// order based on the resource name.
148670//
148671// You can also sort results in descending order based on the creation
148672// timestamp using orderBy="creationTimestamp desc". This sorts results
148673// based on the creationTimestamp field in reverse chronological order
148674// (newest result first). Use this to sort resources like operations so
148675// that the newest operation is returned first.
148676//
148677// Currently, only sorting by name or creationTimestamp desc is
148678// supported.
148679func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) OrderBy(orderBy string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
148680	c.urlParams_.Set("orderBy", orderBy)
148681	return c
148682}
148683
148684// PageToken sets the optional parameter "pageToken": Specifies a page
148685// token to use. Set pageToken to the nextPageToken returned by a
148686// previous list request to get the next page of results.
148687func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) PageToken(pageToken string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
148688	c.urlParams_.Set("pageToken", pageToken)
148689	return c
148690}
148691
148692// Fields allows partial responses to be retrieved. See
148693// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148694// for more information.
148695func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Fields(s ...googleapi.Field) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
148696	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148697	return c
148698}
148699
148700// IfNoneMatch sets the optional parameter which makes the operation
148701// fail if the object's ETag matches the given value. This is useful for
148702// getting updates only after the object has changed since the last
148703// request. Use googleapi.IsNotModified to check whether the response
148704// error from Do is the result of In-None-Match.
148705func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) IfNoneMatch(entityTag string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
148706	c.ifNoneMatch_ = entityTag
148707	return c
148708}
148709
148710// Context sets the context to be used in this call's Do method. Any
148711// pending HTTP request will be aborted if the provided context is
148712// canceled.
148713func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Context(ctx context.Context) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
148714	c.ctx_ = ctx
148715	return c
148716}
148717
148718// Header returns an http.Header that can be modified by the caller to
148719// add HTTP headers to the request.
148720func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Header() http.Header {
148721	if c.header_ == nil {
148722		c.header_ = make(http.Header)
148723	}
148724	return c.header_
148725}
148726
148727func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) doRequest(alt string) (*http.Response, error) {
148728	reqHeaders := make(http.Header)
148729	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
148730	for k, v := range c.header_ {
148731		reqHeaders[k] = v
148732	}
148733	reqHeaders.Set("User-Agent", c.s.userAgent())
148734	if c.ifNoneMatch_ != "" {
148735		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
148736	}
148737	var body io.Reader = nil
148738	c.urlParams_.Set("alt", alt)
148739	c.urlParams_.Set("prettyPrint", "false")
148740	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/listPreconfiguredExpressionSets")
148741	urls += "?" + c.urlParams_.Encode()
148742	req, err := http.NewRequest("GET", urls, body)
148743	if err != nil {
148744		return nil, err
148745	}
148746	req.Header = reqHeaders
148747	googleapi.Expand(req.URL, map[string]string{
148748		"project": c.project,
148749	})
148750	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148751}
148752
148753// Do executes the "compute.securityPolicies.listPreconfiguredExpressionSets" call.
148754// Exactly one of
148755// *SecurityPoliciesListPreconfiguredExpressionSetsResponse or error
148756// will be non-nil. Any non-2xx status code is an error. Response
148757// headers are in either
148758// *SecurityPoliciesListPreconfiguredExpressionSetsResponse.ServerRespons
148759// e.Header or (if a response was returned at all) in
148760// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
148761// whether the returned error was because http.StatusNotModified was
148762// returned.
148763func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Do(opts ...googleapi.CallOption) (*SecurityPoliciesListPreconfiguredExpressionSetsResponse, error) {
148764	gensupport.SetOptions(c.urlParams_, opts...)
148765	res, err := c.doRequest("json")
148766	if res != nil && res.StatusCode == http.StatusNotModified {
148767		if res.Body != nil {
148768			res.Body.Close()
148769		}
148770		return nil, &googleapi.Error{
148771			Code:   res.StatusCode,
148772			Header: res.Header,
148773		}
148774	}
148775	if err != nil {
148776		return nil, err
148777	}
148778	defer googleapi.CloseBody(res)
148779	if err := googleapi.CheckResponse(res); err != nil {
148780		return nil, err
148781	}
148782	ret := &SecurityPoliciesListPreconfiguredExpressionSetsResponse{
148783		ServerResponse: googleapi.ServerResponse{
148784			Header:         res.Header,
148785			HTTPStatusCode: res.StatusCode,
148786		},
148787	}
148788	target := &ret
148789	if err := gensupport.DecodeResponse(target, res); err != nil {
148790		return nil, err
148791	}
148792	return ret, nil
148793	// {
148794	//   "description": "Gets the current list of preconfigured Web Application Firewall (WAF) expressions.",
148795	//   "httpMethod": "GET",
148796	//   "id": "compute.securityPolicies.listPreconfiguredExpressionSets",
148797	//   "parameterOrder": [
148798	//     "project"
148799	//   ],
148800	//   "parameters": {
148801	//     "filter": {
148802	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
148803	//       "location": "query",
148804	//       "type": "string"
148805	//     },
148806	//     "maxResults": {
148807	//       "default": "500",
148808	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
148809	//       "format": "uint32",
148810	//       "location": "query",
148811	//       "minimum": "0",
148812	//       "type": "integer"
148813	//     },
148814	//     "orderBy": {
148815	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
148816	//       "location": "query",
148817	//       "type": "string"
148818	//     },
148819	//     "pageToken": {
148820	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
148821	//       "location": "query",
148822	//       "type": "string"
148823	//     },
148824	//     "project": {
148825	//       "description": "Project ID for this request.",
148826	//       "location": "path",
148827	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148828	//       "required": true,
148829	//       "type": "string"
148830	//     }
148831	//   },
148832	//   "path": "{project}/global/securityPolicies/listPreconfiguredExpressionSets",
148833	//   "response": {
148834	//     "$ref": "SecurityPoliciesListPreconfiguredExpressionSetsResponse"
148835	//   },
148836	//   "scopes": [
148837	//     "https://www.googleapis.com/auth/cloud-platform",
148838	//     "https://www.googleapis.com/auth/compute"
148839	//   ]
148840	// }
148841
148842}
148843
148844// method id "compute.securityPolicies.patch":
148845
148846type SecurityPoliciesPatchCall struct {
148847	s              *Service
148848	project        string
148849	securityPolicy string
148850	securitypolicy *SecurityPolicy
148851	urlParams_     gensupport.URLParams
148852	ctx_           context.Context
148853	header_        http.Header
148854}
148855
148856// Patch: Patches the specified policy with the data included in the
148857// request.
148858func (r *SecurityPoliciesService) Patch(project string, securityPolicy string, securitypolicy *SecurityPolicy) *SecurityPoliciesPatchCall {
148859	c := &SecurityPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148860	c.project = project
148861	c.securityPolicy = securityPolicy
148862	c.securitypolicy = securitypolicy
148863	return c
148864}
148865
148866// RequestId sets the optional parameter "requestId": An optional
148867// request ID to identify requests. Specify a unique request ID so that
148868// if you must retry your request, the server will know to ignore the
148869// request if it has already been completed.
148870//
148871// For example, consider a situation where you make an initial request
148872// and the request times out. If you make the request again with the
148873// same request ID, the server can check if original operation with the
148874// same request ID was received, and if so, will ignore the second
148875// request. This prevents clients from accidentally creating duplicate
148876// commitments.
148877//
148878// The request ID must be a valid UUID with the exception that zero UUID
148879// is not supported (00000000-0000-0000-0000-000000000000).
148880func (c *SecurityPoliciesPatchCall) RequestId(requestId string) *SecurityPoliciesPatchCall {
148881	c.urlParams_.Set("requestId", requestId)
148882	return c
148883}
148884
148885// Fields allows partial responses to be retrieved. See
148886// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148887// for more information.
148888func (c *SecurityPoliciesPatchCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchCall {
148889	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148890	return c
148891}
148892
148893// Context sets the context to be used in this call's Do method. Any
148894// pending HTTP request will be aborted if the provided context is
148895// canceled.
148896func (c *SecurityPoliciesPatchCall) Context(ctx context.Context) *SecurityPoliciesPatchCall {
148897	c.ctx_ = ctx
148898	return c
148899}
148900
148901// Header returns an http.Header that can be modified by the caller to
148902// add HTTP headers to the request.
148903func (c *SecurityPoliciesPatchCall) Header() http.Header {
148904	if c.header_ == nil {
148905		c.header_ = make(http.Header)
148906	}
148907	return c.header_
148908}
148909
148910func (c *SecurityPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
148911	reqHeaders := make(http.Header)
148912	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
148913	for k, v := range c.header_ {
148914		reqHeaders[k] = v
148915	}
148916	reqHeaders.Set("User-Agent", c.s.userAgent())
148917	var body io.Reader = nil
148918	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
148919	if err != nil {
148920		return nil, err
148921	}
148922	reqHeaders.Set("Content-Type", "application/json")
148923	c.urlParams_.Set("alt", alt)
148924	c.urlParams_.Set("prettyPrint", "false")
148925	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}")
148926	urls += "?" + c.urlParams_.Encode()
148927	req, err := http.NewRequest("PATCH", urls, body)
148928	if err != nil {
148929		return nil, err
148930	}
148931	req.Header = reqHeaders
148932	googleapi.Expand(req.URL, map[string]string{
148933		"project":        c.project,
148934		"securityPolicy": c.securityPolicy,
148935	})
148936	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148937}
148938
148939// Do executes the "compute.securityPolicies.patch" call.
148940// Exactly one of *Operation or error will be non-nil. Any non-2xx
148941// status code is an error. Response headers are in either
148942// *Operation.ServerResponse.Header or (if a response was returned at
148943// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
148944// to check whether the returned error was because
148945// http.StatusNotModified was returned.
148946func (c *SecurityPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
148947	gensupport.SetOptions(c.urlParams_, opts...)
148948	res, err := c.doRequest("json")
148949	if res != nil && res.StatusCode == http.StatusNotModified {
148950		if res.Body != nil {
148951			res.Body.Close()
148952		}
148953		return nil, &googleapi.Error{
148954			Code:   res.StatusCode,
148955			Header: res.Header,
148956		}
148957	}
148958	if err != nil {
148959		return nil, err
148960	}
148961	defer googleapi.CloseBody(res)
148962	if err := googleapi.CheckResponse(res); err != nil {
148963		return nil, err
148964	}
148965	ret := &Operation{
148966		ServerResponse: googleapi.ServerResponse{
148967			Header:         res.Header,
148968			HTTPStatusCode: res.StatusCode,
148969		},
148970	}
148971	target := &ret
148972	if err := gensupport.DecodeResponse(target, res); err != nil {
148973		return nil, err
148974	}
148975	return ret, nil
148976	// {
148977	//   "description": "Patches the specified policy with the data included in the request.",
148978	//   "httpMethod": "PATCH",
148979	//   "id": "compute.securityPolicies.patch",
148980	//   "parameterOrder": [
148981	//     "project",
148982	//     "securityPolicy"
148983	//   ],
148984	//   "parameters": {
148985	//     "project": {
148986	//       "description": "Project ID for this request.",
148987	//       "location": "path",
148988	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148989	//       "required": true,
148990	//       "type": "string"
148991	//     },
148992	//     "requestId": {
148993	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
148994	//       "location": "query",
148995	//       "type": "string"
148996	//     },
148997	//     "securityPolicy": {
148998	//       "description": "Name of the security policy to update.",
148999	//       "location": "path",
149000	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149001	//       "required": true,
149002	//       "type": "string"
149003	//     }
149004	//   },
149005	//   "path": "{project}/global/securityPolicies/{securityPolicy}",
149006	//   "request": {
149007	//     "$ref": "SecurityPolicy"
149008	//   },
149009	//   "response": {
149010	//     "$ref": "Operation"
149011	//   },
149012	//   "scopes": [
149013	//     "https://www.googleapis.com/auth/cloud-platform",
149014	//     "https://www.googleapis.com/auth/compute"
149015	//   ]
149016	// }
149017
149018}
149019
149020// method id "compute.securityPolicies.patchRule":
149021
149022type SecurityPoliciesPatchRuleCall struct {
149023	s                  *Service
149024	project            string
149025	securityPolicy     string
149026	securitypolicyrule *SecurityPolicyRule
149027	urlParams_         gensupport.URLParams
149028	ctx_               context.Context
149029	header_            http.Header
149030}
149031
149032// PatchRule: Patches a rule at the specified priority.
149033func (r *SecurityPoliciesService) PatchRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesPatchRuleCall {
149034	c := &SecurityPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149035	c.project = project
149036	c.securityPolicy = securityPolicy
149037	c.securitypolicyrule = securitypolicyrule
149038	return c
149039}
149040
149041// Priority sets the optional parameter "priority": The priority of the
149042// rule to patch.
149043func (c *SecurityPoliciesPatchRuleCall) Priority(priority int64) *SecurityPoliciesPatchRuleCall {
149044	c.urlParams_.Set("priority", fmt.Sprint(priority))
149045	return c
149046}
149047
149048// ValidateOnly sets the optional parameter "validateOnly": If true, the
149049// request will not be committed.
149050func (c *SecurityPoliciesPatchRuleCall) ValidateOnly(validateOnly bool) *SecurityPoliciesPatchRuleCall {
149051	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
149052	return c
149053}
149054
149055// Fields allows partial responses to be retrieved. See
149056// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149057// for more information.
149058func (c *SecurityPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchRuleCall {
149059	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149060	return c
149061}
149062
149063// Context sets the context to be used in this call's Do method. Any
149064// pending HTTP request will be aborted if the provided context is
149065// canceled.
149066func (c *SecurityPoliciesPatchRuleCall) Context(ctx context.Context) *SecurityPoliciesPatchRuleCall {
149067	c.ctx_ = ctx
149068	return c
149069}
149070
149071// Header returns an http.Header that can be modified by the caller to
149072// add HTTP headers to the request.
149073func (c *SecurityPoliciesPatchRuleCall) Header() http.Header {
149074	if c.header_ == nil {
149075		c.header_ = make(http.Header)
149076	}
149077	return c.header_
149078}
149079
149080func (c *SecurityPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) {
149081	reqHeaders := make(http.Header)
149082	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
149083	for k, v := range c.header_ {
149084		reqHeaders[k] = v
149085	}
149086	reqHeaders.Set("User-Agent", c.s.userAgent())
149087	var body io.Reader = nil
149088	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
149089	if err != nil {
149090		return nil, err
149091	}
149092	reqHeaders.Set("Content-Type", "application/json")
149093	c.urlParams_.Set("alt", alt)
149094	c.urlParams_.Set("prettyPrint", "false")
149095	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/patchRule")
149096	urls += "?" + c.urlParams_.Encode()
149097	req, err := http.NewRequest("POST", urls, body)
149098	if err != nil {
149099		return nil, err
149100	}
149101	req.Header = reqHeaders
149102	googleapi.Expand(req.URL, map[string]string{
149103		"project":        c.project,
149104		"securityPolicy": c.securityPolicy,
149105	})
149106	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149107}
149108
149109// Do executes the "compute.securityPolicies.patchRule" call.
149110// Exactly one of *Operation or error will be non-nil. Any non-2xx
149111// status code is an error. Response headers are in either
149112// *Operation.ServerResponse.Header or (if a response was returned at
149113// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
149114// to check whether the returned error was because
149115// http.StatusNotModified was returned.
149116func (c *SecurityPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
149117	gensupport.SetOptions(c.urlParams_, opts...)
149118	res, err := c.doRequest("json")
149119	if res != nil && res.StatusCode == http.StatusNotModified {
149120		if res.Body != nil {
149121			res.Body.Close()
149122		}
149123		return nil, &googleapi.Error{
149124			Code:   res.StatusCode,
149125			Header: res.Header,
149126		}
149127	}
149128	if err != nil {
149129		return nil, err
149130	}
149131	defer googleapi.CloseBody(res)
149132	if err := googleapi.CheckResponse(res); err != nil {
149133		return nil, err
149134	}
149135	ret := &Operation{
149136		ServerResponse: googleapi.ServerResponse{
149137			Header:         res.Header,
149138			HTTPStatusCode: res.StatusCode,
149139		},
149140	}
149141	target := &ret
149142	if err := gensupport.DecodeResponse(target, res); err != nil {
149143		return nil, err
149144	}
149145	return ret, nil
149146	// {
149147	//   "description": "Patches a rule at the specified priority.",
149148	//   "httpMethod": "POST",
149149	//   "id": "compute.securityPolicies.patchRule",
149150	//   "parameterOrder": [
149151	//     "project",
149152	//     "securityPolicy"
149153	//   ],
149154	//   "parameters": {
149155	//     "priority": {
149156	//       "description": "The priority of the rule to patch.",
149157	//       "format": "int32",
149158	//       "location": "query",
149159	//       "type": "integer"
149160	//     },
149161	//     "project": {
149162	//       "description": "Project ID for this request.",
149163	//       "location": "path",
149164	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149165	//       "required": true,
149166	//       "type": "string"
149167	//     },
149168	//     "securityPolicy": {
149169	//       "description": "Name of the security policy to update.",
149170	//       "location": "path",
149171	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149172	//       "required": true,
149173	//       "type": "string"
149174	//     },
149175	//     "validateOnly": {
149176	//       "description": "If true, the request will not be committed.",
149177	//       "location": "query",
149178	//       "type": "boolean"
149179	//     }
149180	//   },
149181	//   "path": "{project}/global/securityPolicies/{securityPolicy}/patchRule",
149182	//   "request": {
149183	//     "$ref": "SecurityPolicyRule"
149184	//   },
149185	//   "response": {
149186	//     "$ref": "Operation"
149187	//   },
149188	//   "scopes": [
149189	//     "https://www.googleapis.com/auth/cloud-platform",
149190	//     "https://www.googleapis.com/auth/compute"
149191	//   ]
149192	// }
149193
149194}
149195
149196// method id "compute.securityPolicies.removeRule":
149197
149198type SecurityPoliciesRemoveRuleCall struct {
149199	s              *Service
149200	project        string
149201	securityPolicy string
149202	urlParams_     gensupport.URLParams
149203	ctx_           context.Context
149204	header_        http.Header
149205}
149206
149207// RemoveRule: Deletes a rule at the specified priority.
149208func (r *SecurityPoliciesService) RemoveRule(project string, securityPolicy string) *SecurityPoliciesRemoveRuleCall {
149209	c := &SecurityPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149210	c.project = project
149211	c.securityPolicy = securityPolicy
149212	return c
149213}
149214
149215// Priority sets the optional parameter "priority": The priority of the
149216// rule to remove from the security policy.
149217func (c *SecurityPoliciesRemoveRuleCall) Priority(priority int64) *SecurityPoliciesRemoveRuleCall {
149218	c.urlParams_.Set("priority", fmt.Sprint(priority))
149219	return c
149220}
149221
149222// Fields allows partial responses to be retrieved. See
149223// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149224// for more information.
149225func (c *SecurityPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesRemoveRuleCall {
149226	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149227	return c
149228}
149229
149230// Context sets the context to be used in this call's Do method. Any
149231// pending HTTP request will be aborted if the provided context is
149232// canceled.
149233func (c *SecurityPoliciesRemoveRuleCall) Context(ctx context.Context) *SecurityPoliciesRemoveRuleCall {
149234	c.ctx_ = ctx
149235	return c
149236}
149237
149238// Header returns an http.Header that can be modified by the caller to
149239// add HTTP headers to the request.
149240func (c *SecurityPoliciesRemoveRuleCall) Header() http.Header {
149241	if c.header_ == nil {
149242		c.header_ = make(http.Header)
149243	}
149244	return c.header_
149245}
149246
149247func (c *SecurityPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) {
149248	reqHeaders := make(http.Header)
149249	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
149250	for k, v := range c.header_ {
149251		reqHeaders[k] = v
149252	}
149253	reqHeaders.Set("User-Agent", c.s.userAgent())
149254	var body io.Reader = nil
149255	c.urlParams_.Set("alt", alt)
149256	c.urlParams_.Set("prettyPrint", "false")
149257	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/removeRule")
149258	urls += "?" + c.urlParams_.Encode()
149259	req, err := http.NewRequest("POST", urls, body)
149260	if err != nil {
149261		return nil, err
149262	}
149263	req.Header = reqHeaders
149264	googleapi.Expand(req.URL, map[string]string{
149265		"project":        c.project,
149266		"securityPolicy": c.securityPolicy,
149267	})
149268	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149269}
149270
149271// Do executes the "compute.securityPolicies.removeRule" call.
149272// Exactly one of *Operation or error will be non-nil. Any non-2xx
149273// status code is an error. Response headers are in either
149274// *Operation.ServerResponse.Header or (if a response was returned at
149275// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
149276// to check whether the returned error was because
149277// http.StatusNotModified was returned.
149278func (c *SecurityPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
149279	gensupport.SetOptions(c.urlParams_, opts...)
149280	res, err := c.doRequest("json")
149281	if res != nil && res.StatusCode == http.StatusNotModified {
149282		if res.Body != nil {
149283			res.Body.Close()
149284		}
149285		return nil, &googleapi.Error{
149286			Code:   res.StatusCode,
149287			Header: res.Header,
149288		}
149289	}
149290	if err != nil {
149291		return nil, err
149292	}
149293	defer googleapi.CloseBody(res)
149294	if err := googleapi.CheckResponse(res); err != nil {
149295		return nil, err
149296	}
149297	ret := &Operation{
149298		ServerResponse: googleapi.ServerResponse{
149299			Header:         res.Header,
149300			HTTPStatusCode: res.StatusCode,
149301		},
149302	}
149303	target := &ret
149304	if err := gensupport.DecodeResponse(target, res); err != nil {
149305		return nil, err
149306	}
149307	return ret, nil
149308	// {
149309	//   "description": "Deletes a rule at the specified priority.",
149310	//   "httpMethod": "POST",
149311	//   "id": "compute.securityPolicies.removeRule",
149312	//   "parameterOrder": [
149313	//     "project",
149314	//     "securityPolicy"
149315	//   ],
149316	//   "parameters": {
149317	//     "priority": {
149318	//       "description": "The priority of the rule to remove from the security policy.",
149319	//       "format": "int32",
149320	//       "location": "query",
149321	//       "type": "integer"
149322	//     },
149323	//     "project": {
149324	//       "description": "Project ID for this request.",
149325	//       "location": "path",
149326	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149327	//       "required": true,
149328	//       "type": "string"
149329	//     },
149330	//     "securityPolicy": {
149331	//       "description": "Name of the security policy to update.",
149332	//       "location": "path",
149333	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149334	//       "required": true,
149335	//       "type": "string"
149336	//     }
149337	//   },
149338	//   "path": "{project}/global/securityPolicies/{securityPolicy}/removeRule",
149339	//   "response": {
149340	//     "$ref": "Operation"
149341	//   },
149342	//   "scopes": [
149343	//     "https://www.googleapis.com/auth/cloud-platform",
149344	//     "https://www.googleapis.com/auth/compute"
149345	//   ]
149346	// }
149347
149348}
149349
149350// method id "compute.securityPolicies.setLabels":
149351
149352type SecurityPoliciesSetLabelsCall struct {
149353	s                      *Service
149354	project                string
149355	resource               string
149356	globalsetlabelsrequest *GlobalSetLabelsRequest
149357	urlParams_             gensupport.URLParams
149358	ctx_                   context.Context
149359	header_                http.Header
149360}
149361
149362// SetLabels: Sets the labels on a security policy. To learn more about
149363// labels, read the Labeling Resources documentation.
149364func (r *SecurityPoliciesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *SecurityPoliciesSetLabelsCall {
149365	c := &SecurityPoliciesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149366	c.project = project
149367	c.resource = resource
149368	c.globalsetlabelsrequest = globalsetlabelsrequest
149369	return c
149370}
149371
149372// Fields allows partial responses to be retrieved. See
149373// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149374// for more information.
149375func (c *SecurityPoliciesSetLabelsCall) Fields(s ...googleapi.Field) *SecurityPoliciesSetLabelsCall {
149376	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149377	return c
149378}
149379
149380// Context sets the context to be used in this call's Do method. Any
149381// pending HTTP request will be aborted if the provided context is
149382// canceled.
149383func (c *SecurityPoliciesSetLabelsCall) Context(ctx context.Context) *SecurityPoliciesSetLabelsCall {
149384	c.ctx_ = ctx
149385	return c
149386}
149387
149388// Header returns an http.Header that can be modified by the caller to
149389// add HTTP headers to the request.
149390func (c *SecurityPoliciesSetLabelsCall) Header() http.Header {
149391	if c.header_ == nil {
149392		c.header_ = make(http.Header)
149393	}
149394	return c.header_
149395}
149396
149397func (c *SecurityPoliciesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
149398	reqHeaders := make(http.Header)
149399	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
149400	for k, v := range c.header_ {
149401		reqHeaders[k] = v
149402	}
149403	reqHeaders.Set("User-Agent", c.s.userAgent())
149404	var body io.Reader = nil
149405	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
149406	if err != nil {
149407		return nil, err
149408	}
149409	reqHeaders.Set("Content-Type", "application/json")
149410	c.urlParams_.Set("alt", alt)
149411	c.urlParams_.Set("prettyPrint", "false")
149412	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{resource}/setLabels")
149413	urls += "?" + c.urlParams_.Encode()
149414	req, err := http.NewRequest("POST", urls, body)
149415	if err != nil {
149416		return nil, err
149417	}
149418	req.Header = reqHeaders
149419	googleapi.Expand(req.URL, map[string]string{
149420		"project":  c.project,
149421		"resource": c.resource,
149422	})
149423	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149424}
149425
149426// Do executes the "compute.securityPolicies.setLabels" call.
149427// Exactly one of *Operation or error will be non-nil. Any non-2xx
149428// status code is an error. Response headers are in either
149429// *Operation.ServerResponse.Header or (if a response was returned at
149430// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
149431// to check whether the returned error was because
149432// http.StatusNotModified was returned.
149433func (c *SecurityPoliciesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
149434	gensupport.SetOptions(c.urlParams_, opts...)
149435	res, err := c.doRequest("json")
149436	if res != nil && res.StatusCode == http.StatusNotModified {
149437		if res.Body != nil {
149438			res.Body.Close()
149439		}
149440		return nil, &googleapi.Error{
149441			Code:   res.StatusCode,
149442			Header: res.Header,
149443		}
149444	}
149445	if err != nil {
149446		return nil, err
149447	}
149448	defer googleapi.CloseBody(res)
149449	if err := googleapi.CheckResponse(res); err != nil {
149450		return nil, err
149451	}
149452	ret := &Operation{
149453		ServerResponse: googleapi.ServerResponse{
149454			Header:         res.Header,
149455			HTTPStatusCode: res.StatusCode,
149456		},
149457	}
149458	target := &ret
149459	if err := gensupport.DecodeResponse(target, res); err != nil {
149460		return nil, err
149461	}
149462	return ret, nil
149463	// {
149464	//   "description": "Sets the labels on a security policy. To learn more about labels, read the Labeling Resources documentation.",
149465	//   "httpMethod": "POST",
149466	//   "id": "compute.securityPolicies.setLabels",
149467	//   "parameterOrder": [
149468	//     "project",
149469	//     "resource"
149470	//   ],
149471	//   "parameters": {
149472	//     "project": {
149473	//       "description": "Project ID for this request.",
149474	//       "location": "path",
149475	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149476	//       "required": true,
149477	//       "type": "string"
149478	//     },
149479	//     "resource": {
149480	//       "description": "Name or id of the resource for this request.",
149481	//       "location": "path",
149482	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149483	//       "required": true,
149484	//       "type": "string"
149485	//     }
149486	//   },
149487	//   "path": "{project}/global/securityPolicies/{resource}/setLabels",
149488	//   "request": {
149489	//     "$ref": "GlobalSetLabelsRequest"
149490	//   },
149491	//   "response": {
149492	//     "$ref": "Operation"
149493	//   },
149494	//   "scopes": [
149495	//     "https://www.googleapis.com/auth/cloud-platform",
149496	//     "https://www.googleapis.com/auth/compute"
149497	//   ]
149498	// }
149499
149500}
149501
149502// method id "compute.securityPolicies.testIamPermissions":
149503
149504type SecurityPoliciesTestIamPermissionsCall struct {
149505	s                      *Service
149506	project                string
149507	resource               string
149508	testpermissionsrequest *TestPermissionsRequest
149509	urlParams_             gensupport.URLParams
149510	ctx_                   context.Context
149511	header_                http.Header
149512}
149513
149514// TestIamPermissions: Returns permissions that a caller has on the
149515// specified resource.
149516func (r *SecurityPoliciesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SecurityPoliciesTestIamPermissionsCall {
149517	c := &SecurityPoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149518	c.project = project
149519	c.resource = resource
149520	c.testpermissionsrequest = testpermissionsrequest
149521	return c
149522}
149523
149524// Fields allows partial responses to be retrieved. See
149525// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149526// for more information.
149527func (c *SecurityPoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *SecurityPoliciesTestIamPermissionsCall {
149528	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149529	return c
149530}
149531
149532// Context sets the context to be used in this call's Do method. Any
149533// pending HTTP request will be aborted if the provided context is
149534// canceled.
149535func (c *SecurityPoliciesTestIamPermissionsCall) Context(ctx context.Context) *SecurityPoliciesTestIamPermissionsCall {
149536	c.ctx_ = ctx
149537	return c
149538}
149539
149540// Header returns an http.Header that can be modified by the caller to
149541// add HTTP headers to the request.
149542func (c *SecurityPoliciesTestIamPermissionsCall) Header() http.Header {
149543	if c.header_ == nil {
149544		c.header_ = make(http.Header)
149545	}
149546	return c.header_
149547}
149548
149549func (c *SecurityPoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
149550	reqHeaders := make(http.Header)
149551	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
149552	for k, v := range c.header_ {
149553		reqHeaders[k] = v
149554	}
149555	reqHeaders.Set("User-Agent", c.s.userAgent())
149556	var body io.Reader = nil
149557	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
149558	if err != nil {
149559		return nil, err
149560	}
149561	reqHeaders.Set("Content-Type", "application/json")
149562	c.urlParams_.Set("alt", alt)
149563	c.urlParams_.Set("prettyPrint", "false")
149564	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{resource}/testIamPermissions")
149565	urls += "?" + c.urlParams_.Encode()
149566	req, err := http.NewRequest("POST", urls, body)
149567	if err != nil {
149568		return nil, err
149569	}
149570	req.Header = reqHeaders
149571	googleapi.Expand(req.URL, map[string]string{
149572		"project":  c.project,
149573		"resource": c.resource,
149574	})
149575	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149576}
149577
149578// Do executes the "compute.securityPolicies.testIamPermissions" call.
149579// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
149580// non-2xx status code is an error. Response headers are in either
149581// *TestPermissionsResponse.ServerResponse.Header or (if a response was
149582// returned at all) in error.(*googleapi.Error).Header. Use
149583// googleapi.IsNotModified to check whether the returned error was
149584// because http.StatusNotModified was returned.
149585func (c *SecurityPoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
149586	gensupport.SetOptions(c.urlParams_, opts...)
149587	res, err := c.doRequest("json")
149588	if res != nil && res.StatusCode == http.StatusNotModified {
149589		if res.Body != nil {
149590			res.Body.Close()
149591		}
149592		return nil, &googleapi.Error{
149593			Code:   res.StatusCode,
149594			Header: res.Header,
149595		}
149596	}
149597	if err != nil {
149598		return nil, err
149599	}
149600	defer googleapi.CloseBody(res)
149601	if err := googleapi.CheckResponse(res); err != nil {
149602		return nil, err
149603	}
149604	ret := &TestPermissionsResponse{
149605		ServerResponse: googleapi.ServerResponse{
149606			Header:         res.Header,
149607			HTTPStatusCode: res.StatusCode,
149608		},
149609	}
149610	target := &ret
149611	if err := gensupport.DecodeResponse(target, res); err != nil {
149612		return nil, err
149613	}
149614	return ret, nil
149615	// {
149616	//   "description": "Returns permissions that a caller has on the specified resource.",
149617	//   "httpMethod": "POST",
149618	//   "id": "compute.securityPolicies.testIamPermissions",
149619	//   "parameterOrder": [
149620	//     "project",
149621	//     "resource"
149622	//   ],
149623	//   "parameters": {
149624	//     "project": {
149625	//       "description": "Project ID for this request.",
149626	//       "location": "path",
149627	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149628	//       "required": true,
149629	//       "type": "string"
149630	//     },
149631	//     "resource": {
149632	//       "description": "Name or id of the resource for this request.",
149633	//       "location": "path",
149634	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149635	//       "required": true,
149636	//       "type": "string"
149637	//     }
149638	//   },
149639	//   "path": "{project}/global/securityPolicies/{resource}/testIamPermissions",
149640	//   "request": {
149641	//     "$ref": "TestPermissionsRequest"
149642	//   },
149643	//   "response": {
149644	//     "$ref": "TestPermissionsResponse"
149645	//   },
149646	//   "scopes": [
149647	//     "https://www.googleapis.com/auth/cloud-platform",
149648	//     "https://www.googleapis.com/auth/compute",
149649	//     "https://www.googleapis.com/auth/compute.readonly"
149650	//   ]
149651	// }
149652
149653}
149654
149655// method id "compute.snapshots.delete":
149656
149657type SnapshotsDeleteCall struct {
149658	s          *Service
149659	project    string
149660	snapshot   string
149661	urlParams_ gensupport.URLParams
149662	ctx_       context.Context
149663	header_    http.Header
149664}
149665
149666// Delete: Deletes the specified Snapshot resource. Keep in mind that
149667// deleting a single snapshot might not necessarily delete all the data
149668// on that snapshot. If any data on the snapshot that is marked for
149669// deletion is needed for subsequent snapshots, the data will be moved
149670// to the next corresponding snapshot.
149671//
149672// For more information, see Deleting snapshots.
149673// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/delete
149674func (r *SnapshotsService) Delete(project string, snapshot string) *SnapshotsDeleteCall {
149675	c := &SnapshotsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149676	c.project = project
149677	c.snapshot = snapshot
149678	return c
149679}
149680
149681// RequestId sets the optional parameter "requestId": An optional
149682// request ID to identify requests. Specify a unique request ID so that
149683// if you must retry your request, the server will know to ignore the
149684// request if it has already been completed.
149685//
149686// For example, consider a situation where you make an initial request
149687// and the request times out. If you make the request again with the
149688// same request ID, the server can check if original operation with the
149689// same request ID was received, and if so, will ignore the second
149690// request. This prevents clients from accidentally creating duplicate
149691// commitments.
149692//
149693// The request ID must be a valid UUID with the exception that zero UUID
149694// is not supported (00000000-0000-0000-0000-000000000000).
149695func (c *SnapshotsDeleteCall) RequestId(requestId string) *SnapshotsDeleteCall {
149696	c.urlParams_.Set("requestId", requestId)
149697	return c
149698}
149699
149700// Fields allows partial responses to be retrieved. See
149701// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149702// for more information.
149703func (c *SnapshotsDeleteCall) Fields(s ...googleapi.Field) *SnapshotsDeleteCall {
149704	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149705	return c
149706}
149707
149708// Context sets the context to be used in this call's Do method. Any
149709// pending HTTP request will be aborted if the provided context is
149710// canceled.
149711func (c *SnapshotsDeleteCall) Context(ctx context.Context) *SnapshotsDeleteCall {
149712	c.ctx_ = ctx
149713	return c
149714}
149715
149716// Header returns an http.Header that can be modified by the caller to
149717// add HTTP headers to the request.
149718func (c *SnapshotsDeleteCall) Header() http.Header {
149719	if c.header_ == nil {
149720		c.header_ = make(http.Header)
149721	}
149722	return c.header_
149723}
149724
149725func (c *SnapshotsDeleteCall) doRequest(alt string) (*http.Response, error) {
149726	reqHeaders := make(http.Header)
149727	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
149728	for k, v := range c.header_ {
149729		reqHeaders[k] = v
149730	}
149731	reqHeaders.Set("User-Agent", c.s.userAgent())
149732	var body io.Reader = nil
149733	c.urlParams_.Set("alt", alt)
149734	c.urlParams_.Set("prettyPrint", "false")
149735	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{snapshot}")
149736	urls += "?" + c.urlParams_.Encode()
149737	req, err := http.NewRequest("DELETE", urls, body)
149738	if err != nil {
149739		return nil, err
149740	}
149741	req.Header = reqHeaders
149742	googleapi.Expand(req.URL, map[string]string{
149743		"project":  c.project,
149744		"snapshot": c.snapshot,
149745	})
149746	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149747}
149748
149749// Do executes the "compute.snapshots.delete" call.
149750// Exactly one of *Operation or error will be non-nil. Any non-2xx
149751// status code is an error. Response headers are in either
149752// *Operation.ServerResponse.Header or (if a response was returned at
149753// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
149754// to check whether the returned error was because
149755// http.StatusNotModified was returned.
149756func (c *SnapshotsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
149757	gensupport.SetOptions(c.urlParams_, opts...)
149758	res, err := c.doRequest("json")
149759	if res != nil && res.StatusCode == http.StatusNotModified {
149760		if res.Body != nil {
149761			res.Body.Close()
149762		}
149763		return nil, &googleapi.Error{
149764			Code:   res.StatusCode,
149765			Header: res.Header,
149766		}
149767	}
149768	if err != nil {
149769		return nil, err
149770	}
149771	defer googleapi.CloseBody(res)
149772	if err := googleapi.CheckResponse(res); err != nil {
149773		return nil, err
149774	}
149775	ret := &Operation{
149776		ServerResponse: googleapi.ServerResponse{
149777			Header:         res.Header,
149778			HTTPStatusCode: res.StatusCode,
149779		},
149780	}
149781	target := &ret
149782	if err := gensupport.DecodeResponse(target, res); err != nil {
149783		return nil, err
149784	}
149785	return ret, nil
149786	// {
149787	//   "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.",
149788	//   "httpMethod": "DELETE",
149789	//   "id": "compute.snapshots.delete",
149790	//   "parameterOrder": [
149791	//     "project",
149792	//     "snapshot"
149793	//   ],
149794	//   "parameters": {
149795	//     "project": {
149796	//       "description": "Project ID for this request.",
149797	//       "location": "path",
149798	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149799	//       "required": true,
149800	//       "type": "string"
149801	//     },
149802	//     "requestId": {
149803	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
149804	//       "location": "query",
149805	//       "type": "string"
149806	//     },
149807	//     "snapshot": {
149808	//       "description": "Name of the Snapshot resource to delete.",
149809	//       "location": "path",
149810	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149811	//       "required": true,
149812	//       "type": "string"
149813	//     }
149814	//   },
149815	//   "path": "{project}/global/snapshots/{snapshot}",
149816	//   "response": {
149817	//     "$ref": "Operation"
149818	//   },
149819	//   "scopes": [
149820	//     "https://www.googleapis.com/auth/cloud-platform",
149821	//     "https://www.googleapis.com/auth/compute"
149822	//   ]
149823	// }
149824
149825}
149826
149827// method id "compute.snapshots.get":
149828
149829type SnapshotsGetCall struct {
149830	s            *Service
149831	project      string
149832	snapshot     string
149833	urlParams_   gensupport.URLParams
149834	ifNoneMatch_ string
149835	ctx_         context.Context
149836	header_      http.Header
149837}
149838
149839// Get: Returns the specified Snapshot resource. Gets a list of
149840// available snapshots by making a list() request.
149841// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/get
149842func (r *SnapshotsService) Get(project string, snapshot string) *SnapshotsGetCall {
149843	c := &SnapshotsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149844	c.project = project
149845	c.snapshot = snapshot
149846	return c
149847}
149848
149849// Fields allows partial responses to be retrieved. See
149850// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149851// for more information.
149852func (c *SnapshotsGetCall) Fields(s ...googleapi.Field) *SnapshotsGetCall {
149853	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149854	return c
149855}
149856
149857// IfNoneMatch sets the optional parameter which makes the operation
149858// fail if the object's ETag matches the given value. This is useful for
149859// getting updates only after the object has changed since the last
149860// request. Use googleapi.IsNotModified to check whether the response
149861// error from Do is the result of In-None-Match.
149862func (c *SnapshotsGetCall) IfNoneMatch(entityTag string) *SnapshotsGetCall {
149863	c.ifNoneMatch_ = entityTag
149864	return c
149865}
149866
149867// Context sets the context to be used in this call's Do method. Any
149868// pending HTTP request will be aborted if the provided context is
149869// canceled.
149870func (c *SnapshotsGetCall) Context(ctx context.Context) *SnapshotsGetCall {
149871	c.ctx_ = ctx
149872	return c
149873}
149874
149875// Header returns an http.Header that can be modified by the caller to
149876// add HTTP headers to the request.
149877func (c *SnapshotsGetCall) Header() http.Header {
149878	if c.header_ == nil {
149879		c.header_ = make(http.Header)
149880	}
149881	return c.header_
149882}
149883
149884func (c *SnapshotsGetCall) doRequest(alt string) (*http.Response, error) {
149885	reqHeaders := make(http.Header)
149886	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
149887	for k, v := range c.header_ {
149888		reqHeaders[k] = v
149889	}
149890	reqHeaders.Set("User-Agent", c.s.userAgent())
149891	if c.ifNoneMatch_ != "" {
149892		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
149893	}
149894	var body io.Reader = nil
149895	c.urlParams_.Set("alt", alt)
149896	c.urlParams_.Set("prettyPrint", "false")
149897	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{snapshot}")
149898	urls += "?" + c.urlParams_.Encode()
149899	req, err := http.NewRequest("GET", urls, body)
149900	if err != nil {
149901		return nil, err
149902	}
149903	req.Header = reqHeaders
149904	googleapi.Expand(req.URL, map[string]string{
149905		"project":  c.project,
149906		"snapshot": c.snapshot,
149907	})
149908	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149909}
149910
149911// Do executes the "compute.snapshots.get" call.
149912// Exactly one of *Snapshot or error will be non-nil. Any non-2xx status
149913// code is an error. Response headers are in either
149914// *Snapshot.ServerResponse.Header or (if a response was returned at
149915// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
149916// to check whether the returned error was because
149917// http.StatusNotModified was returned.
149918func (c *SnapshotsGetCall) Do(opts ...googleapi.CallOption) (*Snapshot, error) {
149919	gensupport.SetOptions(c.urlParams_, opts...)
149920	res, err := c.doRequest("json")
149921	if res != nil && res.StatusCode == http.StatusNotModified {
149922		if res.Body != nil {
149923			res.Body.Close()
149924		}
149925		return nil, &googleapi.Error{
149926			Code:   res.StatusCode,
149927			Header: res.Header,
149928		}
149929	}
149930	if err != nil {
149931		return nil, err
149932	}
149933	defer googleapi.CloseBody(res)
149934	if err := googleapi.CheckResponse(res); err != nil {
149935		return nil, err
149936	}
149937	ret := &Snapshot{
149938		ServerResponse: googleapi.ServerResponse{
149939			Header:         res.Header,
149940			HTTPStatusCode: res.StatusCode,
149941		},
149942	}
149943	target := &ret
149944	if err := gensupport.DecodeResponse(target, res); err != nil {
149945		return nil, err
149946	}
149947	return ret, nil
149948	// {
149949	//   "description": "Returns the specified Snapshot resource. Gets a list of available snapshots by making a list() request.",
149950	//   "httpMethod": "GET",
149951	//   "id": "compute.snapshots.get",
149952	//   "parameterOrder": [
149953	//     "project",
149954	//     "snapshot"
149955	//   ],
149956	//   "parameters": {
149957	//     "project": {
149958	//       "description": "Project ID for this request.",
149959	//       "location": "path",
149960	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149961	//       "required": true,
149962	//       "type": "string"
149963	//     },
149964	//     "snapshot": {
149965	//       "description": "Name of the Snapshot resource to return.",
149966	//       "location": "path",
149967	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149968	//       "required": true,
149969	//       "type": "string"
149970	//     }
149971	//   },
149972	//   "path": "{project}/global/snapshots/{snapshot}",
149973	//   "response": {
149974	//     "$ref": "Snapshot"
149975	//   },
149976	//   "scopes": [
149977	//     "https://www.googleapis.com/auth/cloud-platform",
149978	//     "https://www.googleapis.com/auth/compute",
149979	//     "https://www.googleapis.com/auth/compute.readonly"
149980	//   ]
149981	// }
149982
149983}
149984
149985// method id "compute.snapshots.getIamPolicy":
149986
149987type SnapshotsGetIamPolicyCall struct {
149988	s            *Service
149989	project      string
149990	resource     string
149991	urlParams_   gensupport.URLParams
149992	ifNoneMatch_ string
149993	ctx_         context.Context
149994	header_      http.Header
149995}
149996
149997// GetIamPolicy: Gets the access control policy for a resource. May be
149998// empty if no such policy or resource exists.
149999func (r *SnapshotsService) GetIamPolicy(project string, resource string) *SnapshotsGetIamPolicyCall {
150000	c := &SnapshotsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150001	c.project = project
150002	c.resource = resource
150003	return c
150004}
150005
150006// OptionsRequestedPolicyVersion sets the optional parameter
150007// "optionsRequestedPolicyVersion": Requested IAM Policy version.
150008func (c *SnapshotsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *SnapshotsGetIamPolicyCall {
150009	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
150010	return c
150011}
150012
150013// Fields allows partial responses to be retrieved. See
150014// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150015// for more information.
150016func (c *SnapshotsGetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsGetIamPolicyCall {
150017	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150018	return c
150019}
150020
150021// IfNoneMatch sets the optional parameter which makes the operation
150022// fail if the object's ETag matches the given value. This is useful for
150023// getting updates only after the object has changed since the last
150024// request. Use googleapi.IsNotModified to check whether the response
150025// error from Do is the result of In-None-Match.
150026func (c *SnapshotsGetIamPolicyCall) IfNoneMatch(entityTag string) *SnapshotsGetIamPolicyCall {
150027	c.ifNoneMatch_ = entityTag
150028	return c
150029}
150030
150031// Context sets the context to be used in this call's Do method. Any
150032// pending HTTP request will be aborted if the provided context is
150033// canceled.
150034func (c *SnapshotsGetIamPolicyCall) Context(ctx context.Context) *SnapshotsGetIamPolicyCall {
150035	c.ctx_ = ctx
150036	return c
150037}
150038
150039// Header returns an http.Header that can be modified by the caller to
150040// add HTTP headers to the request.
150041func (c *SnapshotsGetIamPolicyCall) Header() http.Header {
150042	if c.header_ == nil {
150043		c.header_ = make(http.Header)
150044	}
150045	return c.header_
150046}
150047
150048func (c *SnapshotsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
150049	reqHeaders := make(http.Header)
150050	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
150051	for k, v := range c.header_ {
150052		reqHeaders[k] = v
150053	}
150054	reqHeaders.Set("User-Agent", c.s.userAgent())
150055	if c.ifNoneMatch_ != "" {
150056		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
150057	}
150058	var body io.Reader = nil
150059	c.urlParams_.Set("alt", alt)
150060	c.urlParams_.Set("prettyPrint", "false")
150061	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/getIamPolicy")
150062	urls += "?" + c.urlParams_.Encode()
150063	req, err := http.NewRequest("GET", urls, body)
150064	if err != nil {
150065		return nil, err
150066	}
150067	req.Header = reqHeaders
150068	googleapi.Expand(req.URL, map[string]string{
150069		"project":  c.project,
150070		"resource": c.resource,
150071	})
150072	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150073}
150074
150075// Do executes the "compute.snapshots.getIamPolicy" call.
150076// Exactly one of *Policy or error will be non-nil. Any non-2xx status
150077// code is an error. Response headers are in either
150078// *Policy.ServerResponse.Header or (if a response was returned at all)
150079// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
150080// check whether the returned error was because http.StatusNotModified
150081// was returned.
150082func (c *SnapshotsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
150083	gensupport.SetOptions(c.urlParams_, opts...)
150084	res, err := c.doRequest("json")
150085	if res != nil && res.StatusCode == http.StatusNotModified {
150086		if res.Body != nil {
150087			res.Body.Close()
150088		}
150089		return nil, &googleapi.Error{
150090			Code:   res.StatusCode,
150091			Header: res.Header,
150092		}
150093	}
150094	if err != nil {
150095		return nil, err
150096	}
150097	defer googleapi.CloseBody(res)
150098	if err := googleapi.CheckResponse(res); err != nil {
150099		return nil, err
150100	}
150101	ret := &Policy{
150102		ServerResponse: googleapi.ServerResponse{
150103			Header:         res.Header,
150104			HTTPStatusCode: res.StatusCode,
150105		},
150106	}
150107	target := &ret
150108	if err := gensupport.DecodeResponse(target, res); err != nil {
150109		return nil, err
150110	}
150111	return ret, nil
150112	// {
150113	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
150114	//   "httpMethod": "GET",
150115	//   "id": "compute.snapshots.getIamPolicy",
150116	//   "parameterOrder": [
150117	//     "project",
150118	//     "resource"
150119	//   ],
150120	//   "parameters": {
150121	//     "optionsRequestedPolicyVersion": {
150122	//       "description": "Requested IAM Policy version.",
150123	//       "format": "int32",
150124	//       "location": "query",
150125	//       "type": "integer"
150126	//     },
150127	//     "project": {
150128	//       "description": "Project ID for this request.",
150129	//       "location": "path",
150130	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150131	//       "required": true,
150132	//       "type": "string"
150133	//     },
150134	//     "resource": {
150135	//       "description": "Name or id of the resource for this request.",
150136	//       "location": "path",
150137	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150138	//       "required": true,
150139	//       "type": "string"
150140	//     }
150141	//   },
150142	//   "path": "{project}/global/snapshots/{resource}/getIamPolicy",
150143	//   "response": {
150144	//     "$ref": "Policy"
150145	//   },
150146	//   "scopes": [
150147	//     "https://www.googleapis.com/auth/cloud-platform",
150148	//     "https://www.googleapis.com/auth/compute",
150149	//     "https://www.googleapis.com/auth/compute.readonly"
150150	//   ]
150151	// }
150152
150153}
150154
150155// method id "compute.snapshots.list":
150156
150157type SnapshotsListCall struct {
150158	s            *Service
150159	project      string
150160	urlParams_   gensupport.URLParams
150161	ifNoneMatch_ string
150162	ctx_         context.Context
150163	header_      http.Header
150164}
150165
150166// List: Retrieves the list of Snapshot resources contained within the
150167// specified project.
150168// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/list
150169func (r *SnapshotsService) List(project string) *SnapshotsListCall {
150170	c := &SnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150171	c.project = project
150172	return c
150173}
150174
150175// Filter sets the optional parameter "filter": A filter expression that
150176// filters resources listed in the response. The expression must specify
150177// the field name, a comparison operator, and the value that you want to
150178// use for filtering. The value must be a string, a number, or a
150179// boolean. The comparison operator must be either =, !=, >, or <.
150180//
150181// For example, if you are filtering Compute Engine instances, you can
150182// exclude instances named example-instance by specifying name !=
150183// example-instance.
150184//
150185// You can also filter nested fields. For example, you could specify
150186// scheduling.automaticRestart = false to include instances only if they
150187// are not scheduled for automatic restarts. You can use filtering on
150188// nested fields to filter based on resource labels.
150189//
150190// To filter on multiple expressions, provide each separate expression
150191// within parentheses. For example, (scheduling.automaticRestart = true)
150192// (cpuPlatform = "Intel Skylake"). By default, each expression is an
150193// AND expression. However, you can include AND and OR expressions
150194// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
150195// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
150196// true).
150197func (c *SnapshotsListCall) Filter(filter string) *SnapshotsListCall {
150198	c.urlParams_.Set("filter", filter)
150199	return c
150200}
150201
150202// MaxResults sets the optional parameter "maxResults": The maximum
150203// number of results per page that should be returned. If the number of
150204// available results is larger than maxResults, Compute Engine returns a
150205// nextPageToken that can be used to get the next page of results in
150206// subsequent list requests. Acceptable values are 0 to 500, inclusive.
150207// (Default: 500)
150208func (c *SnapshotsListCall) MaxResults(maxResults int64) *SnapshotsListCall {
150209	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
150210	return c
150211}
150212
150213// OrderBy sets the optional parameter "orderBy": Sorts list results by
150214// a certain order. By default, results are returned in alphanumerical
150215// order based on the resource name.
150216//
150217// You can also sort results in descending order based on the creation
150218// timestamp using orderBy="creationTimestamp desc". This sorts results
150219// based on the creationTimestamp field in reverse chronological order
150220// (newest result first). Use this to sort resources like operations so
150221// that the newest operation is returned first.
150222//
150223// Currently, only sorting by name or creationTimestamp desc is
150224// supported.
150225func (c *SnapshotsListCall) OrderBy(orderBy string) *SnapshotsListCall {
150226	c.urlParams_.Set("orderBy", orderBy)
150227	return c
150228}
150229
150230// PageToken sets the optional parameter "pageToken": Specifies a page
150231// token to use. Set pageToken to the nextPageToken returned by a
150232// previous list request to get the next page of results.
150233func (c *SnapshotsListCall) PageToken(pageToken string) *SnapshotsListCall {
150234	c.urlParams_.Set("pageToken", pageToken)
150235	return c
150236}
150237
150238// Fields allows partial responses to be retrieved. See
150239// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150240// for more information.
150241func (c *SnapshotsListCall) Fields(s ...googleapi.Field) *SnapshotsListCall {
150242	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150243	return c
150244}
150245
150246// IfNoneMatch sets the optional parameter which makes the operation
150247// fail if the object's ETag matches the given value. This is useful for
150248// getting updates only after the object has changed since the last
150249// request. Use googleapi.IsNotModified to check whether the response
150250// error from Do is the result of In-None-Match.
150251func (c *SnapshotsListCall) IfNoneMatch(entityTag string) *SnapshotsListCall {
150252	c.ifNoneMatch_ = entityTag
150253	return c
150254}
150255
150256// Context sets the context to be used in this call's Do method. Any
150257// pending HTTP request will be aborted if the provided context is
150258// canceled.
150259func (c *SnapshotsListCall) Context(ctx context.Context) *SnapshotsListCall {
150260	c.ctx_ = ctx
150261	return c
150262}
150263
150264// Header returns an http.Header that can be modified by the caller to
150265// add HTTP headers to the request.
150266func (c *SnapshotsListCall) Header() http.Header {
150267	if c.header_ == nil {
150268		c.header_ = make(http.Header)
150269	}
150270	return c.header_
150271}
150272
150273func (c *SnapshotsListCall) doRequest(alt string) (*http.Response, error) {
150274	reqHeaders := make(http.Header)
150275	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
150276	for k, v := range c.header_ {
150277		reqHeaders[k] = v
150278	}
150279	reqHeaders.Set("User-Agent", c.s.userAgent())
150280	if c.ifNoneMatch_ != "" {
150281		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
150282	}
150283	var body io.Reader = nil
150284	c.urlParams_.Set("alt", alt)
150285	c.urlParams_.Set("prettyPrint", "false")
150286	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots")
150287	urls += "?" + c.urlParams_.Encode()
150288	req, err := http.NewRequest("GET", urls, body)
150289	if err != nil {
150290		return nil, err
150291	}
150292	req.Header = reqHeaders
150293	googleapi.Expand(req.URL, map[string]string{
150294		"project": c.project,
150295	})
150296	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150297}
150298
150299// Do executes the "compute.snapshots.list" call.
150300// Exactly one of *SnapshotList or error will be non-nil. Any non-2xx
150301// status code is an error. Response headers are in either
150302// *SnapshotList.ServerResponse.Header or (if a response was returned at
150303// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150304// to check whether the returned error was because
150305// http.StatusNotModified was returned.
150306func (c *SnapshotsListCall) Do(opts ...googleapi.CallOption) (*SnapshotList, error) {
150307	gensupport.SetOptions(c.urlParams_, opts...)
150308	res, err := c.doRequest("json")
150309	if res != nil && res.StatusCode == http.StatusNotModified {
150310		if res.Body != nil {
150311			res.Body.Close()
150312		}
150313		return nil, &googleapi.Error{
150314			Code:   res.StatusCode,
150315			Header: res.Header,
150316		}
150317	}
150318	if err != nil {
150319		return nil, err
150320	}
150321	defer googleapi.CloseBody(res)
150322	if err := googleapi.CheckResponse(res); err != nil {
150323		return nil, err
150324	}
150325	ret := &SnapshotList{
150326		ServerResponse: googleapi.ServerResponse{
150327			Header:         res.Header,
150328			HTTPStatusCode: res.StatusCode,
150329		},
150330	}
150331	target := &ret
150332	if err := gensupport.DecodeResponse(target, res); err != nil {
150333		return nil, err
150334	}
150335	return ret, nil
150336	// {
150337	//   "description": "Retrieves the list of Snapshot resources contained within the specified project.",
150338	//   "httpMethod": "GET",
150339	//   "id": "compute.snapshots.list",
150340	//   "parameterOrder": [
150341	//     "project"
150342	//   ],
150343	//   "parameters": {
150344	//     "filter": {
150345	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
150346	//       "location": "query",
150347	//       "type": "string"
150348	//     },
150349	//     "maxResults": {
150350	//       "default": "500",
150351	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
150352	//       "format": "uint32",
150353	//       "location": "query",
150354	//       "minimum": "0",
150355	//       "type": "integer"
150356	//     },
150357	//     "orderBy": {
150358	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
150359	//       "location": "query",
150360	//       "type": "string"
150361	//     },
150362	//     "pageToken": {
150363	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
150364	//       "location": "query",
150365	//       "type": "string"
150366	//     },
150367	//     "project": {
150368	//       "description": "Project ID for this request.",
150369	//       "location": "path",
150370	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150371	//       "required": true,
150372	//       "type": "string"
150373	//     }
150374	//   },
150375	//   "path": "{project}/global/snapshots",
150376	//   "response": {
150377	//     "$ref": "SnapshotList"
150378	//   },
150379	//   "scopes": [
150380	//     "https://www.googleapis.com/auth/cloud-platform",
150381	//     "https://www.googleapis.com/auth/compute",
150382	//     "https://www.googleapis.com/auth/compute.readonly"
150383	//   ]
150384	// }
150385
150386}
150387
150388// Pages invokes f for each page of results.
150389// A non-nil error returned from f will halt the iteration.
150390// The provided context supersedes any context provided to the Context method.
150391func (c *SnapshotsListCall) Pages(ctx context.Context, f func(*SnapshotList) error) error {
150392	c.ctx_ = ctx
150393	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
150394	for {
150395		x, err := c.Do()
150396		if err != nil {
150397			return err
150398		}
150399		if err := f(x); err != nil {
150400			return err
150401		}
150402		if x.NextPageToken == "" {
150403			return nil
150404		}
150405		c.PageToken(x.NextPageToken)
150406	}
150407}
150408
150409// method id "compute.snapshots.setIamPolicy":
150410
150411type SnapshotsSetIamPolicyCall struct {
150412	s                      *Service
150413	project                string
150414	resource               string
150415	globalsetpolicyrequest *GlobalSetPolicyRequest
150416	urlParams_             gensupport.URLParams
150417	ctx_                   context.Context
150418	header_                http.Header
150419}
150420
150421// SetIamPolicy: Sets the access control policy on the specified
150422// resource. Replaces any existing policy.
150423func (r *SnapshotsService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *SnapshotsSetIamPolicyCall {
150424	c := &SnapshotsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150425	c.project = project
150426	c.resource = resource
150427	c.globalsetpolicyrequest = globalsetpolicyrequest
150428	return c
150429}
150430
150431// Fields allows partial responses to be retrieved. See
150432// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150433// for more information.
150434func (c *SnapshotsSetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsSetIamPolicyCall {
150435	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150436	return c
150437}
150438
150439// Context sets the context to be used in this call's Do method. Any
150440// pending HTTP request will be aborted if the provided context is
150441// canceled.
150442func (c *SnapshotsSetIamPolicyCall) Context(ctx context.Context) *SnapshotsSetIamPolicyCall {
150443	c.ctx_ = ctx
150444	return c
150445}
150446
150447// Header returns an http.Header that can be modified by the caller to
150448// add HTTP headers to the request.
150449func (c *SnapshotsSetIamPolicyCall) Header() http.Header {
150450	if c.header_ == nil {
150451		c.header_ = make(http.Header)
150452	}
150453	return c.header_
150454}
150455
150456func (c *SnapshotsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
150457	reqHeaders := make(http.Header)
150458	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
150459	for k, v := range c.header_ {
150460		reqHeaders[k] = v
150461	}
150462	reqHeaders.Set("User-Agent", c.s.userAgent())
150463	var body io.Reader = nil
150464	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
150465	if err != nil {
150466		return nil, err
150467	}
150468	reqHeaders.Set("Content-Type", "application/json")
150469	c.urlParams_.Set("alt", alt)
150470	c.urlParams_.Set("prettyPrint", "false")
150471	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/setIamPolicy")
150472	urls += "?" + c.urlParams_.Encode()
150473	req, err := http.NewRequest("POST", urls, body)
150474	if err != nil {
150475		return nil, err
150476	}
150477	req.Header = reqHeaders
150478	googleapi.Expand(req.URL, map[string]string{
150479		"project":  c.project,
150480		"resource": c.resource,
150481	})
150482	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150483}
150484
150485// Do executes the "compute.snapshots.setIamPolicy" call.
150486// Exactly one of *Policy or error will be non-nil. Any non-2xx status
150487// code is an error. Response headers are in either
150488// *Policy.ServerResponse.Header or (if a response was returned at all)
150489// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
150490// check whether the returned error was because http.StatusNotModified
150491// was returned.
150492func (c *SnapshotsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
150493	gensupport.SetOptions(c.urlParams_, opts...)
150494	res, err := c.doRequest("json")
150495	if res != nil && res.StatusCode == http.StatusNotModified {
150496		if res.Body != nil {
150497			res.Body.Close()
150498		}
150499		return nil, &googleapi.Error{
150500			Code:   res.StatusCode,
150501			Header: res.Header,
150502		}
150503	}
150504	if err != nil {
150505		return nil, err
150506	}
150507	defer googleapi.CloseBody(res)
150508	if err := googleapi.CheckResponse(res); err != nil {
150509		return nil, err
150510	}
150511	ret := &Policy{
150512		ServerResponse: googleapi.ServerResponse{
150513			Header:         res.Header,
150514			HTTPStatusCode: res.StatusCode,
150515		},
150516	}
150517	target := &ret
150518	if err := gensupport.DecodeResponse(target, res); err != nil {
150519		return nil, err
150520	}
150521	return ret, nil
150522	// {
150523	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
150524	//   "httpMethod": "POST",
150525	//   "id": "compute.snapshots.setIamPolicy",
150526	//   "parameterOrder": [
150527	//     "project",
150528	//     "resource"
150529	//   ],
150530	//   "parameters": {
150531	//     "project": {
150532	//       "description": "Project ID for this request.",
150533	//       "location": "path",
150534	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150535	//       "required": true,
150536	//       "type": "string"
150537	//     },
150538	//     "resource": {
150539	//       "description": "Name or id of the resource for this request.",
150540	//       "location": "path",
150541	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150542	//       "required": true,
150543	//       "type": "string"
150544	//     }
150545	//   },
150546	//   "path": "{project}/global/snapshots/{resource}/setIamPolicy",
150547	//   "request": {
150548	//     "$ref": "GlobalSetPolicyRequest"
150549	//   },
150550	//   "response": {
150551	//     "$ref": "Policy"
150552	//   },
150553	//   "scopes": [
150554	//     "https://www.googleapis.com/auth/cloud-platform",
150555	//     "https://www.googleapis.com/auth/compute"
150556	//   ]
150557	// }
150558
150559}
150560
150561// method id "compute.snapshots.setLabels":
150562
150563type SnapshotsSetLabelsCall struct {
150564	s                      *Service
150565	project                string
150566	resource               string
150567	globalsetlabelsrequest *GlobalSetLabelsRequest
150568	urlParams_             gensupport.URLParams
150569	ctx_                   context.Context
150570	header_                http.Header
150571}
150572
150573// SetLabels: Sets the labels on a snapshot. To learn more about labels,
150574// read the Labeling Resources documentation.
150575func (r *SnapshotsService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *SnapshotsSetLabelsCall {
150576	c := &SnapshotsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150577	c.project = project
150578	c.resource = resource
150579	c.globalsetlabelsrequest = globalsetlabelsrequest
150580	return c
150581}
150582
150583// Fields allows partial responses to be retrieved. See
150584// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150585// for more information.
150586func (c *SnapshotsSetLabelsCall) Fields(s ...googleapi.Field) *SnapshotsSetLabelsCall {
150587	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150588	return c
150589}
150590
150591// Context sets the context to be used in this call's Do method. Any
150592// pending HTTP request will be aborted if the provided context is
150593// canceled.
150594func (c *SnapshotsSetLabelsCall) Context(ctx context.Context) *SnapshotsSetLabelsCall {
150595	c.ctx_ = ctx
150596	return c
150597}
150598
150599// Header returns an http.Header that can be modified by the caller to
150600// add HTTP headers to the request.
150601func (c *SnapshotsSetLabelsCall) Header() http.Header {
150602	if c.header_ == nil {
150603		c.header_ = make(http.Header)
150604	}
150605	return c.header_
150606}
150607
150608func (c *SnapshotsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
150609	reqHeaders := make(http.Header)
150610	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
150611	for k, v := range c.header_ {
150612		reqHeaders[k] = v
150613	}
150614	reqHeaders.Set("User-Agent", c.s.userAgent())
150615	var body io.Reader = nil
150616	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
150617	if err != nil {
150618		return nil, err
150619	}
150620	reqHeaders.Set("Content-Type", "application/json")
150621	c.urlParams_.Set("alt", alt)
150622	c.urlParams_.Set("prettyPrint", "false")
150623	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/setLabels")
150624	urls += "?" + c.urlParams_.Encode()
150625	req, err := http.NewRequest("POST", urls, body)
150626	if err != nil {
150627		return nil, err
150628	}
150629	req.Header = reqHeaders
150630	googleapi.Expand(req.URL, map[string]string{
150631		"project":  c.project,
150632		"resource": c.resource,
150633	})
150634	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150635}
150636
150637// Do executes the "compute.snapshots.setLabels" call.
150638// Exactly one of *Operation or error will be non-nil. Any non-2xx
150639// status code is an error. Response headers are in either
150640// *Operation.ServerResponse.Header or (if a response was returned at
150641// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150642// to check whether the returned error was because
150643// http.StatusNotModified was returned.
150644func (c *SnapshotsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
150645	gensupport.SetOptions(c.urlParams_, opts...)
150646	res, err := c.doRequest("json")
150647	if res != nil && res.StatusCode == http.StatusNotModified {
150648		if res.Body != nil {
150649			res.Body.Close()
150650		}
150651		return nil, &googleapi.Error{
150652			Code:   res.StatusCode,
150653			Header: res.Header,
150654		}
150655	}
150656	if err != nil {
150657		return nil, err
150658	}
150659	defer googleapi.CloseBody(res)
150660	if err := googleapi.CheckResponse(res); err != nil {
150661		return nil, err
150662	}
150663	ret := &Operation{
150664		ServerResponse: googleapi.ServerResponse{
150665			Header:         res.Header,
150666			HTTPStatusCode: res.StatusCode,
150667		},
150668	}
150669	target := &ret
150670	if err := gensupport.DecodeResponse(target, res); err != nil {
150671		return nil, err
150672	}
150673	return ret, nil
150674	// {
150675	//   "description": "Sets the labels on a snapshot. To learn more about labels, read the Labeling Resources documentation.",
150676	//   "httpMethod": "POST",
150677	//   "id": "compute.snapshots.setLabels",
150678	//   "parameterOrder": [
150679	//     "project",
150680	//     "resource"
150681	//   ],
150682	//   "parameters": {
150683	//     "project": {
150684	//       "description": "Project ID for this request.",
150685	//       "location": "path",
150686	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150687	//       "required": true,
150688	//       "type": "string"
150689	//     },
150690	//     "resource": {
150691	//       "description": "Name or id of the resource for this request.",
150692	//       "location": "path",
150693	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150694	//       "required": true,
150695	//       "type": "string"
150696	//     }
150697	//   },
150698	//   "path": "{project}/global/snapshots/{resource}/setLabels",
150699	//   "request": {
150700	//     "$ref": "GlobalSetLabelsRequest"
150701	//   },
150702	//   "response": {
150703	//     "$ref": "Operation"
150704	//   },
150705	//   "scopes": [
150706	//     "https://www.googleapis.com/auth/cloud-platform",
150707	//     "https://www.googleapis.com/auth/compute"
150708	//   ]
150709	// }
150710
150711}
150712
150713// method id "compute.snapshots.testIamPermissions":
150714
150715type SnapshotsTestIamPermissionsCall struct {
150716	s                      *Service
150717	project                string
150718	resource               string
150719	testpermissionsrequest *TestPermissionsRequest
150720	urlParams_             gensupport.URLParams
150721	ctx_                   context.Context
150722	header_                http.Header
150723}
150724
150725// TestIamPermissions: Returns permissions that a caller has on the
150726// specified resource.
150727func (r *SnapshotsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SnapshotsTestIamPermissionsCall {
150728	c := &SnapshotsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150729	c.project = project
150730	c.resource = resource
150731	c.testpermissionsrequest = testpermissionsrequest
150732	return c
150733}
150734
150735// Fields allows partial responses to be retrieved. See
150736// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150737// for more information.
150738func (c *SnapshotsTestIamPermissionsCall) Fields(s ...googleapi.Field) *SnapshotsTestIamPermissionsCall {
150739	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150740	return c
150741}
150742
150743// Context sets the context to be used in this call's Do method. Any
150744// pending HTTP request will be aborted if the provided context is
150745// canceled.
150746func (c *SnapshotsTestIamPermissionsCall) Context(ctx context.Context) *SnapshotsTestIamPermissionsCall {
150747	c.ctx_ = ctx
150748	return c
150749}
150750
150751// Header returns an http.Header that can be modified by the caller to
150752// add HTTP headers to the request.
150753func (c *SnapshotsTestIamPermissionsCall) Header() http.Header {
150754	if c.header_ == nil {
150755		c.header_ = make(http.Header)
150756	}
150757	return c.header_
150758}
150759
150760func (c *SnapshotsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
150761	reqHeaders := make(http.Header)
150762	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
150763	for k, v := range c.header_ {
150764		reqHeaders[k] = v
150765	}
150766	reqHeaders.Set("User-Agent", c.s.userAgent())
150767	var body io.Reader = nil
150768	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
150769	if err != nil {
150770		return nil, err
150771	}
150772	reqHeaders.Set("Content-Type", "application/json")
150773	c.urlParams_.Set("alt", alt)
150774	c.urlParams_.Set("prettyPrint", "false")
150775	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/testIamPermissions")
150776	urls += "?" + c.urlParams_.Encode()
150777	req, err := http.NewRequest("POST", urls, body)
150778	if err != nil {
150779		return nil, err
150780	}
150781	req.Header = reqHeaders
150782	googleapi.Expand(req.URL, map[string]string{
150783		"project":  c.project,
150784		"resource": c.resource,
150785	})
150786	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150787}
150788
150789// Do executes the "compute.snapshots.testIamPermissions" call.
150790// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
150791// non-2xx status code is an error. Response headers are in either
150792// *TestPermissionsResponse.ServerResponse.Header or (if a response was
150793// returned at all) in error.(*googleapi.Error).Header. Use
150794// googleapi.IsNotModified to check whether the returned error was
150795// because http.StatusNotModified was returned.
150796func (c *SnapshotsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
150797	gensupport.SetOptions(c.urlParams_, opts...)
150798	res, err := c.doRequest("json")
150799	if res != nil && res.StatusCode == http.StatusNotModified {
150800		if res.Body != nil {
150801			res.Body.Close()
150802		}
150803		return nil, &googleapi.Error{
150804			Code:   res.StatusCode,
150805			Header: res.Header,
150806		}
150807	}
150808	if err != nil {
150809		return nil, err
150810	}
150811	defer googleapi.CloseBody(res)
150812	if err := googleapi.CheckResponse(res); err != nil {
150813		return nil, err
150814	}
150815	ret := &TestPermissionsResponse{
150816		ServerResponse: googleapi.ServerResponse{
150817			Header:         res.Header,
150818			HTTPStatusCode: res.StatusCode,
150819		},
150820	}
150821	target := &ret
150822	if err := gensupport.DecodeResponse(target, res); err != nil {
150823		return nil, err
150824	}
150825	return ret, nil
150826	// {
150827	//   "description": "Returns permissions that a caller has on the specified resource.",
150828	//   "httpMethod": "POST",
150829	//   "id": "compute.snapshots.testIamPermissions",
150830	//   "parameterOrder": [
150831	//     "project",
150832	//     "resource"
150833	//   ],
150834	//   "parameters": {
150835	//     "project": {
150836	//       "description": "Project ID for this request.",
150837	//       "location": "path",
150838	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150839	//       "required": true,
150840	//       "type": "string"
150841	//     },
150842	//     "resource": {
150843	//       "description": "Name or id of the resource for this request.",
150844	//       "location": "path",
150845	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150846	//       "required": true,
150847	//       "type": "string"
150848	//     }
150849	//   },
150850	//   "path": "{project}/global/snapshots/{resource}/testIamPermissions",
150851	//   "request": {
150852	//     "$ref": "TestPermissionsRequest"
150853	//   },
150854	//   "response": {
150855	//     "$ref": "TestPermissionsResponse"
150856	//   },
150857	//   "scopes": [
150858	//     "https://www.googleapis.com/auth/cloud-platform",
150859	//     "https://www.googleapis.com/auth/compute",
150860	//     "https://www.googleapis.com/auth/compute.readonly"
150861	//   ]
150862	// }
150863
150864}
150865
150866// method id "compute.sslCertificates.aggregatedList":
150867
150868type SslCertificatesAggregatedListCall struct {
150869	s            *Service
150870	project      string
150871	urlParams_   gensupport.URLParams
150872	ifNoneMatch_ string
150873	ctx_         context.Context
150874	header_      http.Header
150875}
150876
150877// AggregatedList: Retrieves the list of all SslCertificate resources,
150878// regional and global, available to the specified project.
150879func (r *SslCertificatesService) AggregatedList(project string) *SslCertificatesAggregatedListCall {
150880	c := &SslCertificatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150881	c.project = project
150882	return c
150883}
150884
150885// Filter sets the optional parameter "filter": A filter expression that
150886// filters resources listed in the response. The expression must specify
150887// the field name, a comparison operator, and the value that you want to
150888// use for filtering. The value must be a string, a number, or a
150889// boolean. The comparison operator must be either =, !=, >, or <.
150890//
150891// For example, if you are filtering Compute Engine instances, you can
150892// exclude instances named example-instance by specifying name !=
150893// example-instance.
150894//
150895// You can also filter nested fields. For example, you could specify
150896// scheduling.automaticRestart = false to include instances only if they
150897// are not scheduled for automatic restarts. You can use filtering on
150898// nested fields to filter based on resource labels.
150899//
150900// To filter on multiple expressions, provide each separate expression
150901// within parentheses. For example, (scheduling.automaticRestart = true)
150902// (cpuPlatform = "Intel Skylake"). By default, each expression is an
150903// AND expression. However, you can include AND and OR expressions
150904// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
150905// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
150906// true).
150907func (c *SslCertificatesAggregatedListCall) Filter(filter string) *SslCertificatesAggregatedListCall {
150908	c.urlParams_.Set("filter", filter)
150909	return c
150910}
150911
150912// IncludeAllScopes sets the optional parameter "includeAllScopes":
150913// Indicates whether every visible scope for each scope type (zone,
150914// region, global) should be included in the response. For new resource
150915// types added after this field, the flag has no effect as new resource
150916// types will always include every visible scope for each scope type in
150917// response. For resource types which predate this field, if this flag
150918// is omitted or false, only scopes of the scope types where the
150919// resource type is expected to be found will be included.
150920func (c *SslCertificatesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *SslCertificatesAggregatedListCall {
150921	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
150922	return c
150923}
150924
150925// MaxResults sets the optional parameter "maxResults": The maximum
150926// number of results per page that should be returned. If the number of
150927// available results is larger than maxResults, Compute Engine returns a
150928// nextPageToken that can be used to get the next page of results in
150929// subsequent list requests. Acceptable values are 0 to 500, inclusive.
150930// (Default: 500)
150931func (c *SslCertificatesAggregatedListCall) MaxResults(maxResults int64) *SslCertificatesAggregatedListCall {
150932	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
150933	return c
150934}
150935
150936// OrderBy sets the optional parameter "orderBy": Sorts list results by
150937// a certain order. By default, results are returned in alphanumerical
150938// order based on the resource name.
150939//
150940// You can also sort results in descending order based on the creation
150941// timestamp using orderBy="creationTimestamp desc". This sorts results
150942// based on the creationTimestamp field in reverse chronological order
150943// (newest result first). Use this to sort resources like operations so
150944// that the newest operation is returned first.
150945//
150946// Currently, only sorting by name or creationTimestamp desc is
150947// supported.
150948func (c *SslCertificatesAggregatedListCall) OrderBy(orderBy string) *SslCertificatesAggregatedListCall {
150949	c.urlParams_.Set("orderBy", orderBy)
150950	return c
150951}
150952
150953// PageToken sets the optional parameter "pageToken": Specifies a page
150954// token to use. Set pageToken to the nextPageToken returned by a
150955// previous list request to get the next page of results.
150956func (c *SslCertificatesAggregatedListCall) PageToken(pageToken string) *SslCertificatesAggregatedListCall {
150957	c.urlParams_.Set("pageToken", pageToken)
150958	return c
150959}
150960
150961// Fields allows partial responses to be retrieved. See
150962// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150963// for more information.
150964func (c *SslCertificatesAggregatedListCall) Fields(s ...googleapi.Field) *SslCertificatesAggregatedListCall {
150965	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150966	return c
150967}
150968
150969// IfNoneMatch sets the optional parameter which makes the operation
150970// fail if the object's ETag matches the given value. This is useful for
150971// getting updates only after the object has changed since the last
150972// request. Use googleapi.IsNotModified to check whether the response
150973// error from Do is the result of In-None-Match.
150974func (c *SslCertificatesAggregatedListCall) IfNoneMatch(entityTag string) *SslCertificatesAggregatedListCall {
150975	c.ifNoneMatch_ = entityTag
150976	return c
150977}
150978
150979// Context sets the context to be used in this call's Do method. Any
150980// pending HTTP request will be aborted if the provided context is
150981// canceled.
150982func (c *SslCertificatesAggregatedListCall) Context(ctx context.Context) *SslCertificatesAggregatedListCall {
150983	c.ctx_ = ctx
150984	return c
150985}
150986
150987// Header returns an http.Header that can be modified by the caller to
150988// add HTTP headers to the request.
150989func (c *SslCertificatesAggregatedListCall) Header() http.Header {
150990	if c.header_ == nil {
150991		c.header_ = make(http.Header)
150992	}
150993	return c.header_
150994}
150995
150996func (c *SslCertificatesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
150997	reqHeaders := make(http.Header)
150998	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
150999	for k, v := range c.header_ {
151000		reqHeaders[k] = v
151001	}
151002	reqHeaders.Set("User-Agent", c.s.userAgent())
151003	if c.ifNoneMatch_ != "" {
151004		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
151005	}
151006	var body io.Reader = nil
151007	c.urlParams_.Set("alt", alt)
151008	c.urlParams_.Set("prettyPrint", "false")
151009	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/sslCertificates")
151010	urls += "?" + c.urlParams_.Encode()
151011	req, err := http.NewRequest("GET", urls, body)
151012	if err != nil {
151013		return nil, err
151014	}
151015	req.Header = reqHeaders
151016	googleapi.Expand(req.URL, map[string]string{
151017		"project": c.project,
151018	})
151019	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151020}
151021
151022// Do executes the "compute.sslCertificates.aggregatedList" call.
151023// Exactly one of *SslCertificateAggregatedList or error will be
151024// non-nil. Any non-2xx status code is an error. Response headers are in
151025// either *SslCertificateAggregatedList.ServerResponse.Header or (if a
151026// response was returned at all) in error.(*googleapi.Error).Header. Use
151027// googleapi.IsNotModified to check whether the returned error was
151028// because http.StatusNotModified was returned.
151029func (c *SslCertificatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*SslCertificateAggregatedList, error) {
151030	gensupport.SetOptions(c.urlParams_, opts...)
151031	res, err := c.doRequest("json")
151032	if res != nil && res.StatusCode == http.StatusNotModified {
151033		if res.Body != nil {
151034			res.Body.Close()
151035		}
151036		return nil, &googleapi.Error{
151037			Code:   res.StatusCode,
151038			Header: res.Header,
151039		}
151040	}
151041	if err != nil {
151042		return nil, err
151043	}
151044	defer googleapi.CloseBody(res)
151045	if err := googleapi.CheckResponse(res); err != nil {
151046		return nil, err
151047	}
151048	ret := &SslCertificateAggregatedList{
151049		ServerResponse: googleapi.ServerResponse{
151050			Header:         res.Header,
151051			HTTPStatusCode: res.StatusCode,
151052		},
151053	}
151054	target := &ret
151055	if err := gensupport.DecodeResponse(target, res); err != nil {
151056		return nil, err
151057	}
151058	return ret, nil
151059	// {
151060	//   "description": "Retrieves the list of all SslCertificate resources, regional and global, available to the specified project.",
151061	//   "httpMethod": "GET",
151062	//   "id": "compute.sslCertificates.aggregatedList",
151063	//   "parameterOrder": [
151064	//     "project"
151065	//   ],
151066	//   "parameters": {
151067	//     "filter": {
151068	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
151069	//       "location": "query",
151070	//       "type": "string"
151071	//     },
151072	//     "includeAllScopes": {
151073	//       "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.",
151074	//       "location": "query",
151075	//       "type": "boolean"
151076	//     },
151077	//     "maxResults": {
151078	//       "default": "500",
151079	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
151080	//       "format": "uint32",
151081	//       "location": "query",
151082	//       "minimum": "0",
151083	//       "type": "integer"
151084	//     },
151085	//     "orderBy": {
151086	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
151087	//       "location": "query",
151088	//       "type": "string"
151089	//     },
151090	//     "pageToken": {
151091	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
151092	//       "location": "query",
151093	//       "type": "string"
151094	//     },
151095	//     "project": {
151096	//       "description": "Name of the project scoping this request.",
151097	//       "location": "path",
151098	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151099	//       "required": true,
151100	//       "type": "string"
151101	//     }
151102	//   },
151103	//   "path": "{project}/aggregated/sslCertificates",
151104	//   "response": {
151105	//     "$ref": "SslCertificateAggregatedList"
151106	//   },
151107	//   "scopes": [
151108	//     "https://www.googleapis.com/auth/cloud-platform",
151109	//     "https://www.googleapis.com/auth/compute",
151110	//     "https://www.googleapis.com/auth/compute.readonly"
151111	//   ]
151112	// }
151113
151114}
151115
151116// Pages invokes f for each page of results.
151117// A non-nil error returned from f will halt the iteration.
151118// The provided context supersedes any context provided to the Context method.
151119func (c *SslCertificatesAggregatedListCall) Pages(ctx context.Context, f func(*SslCertificateAggregatedList) error) error {
151120	c.ctx_ = ctx
151121	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
151122	for {
151123		x, err := c.Do()
151124		if err != nil {
151125			return err
151126		}
151127		if err := f(x); err != nil {
151128			return err
151129		}
151130		if x.NextPageToken == "" {
151131			return nil
151132		}
151133		c.PageToken(x.NextPageToken)
151134	}
151135}
151136
151137// method id "compute.sslCertificates.delete":
151138
151139type SslCertificatesDeleteCall struct {
151140	s              *Service
151141	project        string
151142	sslCertificate string
151143	urlParams_     gensupport.URLParams
151144	ctx_           context.Context
151145	header_        http.Header
151146}
151147
151148// Delete: Deletes the specified SslCertificate resource.
151149func (r *SslCertificatesService) Delete(project string, sslCertificate string) *SslCertificatesDeleteCall {
151150	c := &SslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151151	c.project = project
151152	c.sslCertificate = sslCertificate
151153	return c
151154}
151155
151156// RequestId sets the optional parameter "requestId": An optional
151157// request ID to identify requests. Specify a unique request ID so that
151158// if you must retry your request, the server will know to ignore the
151159// request if it has already been completed.
151160//
151161// For example, consider a situation where you make an initial request
151162// and the request times out. If you make the request again with the
151163// same request ID, the server can check if original operation with the
151164// same request ID was received, and if so, will ignore the second
151165// request. This prevents clients from accidentally creating duplicate
151166// commitments.
151167//
151168// The request ID must be a valid UUID with the exception that zero UUID
151169// is not supported (00000000-0000-0000-0000-000000000000).
151170func (c *SslCertificatesDeleteCall) RequestId(requestId string) *SslCertificatesDeleteCall {
151171	c.urlParams_.Set("requestId", requestId)
151172	return c
151173}
151174
151175// Fields allows partial responses to be retrieved. See
151176// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151177// for more information.
151178func (c *SslCertificatesDeleteCall) Fields(s ...googleapi.Field) *SslCertificatesDeleteCall {
151179	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151180	return c
151181}
151182
151183// Context sets the context to be used in this call's Do method. Any
151184// pending HTTP request will be aborted if the provided context is
151185// canceled.
151186func (c *SslCertificatesDeleteCall) Context(ctx context.Context) *SslCertificatesDeleteCall {
151187	c.ctx_ = ctx
151188	return c
151189}
151190
151191// Header returns an http.Header that can be modified by the caller to
151192// add HTTP headers to the request.
151193func (c *SslCertificatesDeleteCall) Header() http.Header {
151194	if c.header_ == nil {
151195		c.header_ = make(http.Header)
151196	}
151197	return c.header_
151198}
151199
151200func (c *SslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) {
151201	reqHeaders := make(http.Header)
151202	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
151203	for k, v := range c.header_ {
151204		reqHeaders[k] = v
151205	}
151206	reqHeaders.Set("User-Agent", c.s.userAgent())
151207	var body io.Reader = nil
151208	c.urlParams_.Set("alt", alt)
151209	c.urlParams_.Set("prettyPrint", "false")
151210	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates/{sslCertificate}")
151211	urls += "?" + c.urlParams_.Encode()
151212	req, err := http.NewRequest("DELETE", urls, body)
151213	if err != nil {
151214		return nil, err
151215	}
151216	req.Header = reqHeaders
151217	googleapi.Expand(req.URL, map[string]string{
151218		"project":        c.project,
151219		"sslCertificate": c.sslCertificate,
151220	})
151221	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151222}
151223
151224// Do executes the "compute.sslCertificates.delete" call.
151225// Exactly one of *Operation or error will be non-nil. Any non-2xx
151226// status code is an error. Response headers are in either
151227// *Operation.ServerResponse.Header or (if a response was returned at
151228// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
151229// to check whether the returned error was because
151230// http.StatusNotModified was returned.
151231func (c *SslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
151232	gensupport.SetOptions(c.urlParams_, opts...)
151233	res, err := c.doRequest("json")
151234	if res != nil && res.StatusCode == http.StatusNotModified {
151235		if res.Body != nil {
151236			res.Body.Close()
151237		}
151238		return nil, &googleapi.Error{
151239			Code:   res.StatusCode,
151240			Header: res.Header,
151241		}
151242	}
151243	if err != nil {
151244		return nil, err
151245	}
151246	defer googleapi.CloseBody(res)
151247	if err := googleapi.CheckResponse(res); err != nil {
151248		return nil, err
151249	}
151250	ret := &Operation{
151251		ServerResponse: googleapi.ServerResponse{
151252			Header:         res.Header,
151253			HTTPStatusCode: res.StatusCode,
151254		},
151255	}
151256	target := &ret
151257	if err := gensupport.DecodeResponse(target, res); err != nil {
151258		return nil, err
151259	}
151260	return ret, nil
151261	// {
151262	//   "description": "Deletes the specified SslCertificate resource.",
151263	//   "httpMethod": "DELETE",
151264	//   "id": "compute.sslCertificates.delete",
151265	//   "parameterOrder": [
151266	//     "project",
151267	//     "sslCertificate"
151268	//   ],
151269	//   "parameters": {
151270	//     "project": {
151271	//       "description": "Project ID for this request.",
151272	//       "location": "path",
151273	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151274	//       "required": true,
151275	//       "type": "string"
151276	//     },
151277	//     "requestId": {
151278	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
151279	//       "location": "query",
151280	//       "type": "string"
151281	//     },
151282	//     "sslCertificate": {
151283	//       "description": "Name of the SslCertificate resource to delete.",
151284	//       "location": "path",
151285	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151286	//       "required": true,
151287	//       "type": "string"
151288	//     }
151289	//   },
151290	//   "path": "{project}/global/sslCertificates/{sslCertificate}",
151291	//   "response": {
151292	//     "$ref": "Operation"
151293	//   },
151294	//   "scopes": [
151295	//     "https://www.googleapis.com/auth/cloud-platform",
151296	//     "https://www.googleapis.com/auth/compute"
151297	//   ]
151298	// }
151299
151300}
151301
151302// method id "compute.sslCertificates.get":
151303
151304type SslCertificatesGetCall struct {
151305	s              *Service
151306	project        string
151307	sslCertificate string
151308	urlParams_     gensupport.URLParams
151309	ifNoneMatch_   string
151310	ctx_           context.Context
151311	header_        http.Header
151312}
151313
151314// Get: Returns the specified SslCertificate resource. Gets a list of
151315// available SSL certificates by making a list() request.
151316func (r *SslCertificatesService) Get(project string, sslCertificate string) *SslCertificatesGetCall {
151317	c := &SslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151318	c.project = project
151319	c.sslCertificate = sslCertificate
151320	return c
151321}
151322
151323// Fields allows partial responses to be retrieved. See
151324// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151325// for more information.
151326func (c *SslCertificatesGetCall) Fields(s ...googleapi.Field) *SslCertificatesGetCall {
151327	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151328	return c
151329}
151330
151331// IfNoneMatch sets the optional parameter which makes the operation
151332// fail if the object's ETag matches the given value. This is useful for
151333// getting updates only after the object has changed since the last
151334// request. Use googleapi.IsNotModified to check whether the response
151335// error from Do is the result of In-None-Match.
151336func (c *SslCertificatesGetCall) IfNoneMatch(entityTag string) *SslCertificatesGetCall {
151337	c.ifNoneMatch_ = entityTag
151338	return c
151339}
151340
151341// Context sets the context to be used in this call's Do method. Any
151342// pending HTTP request will be aborted if the provided context is
151343// canceled.
151344func (c *SslCertificatesGetCall) Context(ctx context.Context) *SslCertificatesGetCall {
151345	c.ctx_ = ctx
151346	return c
151347}
151348
151349// Header returns an http.Header that can be modified by the caller to
151350// add HTTP headers to the request.
151351func (c *SslCertificatesGetCall) Header() http.Header {
151352	if c.header_ == nil {
151353		c.header_ = make(http.Header)
151354	}
151355	return c.header_
151356}
151357
151358func (c *SslCertificatesGetCall) doRequest(alt string) (*http.Response, error) {
151359	reqHeaders := make(http.Header)
151360	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
151361	for k, v := range c.header_ {
151362		reqHeaders[k] = v
151363	}
151364	reqHeaders.Set("User-Agent", c.s.userAgent())
151365	if c.ifNoneMatch_ != "" {
151366		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
151367	}
151368	var body io.Reader = nil
151369	c.urlParams_.Set("alt", alt)
151370	c.urlParams_.Set("prettyPrint", "false")
151371	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates/{sslCertificate}")
151372	urls += "?" + c.urlParams_.Encode()
151373	req, err := http.NewRequest("GET", urls, body)
151374	if err != nil {
151375		return nil, err
151376	}
151377	req.Header = reqHeaders
151378	googleapi.Expand(req.URL, map[string]string{
151379		"project":        c.project,
151380		"sslCertificate": c.sslCertificate,
151381	})
151382	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151383}
151384
151385// Do executes the "compute.sslCertificates.get" call.
151386// Exactly one of *SslCertificate or error will be non-nil. Any non-2xx
151387// status code is an error. Response headers are in either
151388// *SslCertificate.ServerResponse.Header or (if a response was returned
151389// at all) in error.(*googleapi.Error).Header. Use
151390// googleapi.IsNotModified to check whether the returned error was
151391// because http.StatusNotModified was returned.
151392func (c *SslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) {
151393	gensupport.SetOptions(c.urlParams_, opts...)
151394	res, err := c.doRequest("json")
151395	if res != nil && res.StatusCode == http.StatusNotModified {
151396		if res.Body != nil {
151397			res.Body.Close()
151398		}
151399		return nil, &googleapi.Error{
151400			Code:   res.StatusCode,
151401			Header: res.Header,
151402		}
151403	}
151404	if err != nil {
151405		return nil, err
151406	}
151407	defer googleapi.CloseBody(res)
151408	if err := googleapi.CheckResponse(res); err != nil {
151409		return nil, err
151410	}
151411	ret := &SslCertificate{
151412		ServerResponse: googleapi.ServerResponse{
151413			Header:         res.Header,
151414			HTTPStatusCode: res.StatusCode,
151415		},
151416	}
151417	target := &ret
151418	if err := gensupport.DecodeResponse(target, res); err != nil {
151419		return nil, err
151420	}
151421	return ret, nil
151422	// {
151423	//   "description": "Returns the specified SslCertificate resource. Gets a list of available SSL certificates by making a list() request.",
151424	//   "httpMethod": "GET",
151425	//   "id": "compute.sslCertificates.get",
151426	//   "parameterOrder": [
151427	//     "project",
151428	//     "sslCertificate"
151429	//   ],
151430	//   "parameters": {
151431	//     "project": {
151432	//       "description": "Project ID for this request.",
151433	//       "location": "path",
151434	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151435	//       "required": true,
151436	//       "type": "string"
151437	//     },
151438	//     "sslCertificate": {
151439	//       "description": "Name of the SslCertificate resource to return.",
151440	//       "location": "path",
151441	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151442	//       "required": true,
151443	//       "type": "string"
151444	//     }
151445	//   },
151446	//   "path": "{project}/global/sslCertificates/{sslCertificate}",
151447	//   "response": {
151448	//     "$ref": "SslCertificate"
151449	//   },
151450	//   "scopes": [
151451	//     "https://www.googleapis.com/auth/cloud-platform",
151452	//     "https://www.googleapis.com/auth/compute",
151453	//     "https://www.googleapis.com/auth/compute.readonly"
151454	//   ]
151455	// }
151456
151457}
151458
151459// method id "compute.sslCertificates.insert":
151460
151461type SslCertificatesInsertCall struct {
151462	s              *Service
151463	project        string
151464	sslcertificate *SslCertificate
151465	urlParams_     gensupport.URLParams
151466	ctx_           context.Context
151467	header_        http.Header
151468}
151469
151470// Insert: Creates a SslCertificate resource in the specified project
151471// using the data included in the request.
151472func (r *SslCertificatesService) Insert(project string, sslcertificate *SslCertificate) *SslCertificatesInsertCall {
151473	c := &SslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151474	c.project = project
151475	c.sslcertificate = sslcertificate
151476	return c
151477}
151478
151479// RequestId sets the optional parameter "requestId": An optional
151480// request ID to identify requests. Specify a unique request ID so that
151481// if you must retry your request, the server will know to ignore the
151482// request if it has already been completed.
151483//
151484// For example, consider a situation where you make an initial request
151485// and the request times out. If you make the request again with the
151486// same request ID, the server can check if original operation with the
151487// same request ID was received, and if so, will ignore the second
151488// request. This prevents clients from accidentally creating duplicate
151489// commitments.
151490//
151491// The request ID must be a valid UUID with the exception that zero UUID
151492// is not supported (00000000-0000-0000-0000-000000000000).
151493func (c *SslCertificatesInsertCall) RequestId(requestId string) *SslCertificatesInsertCall {
151494	c.urlParams_.Set("requestId", requestId)
151495	return c
151496}
151497
151498// Fields allows partial responses to be retrieved. See
151499// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151500// for more information.
151501func (c *SslCertificatesInsertCall) Fields(s ...googleapi.Field) *SslCertificatesInsertCall {
151502	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151503	return c
151504}
151505
151506// Context sets the context to be used in this call's Do method. Any
151507// pending HTTP request will be aborted if the provided context is
151508// canceled.
151509func (c *SslCertificatesInsertCall) Context(ctx context.Context) *SslCertificatesInsertCall {
151510	c.ctx_ = ctx
151511	return c
151512}
151513
151514// Header returns an http.Header that can be modified by the caller to
151515// add HTTP headers to the request.
151516func (c *SslCertificatesInsertCall) Header() http.Header {
151517	if c.header_ == nil {
151518		c.header_ = make(http.Header)
151519	}
151520	return c.header_
151521}
151522
151523func (c *SslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) {
151524	reqHeaders := make(http.Header)
151525	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
151526	for k, v := range c.header_ {
151527		reqHeaders[k] = v
151528	}
151529	reqHeaders.Set("User-Agent", c.s.userAgent())
151530	var body io.Reader = nil
151531	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslcertificate)
151532	if err != nil {
151533		return nil, err
151534	}
151535	reqHeaders.Set("Content-Type", "application/json")
151536	c.urlParams_.Set("alt", alt)
151537	c.urlParams_.Set("prettyPrint", "false")
151538	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates")
151539	urls += "?" + c.urlParams_.Encode()
151540	req, err := http.NewRequest("POST", urls, body)
151541	if err != nil {
151542		return nil, err
151543	}
151544	req.Header = reqHeaders
151545	googleapi.Expand(req.URL, map[string]string{
151546		"project": c.project,
151547	})
151548	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151549}
151550
151551// Do executes the "compute.sslCertificates.insert" call.
151552// Exactly one of *Operation or error will be non-nil. Any non-2xx
151553// status code is an error. Response headers are in either
151554// *Operation.ServerResponse.Header or (if a response was returned at
151555// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
151556// to check whether the returned error was because
151557// http.StatusNotModified was returned.
151558func (c *SslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
151559	gensupport.SetOptions(c.urlParams_, opts...)
151560	res, err := c.doRequest("json")
151561	if res != nil && res.StatusCode == http.StatusNotModified {
151562		if res.Body != nil {
151563			res.Body.Close()
151564		}
151565		return nil, &googleapi.Error{
151566			Code:   res.StatusCode,
151567			Header: res.Header,
151568		}
151569	}
151570	if err != nil {
151571		return nil, err
151572	}
151573	defer googleapi.CloseBody(res)
151574	if err := googleapi.CheckResponse(res); err != nil {
151575		return nil, err
151576	}
151577	ret := &Operation{
151578		ServerResponse: googleapi.ServerResponse{
151579			Header:         res.Header,
151580			HTTPStatusCode: res.StatusCode,
151581		},
151582	}
151583	target := &ret
151584	if err := gensupport.DecodeResponse(target, res); err != nil {
151585		return nil, err
151586	}
151587	return ret, nil
151588	// {
151589	//   "description": "Creates a SslCertificate resource in the specified project using the data included in the request.",
151590	//   "httpMethod": "POST",
151591	//   "id": "compute.sslCertificates.insert",
151592	//   "parameterOrder": [
151593	//     "project"
151594	//   ],
151595	//   "parameters": {
151596	//     "project": {
151597	//       "description": "Project ID for this request.",
151598	//       "location": "path",
151599	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151600	//       "required": true,
151601	//       "type": "string"
151602	//     },
151603	//     "requestId": {
151604	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
151605	//       "location": "query",
151606	//       "type": "string"
151607	//     }
151608	//   },
151609	//   "path": "{project}/global/sslCertificates",
151610	//   "request": {
151611	//     "$ref": "SslCertificate"
151612	//   },
151613	//   "response": {
151614	//     "$ref": "Operation"
151615	//   },
151616	//   "scopes": [
151617	//     "https://www.googleapis.com/auth/cloud-platform",
151618	//     "https://www.googleapis.com/auth/compute"
151619	//   ]
151620	// }
151621
151622}
151623
151624// method id "compute.sslCertificates.list":
151625
151626type SslCertificatesListCall struct {
151627	s            *Service
151628	project      string
151629	urlParams_   gensupport.URLParams
151630	ifNoneMatch_ string
151631	ctx_         context.Context
151632	header_      http.Header
151633}
151634
151635// List: Retrieves the list of SslCertificate resources available to the
151636// specified project.
151637func (r *SslCertificatesService) List(project string) *SslCertificatesListCall {
151638	c := &SslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151639	c.project = project
151640	return c
151641}
151642
151643// Filter sets the optional parameter "filter": A filter expression that
151644// filters resources listed in the response. The expression must specify
151645// the field name, a comparison operator, and the value that you want to
151646// use for filtering. The value must be a string, a number, or a
151647// boolean. The comparison operator must be either =, !=, >, or <.
151648//
151649// For example, if you are filtering Compute Engine instances, you can
151650// exclude instances named example-instance by specifying name !=
151651// example-instance.
151652//
151653// You can also filter nested fields. For example, you could specify
151654// scheduling.automaticRestart = false to include instances only if they
151655// are not scheduled for automatic restarts. You can use filtering on
151656// nested fields to filter based on resource labels.
151657//
151658// To filter on multiple expressions, provide each separate expression
151659// within parentheses. For example, (scheduling.automaticRestart = true)
151660// (cpuPlatform = "Intel Skylake"). By default, each expression is an
151661// AND expression. However, you can include AND and OR expressions
151662// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
151663// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
151664// true).
151665func (c *SslCertificatesListCall) Filter(filter string) *SslCertificatesListCall {
151666	c.urlParams_.Set("filter", filter)
151667	return c
151668}
151669
151670// MaxResults sets the optional parameter "maxResults": The maximum
151671// number of results per page that should be returned. If the number of
151672// available results is larger than maxResults, Compute Engine returns a
151673// nextPageToken that can be used to get the next page of results in
151674// subsequent list requests. Acceptable values are 0 to 500, inclusive.
151675// (Default: 500)
151676func (c *SslCertificatesListCall) MaxResults(maxResults int64) *SslCertificatesListCall {
151677	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
151678	return c
151679}
151680
151681// OrderBy sets the optional parameter "orderBy": Sorts list results by
151682// a certain order. By default, results are returned in alphanumerical
151683// order based on the resource name.
151684//
151685// You can also sort results in descending order based on the creation
151686// timestamp using orderBy="creationTimestamp desc". This sorts results
151687// based on the creationTimestamp field in reverse chronological order
151688// (newest result first). Use this to sort resources like operations so
151689// that the newest operation is returned first.
151690//
151691// Currently, only sorting by name or creationTimestamp desc is
151692// supported.
151693func (c *SslCertificatesListCall) OrderBy(orderBy string) *SslCertificatesListCall {
151694	c.urlParams_.Set("orderBy", orderBy)
151695	return c
151696}
151697
151698// PageToken sets the optional parameter "pageToken": Specifies a page
151699// token to use. Set pageToken to the nextPageToken returned by a
151700// previous list request to get the next page of results.
151701func (c *SslCertificatesListCall) PageToken(pageToken string) *SslCertificatesListCall {
151702	c.urlParams_.Set("pageToken", pageToken)
151703	return c
151704}
151705
151706// Fields allows partial responses to be retrieved. See
151707// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151708// for more information.
151709func (c *SslCertificatesListCall) Fields(s ...googleapi.Field) *SslCertificatesListCall {
151710	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151711	return c
151712}
151713
151714// IfNoneMatch sets the optional parameter which makes the operation
151715// fail if the object's ETag matches the given value. This is useful for
151716// getting updates only after the object has changed since the last
151717// request. Use googleapi.IsNotModified to check whether the response
151718// error from Do is the result of In-None-Match.
151719func (c *SslCertificatesListCall) IfNoneMatch(entityTag string) *SslCertificatesListCall {
151720	c.ifNoneMatch_ = entityTag
151721	return c
151722}
151723
151724// Context sets the context to be used in this call's Do method. Any
151725// pending HTTP request will be aborted if the provided context is
151726// canceled.
151727func (c *SslCertificatesListCall) Context(ctx context.Context) *SslCertificatesListCall {
151728	c.ctx_ = ctx
151729	return c
151730}
151731
151732// Header returns an http.Header that can be modified by the caller to
151733// add HTTP headers to the request.
151734func (c *SslCertificatesListCall) Header() http.Header {
151735	if c.header_ == nil {
151736		c.header_ = make(http.Header)
151737	}
151738	return c.header_
151739}
151740
151741func (c *SslCertificatesListCall) doRequest(alt string) (*http.Response, error) {
151742	reqHeaders := make(http.Header)
151743	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
151744	for k, v := range c.header_ {
151745		reqHeaders[k] = v
151746	}
151747	reqHeaders.Set("User-Agent", c.s.userAgent())
151748	if c.ifNoneMatch_ != "" {
151749		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
151750	}
151751	var body io.Reader = nil
151752	c.urlParams_.Set("alt", alt)
151753	c.urlParams_.Set("prettyPrint", "false")
151754	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates")
151755	urls += "?" + c.urlParams_.Encode()
151756	req, err := http.NewRequest("GET", urls, body)
151757	if err != nil {
151758		return nil, err
151759	}
151760	req.Header = reqHeaders
151761	googleapi.Expand(req.URL, map[string]string{
151762		"project": c.project,
151763	})
151764	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151765}
151766
151767// Do executes the "compute.sslCertificates.list" call.
151768// Exactly one of *SslCertificateList or error will be non-nil. Any
151769// non-2xx status code is an error. Response headers are in either
151770// *SslCertificateList.ServerResponse.Header or (if a response was
151771// returned at all) in error.(*googleapi.Error).Header. Use
151772// googleapi.IsNotModified to check whether the returned error was
151773// because http.StatusNotModified was returned.
151774func (c *SslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) {
151775	gensupport.SetOptions(c.urlParams_, opts...)
151776	res, err := c.doRequest("json")
151777	if res != nil && res.StatusCode == http.StatusNotModified {
151778		if res.Body != nil {
151779			res.Body.Close()
151780		}
151781		return nil, &googleapi.Error{
151782			Code:   res.StatusCode,
151783			Header: res.Header,
151784		}
151785	}
151786	if err != nil {
151787		return nil, err
151788	}
151789	defer googleapi.CloseBody(res)
151790	if err := googleapi.CheckResponse(res); err != nil {
151791		return nil, err
151792	}
151793	ret := &SslCertificateList{
151794		ServerResponse: googleapi.ServerResponse{
151795			Header:         res.Header,
151796			HTTPStatusCode: res.StatusCode,
151797		},
151798	}
151799	target := &ret
151800	if err := gensupport.DecodeResponse(target, res); err != nil {
151801		return nil, err
151802	}
151803	return ret, nil
151804	// {
151805	//   "description": "Retrieves the list of SslCertificate resources available to the specified project.",
151806	//   "httpMethod": "GET",
151807	//   "id": "compute.sslCertificates.list",
151808	//   "parameterOrder": [
151809	//     "project"
151810	//   ],
151811	//   "parameters": {
151812	//     "filter": {
151813	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
151814	//       "location": "query",
151815	//       "type": "string"
151816	//     },
151817	//     "maxResults": {
151818	//       "default": "500",
151819	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
151820	//       "format": "uint32",
151821	//       "location": "query",
151822	//       "minimum": "0",
151823	//       "type": "integer"
151824	//     },
151825	//     "orderBy": {
151826	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
151827	//       "location": "query",
151828	//       "type": "string"
151829	//     },
151830	//     "pageToken": {
151831	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
151832	//       "location": "query",
151833	//       "type": "string"
151834	//     },
151835	//     "project": {
151836	//       "description": "Project ID for this request.",
151837	//       "location": "path",
151838	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151839	//       "required": true,
151840	//       "type": "string"
151841	//     }
151842	//   },
151843	//   "path": "{project}/global/sslCertificates",
151844	//   "response": {
151845	//     "$ref": "SslCertificateList"
151846	//   },
151847	//   "scopes": [
151848	//     "https://www.googleapis.com/auth/cloud-platform",
151849	//     "https://www.googleapis.com/auth/compute",
151850	//     "https://www.googleapis.com/auth/compute.readonly"
151851	//   ]
151852	// }
151853
151854}
151855
151856// Pages invokes f for each page of results.
151857// A non-nil error returned from f will halt the iteration.
151858// The provided context supersedes any context provided to the Context method.
151859func (c *SslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error {
151860	c.ctx_ = ctx
151861	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
151862	for {
151863		x, err := c.Do()
151864		if err != nil {
151865			return err
151866		}
151867		if err := f(x); err != nil {
151868			return err
151869		}
151870		if x.NextPageToken == "" {
151871			return nil
151872		}
151873		c.PageToken(x.NextPageToken)
151874	}
151875}
151876
151877// method id "compute.sslCertificates.testIamPermissions":
151878
151879type SslCertificatesTestIamPermissionsCall struct {
151880	s                      *Service
151881	project                string
151882	resource               string
151883	testpermissionsrequest *TestPermissionsRequest
151884	urlParams_             gensupport.URLParams
151885	ctx_                   context.Context
151886	header_                http.Header
151887}
151888
151889// TestIamPermissions: Returns permissions that a caller has on the
151890// specified resource.
151891func (r *SslCertificatesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SslCertificatesTestIamPermissionsCall {
151892	c := &SslCertificatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151893	c.project = project
151894	c.resource = resource
151895	c.testpermissionsrequest = testpermissionsrequest
151896	return c
151897}
151898
151899// Fields allows partial responses to be retrieved. See
151900// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151901// for more information.
151902func (c *SslCertificatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *SslCertificatesTestIamPermissionsCall {
151903	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151904	return c
151905}
151906
151907// Context sets the context to be used in this call's Do method. Any
151908// pending HTTP request will be aborted if the provided context is
151909// canceled.
151910func (c *SslCertificatesTestIamPermissionsCall) Context(ctx context.Context) *SslCertificatesTestIamPermissionsCall {
151911	c.ctx_ = ctx
151912	return c
151913}
151914
151915// Header returns an http.Header that can be modified by the caller to
151916// add HTTP headers to the request.
151917func (c *SslCertificatesTestIamPermissionsCall) Header() http.Header {
151918	if c.header_ == nil {
151919		c.header_ = make(http.Header)
151920	}
151921	return c.header_
151922}
151923
151924func (c *SslCertificatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
151925	reqHeaders := make(http.Header)
151926	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
151927	for k, v := range c.header_ {
151928		reqHeaders[k] = v
151929	}
151930	reqHeaders.Set("User-Agent", c.s.userAgent())
151931	var body io.Reader = nil
151932	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
151933	if err != nil {
151934		return nil, err
151935	}
151936	reqHeaders.Set("Content-Type", "application/json")
151937	c.urlParams_.Set("alt", alt)
151938	c.urlParams_.Set("prettyPrint", "false")
151939	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates/{resource}/testIamPermissions")
151940	urls += "?" + c.urlParams_.Encode()
151941	req, err := http.NewRequest("POST", urls, body)
151942	if err != nil {
151943		return nil, err
151944	}
151945	req.Header = reqHeaders
151946	googleapi.Expand(req.URL, map[string]string{
151947		"project":  c.project,
151948		"resource": c.resource,
151949	})
151950	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151951}
151952
151953// Do executes the "compute.sslCertificates.testIamPermissions" call.
151954// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
151955// non-2xx status code is an error. Response headers are in either
151956// *TestPermissionsResponse.ServerResponse.Header or (if a response was
151957// returned at all) in error.(*googleapi.Error).Header. Use
151958// googleapi.IsNotModified to check whether the returned error was
151959// because http.StatusNotModified was returned.
151960func (c *SslCertificatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
151961	gensupport.SetOptions(c.urlParams_, opts...)
151962	res, err := c.doRequest("json")
151963	if res != nil && res.StatusCode == http.StatusNotModified {
151964		if res.Body != nil {
151965			res.Body.Close()
151966		}
151967		return nil, &googleapi.Error{
151968			Code:   res.StatusCode,
151969			Header: res.Header,
151970		}
151971	}
151972	if err != nil {
151973		return nil, err
151974	}
151975	defer googleapi.CloseBody(res)
151976	if err := googleapi.CheckResponse(res); err != nil {
151977		return nil, err
151978	}
151979	ret := &TestPermissionsResponse{
151980		ServerResponse: googleapi.ServerResponse{
151981			Header:         res.Header,
151982			HTTPStatusCode: res.StatusCode,
151983		},
151984	}
151985	target := &ret
151986	if err := gensupport.DecodeResponse(target, res); err != nil {
151987		return nil, err
151988	}
151989	return ret, nil
151990	// {
151991	//   "description": "Returns permissions that a caller has on the specified resource.",
151992	//   "httpMethod": "POST",
151993	//   "id": "compute.sslCertificates.testIamPermissions",
151994	//   "parameterOrder": [
151995	//     "project",
151996	//     "resource"
151997	//   ],
151998	//   "parameters": {
151999	//     "project": {
152000	//       "description": "Project ID for this request.",
152001	//       "location": "path",
152002	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152003	//       "required": true,
152004	//       "type": "string"
152005	//     },
152006	//     "resource": {
152007	//       "description": "Name or id of the resource for this request.",
152008	//       "location": "path",
152009	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152010	//       "required": true,
152011	//       "type": "string"
152012	//     }
152013	//   },
152014	//   "path": "{project}/global/sslCertificates/{resource}/testIamPermissions",
152015	//   "request": {
152016	//     "$ref": "TestPermissionsRequest"
152017	//   },
152018	//   "response": {
152019	//     "$ref": "TestPermissionsResponse"
152020	//   },
152021	//   "scopes": [
152022	//     "https://www.googleapis.com/auth/cloud-platform",
152023	//     "https://www.googleapis.com/auth/compute",
152024	//     "https://www.googleapis.com/auth/compute.readonly"
152025	//   ]
152026	// }
152027
152028}
152029
152030// method id "compute.sslPolicies.delete":
152031
152032type SslPoliciesDeleteCall struct {
152033	s          *Service
152034	project    string
152035	sslPolicy  string
152036	urlParams_ gensupport.URLParams
152037	ctx_       context.Context
152038	header_    http.Header
152039}
152040
152041// Delete: Deletes the specified SSL policy. The SSL policy resource can
152042// be deleted only if it is not in use by any TargetHttpsProxy or
152043// TargetSslProxy resources.
152044func (r *SslPoliciesService) Delete(project string, sslPolicy string) *SslPoliciesDeleteCall {
152045	c := &SslPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152046	c.project = project
152047	c.sslPolicy = sslPolicy
152048	return c
152049}
152050
152051// RequestId sets the optional parameter "requestId": An optional
152052// request ID to identify requests. Specify a unique request ID so that
152053// if you must retry your request, the server will know to ignore the
152054// request if it has already been completed.
152055//
152056// For example, consider a situation where you make an initial request
152057// and the request times out. If you make the request again with the
152058// same request ID, the server can check if original operation with the
152059// same request ID was received, and if so, will ignore the second
152060// request. This prevents clients from accidentally creating duplicate
152061// commitments.
152062//
152063// The request ID must be a valid UUID with the exception that zero UUID
152064// is not supported (00000000-0000-0000-0000-000000000000).
152065func (c *SslPoliciesDeleteCall) RequestId(requestId string) *SslPoliciesDeleteCall {
152066	c.urlParams_.Set("requestId", requestId)
152067	return c
152068}
152069
152070// Fields allows partial responses to be retrieved. See
152071// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152072// for more information.
152073func (c *SslPoliciesDeleteCall) Fields(s ...googleapi.Field) *SslPoliciesDeleteCall {
152074	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152075	return c
152076}
152077
152078// Context sets the context to be used in this call's Do method. Any
152079// pending HTTP request will be aborted if the provided context is
152080// canceled.
152081func (c *SslPoliciesDeleteCall) Context(ctx context.Context) *SslPoliciesDeleteCall {
152082	c.ctx_ = ctx
152083	return c
152084}
152085
152086// Header returns an http.Header that can be modified by the caller to
152087// add HTTP headers to the request.
152088func (c *SslPoliciesDeleteCall) Header() http.Header {
152089	if c.header_ == nil {
152090		c.header_ = make(http.Header)
152091	}
152092	return c.header_
152093}
152094
152095func (c *SslPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
152096	reqHeaders := make(http.Header)
152097	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
152098	for k, v := range c.header_ {
152099		reqHeaders[k] = v
152100	}
152101	reqHeaders.Set("User-Agent", c.s.userAgent())
152102	var body io.Reader = nil
152103	c.urlParams_.Set("alt", alt)
152104	c.urlParams_.Set("prettyPrint", "false")
152105	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{sslPolicy}")
152106	urls += "?" + c.urlParams_.Encode()
152107	req, err := http.NewRequest("DELETE", urls, body)
152108	if err != nil {
152109		return nil, err
152110	}
152111	req.Header = reqHeaders
152112	googleapi.Expand(req.URL, map[string]string{
152113		"project":   c.project,
152114		"sslPolicy": c.sslPolicy,
152115	})
152116	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152117}
152118
152119// Do executes the "compute.sslPolicies.delete" call.
152120// Exactly one of *Operation or error will be non-nil. Any non-2xx
152121// status code is an error. Response headers are in either
152122// *Operation.ServerResponse.Header or (if a response was returned at
152123// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
152124// to check whether the returned error was because
152125// http.StatusNotModified was returned.
152126func (c *SslPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
152127	gensupport.SetOptions(c.urlParams_, opts...)
152128	res, err := c.doRequest("json")
152129	if res != nil && res.StatusCode == http.StatusNotModified {
152130		if res.Body != nil {
152131			res.Body.Close()
152132		}
152133		return nil, &googleapi.Error{
152134			Code:   res.StatusCode,
152135			Header: res.Header,
152136		}
152137	}
152138	if err != nil {
152139		return nil, err
152140	}
152141	defer googleapi.CloseBody(res)
152142	if err := googleapi.CheckResponse(res); err != nil {
152143		return nil, err
152144	}
152145	ret := &Operation{
152146		ServerResponse: googleapi.ServerResponse{
152147			Header:         res.Header,
152148			HTTPStatusCode: res.StatusCode,
152149		},
152150	}
152151	target := &ret
152152	if err := gensupport.DecodeResponse(target, res); err != nil {
152153		return nil, err
152154	}
152155	return ret, nil
152156	// {
152157	//   "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.",
152158	//   "httpMethod": "DELETE",
152159	//   "id": "compute.sslPolicies.delete",
152160	//   "parameterOrder": [
152161	//     "project",
152162	//     "sslPolicy"
152163	//   ],
152164	//   "parameters": {
152165	//     "project": {
152166	//       "description": "Project ID for this request.",
152167	//       "location": "path",
152168	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152169	//       "required": true,
152170	//       "type": "string"
152171	//     },
152172	//     "requestId": {
152173	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
152174	//       "location": "query",
152175	//       "type": "string"
152176	//     },
152177	//     "sslPolicy": {
152178	//       "description": "Name of the SSL policy to delete. The name must be 1-63 characters long, and comply with RFC1035.",
152179	//       "location": "path",
152180	//       "required": true,
152181	//       "type": "string"
152182	//     }
152183	//   },
152184	//   "path": "{project}/global/sslPolicies/{sslPolicy}",
152185	//   "response": {
152186	//     "$ref": "Operation"
152187	//   },
152188	//   "scopes": [
152189	//     "https://www.googleapis.com/auth/cloud-platform",
152190	//     "https://www.googleapis.com/auth/compute"
152191	//   ]
152192	// }
152193
152194}
152195
152196// method id "compute.sslPolicies.get":
152197
152198type SslPoliciesGetCall struct {
152199	s            *Service
152200	project      string
152201	sslPolicy    string
152202	urlParams_   gensupport.URLParams
152203	ifNoneMatch_ string
152204	ctx_         context.Context
152205	header_      http.Header
152206}
152207
152208// Get: Lists all of the ordered rules present in a single specified
152209// policy.
152210func (r *SslPoliciesService) Get(project string, sslPolicy string) *SslPoliciesGetCall {
152211	c := &SslPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152212	c.project = project
152213	c.sslPolicy = sslPolicy
152214	return c
152215}
152216
152217// Fields allows partial responses to be retrieved. See
152218// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152219// for more information.
152220func (c *SslPoliciesGetCall) Fields(s ...googleapi.Field) *SslPoliciesGetCall {
152221	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152222	return c
152223}
152224
152225// IfNoneMatch sets the optional parameter which makes the operation
152226// fail if the object's ETag matches the given value. This is useful for
152227// getting updates only after the object has changed since the last
152228// request. Use googleapi.IsNotModified to check whether the response
152229// error from Do is the result of In-None-Match.
152230func (c *SslPoliciesGetCall) IfNoneMatch(entityTag string) *SslPoliciesGetCall {
152231	c.ifNoneMatch_ = entityTag
152232	return c
152233}
152234
152235// Context sets the context to be used in this call's Do method. Any
152236// pending HTTP request will be aborted if the provided context is
152237// canceled.
152238func (c *SslPoliciesGetCall) Context(ctx context.Context) *SslPoliciesGetCall {
152239	c.ctx_ = ctx
152240	return c
152241}
152242
152243// Header returns an http.Header that can be modified by the caller to
152244// add HTTP headers to the request.
152245func (c *SslPoliciesGetCall) Header() http.Header {
152246	if c.header_ == nil {
152247		c.header_ = make(http.Header)
152248	}
152249	return c.header_
152250}
152251
152252func (c *SslPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
152253	reqHeaders := make(http.Header)
152254	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
152255	for k, v := range c.header_ {
152256		reqHeaders[k] = v
152257	}
152258	reqHeaders.Set("User-Agent", c.s.userAgent())
152259	if c.ifNoneMatch_ != "" {
152260		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
152261	}
152262	var body io.Reader = nil
152263	c.urlParams_.Set("alt", alt)
152264	c.urlParams_.Set("prettyPrint", "false")
152265	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{sslPolicy}")
152266	urls += "?" + c.urlParams_.Encode()
152267	req, err := http.NewRequest("GET", urls, body)
152268	if err != nil {
152269		return nil, err
152270	}
152271	req.Header = reqHeaders
152272	googleapi.Expand(req.URL, map[string]string{
152273		"project":   c.project,
152274		"sslPolicy": c.sslPolicy,
152275	})
152276	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152277}
152278
152279// Do executes the "compute.sslPolicies.get" call.
152280// Exactly one of *SslPolicy or error will be non-nil. Any non-2xx
152281// status code is an error. Response headers are in either
152282// *SslPolicy.ServerResponse.Header or (if a response was returned at
152283// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
152284// to check whether the returned error was because
152285// http.StatusNotModified was returned.
152286func (c *SslPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SslPolicy, error) {
152287	gensupport.SetOptions(c.urlParams_, opts...)
152288	res, err := c.doRequest("json")
152289	if res != nil && res.StatusCode == http.StatusNotModified {
152290		if res.Body != nil {
152291			res.Body.Close()
152292		}
152293		return nil, &googleapi.Error{
152294			Code:   res.StatusCode,
152295			Header: res.Header,
152296		}
152297	}
152298	if err != nil {
152299		return nil, err
152300	}
152301	defer googleapi.CloseBody(res)
152302	if err := googleapi.CheckResponse(res); err != nil {
152303		return nil, err
152304	}
152305	ret := &SslPolicy{
152306		ServerResponse: googleapi.ServerResponse{
152307			Header:         res.Header,
152308			HTTPStatusCode: res.StatusCode,
152309		},
152310	}
152311	target := &ret
152312	if err := gensupport.DecodeResponse(target, res); err != nil {
152313		return nil, err
152314	}
152315	return ret, nil
152316	// {
152317	//   "description": "Lists all of the ordered rules present in a single specified policy.",
152318	//   "httpMethod": "GET",
152319	//   "id": "compute.sslPolicies.get",
152320	//   "parameterOrder": [
152321	//     "project",
152322	//     "sslPolicy"
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	//     "sslPolicy": {
152333	//       "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.",
152334	//       "location": "path",
152335	//       "required": true,
152336	//       "type": "string"
152337	//     }
152338	//   },
152339	//   "path": "{project}/global/sslPolicies/{sslPolicy}",
152340	//   "response": {
152341	//     "$ref": "SslPolicy"
152342	//   },
152343	//   "scopes": [
152344	//     "https://www.googleapis.com/auth/cloud-platform",
152345	//     "https://www.googleapis.com/auth/compute",
152346	//     "https://www.googleapis.com/auth/compute.readonly"
152347	//   ]
152348	// }
152349
152350}
152351
152352// method id "compute.sslPolicies.insert":
152353
152354type SslPoliciesInsertCall struct {
152355	s          *Service
152356	project    string
152357	sslpolicy  *SslPolicy
152358	urlParams_ gensupport.URLParams
152359	ctx_       context.Context
152360	header_    http.Header
152361}
152362
152363// Insert: Returns the specified SSL policy resource. Gets a list of
152364// available SSL policies by making a list() request.
152365func (r *SslPoliciesService) Insert(project string, sslpolicy *SslPolicy) *SslPoliciesInsertCall {
152366	c := &SslPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152367	c.project = project
152368	c.sslpolicy = sslpolicy
152369	return c
152370}
152371
152372// RequestId sets the optional parameter "requestId": An optional
152373// request ID to identify requests. Specify a unique request ID so that
152374// if you must retry your request, the server will know to ignore the
152375// request if it has already been completed.
152376//
152377// For example, consider a situation where you make an initial request
152378// and the request times out. If you make the request again with the
152379// same request ID, the server can check if original operation with the
152380// same request ID was received, and if so, will ignore the second
152381// request. This prevents clients from accidentally creating duplicate
152382// commitments.
152383//
152384// The request ID must be a valid UUID with the exception that zero UUID
152385// is not supported (00000000-0000-0000-0000-000000000000).
152386func (c *SslPoliciesInsertCall) RequestId(requestId string) *SslPoliciesInsertCall {
152387	c.urlParams_.Set("requestId", requestId)
152388	return c
152389}
152390
152391// Fields allows partial responses to be retrieved. See
152392// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152393// for more information.
152394func (c *SslPoliciesInsertCall) Fields(s ...googleapi.Field) *SslPoliciesInsertCall {
152395	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152396	return c
152397}
152398
152399// Context sets the context to be used in this call's Do method. Any
152400// pending HTTP request will be aborted if the provided context is
152401// canceled.
152402func (c *SslPoliciesInsertCall) Context(ctx context.Context) *SslPoliciesInsertCall {
152403	c.ctx_ = ctx
152404	return c
152405}
152406
152407// Header returns an http.Header that can be modified by the caller to
152408// add HTTP headers to the request.
152409func (c *SslPoliciesInsertCall) Header() http.Header {
152410	if c.header_ == nil {
152411		c.header_ = make(http.Header)
152412	}
152413	return c.header_
152414}
152415
152416func (c *SslPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
152417	reqHeaders := make(http.Header)
152418	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
152419	for k, v := range c.header_ {
152420		reqHeaders[k] = v
152421	}
152422	reqHeaders.Set("User-Agent", c.s.userAgent())
152423	var body io.Reader = nil
152424	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy)
152425	if err != nil {
152426		return nil, err
152427	}
152428	reqHeaders.Set("Content-Type", "application/json")
152429	c.urlParams_.Set("alt", alt)
152430	c.urlParams_.Set("prettyPrint", "false")
152431	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies")
152432	urls += "?" + c.urlParams_.Encode()
152433	req, err := http.NewRequest("POST", urls, body)
152434	if err != nil {
152435		return nil, err
152436	}
152437	req.Header = reqHeaders
152438	googleapi.Expand(req.URL, map[string]string{
152439		"project": c.project,
152440	})
152441	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152442}
152443
152444// Do executes the "compute.sslPolicies.insert" call.
152445// Exactly one of *Operation or error will be non-nil. Any non-2xx
152446// status code is an error. Response headers are in either
152447// *Operation.ServerResponse.Header or (if a response was returned at
152448// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
152449// to check whether the returned error was because
152450// http.StatusNotModified was returned.
152451func (c *SslPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
152452	gensupport.SetOptions(c.urlParams_, opts...)
152453	res, err := c.doRequest("json")
152454	if res != nil && res.StatusCode == http.StatusNotModified {
152455		if res.Body != nil {
152456			res.Body.Close()
152457		}
152458		return nil, &googleapi.Error{
152459			Code:   res.StatusCode,
152460			Header: res.Header,
152461		}
152462	}
152463	if err != nil {
152464		return nil, err
152465	}
152466	defer googleapi.CloseBody(res)
152467	if err := googleapi.CheckResponse(res); err != nil {
152468		return nil, err
152469	}
152470	ret := &Operation{
152471		ServerResponse: googleapi.ServerResponse{
152472			Header:         res.Header,
152473			HTTPStatusCode: res.StatusCode,
152474		},
152475	}
152476	target := &ret
152477	if err := gensupport.DecodeResponse(target, res); err != nil {
152478		return nil, err
152479	}
152480	return ret, nil
152481	// {
152482	//   "description": "Returns the specified SSL policy resource. Gets a list of available SSL policies by making a list() request.",
152483	//   "httpMethod": "POST",
152484	//   "id": "compute.sslPolicies.insert",
152485	//   "parameterOrder": [
152486	//     "project"
152487	//   ],
152488	//   "parameters": {
152489	//     "project": {
152490	//       "description": "Project ID for this request.",
152491	//       "location": "path",
152492	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152493	//       "required": true,
152494	//       "type": "string"
152495	//     },
152496	//     "requestId": {
152497	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
152498	//       "location": "query",
152499	//       "type": "string"
152500	//     }
152501	//   },
152502	//   "path": "{project}/global/sslPolicies",
152503	//   "request": {
152504	//     "$ref": "SslPolicy"
152505	//   },
152506	//   "response": {
152507	//     "$ref": "Operation"
152508	//   },
152509	//   "scopes": [
152510	//     "https://www.googleapis.com/auth/cloud-platform",
152511	//     "https://www.googleapis.com/auth/compute"
152512	//   ]
152513	// }
152514
152515}
152516
152517// method id "compute.sslPolicies.list":
152518
152519type SslPoliciesListCall struct {
152520	s            *Service
152521	project      string
152522	urlParams_   gensupport.URLParams
152523	ifNoneMatch_ string
152524	ctx_         context.Context
152525	header_      http.Header
152526}
152527
152528// List: Lists all the SSL policies that have been configured for the
152529// specified project.
152530func (r *SslPoliciesService) List(project string) *SslPoliciesListCall {
152531	c := &SslPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152532	c.project = project
152533	return c
152534}
152535
152536// Filter sets the optional parameter "filter": A filter expression that
152537// filters resources listed in the response. The expression must specify
152538// the field name, a comparison operator, and the value that you want to
152539// use for filtering. The value must be a string, a number, or a
152540// boolean. The comparison operator must be either =, !=, >, or <.
152541//
152542// For example, if you are filtering Compute Engine instances, you can
152543// exclude instances named example-instance by specifying name !=
152544// example-instance.
152545//
152546// You can also filter nested fields. For example, you could specify
152547// scheduling.automaticRestart = false to include instances only if they
152548// are not scheduled for automatic restarts. You can use filtering on
152549// nested fields to filter based on resource labels.
152550//
152551// To filter on multiple expressions, provide each separate expression
152552// within parentheses. For example, (scheduling.automaticRestart = true)
152553// (cpuPlatform = "Intel Skylake"). By default, each expression is an
152554// AND expression. However, you can include AND and OR expressions
152555// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
152556// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
152557// true).
152558func (c *SslPoliciesListCall) Filter(filter string) *SslPoliciesListCall {
152559	c.urlParams_.Set("filter", filter)
152560	return c
152561}
152562
152563// MaxResults sets the optional parameter "maxResults": The maximum
152564// number of results per page that should be returned. If the number of
152565// available results is larger than maxResults, Compute Engine returns a
152566// nextPageToken that can be used to get the next page of results in
152567// subsequent list requests. Acceptable values are 0 to 500, inclusive.
152568// (Default: 500)
152569func (c *SslPoliciesListCall) MaxResults(maxResults int64) *SslPoliciesListCall {
152570	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
152571	return c
152572}
152573
152574// OrderBy sets the optional parameter "orderBy": Sorts list results by
152575// a certain order. By default, results are returned in alphanumerical
152576// order based on the resource name.
152577//
152578// You can also sort results in descending order based on the creation
152579// timestamp using orderBy="creationTimestamp desc". This sorts results
152580// based on the creationTimestamp field in reverse chronological order
152581// (newest result first). Use this to sort resources like operations so
152582// that the newest operation is returned first.
152583//
152584// Currently, only sorting by name or creationTimestamp desc is
152585// supported.
152586func (c *SslPoliciesListCall) OrderBy(orderBy string) *SslPoliciesListCall {
152587	c.urlParams_.Set("orderBy", orderBy)
152588	return c
152589}
152590
152591// PageToken sets the optional parameter "pageToken": Specifies a page
152592// token to use. Set pageToken to the nextPageToken returned by a
152593// previous list request to get the next page of results.
152594func (c *SslPoliciesListCall) PageToken(pageToken string) *SslPoliciesListCall {
152595	c.urlParams_.Set("pageToken", pageToken)
152596	return c
152597}
152598
152599// Fields allows partial responses to be retrieved. See
152600// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152601// for more information.
152602func (c *SslPoliciesListCall) Fields(s ...googleapi.Field) *SslPoliciesListCall {
152603	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152604	return c
152605}
152606
152607// IfNoneMatch sets the optional parameter which makes the operation
152608// fail if the object's ETag matches the given value. This is useful for
152609// getting updates only after the object has changed since the last
152610// request. Use googleapi.IsNotModified to check whether the response
152611// error from Do is the result of In-None-Match.
152612func (c *SslPoliciesListCall) IfNoneMatch(entityTag string) *SslPoliciesListCall {
152613	c.ifNoneMatch_ = entityTag
152614	return c
152615}
152616
152617// Context sets the context to be used in this call's Do method. Any
152618// pending HTTP request will be aborted if the provided context is
152619// canceled.
152620func (c *SslPoliciesListCall) Context(ctx context.Context) *SslPoliciesListCall {
152621	c.ctx_ = ctx
152622	return c
152623}
152624
152625// Header returns an http.Header that can be modified by the caller to
152626// add HTTP headers to the request.
152627func (c *SslPoliciesListCall) Header() http.Header {
152628	if c.header_ == nil {
152629		c.header_ = make(http.Header)
152630	}
152631	return c.header_
152632}
152633
152634func (c *SslPoliciesListCall) doRequest(alt string) (*http.Response, error) {
152635	reqHeaders := make(http.Header)
152636	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
152637	for k, v := range c.header_ {
152638		reqHeaders[k] = v
152639	}
152640	reqHeaders.Set("User-Agent", c.s.userAgent())
152641	if c.ifNoneMatch_ != "" {
152642		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
152643	}
152644	var body io.Reader = nil
152645	c.urlParams_.Set("alt", alt)
152646	c.urlParams_.Set("prettyPrint", "false")
152647	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies")
152648	urls += "?" + c.urlParams_.Encode()
152649	req, err := http.NewRequest("GET", urls, body)
152650	if err != nil {
152651		return nil, err
152652	}
152653	req.Header = reqHeaders
152654	googleapi.Expand(req.URL, map[string]string{
152655		"project": c.project,
152656	})
152657	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152658}
152659
152660// Do executes the "compute.sslPolicies.list" call.
152661// Exactly one of *SslPoliciesList or error will be non-nil. Any non-2xx
152662// status code is an error. Response headers are in either
152663// *SslPoliciesList.ServerResponse.Header or (if a response was returned
152664// at all) in error.(*googleapi.Error).Header. Use
152665// googleapi.IsNotModified to check whether the returned error was
152666// because http.StatusNotModified was returned.
152667func (c *SslPoliciesListCall) Do(opts ...googleapi.CallOption) (*SslPoliciesList, error) {
152668	gensupport.SetOptions(c.urlParams_, opts...)
152669	res, err := c.doRequest("json")
152670	if res != nil && res.StatusCode == http.StatusNotModified {
152671		if res.Body != nil {
152672			res.Body.Close()
152673		}
152674		return nil, &googleapi.Error{
152675			Code:   res.StatusCode,
152676			Header: res.Header,
152677		}
152678	}
152679	if err != nil {
152680		return nil, err
152681	}
152682	defer googleapi.CloseBody(res)
152683	if err := googleapi.CheckResponse(res); err != nil {
152684		return nil, err
152685	}
152686	ret := &SslPoliciesList{
152687		ServerResponse: googleapi.ServerResponse{
152688			Header:         res.Header,
152689			HTTPStatusCode: res.StatusCode,
152690		},
152691	}
152692	target := &ret
152693	if err := gensupport.DecodeResponse(target, res); err != nil {
152694		return nil, err
152695	}
152696	return ret, nil
152697	// {
152698	//   "description": "Lists all the SSL policies that have been configured for the specified project.",
152699	//   "httpMethod": "GET",
152700	//   "id": "compute.sslPolicies.list",
152701	//   "parameterOrder": [
152702	//     "project"
152703	//   ],
152704	//   "parameters": {
152705	//     "filter": {
152706	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
152707	//       "location": "query",
152708	//       "type": "string"
152709	//     },
152710	//     "maxResults": {
152711	//       "default": "500",
152712	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
152713	//       "format": "uint32",
152714	//       "location": "query",
152715	//       "minimum": "0",
152716	//       "type": "integer"
152717	//     },
152718	//     "orderBy": {
152719	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
152720	//       "location": "query",
152721	//       "type": "string"
152722	//     },
152723	//     "pageToken": {
152724	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
152725	//       "location": "query",
152726	//       "type": "string"
152727	//     },
152728	//     "project": {
152729	//       "description": "Project ID for this request.",
152730	//       "location": "path",
152731	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152732	//       "required": true,
152733	//       "type": "string"
152734	//     }
152735	//   },
152736	//   "path": "{project}/global/sslPolicies",
152737	//   "response": {
152738	//     "$ref": "SslPoliciesList"
152739	//   },
152740	//   "scopes": [
152741	//     "https://www.googleapis.com/auth/cloud-platform",
152742	//     "https://www.googleapis.com/auth/compute",
152743	//     "https://www.googleapis.com/auth/compute.readonly"
152744	//   ]
152745	// }
152746
152747}
152748
152749// Pages invokes f for each page of results.
152750// A non-nil error returned from f will halt the iteration.
152751// The provided context supersedes any context provided to the Context method.
152752func (c *SslPoliciesListCall) Pages(ctx context.Context, f func(*SslPoliciesList) error) error {
152753	c.ctx_ = ctx
152754	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
152755	for {
152756		x, err := c.Do()
152757		if err != nil {
152758			return err
152759		}
152760		if err := f(x); err != nil {
152761			return err
152762		}
152763		if x.NextPageToken == "" {
152764			return nil
152765		}
152766		c.PageToken(x.NextPageToken)
152767	}
152768}
152769
152770// method id "compute.sslPolicies.listAvailableFeatures":
152771
152772type SslPoliciesListAvailableFeaturesCall struct {
152773	s            *Service
152774	project      string
152775	urlParams_   gensupport.URLParams
152776	ifNoneMatch_ string
152777	ctx_         context.Context
152778	header_      http.Header
152779}
152780
152781// ListAvailableFeatures: Lists all features that can be specified in
152782// the SSL policy when using custom profile.
152783func (r *SslPoliciesService) ListAvailableFeatures(project string) *SslPoliciesListAvailableFeaturesCall {
152784	c := &SslPoliciesListAvailableFeaturesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152785	c.project = project
152786	return c
152787}
152788
152789// Filter sets the optional parameter "filter": A filter expression that
152790// filters resources listed in the response. The expression must specify
152791// the field name, a comparison operator, and the value that you want to
152792// use for filtering. The value must be a string, a number, or a
152793// boolean. The comparison operator must be either =, !=, >, or <.
152794//
152795// For example, if you are filtering Compute Engine instances, you can
152796// exclude instances named example-instance by specifying name !=
152797// example-instance.
152798//
152799// You can also filter nested fields. For example, you could specify
152800// scheduling.automaticRestart = false to include instances only if they
152801// are not scheduled for automatic restarts. You can use filtering on
152802// nested fields to filter based on resource labels.
152803//
152804// To filter on multiple expressions, provide each separate expression
152805// within parentheses. For example, (scheduling.automaticRestart = true)
152806// (cpuPlatform = "Intel Skylake"). By default, each expression is an
152807// AND expression. However, you can include AND and OR expressions
152808// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
152809// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
152810// true).
152811func (c *SslPoliciesListAvailableFeaturesCall) Filter(filter string) *SslPoliciesListAvailableFeaturesCall {
152812	c.urlParams_.Set("filter", filter)
152813	return c
152814}
152815
152816// MaxResults sets the optional parameter "maxResults": The maximum
152817// number of results per page that should be returned. If the number of
152818// available results is larger than maxResults, Compute Engine returns a
152819// nextPageToken that can be used to get the next page of results in
152820// subsequent list requests. Acceptable values are 0 to 500, inclusive.
152821// (Default: 500)
152822func (c *SslPoliciesListAvailableFeaturesCall) MaxResults(maxResults int64) *SslPoliciesListAvailableFeaturesCall {
152823	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
152824	return c
152825}
152826
152827// OrderBy sets the optional parameter "orderBy": Sorts list results by
152828// a certain order. By default, results are returned in alphanumerical
152829// order based on the resource name.
152830//
152831// You can also sort results in descending order based on the creation
152832// timestamp using orderBy="creationTimestamp desc". This sorts results
152833// based on the creationTimestamp field in reverse chronological order
152834// (newest result first). Use this to sort resources like operations so
152835// that the newest operation is returned first.
152836//
152837// Currently, only sorting by name or creationTimestamp desc is
152838// supported.
152839func (c *SslPoliciesListAvailableFeaturesCall) OrderBy(orderBy string) *SslPoliciesListAvailableFeaturesCall {
152840	c.urlParams_.Set("orderBy", orderBy)
152841	return c
152842}
152843
152844// PageToken sets the optional parameter "pageToken": Specifies a page
152845// token to use. Set pageToken to the nextPageToken returned by a
152846// previous list request to get the next page of results.
152847func (c *SslPoliciesListAvailableFeaturesCall) PageToken(pageToken string) *SslPoliciesListAvailableFeaturesCall {
152848	c.urlParams_.Set("pageToken", pageToken)
152849	return c
152850}
152851
152852// Fields allows partial responses to be retrieved. See
152853// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152854// for more information.
152855func (c *SslPoliciesListAvailableFeaturesCall) Fields(s ...googleapi.Field) *SslPoliciesListAvailableFeaturesCall {
152856	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152857	return c
152858}
152859
152860// IfNoneMatch sets the optional parameter which makes the operation
152861// fail if the object's ETag matches the given value. This is useful for
152862// getting updates only after the object has changed since the last
152863// request. Use googleapi.IsNotModified to check whether the response
152864// error from Do is the result of In-None-Match.
152865func (c *SslPoliciesListAvailableFeaturesCall) IfNoneMatch(entityTag string) *SslPoliciesListAvailableFeaturesCall {
152866	c.ifNoneMatch_ = entityTag
152867	return c
152868}
152869
152870// Context sets the context to be used in this call's Do method. Any
152871// pending HTTP request will be aborted if the provided context is
152872// canceled.
152873func (c *SslPoliciesListAvailableFeaturesCall) Context(ctx context.Context) *SslPoliciesListAvailableFeaturesCall {
152874	c.ctx_ = ctx
152875	return c
152876}
152877
152878// Header returns an http.Header that can be modified by the caller to
152879// add HTTP headers to the request.
152880func (c *SslPoliciesListAvailableFeaturesCall) Header() http.Header {
152881	if c.header_ == nil {
152882		c.header_ = make(http.Header)
152883	}
152884	return c.header_
152885}
152886
152887func (c *SslPoliciesListAvailableFeaturesCall) doRequest(alt string) (*http.Response, error) {
152888	reqHeaders := make(http.Header)
152889	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
152890	for k, v := range c.header_ {
152891		reqHeaders[k] = v
152892	}
152893	reqHeaders.Set("User-Agent", c.s.userAgent())
152894	if c.ifNoneMatch_ != "" {
152895		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
152896	}
152897	var body io.Reader = nil
152898	c.urlParams_.Set("alt", alt)
152899	c.urlParams_.Set("prettyPrint", "false")
152900	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/listAvailableFeatures")
152901	urls += "?" + c.urlParams_.Encode()
152902	req, err := http.NewRequest("GET", urls, body)
152903	if err != nil {
152904		return nil, err
152905	}
152906	req.Header = reqHeaders
152907	googleapi.Expand(req.URL, map[string]string{
152908		"project": c.project,
152909	})
152910	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152911}
152912
152913// Do executes the "compute.sslPolicies.listAvailableFeatures" call.
152914// Exactly one of *SslPoliciesListAvailableFeaturesResponse or error
152915// will be non-nil. Any non-2xx status code is an error. Response
152916// headers are in either
152917// *SslPoliciesListAvailableFeaturesResponse.ServerResponse.Header or
152918// (if a response was returned at all) in
152919// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
152920// whether the returned error was because http.StatusNotModified was
152921// returned.
152922func (c *SslPoliciesListAvailableFeaturesCall) Do(opts ...googleapi.CallOption) (*SslPoliciesListAvailableFeaturesResponse, error) {
152923	gensupport.SetOptions(c.urlParams_, opts...)
152924	res, err := c.doRequest("json")
152925	if res != nil && res.StatusCode == http.StatusNotModified {
152926		if res.Body != nil {
152927			res.Body.Close()
152928		}
152929		return nil, &googleapi.Error{
152930			Code:   res.StatusCode,
152931			Header: res.Header,
152932		}
152933	}
152934	if err != nil {
152935		return nil, err
152936	}
152937	defer googleapi.CloseBody(res)
152938	if err := googleapi.CheckResponse(res); err != nil {
152939		return nil, err
152940	}
152941	ret := &SslPoliciesListAvailableFeaturesResponse{
152942		ServerResponse: googleapi.ServerResponse{
152943			Header:         res.Header,
152944			HTTPStatusCode: res.StatusCode,
152945		},
152946	}
152947	target := &ret
152948	if err := gensupport.DecodeResponse(target, res); err != nil {
152949		return nil, err
152950	}
152951	return ret, nil
152952	// {
152953	//   "description": "Lists all features that can be specified in the SSL policy when using custom profile.",
152954	//   "httpMethod": "GET",
152955	//   "id": "compute.sslPolicies.listAvailableFeatures",
152956	//   "parameterOrder": [
152957	//     "project"
152958	//   ],
152959	//   "parameters": {
152960	//     "filter": {
152961	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
152962	//       "location": "query",
152963	//       "type": "string"
152964	//     },
152965	//     "maxResults": {
152966	//       "default": "500",
152967	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
152968	//       "format": "uint32",
152969	//       "location": "query",
152970	//       "minimum": "0",
152971	//       "type": "integer"
152972	//     },
152973	//     "orderBy": {
152974	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
152975	//       "location": "query",
152976	//       "type": "string"
152977	//     },
152978	//     "pageToken": {
152979	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
152980	//       "location": "query",
152981	//       "type": "string"
152982	//     },
152983	//     "project": {
152984	//       "description": "Project ID for this request.",
152985	//       "location": "path",
152986	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152987	//       "required": true,
152988	//       "type": "string"
152989	//     }
152990	//   },
152991	//   "path": "{project}/global/sslPolicies/listAvailableFeatures",
152992	//   "response": {
152993	//     "$ref": "SslPoliciesListAvailableFeaturesResponse"
152994	//   },
152995	//   "scopes": [
152996	//     "https://www.googleapis.com/auth/cloud-platform",
152997	//     "https://www.googleapis.com/auth/compute",
152998	//     "https://www.googleapis.com/auth/compute.readonly"
152999	//   ]
153000	// }
153001
153002}
153003
153004// method id "compute.sslPolicies.patch":
153005
153006type SslPoliciesPatchCall struct {
153007	s          *Service
153008	project    string
153009	sslPolicy  string
153010	sslpolicy  *SslPolicy
153011	urlParams_ gensupport.URLParams
153012	ctx_       context.Context
153013	header_    http.Header
153014}
153015
153016// Patch: Patches the specified SSL policy with the data included in the
153017// request.
153018func (r *SslPoliciesService) Patch(project string, sslPolicy string, sslpolicy *SslPolicy) *SslPoliciesPatchCall {
153019	c := &SslPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153020	c.project = project
153021	c.sslPolicy = sslPolicy
153022	c.sslpolicy = sslpolicy
153023	return c
153024}
153025
153026// RequestId sets the optional parameter "requestId": An optional
153027// request ID to identify requests. Specify a unique request ID so that
153028// if you must retry your request, the server will know to ignore the
153029// request if it has already been completed.
153030//
153031// For example, consider a situation where you make an initial request
153032// and the request times out. If you make the request again with the
153033// same request ID, the server can check if original operation with the
153034// same request ID was received, and if so, will ignore the second
153035// request. This prevents clients from accidentally creating duplicate
153036// commitments.
153037//
153038// The request ID must be a valid UUID with the exception that zero UUID
153039// is not supported (00000000-0000-0000-0000-000000000000).
153040func (c *SslPoliciesPatchCall) RequestId(requestId string) *SslPoliciesPatchCall {
153041	c.urlParams_.Set("requestId", requestId)
153042	return c
153043}
153044
153045// Fields allows partial responses to be retrieved. See
153046// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153047// for more information.
153048func (c *SslPoliciesPatchCall) Fields(s ...googleapi.Field) *SslPoliciesPatchCall {
153049	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153050	return c
153051}
153052
153053// Context sets the context to be used in this call's Do method. Any
153054// pending HTTP request will be aborted if the provided context is
153055// canceled.
153056func (c *SslPoliciesPatchCall) Context(ctx context.Context) *SslPoliciesPatchCall {
153057	c.ctx_ = ctx
153058	return c
153059}
153060
153061// Header returns an http.Header that can be modified by the caller to
153062// add HTTP headers to the request.
153063func (c *SslPoliciesPatchCall) Header() http.Header {
153064	if c.header_ == nil {
153065		c.header_ = make(http.Header)
153066	}
153067	return c.header_
153068}
153069
153070func (c *SslPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
153071	reqHeaders := make(http.Header)
153072	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
153073	for k, v := range c.header_ {
153074		reqHeaders[k] = v
153075	}
153076	reqHeaders.Set("User-Agent", c.s.userAgent())
153077	var body io.Reader = nil
153078	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy)
153079	if err != nil {
153080		return nil, err
153081	}
153082	reqHeaders.Set("Content-Type", "application/json")
153083	c.urlParams_.Set("alt", alt)
153084	c.urlParams_.Set("prettyPrint", "false")
153085	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{sslPolicy}")
153086	urls += "?" + c.urlParams_.Encode()
153087	req, err := http.NewRequest("PATCH", urls, body)
153088	if err != nil {
153089		return nil, err
153090	}
153091	req.Header = reqHeaders
153092	googleapi.Expand(req.URL, map[string]string{
153093		"project":   c.project,
153094		"sslPolicy": c.sslPolicy,
153095	})
153096	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153097}
153098
153099// Do executes the "compute.sslPolicies.patch" call.
153100// Exactly one of *Operation or error will be non-nil. Any non-2xx
153101// status code is an error. Response headers are in either
153102// *Operation.ServerResponse.Header or (if a response was returned at
153103// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
153104// to check whether the returned error was because
153105// http.StatusNotModified was returned.
153106func (c *SslPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
153107	gensupport.SetOptions(c.urlParams_, opts...)
153108	res, err := c.doRequest("json")
153109	if res != nil && res.StatusCode == http.StatusNotModified {
153110		if res.Body != nil {
153111			res.Body.Close()
153112		}
153113		return nil, &googleapi.Error{
153114			Code:   res.StatusCode,
153115			Header: res.Header,
153116		}
153117	}
153118	if err != nil {
153119		return nil, err
153120	}
153121	defer googleapi.CloseBody(res)
153122	if err := googleapi.CheckResponse(res); err != nil {
153123		return nil, err
153124	}
153125	ret := &Operation{
153126		ServerResponse: googleapi.ServerResponse{
153127			Header:         res.Header,
153128			HTTPStatusCode: res.StatusCode,
153129		},
153130	}
153131	target := &ret
153132	if err := gensupport.DecodeResponse(target, res); err != nil {
153133		return nil, err
153134	}
153135	return ret, nil
153136	// {
153137	//   "description": "Patches the specified SSL policy with the data included in the request.",
153138	//   "httpMethod": "PATCH",
153139	//   "id": "compute.sslPolicies.patch",
153140	//   "parameterOrder": [
153141	//     "project",
153142	//     "sslPolicy"
153143	//   ],
153144	//   "parameters": {
153145	//     "project": {
153146	//       "description": "Project ID for this request.",
153147	//       "location": "path",
153148	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153149	//       "required": true,
153150	//       "type": "string"
153151	//     },
153152	//     "requestId": {
153153	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
153154	//       "location": "query",
153155	//       "type": "string"
153156	//     },
153157	//     "sslPolicy": {
153158	//       "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.",
153159	//       "location": "path",
153160	//       "required": true,
153161	//       "type": "string"
153162	//     }
153163	//   },
153164	//   "path": "{project}/global/sslPolicies/{sslPolicy}",
153165	//   "request": {
153166	//     "$ref": "SslPolicy"
153167	//   },
153168	//   "response": {
153169	//     "$ref": "Operation"
153170	//   },
153171	//   "scopes": [
153172	//     "https://www.googleapis.com/auth/cloud-platform",
153173	//     "https://www.googleapis.com/auth/compute"
153174	//   ]
153175	// }
153176
153177}
153178
153179// method id "compute.sslPolicies.testIamPermissions":
153180
153181type SslPoliciesTestIamPermissionsCall struct {
153182	s                      *Service
153183	project                string
153184	resource               string
153185	testpermissionsrequest *TestPermissionsRequest
153186	urlParams_             gensupport.URLParams
153187	ctx_                   context.Context
153188	header_                http.Header
153189}
153190
153191// TestIamPermissions: Returns permissions that a caller has on the
153192// specified resource.
153193func (r *SslPoliciesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SslPoliciesTestIamPermissionsCall {
153194	c := &SslPoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153195	c.project = project
153196	c.resource = resource
153197	c.testpermissionsrequest = testpermissionsrequest
153198	return c
153199}
153200
153201// Fields allows partial responses to be retrieved. See
153202// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153203// for more information.
153204func (c *SslPoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *SslPoliciesTestIamPermissionsCall {
153205	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153206	return c
153207}
153208
153209// Context sets the context to be used in this call's Do method. Any
153210// pending HTTP request will be aborted if the provided context is
153211// canceled.
153212func (c *SslPoliciesTestIamPermissionsCall) Context(ctx context.Context) *SslPoliciesTestIamPermissionsCall {
153213	c.ctx_ = ctx
153214	return c
153215}
153216
153217// Header returns an http.Header that can be modified by the caller to
153218// add HTTP headers to the request.
153219func (c *SslPoliciesTestIamPermissionsCall) Header() http.Header {
153220	if c.header_ == nil {
153221		c.header_ = make(http.Header)
153222	}
153223	return c.header_
153224}
153225
153226func (c *SslPoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
153227	reqHeaders := make(http.Header)
153228	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
153229	for k, v := range c.header_ {
153230		reqHeaders[k] = v
153231	}
153232	reqHeaders.Set("User-Agent", c.s.userAgent())
153233	var body io.Reader = nil
153234	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
153235	if err != nil {
153236		return nil, err
153237	}
153238	reqHeaders.Set("Content-Type", "application/json")
153239	c.urlParams_.Set("alt", alt)
153240	c.urlParams_.Set("prettyPrint", "false")
153241	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{resource}/testIamPermissions")
153242	urls += "?" + c.urlParams_.Encode()
153243	req, err := http.NewRequest("POST", urls, body)
153244	if err != nil {
153245		return nil, err
153246	}
153247	req.Header = reqHeaders
153248	googleapi.Expand(req.URL, map[string]string{
153249		"project":  c.project,
153250		"resource": c.resource,
153251	})
153252	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153253}
153254
153255// Do executes the "compute.sslPolicies.testIamPermissions" call.
153256// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
153257// non-2xx status code is an error. Response headers are in either
153258// *TestPermissionsResponse.ServerResponse.Header or (if a response was
153259// returned at all) in error.(*googleapi.Error).Header. Use
153260// googleapi.IsNotModified to check whether the returned error was
153261// because http.StatusNotModified was returned.
153262func (c *SslPoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
153263	gensupport.SetOptions(c.urlParams_, opts...)
153264	res, err := c.doRequest("json")
153265	if res != nil && res.StatusCode == http.StatusNotModified {
153266		if res.Body != nil {
153267			res.Body.Close()
153268		}
153269		return nil, &googleapi.Error{
153270			Code:   res.StatusCode,
153271			Header: res.Header,
153272		}
153273	}
153274	if err != nil {
153275		return nil, err
153276	}
153277	defer googleapi.CloseBody(res)
153278	if err := googleapi.CheckResponse(res); err != nil {
153279		return nil, err
153280	}
153281	ret := &TestPermissionsResponse{
153282		ServerResponse: googleapi.ServerResponse{
153283			Header:         res.Header,
153284			HTTPStatusCode: res.StatusCode,
153285		},
153286	}
153287	target := &ret
153288	if err := gensupport.DecodeResponse(target, res); err != nil {
153289		return nil, err
153290	}
153291	return ret, nil
153292	// {
153293	//   "description": "Returns permissions that a caller has on the specified resource.",
153294	//   "httpMethod": "POST",
153295	//   "id": "compute.sslPolicies.testIamPermissions",
153296	//   "parameterOrder": [
153297	//     "project",
153298	//     "resource"
153299	//   ],
153300	//   "parameters": {
153301	//     "project": {
153302	//       "description": "Project ID for this request.",
153303	//       "location": "path",
153304	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153305	//       "required": true,
153306	//       "type": "string"
153307	//     },
153308	//     "resource": {
153309	//       "description": "Name or id of the resource for this request.",
153310	//       "location": "path",
153311	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
153312	//       "required": true,
153313	//       "type": "string"
153314	//     }
153315	//   },
153316	//   "path": "{project}/global/sslPolicies/{resource}/testIamPermissions",
153317	//   "request": {
153318	//     "$ref": "TestPermissionsRequest"
153319	//   },
153320	//   "response": {
153321	//     "$ref": "TestPermissionsResponse"
153322	//   },
153323	//   "scopes": [
153324	//     "https://www.googleapis.com/auth/cloud-platform",
153325	//     "https://www.googleapis.com/auth/compute",
153326	//     "https://www.googleapis.com/auth/compute.readonly"
153327	//   ]
153328	// }
153329
153330}
153331
153332// method id "compute.subnetworks.aggregatedList":
153333
153334type SubnetworksAggregatedListCall struct {
153335	s            *Service
153336	project      string
153337	urlParams_   gensupport.URLParams
153338	ifNoneMatch_ string
153339	ctx_         context.Context
153340	header_      http.Header
153341}
153342
153343// AggregatedList: Retrieves an aggregated list of subnetworks.
153344func (r *SubnetworksService) AggregatedList(project string) *SubnetworksAggregatedListCall {
153345	c := &SubnetworksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153346	c.project = project
153347	return c
153348}
153349
153350// Filter sets the optional parameter "filter": A filter expression that
153351// filters resources listed in the response. The expression must specify
153352// the field name, a comparison operator, and the value that you want to
153353// use for filtering. The value must be a string, a number, or a
153354// boolean. The comparison operator must be either =, !=, >, or <.
153355//
153356// For example, if you are filtering Compute Engine instances, you can
153357// exclude instances named example-instance by specifying name !=
153358// example-instance.
153359//
153360// You can also filter nested fields. For example, you could specify
153361// scheduling.automaticRestart = false to include instances only if they
153362// are not scheduled for automatic restarts. You can use filtering on
153363// nested fields to filter based on resource labels.
153364//
153365// To filter on multiple expressions, provide each separate expression
153366// within parentheses. For example, (scheduling.automaticRestart = true)
153367// (cpuPlatform = "Intel Skylake"). By default, each expression is an
153368// AND expression. However, you can include AND and OR expressions
153369// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
153370// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
153371// true).
153372func (c *SubnetworksAggregatedListCall) Filter(filter string) *SubnetworksAggregatedListCall {
153373	c.urlParams_.Set("filter", filter)
153374	return c
153375}
153376
153377// IncludeAllScopes sets the optional parameter "includeAllScopes":
153378// Indicates whether every visible scope for each scope type (zone,
153379// region, global) should be included in the response. For new resource
153380// types added after this field, the flag has no effect as new resource
153381// types will always include every visible scope for each scope type in
153382// response. For resource types which predate this field, if this flag
153383// is omitted or false, only scopes of the scope types where the
153384// resource type is expected to be found will be included.
153385func (c *SubnetworksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *SubnetworksAggregatedListCall {
153386	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
153387	return c
153388}
153389
153390// MaxResults sets the optional parameter "maxResults": The maximum
153391// number of results per page that should be returned. If the number of
153392// available results is larger than maxResults, Compute Engine returns a
153393// nextPageToken that can be used to get the next page of results in
153394// subsequent list requests. Acceptable values are 0 to 500, inclusive.
153395// (Default: 500)
153396func (c *SubnetworksAggregatedListCall) MaxResults(maxResults int64) *SubnetworksAggregatedListCall {
153397	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
153398	return c
153399}
153400
153401// OrderBy sets the optional parameter "orderBy": Sorts list results by
153402// a certain order. By default, results are returned in alphanumerical
153403// order based on the resource name.
153404//
153405// You can also sort results in descending order based on the creation
153406// timestamp using orderBy="creationTimestamp desc". This sorts results
153407// based on the creationTimestamp field in reverse chronological order
153408// (newest result first). Use this to sort resources like operations so
153409// that the newest operation is returned first.
153410//
153411// Currently, only sorting by name or creationTimestamp desc is
153412// supported.
153413func (c *SubnetworksAggregatedListCall) OrderBy(orderBy string) *SubnetworksAggregatedListCall {
153414	c.urlParams_.Set("orderBy", orderBy)
153415	return c
153416}
153417
153418// PageToken sets the optional parameter "pageToken": Specifies a page
153419// token to use. Set pageToken to the nextPageToken returned by a
153420// previous list request to get the next page of results.
153421func (c *SubnetworksAggregatedListCall) PageToken(pageToken string) *SubnetworksAggregatedListCall {
153422	c.urlParams_.Set("pageToken", pageToken)
153423	return c
153424}
153425
153426// Fields allows partial responses to be retrieved. See
153427// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153428// for more information.
153429func (c *SubnetworksAggregatedListCall) Fields(s ...googleapi.Field) *SubnetworksAggregatedListCall {
153430	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153431	return c
153432}
153433
153434// IfNoneMatch sets the optional parameter which makes the operation
153435// fail if the object's ETag matches the given value. This is useful for
153436// getting updates only after the object has changed since the last
153437// request. Use googleapi.IsNotModified to check whether the response
153438// error from Do is the result of In-None-Match.
153439func (c *SubnetworksAggregatedListCall) IfNoneMatch(entityTag string) *SubnetworksAggregatedListCall {
153440	c.ifNoneMatch_ = entityTag
153441	return c
153442}
153443
153444// Context sets the context to be used in this call's Do method. Any
153445// pending HTTP request will be aborted if the provided context is
153446// canceled.
153447func (c *SubnetworksAggregatedListCall) Context(ctx context.Context) *SubnetworksAggregatedListCall {
153448	c.ctx_ = ctx
153449	return c
153450}
153451
153452// Header returns an http.Header that can be modified by the caller to
153453// add HTTP headers to the request.
153454func (c *SubnetworksAggregatedListCall) Header() http.Header {
153455	if c.header_ == nil {
153456		c.header_ = make(http.Header)
153457	}
153458	return c.header_
153459}
153460
153461func (c *SubnetworksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
153462	reqHeaders := make(http.Header)
153463	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
153464	for k, v := range c.header_ {
153465		reqHeaders[k] = v
153466	}
153467	reqHeaders.Set("User-Agent", c.s.userAgent())
153468	if c.ifNoneMatch_ != "" {
153469		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
153470	}
153471	var body io.Reader = nil
153472	c.urlParams_.Set("alt", alt)
153473	c.urlParams_.Set("prettyPrint", "false")
153474	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/subnetworks")
153475	urls += "?" + c.urlParams_.Encode()
153476	req, err := http.NewRequest("GET", urls, body)
153477	if err != nil {
153478		return nil, err
153479	}
153480	req.Header = reqHeaders
153481	googleapi.Expand(req.URL, map[string]string{
153482		"project": c.project,
153483	})
153484	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153485}
153486
153487// Do executes the "compute.subnetworks.aggregatedList" call.
153488// Exactly one of *SubnetworkAggregatedList or error will be non-nil.
153489// Any non-2xx status code is an error. Response headers are in either
153490// *SubnetworkAggregatedList.ServerResponse.Header or (if a response was
153491// returned at all) in error.(*googleapi.Error).Header. Use
153492// googleapi.IsNotModified to check whether the returned error was
153493// because http.StatusNotModified was returned.
153494func (c *SubnetworksAggregatedListCall) Do(opts ...googleapi.CallOption) (*SubnetworkAggregatedList, error) {
153495	gensupport.SetOptions(c.urlParams_, opts...)
153496	res, err := c.doRequest("json")
153497	if res != nil && res.StatusCode == http.StatusNotModified {
153498		if res.Body != nil {
153499			res.Body.Close()
153500		}
153501		return nil, &googleapi.Error{
153502			Code:   res.StatusCode,
153503			Header: res.Header,
153504		}
153505	}
153506	if err != nil {
153507		return nil, err
153508	}
153509	defer googleapi.CloseBody(res)
153510	if err := googleapi.CheckResponse(res); err != nil {
153511		return nil, err
153512	}
153513	ret := &SubnetworkAggregatedList{
153514		ServerResponse: googleapi.ServerResponse{
153515			Header:         res.Header,
153516			HTTPStatusCode: res.StatusCode,
153517		},
153518	}
153519	target := &ret
153520	if err := gensupport.DecodeResponse(target, res); err != nil {
153521		return nil, err
153522	}
153523	return ret, nil
153524	// {
153525	//   "description": "Retrieves an aggregated list of subnetworks.",
153526	//   "httpMethod": "GET",
153527	//   "id": "compute.subnetworks.aggregatedList",
153528	//   "parameterOrder": [
153529	//     "project"
153530	//   ],
153531	//   "parameters": {
153532	//     "filter": {
153533	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
153534	//       "location": "query",
153535	//       "type": "string"
153536	//     },
153537	//     "includeAllScopes": {
153538	//       "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.",
153539	//       "location": "query",
153540	//       "type": "boolean"
153541	//     },
153542	//     "maxResults": {
153543	//       "default": "500",
153544	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
153545	//       "format": "uint32",
153546	//       "location": "query",
153547	//       "minimum": "0",
153548	//       "type": "integer"
153549	//     },
153550	//     "orderBy": {
153551	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
153552	//       "location": "query",
153553	//       "type": "string"
153554	//     },
153555	//     "pageToken": {
153556	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
153557	//       "location": "query",
153558	//       "type": "string"
153559	//     },
153560	//     "project": {
153561	//       "description": "Project ID for this request.",
153562	//       "location": "path",
153563	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153564	//       "required": true,
153565	//       "type": "string"
153566	//     }
153567	//   },
153568	//   "path": "{project}/aggregated/subnetworks",
153569	//   "response": {
153570	//     "$ref": "SubnetworkAggregatedList"
153571	//   },
153572	//   "scopes": [
153573	//     "https://www.googleapis.com/auth/cloud-platform",
153574	//     "https://www.googleapis.com/auth/compute",
153575	//     "https://www.googleapis.com/auth/compute.readonly"
153576	//   ]
153577	// }
153578
153579}
153580
153581// Pages invokes f for each page of results.
153582// A non-nil error returned from f will halt the iteration.
153583// The provided context supersedes any context provided to the Context method.
153584func (c *SubnetworksAggregatedListCall) Pages(ctx context.Context, f func(*SubnetworkAggregatedList) error) error {
153585	c.ctx_ = ctx
153586	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
153587	for {
153588		x, err := c.Do()
153589		if err != nil {
153590			return err
153591		}
153592		if err := f(x); err != nil {
153593			return err
153594		}
153595		if x.NextPageToken == "" {
153596			return nil
153597		}
153598		c.PageToken(x.NextPageToken)
153599	}
153600}
153601
153602// method id "compute.subnetworks.delete":
153603
153604type SubnetworksDeleteCall struct {
153605	s          *Service
153606	project    string
153607	region     string
153608	subnetwork string
153609	urlParams_ gensupport.URLParams
153610	ctx_       context.Context
153611	header_    http.Header
153612}
153613
153614// Delete: Deletes the specified subnetwork.
153615func (r *SubnetworksService) Delete(project string, region string, subnetwork string) *SubnetworksDeleteCall {
153616	c := &SubnetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153617	c.project = project
153618	c.region = region
153619	c.subnetwork = subnetwork
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 *SubnetworksDeleteCall) RequestId(requestId string) *SubnetworksDeleteCall {
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 *SubnetworksDeleteCall) Fields(s ...googleapi.Field) *SubnetworksDeleteCall {
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 *SubnetworksDeleteCall) Context(ctx context.Context) *SubnetworksDeleteCall {
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 *SubnetworksDeleteCall) Header() http.Header {
153661	if c.header_ == nil {
153662		c.header_ = make(http.Header)
153663	}
153664	return c.header_
153665}
153666
153667func (c *SubnetworksDeleteCall) 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	c.urlParams_.Set("alt", alt)
153676	c.urlParams_.Set("prettyPrint", "false")
153677	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}")
153678	urls += "?" + c.urlParams_.Encode()
153679	req, err := http.NewRequest("DELETE", urls, body)
153680	if err != nil {
153681		return nil, err
153682	}
153683	req.Header = reqHeaders
153684	googleapi.Expand(req.URL, map[string]string{
153685		"project":    c.project,
153686		"region":     c.region,
153687		"subnetwork": c.subnetwork,
153688	})
153689	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153690}
153691
153692// Do executes the "compute.subnetworks.delete" call.
153693// Exactly one of *Operation or error will be non-nil. Any non-2xx
153694// status code is an error. Response headers are in either
153695// *Operation.ServerResponse.Header or (if a response was returned at
153696// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
153697// to check whether the returned error was because
153698// http.StatusNotModified was returned.
153699func (c *SubnetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
153700	gensupport.SetOptions(c.urlParams_, opts...)
153701	res, err := c.doRequest("json")
153702	if res != nil && res.StatusCode == http.StatusNotModified {
153703		if res.Body != nil {
153704			res.Body.Close()
153705		}
153706		return nil, &googleapi.Error{
153707			Code:   res.StatusCode,
153708			Header: res.Header,
153709		}
153710	}
153711	if err != nil {
153712		return nil, err
153713	}
153714	defer googleapi.CloseBody(res)
153715	if err := googleapi.CheckResponse(res); err != nil {
153716		return nil, err
153717	}
153718	ret := &Operation{
153719		ServerResponse: googleapi.ServerResponse{
153720			Header:         res.Header,
153721			HTTPStatusCode: res.StatusCode,
153722		},
153723	}
153724	target := &ret
153725	if err := gensupport.DecodeResponse(target, res); err != nil {
153726		return nil, err
153727	}
153728	return ret, nil
153729	// {
153730	//   "description": "Deletes the specified subnetwork.",
153731	//   "httpMethod": "DELETE",
153732	//   "id": "compute.subnetworks.delete",
153733	//   "parameterOrder": [
153734	//     "project",
153735	//     "region",
153736	//     "subnetwork"
153737	//   ],
153738	//   "parameters": {
153739	//     "project": {
153740	//       "description": "Project ID for this request.",
153741	//       "location": "path",
153742	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153743	//       "required": true,
153744	//       "type": "string"
153745	//     },
153746	//     "region": {
153747	//       "description": "Name of the region scoping this request.",
153748	//       "location": "path",
153749	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
153750	//       "required": true,
153751	//       "type": "string"
153752	//     },
153753	//     "requestId": {
153754	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
153755	//       "location": "query",
153756	//       "type": "string"
153757	//     },
153758	//     "subnetwork": {
153759	//       "description": "Name of the Subnetwork resource to delete.",
153760	//       "location": "path",
153761	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
153762	//       "required": true,
153763	//       "type": "string"
153764	//     }
153765	//   },
153766	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}",
153767	//   "response": {
153768	//     "$ref": "Operation"
153769	//   },
153770	//   "scopes": [
153771	//     "https://www.googleapis.com/auth/cloud-platform",
153772	//     "https://www.googleapis.com/auth/compute"
153773	//   ]
153774	// }
153775
153776}
153777
153778// method id "compute.subnetworks.expandIpCidrRange":
153779
153780type SubnetworksExpandIpCidrRangeCall struct {
153781	s                                   *Service
153782	project                             string
153783	region                              string
153784	subnetwork                          string
153785	subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest
153786	urlParams_                          gensupport.URLParams
153787	ctx_                                context.Context
153788	header_                             http.Header
153789}
153790
153791// ExpandIpCidrRange: Expands the IP CIDR range of the subnetwork to a
153792// specified value.
153793func (r *SubnetworksService) ExpandIpCidrRange(project string, region string, subnetwork string, subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest) *SubnetworksExpandIpCidrRangeCall {
153794	c := &SubnetworksExpandIpCidrRangeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153795	c.project = project
153796	c.region = region
153797	c.subnetwork = subnetwork
153798	c.subnetworksexpandipcidrrangerequest = subnetworksexpandipcidrrangerequest
153799	return c
153800}
153801
153802// RequestId sets the optional parameter "requestId": An optional
153803// request ID to identify requests. Specify a unique request ID so that
153804// if you must retry your request, the server will know to ignore the
153805// request if it has already been completed.
153806//
153807// For example, consider a situation where you make an initial request
153808// and the request times out. If you make the request again with the
153809// same request ID, the server can check if original operation with the
153810// same request ID was received, and if so, will ignore the second
153811// request. This prevents clients from accidentally creating duplicate
153812// commitments.
153813//
153814// The request ID must be a valid UUID with the exception that zero UUID
153815// is not supported (00000000-0000-0000-0000-000000000000).
153816func (c *SubnetworksExpandIpCidrRangeCall) RequestId(requestId string) *SubnetworksExpandIpCidrRangeCall {
153817	c.urlParams_.Set("requestId", requestId)
153818	return c
153819}
153820
153821// Fields allows partial responses to be retrieved. See
153822// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153823// for more information.
153824func (c *SubnetworksExpandIpCidrRangeCall) Fields(s ...googleapi.Field) *SubnetworksExpandIpCidrRangeCall {
153825	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153826	return c
153827}
153828
153829// Context sets the context to be used in this call's Do method. Any
153830// pending HTTP request will be aborted if the provided context is
153831// canceled.
153832func (c *SubnetworksExpandIpCidrRangeCall) Context(ctx context.Context) *SubnetworksExpandIpCidrRangeCall {
153833	c.ctx_ = ctx
153834	return c
153835}
153836
153837// Header returns an http.Header that can be modified by the caller to
153838// add HTTP headers to the request.
153839func (c *SubnetworksExpandIpCidrRangeCall) Header() http.Header {
153840	if c.header_ == nil {
153841		c.header_ = make(http.Header)
153842	}
153843	return c.header_
153844}
153845
153846func (c *SubnetworksExpandIpCidrRangeCall) doRequest(alt string) (*http.Response, error) {
153847	reqHeaders := make(http.Header)
153848	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
153849	for k, v := range c.header_ {
153850		reqHeaders[k] = v
153851	}
153852	reqHeaders.Set("User-Agent", c.s.userAgent())
153853	var body io.Reader = nil
153854	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworksexpandipcidrrangerequest)
153855	if err != nil {
153856		return nil, err
153857	}
153858	reqHeaders.Set("Content-Type", "application/json")
153859	c.urlParams_.Set("alt", alt)
153860	c.urlParams_.Set("prettyPrint", "false")
153861	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange")
153862	urls += "?" + c.urlParams_.Encode()
153863	req, err := http.NewRequest("POST", urls, body)
153864	if err != nil {
153865		return nil, err
153866	}
153867	req.Header = reqHeaders
153868	googleapi.Expand(req.URL, map[string]string{
153869		"project":    c.project,
153870		"region":     c.region,
153871		"subnetwork": c.subnetwork,
153872	})
153873	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153874}
153875
153876// Do executes the "compute.subnetworks.expandIpCidrRange" call.
153877// Exactly one of *Operation or error will be non-nil. Any non-2xx
153878// status code is an error. Response headers are in either
153879// *Operation.ServerResponse.Header or (if a response was returned at
153880// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
153881// to check whether the returned error was because
153882// http.StatusNotModified was returned.
153883func (c *SubnetworksExpandIpCidrRangeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
153884	gensupport.SetOptions(c.urlParams_, opts...)
153885	res, err := c.doRequest("json")
153886	if res != nil && res.StatusCode == http.StatusNotModified {
153887		if res.Body != nil {
153888			res.Body.Close()
153889		}
153890		return nil, &googleapi.Error{
153891			Code:   res.StatusCode,
153892			Header: res.Header,
153893		}
153894	}
153895	if err != nil {
153896		return nil, err
153897	}
153898	defer googleapi.CloseBody(res)
153899	if err := googleapi.CheckResponse(res); err != nil {
153900		return nil, err
153901	}
153902	ret := &Operation{
153903		ServerResponse: googleapi.ServerResponse{
153904			Header:         res.Header,
153905			HTTPStatusCode: res.StatusCode,
153906		},
153907	}
153908	target := &ret
153909	if err := gensupport.DecodeResponse(target, res); err != nil {
153910		return nil, err
153911	}
153912	return ret, nil
153913	// {
153914	//   "description": "Expands the IP CIDR range of the subnetwork to a specified value.",
153915	//   "httpMethod": "POST",
153916	//   "id": "compute.subnetworks.expandIpCidrRange",
153917	//   "parameterOrder": [
153918	//     "project",
153919	//     "region",
153920	//     "subnetwork"
153921	//   ],
153922	//   "parameters": {
153923	//     "project": {
153924	//       "description": "Project ID for this request.",
153925	//       "location": "path",
153926	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153927	//       "required": true,
153928	//       "type": "string"
153929	//     },
153930	//     "region": {
153931	//       "description": "Name of the region scoping this request.",
153932	//       "location": "path",
153933	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
153934	//       "required": true,
153935	//       "type": "string"
153936	//     },
153937	//     "requestId": {
153938	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
153939	//       "location": "query",
153940	//       "type": "string"
153941	//     },
153942	//     "subnetwork": {
153943	//       "description": "Name of the Subnetwork resource to update.",
153944	//       "location": "path",
153945	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
153946	//       "required": true,
153947	//       "type": "string"
153948	//     }
153949	//   },
153950	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange",
153951	//   "request": {
153952	//     "$ref": "SubnetworksExpandIpCidrRangeRequest"
153953	//   },
153954	//   "response": {
153955	//     "$ref": "Operation"
153956	//   },
153957	//   "scopes": [
153958	//     "https://www.googleapis.com/auth/cloud-platform",
153959	//     "https://www.googleapis.com/auth/compute"
153960	//   ]
153961	// }
153962
153963}
153964
153965// method id "compute.subnetworks.get":
153966
153967type SubnetworksGetCall struct {
153968	s            *Service
153969	project      string
153970	region       string
153971	subnetwork   string
153972	urlParams_   gensupport.URLParams
153973	ifNoneMatch_ string
153974	ctx_         context.Context
153975	header_      http.Header
153976}
153977
153978// Get: Returns the specified subnetwork. Gets a list of available
153979// subnetworks list() request.
153980func (r *SubnetworksService) Get(project string, region string, subnetwork string) *SubnetworksGetCall {
153981	c := &SubnetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153982	c.project = project
153983	c.region = region
153984	c.subnetwork = subnetwork
153985	return c
153986}
153987
153988// Fields allows partial responses to be retrieved. See
153989// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153990// for more information.
153991func (c *SubnetworksGetCall) Fields(s ...googleapi.Field) *SubnetworksGetCall {
153992	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153993	return c
153994}
153995
153996// IfNoneMatch sets the optional parameter which makes the operation
153997// fail if the object's ETag matches the given value. This is useful for
153998// getting updates only after the object has changed since the last
153999// request. Use googleapi.IsNotModified to check whether the response
154000// error from Do is the result of In-None-Match.
154001func (c *SubnetworksGetCall) IfNoneMatch(entityTag string) *SubnetworksGetCall {
154002	c.ifNoneMatch_ = entityTag
154003	return c
154004}
154005
154006// Context sets the context to be used in this call's Do method. Any
154007// pending HTTP request will be aborted if the provided context is
154008// canceled.
154009func (c *SubnetworksGetCall) Context(ctx context.Context) *SubnetworksGetCall {
154010	c.ctx_ = ctx
154011	return c
154012}
154013
154014// Header returns an http.Header that can be modified by the caller to
154015// add HTTP headers to the request.
154016func (c *SubnetworksGetCall) Header() http.Header {
154017	if c.header_ == nil {
154018		c.header_ = make(http.Header)
154019	}
154020	return c.header_
154021}
154022
154023func (c *SubnetworksGetCall) doRequest(alt string) (*http.Response, error) {
154024	reqHeaders := make(http.Header)
154025	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
154026	for k, v := range c.header_ {
154027		reqHeaders[k] = v
154028	}
154029	reqHeaders.Set("User-Agent", c.s.userAgent())
154030	if c.ifNoneMatch_ != "" {
154031		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
154032	}
154033	var body io.Reader = nil
154034	c.urlParams_.Set("alt", alt)
154035	c.urlParams_.Set("prettyPrint", "false")
154036	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}")
154037	urls += "?" + c.urlParams_.Encode()
154038	req, err := http.NewRequest("GET", urls, body)
154039	if err != nil {
154040		return nil, err
154041	}
154042	req.Header = reqHeaders
154043	googleapi.Expand(req.URL, map[string]string{
154044		"project":    c.project,
154045		"region":     c.region,
154046		"subnetwork": c.subnetwork,
154047	})
154048	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154049}
154050
154051// Do executes the "compute.subnetworks.get" call.
154052// Exactly one of *Subnetwork or error will be non-nil. Any non-2xx
154053// status code is an error. Response headers are in either
154054// *Subnetwork.ServerResponse.Header or (if a response was returned at
154055// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154056// to check whether the returned error was because
154057// http.StatusNotModified was returned.
154058func (c *SubnetworksGetCall) Do(opts ...googleapi.CallOption) (*Subnetwork, error) {
154059	gensupport.SetOptions(c.urlParams_, opts...)
154060	res, err := c.doRequest("json")
154061	if res != nil && res.StatusCode == http.StatusNotModified {
154062		if res.Body != nil {
154063			res.Body.Close()
154064		}
154065		return nil, &googleapi.Error{
154066			Code:   res.StatusCode,
154067			Header: res.Header,
154068		}
154069	}
154070	if err != nil {
154071		return nil, err
154072	}
154073	defer googleapi.CloseBody(res)
154074	if err := googleapi.CheckResponse(res); err != nil {
154075		return nil, err
154076	}
154077	ret := &Subnetwork{
154078		ServerResponse: googleapi.ServerResponse{
154079			Header:         res.Header,
154080			HTTPStatusCode: res.StatusCode,
154081		},
154082	}
154083	target := &ret
154084	if err := gensupport.DecodeResponse(target, res); err != nil {
154085		return nil, err
154086	}
154087	return ret, nil
154088	// {
154089	//   "description": "Returns the specified subnetwork. Gets a list of available subnetworks list() request.",
154090	//   "httpMethod": "GET",
154091	//   "id": "compute.subnetworks.get",
154092	//   "parameterOrder": [
154093	//     "project",
154094	//     "region",
154095	//     "subnetwork"
154096	//   ],
154097	//   "parameters": {
154098	//     "project": {
154099	//       "description": "Project ID for this request.",
154100	//       "location": "path",
154101	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154102	//       "required": true,
154103	//       "type": "string"
154104	//     },
154105	//     "region": {
154106	//       "description": "Name of the region scoping this request.",
154107	//       "location": "path",
154108	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
154109	//       "required": true,
154110	//       "type": "string"
154111	//     },
154112	//     "subnetwork": {
154113	//       "description": "Name of the Subnetwork resource to return.",
154114	//       "location": "path",
154115	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154116	//       "required": true,
154117	//       "type": "string"
154118	//     }
154119	//   },
154120	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}",
154121	//   "response": {
154122	//     "$ref": "Subnetwork"
154123	//   },
154124	//   "scopes": [
154125	//     "https://www.googleapis.com/auth/cloud-platform",
154126	//     "https://www.googleapis.com/auth/compute",
154127	//     "https://www.googleapis.com/auth/compute.readonly"
154128	//   ]
154129	// }
154130
154131}
154132
154133// method id "compute.subnetworks.getIamPolicy":
154134
154135type SubnetworksGetIamPolicyCall struct {
154136	s            *Service
154137	project      string
154138	region       string
154139	resource     string
154140	urlParams_   gensupport.URLParams
154141	ifNoneMatch_ string
154142	ctx_         context.Context
154143	header_      http.Header
154144}
154145
154146// GetIamPolicy: Gets the access control policy for a resource. May be
154147// empty if no such policy or resource exists.
154148func (r *SubnetworksService) GetIamPolicy(project string, region string, resource string) *SubnetworksGetIamPolicyCall {
154149	c := &SubnetworksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154150	c.project = project
154151	c.region = region
154152	c.resource = resource
154153	return c
154154}
154155
154156// OptionsRequestedPolicyVersion sets the optional parameter
154157// "optionsRequestedPolicyVersion": Requested IAM Policy version.
154158func (c *SubnetworksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *SubnetworksGetIamPolicyCall {
154159	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
154160	return c
154161}
154162
154163// Fields allows partial responses to be retrieved. See
154164// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154165// for more information.
154166func (c *SubnetworksGetIamPolicyCall) Fields(s ...googleapi.Field) *SubnetworksGetIamPolicyCall {
154167	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154168	return c
154169}
154170
154171// IfNoneMatch sets the optional parameter which makes the operation
154172// fail if the object's ETag matches the given value. This is useful for
154173// getting updates only after the object has changed since the last
154174// request. Use googleapi.IsNotModified to check whether the response
154175// error from Do is the result of In-None-Match.
154176func (c *SubnetworksGetIamPolicyCall) IfNoneMatch(entityTag string) *SubnetworksGetIamPolicyCall {
154177	c.ifNoneMatch_ = entityTag
154178	return c
154179}
154180
154181// Context sets the context to be used in this call's Do method. Any
154182// pending HTTP request will be aborted if the provided context is
154183// canceled.
154184func (c *SubnetworksGetIamPolicyCall) Context(ctx context.Context) *SubnetworksGetIamPolicyCall {
154185	c.ctx_ = ctx
154186	return c
154187}
154188
154189// Header returns an http.Header that can be modified by the caller to
154190// add HTTP headers to the request.
154191func (c *SubnetworksGetIamPolicyCall) Header() http.Header {
154192	if c.header_ == nil {
154193		c.header_ = make(http.Header)
154194	}
154195	return c.header_
154196}
154197
154198func (c *SubnetworksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
154199	reqHeaders := make(http.Header)
154200	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
154201	for k, v := range c.header_ {
154202		reqHeaders[k] = v
154203	}
154204	reqHeaders.Set("User-Agent", c.s.userAgent())
154205	if c.ifNoneMatch_ != "" {
154206		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
154207	}
154208	var body io.Reader = nil
154209	c.urlParams_.Set("alt", alt)
154210	c.urlParams_.Set("prettyPrint", "false")
154211	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{resource}/getIamPolicy")
154212	urls += "?" + c.urlParams_.Encode()
154213	req, err := http.NewRequest("GET", urls, body)
154214	if err != nil {
154215		return nil, err
154216	}
154217	req.Header = reqHeaders
154218	googleapi.Expand(req.URL, map[string]string{
154219		"project":  c.project,
154220		"region":   c.region,
154221		"resource": c.resource,
154222	})
154223	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154224}
154225
154226// Do executes the "compute.subnetworks.getIamPolicy" call.
154227// Exactly one of *Policy or error will be non-nil. Any non-2xx status
154228// code is an error. Response headers are in either
154229// *Policy.ServerResponse.Header or (if a response was returned at all)
154230// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
154231// check whether the returned error was because http.StatusNotModified
154232// was returned.
154233func (c *SubnetworksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
154234	gensupport.SetOptions(c.urlParams_, opts...)
154235	res, err := c.doRequest("json")
154236	if res != nil && res.StatusCode == http.StatusNotModified {
154237		if res.Body != nil {
154238			res.Body.Close()
154239		}
154240		return nil, &googleapi.Error{
154241			Code:   res.StatusCode,
154242			Header: res.Header,
154243		}
154244	}
154245	if err != nil {
154246		return nil, err
154247	}
154248	defer googleapi.CloseBody(res)
154249	if err := googleapi.CheckResponse(res); err != nil {
154250		return nil, err
154251	}
154252	ret := &Policy{
154253		ServerResponse: googleapi.ServerResponse{
154254			Header:         res.Header,
154255			HTTPStatusCode: res.StatusCode,
154256		},
154257	}
154258	target := &ret
154259	if err := gensupport.DecodeResponse(target, res); err != nil {
154260		return nil, err
154261	}
154262	return ret, nil
154263	// {
154264	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
154265	//   "httpMethod": "GET",
154266	//   "id": "compute.subnetworks.getIamPolicy",
154267	//   "parameterOrder": [
154268	//     "project",
154269	//     "region",
154270	//     "resource"
154271	//   ],
154272	//   "parameters": {
154273	//     "optionsRequestedPolicyVersion": {
154274	//       "description": "Requested IAM Policy version.",
154275	//       "format": "int32",
154276	//       "location": "query",
154277	//       "type": "integer"
154278	//     },
154279	//     "project": {
154280	//       "description": "Project ID for this request.",
154281	//       "location": "path",
154282	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154283	//       "required": true,
154284	//       "type": "string"
154285	//     },
154286	//     "region": {
154287	//       "description": "The name of the region for this request.",
154288	//       "location": "path",
154289	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
154290	//       "required": true,
154291	//       "type": "string"
154292	//     },
154293	//     "resource": {
154294	//       "description": "Name or id of the resource for this request.",
154295	//       "location": "path",
154296	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154297	//       "required": true,
154298	//       "type": "string"
154299	//     }
154300	//   },
154301	//   "path": "{project}/regions/{region}/subnetworks/{resource}/getIamPolicy",
154302	//   "response": {
154303	//     "$ref": "Policy"
154304	//   },
154305	//   "scopes": [
154306	//     "https://www.googleapis.com/auth/cloud-platform",
154307	//     "https://www.googleapis.com/auth/compute",
154308	//     "https://www.googleapis.com/auth/compute.readonly"
154309	//   ]
154310	// }
154311
154312}
154313
154314// method id "compute.subnetworks.insert":
154315
154316type SubnetworksInsertCall struct {
154317	s          *Service
154318	project    string
154319	region     string
154320	subnetwork *Subnetwork
154321	urlParams_ gensupport.URLParams
154322	ctx_       context.Context
154323	header_    http.Header
154324}
154325
154326// Insert: Creates a subnetwork in the specified project using the data
154327// included in the request.
154328func (r *SubnetworksService) Insert(project string, region string, subnetwork *Subnetwork) *SubnetworksInsertCall {
154329	c := &SubnetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154330	c.project = project
154331	c.region = region
154332	c.subnetwork = subnetwork
154333	return c
154334}
154335
154336// RequestId sets the optional parameter "requestId": An optional
154337// request ID to identify requests. Specify a unique request ID so that
154338// if you must retry your request, the server will know to ignore the
154339// request if it has already been completed.
154340//
154341// For example, consider a situation where you make an initial request
154342// and the request times out. If you make the request again with the
154343// same request ID, the server can check if original operation with the
154344// same request ID was received, and if so, will ignore the second
154345// request. This prevents clients from accidentally creating duplicate
154346// commitments.
154347//
154348// The request ID must be a valid UUID with the exception that zero UUID
154349// is not supported (00000000-0000-0000-0000-000000000000).
154350func (c *SubnetworksInsertCall) RequestId(requestId string) *SubnetworksInsertCall {
154351	c.urlParams_.Set("requestId", requestId)
154352	return c
154353}
154354
154355// Fields allows partial responses to be retrieved. See
154356// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154357// for more information.
154358func (c *SubnetworksInsertCall) Fields(s ...googleapi.Field) *SubnetworksInsertCall {
154359	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154360	return c
154361}
154362
154363// Context sets the context to be used in this call's Do method. Any
154364// pending HTTP request will be aborted if the provided context is
154365// canceled.
154366func (c *SubnetworksInsertCall) Context(ctx context.Context) *SubnetworksInsertCall {
154367	c.ctx_ = ctx
154368	return c
154369}
154370
154371// Header returns an http.Header that can be modified by the caller to
154372// add HTTP headers to the request.
154373func (c *SubnetworksInsertCall) Header() http.Header {
154374	if c.header_ == nil {
154375		c.header_ = make(http.Header)
154376	}
154377	return c.header_
154378}
154379
154380func (c *SubnetworksInsertCall) doRequest(alt string) (*http.Response, error) {
154381	reqHeaders := make(http.Header)
154382	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
154383	for k, v := range c.header_ {
154384		reqHeaders[k] = v
154385	}
154386	reqHeaders.Set("User-Agent", c.s.userAgent())
154387	var body io.Reader = nil
154388	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork)
154389	if err != nil {
154390		return nil, err
154391	}
154392	reqHeaders.Set("Content-Type", "application/json")
154393	c.urlParams_.Set("alt", alt)
154394	c.urlParams_.Set("prettyPrint", "false")
154395	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks")
154396	urls += "?" + c.urlParams_.Encode()
154397	req, err := http.NewRequest("POST", urls, body)
154398	if err != nil {
154399		return nil, err
154400	}
154401	req.Header = reqHeaders
154402	googleapi.Expand(req.URL, map[string]string{
154403		"project": c.project,
154404		"region":  c.region,
154405	})
154406	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154407}
154408
154409// Do executes the "compute.subnetworks.insert" call.
154410// Exactly one of *Operation or error will be non-nil. Any non-2xx
154411// status code is an error. Response headers are in either
154412// *Operation.ServerResponse.Header or (if a response was returned at
154413// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154414// to check whether the returned error was because
154415// http.StatusNotModified was returned.
154416func (c *SubnetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154417	gensupport.SetOptions(c.urlParams_, opts...)
154418	res, err := c.doRequest("json")
154419	if res != nil && res.StatusCode == http.StatusNotModified {
154420		if res.Body != nil {
154421			res.Body.Close()
154422		}
154423		return nil, &googleapi.Error{
154424			Code:   res.StatusCode,
154425			Header: res.Header,
154426		}
154427	}
154428	if err != nil {
154429		return nil, err
154430	}
154431	defer googleapi.CloseBody(res)
154432	if err := googleapi.CheckResponse(res); err != nil {
154433		return nil, err
154434	}
154435	ret := &Operation{
154436		ServerResponse: googleapi.ServerResponse{
154437			Header:         res.Header,
154438			HTTPStatusCode: res.StatusCode,
154439		},
154440	}
154441	target := &ret
154442	if err := gensupport.DecodeResponse(target, res); err != nil {
154443		return nil, err
154444	}
154445	return ret, nil
154446	// {
154447	//   "description": "Creates a subnetwork in the specified project using the data included in the request.",
154448	//   "httpMethod": "POST",
154449	//   "id": "compute.subnetworks.insert",
154450	//   "parameterOrder": [
154451	//     "project",
154452	//     "region"
154453	//   ],
154454	//   "parameters": {
154455	//     "project": {
154456	//       "description": "Project ID for this request.",
154457	//       "location": "path",
154458	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154459	//       "required": true,
154460	//       "type": "string"
154461	//     },
154462	//     "region": {
154463	//       "description": "Name of the region scoping this request.",
154464	//       "location": "path",
154465	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
154466	//       "required": true,
154467	//       "type": "string"
154468	//     },
154469	//     "requestId": {
154470	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
154471	//       "location": "query",
154472	//       "type": "string"
154473	//     }
154474	//   },
154475	//   "path": "{project}/regions/{region}/subnetworks",
154476	//   "request": {
154477	//     "$ref": "Subnetwork"
154478	//   },
154479	//   "response": {
154480	//     "$ref": "Operation"
154481	//   },
154482	//   "scopes": [
154483	//     "https://www.googleapis.com/auth/cloud-platform",
154484	//     "https://www.googleapis.com/auth/compute"
154485	//   ]
154486	// }
154487
154488}
154489
154490// method id "compute.subnetworks.list":
154491
154492type SubnetworksListCall struct {
154493	s            *Service
154494	project      string
154495	region       string
154496	urlParams_   gensupport.URLParams
154497	ifNoneMatch_ string
154498	ctx_         context.Context
154499	header_      http.Header
154500}
154501
154502// List: Retrieves a list of subnetworks available to the specified
154503// project.
154504func (r *SubnetworksService) List(project string, region string) *SubnetworksListCall {
154505	c := &SubnetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154506	c.project = project
154507	c.region = region
154508	return c
154509}
154510
154511// Filter sets the optional parameter "filter": A filter expression that
154512// filters resources listed in the response. The expression must specify
154513// the field name, a comparison operator, and the value that you want to
154514// use for filtering. The value must be a string, a number, or a
154515// boolean. The comparison operator must be either =, !=, >, or <.
154516//
154517// For example, if you are filtering Compute Engine instances, you can
154518// exclude instances named example-instance by specifying name !=
154519// example-instance.
154520//
154521// You can also filter nested fields. For example, you could specify
154522// scheduling.automaticRestart = false to include instances only if they
154523// are not scheduled for automatic restarts. You can use filtering on
154524// nested fields to filter based on resource labels.
154525//
154526// To filter on multiple expressions, provide each separate expression
154527// within parentheses. For example, (scheduling.automaticRestart = true)
154528// (cpuPlatform = "Intel Skylake"). By default, each expression is an
154529// AND expression. However, you can include AND and OR expressions
154530// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
154531// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
154532// true).
154533func (c *SubnetworksListCall) Filter(filter string) *SubnetworksListCall {
154534	c.urlParams_.Set("filter", filter)
154535	return c
154536}
154537
154538// MaxResults sets the optional parameter "maxResults": The maximum
154539// number of results per page that should be returned. If the number of
154540// available results is larger than maxResults, Compute Engine returns a
154541// nextPageToken that can be used to get the next page of results in
154542// subsequent list requests. Acceptable values are 0 to 500, inclusive.
154543// (Default: 500)
154544func (c *SubnetworksListCall) MaxResults(maxResults int64) *SubnetworksListCall {
154545	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
154546	return c
154547}
154548
154549// OrderBy sets the optional parameter "orderBy": Sorts list results by
154550// a certain order. By default, results are returned in alphanumerical
154551// order based on the resource name.
154552//
154553// You can also sort results in descending order based on the creation
154554// timestamp using orderBy="creationTimestamp desc". This sorts results
154555// based on the creationTimestamp field in reverse chronological order
154556// (newest result first). Use this to sort resources like operations so
154557// that the newest operation is returned first.
154558//
154559// Currently, only sorting by name or creationTimestamp desc is
154560// supported.
154561func (c *SubnetworksListCall) OrderBy(orderBy string) *SubnetworksListCall {
154562	c.urlParams_.Set("orderBy", orderBy)
154563	return c
154564}
154565
154566// PageToken sets the optional parameter "pageToken": Specifies a page
154567// token to use. Set pageToken to the nextPageToken returned by a
154568// previous list request to get the next page of results.
154569func (c *SubnetworksListCall) PageToken(pageToken string) *SubnetworksListCall {
154570	c.urlParams_.Set("pageToken", pageToken)
154571	return c
154572}
154573
154574// Fields allows partial responses to be retrieved. See
154575// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154576// for more information.
154577func (c *SubnetworksListCall) Fields(s ...googleapi.Field) *SubnetworksListCall {
154578	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154579	return c
154580}
154581
154582// IfNoneMatch sets the optional parameter which makes the operation
154583// fail if the object's ETag matches the given value. This is useful for
154584// getting updates only after the object has changed since the last
154585// request. Use googleapi.IsNotModified to check whether the response
154586// error from Do is the result of In-None-Match.
154587func (c *SubnetworksListCall) IfNoneMatch(entityTag string) *SubnetworksListCall {
154588	c.ifNoneMatch_ = entityTag
154589	return c
154590}
154591
154592// Context sets the context to be used in this call's Do method. Any
154593// pending HTTP request will be aborted if the provided context is
154594// canceled.
154595func (c *SubnetworksListCall) Context(ctx context.Context) *SubnetworksListCall {
154596	c.ctx_ = ctx
154597	return c
154598}
154599
154600// Header returns an http.Header that can be modified by the caller to
154601// add HTTP headers to the request.
154602func (c *SubnetworksListCall) Header() http.Header {
154603	if c.header_ == nil {
154604		c.header_ = make(http.Header)
154605	}
154606	return c.header_
154607}
154608
154609func (c *SubnetworksListCall) doRequest(alt string) (*http.Response, error) {
154610	reqHeaders := make(http.Header)
154611	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
154612	for k, v := range c.header_ {
154613		reqHeaders[k] = v
154614	}
154615	reqHeaders.Set("User-Agent", c.s.userAgent())
154616	if c.ifNoneMatch_ != "" {
154617		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
154618	}
154619	var body io.Reader = nil
154620	c.urlParams_.Set("alt", alt)
154621	c.urlParams_.Set("prettyPrint", "false")
154622	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks")
154623	urls += "?" + c.urlParams_.Encode()
154624	req, err := http.NewRequest("GET", urls, body)
154625	if err != nil {
154626		return nil, err
154627	}
154628	req.Header = reqHeaders
154629	googleapi.Expand(req.URL, map[string]string{
154630		"project": c.project,
154631		"region":  c.region,
154632	})
154633	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154634}
154635
154636// Do executes the "compute.subnetworks.list" call.
154637// Exactly one of *SubnetworkList or error will be non-nil. Any non-2xx
154638// status code is an error. Response headers are in either
154639// *SubnetworkList.ServerResponse.Header or (if a response was returned
154640// at all) in error.(*googleapi.Error).Header. Use
154641// googleapi.IsNotModified to check whether the returned error was
154642// because http.StatusNotModified was returned.
154643func (c *SubnetworksListCall) Do(opts ...googleapi.CallOption) (*SubnetworkList, error) {
154644	gensupport.SetOptions(c.urlParams_, opts...)
154645	res, err := c.doRequest("json")
154646	if res != nil && res.StatusCode == http.StatusNotModified {
154647		if res.Body != nil {
154648			res.Body.Close()
154649		}
154650		return nil, &googleapi.Error{
154651			Code:   res.StatusCode,
154652			Header: res.Header,
154653		}
154654	}
154655	if err != nil {
154656		return nil, err
154657	}
154658	defer googleapi.CloseBody(res)
154659	if err := googleapi.CheckResponse(res); err != nil {
154660		return nil, err
154661	}
154662	ret := &SubnetworkList{
154663		ServerResponse: googleapi.ServerResponse{
154664			Header:         res.Header,
154665			HTTPStatusCode: res.StatusCode,
154666		},
154667	}
154668	target := &ret
154669	if err := gensupport.DecodeResponse(target, res); err != nil {
154670		return nil, err
154671	}
154672	return ret, nil
154673	// {
154674	//   "description": "Retrieves a list of subnetworks available to the specified project.",
154675	//   "httpMethod": "GET",
154676	//   "id": "compute.subnetworks.list",
154677	//   "parameterOrder": [
154678	//     "project",
154679	//     "region"
154680	//   ],
154681	//   "parameters": {
154682	//     "filter": {
154683	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
154684	//       "location": "query",
154685	//       "type": "string"
154686	//     },
154687	//     "maxResults": {
154688	//       "default": "500",
154689	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
154690	//       "format": "uint32",
154691	//       "location": "query",
154692	//       "minimum": "0",
154693	//       "type": "integer"
154694	//     },
154695	//     "orderBy": {
154696	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
154697	//       "location": "query",
154698	//       "type": "string"
154699	//     },
154700	//     "pageToken": {
154701	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
154702	//       "location": "query",
154703	//       "type": "string"
154704	//     },
154705	//     "project": {
154706	//       "description": "Project ID for this request.",
154707	//       "location": "path",
154708	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154709	//       "required": true,
154710	//       "type": "string"
154711	//     },
154712	//     "region": {
154713	//       "description": "Name of the region scoping this request.",
154714	//       "location": "path",
154715	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
154716	//       "required": true,
154717	//       "type": "string"
154718	//     }
154719	//   },
154720	//   "path": "{project}/regions/{region}/subnetworks",
154721	//   "response": {
154722	//     "$ref": "SubnetworkList"
154723	//   },
154724	//   "scopes": [
154725	//     "https://www.googleapis.com/auth/cloud-platform",
154726	//     "https://www.googleapis.com/auth/compute",
154727	//     "https://www.googleapis.com/auth/compute.readonly"
154728	//   ]
154729	// }
154730
154731}
154732
154733// Pages invokes f for each page of results.
154734// A non-nil error returned from f will halt the iteration.
154735// The provided context supersedes any context provided to the Context method.
154736func (c *SubnetworksListCall) Pages(ctx context.Context, f func(*SubnetworkList) error) error {
154737	c.ctx_ = ctx
154738	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
154739	for {
154740		x, err := c.Do()
154741		if err != nil {
154742			return err
154743		}
154744		if err := f(x); err != nil {
154745			return err
154746		}
154747		if x.NextPageToken == "" {
154748			return nil
154749		}
154750		c.PageToken(x.NextPageToken)
154751	}
154752}
154753
154754// method id "compute.subnetworks.listUsable":
154755
154756type SubnetworksListUsableCall struct {
154757	s            *Service
154758	project      string
154759	urlParams_   gensupport.URLParams
154760	ifNoneMatch_ string
154761	ctx_         context.Context
154762	header_      http.Header
154763}
154764
154765// ListUsable: Retrieves an aggregated list of all usable subnetworks in
154766// the project. The list contains all of the subnetworks in the project
154767// and the subnetworks that were shared by a Shared VPC host project.
154768func (r *SubnetworksService) ListUsable(project string) *SubnetworksListUsableCall {
154769	c := &SubnetworksListUsableCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154770	c.project = project
154771	return c
154772}
154773
154774// Filter sets the optional parameter "filter": A filter expression that
154775// filters resources listed in the response. The expression must specify
154776// the field name, a comparison operator, and the value that you want to
154777// use for filtering. The value must be a string, a number, or a
154778// boolean. The comparison operator must be either =, !=, >, or <.
154779//
154780// For example, if you are filtering Compute Engine instances, you can
154781// exclude instances named example-instance by specifying name !=
154782// example-instance.
154783//
154784// You can also filter nested fields. For example, you could specify
154785// scheduling.automaticRestart = false to include instances only if they
154786// are not scheduled for automatic restarts. You can use filtering on
154787// nested fields to filter based on resource labels.
154788//
154789// To filter on multiple expressions, provide each separate expression
154790// within parentheses. For example, (scheduling.automaticRestart = true)
154791// (cpuPlatform = "Intel Skylake"). By default, each expression is an
154792// AND expression. However, you can include AND and OR expressions
154793// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
154794// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
154795// true).
154796func (c *SubnetworksListUsableCall) Filter(filter string) *SubnetworksListUsableCall {
154797	c.urlParams_.Set("filter", filter)
154798	return c
154799}
154800
154801// MaxResults sets the optional parameter "maxResults": The maximum
154802// number of results per page that should be returned. If the number of
154803// available results is larger than maxResults, Compute Engine returns a
154804// nextPageToken that can be used to get the next page of results in
154805// subsequent list requests. Acceptable values are 0 to 500, inclusive.
154806// (Default: 500)
154807func (c *SubnetworksListUsableCall) MaxResults(maxResults int64) *SubnetworksListUsableCall {
154808	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
154809	return c
154810}
154811
154812// OrderBy sets the optional parameter "orderBy": Sorts list results by
154813// a certain order. By default, results are returned in alphanumerical
154814// order based on the resource name.
154815//
154816// You can also sort results in descending order based on the creation
154817// timestamp using orderBy="creationTimestamp desc". This sorts results
154818// based on the creationTimestamp field in reverse chronological order
154819// (newest result first). Use this to sort resources like operations so
154820// that the newest operation is returned first.
154821//
154822// Currently, only sorting by name or creationTimestamp desc is
154823// supported.
154824func (c *SubnetworksListUsableCall) OrderBy(orderBy string) *SubnetworksListUsableCall {
154825	c.urlParams_.Set("orderBy", orderBy)
154826	return c
154827}
154828
154829// PageToken sets the optional parameter "pageToken": Specifies a page
154830// token to use. Set pageToken to the nextPageToken returned by a
154831// previous list request to get the next page of results.
154832func (c *SubnetworksListUsableCall) PageToken(pageToken string) *SubnetworksListUsableCall {
154833	c.urlParams_.Set("pageToken", pageToken)
154834	return c
154835}
154836
154837// Fields allows partial responses to be retrieved. See
154838// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154839// for more information.
154840func (c *SubnetworksListUsableCall) Fields(s ...googleapi.Field) *SubnetworksListUsableCall {
154841	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154842	return c
154843}
154844
154845// IfNoneMatch sets the optional parameter which makes the operation
154846// fail if the object's ETag matches the given value. This is useful for
154847// getting updates only after the object has changed since the last
154848// request. Use googleapi.IsNotModified to check whether the response
154849// error from Do is the result of In-None-Match.
154850func (c *SubnetworksListUsableCall) IfNoneMatch(entityTag string) *SubnetworksListUsableCall {
154851	c.ifNoneMatch_ = entityTag
154852	return c
154853}
154854
154855// Context sets the context to be used in this call's Do method. Any
154856// pending HTTP request will be aborted if the provided context is
154857// canceled.
154858func (c *SubnetworksListUsableCall) Context(ctx context.Context) *SubnetworksListUsableCall {
154859	c.ctx_ = ctx
154860	return c
154861}
154862
154863// Header returns an http.Header that can be modified by the caller to
154864// add HTTP headers to the request.
154865func (c *SubnetworksListUsableCall) Header() http.Header {
154866	if c.header_ == nil {
154867		c.header_ = make(http.Header)
154868	}
154869	return c.header_
154870}
154871
154872func (c *SubnetworksListUsableCall) doRequest(alt string) (*http.Response, error) {
154873	reqHeaders := make(http.Header)
154874	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
154875	for k, v := range c.header_ {
154876		reqHeaders[k] = v
154877	}
154878	reqHeaders.Set("User-Agent", c.s.userAgent())
154879	if c.ifNoneMatch_ != "" {
154880		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
154881	}
154882	var body io.Reader = nil
154883	c.urlParams_.Set("alt", alt)
154884	c.urlParams_.Set("prettyPrint", "false")
154885	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/subnetworks/listUsable")
154886	urls += "?" + c.urlParams_.Encode()
154887	req, err := http.NewRequest("GET", urls, body)
154888	if err != nil {
154889		return nil, err
154890	}
154891	req.Header = reqHeaders
154892	googleapi.Expand(req.URL, map[string]string{
154893		"project": c.project,
154894	})
154895	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154896}
154897
154898// Do executes the "compute.subnetworks.listUsable" call.
154899// Exactly one of *UsableSubnetworksAggregatedList or error will be
154900// non-nil. Any non-2xx status code is an error. Response headers are in
154901// either *UsableSubnetworksAggregatedList.ServerResponse.Header or (if
154902// a response was returned at all) in error.(*googleapi.Error).Header.
154903// Use googleapi.IsNotModified to check whether the returned error was
154904// because http.StatusNotModified was returned.
154905func (c *SubnetworksListUsableCall) Do(opts ...googleapi.CallOption) (*UsableSubnetworksAggregatedList, error) {
154906	gensupport.SetOptions(c.urlParams_, opts...)
154907	res, err := c.doRequest("json")
154908	if res != nil && res.StatusCode == http.StatusNotModified {
154909		if res.Body != nil {
154910			res.Body.Close()
154911		}
154912		return nil, &googleapi.Error{
154913			Code:   res.StatusCode,
154914			Header: res.Header,
154915		}
154916	}
154917	if err != nil {
154918		return nil, err
154919	}
154920	defer googleapi.CloseBody(res)
154921	if err := googleapi.CheckResponse(res); err != nil {
154922		return nil, err
154923	}
154924	ret := &UsableSubnetworksAggregatedList{
154925		ServerResponse: googleapi.ServerResponse{
154926			Header:         res.Header,
154927			HTTPStatusCode: res.StatusCode,
154928		},
154929	}
154930	target := &ret
154931	if err := gensupport.DecodeResponse(target, res); err != nil {
154932		return nil, err
154933	}
154934	return ret, nil
154935	// {
154936	//   "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.",
154937	//   "httpMethod": "GET",
154938	//   "id": "compute.subnetworks.listUsable",
154939	//   "parameterOrder": [
154940	//     "project"
154941	//   ],
154942	//   "parameters": {
154943	//     "filter": {
154944	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
154945	//       "location": "query",
154946	//       "type": "string"
154947	//     },
154948	//     "maxResults": {
154949	//       "default": "500",
154950	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
154951	//       "format": "uint32",
154952	//       "location": "query",
154953	//       "minimum": "0",
154954	//       "type": "integer"
154955	//     },
154956	//     "orderBy": {
154957	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
154958	//       "location": "query",
154959	//       "type": "string"
154960	//     },
154961	//     "pageToken": {
154962	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
154963	//       "location": "query",
154964	//       "type": "string"
154965	//     },
154966	//     "project": {
154967	//       "description": "Project ID for this request.",
154968	//       "location": "path",
154969	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154970	//       "required": true,
154971	//       "type": "string"
154972	//     }
154973	//   },
154974	//   "path": "{project}/aggregated/subnetworks/listUsable",
154975	//   "response": {
154976	//     "$ref": "UsableSubnetworksAggregatedList"
154977	//   },
154978	//   "scopes": [
154979	//     "https://www.googleapis.com/auth/cloud-platform",
154980	//     "https://www.googleapis.com/auth/compute",
154981	//     "https://www.googleapis.com/auth/compute.readonly"
154982	//   ]
154983	// }
154984
154985}
154986
154987// Pages invokes f for each page of results.
154988// A non-nil error returned from f will halt the iteration.
154989// The provided context supersedes any context provided to the Context method.
154990func (c *SubnetworksListUsableCall) Pages(ctx context.Context, f func(*UsableSubnetworksAggregatedList) error) error {
154991	c.ctx_ = ctx
154992	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
154993	for {
154994		x, err := c.Do()
154995		if err != nil {
154996			return err
154997		}
154998		if err := f(x); err != nil {
154999			return err
155000		}
155001		if x.NextPageToken == "" {
155002			return nil
155003		}
155004		c.PageToken(x.NextPageToken)
155005	}
155006}
155007
155008// method id "compute.subnetworks.patch":
155009
155010type SubnetworksPatchCall struct {
155011	s           *Service
155012	project     string
155013	region      string
155014	subnetwork  string
155015	subnetwork2 *Subnetwork
155016	urlParams_  gensupport.URLParams
155017	ctx_        context.Context
155018	header_     http.Header
155019}
155020
155021// Patch: Patches the specified subnetwork with the data included in the
155022// request. Only certain fields can up updated with a patch request as
155023// indicated in the field descriptions. You must specify the current
155024// fingeprint of the subnetwork resource being patched.
155025func (r *SubnetworksService) Patch(project string, region string, subnetwork string, subnetwork2 *Subnetwork) *SubnetworksPatchCall {
155026	c := &SubnetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155027	c.project = project
155028	c.region = region
155029	c.subnetwork = subnetwork
155030	c.subnetwork2 = subnetwork2
155031	return c
155032}
155033
155034// DrainTimeoutSeconds sets the optional parameter
155035// "drainTimeoutSeconds": The drain timeout specifies the upper bound in
155036// seconds on the amount of time allowed to drain connections from the
155037// current ACTIVE subnetwork to the current BACKUP subnetwork. The drain
155038// timeout is only applicable when the following conditions are true: -
155039// the subnetwork being patched has purpose =
155040// INTERNAL_HTTPS_LOAD_BALANCER - the subnetwork being patched has role
155041// = BACKUP - the patch request is setting the role to ACTIVE. Note that
155042// after this patch operation the roles of the ACTIVE and BACKUP
155043// subnetworks will be swapped.
155044func (c *SubnetworksPatchCall) DrainTimeoutSeconds(drainTimeoutSeconds int64) *SubnetworksPatchCall {
155045	c.urlParams_.Set("drainTimeoutSeconds", fmt.Sprint(drainTimeoutSeconds))
155046	return c
155047}
155048
155049// RequestId sets the optional parameter "requestId": An optional
155050// request ID to identify requests. Specify a unique request ID so that
155051// if you must retry your request, the server will know to ignore the
155052// request if it has already been completed.
155053//
155054// For example, consider a situation where you make an initial request
155055// and the request times out. If you make the request again with the
155056// same request ID, the server can check if original operation with the
155057// same request ID was received, and if so, will ignore the second
155058// request. This prevents clients from accidentally creating duplicate
155059// commitments.
155060//
155061// The request ID must be a valid UUID with the exception that zero UUID
155062// is not supported (00000000-0000-0000-0000-000000000000).
155063func (c *SubnetworksPatchCall) RequestId(requestId string) *SubnetworksPatchCall {
155064	c.urlParams_.Set("requestId", requestId)
155065	return c
155066}
155067
155068// Fields allows partial responses to be retrieved. See
155069// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155070// for more information.
155071func (c *SubnetworksPatchCall) Fields(s ...googleapi.Field) *SubnetworksPatchCall {
155072	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155073	return c
155074}
155075
155076// Context sets the context to be used in this call's Do method. Any
155077// pending HTTP request will be aborted if the provided context is
155078// canceled.
155079func (c *SubnetworksPatchCall) Context(ctx context.Context) *SubnetworksPatchCall {
155080	c.ctx_ = ctx
155081	return c
155082}
155083
155084// Header returns an http.Header that can be modified by the caller to
155085// add HTTP headers to the request.
155086func (c *SubnetworksPatchCall) Header() http.Header {
155087	if c.header_ == nil {
155088		c.header_ = make(http.Header)
155089	}
155090	return c.header_
155091}
155092
155093func (c *SubnetworksPatchCall) doRequest(alt string) (*http.Response, error) {
155094	reqHeaders := make(http.Header)
155095	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
155096	for k, v := range c.header_ {
155097		reqHeaders[k] = v
155098	}
155099	reqHeaders.Set("User-Agent", c.s.userAgent())
155100	var body io.Reader = nil
155101	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork2)
155102	if err != nil {
155103		return nil, err
155104	}
155105	reqHeaders.Set("Content-Type", "application/json")
155106	c.urlParams_.Set("alt", alt)
155107	c.urlParams_.Set("prettyPrint", "false")
155108	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}")
155109	urls += "?" + c.urlParams_.Encode()
155110	req, err := http.NewRequest("PATCH", urls, body)
155111	if err != nil {
155112		return nil, err
155113	}
155114	req.Header = reqHeaders
155115	googleapi.Expand(req.URL, map[string]string{
155116		"project":    c.project,
155117		"region":     c.region,
155118		"subnetwork": c.subnetwork,
155119	})
155120	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155121}
155122
155123// Do executes the "compute.subnetworks.patch" call.
155124// Exactly one of *Operation or error will be non-nil. Any non-2xx
155125// status code is an error. Response headers are in either
155126// *Operation.ServerResponse.Header or (if a response was returned at
155127// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
155128// to check whether the returned error was because
155129// http.StatusNotModified was returned.
155130func (c *SubnetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
155131	gensupport.SetOptions(c.urlParams_, opts...)
155132	res, err := c.doRequest("json")
155133	if res != nil && res.StatusCode == http.StatusNotModified {
155134		if res.Body != nil {
155135			res.Body.Close()
155136		}
155137		return nil, &googleapi.Error{
155138			Code:   res.StatusCode,
155139			Header: res.Header,
155140		}
155141	}
155142	if err != nil {
155143		return nil, err
155144	}
155145	defer googleapi.CloseBody(res)
155146	if err := googleapi.CheckResponse(res); err != nil {
155147		return nil, err
155148	}
155149	ret := &Operation{
155150		ServerResponse: googleapi.ServerResponse{
155151			Header:         res.Header,
155152			HTTPStatusCode: res.StatusCode,
155153		},
155154	}
155155	target := &ret
155156	if err := gensupport.DecodeResponse(target, res); err != nil {
155157		return nil, err
155158	}
155159	return ret, nil
155160	// {
155161	//   "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.",
155162	//   "httpMethod": "PATCH",
155163	//   "id": "compute.subnetworks.patch",
155164	//   "parameterOrder": [
155165	//     "project",
155166	//     "region",
155167	//     "subnetwork"
155168	//   ],
155169	//   "parameters": {
155170	//     "drainTimeoutSeconds": {
155171	//       "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.",
155172	//       "format": "int32",
155173	//       "location": "query",
155174	//       "type": "integer"
155175	//     },
155176	//     "project": {
155177	//       "description": "Project ID for this request.",
155178	//       "location": "path",
155179	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155180	//       "required": true,
155181	//       "type": "string"
155182	//     },
155183	//     "region": {
155184	//       "description": "Name of the region scoping this request.",
155185	//       "location": "path",
155186	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
155187	//       "required": true,
155188	//       "type": "string"
155189	//     },
155190	//     "requestId": {
155191	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
155192	//       "location": "query",
155193	//       "type": "string"
155194	//     },
155195	//     "subnetwork": {
155196	//       "description": "Name of the Subnetwork resource to patch.",
155197	//       "location": "path",
155198	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155199	//       "required": true,
155200	//       "type": "string"
155201	//     }
155202	//   },
155203	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}",
155204	//   "request": {
155205	//     "$ref": "Subnetwork"
155206	//   },
155207	//   "response": {
155208	//     "$ref": "Operation"
155209	//   },
155210	//   "scopes": [
155211	//     "https://www.googleapis.com/auth/cloud-platform",
155212	//     "https://www.googleapis.com/auth/compute"
155213	//   ]
155214	// }
155215
155216}
155217
155218// method id "compute.subnetworks.setIamPolicy":
155219
155220type SubnetworksSetIamPolicyCall struct {
155221	s                      *Service
155222	project                string
155223	region                 string
155224	resource               string
155225	regionsetpolicyrequest *RegionSetPolicyRequest
155226	urlParams_             gensupport.URLParams
155227	ctx_                   context.Context
155228	header_                http.Header
155229}
155230
155231// SetIamPolicy: Sets the access control policy on the specified
155232// resource. Replaces any existing policy.
155233func (r *SubnetworksService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *SubnetworksSetIamPolicyCall {
155234	c := &SubnetworksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155235	c.project = project
155236	c.region = region
155237	c.resource = resource
155238	c.regionsetpolicyrequest = regionsetpolicyrequest
155239	return c
155240}
155241
155242// Fields allows partial responses to be retrieved. See
155243// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155244// for more information.
155245func (c *SubnetworksSetIamPolicyCall) Fields(s ...googleapi.Field) *SubnetworksSetIamPolicyCall {
155246	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155247	return c
155248}
155249
155250// Context sets the context to be used in this call's Do method. Any
155251// pending HTTP request will be aborted if the provided context is
155252// canceled.
155253func (c *SubnetworksSetIamPolicyCall) Context(ctx context.Context) *SubnetworksSetIamPolicyCall {
155254	c.ctx_ = ctx
155255	return c
155256}
155257
155258// Header returns an http.Header that can be modified by the caller to
155259// add HTTP headers to the request.
155260func (c *SubnetworksSetIamPolicyCall) Header() http.Header {
155261	if c.header_ == nil {
155262		c.header_ = make(http.Header)
155263	}
155264	return c.header_
155265}
155266
155267func (c *SubnetworksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
155268	reqHeaders := make(http.Header)
155269	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
155270	for k, v := range c.header_ {
155271		reqHeaders[k] = v
155272	}
155273	reqHeaders.Set("User-Agent", c.s.userAgent())
155274	var body io.Reader = nil
155275	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
155276	if err != nil {
155277		return nil, err
155278	}
155279	reqHeaders.Set("Content-Type", "application/json")
155280	c.urlParams_.Set("alt", alt)
155281	c.urlParams_.Set("prettyPrint", "false")
155282	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{resource}/setIamPolicy")
155283	urls += "?" + c.urlParams_.Encode()
155284	req, err := http.NewRequest("POST", urls, body)
155285	if err != nil {
155286		return nil, err
155287	}
155288	req.Header = reqHeaders
155289	googleapi.Expand(req.URL, map[string]string{
155290		"project":  c.project,
155291		"region":   c.region,
155292		"resource": c.resource,
155293	})
155294	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155295}
155296
155297// Do executes the "compute.subnetworks.setIamPolicy" call.
155298// Exactly one of *Policy or error will be non-nil. Any non-2xx status
155299// code is an error. Response headers are in either
155300// *Policy.ServerResponse.Header or (if a response was returned at all)
155301// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
155302// check whether the returned error was because http.StatusNotModified
155303// was returned.
155304func (c *SubnetworksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
155305	gensupport.SetOptions(c.urlParams_, opts...)
155306	res, err := c.doRequest("json")
155307	if res != nil && res.StatusCode == http.StatusNotModified {
155308		if res.Body != nil {
155309			res.Body.Close()
155310		}
155311		return nil, &googleapi.Error{
155312			Code:   res.StatusCode,
155313			Header: res.Header,
155314		}
155315	}
155316	if err != nil {
155317		return nil, err
155318	}
155319	defer googleapi.CloseBody(res)
155320	if err := googleapi.CheckResponse(res); err != nil {
155321		return nil, err
155322	}
155323	ret := &Policy{
155324		ServerResponse: googleapi.ServerResponse{
155325			Header:         res.Header,
155326			HTTPStatusCode: res.StatusCode,
155327		},
155328	}
155329	target := &ret
155330	if err := gensupport.DecodeResponse(target, res); err != nil {
155331		return nil, err
155332	}
155333	return ret, nil
155334	// {
155335	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
155336	//   "httpMethod": "POST",
155337	//   "id": "compute.subnetworks.setIamPolicy",
155338	//   "parameterOrder": [
155339	//     "project",
155340	//     "region",
155341	//     "resource"
155342	//   ],
155343	//   "parameters": {
155344	//     "project": {
155345	//       "description": "Project ID for this request.",
155346	//       "location": "path",
155347	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155348	//       "required": true,
155349	//       "type": "string"
155350	//     },
155351	//     "region": {
155352	//       "description": "The name of the region for this request.",
155353	//       "location": "path",
155354	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
155355	//       "required": true,
155356	//       "type": "string"
155357	//     },
155358	//     "resource": {
155359	//       "description": "Name or id of the resource for this request.",
155360	//       "location": "path",
155361	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155362	//       "required": true,
155363	//       "type": "string"
155364	//     }
155365	//   },
155366	//   "path": "{project}/regions/{region}/subnetworks/{resource}/setIamPolicy",
155367	//   "request": {
155368	//     "$ref": "RegionSetPolicyRequest"
155369	//   },
155370	//   "response": {
155371	//     "$ref": "Policy"
155372	//   },
155373	//   "scopes": [
155374	//     "https://www.googleapis.com/auth/cloud-platform",
155375	//     "https://www.googleapis.com/auth/compute"
155376	//   ]
155377	// }
155378
155379}
155380
155381// method id "compute.subnetworks.setPrivateIpGoogleAccess":
155382
155383type SubnetworksSetPrivateIpGoogleAccessCall struct {
155384	s                                          *Service
155385	project                                    string
155386	region                                     string
155387	subnetwork                                 string
155388	subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest
155389	urlParams_                                 gensupport.URLParams
155390	ctx_                                       context.Context
155391	header_                                    http.Header
155392}
155393
155394// SetPrivateIpGoogleAccess: Set whether VMs in this subnet can access
155395// Google services without assigning external IP addresses through
155396// Private Google Access.
155397func (r *SubnetworksService) SetPrivateIpGoogleAccess(project string, region string, subnetwork string, subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest) *SubnetworksSetPrivateIpGoogleAccessCall {
155398	c := &SubnetworksSetPrivateIpGoogleAccessCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155399	c.project = project
155400	c.region = region
155401	c.subnetwork = subnetwork
155402	c.subnetworkssetprivateipgoogleaccessrequest = subnetworkssetprivateipgoogleaccessrequest
155403	return c
155404}
155405
155406// RequestId sets the optional parameter "requestId": An optional
155407// request ID to identify requests. Specify a unique request ID so that
155408// if you must retry your request, the server will know to ignore the
155409// request if it has already been completed.
155410//
155411// For example, consider a situation where you make an initial request
155412// and the request times out. If you make the request again with the
155413// same request ID, the server can check if original operation with the
155414// same request ID was received, and if so, will ignore the second
155415// request. This prevents clients from accidentally creating duplicate
155416// commitments.
155417//
155418// The request ID must be a valid UUID with the exception that zero UUID
155419// is not supported (00000000-0000-0000-0000-000000000000).
155420func (c *SubnetworksSetPrivateIpGoogleAccessCall) RequestId(requestId string) *SubnetworksSetPrivateIpGoogleAccessCall {
155421	c.urlParams_.Set("requestId", requestId)
155422	return c
155423}
155424
155425// Fields allows partial responses to be retrieved. See
155426// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155427// for more information.
155428func (c *SubnetworksSetPrivateIpGoogleAccessCall) Fields(s ...googleapi.Field) *SubnetworksSetPrivateIpGoogleAccessCall {
155429	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155430	return c
155431}
155432
155433// Context sets the context to be used in this call's Do method. Any
155434// pending HTTP request will be aborted if the provided context is
155435// canceled.
155436func (c *SubnetworksSetPrivateIpGoogleAccessCall) Context(ctx context.Context) *SubnetworksSetPrivateIpGoogleAccessCall {
155437	c.ctx_ = ctx
155438	return c
155439}
155440
155441// Header returns an http.Header that can be modified by the caller to
155442// add HTTP headers to the request.
155443func (c *SubnetworksSetPrivateIpGoogleAccessCall) Header() http.Header {
155444	if c.header_ == nil {
155445		c.header_ = make(http.Header)
155446	}
155447	return c.header_
155448}
155449
155450func (c *SubnetworksSetPrivateIpGoogleAccessCall) doRequest(alt string) (*http.Response, error) {
155451	reqHeaders := make(http.Header)
155452	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
155453	for k, v := range c.header_ {
155454		reqHeaders[k] = v
155455	}
155456	reqHeaders.Set("User-Agent", c.s.userAgent())
155457	var body io.Reader = nil
155458	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworkssetprivateipgoogleaccessrequest)
155459	if err != nil {
155460		return nil, err
155461	}
155462	reqHeaders.Set("Content-Type", "application/json")
155463	c.urlParams_.Set("alt", alt)
155464	c.urlParams_.Set("prettyPrint", "false")
155465	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess")
155466	urls += "?" + c.urlParams_.Encode()
155467	req, err := http.NewRequest("POST", urls, body)
155468	if err != nil {
155469		return nil, err
155470	}
155471	req.Header = reqHeaders
155472	googleapi.Expand(req.URL, map[string]string{
155473		"project":    c.project,
155474		"region":     c.region,
155475		"subnetwork": c.subnetwork,
155476	})
155477	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155478}
155479
155480// Do executes the "compute.subnetworks.setPrivateIpGoogleAccess" call.
155481// Exactly one of *Operation or error will be non-nil. Any non-2xx
155482// status code is an error. Response headers are in either
155483// *Operation.ServerResponse.Header or (if a response was returned at
155484// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
155485// to check whether the returned error was because
155486// http.StatusNotModified was returned.
155487func (c *SubnetworksSetPrivateIpGoogleAccessCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
155488	gensupport.SetOptions(c.urlParams_, opts...)
155489	res, err := c.doRequest("json")
155490	if res != nil && res.StatusCode == http.StatusNotModified {
155491		if res.Body != nil {
155492			res.Body.Close()
155493		}
155494		return nil, &googleapi.Error{
155495			Code:   res.StatusCode,
155496			Header: res.Header,
155497		}
155498	}
155499	if err != nil {
155500		return nil, err
155501	}
155502	defer googleapi.CloseBody(res)
155503	if err := googleapi.CheckResponse(res); err != nil {
155504		return nil, err
155505	}
155506	ret := &Operation{
155507		ServerResponse: googleapi.ServerResponse{
155508			Header:         res.Header,
155509			HTTPStatusCode: res.StatusCode,
155510		},
155511	}
155512	target := &ret
155513	if err := gensupport.DecodeResponse(target, res); err != nil {
155514		return nil, err
155515	}
155516	return ret, nil
155517	// {
155518	//   "description": "Set whether VMs in this subnet can access Google services without assigning external IP addresses through Private Google Access.",
155519	//   "httpMethod": "POST",
155520	//   "id": "compute.subnetworks.setPrivateIpGoogleAccess",
155521	//   "parameterOrder": [
155522	//     "project",
155523	//     "region",
155524	//     "subnetwork"
155525	//   ],
155526	//   "parameters": {
155527	//     "project": {
155528	//       "description": "Project ID for this request.",
155529	//       "location": "path",
155530	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155531	//       "required": true,
155532	//       "type": "string"
155533	//     },
155534	//     "region": {
155535	//       "description": "Name of the region scoping this request.",
155536	//       "location": "path",
155537	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
155538	//       "required": true,
155539	//       "type": "string"
155540	//     },
155541	//     "requestId": {
155542	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
155543	//       "location": "query",
155544	//       "type": "string"
155545	//     },
155546	//     "subnetwork": {
155547	//       "description": "Name of the Subnetwork resource.",
155548	//       "location": "path",
155549	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155550	//       "required": true,
155551	//       "type": "string"
155552	//     }
155553	//   },
155554	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess",
155555	//   "request": {
155556	//     "$ref": "SubnetworksSetPrivateIpGoogleAccessRequest"
155557	//   },
155558	//   "response": {
155559	//     "$ref": "Operation"
155560	//   },
155561	//   "scopes": [
155562	//     "https://www.googleapis.com/auth/cloud-platform",
155563	//     "https://www.googleapis.com/auth/compute"
155564	//   ]
155565	// }
155566
155567}
155568
155569// method id "compute.subnetworks.testIamPermissions":
155570
155571type SubnetworksTestIamPermissionsCall struct {
155572	s                      *Service
155573	project                string
155574	region                 string
155575	resource               string
155576	testpermissionsrequest *TestPermissionsRequest
155577	urlParams_             gensupport.URLParams
155578	ctx_                   context.Context
155579	header_                http.Header
155580}
155581
155582// TestIamPermissions: Returns permissions that a caller has on the
155583// specified resource.
155584func (r *SubnetworksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *SubnetworksTestIamPermissionsCall {
155585	c := &SubnetworksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155586	c.project = project
155587	c.region = region
155588	c.resource = resource
155589	c.testpermissionsrequest = testpermissionsrequest
155590	return c
155591}
155592
155593// Fields allows partial responses to be retrieved. See
155594// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155595// for more information.
155596func (c *SubnetworksTestIamPermissionsCall) Fields(s ...googleapi.Field) *SubnetworksTestIamPermissionsCall {
155597	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155598	return c
155599}
155600
155601// Context sets the context to be used in this call's Do method. Any
155602// pending HTTP request will be aborted if the provided context is
155603// canceled.
155604func (c *SubnetworksTestIamPermissionsCall) Context(ctx context.Context) *SubnetworksTestIamPermissionsCall {
155605	c.ctx_ = ctx
155606	return c
155607}
155608
155609// Header returns an http.Header that can be modified by the caller to
155610// add HTTP headers to the request.
155611func (c *SubnetworksTestIamPermissionsCall) Header() http.Header {
155612	if c.header_ == nil {
155613		c.header_ = make(http.Header)
155614	}
155615	return c.header_
155616}
155617
155618func (c *SubnetworksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
155619	reqHeaders := make(http.Header)
155620	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
155621	for k, v := range c.header_ {
155622		reqHeaders[k] = v
155623	}
155624	reqHeaders.Set("User-Agent", c.s.userAgent())
155625	var body io.Reader = nil
155626	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
155627	if err != nil {
155628		return nil, err
155629	}
155630	reqHeaders.Set("Content-Type", "application/json")
155631	c.urlParams_.Set("alt", alt)
155632	c.urlParams_.Set("prettyPrint", "false")
155633	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{resource}/testIamPermissions")
155634	urls += "?" + c.urlParams_.Encode()
155635	req, err := http.NewRequest("POST", urls, body)
155636	if err != nil {
155637		return nil, err
155638	}
155639	req.Header = reqHeaders
155640	googleapi.Expand(req.URL, map[string]string{
155641		"project":  c.project,
155642		"region":   c.region,
155643		"resource": c.resource,
155644	})
155645	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155646}
155647
155648// Do executes the "compute.subnetworks.testIamPermissions" call.
155649// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
155650// non-2xx status code is an error. Response headers are in either
155651// *TestPermissionsResponse.ServerResponse.Header or (if a response was
155652// returned at all) in error.(*googleapi.Error).Header. Use
155653// googleapi.IsNotModified to check whether the returned error was
155654// because http.StatusNotModified was returned.
155655func (c *SubnetworksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
155656	gensupport.SetOptions(c.urlParams_, opts...)
155657	res, err := c.doRequest("json")
155658	if res != nil && res.StatusCode == http.StatusNotModified {
155659		if res.Body != nil {
155660			res.Body.Close()
155661		}
155662		return nil, &googleapi.Error{
155663			Code:   res.StatusCode,
155664			Header: res.Header,
155665		}
155666	}
155667	if err != nil {
155668		return nil, err
155669	}
155670	defer googleapi.CloseBody(res)
155671	if err := googleapi.CheckResponse(res); err != nil {
155672		return nil, err
155673	}
155674	ret := &TestPermissionsResponse{
155675		ServerResponse: googleapi.ServerResponse{
155676			Header:         res.Header,
155677			HTTPStatusCode: res.StatusCode,
155678		},
155679	}
155680	target := &ret
155681	if err := gensupport.DecodeResponse(target, res); err != nil {
155682		return nil, err
155683	}
155684	return ret, nil
155685	// {
155686	//   "description": "Returns permissions that a caller has on the specified resource.",
155687	//   "httpMethod": "POST",
155688	//   "id": "compute.subnetworks.testIamPermissions",
155689	//   "parameterOrder": [
155690	//     "project",
155691	//     "region",
155692	//     "resource"
155693	//   ],
155694	//   "parameters": {
155695	//     "project": {
155696	//       "description": "Project ID for this request.",
155697	//       "location": "path",
155698	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155699	//       "required": true,
155700	//       "type": "string"
155701	//     },
155702	//     "region": {
155703	//       "description": "The name of the region for this request.",
155704	//       "location": "path",
155705	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
155706	//       "required": true,
155707	//       "type": "string"
155708	//     },
155709	//     "resource": {
155710	//       "description": "Name or id of the resource for this request.",
155711	//       "location": "path",
155712	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155713	//       "required": true,
155714	//       "type": "string"
155715	//     }
155716	//   },
155717	//   "path": "{project}/regions/{region}/subnetworks/{resource}/testIamPermissions",
155718	//   "request": {
155719	//     "$ref": "TestPermissionsRequest"
155720	//   },
155721	//   "response": {
155722	//     "$ref": "TestPermissionsResponse"
155723	//   },
155724	//   "scopes": [
155725	//     "https://www.googleapis.com/auth/cloud-platform",
155726	//     "https://www.googleapis.com/auth/compute",
155727	//     "https://www.googleapis.com/auth/compute.readonly"
155728	//   ]
155729	// }
155730
155731}
155732
155733// method id "compute.targetHttpProxies.aggregatedList":
155734
155735type TargetHttpProxiesAggregatedListCall struct {
155736	s            *Service
155737	project      string
155738	urlParams_   gensupport.URLParams
155739	ifNoneMatch_ string
155740	ctx_         context.Context
155741	header_      http.Header
155742}
155743
155744// AggregatedList: Retrieves the list of all TargetHttpProxy resources,
155745// regional and global, available to the specified project.
155746func (r *TargetHttpProxiesService) AggregatedList(project string) *TargetHttpProxiesAggregatedListCall {
155747	c := &TargetHttpProxiesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155748	c.project = project
155749	return c
155750}
155751
155752// Filter sets the optional parameter "filter": A filter expression that
155753// filters resources listed in the response. The expression must specify
155754// the field name, a comparison operator, and the value that you want to
155755// use for filtering. The value must be a string, a number, or a
155756// boolean. The comparison operator must be either =, !=, >, or <.
155757//
155758// For example, if you are filtering Compute Engine instances, you can
155759// exclude instances named example-instance by specifying name !=
155760// example-instance.
155761//
155762// You can also filter nested fields. For example, you could specify
155763// scheduling.automaticRestart = false to include instances only if they
155764// are not scheduled for automatic restarts. You can use filtering on
155765// nested fields to filter based on resource labels.
155766//
155767// To filter on multiple expressions, provide each separate expression
155768// within parentheses. For example, (scheduling.automaticRestart = true)
155769// (cpuPlatform = "Intel Skylake"). By default, each expression is an
155770// AND expression. However, you can include AND and OR expressions
155771// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
155772// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
155773// true).
155774func (c *TargetHttpProxiesAggregatedListCall) Filter(filter string) *TargetHttpProxiesAggregatedListCall {
155775	c.urlParams_.Set("filter", filter)
155776	return c
155777}
155778
155779// IncludeAllScopes sets the optional parameter "includeAllScopes":
155780// Indicates whether every visible scope for each scope type (zone,
155781// region, global) should be included in the response. For new resource
155782// types added after this field, the flag has no effect as new resource
155783// types will always include every visible scope for each scope type in
155784// response. For resource types which predate this field, if this flag
155785// is omitted or false, only scopes of the scope types where the
155786// resource type is expected to be found will be included.
155787func (c *TargetHttpProxiesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetHttpProxiesAggregatedListCall {
155788	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
155789	return c
155790}
155791
155792// MaxResults sets the optional parameter "maxResults": The maximum
155793// number of results per page that should be returned. If the number of
155794// available results is larger than maxResults, Compute Engine returns a
155795// nextPageToken that can be used to get the next page of results in
155796// subsequent list requests. Acceptable values are 0 to 500, inclusive.
155797// (Default: 500)
155798func (c *TargetHttpProxiesAggregatedListCall) MaxResults(maxResults int64) *TargetHttpProxiesAggregatedListCall {
155799	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
155800	return c
155801}
155802
155803// OrderBy sets the optional parameter "orderBy": Sorts list results by
155804// a certain order. By default, results are returned in alphanumerical
155805// order based on the resource name.
155806//
155807// You can also sort results in descending order based on the creation
155808// timestamp using orderBy="creationTimestamp desc". This sorts results
155809// based on the creationTimestamp field in reverse chronological order
155810// (newest result first). Use this to sort resources like operations so
155811// that the newest operation is returned first.
155812//
155813// Currently, only sorting by name or creationTimestamp desc is
155814// supported.
155815func (c *TargetHttpProxiesAggregatedListCall) OrderBy(orderBy string) *TargetHttpProxiesAggregatedListCall {
155816	c.urlParams_.Set("orderBy", orderBy)
155817	return c
155818}
155819
155820// PageToken sets the optional parameter "pageToken": Specifies a page
155821// token to use. Set pageToken to the nextPageToken returned by a
155822// previous list request to get the next page of results.
155823func (c *TargetHttpProxiesAggregatedListCall) PageToken(pageToken string) *TargetHttpProxiesAggregatedListCall {
155824	c.urlParams_.Set("pageToken", pageToken)
155825	return c
155826}
155827
155828// Fields allows partial responses to be retrieved. See
155829// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155830// for more information.
155831func (c *TargetHttpProxiesAggregatedListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesAggregatedListCall {
155832	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155833	return c
155834}
155835
155836// IfNoneMatch sets the optional parameter which makes the operation
155837// fail if the object's ETag matches the given value. This is useful for
155838// getting updates only after the object has changed since the last
155839// request. Use googleapi.IsNotModified to check whether the response
155840// error from Do is the result of In-None-Match.
155841func (c *TargetHttpProxiesAggregatedListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesAggregatedListCall {
155842	c.ifNoneMatch_ = entityTag
155843	return c
155844}
155845
155846// Context sets the context to be used in this call's Do method. Any
155847// pending HTTP request will be aborted if the provided context is
155848// canceled.
155849func (c *TargetHttpProxiesAggregatedListCall) Context(ctx context.Context) *TargetHttpProxiesAggregatedListCall {
155850	c.ctx_ = ctx
155851	return c
155852}
155853
155854// Header returns an http.Header that can be modified by the caller to
155855// add HTTP headers to the request.
155856func (c *TargetHttpProxiesAggregatedListCall) Header() http.Header {
155857	if c.header_ == nil {
155858		c.header_ = make(http.Header)
155859	}
155860	return c.header_
155861}
155862
155863func (c *TargetHttpProxiesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
155864	reqHeaders := make(http.Header)
155865	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
155866	for k, v := range c.header_ {
155867		reqHeaders[k] = v
155868	}
155869	reqHeaders.Set("User-Agent", c.s.userAgent())
155870	if c.ifNoneMatch_ != "" {
155871		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
155872	}
155873	var body io.Reader = nil
155874	c.urlParams_.Set("alt", alt)
155875	c.urlParams_.Set("prettyPrint", "false")
155876	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetHttpProxies")
155877	urls += "?" + c.urlParams_.Encode()
155878	req, err := http.NewRequest("GET", urls, body)
155879	if err != nil {
155880		return nil, err
155881	}
155882	req.Header = reqHeaders
155883	googleapi.Expand(req.URL, map[string]string{
155884		"project": c.project,
155885	})
155886	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155887}
155888
155889// Do executes the "compute.targetHttpProxies.aggregatedList" call.
155890// Exactly one of *TargetHttpProxyAggregatedList or error will be
155891// non-nil. Any non-2xx status code is an error. Response headers are in
155892// either *TargetHttpProxyAggregatedList.ServerResponse.Header or (if a
155893// response was returned at all) in error.(*googleapi.Error).Header. Use
155894// googleapi.IsNotModified to check whether the returned error was
155895// because http.StatusNotModified was returned.
155896func (c *TargetHttpProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyAggregatedList, error) {
155897	gensupport.SetOptions(c.urlParams_, opts...)
155898	res, err := c.doRequest("json")
155899	if res != nil && res.StatusCode == http.StatusNotModified {
155900		if res.Body != nil {
155901			res.Body.Close()
155902		}
155903		return nil, &googleapi.Error{
155904			Code:   res.StatusCode,
155905			Header: res.Header,
155906		}
155907	}
155908	if err != nil {
155909		return nil, err
155910	}
155911	defer googleapi.CloseBody(res)
155912	if err := googleapi.CheckResponse(res); err != nil {
155913		return nil, err
155914	}
155915	ret := &TargetHttpProxyAggregatedList{
155916		ServerResponse: googleapi.ServerResponse{
155917			Header:         res.Header,
155918			HTTPStatusCode: res.StatusCode,
155919		},
155920	}
155921	target := &ret
155922	if err := gensupport.DecodeResponse(target, res); err != nil {
155923		return nil, err
155924	}
155925	return ret, nil
155926	// {
155927	//   "description": "Retrieves the list of all TargetHttpProxy resources, regional and global, available to the specified project.",
155928	//   "httpMethod": "GET",
155929	//   "id": "compute.targetHttpProxies.aggregatedList",
155930	//   "parameterOrder": [
155931	//     "project"
155932	//   ],
155933	//   "parameters": {
155934	//     "filter": {
155935	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
155936	//       "location": "query",
155937	//       "type": "string"
155938	//     },
155939	//     "includeAllScopes": {
155940	//       "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.",
155941	//       "location": "query",
155942	//       "type": "boolean"
155943	//     },
155944	//     "maxResults": {
155945	//       "default": "500",
155946	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
155947	//       "format": "uint32",
155948	//       "location": "query",
155949	//       "minimum": "0",
155950	//       "type": "integer"
155951	//     },
155952	//     "orderBy": {
155953	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
155954	//       "location": "query",
155955	//       "type": "string"
155956	//     },
155957	//     "pageToken": {
155958	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
155959	//       "location": "query",
155960	//       "type": "string"
155961	//     },
155962	//     "project": {
155963	//       "description": "Name of the project scoping this request.",
155964	//       "location": "path",
155965	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155966	//       "required": true,
155967	//       "type": "string"
155968	//     }
155969	//   },
155970	//   "path": "{project}/aggregated/targetHttpProxies",
155971	//   "response": {
155972	//     "$ref": "TargetHttpProxyAggregatedList"
155973	//   },
155974	//   "scopes": [
155975	//     "https://www.googleapis.com/auth/cloud-platform",
155976	//     "https://www.googleapis.com/auth/compute",
155977	//     "https://www.googleapis.com/auth/compute.readonly"
155978	//   ]
155979	// }
155980
155981}
155982
155983// Pages invokes f for each page of results.
155984// A non-nil error returned from f will halt the iteration.
155985// The provided context supersedes any context provided to the Context method.
155986func (c *TargetHttpProxiesAggregatedListCall) Pages(ctx context.Context, f func(*TargetHttpProxyAggregatedList) error) error {
155987	c.ctx_ = ctx
155988	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
155989	for {
155990		x, err := c.Do()
155991		if err != nil {
155992			return err
155993		}
155994		if err := f(x); err != nil {
155995			return err
155996		}
155997		if x.NextPageToken == "" {
155998			return nil
155999		}
156000		c.PageToken(x.NextPageToken)
156001	}
156002}
156003
156004// method id "compute.targetHttpProxies.delete":
156005
156006type TargetHttpProxiesDeleteCall struct {
156007	s               *Service
156008	project         string
156009	targetHttpProxy string
156010	urlParams_      gensupport.URLParams
156011	ctx_            context.Context
156012	header_         http.Header
156013}
156014
156015// Delete: Deletes the specified TargetHttpProxy resource.
156016// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/delete
156017func (r *TargetHttpProxiesService) Delete(project string, targetHttpProxy string) *TargetHttpProxiesDeleteCall {
156018	c := &TargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156019	c.project = project
156020	c.targetHttpProxy = targetHttpProxy
156021	return c
156022}
156023
156024// RequestId sets the optional parameter "requestId": An optional
156025// request ID to identify requests. Specify a unique request ID so that
156026// if you must retry your request, the server will know to ignore the
156027// request if it has already been completed.
156028//
156029// For example, consider a situation where you make an initial request
156030// and the request times out. If you make the request again with the
156031// same request ID, the server can check if original operation with the
156032// same request ID was received, and if so, will ignore the second
156033// request. This prevents clients from accidentally creating duplicate
156034// commitments.
156035//
156036// The request ID must be a valid UUID with the exception that zero UUID
156037// is not supported (00000000-0000-0000-0000-000000000000).
156038func (c *TargetHttpProxiesDeleteCall) RequestId(requestId string) *TargetHttpProxiesDeleteCall {
156039	c.urlParams_.Set("requestId", requestId)
156040	return c
156041}
156042
156043// Fields allows partial responses to be retrieved. See
156044// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156045// for more information.
156046func (c *TargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpProxiesDeleteCall {
156047	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156048	return c
156049}
156050
156051// Context sets the context to be used in this call's Do method. Any
156052// pending HTTP request will be aborted if the provided context is
156053// canceled.
156054func (c *TargetHttpProxiesDeleteCall) Context(ctx context.Context) *TargetHttpProxiesDeleteCall {
156055	c.ctx_ = ctx
156056	return c
156057}
156058
156059// Header returns an http.Header that can be modified by the caller to
156060// add HTTP headers to the request.
156061func (c *TargetHttpProxiesDeleteCall) Header() http.Header {
156062	if c.header_ == nil {
156063		c.header_ = make(http.Header)
156064	}
156065	return c.header_
156066}
156067
156068func (c *TargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
156069	reqHeaders := make(http.Header)
156070	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
156071	for k, v := range c.header_ {
156072		reqHeaders[k] = v
156073	}
156074	reqHeaders.Set("User-Agent", c.s.userAgent())
156075	var body io.Reader = nil
156076	c.urlParams_.Set("alt", alt)
156077	c.urlParams_.Set("prettyPrint", "false")
156078	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies/{targetHttpProxy}")
156079	urls += "?" + c.urlParams_.Encode()
156080	req, err := http.NewRequest("DELETE", urls, body)
156081	if err != nil {
156082		return nil, err
156083	}
156084	req.Header = reqHeaders
156085	googleapi.Expand(req.URL, map[string]string{
156086		"project":         c.project,
156087		"targetHttpProxy": c.targetHttpProxy,
156088	})
156089	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156090}
156091
156092// Do executes the "compute.targetHttpProxies.delete" call.
156093// Exactly one of *Operation or error will be non-nil. Any non-2xx
156094// status code is an error. Response headers are in either
156095// *Operation.ServerResponse.Header or (if a response was returned at
156096// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
156097// to check whether the returned error was because
156098// http.StatusNotModified was returned.
156099func (c *TargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
156100	gensupport.SetOptions(c.urlParams_, opts...)
156101	res, err := c.doRequest("json")
156102	if res != nil && res.StatusCode == http.StatusNotModified {
156103		if res.Body != nil {
156104			res.Body.Close()
156105		}
156106		return nil, &googleapi.Error{
156107			Code:   res.StatusCode,
156108			Header: res.Header,
156109		}
156110	}
156111	if err != nil {
156112		return nil, err
156113	}
156114	defer googleapi.CloseBody(res)
156115	if err := googleapi.CheckResponse(res); err != nil {
156116		return nil, err
156117	}
156118	ret := &Operation{
156119		ServerResponse: googleapi.ServerResponse{
156120			Header:         res.Header,
156121			HTTPStatusCode: res.StatusCode,
156122		},
156123	}
156124	target := &ret
156125	if err := gensupport.DecodeResponse(target, res); err != nil {
156126		return nil, err
156127	}
156128	return ret, nil
156129	// {
156130	//   "description": "Deletes the specified TargetHttpProxy resource.",
156131	//   "httpMethod": "DELETE",
156132	//   "id": "compute.targetHttpProxies.delete",
156133	//   "parameterOrder": [
156134	//     "project",
156135	//     "targetHttpProxy"
156136	//   ],
156137	//   "parameters": {
156138	//     "project": {
156139	//       "description": "Project ID for this request.",
156140	//       "location": "path",
156141	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156142	//       "required": true,
156143	//       "type": "string"
156144	//     },
156145	//     "requestId": {
156146	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
156147	//       "location": "query",
156148	//       "type": "string"
156149	//     },
156150	//     "targetHttpProxy": {
156151	//       "description": "Name of the TargetHttpProxy resource to delete.",
156152	//       "location": "path",
156153	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156154	//       "required": true,
156155	//       "type": "string"
156156	//     }
156157	//   },
156158	//   "path": "{project}/global/targetHttpProxies/{targetHttpProxy}",
156159	//   "response": {
156160	//     "$ref": "Operation"
156161	//   },
156162	//   "scopes": [
156163	//     "https://www.googleapis.com/auth/cloud-platform",
156164	//     "https://www.googleapis.com/auth/compute"
156165	//   ]
156166	// }
156167
156168}
156169
156170// method id "compute.targetHttpProxies.get":
156171
156172type TargetHttpProxiesGetCall struct {
156173	s               *Service
156174	project         string
156175	targetHttpProxy string
156176	urlParams_      gensupport.URLParams
156177	ifNoneMatch_    string
156178	ctx_            context.Context
156179	header_         http.Header
156180}
156181
156182// Get: Returns the specified TargetHttpProxy resource. Gets a list of
156183// available target HTTP proxies by making a list() request.
156184// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/get
156185func (r *TargetHttpProxiesService) Get(project string, targetHttpProxy string) *TargetHttpProxiesGetCall {
156186	c := &TargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156187	c.project = project
156188	c.targetHttpProxy = targetHttpProxy
156189	return c
156190}
156191
156192// Fields allows partial responses to be retrieved. See
156193// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156194// for more information.
156195func (c *TargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpProxiesGetCall {
156196	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156197	return c
156198}
156199
156200// IfNoneMatch sets the optional parameter which makes the operation
156201// fail if the object's ETag matches the given value. This is useful for
156202// getting updates only after the object has changed since the last
156203// request. Use googleapi.IsNotModified to check whether the response
156204// error from Do is the result of In-None-Match.
156205func (c *TargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpProxiesGetCall {
156206	c.ifNoneMatch_ = entityTag
156207	return c
156208}
156209
156210// Context sets the context to be used in this call's Do method. Any
156211// pending HTTP request will be aborted if the provided context is
156212// canceled.
156213func (c *TargetHttpProxiesGetCall) Context(ctx context.Context) *TargetHttpProxiesGetCall {
156214	c.ctx_ = ctx
156215	return c
156216}
156217
156218// Header returns an http.Header that can be modified by the caller to
156219// add HTTP headers to the request.
156220func (c *TargetHttpProxiesGetCall) Header() http.Header {
156221	if c.header_ == nil {
156222		c.header_ = make(http.Header)
156223	}
156224	return c.header_
156225}
156226
156227func (c *TargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
156228	reqHeaders := make(http.Header)
156229	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
156230	for k, v := range c.header_ {
156231		reqHeaders[k] = v
156232	}
156233	reqHeaders.Set("User-Agent", c.s.userAgent())
156234	if c.ifNoneMatch_ != "" {
156235		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
156236	}
156237	var body io.Reader = nil
156238	c.urlParams_.Set("alt", alt)
156239	c.urlParams_.Set("prettyPrint", "false")
156240	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies/{targetHttpProxy}")
156241	urls += "?" + c.urlParams_.Encode()
156242	req, err := http.NewRequest("GET", urls, body)
156243	if err != nil {
156244		return nil, err
156245	}
156246	req.Header = reqHeaders
156247	googleapi.Expand(req.URL, map[string]string{
156248		"project":         c.project,
156249		"targetHttpProxy": c.targetHttpProxy,
156250	})
156251	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156252}
156253
156254// Do executes the "compute.targetHttpProxies.get" call.
156255// Exactly one of *TargetHttpProxy or error will be non-nil. Any non-2xx
156256// status code is an error. Response headers are in either
156257// *TargetHttpProxy.ServerResponse.Header or (if a response was returned
156258// at all) in error.(*googleapi.Error).Header. Use
156259// googleapi.IsNotModified to check whether the returned error was
156260// because http.StatusNotModified was returned.
156261func (c *TargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) {
156262	gensupport.SetOptions(c.urlParams_, opts...)
156263	res, err := c.doRequest("json")
156264	if res != nil && res.StatusCode == http.StatusNotModified {
156265		if res.Body != nil {
156266			res.Body.Close()
156267		}
156268		return nil, &googleapi.Error{
156269			Code:   res.StatusCode,
156270			Header: res.Header,
156271		}
156272	}
156273	if err != nil {
156274		return nil, err
156275	}
156276	defer googleapi.CloseBody(res)
156277	if err := googleapi.CheckResponse(res); err != nil {
156278		return nil, err
156279	}
156280	ret := &TargetHttpProxy{
156281		ServerResponse: googleapi.ServerResponse{
156282			Header:         res.Header,
156283			HTTPStatusCode: res.StatusCode,
156284		},
156285	}
156286	target := &ret
156287	if err := gensupport.DecodeResponse(target, res); err != nil {
156288		return nil, err
156289	}
156290	return ret, nil
156291	// {
156292	//   "description": "Returns the specified TargetHttpProxy resource. Gets a list of available target HTTP proxies by making a list() request.",
156293	//   "httpMethod": "GET",
156294	//   "id": "compute.targetHttpProxies.get",
156295	//   "parameterOrder": [
156296	//     "project",
156297	//     "targetHttpProxy"
156298	//   ],
156299	//   "parameters": {
156300	//     "project": {
156301	//       "description": "Project ID for this request.",
156302	//       "location": "path",
156303	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156304	//       "required": true,
156305	//       "type": "string"
156306	//     },
156307	//     "targetHttpProxy": {
156308	//       "description": "Name of the TargetHttpProxy resource to return.",
156309	//       "location": "path",
156310	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156311	//       "required": true,
156312	//       "type": "string"
156313	//     }
156314	//   },
156315	//   "path": "{project}/global/targetHttpProxies/{targetHttpProxy}",
156316	//   "response": {
156317	//     "$ref": "TargetHttpProxy"
156318	//   },
156319	//   "scopes": [
156320	//     "https://www.googleapis.com/auth/cloud-platform",
156321	//     "https://www.googleapis.com/auth/compute",
156322	//     "https://www.googleapis.com/auth/compute.readonly"
156323	//   ]
156324	// }
156325
156326}
156327
156328// method id "compute.targetHttpProxies.insert":
156329
156330type TargetHttpProxiesInsertCall struct {
156331	s               *Service
156332	project         string
156333	targethttpproxy *TargetHttpProxy
156334	urlParams_      gensupport.URLParams
156335	ctx_            context.Context
156336	header_         http.Header
156337}
156338
156339// Insert: Creates a TargetHttpProxy resource in the specified project
156340// using the data included in the request.
156341// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/insert
156342func (r *TargetHttpProxiesService) Insert(project string, targethttpproxy *TargetHttpProxy) *TargetHttpProxiesInsertCall {
156343	c := &TargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156344	c.project = project
156345	c.targethttpproxy = targethttpproxy
156346	return c
156347}
156348
156349// RequestId sets the optional parameter "requestId": An optional
156350// request ID to identify requests. Specify a unique request ID so that
156351// if you must retry your request, the server will know to ignore the
156352// request if it has already been completed.
156353//
156354// For example, consider a situation where you make an initial request
156355// and the request times out. If you make the request again with the
156356// same request ID, the server can check if original operation with the
156357// same request ID was received, and if so, will ignore the second
156358// request. This prevents clients from accidentally creating duplicate
156359// commitments.
156360//
156361// The request ID must be a valid UUID with the exception that zero UUID
156362// is not supported (00000000-0000-0000-0000-000000000000).
156363func (c *TargetHttpProxiesInsertCall) RequestId(requestId string) *TargetHttpProxiesInsertCall {
156364	c.urlParams_.Set("requestId", requestId)
156365	return c
156366}
156367
156368// Fields allows partial responses to be retrieved. See
156369// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156370// for more information.
156371func (c *TargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpProxiesInsertCall {
156372	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156373	return c
156374}
156375
156376// Context sets the context to be used in this call's Do method. Any
156377// pending HTTP request will be aborted if the provided context is
156378// canceled.
156379func (c *TargetHttpProxiesInsertCall) Context(ctx context.Context) *TargetHttpProxiesInsertCall {
156380	c.ctx_ = ctx
156381	return c
156382}
156383
156384// Header returns an http.Header that can be modified by the caller to
156385// add HTTP headers to the request.
156386func (c *TargetHttpProxiesInsertCall) Header() http.Header {
156387	if c.header_ == nil {
156388		c.header_ = make(http.Header)
156389	}
156390	return c.header_
156391}
156392
156393func (c *TargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
156394	reqHeaders := make(http.Header)
156395	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
156396	for k, v := range c.header_ {
156397		reqHeaders[k] = v
156398	}
156399	reqHeaders.Set("User-Agent", c.s.userAgent())
156400	var body io.Reader = nil
156401	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
156402	if err != nil {
156403		return nil, err
156404	}
156405	reqHeaders.Set("Content-Type", "application/json")
156406	c.urlParams_.Set("alt", alt)
156407	c.urlParams_.Set("prettyPrint", "false")
156408	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies")
156409	urls += "?" + c.urlParams_.Encode()
156410	req, err := http.NewRequest("POST", urls, body)
156411	if err != nil {
156412		return nil, err
156413	}
156414	req.Header = reqHeaders
156415	googleapi.Expand(req.URL, map[string]string{
156416		"project": c.project,
156417	})
156418	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156419}
156420
156421// Do executes the "compute.targetHttpProxies.insert" call.
156422// Exactly one of *Operation or error will be non-nil. Any non-2xx
156423// status code is an error. Response headers are in either
156424// *Operation.ServerResponse.Header or (if a response was returned at
156425// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
156426// to check whether the returned error was because
156427// http.StatusNotModified was returned.
156428func (c *TargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
156429	gensupport.SetOptions(c.urlParams_, opts...)
156430	res, err := c.doRequest("json")
156431	if res != nil && res.StatusCode == http.StatusNotModified {
156432		if res.Body != nil {
156433			res.Body.Close()
156434		}
156435		return nil, &googleapi.Error{
156436			Code:   res.StatusCode,
156437			Header: res.Header,
156438		}
156439	}
156440	if err != nil {
156441		return nil, err
156442	}
156443	defer googleapi.CloseBody(res)
156444	if err := googleapi.CheckResponse(res); err != nil {
156445		return nil, err
156446	}
156447	ret := &Operation{
156448		ServerResponse: googleapi.ServerResponse{
156449			Header:         res.Header,
156450			HTTPStatusCode: res.StatusCode,
156451		},
156452	}
156453	target := &ret
156454	if err := gensupport.DecodeResponse(target, res); err != nil {
156455		return nil, err
156456	}
156457	return ret, nil
156458	// {
156459	//   "description": "Creates a TargetHttpProxy resource in the specified project using the data included in the request.",
156460	//   "httpMethod": "POST",
156461	//   "id": "compute.targetHttpProxies.insert",
156462	//   "parameterOrder": [
156463	//     "project"
156464	//   ],
156465	//   "parameters": {
156466	//     "project": {
156467	//       "description": "Project ID for this request.",
156468	//       "location": "path",
156469	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156470	//       "required": true,
156471	//       "type": "string"
156472	//     },
156473	//     "requestId": {
156474	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
156475	//       "location": "query",
156476	//       "type": "string"
156477	//     }
156478	//   },
156479	//   "path": "{project}/global/targetHttpProxies",
156480	//   "request": {
156481	//     "$ref": "TargetHttpProxy"
156482	//   },
156483	//   "response": {
156484	//     "$ref": "Operation"
156485	//   },
156486	//   "scopes": [
156487	//     "https://www.googleapis.com/auth/cloud-platform",
156488	//     "https://www.googleapis.com/auth/compute"
156489	//   ]
156490	// }
156491
156492}
156493
156494// method id "compute.targetHttpProxies.list":
156495
156496type TargetHttpProxiesListCall struct {
156497	s            *Service
156498	project      string
156499	urlParams_   gensupport.URLParams
156500	ifNoneMatch_ string
156501	ctx_         context.Context
156502	header_      http.Header
156503}
156504
156505// List: Retrieves the list of TargetHttpProxy resources available to
156506// the specified project.
156507// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/list
156508func (r *TargetHttpProxiesService) List(project string) *TargetHttpProxiesListCall {
156509	c := &TargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156510	c.project = project
156511	return c
156512}
156513
156514// Filter sets the optional parameter "filter": A filter expression that
156515// filters resources listed in the response. The expression must specify
156516// the field name, a comparison operator, and the value that you want to
156517// use for filtering. The value must be a string, a number, or a
156518// boolean. The comparison operator must be either =, !=, >, or <.
156519//
156520// For example, if you are filtering Compute Engine instances, you can
156521// exclude instances named example-instance by specifying name !=
156522// example-instance.
156523//
156524// You can also filter nested fields. For example, you could specify
156525// scheduling.automaticRestart = false to include instances only if they
156526// are not scheduled for automatic restarts. You can use filtering on
156527// nested fields to filter based on resource labels.
156528//
156529// To filter on multiple expressions, provide each separate expression
156530// within parentheses. For example, (scheduling.automaticRestart = true)
156531// (cpuPlatform = "Intel Skylake"). By default, each expression is an
156532// AND expression. However, you can include AND and OR expressions
156533// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
156534// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
156535// true).
156536func (c *TargetHttpProxiesListCall) Filter(filter string) *TargetHttpProxiesListCall {
156537	c.urlParams_.Set("filter", filter)
156538	return c
156539}
156540
156541// MaxResults sets the optional parameter "maxResults": The maximum
156542// number of results per page that should be returned. If the number of
156543// available results is larger than maxResults, Compute Engine returns a
156544// nextPageToken that can be used to get the next page of results in
156545// subsequent list requests. Acceptable values are 0 to 500, inclusive.
156546// (Default: 500)
156547func (c *TargetHttpProxiesListCall) MaxResults(maxResults int64) *TargetHttpProxiesListCall {
156548	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
156549	return c
156550}
156551
156552// OrderBy sets the optional parameter "orderBy": Sorts list results by
156553// a certain order. By default, results are returned in alphanumerical
156554// order based on the resource name.
156555//
156556// You can also sort results in descending order based on the creation
156557// timestamp using orderBy="creationTimestamp desc". This sorts results
156558// based on the creationTimestamp field in reverse chronological order
156559// (newest result first). Use this to sort resources like operations so
156560// that the newest operation is returned first.
156561//
156562// Currently, only sorting by name or creationTimestamp desc is
156563// supported.
156564func (c *TargetHttpProxiesListCall) OrderBy(orderBy string) *TargetHttpProxiesListCall {
156565	c.urlParams_.Set("orderBy", orderBy)
156566	return c
156567}
156568
156569// PageToken sets the optional parameter "pageToken": Specifies a page
156570// token to use. Set pageToken to the nextPageToken returned by a
156571// previous list request to get the next page of results.
156572func (c *TargetHttpProxiesListCall) PageToken(pageToken string) *TargetHttpProxiesListCall {
156573	c.urlParams_.Set("pageToken", pageToken)
156574	return c
156575}
156576
156577// Fields allows partial responses to be retrieved. See
156578// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156579// for more information.
156580func (c *TargetHttpProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesListCall {
156581	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156582	return c
156583}
156584
156585// IfNoneMatch sets the optional parameter which makes the operation
156586// fail if the object's ETag matches the given value. This is useful for
156587// getting updates only after the object has changed since the last
156588// request. Use googleapi.IsNotModified to check whether the response
156589// error from Do is the result of In-None-Match.
156590func (c *TargetHttpProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesListCall {
156591	c.ifNoneMatch_ = entityTag
156592	return c
156593}
156594
156595// Context sets the context to be used in this call's Do method. Any
156596// pending HTTP request will be aborted if the provided context is
156597// canceled.
156598func (c *TargetHttpProxiesListCall) Context(ctx context.Context) *TargetHttpProxiesListCall {
156599	c.ctx_ = ctx
156600	return c
156601}
156602
156603// Header returns an http.Header that can be modified by the caller to
156604// add HTTP headers to the request.
156605func (c *TargetHttpProxiesListCall) Header() http.Header {
156606	if c.header_ == nil {
156607		c.header_ = make(http.Header)
156608	}
156609	return c.header_
156610}
156611
156612func (c *TargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) {
156613	reqHeaders := make(http.Header)
156614	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
156615	for k, v := range c.header_ {
156616		reqHeaders[k] = v
156617	}
156618	reqHeaders.Set("User-Agent", c.s.userAgent())
156619	if c.ifNoneMatch_ != "" {
156620		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
156621	}
156622	var body io.Reader = nil
156623	c.urlParams_.Set("alt", alt)
156624	c.urlParams_.Set("prettyPrint", "false")
156625	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies")
156626	urls += "?" + c.urlParams_.Encode()
156627	req, err := http.NewRequest("GET", urls, body)
156628	if err != nil {
156629		return nil, err
156630	}
156631	req.Header = reqHeaders
156632	googleapi.Expand(req.URL, map[string]string{
156633		"project": c.project,
156634	})
156635	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156636}
156637
156638// Do executes the "compute.targetHttpProxies.list" call.
156639// Exactly one of *TargetHttpProxyList or error will be non-nil. Any
156640// non-2xx status code is an error. Response headers are in either
156641// *TargetHttpProxyList.ServerResponse.Header or (if a response was
156642// returned at all) in error.(*googleapi.Error).Header. Use
156643// googleapi.IsNotModified to check whether the returned error was
156644// because http.StatusNotModified was returned.
156645func (c *TargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, error) {
156646	gensupport.SetOptions(c.urlParams_, opts...)
156647	res, err := c.doRequest("json")
156648	if res != nil && res.StatusCode == http.StatusNotModified {
156649		if res.Body != nil {
156650			res.Body.Close()
156651		}
156652		return nil, &googleapi.Error{
156653			Code:   res.StatusCode,
156654			Header: res.Header,
156655		}
156656	}
156657	if err != nil {
156658		return nil, err
156659	}
156660	defer googleapi.CloseBody(res)
156661	if err := googleapi.CheckResponse(res); err != nil {
156662		return nil, err
156663	}
156664	ret := &TargetHttpProxyList{
156665		ServerResponse: googleapi.ServerResponse{
156666			Header:         res.Header,
156667			HTTPStatusCode: res.StatusCode,
156668		},
156669	}
156670	target := &ret
156671	if err := gensupport.DecodeResponse(target, res); err != nil {
156672		return nil, err
156673	}
156674	return ret, nil
156675	// {
156676	//   "description": "Retrieves the list of TargetHttpProxy resources available to the specified project.",
156677	//   "httpMethod": "GET",
156678	//   "id": "compute.targetHttpProxies.list",
156679	//   "parameterOrder": [
156680	//     "project"
156681	//   ],
156682	//   "parameters": {
156683	//     "filter": {
156684	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
156685	//       "location": "query",
156686	//       "type": "string"
156687	//     },
156688	//     "maxResults": {
156689	//       "default": "500",
156690	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
156691	//       "format": "uint32",
156692	//       "location": "query",
156693	//       "minimum": "0",
156694	//       "type": "integer"
156695	//     },
156696	//     "orderBy": {
156697	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
156698	//       "location": "query",
156699	//       "type": "string"
156700	//     },
156701	//     "pageToken": {
156702	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
156703	//       "location": "query",
156704	//       "type": "string"
156705	//     },
156706	//     "project": {
156707	//       "description": "Project ID for this request.",
156708	//       "location": "path",
156709	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156710	//       "required": true,
156711	//       "type": "string"
156712	//     }
156713	//   },
156714	//   "path": "{project}/global/targetHttpProxies",
156715	//   "response": {
156716	//     "$ref": "TargetHttpProxyList"
156717	//   },
156718	//   "scopes": [
156719	//     "https://www.googleapis.com/auth/cloud-platform",
156720	//     "https://www.googleapis.com/auth/compute",
156721	//     "https://www.googleapis.com/auth/compute.readonly"
156722	//   ]
156723	// }
156724
156725}
156726
156727// Pages invokes f for each page of results.
156728// A non-nil error returned from f will halt the iteration.
156729// The provided context supersedes any context provided to the Context method.
156730func (c *TargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error {
156731	c.ctx_ = ctx
156732	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
156733	for {
156734		x, err := c.Do()
156735		if err != nil {
156736			return err
156737		}
156738		if err := f(x); err != nil {
156739			return err
156740		}
156741		if x.NextPageToken == "" {
156742			return nil
156743		}
156744		c.PageToken(x.NextPageToken)
156745	}
156746}
156747
156748// method id "compute.targetHttpProxies.setUrlMap":
156749
156750type TargetHttpProxiesSetUrlMapCall struct {
156751	s               *Service
156752	project         string
156753	targetHttpProxy string
156754	urlmapreference *UrlMapReference
156755	urlParams_      gensupport.URLParams
156756	ctx_            context.Context
156757	header_         http.Header
156758}
156759
156760// SetUrlMap: Changes the URL map for TargetHttpProxy.
156761// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/setUrlMap
156762func (r *TargetHttpProxiesService) SetUrlMap(project string, targetHttpProxy string, urlmapreference *UrlMapReference) *TargetHttpProxiesSetUrlMapCall {
156763	c := &TargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156764	c.project = project
156765	c.targetHttpProxy = targetHttpProxy
156766	c.urlmapreference = urlmapreference
156767	return c
156768}
156769
156770// RequestId sets the optional parameter "requestId": An optional
156771// request ID to identify requests. Specify a unique request ID so that
156772// if you must retry your request, the server will know to ignore the
156773// request if it has already been completed.
156774//
156775// For example, consider a situation where you make an initial request
156776// and the request times out. If you make the request again with the
156777// same request ID, the server can check if original operation with the
156778// same request ID was received, and if so, will ignore the second
156779// request. This prevents clients from accidentally creating duplicate
156780// commitments.
156781//
156782// The request ID must be a valid UUID with the exception that zero UUID
156783// is not supported (00000000-0000-0000-0000-000000000000).
156784func (c *TargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpProxiesSetUrlMapCall {
156785	c.urlParams_.Set("requestId", requestId)
156786	return c
156787}
156788
156789// Fields allows partial responses to be retrieved. See
156790// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156791// for more information.
156792func (c *TargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpProxiesSetUrlMapCall {
156793	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156794	return c
156795}
156796
156797// Context sets the context to be used in this call's Do method. Any
156798// pending HTTP request will be aborted if the provided context is
156799// canceled.
156800func (c *TargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpProxiesSetUrlMapCall {
156801	c.ctx_ = ctx
156802	return c
156803}
156804
156805// Header returns an http.Header that can be modified by the caller to
156806// add HTTP headers to the request.
156807func (c *TargetHttpProxiesSetUrlMapCall) Header() http.Header {
156808	if c.header_ == nil {
156809		c.header_ = make(http.Header)
156810	}
156811	return c.header_
156812}
156813
156814func (c *TargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
156815	reqHeaders := make(http.Header)
156816	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
156817	for k, v := range c.header_ {
156818		reqHeaders[k] = v
156819	}
156820	reqHeaders.Set("User-Agent", c.s.userAgent())
156821	var body io.Reader = nil
156822	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
156823	if err != nil {
156824		return nil, err
156825	}
156826	reqHeaders.Set("Content-Type", "application/json")
156827	c.urlParams_.Set("alt", alt)
156828	c.urlParams_.Set("prettyPrint", "false")
156829	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap")
156830	urls += "?" + c.urlParams_.Encode()
156831	req, err := http.NewRequest("POST", urls, body)
156832	if err != nil {
156833		return nil, err
156834	}
156835	req.Header = reqHeaders
156836	googleapi.Expand(req.URL, map[string]string{
156837		"project":         c.project,
156838		"targetHttpProxy": c.targetHttpProxy,
156839	})
156840	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156841}
156842
156843// Do executes the "compute.targetHttpProxies.setUrlMap" call.
156844// Exactly one of *Operation or error will be non-nil. Any non-2xx
156845// status code is an error. Response headers are in either
156846// *Operation.ServerResponse.Header or (if a response was returned at
156847// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
156848// to check whether the returned error was because
156849// http.StatusNotModified was returned.
156850func (c *TargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
156851	gensupport.SetOptions(c.urlParams_, opts...)
156852	res, err := c.doRequest("json")
156853	if res != nil && res.StatusCode == http.StatusNotModified {
156854		if res.Body != nil {
156855			res.Body.Close()
156856		}
156857		return nil, &googleapi.Error{
156858			Code:   res.StatusCode,
156859			Header: res.Header,
156860		}
156861	}
156862	if err != nil {
156863		return nil, err
156864	}
156865	defer googleapi.CloseBody(res)
156866	if err := googleapi.CheckResponse(res); err != nil {
156867		return nil, err
156868	}
156869	ret := &Operation{
156870		ServerResponse: googleapi.ServerResponse{
156871			Header:         res.Header,
156872			HTTPStatusCode: res.StatusCode,
156873		},
156874	}
156875	target := &ret
156876	if err := gensupport.DecodeResponse(target, res); err != nil {
156877		return nil, err
156878	}
156879	return ret, nil
156880	// {
156881	//   "description": "Changes the URL map for TargetHttpProxy.",
156882	//   "httpMethod": "POST",
156883	//   "id": "compute.targetHttpProxies.setUrlMap",
156884	//   "parameterOrder": [
156885	//     "project",
156886	//     "targetHttpProxy"
156887	//   ],
156888	//   "parameters": {
156889	//     "project": {
156890	//       "description": "Project ID for this request.",
156891	//       "location": "path",
156892	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156893	//       "required": true,
156894	//       "type": "string"
156895	//     },
156896	//     "requestId": {
156897	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
156898	//       "location": "query",
156899	//       "type": "string"
156900	//     },
156901	//     "targetHttpProxy": {
156902	//       "description": "Name of the TargetHttpProxy to set a URL map for.",
156903	//       "location": "path",
156904	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156905	//       "required": true,
156906	//       "type": "string"
156907	//     }
156908	//   },
156909	//   "path": "{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
156910	//   "request": {
156911	//     "$ref": "UrlMapReference"
156912	//   },
156913	//   "response": {
156914	//     "$ref": "Operation"
156915	//   },
156916	//   "scopes": [
156917	//     "https://www.googleapis.com/auth/cloud-platform",
156918	//     "https://www.googleapis.com/auth/compute"
156919	//   ]
156920	// }
156921
156922}
156923
156924// method id "compute.targetHttpProxies.testIamPermissions":
156925
156926type TargetHttpProxiesTestIamPermissionsCall struct {
156927	s                      *Service
156928	project                string
156929	resource               string
156930	testpermissionsrequest *TestPermissionsRequest
156931	urlParams_             gensupport.URLParams
156932	ctx_                   context.Context
156933	header_                http.Header
156934}
156935
156936// TestIamPermissions: Returns permissions that a caller has on the
156937// specified resource.
156938func (r *TargetHttpProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetHttpProxiesTestIamPermissionsCall {
156939	c := &TargetHttpProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156940	c.project = project
156941	c.resource = resource
156942	c.testpermissionsrequest = testpermissionsrequest
156943	return c
156944}
156945
156946// Fields allows partial responses to be retrieved. See
156947// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156948// for more information.
156949func (c *TargetHttpProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetHttpProxiesTestIamPermissionsCall {
156950	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156951	return c
156952}
156953
156954// Context sets the context to be used in this call's Do method. Any
156955// pending HTTP request will be aborted if the provided context is
156956// canceled.
156957func (c *TargetHttpProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetHttpProxiesTestIamPermissionsCall {
156958	c.ctx_ = ctx
156959	return c
156960}
156961
156962// Header returns an http.Header that can be modified by the caller to
156963// add HTTP headers to the request.
156964func (c *TargetHttpProxiesTestIamPermissionsCall) Header() http.Header {
156965	if c.header_ == nil {
156966		c.header_ = make(http.Header)
156967	}
156968	return c.header_
156969}
156970
156971func (c *TargetHttpProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
156972	reqHeaders := make(http.Header)
156973	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
156974	for k, v := range c.header_ {
156975		reqHeaders[k] = v
156976	}
156977	reqHeaders.Set("User-Agent", c.s.userAgent())
156978	var body io.Reader = nil
156979	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
156980	if err != nil {
156981		return nil, err
156982	}
156983	reqHeaders.Set("Content-Type", "application/json")
156984	c.urlParams_.Set("alt", alt)
156985	c.urlParams_.Set("prettyPrint", "false")
156986	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies/{resource}/testIamPermissions")
156987	urls += "?" + c.urlParams_.Encode()
156988	req, err := http.NewRequest("POST", urls, body)
156989	if err != nil {
156990		return nil, err
156991	}
156992	req.Header = reqHeaders
156993	googleapi.Expand(req.URL, map[string]string{
156994		"project":  c.project,
156995		"resource": c.resource,
156996	})
156997	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156998}
156999
157000// Do executes the "compute.targetHttpProxies.testIamPermissions" call.
157001// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
157002// non-2xx status code is an error. Response headers are in either
157003// *TestPermissionsResponse.ServerResponse.Header or (if a response was
157004// returned at all) in error.(*googleapi.Error).Header. Use
157005// googleapi.IsNotModified to check whether the returned error was
157006// because http.StatusNotModified was returned.
157007func (c *TargetHttpProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
157008	gensupport.SetOptions(c.urlParams_, opts...)
157009	res, err := c.doRequest("json")
157010	if res != nil && res.StatusCode == http.StatusNotModified {
157011		if res.Body != nil {
157012			res.Body.Close()
157013		}
157014		return nil, &googleapi.Error{
157015			Code:   res.StatusCode,
157016			Header: res.Header,
157017		}
157018	}
157019	if err != nil {
157020		return nil, err
157021	}
157022	defer googleapi.CloseBody(res)
157023	if err := googleapi.CheckResponse(res); err != nil {
157024		return nil, err
157025	}
157026	ret := &TestPermissionsResponse{
157027		ServerResponse: googleapi.ServerResponse{
157028			Header:         res.Header,
157029			HTTPStatusCode: res.StatusCode,
157030		},
157031	}
157032	target := &ret
157033	if err := gensupport.DecodeResponse(target, res); err != nil {
157034		return nil, err
157035	}
157036	return ret, nil
157037	// {
157038	//   "description": "Returns permissions that a caller has on the specified resource.",
157039	//   "httpMethod": "POST",
157040	//   "id": "compute.targetHttpProxies.testIamPermissions",
157041	//   "parameterOrder": [
157042	//     "project",
157043	//     "resource"
157044	//   ],
157045	//   "parameters": {
157046	//     "project": {
157047	//       "description": "Project ID for this request.",
157048	//       "location": "path",
157049	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157050	//       "required": true,
157051	//       "type": "string"
157052	//     },
157053	//     "resource": {
157054	//       "description": "Name or id of the resource for this request.",
157055	//       "location": "path",
157056	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157057	//       "required": true,
157058	//       "type": "string"
157059	//     }
157060	//   },
157061	//   "path": "{project}/global/targetHttpProxies/{resource}/testIamPermissions",
157062	//   "request": {
157063	//     "$ref": "TestPermissionsRequest"
157064	//   },
157065	//   "response": {
157066	//     "$ref": "TestPermissionsResponse"
157067	//   },
157068	//   "scopes": [
157069	//     "https://www.googleapis.com/auth/cloud-platform",
157070	//     "https://www.googleapis.com/auth/compute",
157071	//     "https://www.googleapis.com/auth/compute.readonly"
157072	//   ]
157073	// }
157074
157075}
157076
157077// method id "compute.targetHttpsProxies.aggregatedList":
157078
157079type TargetHttpsProxiesAggregatedListCall struct {
157080	s            *Service
157081	project      string
157082	urlParams_   gensupport.URLParams
157083	ifNoneMatch_ string
157084	ctx_         context.Context
157085	header_      http.Header
157086}
157087
157088// AggregatedList: Retrieves the list of all TargetHttpsProxy resources,
157089// regional and global, available to the specified project.
157090func (r *TargetHttpsProxiesService) AggregatedList(project string) *TargetHttpsProxiesAggregatedListCall {
157091	c := &TargetHttpsProxiesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157092	c.project = project
157093	return c
157094}
157095
157096// Filter sets the optional parameter "filter": A filter expression that
157097// filters resources listed in the response. The expression must specify
157098// the field name, a comparison operator, and the value that you want to
157099// use for filtering. The value must be a string, a number, or a
157100// boolean. The comparison operator must be either =, !=, >, or <.
157101//
157102// For example, if you are filtering Compute Engine instances, you can
157103// exclude instances named example-instance by specifying name !=
157104// example-instance.
157105//
157106// You can also filter nested fields. For example, you could specify
157107// scheduling.automaticRestart = false to include instances only if they
157108// are not scheduled for automatic restarts. You can use filtering on
157109// nested fields to filter based on resource labels.
157110//
157111// To filter on multiple expressions, provide each separate expression
157112// within parentheses. For example, (scheduling.automaticRestart = true)
157113// (cpuPlatform = "Intel Skylake"). By default, each expression is an
157114// AND expression. However, you can include AND and OR expressions
157115// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
157116// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
157117// true).
157118func (c *TargetHttpsProxiesAggregatedListCall) Filter(filter string) *TargetHttpsProxiesAggregatedListCall {
157119	c.urlParams_.Set("filter", filter)
157120	return c
157121}
157122
157123// IncludeAllScopes sets the optional parameter "includeAllScopes":
157124// Indicates whether every visible scope for each scope type (zone,
157125// region, global) should be included in the response. For new resource
157126// types added after this field, the flag has no effect as new resource
157127// types will always include every visible scope for each scope type in
157128// response. For resource types which predate this field, if this flag
157129// is omitted or false, only scopes of the scope types where the
157130// resource type is expected to be found will be included.
157131func (c *TargetHttpsProxiesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetHttpsProxiesAggregatedListCall {
157132	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
157133	return c
157134}
157135
157136// MaxResults sets the optional parameter "maxResults": The maximum
157137// number of results per page that should be returned. If the number of
157138// available results is larger than maxResults, Compute Engine returns a
157139// nextPageToken that can be used to get the next page of results in
157140// subsequent list requests. Acceptable values are 0 to 500, inclusive.
157141// (Default: 500)
157142func (c *TargetHttpsProxiesAggregatedListCall) MaxResults(maxResults int64) *TargetHttpsProxiesAggregatedListCall {
157143	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
157144	return c
157145}
157146
157147// OrderBy sets the optional parameter "orderBy": Sorts list results by
157148// a certain order. By default, results are returned in alphanumerical
157149// order based on the resource name.
157150//
157151// You can also sort results in descending order based on the creation
157152// timestamp using orderBy="creationTimestamp desc". This sorts results
157153// based on the creationTimestamp field in reverse chronological order
157154// (newest result first). Use this to sort resources like operations so
157155// that the newest operation is returned first.
157156//
157157// Currently, only sorting by name or creationTimestamp desc is
157158// supported.
157159func (c *TargetHttpsProxiesAggregatedListCall) OrderBy(orderBy string) *TargetHttpsProxiesAggregatedListCall {
157160	c.urlParams_.Set("orderBy", orderBy)
157161	return c
157162}
157163
157164// PageToken sets the optional parameter "pageToken": Specifies a page
157165// token to use. Set pageToken to the nextPageToken returned by a
157166// previous list request to get the next page of results.
157167func (c *TargetHttpsProxiesAggregatedListCall) PageToken(pageToken string) *TargetHttpsProxiesAggregatedListCall {
157168	c.urlParams_.Set("pageToken", pageToken)
157169	return c
157170}
157171
157172// Fields allows partial responses to be retrieved. See
157173// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157174// for more information.
157175func (c *TargetHttpsProxiesAggregatedListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesAggregatedListCall {
157176	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157177	return c
157178}
157179
157180// IfNoneMatch sets the optional parameter which makes the operation
157181// fail if the object's ETag matches the given value. This is useful for
157182// getting updates only after the object has changed since the last
157183// request. Use googleapi.IsNotModified to check whether the response
157184// error from Do is the result of In-None-Match.
157185func (c *TargetHttpsProxiesAggregatedListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesAggregatedListCall {
157186	c.ifNoneMatch_ = entityTag
157187	return c
157188}
157189
157190// Context sets the context to be used in this call's Do method. Any
157191// pending HTTP request will be aborted if the provided context is
157192// canceled.
157193func (c *TargetHttpsProxiesAggregatedListCall) Context(ctx context.Context) *TargetHttpsProxiesAggregatedListCall {
157194	c.ctx_ = ctx
157195	return c
157196}
157197
157198// Header returns an http.Header that can be modified by the caller to
157199// add HTTP headers to the request.
157200func (c *TargetHttpsProxiesAggregatedListCall) Header() http.Header {
157201	if c.header_ == nil {
157202		c.header_ = make(http.Header)
157203	}
157204	return c.header_
157205}
157206
157207func (c *TargetHttpsProxiesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
157208	reqHeaders := make(http.Header)
157209	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
157210	for k, v := range c.header_ {
157211		reqHeaders[k] = v
157212	}
157213	reqHeaders.Set("User-Agent", c.s.userAgent())
157214	if c.ifNoneMatch_ != "" {
157215		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
157216	}
157217	var body io.Reader = nil
157218	c.urlParams_.Set("alt", alt)
157219	c.urlParams_.Set("prettyPrint", "false")
157220	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetHttpsProxies")
157221	urls += "?" + c.urlParams_.Encode()
157222	req, err := http.NewRequest("GET", urls, body)
157223	if err != nil {
157224		return nil, err
157225	}
157226	req.Header = reqHeaders
157227	googleapi.Expand(req.URL, map[string]string{
157228		"project": c.project,
157229	})
157230	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157231}
157232
157233// Do executes the "compute.targetHttpsProxies.aggregatedList" call.
157234// Exactly one of *TargetHttpsProxyAggregatedList or error will be
157235// non-nil. Any non-2xx status code is an error. Response headers are in
157236// either *TargetHttpsProxyAggregatedList.ServerResponse.Header or (if a
157237// response was returned at all) in error.(*googleapi.Error).Header. Use
157238// googleapi.IsNotModified to check whether the returned error was
157239// because http.StatusNotModified was returned.
157240func (c *TargetHttpsProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyAggregatedList, error) {
157241	gensupport.SetOptions(c.urlParams_, opts...)
157242	res, err := c.doRequest("json")
157243	if res != nil && res.StatusCode == http.StatusNotModified {
157244		if res.Body != nil {
157245			res.Body.Close()
157246		}
157247		return nil, &googleapi.Error{
157248			Code:   res.StatusCode,
157249			Header: res.Header,
157250		}
157251	}
157252	if err != nil {
157253		return nil, err
157254	}
157255	defer googleapi.CloseBody(res)
157256	if err := googleapi.CheckResponse(res); err != nil {
157257		return nil, err
157258	}
157259	ret := &TargetHttpsProxyAggregatedList{
157260		ServerResponse: googleapi.ServerResponse{
157261			Header:         res.Header,
157262			HTTPStatusCode: res.StatusCode,
157263		},
157264	}
157265	target := &ret
157266	if err := gensupport.DecodeResponse(target, res); err != nil {
157267		return nil, err
157268	}
157269	return ret, nil
157270	// {
157271	//   "description": "Retrieves the list of all TargetHttpsProxy resources, regional and global, available to the specified project.",
157272	//   "httpMethod": "GET",
157273	//   "id": "compute.targetHttpsProxies.aggregatedList",
157274	//   "parameterOrder": [
157275	//     "project"
157276	//   ],
157277	//   "parameters": {
157278	//     "filter": {
157279	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
157280	//       "location": "query",
157281	//       "type": "string"
157282	//     },
157283	//     "includeAllScopes": {
157284	//       "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.",
157285	//       "location": "query",
157286	//       "type": "boolean"
157287	//     },
157288	//     "maxResults": {
157289	//       "default": "500",
157290	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
157291	//       "format": "uint32",
157292	//       "location": "query",
157293	//       "minimum": "0",
157294	//       "type": "integer"
157295	//     },
157296	//     "orderBy": {
157297	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
157298	//       "location": "query",
157299	//       "type": "string"
157300	//     },
157301	//     "pageToken": {
157302	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
157303	//       "location": "query",
157304	//       "type": "string"
157305	//     },
157306	//     "project": {
157307	//       "description": "Name of the project scoping this request.",
157308	//       "location": "path",
157309	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157310	//       "required": true,
157311	//       "type": "string"
157312	//     }
157313	//   },
157314	//   "path": "{project}/aggregated/targetHttpsProxies",
157315	//   "response": {
157316	//     "$ref": "TargetHttpsProxyAggregatedList"
157317	//   },
157318	//   "scopes": [
157319	//     "https://www.googleapis.com/auth/cloud-platform",
157320	//     "https://www.googleapis.com/auth/compute",
157321	//     "https://www.googleapis.com/auth/compute.readonly"
157322	//   ]
157323	// }
157324
157325}
157326
157327// Pages invokes f for each page of results.
157328// A non-nil error returned from f will halt the iteration.
157329// The provided context supersedes any context provided to the Context method.
157330func (c *TargetHttpsProxiesAggregatedListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyAggregatedList) error) error {
157331	c.ctx_ = ctx
157332	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
157333	for {
157334		x, err := c.Do()
157335		if err != nil {
157336			return err
157337		}
157338		if err := f(x); err != nil {
157339			return err
157340		}
157341		if x.NextPageToken == "" {
157342			return nil
157343		}
157344		c.PageToken(x.NextPageToken)
157345	}
157346}
157347
157348// method id "compute.targetHttpsProxies.delete":
157349
157350type TargetHttpsProxiesDeleteCall struct {
157351	s                *Service
157352	project          string
157353	targetHttpsProxy string
157354	urlParams_       gensupport.URLParams
157355	ctx_             context.Context
157356	header_          http.Header
157357}
157358
157359// Delete: Deletes the specified TargetHttpsProxy resource.
157360func (r *TargetHttpsProxiesService) Delete(project string, targetHttpsProxy string) *TargetHttpsProxiesDeleteCall {
157361	c := &TargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157362	c.project = project
157363	c.targetHttpsProxy = targetHttpsProxy
157364	return c
157365}
157366
157367// RequestId sets the optional parameter "requestId": An optional
157368// request ID to identify requests. Specify a unique request ID so that
157369// if you must retry your request, the server will know to ignore the
157370// request if it has already been completed.
157371//
157372// For example, consider a situation where you make an initial request
157373// and the request times out. If you make the request again with the
157374// same request ID, the server can check if original operation with the
157375// same request ID was received, and if so, will ignore the second
157376// request. This prevents clients from accidentally creating duplicate
157377// commitments.
157378//
157379// The request ID must be a valid UUID with the exception that zero UUID
157380// is not supported (00000000-0000-0000-0000-000000000000).
157381func (c *TargetHttpsProxiesDeleteCall) RequestId(requestId string) *TargetHttpsProxiesDeleteCall {
157382	c.urlParams_.Set("requestId", requestId)
157383	return c
157384}
157385
157386// Fields allows partial responses to be retrieved. See
157387// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157388// for more information.
157389func (c *TargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesDeleteCall {
157390	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157391	return c
157392}
157393
157394// Context sets the context to be used in this call's Do method. Any
157395// pending HTTP request will be aborted if the provided context is
157396// canceled.
157397func (c *TargetHttpsProxiesDeleteCall) Context(ctx context.Context) *TargetHttpsProxiesDeleteCall {
157398	c.ctx_ = ctx
157399	return c
157400}
157401
157402// Header returns an http.Header that can be modified by the caller to
157403// add HTTP headers to the request.
157404func (c *TargetHttpsProxiesDeleteCall) Header() http.Header {
157405	if c.header_ == nil {
157406		c.header_ = make(http.Header)
157407	}
157408	return c.header_
157409}
157410
157411func (c *TargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
157412	reqHeaders := make(http.Header)
157413	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
157414	for k, v := range c.header_ {
157415		reqHeaders[k] = v
157416	}
157417	reqHeaders.Set("User-Agent", c.s.userAgent())
157418	var body io.Reader = nil
157419	c.urlParams_.Set("alt", alt)
157420	c.urlParams_.Set("prettyPrint", "false")
157421	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}")
157422	urls += "?" + c.urlParams_.Encode()
157423	req, err := http.NewRequest("DELETE", urls, body)
157424	if err != nil {
157425		return nil, err
157426	}
157427	req.Header = reqHeaders
157428	googleapi.Expand(req.URL, map[string]string{
157429		"project":          c.project,
157430		"targetHttpsProxy": c.targetHttpsProxy,
157431	})
157432	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157433}
157434
157435// Do executes the "compute.targetHttpsProxies.delete" call.
157436// Exactly one of *Operation or error will be non-nil. Any non-2xx
157437// status code is an error. Response headers are in either
157438// *Operation.ServerResponse.Header or (if a response was returned at
157439// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
157440// to check whether the returned error was because
157441// http.StatusNotModified was returned.
157442func (c *TargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
157443	gensupport.SetOptions(c.urlParams_, opts...)
157444	res, err := c.doRequest("json")
157445	if res != nil && res.StatusCode == http.StatusNotModified {
157446		if res.Body != nil {
157447			res.Body.Close()
157448		}
157449		return nil, &googleapi.Error{
157450			Code:   res.StatusCode,
157451			Header: res.Header,
157452		}
157453	}
157454	if err != nil {
157455		return nil, err
157456	}
157457	defer googleapi.CloseBody(res)
157458	if err := googleapi.CheckResponse(res); err != nil {
157459		return nil, err
157460	}
157461	ret := &Operation{
157462		ServerResponse: googleapi.ServerResponse{
157463			Header:         res.Header,
157464			HTTPStatusCode: res.StatusCode,
157465		},
157466	}
157467	target := &ret
157468	if err := gensupport.DecodeResponse(target, res); err != nil {
157469		return nil, err
157470	}
157471	return ret, nil
157472	// {
157473	//   "description": "Deletes the specified TargetHttpsProxy resource.",
157474	//   "httpMethod": "DELETE",
157475	//   "id": "compute.targetHttpsProxies.delete",
157476	//   "parameterOrder": [
157477	//     "project",
157478	//     "targetHttpsProxy"
157479	//   ],
157480	//   "parameters": {
157481	//     "project": {
157482	//       "description": "Project ID for this request.",
157483	//       "location": "path",
157484	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157485	//       "required": true,
157486	//       "type": "string"
157487	//     },
157488	//     "requestId": {
157489	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
157490	//       "location": "query",
157491	//       "type": "string"
157492	//     },
157493	//     "targetHttpsProxy": {
157494	//       "description": "Name of the TargetHttpsProxy resource to delete.",
157495	//       "location": "path",
157496	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157497	//       "required": true,
157498	//       "type": "string"
157499	//     }
157500	//   },
157501	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}",
157502	//   "response": {
157503	//     "$ref": "Operation"
157504	//   },
157505	//   "scopes": [
157506	//     "https://www.googleapis.com/auth/cloud-platform",
157507	//     "https://www.googleapis.com/auth/compute"
157508	//   ]
157509	// }
157510
157511}
157512
157513// method id "compute.targetHttpsProxies.get":
157514
157515type TargetHttpsProxiesGetCall struct {
157516	s                *Service
157517	project          string
157518	targetHttpsProxy string
157519	urlParams_       gensupport.URLParams
157520	ifNoneMatch_     string
157521	ctx_             context.Context
157522	header_          http.Header
157523}
157524
157525// Get: Returns the specified TargetHttpsProxy resource. Gets a list of
157526// available target HTTPS proxies by making a list() request.
157527func (r *TargetHttpsProxiesService) Get(project string, targetHttpsProxy string) *TargetHttpsProxiesGetCall {
157528	c := &TargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157529	c.project = project
157530	c.targetHttpsProxy = targetHttpsProxy
157531	return c
157532}
157533
157534// Fields allows partial responses to be retrieved. See
157535// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157536// for more information.
157537func (c *TargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesGetCall {
157538	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157539	return c
157540}
157541
157542// IfNoneMatch sets the optional parameter which makes the operation
157543// fail if the object's ETag matches the given value. This is useful for
157544// getting updates only after the object has changed since the last
157545// request. Use googleapi.IsNotModified to check whether the response
157546// error from Do is the result of In-None-Match.
157547func (c *TargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesGetCall {
157548	c.ifNoneMatch_ = entityTag
157549	return c
157550}
157551
157552// Context sets the context to be used in this call's Do method. Any
157553// pending HTTP request will be aborted if the provided context is
157554// canceled.
157555func (c *TargetHttpsProxiesGetCall) Context(ctx context.Context) *TargetHttpsProxiesGetCall {
157556	c.ctx_ = ctx
157557	return c
157558}
157559
157560// Header returns an http.Header that can be modified by the caller to
157561// add HTTP headers to the request.
157562func (c *TargetHttpsProxiesGetCall) Header() http.Header {
157563	if c.header_ == nil {
157564		c.header_ = make(http.Header)
157565	}
157566	return c.header_
157567}
157568
157569func (c *TargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) {
157570	reqHeaders := make(http.Header)
157571	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
157572	for k, v := range c.header_ {
157573		reqHeaders[k] = v
157574	}
157575	reqHeaders.Set("User-Agent", c.s.userAgent())
157576	if c.ifNoneMatch_ != "" {
157577		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
157578	}
157579	var body io.Reader = nil
157580	c.urlParams_.Set("alt", alt)
157581	c.urlParams_.Set("prettyPrint", "false")
157582	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}")
157583	urls += "?" + c.urlParams_.Encode()
157584	req, err := http.NewRequest("GET", urls, body)
157585	if err != nil {
157586		return nil, err
157587	}
157588	req.Header = reqHeaders
157589	googleapi.Expand(req.URL, map[string]string{
157590		"project":          c.project,
157591		"targetHttpsProxy": c.targetHttpsProxy,
157592	})
157593	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157594}
157595
157596// Do executes the "compute.targetHttpsProxies.get" call.
157597// Exactly one of *TargetHttpsProxy or error will be non-nil. Any
157598// non-2xx status code is an error. Response headers are in either
157599// *TargetHttpsProxy.ServerResponse.Header or (if a response was
157600// returned at all) in error.(*googleapi.Error).Header. Use
157601// googleapi.IsNotModified to check whether the returned error was
157602// because http.StatusNotModified was returned.
157603func (c *TargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) {
157604	gensupport.SetOptions(c.urlParams_, opts...)
157605	res, err := c.doRequest("json")
157606	if res != nil && res.StatusCode == http.StatusNotModified {
157607		if res.Body != nil {
157608			res.Body.Close()
157609		}
157610		return nil, &googleapi.Error{
157611			Code:   res.StatusCode,
157612			Header: res.Header,
157613		}
157614	}
157615	if err != nil {
157616		return nil, err
157617	}
157618	defer googleapi.CloseBody(res)
157619	if err := googleapi.CheckResponse(res); err != nil {
157620		return nil, err
157621	}
157622	ret := &TargetHttpsProxy{
157623		ServerResponse: googleapi.ServerResponse{
157624			Header:         res.Header,
157625			HTTPStatusCode: res.StatusCode,
157626		},
157627	}
157628	target := &ret
157629	if err := gensupport.DecodeResponse(target, res); err != nil {
157630		return nil, err
157631	}
157632	return ret, nil
157633	// {
157634	//   "description": "Returns the specified TargetHttpsProxy resource. Gets a list of available target HTTPS proxies by making a list() request.",
157635	//   "httpMethod": "GET",
157636	//   "id": "compute.targetHttpsProxies.get",
157637	//   "parameterOrder": [
157638	//     "project",
157639	//     "targetHttpsProxy"
157640	//   ],
157641	//   "parameters": {
157642	//     "project": {
157643	//       "description": "Project ID for this request.",
157644	//       "location": "path",
157645	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157646	//       "required": true,
157647	//       "type": "string"
157648	//     },
157649	//     "targetHttpsProxy": {
157650	//       "description": "Name of the TargetHttpsProxy resource to return.",
157651	//       "location": "path",
157652	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157653	//       "required": true,
157654	//       "type": "string"
157655	//     }
157656	//   },
157657	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}",
157658	//   "response": {
157659	//     "$ref": "TargetHttpsProxy"
157660	//   },
157661	//   "scopes": [
157662	//     "https://www.googleapis.com/auth/cloud-platform",
157663	//     "https://www.googleapis.com/auth/compute",
157664	//     "https://www.googleapis.com/auth/compute.readonly"
157665	//   ]
157666	// }
157667
157668}
157669
157670// method id "compute.targetHttpsProxies.insert":
157671
157672type TargetHttpsProxiesInsertCall struct {
157673	s                *Service
157674	project          string
157675	targethttpsproxy *TargetHttpsProxy
157676	urlParams_       gensupport.URLParams
157677	ctx_             context.Context
157678	header_          http.Header
157679}
157680
157681// Insert: Creates a TargetHttpsProxy resource in the specified project
157682// using the data included in the request.
157683func (r *TargetHttpsProxiesService) Insert(project string, targethttpsproxy *TargetHttpsProxy) *TargetHttpsProxiesInsertCall {
157684	c := &TargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157685	c.project = project
157686	c.targethttpsproxy = targethttpsproxy
157687	return c
157688}
157689
157690// RequestId sets the optional parameter "requestId": An optional
157691// request ID to identify requests. Specify a unique request ID so that
157692// if you must retry your request, the server will know to ignore the
157693// request if it has already been completed.
157694//
157695// For example, consider a situation where you make an initial request
157696// and the request times out. If you make the request again with the
157697// same request ID, the server can check if original operation with the
157698// same request ID was received, and if so, will ignore the second
157699// request. This prevents clients from accidentally creating duplicate
157700// commitments.
157701//
157702// The request ID must be a valid UUID with the exception that zero UUID
157703// is not supported (00000000-0000-0000-0000-000000000000).
157704func (c *TargetHttpsProxiesInsertCall) RequestId(requestId string) *TargetHttpsProxiesInsertCall {
157705	c.urlParams_.Set("requestId", requestId)
157706	return c
157707}
157708
157709// Fields allows partial responses to be retrieved. See
157710// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157711// for more information.
157712func (c *TargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesInsertCall {
157713	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157714	return c
157715}
157716
157717// Context sets the context to be used in this call's Do method. Any
157718// pending HTTP request will be aborted if the provided context is
157719// canceled.
157720func (c *TargetHttpsProxiesInsertCall) Context(ctx context.Context) *TargetHttpsProxiesInsertCall {
157721	c.ctx_ = ctx
157722	return c
157723}
157724
157725// Header returns an http.Header that can be modified by the caller to
157726// add HTTP headers to the request.
157727func (c *TargetHttpsProxiesInsertCall) Header() http.Header {
157728	if c.header_ == nil {
157729		c.header_ = make(http.Header)
157730	}
157731	return c.header_
157732}
157733
157734func (c *TargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
157735	reqHeaders := make(http.Header)
157736	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
157737	for k, v := range c.header_ {
157738		reqHeaders[k] = v
157739	}
157740	reqHeaders.Set("User-Agent", c.s.userAgent())
157741	var body io.Reader = nil
157742	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
157743	if err != nil {
157744		return nil, err
157745	}
157746	reqHeaders.Set("Content-Type", "application/json")
157747	c.urlParams_.Set("alt", alt)
157748	c.urlParams_.Set("prettyPrint", "false")
157749	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies")
157750	urls += "?" + c.urlParams_.Encode()
157751	req, err := http.NewRequest("POST", urls, body)
157752	if err != nil {
157753		return nil, err
157754	}
157755	req.Header = reqHeaders
157756	googleapi.Expand(req.URL, map[string]string{
157757		"project": c.project,
157758	})
157759	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157760}
157761
157762// Do executes the "compute.targetHttpsProxies.insert" call.
157763// Exactly one of *Operation or error will be non-nil. Any non-2xx
157764// status code is an error. Response headers are in either
157765// *Operation.ServerResponse.Header or (if a response was returned at
157766// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
157767// to check whether the returned error was because
157768// http.StatusNotModified was returned.
157769func (c *TargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
157770	gensupport.SetOptions(c.urlParams_, opts...)
157771	res, err := c.doRequest("json")
157772	if res != nil && res.StatusCode == http.StatusNotModified {
157773		if res.Body != nil {
157774			res.Body.Close()
157775		}
157776		return nil, &googleapi.Error{
157777			Code:   res.StatusCode,
157778			Header: res.Header,
157779		}
157780	}
157781	if err != nil {
157782		return nil, err
157783	}
157784	defer googleapi.CloseBody(res)
157785	if err := googleapi.CheckResponse(res); err != nil {
157786		return nil, err
157787	}
157788	ret := &Operation{
157789		ServerResponse: googleapi.ServerResponse{
157790			Header:         res.Header,
157791			HTTPStatusCode: res.StatusCode,
157792		},
157793	}
157794	target := &ret
157795	if err := gensupport.DecodeResponse(target, res); err != nil {
157796		return nil, err
157797	}
157798	return ret, nil
157799	// {
157800	//   "description": "Creates a TargetHttpsProxy resource in the specified project using the data included in the request.",
157801	//   "httpMethod": "POST",
157802	//   "id": "compute.targetHttpsProxies.insert",
157803	//   "parameterOrder": [
157804	//     "project"
157805	//   ],
157806	//   "parameters": {
157807	//     "project": {
157808	//       "description": "Project ID for this request.",
157809	//       "location": "path",
157810	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157811	//       "required": true,
157812	//       "type": "string"
157813	//     },
157814	//     "requestId": {
157815	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
157816	//       "location": "query",
157817	//       "type": "string"
157818	//     }
157819	//   },
157820	//   "path": "{project}/global/targetHttpsProxies",
157821	//   "request": {
157822	//     "$ref": "TargetHttpsProxy"
157823	//   },
157824	//   "response": {
157825	//     "$ref": "Operation"
157826	//   },
157827	//   "scopes": [
157828	//     "https://www.googleapis.com/auth/cloud-platform",
157829	//     "https://www.googleapis.com/auth/compute"
157830	//   ]
157831	// }
157832
157833}
157834
157835// method id "compute.targetHttpsProxies.list":
157836
157837type TargetHttpsProxiesListCall struct {
157838	s            *Service
157839	project      string
157840	urlParams_   gensupport.URLParams
157841	ifNoneMatch_ string
157842	ctx_         context.Context
157843	header_      http.Header
157844}
157845
157846// List: Retrieves the list of TargetHttpsProxy resources available to
157847// the specified project.
157848func (r *TargetHttpsProxiesService) List(project string) *TargetHttpsProxiesListCall {
157849	c := &TargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157850	c.project = project
157851	return c
157852}
157853
157854// Filter sets the optional parameter "filter": A filter expression that
157855// filters resources listed in the response. The expression must specify
157856// the field name, a comparison operator, and the value that you want to
157857// use for filtering. The value must be a string, a number, or a
157858// boolean. The comparison operator must be either =, !=, >, or <.
157859//
157860// For example, if you are filtering Compute Engine instances, you can
157861// exclude instances named example-instance by specifying name !=
157862// example-instance.
157863//
157864// You can also filter nested fields. For example, you could specify
157865// scheduling.automaticRestart = false to include instances only if they
157866// are not scheduled for automatic restarts. You can use filtering on
157867// nested fields to filter based on resource labels.
157868//
157869// To filter on multiple expressions, provide each separate expression
157870// within parentheses. For example, (scheduling.automaticRestart = true)
157871// (cpuPlatform = "Intel Skylake"). By default, each expression is an
157872// AND expression. However, you can include AND and OR expressions
157873// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
157874// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
157875// true).
157876func (c *TargetHttpsProxiesListCall) Filter(filter string) *TargetHttpsProxiesListCall {
157877	c.urlParams_.Set("filter", filter)
157878	return c
157879}
157880
157881// MaxResults sets the optional parameter "maxResults": The maximum
157882// number of results per page that should be returned. If the number of
157883// available results is larger than maxResults, Compute Engine returns a
157884// nextPageToken that can be used to get the next page of results in
157885// subsequent list requests. Acceptable values are 0 to 500, inclusive.
157886// (Default: 500)
157887func (c *TargetHttpsProxiesListCall) MaxResults(maxResults int64) *TargetHttpsProxiesListCall {
157888	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
157889	return c
157890}
157891
157892// OrderBy sets the optional parameter "orderBy": Sorts list results by
157893// a certain order. By default, results are returned in alphanumerical
157894// order based on the resource name.
157895//
157896// You can also sort results in descending order based on the creation
157897// timestamp using orderBy="creationTimestamp desc". This sorts results
157898// based on the creationTimestamp field in reverse chronological order
157899// (newest result first). Use this to sort resources like operations so
157900// that the newest operation is returned first.
157901//
157902// Currently, only sorting by name or creationTimestamp desc is
157903// supported.
157904func (c *TargetHttpsProxiesListCall) OrderBy(orderBy string) *TargetHttpsProxiesListCall {
157905	c.urlParams_.Set("orderBy", orderBy)
157906	return c
157907}
157908
157909// PageToken sets the optional parameter "pageToken": Specifies a page
157910// token to use. Set pageToken to the nextPageToken returned by a
157911// previous list request to get the next page of results.
157912func (c *TargetHttpsProxiesListCall) PageToken(pageToken string) *TargetHttpsProxiesListCall {
157913	c.urlParams_.Set("pageToken", pageToken)
157914	return c
157915}
157916
157917// Fields allows partial responses to be retrieved. See
157918// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157919// for more information.
157920func (c *TargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesListCall {
157921	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157922	return c
157923}
157924
157925// IfNoneMatch sets the optional parameter which makes the operation
157926// fail if the object's ETag matches the given value. This is useful for
157927// getting updates only after the object has changed since the last
157928// request. Use googleapi.IsNotModified to check whether the response
157929// error from Do is the result of In-None-Match.
157930func (c *TargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesListCall {
157931	c.ifNoneMatch_ = entityTag
157932	return c
157933}
157934
157935// Context sets the context to be used in this call's Do method. Any
157936// pending HTTP request will be aborted if the provided context is
157937// canceled.
157938func (c *TargetHttpsProxiesListCall) Context(ctx context.Context) *TargetHttpsProxiesListCall {
157939	c.ctx_ = ctx
157940	return c
157941}
157942
157943// Header returns an http.Header that can be modified by the caller to
157944// add HTTP headers to the request.
157945func (c *TargetHttpsProxiesListCall) Header() http.Header {
157946	if c.header_ == nil {
157947		c.header_ = make(http.Header)
157948	}
157949	return c.header_
157950}
157951
157952func (c *TargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) {
157953	reqHeaders := make(http.Header)
157954	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
157955	for k, v := range c.header_ {
157956		reqHeaders[k] = v
157957	}
157958	reqHeaders.Set("User-Agent", c.s.userAgent())
157959	if c.ifNoneMatch_ != "" {
157960		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
157961	}
157962	var body io.Reader = nil
157963	c.urlParams_.Set("alt", alt)
157964	c.urlParams_.Set("prettyPrint", "false")
157965	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies")
157966	urls += "?" + c.urlParams_.Encode()
157967	req, err := http.NewRequest("GET", urls, body)
157968	if err != nil {
157969		return nil, err
157970	}
157971	req.Header = reqHeaders
157972	googleapi.Expand(req.URL, map[string]string{
157973		"project": c.project,
157974	})
157975	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157976}
157977
157978// Do executes the "compute.targetHttpsProxies.list" call.
157979// Exactly one of *TargetHttpsProxyList or error will be non-nil. Any
157980// non-2xx status code is an error. Response headers are in either
157981// *TargetHttpsProxyList.ServerResponse.Header or (if a response was
157982// returned at all) in error.(*googleapi.Error).Header. Use
157983// googleapi.IsNotModified to check whether the returned error was
157984// because http.StatusNotModified was returned.
157985func (c *TargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) {
157986	gensupport.SetOptions(c.urlParams_, opts...)
157987	res, err := c.doRequest("json")
157988	if res != nil && res.StatusCode == http.StatusNotModified {
157989		if res.Body != nil {
157990			res.Body.Close()
157991		}
157992		return nil, &googleapi.Error{
157993			Code:   res.StatusCode,
157994			Header: res.Header,
157995		}
157996	}
157997	if err != nil {
157998		return nil, err
157999	}
158000	defer googleapi.CloseBody(res)
158001	if err := googleapi.CheckResponse(res); err != nil {
158002		return nil, err
158003	}
158004	ret := &TargetHttpsProxyList{
158005		ServerResponse: googleapi.ServerResponse{
158006			Header:         res.Header,
158007			HTTPStatusCode: res.StatusCode,
158008		},
158009	}
158010	target := &ret
158011	if err := gensupport.DecodeResponse(target, res); err != nil {
158012		return nil, err
158013	}
158014	return ret, nil
158015	// {
158016	//   "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project.",
158017	//   "httpMethod": "GET",
158018	//   "id": "compute.targetHttpsProxies.list",
158019	//   "parameterOrder": [
158020	//     "project"
158021	//   ],
158022	//   "parameters": {
158023	//     "filter": {
158024	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
158025	//       "location": "query",
158026	//       "type": "string"
158027	//     },
158028	//     "maxResults": {
158029	//       "default": "500",
158030	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
158031	//       "format": "uint32",
158032	//       "location": "query",
158033	//       "minimum": "0",
158034	//       "type": "integer"
158035	//     },
158036	//     "orderBy": {
158037	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
158038	//       "location": "query",
158039	//       "type": "string"
158040	//     },
158041	//     "pageToken": {
158042	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
158043	//       "location": "query",
158044	//       "type": "string"
158045	//     },
158046	//     "project": {
158047	//       "description": "Project ID for this request.",
158048	//       "location": "path",
158049	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158050	//       "required": true,
158051	//       "type": "string"
158052	//     }
158053	//   },
158054	//   "path": "{project}/global/targetHttpsProxies",
158055	//   "response": {
158056	//     "$ref": "TargetHttpsProxyList"
158057	//   },
158058	//   "scopes": [
158059	//     "https://www.googleapis.com/auth/cloud-platform",
158060	//     "https://www.googleapis.com/auth/compute",
158061	//     "https://www.googleapis.com/auth/compute.readonly"
158062	//   ]
158063	// }
158064
158065}
158066
158067// Pages invokes f for each page of results.
158068// A non-nil error returned from f will halt the iteration.
158069// The provided context supersedes any context provided to the Context method.
158070func (c *TargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error {
158071	c.ctx_ = ctx
158072	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
158073	for {
158074		x, err := c.Do()
158075		if err != nil {
158076			return err
158077		}
158078		if err := f(x); err != nil {
158079			return err
158080		}
158081		if x.NextPageToken == "" {
158082			return nil
158083		}
158084		c.PageToken(x.NextPageToken)
158085	}
158086}
158087
158088// method id "compute.targetHttpsProxies.setQuicOverride":
158089
158090type TargetHttpsProxiesSetQuicOverrideCall struct {
158091	s                                        *Service
158092	project                                  string
158093	targetHttpsProxy                         string
158094	targethttpsproxiessetquicoverriderequest *TargetHttpsProxiesSetQuicOverrideRequest
158095	urlParams_                               gensupport.URLParams
158096	ctx_                                     context.Context
158097	header_                                  http.Header
158098}
158099
158100// SetQuicOverride: Sets the QUIC override policy for TargetHttpsProxy.
158101func (r *TargetHttpsProxiesService) SetQuicOverride(project string, targetHttpsProxy string, targethttpsproxiessetquicoverriderequest *TargetHttpsProxiesSetQuicOverrideRequest) *TargetHttpsProxiesSetQuicOverrideCall {
158102	c := &TargetHttpsProxiesSetQuicOverrideCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158103	c.project = project
158104	c.targetHttpsProxy = targetHttpsProxy
158105	c.targethttpsproxiessetquicoverriderequest = targethttpsproxiessetquicoverriderequest
158106	return c
158107}
158108
158109// RequestId sets the optional parameter "requestId": An optional
158110// request ID to identify requests. Specify a unique request ID so that
158111// if you must retry your request, the server will know to ignore the
158112// request if it has already been completed.
158113//
158114// For example, consider a situation where you make an initial request
158115// and the request times out. If you make the request again with the
158116// same request ID, the server can check if original operation with the
158117// same request ID was received, and if so, will ignore the second
158118// request. This prevents clients from accidentally creating duplicate
158119// commitments.
158120//
158121// The request ID must be a valid UUID with the exception that zero UUID
158122// is not supported (00000000-0000-0000-0000-000000000000).
158123func (c *TargetHttpsProxiesSetQuicOverrideCall) RequestId(requestId string) *TargetHttpsProxiesSetQuicOverrideCall {
158124	c.urlParams_.Set("requestId", requestId)
158125	return c
158126}
158127
158128// Fields allows partial responses to be retrieved. See
158129// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158130// for more information.
158131func (c *TargetHttpsProxiesSetQuicOverrideCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetQuicOverrideCall {
158132	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158133	return c
158134}
158135
158136// Context sets the context to be used in this call's Do method. Any
158137// pending HTTP request will be aborted if the provided context is
158138// canceled.
158139func (c *TargetHttpsProxiesSetQuicOverrideCall) Context(ctx context.Context) *TargetHttpsProxiesSetQuicOverrideCall {
158140	c.ctx_ = ctx
158141	return c
158142}
158143
158144// Header returns an http.Header that can be modified by the caller to
158145// add HTTP headers to the request.
158146func (c *TargetHttpsProxiesSetQuicOverrideCall) Header() http.Header {
158147	if c.header_ == nil {
158148		c.header_ = make(http.Header)
158149	}
158150	return c.header_
158151}
158152
158153func (c *TargetHttpsProxiesSetQuicOverrideCall) doRequest(alt string) (*http.Response, error) {
158154	reqHeaders := make(http.Header)
158155	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
158156	for k, v := range c.header_ {
158157		reqHeaders[k] = v
158158	}
158159	reqHeaders.Set("User-Agent", c.s.userAgent())
158160	var body io.Reader = nil
158161	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetquicoverriderequest)
158162	if err != nil {
158163		return nil, err
158164	}
158165	reqHeaders.Set("Content-Type", "application/json")
158166	c.urlParams_.Set("alt", alt)
158167	c.urlParams_.Set("prettyPrint", "false")
158168	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride")
158169	urls += "?" + c.urlParams_.Encode()
158170	req, err := http.NewRequest("POST", urls, body)
158171	if err != nil {
158172		return nil, err
158173	}
158174	req.Header = reqHeaders
158175	googleapi.Expand(req.URL, map[string]string{
158176		"project":          c.project,
158177		"targetHttpsProxy": c.targetHttpsProxy,
158178	})
158179	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158180}
158181
158182// Do executes the "compute.targetHttpsProxies.setQuicOverride" call.
158183// Exactly one of *Operation or error will be non-nil. Any non-2xx
158184// status code is an error. Response headers are in either
158185// *Operation.ServerResponse.Header or (if a response was returned at
158186// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
158187// to check whether the returned error was because
158188// http.StatusNotModified was returned.
158189func (c *TargetHttpsProxiesSetQuicOverrideCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
158190	gensupport.SetOptions(c.urlParams_, opts...)
158191	res, err := c.doRequest("json")
158192	if res != nil && res.StatusCode == http.StatusNotModified {
158193		if res.Body != nil {
158194			res.Body.Close()
158195		}
158196		return nil, &googleapi.Error{
158197			Code:   res.StatusCode,
158198			Header: res.Header,
158199		}
158200	}
158201	if err != nil {
158202		return nil, err
158203	}
158204	defer googleapi.CloseBody(res)
158205	if err := googleapi.CheckResponse(res); err != nil {
158206		return nil, err
158207	}
158208	ret := &Operation{
158209		ServerResponse: googleapi.ServerResponse{
158210			Header:         res.Header,
158211			HTTPStatusCode: res.StatusCode,
158212		},
158213	}
158214	target := &ret
158215	if err := gensupport.DecodeResponse(target, res); err != nil {
158216		return nil, err
158217	}
158218	return ret, nil
158219	// {
158220	//   "description": "Sets the QUIC override policy for TargetHttpsProxy.",
158221	//   "httpMethod": "POST",
158222	//   "id": "compute.targetHttpsProxies.setQuicOverride",
158223	//   "parameterOrder": [
158224	//     "project",
158225	//     "targetHttpsProxy"
158226	//   ],
158227	//   "parameters": {
158228	//     "project": {
158229	//       "description": "Project ID for this request.",
158230	//       "location": "path",
158231	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158232	//       "required": true,
158233	//       "type": "string"
158234	//     },
158235	//     "requestId": {
158236	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
158237	//       "location": "query",
158238	//       "type": "string"
158239	//     },
158240	//     "targetHttpsProxy": {
158241	//       "description": "Name of the TargetHttpsProxy resource to set the QUIC override policy for. The name should conform to RFC1035.",
158242	//       "location": "path",
158243	//       "required": true,
158244	//       "type": "string"
158245	//     }
158246	//   },
158247	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride",
158248	//   "request": {
158249	//     "$ref": "TargetHttpsProxiesSetQuicOverrideRequest"
158250	//   },
158251	//   "response": {
158252	//     "$ref": "Operation"
158253	//   },
158254	//   "scopes": [
158255	//     "https://www.googleapis.com/auth/cloud-platform",
158256	//     "https://www.googleapis.com/auth/compute"
158257	//   ]
158258	// }
158259
158260}
158261
158262// method id "compute.targetHttpsProxies.setSslCertificates":
158263
158264type TargetHttpsProxiesSetSslCertificatesCall struct {
158265	s                                           *Service
158266	project                                     string
158267	targetHttpsProxy                            string
158268	targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest
158269	urlParams_                                  gensupport.URLParams
158270	ctx_                                        context.Context
158271	header_                                     http.Header
158272}
158273
158274// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy.
158275func (r *TargetHttpsProxiesService) SetSslCertificates(project string, targetHttpsProxy string, targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest) *TargetHttpsProxiesSetSslCertificatesCall {
158276	c := &TargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158277	c.project = project
158278	c.targetHttpsProxy = targetHttpsProxy
158279	c.targethttpsproxiessetsslcertificatesrequest = targethttpsproxiessetsslcertificatesrequest
158280	return c
158281}
158282
158283// RequestId sets the optional parameter "requestId": An optional
158284// request ID to identify requests. Specify a unique request ID so that
158285// if you must retry your request, the server will know to ignore the
158286// request if it has already been completed.
158287//
158288// For example, consider a situation where you make an initial request
158289// and the request times out. If you make the request again with the
158290// same request ID, the server can check if original operation with the
158291// same request ID was received, and if so, will ignore the second
158292// request. This prevents clients from accidentally creating duplicate
158293// commitments.
158294//
158295// The request ID must be a valid UUID with the exception that zero UUID
158296// is not supported (00000000-0000-0000-0000-000000000000).
158297func (c *TargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetHttpsProxiesSetSslCertificatesCall {
158298	c.urlParams_.Set("requestId", requestId)
158299	return c
158300}
158301
158302// Fields allows partial responses to be retrieved. See
158303// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158304// for more information.
158305func (c *TargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslCertificatesCall {
158306	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158307	return c
158308}
158309
158310// Context sets the context to be used in this call's Do method. Any
158311// pending HTTP request will be aborted if the provided context is
158312// canceled.
158313func (c *TargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslCertificatesCall {
158314	c.ctx_ = ctx
158315	return c
158316}
158317
158318// Header returns an http.Header that can be modified by the caller to
158319// add HTTP headers to the request.
158320func (c *TargetHttpsProxiesSetSslCertificatesCall) Header() http.Header {
158321	if c.header_ == nil {
158322		c.header_ = make(http.Header)
158323	}
158324	return c.header_
158325}
158326
158327func (c *TargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
158328	reqHeaders := make(http.Header)
158329	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
158330	for k, v := range c.header_ {
158331		reqHeaders[k] = v
158332	}
158333	reqHeaders.Set("User-Agent", c.s.userAgent())
158334	var body io.Reader = nil
158335	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetsslcertificatesrequest)
158336	if err != nil {
158337		return nil, err
158338	}
158339	reqHeaders.Set("Content-Type", "application/json")
158340	c.urlParams_.Set("alt", alt)
158341	c.urlParams_.Set("prettyPrint", "false")
158342	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates")
158343	urls += "?" + c.urlParams_.Encode()
158344	req, err := http.NewRequest("POST", urls, body)
158345	if err != nil {
158346		return nil, err
158347	}
158348	req.Header = reqHeaders
158349	googleapi.Expand(req.URL, map[string]string{
158350		"project":          c.project,
158351		"targetHttpsProxy": c.targetHttpsProxy,
158352	})
158353	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158354}
158355
158356// Do executes the "compute.targetHttpsProxies.setSslCertificates" call.
158357// Exactly one of *Operation or error will be non-nil. Any non-2xx
158358// status code is an error. Response headers are in either
158359// *Operation.ServerResponse.Header or (if a response was returned at
158360// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
158361// to check whether the returned error was because
158362// http.StatusNotModified was returned.
158363func (c *TargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
158364	gensupport.SetOptions(c.urlParams_, opts...)
158365	res, err := c.doRequest("json")
158366	if res != nil && res.StatusCode == http.StatusNotModified {
158367		if res.Body != nil {
158368			res.Body.Close()
158369		}
158370		return nil, &googleapi.Error{
158371			Code:   res.StatusCode,
158372			Header: res.Header,
158373		}
158374	}
158375	if err != nil {
158376		return nil, err
158377	}
158378	defer googleapi.CloseBody(res)
158379	if err := googleapi.CheckResponse(res); err != nil {
158380		return nil, err
158381	}
158382	ret := &Operation{
158383		ServerResponse: googleapi.ServerResponse{
158384			Header:         res.Header,
158385			HTTPStatusCode: res.StatusCode,
158386		},
158387	}
158388	target := &ret
158389	if err := gensupport.DecodeResponse(target, res); err != nil {
158390		return nil, err
158391	}
158392	return ret, nil
158393	// {
158394	//   "description": "Replaces SslCertificates for TargetHttpsProxy.",
158395	//   "httpMethod": "POST",
158396	//   "id": "compute.targetHttpsProxies.setSslCertificates",
158397	//   "parameterOrder": [
158398	//     "project",
158399	//     "targetHttpsProxy"
158400	//   ],
158401	//   "parameters": {
158402	//     "project": {
158403	//       "description": "Project ID for this request.",
158404	//       "location": "path",
158405	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158406	//       "required": true,
158407	//       "type": "string"
158408	//     },
158409	//     "requestId": {
158410	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
158411	//       "location": "query",
158412	//       "type": "string"
158413	//     },
158414	//     "targetHttpsProxy": {
158415	//       "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.",
158416	//       "location": "path",
158417	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
158418	//       "required": true,
158419	//       "type": "string"
158420	//     }
158421	//   },
158422	//   "path": "{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
158423	//   "request": {
158424	//     "$ref": "TargetHttpsProxiesSetSslCertificatesRequest"
158425	//   },
158426	//   "response": {
158427	//     "$ref": "Operation"
158428	//   },
158429	//   "scopes": [
158430	//     "https://www.googleapis.com/auth/cloud-platform",
158431	//     "https://www.googleapis.com/auth/compute"
158432	//   ]
158433	// }
158434
158435}
158436
158437// method id "compute.targetHttpsProxies.setSslPolicy":
158438
158439type TargetHttpsProxiesSetSslPolicyCall struct {
158440	s                  *Service
158441	project            string
158442	targetHttpsProxy   string
158443	sslpolicyreference *SslPolicyReference
158444	urlParams_         gensupport.URLParams
158445	ctx_               context.Context
158446	header_            http.Header
158447}
158448
158449// SetSslPolicy: Sets the SSL policy for TargetHttpsProxy. The SSL
158450// policy specifies the server-side support for SSL features. This
158451// affects connections between clients and the HTTPS proxy load
158452// balancer. They do not affect the connection between the load balancer
158453// and the backends.
158454func (r *TargetHttpsProxiesService) SetSslPolicy(project string, targetHttpsProxy string, sslpolicyreference *SslPolicyReference) *TargetHttpsProxiesSetSslPolicyCall {
158455	c := &TargetHttpsProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158456	c.project = project
158457	c.targetHttpsProxy = targetHttpsProxy
158458	c.sslpolicyreference = sslpolicyreference
158459	return c
158460}
158461
158462// RequestId sets the optional parameter "requestId": An optional
158463// request ID to identify requests. Specify a unique request ID so that
158464// if you must retry your request, the server will know to ignore the
158465// request if it has already been completed.
158466//
158467// For example, consider a situation where you make an initial request
158468// and the request times out. If you make the request again with the
158469// same request ID, the server can check if original operation with the
158470// same request ID was received, and if so, will ignore the second
158471// request. This prevents clients from accidentally creating duplicate
158472// commitments.
158473//
158474// The request ID must be a valid UUID with the exception that zero UUID
158475// is not supported (00000000-0000-0000-0000-000000000000).
158476func (c *TargetHttpsProxiesSetSslPolicyCall) RequestId(requestId string) *TargetHttpsProxiesSetSslPolicyCall {
158477	c.urlParams_.Set("requestId", requestId)
158478	return c
158479}
158480
158481// Fields allows partial responses to be retrieved. See
158482// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158483// for more information.
158484func (c *TargetHttpsProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslPolicyCall {
158485	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158486	return c
158487}
158488
158489// Context sets the context to be used in this call's Do method. Any
158490// pending HTTP request will be aborted if the provided context is
158491// canceled.
158492func (c *TargetHttpsProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslPolicyCall {
158493	c.ctx_ = ctx
158494	return c
158495}
158496
158497// Header returns an http.Header that can be modified by the caller to
158498// add HTTP headers to the request.
158499func (c *TargetHttpsProxiesSetSslPolicyCall) Header() http.Header {
158500	if c.header_ == nil {
158501		c.header_ = make(http.Header)
158502	}
158503	return c.header_
158504}
158505
158506func (c *TargetHttpsProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) {
158507	reqHeaders := make(http.Header)
158508	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
158509	for k, v := range c.header_ {
158510		reqHeaders[k] = v
158511	}
158512	reqHeaders.Set("User-Agent", c.s.userAgent())
158513	var body io.Reader = nil
158514	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicyreference)
158515	if err != nil {
158516		return nil, err
158517	}
158518	reqHeaders.Set("Content-Type", "application/json")
158519	c.urlParams_.Set("alt", alt)
158520	c.urlParams_.Set("prettyPrint", "false")
158521	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy")
158522	urls += "?" + c.urlParams_.Encode()
158523	req, err := http.NewRequest("POST", urls, body)
158524	if err != nil {
158525		return nil, err
158526	}
158527	req.Header = reqHeaders
158528	googleapi.Expand(req.URL, map[string]string{
158529		"project":          c.project,
158530		"targetHttpsProxy": c.targetHttpsProxy,
158531	})
158532	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158533}
158534
158535// Do executes the "compute.targetHttpsProxies.setSslPolicy" call.
158536// Exactly one of *Operation or error will be non-nil. Any non-2xx
158537// status code is an error. Response headers are in either
158538// *Operation.ServerResponse.Header or (if a response was returned at
158539// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
158540// to check whether the returned error was because
158541// http.StatusNotModified was returned.
158542func (c *TargetHttpsProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
158543	gensupport.SetOptions(c.urlParams_, opts...)
158544	res, err := c.doRequest("json")
158545	if res != nil && res.StatusCode == http.StatusNotModified {
158546		if res.Body != nil {
158547			res.Body.Close()
158548		}
158549		return nil, &googleapi.Error{
158550			Code:   res.StatusCode,
158551			Header: res.Header,
158552		}
158553	}
158554	if err != nil {
158555		return nil, err
158556	}
158557	defer googleapi.CloseBody(res)
158558	if err := googleapi.CheckResponse(res); err != nil {
158559		return nil, err
158560	}
158561	ret := &Operation{
158562		ServerResponse: googleapi.ServerResponse{
158563			Header:         res.Header,
158564			HTTPStatusCode: res.StatusCode,
158565		},
158566	}
158567	target := &ret
158568	if err := gensupport.DecodeResponse(target, res); err != nil {
158569		return nil, err
158570	}
158571	return ret, nil
158572	// {
158573	//   "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.",
158574	//   "httpMethod": "POST",
158575	//   "id": "compute.targetHttpsProxies.setSslPolicy",
158576	//   "parameterOrder": [
158577	//     "project",
158578	//     "targetHttpsProxy"
158579	//   ],
158580	//   "parameters": {
158581	//     "project": {
158582	//       "description": "Project ID for this request.",
158583	//       "location": "path",
158584	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158585	//       "required": true,
158586	//       "type": "string"
158587	//     },
158588	//     "requestId": {
158589	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
158590	//       "location": "query",
158591	//       "type": "string"
158592	//     },
158593	//     "targetHttpsProxy": {
158594	//       "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.",
158595	//       "location": "path",
158596	//       "required": true,
158597	//       "type": "string"
158598	//     }
158599	//   },
158600	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy",
158601	//   "request": {
158602	//     "$ref": "SslPolicyReference"
158603	//   },
158604	//   "response": {
158605	//     "$ref": "Operation"
158606	//   },
158607	//   "scopes": [
158608	//     "https://www.googleapis.com/auth/cloud-platform",
158609	//     "https://www.googleapis.com/auth/compute"
158610	//   ]
158611	// }
158612
158613}
158614
158615// method id "compute.targetHttpsProxies.setUrlMap":
158616
158617type TargetHttpsProxiesSetUrlMapCall struct {
158618	s                *Service
158619	project          string
158620	targetHttpsProxy string
158621	urlmapreference  *UrlMapReference
158622	urlParams_       gensupport.URLParams
158623	ctx_             context.Context
158624	header_          http.Header
158625}
158626
158627// SetUrlMap: Changes the URL map for TargetHttpsProxy.
158628func (r *TargetHttpsProxiesService) SetUrlMap(project string, targetHttpsProxy string, urlmapreference *UrlMapReference) *TargetHttpsProxiesSetUrlMapCall {
158629	c := &TargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158630	c.project = project
158631	c.targetHttpsProxy = targetHttpsProxy
158632	c.urlmapreference = urlmapreference
158633	return c
158634}
158635
158636// RequestId sets the optional parameter "requestId": An optional
158637// request ID to identify requests. Specify a unique request ID so that
158638// if you must retry your request, the server will know to ignore the
158639// request if it has already been completed.
158640//
158641// For example, consider a situation where you make an initial request
158642// and the request times out. If you make the request again with the
158643// same request ID, the server can check if original operation with the
158644// same request ID was received, and if so, will ignore the second
158645// request. This prevents clients from accidentally creating duplicate
158646// commitments.
158647//
158648// The request ID must be a valid UUID with the exception that zero UUID
158649// is not supported (00000000-0000-0000-0000-000000000000).
158650func (c *TargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpsProxiesSetUrlMapCall {
158651	c.urlParams_.Set("requestId", requestId)
158652	return c
158653}
158654
158655// Fields allows partial responses to be retrieved. See
158656// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158657// for more information.
158658func (c *TargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetUrlMapCall {
158659	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158660	return c
158661}
158662
158663// Context sets the context to be used in this call's Do method. Any
158664// pending HTTP request will be aborted if the provided context is
158665// canceled.
158666func (c *TargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpsProxiesSetUrlMapCall {
158667	c.ctx_ = ctx
158668	return c
158669}
158670
158671// Header returns an http.Header that can be modified by the caller to
158672// add HTTP headers to the request.
158673func (c *TargetHttpsProxiesSetUrlMapCall) Header() http.Header {
158674	if c.header_ == nil {
158675		c.header_ = make(http.Header)
158676	}
158677	return c.header_
158678}
158679
158680func (c *TargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
158681	reqHeaders := make(http.Header)
158682	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
158683	for k, v := range c.header_ {
158684		reqHeaders[k] = v
158685	}
158686	reqHeaders.Set("User-Agent", c.s.userAgent())
158687	var body io.Reader = nil
158688	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
158689	if err != nil {
158690		return nil, err
158691	}
158692	reqHeaders.Set("Content-Type", "application/json")
158693	c.urlParams_.Set("alt", alt)
158694	c.urlParams_.Set("prettyPrint", "false")
158695	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap")
158696	urls += "?" + c.urlParams_.Encode()
158697	req, err := http.NewRequest("POST", urls, body)
158698	if err != nil {
158699		return nil, err
158700	}
158701	req.Header = reqHeaders
158702	googleapi.Expand(req.URL, map[string]string{
158703		"project":          c.project,
158704		"targetHttpsProxy": c.targetHttpsProxy,
158705	})
158706	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158707}
158708
158709// Do executes the "compute.targetHttpsProxies.setUrlMap" call.
158710// Exactly one of *Operation or error will be non-nil. Any non-2xx
158711// status code is an error. Response headers are in either
158712// *Operation.ServerResponse.Header or (if a response was returned at
158713// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
158714// to check whether the returned error was because
158715// http.StatusNotModified was returned.
158716func (c *TargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
158717	gensupport.SetOptions(c.urlParams_, opts...)
158718	res, err := c.doRequest("json")
158719	if res != nil && res.StatusCode == http.StatusNotModified {
158720		if res.Body != nil {
158721			res.Body.Close()
158722		}
158723		return nil, &googleapi.Error{
158724			Code:   res.StatusCode,
158725			Header: res.Header,
158726		}
158727	}
158728	if err != nil {
158729		return nil, err
158730	}
158731	defer googleapi.CloseBody(res)
158732	if err := googleapi.CheckResponse(res); err != nil {
158733		return nil, err
158734	}
158735	ret := &Operation{
158736		ServerResponse: googleapi.ServerResponse{
158737			Header:         res.Header,
158738			HTTPStatusCode: res.StatusCode,
158739		},
158740	}
158741	target := &ret
158742	if err := gensupport.DecodeResponse(target, res); err != nil {
158743		return nil, err
158744	}
158745	return ret, nil
158746	// {
158747	//   "description": "Changes the URL map for TargetHttpsProxy.",
158748	//   "httpMethod": "POST",
158749	//   "id": "compute.targetHttpsProxies.setUrlMap",
158750	//   "parameterOrder": [
158751	//     "project",
158752	//     "targetHttpsProxy"
158753	//   ],
158754	//   "parameters": {
158755	//     "project": {
158756	//       "description": "Project ID for this request.",
158757	//       "location": "path",
158758	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158759	//       "required": true,
158760	//       "type": "string"
158761	//     },
158762	//     "requestId": {
158763	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
158764	//       "location": "query",
158765	//       "type": "string"
158766	//     },
158767	//     "targetHttpsProxy": {
158768	//       "description": "Name of the TargetHttpsProxy resource whose URL map is to be set.",
158769	//       "location": "path",
158770	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
158771	//       "required": true,
158772	//       "type": "string"
158773	//     }
158774	//   },
158775	//   "path": "{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
158776	//   "request": {
158777	//     "$ref": "UrlMapReference"
158778	//   },
158779	//   "response": {
158780	//     "$ref": "Operation"
158781	//   },
158782	//   "scopes": [
158783	//     "https://www.googleapis.com/auth/cloud-platform",
158784	//     "https://www.googleapis.com/auth/compute"
158785	//   ]
158786	// }
158787
158788}
158789
158790// method id "compute.targetHttpsProxies.testIamPermissions":
158791
158792type TargetHttpsProxiesTestIamPermissionsCall struct {
158793	s                      *Service
158794	project                string
158795	resource               string
158796	testpermissionsrequest *TestPermissionsRequest
158797	urlParams_             gensupport.URLParams
158798	ctx_                   context.Context
158799	header_                http.Header
158800}
158801
158802// TestIamPermissions: Returns permissions that a caller has on the
158803// specified resource.
158804func (r *TargetHttpsProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetHttpsProxiesTestIamPermissionsCall {
158805	c := &TargetHttpsProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158806	c.project = project
158807	c.resource = resource
158808	c.testpermissionsrequest = testpermissionsrequest
158809	return c
158810}
158811
158812// Fields allows partial responses to be retrieved. See
158813// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158814// for more information.
158815func (c *TargetHttpsProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesTestIamPermissionsCall {
158816	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158817	return c
158818}
158819
158820// Context sets the context to be used in this call's Do method. Any
158821// pending HTTP request will be aborted if the provided context is
158822// canceled.
158823func (c *TargetHttpsProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetHttpsProxiesTestIamPermissionsCall {
158824	c.ctx_ = ctx
158825	return c
158826}
158827
158828// Header returns an http.Header that can be modified by the caller to
158829// add HTTP headers to the request.
158830func (c *TargetHttpsProxiesTestIamPermissionsCall) Header() http.Header {
158831	if c.header_ == nil {
158832		c.header_ = make(http.Header)
158833	}
158834	return c.header_
158835}
158836
158837func (c *TargetHttpsProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
158838	reqHeaders := make(http.Header)
158839	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
158840	for k, v := range c.header_ {
158841		reqHeaders[k] = v
158842	}
158843	reqHeaders.Set("User-Agent", c.s.userAgent())
158844	var body io.Reader = nil
158845	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
158846	if err != nil {
158847		return nil, err
158848	}
158849	reqHeaders.Set("Content-Type", "application/json")
158850	c.urlParams_.Set("alt", alt)
158851	c.urlParams_.Set("prettyPrint", "false")
158852	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{resource}/testIamPermissions")
158853	urls += "?" + c.urlParams_.Encode()
158854	req, err := http.NewRequest("POST", urls, body)
158855	if err != nil {
158856		return nil, err
158857	}
158858	req.Header = reqHeaders
158859	googleapi.Expand(req.URL, map[string]string{
158860		"project":  c.project,
158861		"resource": c.resource,
158862	})
158863	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158864}
158865
158866// Do executes the "compute.targetHttpsProxies.testIamPermissions" call.
158867// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
158868// non-2xx status code is an error. Response headers are in either
158869// *TestPermissionsResponse.ServerResponse.Header or (if a response was
158870// returned at all) in error.(*googleapi.Error).Header. Use
158871// googleapi.IsNotModified to check whether the returned error was
158872// because http.StatusNotModified was returned.
158873func (c *TargetHttpsProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
158874	gensupport.SetOptions(c.urlParams_, opts...)
158875	res, err := c.doRequest("json")
158876	if res != nil && res.StatusCode == http.StatusNotModified {
158877		if res.Body != nil {
158878			res.Body.Close()
158879		}
158880		return nil, &googleapi.Error{
158881			Code:   res.StatusCode,
158882			Header: res.Header,
158883		}
158884	}
158885	if err != nil {
158886		return nil, err
158887	}
158888	defer googleapi.CloseBody(res)
158889	if err := googleapi.CheckResponse(res); err != nil {
158890		return nil, err
158891	}
158892	ret := &TestPermissionsResponse{
158893		ServerResponse: googleapi.ServerResponse{
158894			Header:         res.Header,
158895			HTTPStatusCode: res.StatusCode,
158896		},
158897	}
158898	target := &ret
158899	if err := gensupport.DecodeResponse(target, res); err != nil {
158900		return nil, err
158901	}
158902	return ret, nil
158903	// {
158904	//   "description": "Returns permissions that a caller has on the specified resource.",
158905	//   "httpMethod": "POST",
158906	//   "id": "compute.targetHttpsProxies.testIamPermissions",
158907	//   "parameterOrder": [
158908	//     "project",
158909	//     "resource"
158910	//   ],
158911	//   "parameters": {
158912	//     "project": {
158913	//       "description": "Project ID for this request.",
158914	//       "location": "path",
158915	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158916	//       "required": true,
158917	//       "type": "string"
158918	//     },
158919	//     "resource": {
158920	//       "description": "Name or id of the resource for this request.",
158921	//       "location": "path",
158922	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
158923	//       "required": true,
158924	//       "type": "string"
158925	//     }
158926	//   },
158927	//   "path": "{project}/global/targetHttpsProxies/{resource}/testIamPermissions",
158928	//   "request": {
158929	//     "$ref": "TestPermissionsRequest"
158930	//   },
158931	//   "response": {
158932	//     "$ref": "TestPermissionsResponse"
158933	//   },
158934	//   "scopes": [
158935	//     "https://www.googleapis.com/auth/cloud-platform",
158936	//     "https://www.googleapis.com/auth/compute",
158937	//     "https://www.googleapis.com/auth/compute.readonly"
158938	//   ]
158939	// }
158940
158941}
158942
158943// method id "compute.targetInstances.aggregatedList":
158944
158945type TargetInstancesAggregatedListCall struct {
158946	s            *Service
158947	project      string
158948	urlParams_   gensupport.URLParams
158949	ifNoneMatch_ string
158950	ctx_         context.Context
158951	header_      http.Header
158952}
158953
158954// AggregatedList: Retrieves an aggregated list of target instances.
158955// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/aggregatedList
158956func (r *TargetInstancesService) AggregatedList(project string) *TargetInstancesAggregatedListCall {
158957	c := &TargetInstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158958	c.project = project
158959	return c
158960}
158961
158962// Filter sets the optional parameter "filter": A filter expression that
158963// filters resources listed in the response. The expression must specify
158964// the field name, a comparison operator, and the value that you want to
158965// use for filtering. The value must be a string, a number, or a
158966// boolean. The comparison operator must be either =, !=, >, or <.
158967//
158968// For example, if you are filtering Compute Engine instances, you can
158969// exclude instances named example-instance by specifying name !=
158970// example-instance.
158971//
158972// You can also filter nested fields. For example, you could specify
158973// scheduling.automaticRestart = false to include instances only if they
158974// are not scheduled for automatic restarts. You can use filtering on
158975// nested fields to filter based on resource labels.
158976//
158977// To filter on multiple expressions, provide each separate expression
158978// within parentheses. For example, (scheduling.automaticRestart = true)
158979// (cpuPlatform = "Intel Skylake"). By default, each expression is an
158980// AND expression. However, you can include AND and OR expressions
158981// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
158982// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
158983// true).
158984func (c *TargetInstancesAggregatedListCall) Filter(filter string) *TargetInstancesAggregatedListCall {
158985	c.urlParams_.Set("filter", filter)
158986	return c
158987}
158988
158989// IncludeAllScopes sets the optional parameter "includeAllScopes":
158990// Indicates whether every visible scope for each scope type (zone,
158991// region, global) should be included in the response. For new resource
158992// types added after this field, the flag has no effect as new resource
158993// types will always include every visible scope for each scope type in
158994// response. For resource types which predate this field, if this flag
158995// is omitted or false, only scopes of the scope types where the
158996// resource type is expected to be found will be included.
158997func (c *TargetInstancesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetInstancesAggregatedListCall {
158998	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
158999	return c
159000}
159001
159002// MaxResults sets the optional parameter "maxResults": The maximum
159003// number of results per page that should be returned. If the number of
159004// available results is larger than maxResults, Compute Engine returns a
159005// nextPageToken that can be used to get the next page of results in
159006// subsequent list requests. Acceptable values are 0 to 500, inclusive.
159007// (Default: 500)
159008func (c *TargetInstancesAggregatedListCall) MaxResults(maxResults int64) *TargetInstancesAggregatedListCall {
159009	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
159010	return c
159011}
159012
159013// OrderBy sets the optional parameter "orderBy": Sorts list results by
159014// a certain order. By default, results are returned in alphanumerical
159015// order based on the resource name.
159016//
159017// You can also sort results in descending order based on the creation
159018// timestamp using orderBy="creationTimestamp desc". This sorts results
159019// based on the creationTimestamp field in reverse chronological order
159020// (newest result first). Use this to sort resources like operations so
159021// that the newest operation is returned first.
159022//
159023// Currently, only sorting by name or creationTimestamp desc is
159024// supported.
159025func (c *TargetInstancesAggregatedListCall) OrderBy(orderBy string) *TargetInstancesAggregatedListCall {
159026	c.urlParams_.Set("orderBy", orderBy)
159027	return c
159028}
159029
159030// PageToken sets the optional parameter "pageToken": Specifies a page
159031// token to use. Set pageToken to the nextPageToken returned by a
159032// previous list request to get the next page of results.
159033func (c *TargetInstancesAggregatedListCall) PageToken(pageToken string) *TargetInstancesAggregatedListCall {
159034	c.urlParams_.Set("pageToken", pageToken)
159035	return c
159036}
159037
159038// Fields allows partial responses to be retrieved. See
159039// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159040// for more information.
159041func (c *TargetInstancesAggregatedListCall) Fields(s ...googleapi.Field) *TargetInstancesAggregatedListCall {
159042	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159043	return c
159044}
159045
159046// IfNoneMatch sets the optional parameter which makes the operation
159047// fail if the object's ETag matches the given value. This is useful for
159048// getting updates only after the object has changed since the last
159049// request. Use googleapi.IsNotModified to check whether the response
159050// error from Do is the result of In-None-Match.
159051func (c *TargetInstancesAggregatedListCall) IfNoneMatch(entityTag string) *TargetInstancesAggregatedListCall {
159052	c.ifNoneMatch_ = entityTag
159053	return c
159054}
159055
159056// Context sets the context to be used in this call's Do method. Any
159057// pending HTTP request will be aborted if the provided context is
159058// canceled.
159059func (c *TargetInstancesAggregatedListCall) Context(ctx context.Context) *TargetInstancesAggregatedListCall {
159060	c.ctx_ = ctx
159061	return c
159062}
159063
159064// Header returns an http.Header that can be modified by the caller to
159065// add HTTP headers to the request.
159066func (c *TargetInstancesAggregatedListCall) Header() http.Header {
159067	if c.header_ == nil {
159068		c.header_ = make(http.Header)
159069	}
159070	return c.header_
159071}
159072
159073func (c *TargetInstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
159074	reqHeaders := make(http.Header)
159075	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
159076	for k, v := range c.header_ {
159077		reqHeaders[k] = v
159078	}
159079	reqHeaders.Set("User-Agent", c.s.userAgent())
159080	if c.ifNoneMatch_ != "" {
159081		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
159082	}
159083	var body io.Reader = nil
159084	c.urlParams_.Set("alt", alt)
159085	c.urlParams_.Set("prettyPrint", "false")
159086	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetInstances")
159087	urls += "?" + c.urlParams_.Encode()
159088	req, err := http.NewRequest("GET", urls, body)
159089	if err != nil {
159090		return nil, err
159091	}
159092	req.Header = reqHeaders
159093	googleapi.Expand(req.URL, map[string]string{
159094		"project": c.project,
159095	})
159096	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159097}
159098
159099// Do executes the "compute.targetInstances.aggregatedList" call.
159100// Exactly one of *TargetInstanceAggregatedList or error will be
159101// non-nil. Any non-2xx status code is an error. Response headers are in
159102// either *TargetInstanceAggregatedList.ServerResponse.Header or (if a
159103// response was returned at all) in error.(*googleapi.Error).Header. Use
159104// googleapi.IsNotModified to check whether the returned error was
159105// because http.StatusNotModified was returned.
159106func (c *TargetInstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceAggregatedList, error) {
159107	gensupport.SetOptions(c.urlParams_, opts...)
159108	res, err := c.doRequest("json")
159109	if res != nil && res.StatusCode == http.StatusNotModified {
159110		if res.Body != nil {
159111			res.Body.Close()
159112		}
159113		return nil, &googleapi.Error{
159114			Code:   res.StatusCode,
159115			Header: res.Header,
159116		}
159117	}
159118	if err != nil {
159119		return nil, err
159120	}
159121	defer googleapi.CloseBody(res)
159122	if err := googleapi.CheckResponse(res); err != nil {
159123		return nil, err
159124	}
159125	ret := &TargetInstanceAggregatedList{
159126		ServerResponse: googleapi.ServerResponse{
159127			Header:         res.Header,
159128			HTTPStatusCode: res.StatusCode,
159129		},
159130	}
159131	target := &ret
159132	if err := gensupport.DecodeResponse(target, res); err != nil {
159133		return nil, err
159134	}
159135	return ret, nil
159136	// {
159137	//   "description": "Retrieves an aggregated list of target instances.",
159138	//   "httpMethod": "GET",
159139	//   "id": "compute.targetInstances.aggregatedList",
159140	//   "parameterOrder": [
159141	//     "project"
159142	//   ],
159143	//   "parameters": {
159144	//     "filter": {
159145	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
159146	//       "location": "query",
159147	//       "type": "string"
159148	//     },
159149	//     "includeAllScopes": {
159150	//       "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.",
159151	//       "location": "query",
159152	//       "type": "boolean"
159153	//     },
159154	//     "maxResults": {
159155	//       "default": "500",
159156	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
159157	//       "format": "uint32",
159158	//       "location": "query",
159159	//       "minimum": "0",
159160	//       "type": "integer"
159161	//     },
159162	//     "orderBy": {
159163	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
159164	//       "location": "query",
159165	//       "type": "string"
159166	//     },
159167	//     "pageToken": {
159168	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
159169	//       "location": "query",
159170	//       "type": "string"
159171	//     },
159172	//     "project": {
159173	//       "description": "Project ID for this request.",
159174	//       "location": "path",
159175	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159176	//       "required": true,
159177	//       "type": "string"
159178	//     }
159179	//   },
159180	//   "path": "{project}/aggregated/targetInstances",
159181	//   "response": {
159182	//     "$ref": "TargetInstanceAggregatedList"
159183	//   },
159184	//   "scopes": [
159185	//     "https://www.googleapis.com/auth/cloud-platform",
159186	//     "https://www.googleapis.com/auth/compute",
159187	//     "https://www.googleapis.com/auth/compute.readonly"
159188	//   ]
159189	// }
159190
159191}
159192
159193// Pages invokes f for each page of results.
159194// A non-nil error returned from f will halt the iteration.
159195// The provided context supersedes any context provided to the Context method.
159196func (c *TargetInstancesAggregatedListCall) Pages(ctx context.Context, f func(*TargetInstanceAggregatedList) error) error {
159197	c.ctx_ = ctx
159198	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
159199	for {
159200		x, err := c.Do()
159201		if err != nil {
159202			return err
159203		}
159204		if err := f(x); err != nil {
159205			return err
159206		}
159207		if x.NextPageToken == "" {
159208			return nil
159209		}
159210		c.PageToken(x.NextPageToken)
159211	}
159212}
159213
159214// method id "compute.targetInstances.delete":
159215
159216type TargetInstancesDeleteCall struct {
159217	s              *Service
159218	project        string
159219	zone           string
159220	targetInstance string
159221	urlParams_     gensupport.URLParams
159222	ctx_           context.Context
159223	header_        http.Header
159224}
159225
159226// Delete: Deletes the specified TargetInstance resource.
159227// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/delete
159228func (r *TargetInstancesService) Delete(project string, zone string, targetInstance string) *TargetInstancesDeleteCall {
159229	c := &TargetInstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159230	c.project = project
159231	c.zone = zone
159232	c.targetInstance = targetInstance
159233	return c
159234}
159235
159236// RequestId sets the optional parameter "requestId": An optional
159237// request ID to identify requests. Specify a unique request ID so that
159238// if you must retry your request, the server will know to ignore the
159239// request if it has already been completed.
159240//
159241// For example, consider a situation where you make an initial request
159242// and the request times out. If you make the request again with the
159243// same request ID, the server can check if original operation with the
159244// same request ID was received, and if so, will ignore the second
159245// request. This prevents clients from accidentally creating duplicate
159246// commitments.
159247//
159248// The request ID must be a valid UUID with the exception that zero UUID
159249// is not supported (00000000-0000-0000-0000-000000000000).
159250func (c *TargetInstancesDeleteCall) RequestId(requestId string) *TargetInstancesDeleteCall {
159251	c.urlParams_.Set("requestId", requestId)
159252	return c
159253}
159254
159255// Fields allows partial responses to be retrieved. See
159256// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159257// for more information.
159258func (c *TargetInstancesDeleteCall) Fields(s ...googleapi.Field) *TargetInstancesDeleteCall {
159259	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159260	return c
159261}
159262
159263// Context sets the context to be used in this call's Do method. Any
159264// pending HTTP request will be aborted if the provided context is
159265// canceled.
159266func (c *TargetInstancesDeleteCall) Context(ctx context.Context) *TargetInstancesDeleteCall {
159267	c.ctx_ = ctx
159268	return c
159269}
159270
159271// Header returns an http.Header that can be modified by the caller to
159272// add HTTP headers to the request.
159273func (c *TargetInstancesDeleteCall) Header() http.Header {
159274	if c.header_ == nil {
159275		c.header_ = make(http.Header)
159276	}
159277	return c.header_
159278}
159279
159280func (c *TargetInstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
159281	reqHeaders := make(http.Header)
159282	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
159283	for k, v := range c.header_ {
159284		reqHeaders[k] = v
159285	}
159286	reqHeaders.Set("User-Agent", c.s.userAgent())
159287	var body io.Reader = nil
159288	c.urlParams_.Set("alt", alt)
159289	c.urlParams_.Set("prettyPrint", "false")
159290	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances/{targetInstance}")
159291	urls += "?" + c.urlParams_.Encode()
159292	req, err := http.NewRequest("DELETE", urls, body)
159293	if err != nil {
159294		return nil, err
159295	}
159296	req.Header = reqHeaders
159297	googleapi.Expand(req.URL, map[string]string{
159298		"project":        c.project,
159299		"zone":           c.zone,
159300		"targetInstance": c.targetInstance,
159301	})
159302	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159303}
159304
159305// Do executes the "compute.targetInstances.delete" call.
159306// Exactly one of *Operation or error will be non-nil. Any non-2xx
159307// status code is an error. Response headers are in either
159308// *Operation.ServerResponse.Header or (if a response was returned at
159309// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
159310// to check whether the returned error was because
159311// http.StatusNotModified was returned.
159312func (c *TargetInstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
159313	gensupport.SetOptions(c.urlParams_, opts...)
159314	res, err := c.doRequest("json")
159315	if res != nil && res.StatusCode == http.StatusNotModified {
159316		if res.Body != nil {
159317			res.Body.Close()
159318		}
159319		return nil, &googleapi.Error{
159320			Code:   res.StatusCode,
159321			Header: res.Header,
159322		}
159323	}
159324	if err != nil {
159325		return nil, err
159326	}
159327	defer googleapi.CloseBody(res)
159328	if err := googleapi.CheckResponse(res); err != nil {
159329		return nil, err
159330	}
159331	ret := &Operation{
159332		ServerResponse: googleapi.ServerResponse{
159333			Header:         res.Header,
159334			HTTPStatusCode: res.StatusCode,
159335		},
159336	}
159337	target := &ret
159338	if err := gensupport.DecodeResponse(target, res); err != nil {
159339		return nil, err
159340	}
159341	return ret, nil
159342	// {
159343	//   "description": "Deletes the specified TargetInstance resource.",
159344	//   "httpMethod": "DELETE",
159345	//   "id": "compute.targetInstances.delete",
159346	//   "parameterOrder": [
159347	//     "project",
159348	//     "zone",
159349	//     "targetInstance"
159350	//   ],
159351	//   "parameters": {
159352	//     "project": {
159353	//       "description": "Project ID for this request.",
159354	//       "location": "path",
159355	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159356	//       "required": true,
159357	//       "type": "string"
159358	//     },
159359	//     "requestId": {
159360	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
159361	//       "location": "query",
159362	//       "type": "string"
159363	//     },
159364	//     "targetInstance": {
159365	//       "description": "Name of the TargetInstance resource to delete.",
159366	//       "location": "path",
159367	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
159368	//       "required": true,
159369	//       "type": "string"
159370	//     },
159371	//     "zone": {
159372	//       "description": "Name of the zone scoping this request.",
159373	//       "location": "path",
159374	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
159375	//       "required": true,
159376	//       "type": "string"
159377	//     }
159378	//   },
159379	//   "path": "{project}/zones/{zone}/targetInstances/{targetInstance}",
159380	//   "response": {
159381	//     "$ref": "Operation"
159382	//   },
159383	//   "scopes": [
159384	//     "https://www.googleapis.com/auth/cloud-platform",
159385	//     "https://www.googleapis.com/auth/compute"
159386	//   ]
159387	// }
159388
159389}
159390
159391// method id "compute.targetInstances.get":
159392
159393type TargetInstancesGetCall struct {
159394	s              *Service
159395	project        string
159396	zone           string
159397	targetInstance string
159398	urlParams_     gensupport.URLParams
159399	ifNoneMatch_   string
159400	ctx_           context.Context
159401	header_        http.Header
159402}
159403
159404// Get: Returns the specified TargetInstance resource. Gets a list of
159405// available target instances by making a list() request.
159406// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/get
159407func (r *TargetInstancesService) Get(project string, zone string, targetInstance string) *TargetInstancesGetCall {
159408	c := &TargetInstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159409	c.project = project
159410	c.zone = zone
159411	c.targetInstance = targetInstance
159412	return c
159413}
159414
159415// Fields allows partial responses to be retrieved. See
159416// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159417// for more information.
159418func (c *TargetInstancesGetCall) Fields(s ...googleapi.Field) *TargetInstancesGetCall {
159419	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159420	return c
159421}
159422
159423// IfNoneMatch sets the optional parameter which makes the operation
159424// fail if the object's ETag matches the given value. This is useful for
159425// getting updates only after the object has changed since the last
159426// request. Use googleapi.IsNotModified to check whether the response
159427// error from Do is the result of In-None-Match.
159428func (c *TargetInstancesGetCall) IfNoneMatch(entityTag string) *TargetInstancesGetCall {
159429	c.ifNoneMatch_ = entityTag
159430	return c
159431}
159432
159433// Context sets the context to be used in this call's Do method. Any
159434// pending HTTP request will be aborted if the provided context is
159435// canceled.
159436func (c *TargetInstancesGetCall) Context(ctx context.Context) *TargetInstancesGetCall {
159437	c.ctx_ = ctx
159438	return c
159439}
159440
159441// Header returns an http.Header that can be modified by the caller to
159442// add HTTP headers to the request.
159443func (c *TargetInstancesGetCall) Header() http.Header {
159444	if c.header_ == nil {
159445		c.header_ = make(http.Header)
159446	}
159447	return c.header_
159448}
159449
159450func (c *TargetInstancesGetCall) doRequest(alt string) (*http.Response, error) {
159451	reqHeaders := make(http.Header)
159452	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
159453	for k, v := range c.header_ {
159454		reqHeaders[k] = v
159455	}
159456	reqHeaders.Set("User-Agent", c.s.userAgent())
159457	if c.ifNoneMatch_ != "" {
159458		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
159459	}
159460	var body io.Reader = nil
159461	c.urlParams_.Set("alt", alt)
159462	c.urlParams_.Set("prettyPrint", "false")
159463	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances/{targetInstance}")
159464	urls += "?" + c.urlParams_.Encode()
159465	req, err := http.NewRequest("GET", urls, body)
159466	if err != nil {
159467		return nil, err
159468	}
159469	req.Header = reqHeaders
159470	googleapi.Expand(req.URL, map[string]string{
159471		"project":        c.project,
159472		"zone":           c.zone,
159473		"targetInstance": c.targetInstance,
159474	})
159475	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159476}
159477
159478// Do executes the "compute.targetInstances.get" call.
159479// Exactly one of *TargetInstance or error will be non-nil. Any non-2xx
159480// status code is an error. Response headers are in either
159481// *TargetInstance.ServerResponse.Header or (if a response was returned
159482// at all) in error.(*googleapi.Error).Header. Use
159483// googleapi.IsNotModified to check whether the returned error was
159484// because http.StatusNotModified was returned.
159485func (c *TargetInstancesGetCall) Do(opts ...googleapi.CallOption) (*TargetInstance, error) {
159486	gensupport.SetOptions(c.urlParams_, opts...)
159487	res, err := c.doRequest("json")
159488	if res != nil && res.StatusCode == http.StatusNotModified {
159489		if res.Body != nil {
159490			res.Body.Close()
159491		}
159492		return nil, &googleapi.Error{
159493			Code:   res.StatusCode,
159494			Header: res.Header,
159495		}
159496	}
159497	if err != nil {
159498		return nil, err
159499	}
159500	defer googleapi.CloseBody(res)
159501	if err := googleapi.CheckResponse(res); err != nil {
159502		return nil, err
159503	}
159504	ret := &TargetInstance{
159505		ServerResponse: googleapi.ServerResponse{
159506			Header:         res.Header,
159507			HTTPStatusCode: res.StatusCode,
159508		},
159509	}
159510	target := &ret
159511	if err := gensupport.DecodeResponse(target, res); err != nil {
159512		return nil, err
159513	}
159514	return ret, nil
159515	// {
159516	//   "description": "Returns the specified TargetInstance resource. Gets a list of available target instances by making a list() request.",
159517	//   "httpMethod": "GET",
159518	//   "id": "compute.targetInstances.get",
159519	//   "parameterOrder": [
159520	//     "project",
159521	//     "zone",
159522	//     "targetInstance"
159523	//   ],
159524	//   "parameters": {
159525	//     "project": {
159526	//       "description": "Project ID for this request.",
159527	//       "location": "path",
159528	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159529	//       "required": true,
159530	//       "type": "string"
159531	//     },
159532	//     "targetInstance": {
159533	//       "description": "Name of the TargetInstance resource to return.",
159534	//       "location": "path",
159535	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
159536	//       "required": true,
159537	//       "type": "string"
159538	//     },
159539	//     "zone": {
159540	//       "description": "Name of the zone scoping this request.",
159541	//       "location": "path",
159542	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
159543	//       "required": true,
159544	//       "type": "string"
159545	//     }
159546	//   },
159547	//   "path": "{project}/zones/{zone}/targetInstances/{targetInstance}",
159548	//   "response": {
159549	//     "$ref": "TargetInstance"
159550	//   },
159551	//   "scopes": [
159552	//     "https://www.googleapis.com/auth/cloud-platform",
159553	//     "https://www.googleapis.com/auth/compute",
159554	//     "https://www.googleapis.com/auth/compute.readonly"
159555	//   ]
159556	// }
159557
159558}
159559
159560// method id "compute.targetInstances.insert":
159561
159562type TargetInstancesInsertCall struct {
159563	s              *Service
159564	project        string
159565	zone           string
159566	targetinstance *TargetInstance
159567	urlParams_     gensupport.URLParams
159568	ctx_           context.Context
159569	header_        http.Header
159570}
159571
159572// Insert: Creates a TargetInstance resource in the specified project
159573// and zone using the data included in the request.
159574// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/insert
159575func (r *TargetInstancesService) Insert(project string, zone string, targetinstance *TargetInstance) *TargetInstancesInsertCall {
159576	c := &TargetInstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159577	c.project = project
159578	c.zone = zone
159579	c.targetinstance = targetinstance
159580	return c
159581}
159582
159583// RequestId sets the optional parameter "requestId": An optional
159584// request ID to identify requests. Specify a unique request ID so that
159585// if you must retry your request, the server will know to ignore the
159586// request if it has already been completed.
159587//
159588// For example, consider a situation where you make an initial request
159589// and the request times out. If you make the request again with the
159590// same request ID, the server can check if original operation with the
159591// same request ID was received, and if so, will ignore the second
159592// request. This prevents clients from accidentally creating duplicate
159593// commitments.
159594//
159595// The request ID must be a valid UUID with the exception that zero UUID
159596// is not supported (00000000-0000-0000-0000-000000000000).
159597func (c *TargetInstancesInsertCall) RequestId(requestId string) *TargetInstancesInsertCall {
159598	c.urlParams_.Set("requestId", requestId)
159599	return c
159600}
159601
159602// Fields allows partial responses to be retrieved. See
159603// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159604// for more information.
159605func (c *TargetInstancesInsertCall) Fields(s ...googleapi.Field) *TargetInstancesInsertCall {
159606	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159607	return c
159608}
159609
159610// Context sets the context to be used in this call's Do method. Any
159611// pending HTTP request will be aborted if the provided context is
159612// canceled.
159613func (c *TargetInstancesInsertCall) Context(ctx context.Context) *TargetInstancesInsertCall {
159614	c.ctx_ = ctx
159615	return c
159616}
159617
159618// Header returns an http.Header that can be modified by the caller to
159619// add HTTP headers to the request.
159620func (c *TargetInstancesInsertCall) Header() http.Header {
159621	if c.header_ == nil {
159622		c.header_ = make(http.Header)
159623	}
159624	return c.header_
159625}
159626
159627func (c *TargetInstancesInsertCall) doRequest(alt string) (*http.Response, error) {
159628	reqHeaders := make(http.Header)
159629	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
159630	for k, v := range c.header_ {
159631		reqHeaders[k] = v
159632	}
159633	reqHeaders.Set("User-Agent", c.s.userAgent())
159634	var body io.Reader = nil
159635	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetinstance)
159636	if err != nil {
159637		return nil, err
159638	}
159639	reqHeaders.Set("Content-Type", "application/json")
159640	c.urlParams_.Set("alt", alt)
159641	c.urlParams_.Set("prettyPrint", "false")
159642	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances")
159643	urls += "?" + c.urlParams_.Encode()
159644	req, err := http.NewRequest("POST", urls, body)
159645	if err != nil {
159646		return nil, err
159647	}
159648	req.Header = reqHeaders
159649	googleapi.Expand(req.URL, map[string]string{
159650		"project": c.project,
159651		"zone":    c.zone,
159652	})
159653	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159654}
159655
159656// Do executes the "compute.targetInstances.insert" call.
159657// Exactly one of *Operation or error will be non-nil. Any non-2xx
159658// status code is an error. Response headers are in either
159659// *Operation.ServerResponse.Header or (if a response was returned at
159660// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
159661// to check whether the returned error was because
159662// http.StatusNotModified was returned.
159663func (c *TargetInstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
159664	gensupport.SetOptions(c.urlParams_, opts...)
159665	res, err := c.doRequest("json")
159666	if res != nil && res.StatusCode == http.StatusNotModified {
159667		if res.Body != nil {
159668			res.Body.Close()
159669		}
159670		return nil, &googleapi.Error{
159671			Code:   res.StatusCode,
159672			Header: res.Header,
159673		}
159674	}
159675	if err != nil {
159676		return nil, err
159677	}
159678	defer googleapi.CloseBody(res)
159679	if err := googleapi.CheckResponse(res); err != nil {
159680		return nil, err
159681	}
159682	ret := &Operation{
159683		ServerResponse: googleapi.ServerResponse{
159684			Header:         res.Header,
159685			HTTPStatusCode: res.StatusCode,
159686		},
159687	}
159688	target := &ret
159689	if err := gensupport.DecodeResponse(target, res); err != nil {
159690		return nil, err
159691	}
159692	return ret, nil
159693	// {
159694	//   "description": "Creates a TargetInstance resource in the specified project and zone using the data included in the request.",
159695	//   "httpMethod": "POST",
159696	//   "id": "compute.targetInstances.insert",
159697	//   "parameterOrder": [
159698	//     "project",
159699	//     "zone"
159700	//   ],
159701	//   "parameters": {
159702	//     "project": {
159703	//       "description": "Project ID for this request.",
159704	//       "location": "path",
159705	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159706	//       "required": true,
159707	//       "type": "string"
159708	//     },
159709	//     "requestId": {
159710	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
159711	//       "location": "query",
159712	//       "type": "string"
159713	//     },
159714	//     "zone": {
159715	//       "description": "Name of the zone scoping this request.",
159716	//       "location": "path",
159717	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
159718	//       "required": true,
159719	//       "type": "string"
159720	//     }
159721	//   },
159722	//   "path": "{project}/zones/{zone}/targetInstances",
159723	//   "request": {
159724	//     "$ref": "TargetInstance"
159725	//   },
159726	//   "response": {
159727	//     "$ref": "Operation"
159728	//   },
159729	//   "scopes": [
159730	//     "https://www.googleapis.com/auth/cloud-platform",
159731	//     "https://www.googleapis.com/auth/compute"
159732	//   ]
159733	// }
159734
159735}
159736
159737// method id "compute.targetInstances.list":
159738
159739type TargetInstancesListCall struct {
159740	s            *Service
159741	project      string
159742	zone         string
159743	urlParams_   gensupport.URLParams
159744	ifNoneMatch_ string
159745	ctx_         context.Context
159746	header_      http.Header
159747}
159748
159749// List: Retrieves a list of TargetInstance resources available to the
159750// specified project and zone.
159751// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/list
159752func (r *TargetInstancesService) List(project string, zone string) *TargetInstancesListCall {
159753	c := &TargetInstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159754	c.project = project
159755	c.zone = zone
159756	return c
159757}
159758
159759// Filter sets the optional parameter "filter": A filter expression that
159760// filters resources listed in the response. The expression must specify
159761// the field name, a comparison operator, and the value that you want to
159762// use for filtering. The value must be a string, a number, or a
159763// boolean. The comparison operator must be either =, !=, >, or <.
159764//
159765// For example, if you are filtering Compute Engine instances, you can
159766// exclude instances named example-instance by specifying name !=
159767// example-instance.
159768//
159769// You can also filter nested fields. For example, you could specify
159770// scheduling.automaticRestart = false to include instances only if they
159771// are not scheduled for automatic restarts. You can use filtering on
159772// nested fields to filter based on resource labels.
159773//
159774// To filter on multiple expressions, provide each separate expression
159775// within parentheses. For example, (scheduling.automaticRestart = true)
159776// (cpuPlatform = "Intel Skylake"). By default, each expression is an
159777// AND expression. However, you can include AND and OR expressions
159778// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
159779// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
159780// true).
159781func (c *TargetInstancesListCall) Filter(filter string) *TargetInstancesListCall {
159782	c.urlParams_.Set("filter", filter)
159783	return c
159784}
159785
159786// MaxResults sets the optional parameter "maxResults": The maximum
159787// number of results per page that should be returned. If the number of
159788// available results is larger than maxResults, Compute Engine returns a
159789// nextPageToken that can be used to get the next page of results in
159790// subsequent list requests. Acceptable values are 0 to 500, inclusive.
159791// (Default: 500)
159792func (c *TargetInstancesListCall) MaxResults(maxResults int64) *TargetInstancesListCall {
159793	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
159794	return c
159795}
159796
159797// OrderBy sets the optional parameter "orderBy": Sorts list results by
159798// a certain order. By default, results are returned in alphanumerical
159799// order based on the resource name.
159800//
159801// You can also sort results in descending order based on the creation
159802// timestamp using orderBy="creationTimestamp desc". This sorts results
159803// based on the creationTimestamp field in reverse chronological order
159804// (newest result first). Use this to sort resources like operations so
159805// that the newest operation is returned first.
159806//
159807// Currently, only sorting by name or creationTimestamp desc is
159808// supported.
159809func (c *TargetInstancesListCall) OrderBy(orderBy string) *TargetInstancesListCall {
159810	c.urlParams_.Set("orderBy", orderBy)
159811	return c
159812}
159813
159814// PageToken sets the optional parameter "pageToken": Specifies a page
159815// token to use. Set pageToken to the nextPageToken returned by a
159816// previous list request to get the next page of results.
159817func (c *TargetInstancesListCall) PageToken(pageToken string) *TargetInstancesListCall {
159818	c.urlParams_.Set("pageToken", pageToken)
159819	return c
159820}
159821
159822// Fields allows partial responses to be retrieved. See
159823// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159824// for more information.
159825func (c *TargetInstancesListCall) Fields(s ...googleapi.Field) *TargetInstancesListCall {
159826	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159827	return c
159828}
159829
159830// IfNoneMatch sets the optional parameter which makes the operation
159831// fail if the object's ETag matches the given value. This is useful for
159832// getting updates only after the object has changed since the last
159833// request. Use googleapi.IsNotModified to check whether the response
159834// error from Do is the result of In-None-Match.
159835func (c *TargetInstancesListCall) IfNoneMatch(entityTag string) *TargetInstancesListCall {
159836	c.ifNoneMatch_ = entityTag
159837	return c
159838}
159839
159840// Context sets the context to be used in this call's Do method. Any
159841// pending HTTP request will be aborted if the provided context is
159842// canceled.
159843func (c *TargetInstancesListCall) Context(ctx context.Context) *TargetInstancesListCall {
159844	c.ctx_ = ctx
159845	return c
159846}
159847
159848// Header returns an http.Header that can be modified by the caller to
159849// add HTTP headers to the request.
159850func (c *TargetInstancesListCall) Header() http.Header {
159851	if c.header_ == nil {
159852		c.header_ = make(http.Header)
159853	}
159854	return c.header_
159855}
159856
159857func (c *TargetInstancesListCall) doRequest(alt string) (*http.Response, error) {
159858	reqHeaders := make(http.Header)
159859	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
159860	for k, v := range c.header_ {
159861		reqHeaders[k] = v
159862	}
159863	reqHeaders.Set("User-Agent", c.s.userAgent())
159864	if c.ifNoneMatch_ != "" {
159865		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
159866	}
159867	var body io.Reader = nil
159868	c.urlParams_.Set("alt", alt)
159869	c.urlParams_.Set("prettyPrint", "false")
159870	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances")
159871	urls += "?" + c.urlParams_.Encode()
159872	req, err := http.NewRequest("GET", urls, body)
159873	if err != nil {
159874		return nil, err
159875	}
159876	req.Header = reqHeaders
159877	googleapi.Expand(req.URL, map[string]string{
159878		"project": c.project,
159879		"zone":    c.zone,
159880	})
159881	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159882}
159883
159884// Do executes the "compute.targetInstances.list" call.
159885// Exactly one of *TargetInstanceList or error will be non-nil. Any
159886// non-2xx status code is an error. Response headers are in either
159887// *TargetInstanceList.ServerResponse.Header or (if a response was
159888// returned at all) in error.(*googleapi.Error).Header. Use
159889// googleapi.IsNotModified to check whether the returned error was
159890// because http.StatusNotModified was returned.
159891func (c *TargetInstancesListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceList, error) {
159892	gensupport.SetOptions(c.urlParams_, opts...)
159893	res, err := c.doRequest("json")
159894	if res != nil && res.StatusCode == http.StatusNotModified {
159895		if res.Body != nil {
159896			res.Body.Close()
159897		}
159898		return nil, &googleapi.Error{
159899			Code:   res.StatusCode,
159900			Header: res.Header,
159901		}
159902	}
159903	if err != nil {
159904		return nil, err
159905	}
159906	defer googleapi.CloseBody(res)
159907	if err := googleapi.CheckResponse(res); err != nil {
159908		return nil, err
159909	}
159910	ret := &TargetInstanceList{
159911		ServerResponse: googleapi.ServerResponse{
159912			Header:         res.Header,
159913			HTTPStatusCode: res.StatusCode,
159914		},
159915	}
159916	target := &ret
159917	if err := gensupport.DecodeResponse(target, res); err != nil {
159918		return nil, err
159919	}
159920	return ret, nil
159921	// {
159922	//   "description": "Retrieves a list of TargetInstance resources available to the specified project and zone.",
159923	//   "httpMethod": "GET",
159924	//   "id": "compute.targetInstances.list",
159925	//   "parameterOrder": [
159926	//     "project",
159927	//     "zone"
159928	//   ],
159929	//   "parameters": {
159930	//     "filter": {
159931	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
159932	//       "location": "query",
159933	//       "type": "string"
159934	//     },
159935	//     "maxResults": {
159936	//       "default": "500",
159937	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
159938	//       "format": "uint32",
159939	//       "location": "query",
159940	//       "minimum": "0",
159941	//       "type": "integer"
159942	//     },
159943	//     "orderBy": {
159944	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
159945	//       "location": "query",
159946	//       "type": "string"
159947	//     },
159948	//     "pageToken": {
159949	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
159950	//       "location": "query",
159951	//       "type": "string"
159952	//     },
159953	//     "project": {
159954	//       "description": "Project ID for this request.",
159955	//       "location": "path",
159956	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159957	//       "required": true,
159958	//       "type": "string"
159959	//     },
159960	//     "zone": {
159961	//       "description": "Name of the zone scoping this request.",
159962	//       "location": "path",
159963	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
159964	//       "required": true,
159965	//       "type": "string"
159966	//     }
159967	//   },
159968	//   "path": "{project}/zones/{zone}/targetInstances",
159969	//   "response": {
159970	//     "$ref": "TargetInstanceList"
159971	//   },
159972	//   "scopes": [
159973	//     "https://www.googleapis.com/auth/cloud-platform",
159974	//     "https://www.googleapis.com/auth/compute",
159975	//     "https://www.googleapis.com/auth/compute.readonly"
159976	//   ]
159977	// }
159978
159979}
159980
159981// Pages invokes f for each page of results.
159982// A non-nil error returned from f will halt the iteration.
159983// The provided context supersedes any context provided to the Context method.
159984func (c *TargetInstancesListCall) Pages(ctx context.Context, f func(*TargetInstanceList) error) error {
159985	c.ctx_ = ctx
159986	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
159987	for {
159988		x, err := c.Do()
159989		if err != nil {
159990			return err
159991		}
159992		if err := f(x); err != nil {
159993			return err
159994		}
159995		if x.NextPageToken == "" {
159996			return nil
159997		}
159998		c.PageToken(x.NextPageToken)
159999	}
160000}
160001
160002// method id "compute.targetInstances.testIamPermissions":
160003
160004type TargetInstancesTestIamPermissionsCall struct {
160005	s                      *Service
160006	project                string
160007	zone                   string
160008	resource               string
160009	testpermissionsrequest *TestPermissionsRequest
160010	urlParams_             gensupport.URLParams
160011	ctx_                   context.Context
160012	header_                http.Header
160013}
160014
160015// TestIamPermissions: Returns permissions that a caller has on the
160016// specified resource.
160017func (r *TargetInstancesService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetInstancesTestIamPermissionsCall {
160018	c := &TargetInstancesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160019	c.project = project
160020	c.zone = zone
160021	c.resource = resource
160022	c.testpermissionsrequest = testpermissionsrequest
160023	return c
160024}
160025
160026// Fields allows partial responses to be retrieved. See
160027// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160028// for more information.
160029func (c *TargetInstancesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetInstancesTestIamPermissionsCall {
160030	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160031	return c
160032}
160033
160034// Context sets the context to be used in this call's Do method. Any
160035// pending HTTP request will be aborted if the provided context is
160036// canceled.
160037func (c *TargetInstancesTestIamPermissionsCall) Context(ctx context.Context) *TargetInstancesTestIamPermissionsCall {
160038	c.ctx_ = ctx
160039	return c
160040}
160041
160042// Header returns an http.Header that can be modified by the caller to
160043// add HTTP headers to the request.
160044func (c *TargetInstancesTestIamPermissionsCall) Header() http.Header {
160045	if c.header_ == nil {
160046		c.header_ = make(http.Header)
160047	}
160048	return c.header_
160049}
160050
160051func (c *TargetInstancesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
160052	reqHeaders := make(http.Header)
160053	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
160054	for k, v := range c.header_ {
160055		reqHeaders[k] = v
160056	}
160057	reqHeaders.Set("User-Agent", c.s.userAgent())
160058	var body io.Reader = nil
160059	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
160060	if err != nil {
160061		return nil, err
160062	}
160063	reqHeaders.Set("Content-Type", "application/json")
160064	c.urlParams_.Set("alt", alt)
160065	c.urlParams_.Set("prettyPrint", "false")
160066	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances/{resource}/testIamPermissions")
160067	urls += "?" + c.urlParams_.Encode()
160068	req, err := http.NewRequest("POST", urls, body)
160069	if err != nil {
160070		return nil, err
160071	}
160072	req.Header = reqHeaders
160073	googleapi.Expand(req.URL, map[string]string{
160074		"project":  c.project,
160075		"zone":     c.zone,
160076		"resource": c.resource,
160077	})
160078	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160079}
160080
160081// Do executes the "compute.targetInstances.testIamPermissions" call.
160082// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
160083// non-2xx status code is an error. Response headers are in either
160084// *TestPermissionsResponse.ServerResponse.Header or (if a response was
160085// returned at all) in error.(*googleapi.Error).Header. Use
160086// googleapi.IsNotModified to check whether the returned error was
160087// because http.StatusNotModified was returned.
160088func (c *TargetInstancesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
160089	gensupport.SetOptions(c.urlParams_, opts...)
160090	res, err := c.doRequest("json")
160091	if res != nil && res.StatusCode == http.StatusNotModified {
160092		if res.Body != nil {
160093			res.Body.Close()
160094		}
160095		return nil, &googleapi.Error{
160096			Code:   res.StatusCode,
160097			Header: res.Header,
160098		}
160099	}
160100	if err != nil {
160101		return nil, err
160102	}
160103	defer googleapi.CloseBody(res)
160104	if err := googleapi.CheckResponse(res); err != nil {
160105		return nil, err
160106	}
160107	ret := &TestPermissionsResponse{
160108		ServerResponse: googleapi.ServerResponse{
160109			Header:         res.Header,
160110			HTTPStatusCode: res.StatusCode,
160111		},
160112	}
160113	target := &ret
160114	if err := gensupport.DecodeResponse(target, res); err != nil {
160115		return nil, err
160116	}
160117	return ret, nil
160118	// {
160119	//   "description": "Returns permissions that a caller has on the specified resource.",
160120	//   "httpMethod": "POST",
160121	//   "id": "compute.targetInstances.testIamPermissions",
160122	//   "parameterOrder": [
160123	//     "project",
160124	//     "zone",
160125	//     "resource"
160126	//   ],
160127	//   "parameters": {
160128	//     "project": {
160129	//       "description": "Project ID for this request.",
160130	//       "location": "path",
160131	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160132	//       "required": true,
160133	//       "type": "string"
160134	//     },
160135	//     "resource": {
160136	//       "description": "Name or id of the resource for this request.",
160137	//       "location": "path",
160138	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160139	//       "required": true,
160140	//       "type": "string"
160141	//     },
160142	//     "zone": {
160143	//       "description": "The name of the zone for this request.",
160144	//       "location": "path",
160145	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
160146	//       "required": true,
160147	//       "type": "string"
160148	//     }
160149	//   },
160150	//   "path": "{project}/zones/{zone}/targetInstances/{resource}/testIamPermissions",
160151	//   "request": {
160152	//     "$ref": "TestPermissionsRequest"
160153	//   },
160154	//   "response": {
160155	//     "$ref": "TestPermissionsResponse"
160156	//   },
160157	//   "scopes": [
160158	//     "https://www.googleapis.com/auth/cloud-platform",
160159	//     "https://www.googleapis.com/auth/compute",
160160	//     "https://www.googleapis.com/auth/compute.readonly"
160161	//   ]
160162	// }
160163
160164}
160165
160166// method id "compute.targetPools.addHealthCheck":
160167
160168type TargetPoolsAddHealthCheckCall struct {
160169	s                                *Service
160170	project                          string
160171	region                           string
160172	targetPool                       string
160173	targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest
160174	urlParams_                       gensupport.URLParams
160175	ctx_                             context.Context
160176	header_                          http.Header
160177}
160178
160179// AddHealthCheck: Adds health check URLs to a target pool.
160180// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/addHealthCheck
160181func (r *TargetPoolsService) AddHealthCheck(project string, region string, targetPool string, targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest) *TargetPoolsAddHealthCheckCall {
160182	c := &TargetPoolsAddHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160183	c.project = project
160184	c.region = region
160185	c.targetPool = targetPool
160186	c.targetpoolsaddhealthcheckrequest = targetpoolsaddhealthcheckrequest
160187	return c
160188}
160189
160190// RequestId sets the optional parameter "requestId": An optional
160191// request ID to identify requests. Specify a unique request ID so that
160192// if you must retry your request, the server will know to ignore the
160193// request if it has already been completed.
160194//
160195// For example, consider a situation where you make an initial request
160196// and the request times out. If you make the request again with the
160197// same request ID, the server can check if original operation with the
160198// same request ID was received, and if so, will ignore the second
160199// request. This prevents clients from accidentally creating duplicate
160200// commitments.
160201//
160202// The request ID must be a valid UUID with the exception that zero UUID
160203// is not supported (00000000-0000-0000-0000-000000000000).
160204func (c *TargetPoolsAddHealthCheckCall) RequestId(requestId string) *TargetPoolsAddHealthCheckCall {
160205	c.urlParams_.Set("requestId", requestId)
160206	return c
160207}
160208
160209// Fields allows partial responses to be retrieved. See
160210// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160211// for more information.
160212func (c *TargetPoolsAddHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsAddHealthCheckCall {
160213	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160214	return c
160215}
160216
160217// Context sets the context to be used in this call's Do method. Any
160218// pending HTTP request will be aborted if the provided context is
160219// canceled.
160220func (c *TargetPoolsAddHealthCheckCall) Context(ctx context.Context) *TargetPoolsAddHealthCheckCall {
160221	c.ctx_ = ctx
160222	return c
160223}
160224
160225// Header returns an http.Header that can be modified by the caller to
160226// add HTTP headers to the request.
160227func (c *TargetPoolsAddHealthCheckCall) Header() http.Header {
160228	if c.header_ == nil {
160229		c.header_ = make(http.Header)
160230	}
160231	return c.header_
160232}
160233
160234func (c *TargetPoolsAddHealthCheckCall) doRequest(alt string) (*http.Response, error) {
160235	reqHeaders := make(http.Header)
160236	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
160237	for k, v := range c.header_ {
160238		reqHeaders[k] = v
160239	}
160240	reqHeaders.Set("User-Agent", c.s.userAgent())
160241	var body io.Reader = nil
160242	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddhealthcheckrequest)
160243	if err != nil {
160244		return nil, err
160245	}
160246	reqHeaders.Set("Content-Type", "application/json")
160247	c.urlParams_.Set("alt", alt)
160248	c.urlParams_.Set("prettyPrint", "false")
160249	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck")
160250	urls += "?" + c.urlParams_.Encode()
160251	req, err := http.NewRequest("POST", urls, body)
160252	if err != nil {
160253		return nil, err
160254	}
160255	req.Header = reqHeaders
160256	googleapi.Expand(req.URL, map[string]string{
160257		"project":    c.project,
160258		"region":     c.region,
160259		"targetPool": c.targetPool,
160260	})
160261	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160262}
160263
160264// Do executes the "compute.targetPools.addHealthCheck" call.
160265// Exactly one of *Operation or error will be non-nil. Any non-2xx
160266// status code is an error. Response headers are in either
160267// *Operation.ServerResponse.Header or (if a response was returned at
160268// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160269// to check whether the returned error was because
160270// http.StatusNotModified was returned.
160271func (c *TargetPoolsAddHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
160272	gensupport.SetOptions(c.urlParams_, opts...)
160273	res, err := c.doRequest("json")
160274	if res != nil && res.StatusCode == http.StatusNotModified {
160275		if res.Body != nil {
160276			res.Body.Close()
160277		}
160278		return nil, &googleapi.Error{
160279			Code:   res.StatusCode,
160280			Header: res.Header,
160281		}
160282	}
160283	if err != nil {
160284		return nil, err
160285	}
160286	defer googleapi.CloseBody(res)
160287	if err := googleapi.CheckResponse(res); err != nil {
160288		return nil, err
160289	}
160290	ret := &Operation{
160291		ServerResponse: googleapi.ServerResponse{
160292			Header:         res.Header,
160293			HTTPStatusCode: res.StatusCode,
160294		},
160295	}
160296	target := &ret
160297	if err := gensupport.DecodeResponse(target, res); err != nil {
160298		return nil, err
160299	}
160300	return ret, nil
160301	// {
160302	//   "description": "Adds health check URLs to a target pool.",
160303	//   "httpMethod": "POST",
160304	//   "id": "compute.targetPools.addHealthCheck",
160305	//   "parameterOrder": [
160306	//     "project",
160307	//     "region",
160308	//     "targetPool"
160309	//   ],
160310	//   "parameters": {
160311	//     "project": {
160312	//       "description": "Project ID for this request.",
160313	//       "location": "path",
160314	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160315	//       "required": true,
160316	//       "type": "string"
160317	//     },
160318	//     "region": {
160319	//       "description": "Name of the region scoping this request.",
160320	//       "location": "path",
160321	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
160322	//       "required": true,
160323	//       "type": "string"
160324	//     },
160325	//     "requestId": {
160326	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
160327	//       "location": "query",
160328	//       "type": "string"
160329	//     },
160330	//     "targetPool": {
160331	//       "description": "Name of the target pool to add a health check to.",
160332	//       "location": "path",
160333	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160334	//       "required": true,
160335	//       "type": "string"
160336	//     }
160337	//   },
160338	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck",
160339	//   "request": {
160340	//     "$ref": "TargetPoolsAddHealthCheckRequest"
160341	//   },
160342	//   "response": {
160343	//     "$ref": "Operation"
160344	//   },
160345	//   "scopes": [
160346	//     "https://www.googleapis.com/auth/cloud-platform",
160347	//     "https://www.googleapis.com/auth/compute"
160348	//   ]
160349	// }
160350
160351}
160352
160353// method id "compute.targetPools.addInstance":
160354
160355type TargetPoolsAddInstanceCall struct {
160356	s                             *Service
160357	project                       string
160358	region                        string
160359	targetPool                    string
160360	targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest
160361	urlParams_                    gensupport.URLParams
160362	ctx_                          context.Context
160363	header_                       http.Header
160364}
160365
160366// AddInstance: Adds an instance to a target pool.
160367// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/addInstance
160368func (r *TargetPoolsService) AddInstance(project string, region string, targetPool string, targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest) *TargetPoolsAddInstanceCall {
160369	c := &TargetPoolsAddInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160370	c.project = project
160371	c.region = region
160372	c.targetPool = targetPool
160373	c.targetpoolsaddinstancerequest = targetpoolsaddinstancerequest
160374	return c
160375}
160376
160377// RequestId sets the optional parameter "requestId": An optional
160378// request ID to identify requests. Specify a unique request ID so that
160379// if you must retry your request, the server will know to ignore the
160380// request if it has already been completed.
160381//
160382// For example, consider a situation where you make an initial request
160383// and the request times out. If you make the request again with the
160384// same request ID, the server can check if original operation with the
160385// same request ID was received, and if so, will ignore the second
160386// request. This prevents clients from accidentally creating duplicate
160387// commitments.
160388//
160389// The request ID must be a valid UUID with the exception that zero UUID
160390// is not supported (00000000-0000-0000-0000-000000000000).
160391func (c *TargetPoolsAddInstanceCall) RequestId(requestId string) *TargetPoolsAddInstanceCall {
160392	c.urlParams_.Set("requestId", requestId)
160393	return c
160394}
160395
160396// Fields allows partial responses to be retrieved. See
160397// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160398// for more information.
160399func (c *TargetPoolsAddInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsAddInstanceCall {
160400	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160401	return c
160402}
160403
160404// Context sets the context to be used in this call's Do method. Any
160405// pending HTTP request will be aborted if the provided context is
160406// canceled.
160407func (c *TargetPoolsAddInstanceCall) Context(ctx context.Context) *TargetPoolsAddInstanceCall {
160408	c.ctx_ = ctx
160409	return c
160410}
160411
160412// Header returns an http.Header that can be modified by the caller to
160413// add HTTP headers to the request.
160414func (c *TargetPoolsAddInstanceCall) Header() http.Header {
160415	if c.header_ == nil {
160416		c.header_ = make(http.Header)
160417	}
160418	return c.header_
160419}
160420
160421func (c *TargetPoolsAddInstanceCall) doRequest(alt string) (*http.Response, error) {
160422	reqHeaders := make(http.Header)
160423	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
160424	for k, v := range c.header_ {
160425		reqHeaders[k] = v
160426	}
160427	reqHeaders.Set("User-Agent", c.s.userAgent())
160428	var body io.Reader = nil
160429	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddinstancerequest)
160430	if err != nil {
160431		return nil, err
160432	}
160433	reqHeaders.Set("Content-Type", "application/json")
160434	c.urlParams_.Set("alt", alt)
160435	c.urlParams_.Set("prettyPrint", "false")
160436	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/addInstance")
160437	urls += "?" + c.urlParams_.Encode()
160438	req, err := http.NewRequest("POST", urls, body)
160439	if err != nil {
160440		return nil, err
160441	}
160442	req.Header = reqHeaders
160443	googleapi.Expand(req.URL, map[string]string{
160444		"project":    c.project,
160445		"region":     c.region,
160446		"targetPool": c.targetPool,
160447	})
160448	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160449}
160450
160451// Do executes the "compute.targetPools.addInstance" call.
160452// Exactly one of *Operation or error will be non-nil. Any non-2xx
160453// status code is an error. Response headers are in either
160454// *Operation.ServerResponse.Header or (if a response was returned at
160455// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160456// to check whether the returned error was because
160457// http.StatusNotModified was returned.
160458func (c *TargetPoolsAddInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
160459	gensupport.SetOptions(c.urlParams_, opts...)
160460	res, err := c.doRequest("json")
160461	if res != nil && res.StatusCode == http.StatusNotModified {
160462		if res.Body != nil {
160463			res.Body.Close()
160464		}
160465		return nil, &googleapi.Error{
160466			Code:   res.StatusCode,
160467			Header: res.Header,
160468		}
160469	}
160470	if err != nil {
160471		return nil, err
160472	}
160473	defer googleapi.CloseBody(res)
160474	if err := googleapi.CheckResponse(res); err != nil {
160475		return nil, err
160476	}
160477	ret := &Operation{
160478		ServerResponse: googleapi.ServerResponse{
160479			Header:         res.Header,
160480			HTTPStatusCode: res.StatusCode,
160481		},
160482	}
160483	target := &ret
160484	if err := gensupport.DecodeResponse(target, res); err != nil {
160485		return nil, err
160486	}
160487	return ret, nil
160488	// {
160489	//   "description": "Adds an instance to a target pool.",
160490	//   "httpMethod": "POST",
160491	//   "id": "compute.targetPools.addInstance",
160492	//   "parameterOrder": [
160493	//     "project",
160494	//     "region",
160495	//     "targetPool"
160496	//   ],
160497	//   "parameters": {
160498	//     "project": {
160499	//       "description": "Project ID for this request.",
160500	//       "location": "path",
160501	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160502	//       "required": true,
160503	//       "type": "string"
160504	//     },
160505	//     "region": {
160506	//       "description": "Name of the region scoping this request.",
160507	//       "location": "path",
160508	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
160509	//       "required": true,
160510	//       "type": "string"
160511	//     },
160512	//     "requestId": {
160513	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
160514	//       "location": "query",
160515	//       "type": "string"
160516	//     },
160517	//     "targetPool": {
160518	//       "description": "Name of the TargetPool resource to add instances to.",
160519	//       "location": "path",
160520	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160521	//       "required": true,
160522	//       "type": "string"
160523	//     }
160524	//   },
160525	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/addInstance",
160526	//   "request": {
160527	//     "$ref": "TargetPoolsAddInstanceRequest"
160528	//   },
160529	//   "response": {
160530	//     "$ref": "Operation"
160531	//   },
160532	//   "scopes": [
160533	//     "https://www.googleapis.com/auth/cloud-platform",
160534	//     "https://www.googleapis.com/auth/compute"
160535	//   ]
160536	// }
160537
160538}
160539
160540// method id "compute.targetPools.aggregatedList":
160541
160542type TargetPoolsAggregatedListCall struct {
160543	s            *Service
160544	project      string
160545	urlParams_   gensupport.URLParams
160546	ifNoneMatch_ string
160547	ctx_         context.Context
160548	header_      http.Header
160549}
160550
160551// AggregatedList: Retrieves an aggregated list of target pools.
160552// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/aggregatedList
160553func (r *TargetPoolsService) AggregatedList(project string) *TargetPoolsAggregatedListCall {
160554	c := &TargetPoolsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160555	c.project = project
160556	return c
160557}
160558
160559// Filter sets the optional parameter "filter": A filter expression that
160560// filters resources listed in the response. The expression must specify
160561// the field name, a comparison operator, and the value that you want to
160562// use for filtering. The value must be a string, a number, or a
160563// boolean. The comparison operator must be either =, !=, >, or <.
160564//
160565// For example, if you are filtering Compute Engine instances, you can
160566// exclude instances named example-instance by specifying name !=
160567// example-instance.
160568//
160569// You can also filter nested fields. For example, you could specify
160570// scheduling.automaticRestart = false to include instances only if they
160571// are not scheduled for automatic restarts. You can use filtering on
160572// nested fields to filter based on resource labels.
160573//
160574// To filter on multiple expressions, provide each separate expression
160575// within parentheses. For example, (scheduling.automaticRestart = true)
160576// (cpuPlatform = "Intel Skylake"). By default, each expression is an
160577// AND expression. However, you can include AND and OR expressions
160578// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
160579// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
160580// true).
160581func (c *TargetPoolsAggregatedListCall) Filter(filter string) *TargetPoolsAggregatedListCall {
160582	c.urlParams_.Set("filter", filter)
160583	return c
160584}
160585
160586// IncludeAllScopes sets the optional parameter "includeAllScopes":
160587// Indicates whether every visible scope for each scope type (zone,
160588// region, global) should be included in the response. For new resource
160589// types added after this field, the flag has no effect as new resource
160590// types will always include every visible scope for each scope type in
160591// response. For resource types which predate this field, if this flag
160592// is omitted or false, only scopes of the scope types where the
160593// resource type is expected to be found will be included.
160594func (c *TargetPoolsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetPoolsAggregatedListCall {
160595	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
160596	return c
160597}
160598
160599// MaxResults sets the optional parameter "maxResults": The maximum
160600// number of results per page that should be returned. If the number of
160601// available results is larger than maxResults, Compute Engine returns a
160602// nextPageToken that can be used to get the next page of results in
160603// subsequent list requests. Acceptable values are 0 to 500, inclusive.
160604// (Default: 500)
160605func (c *TargetPoolsAggregatedListCall) MaxResults(maxResults int64) *TargetPoolsAggregatedListCall {
160606	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
160607	return c
160608}
160609
160610// OrderBy sets the optional parameter "orderBy": Sorts list results by
160611// a certain order. By default, results are returned in alphanumerical
160612// order based on the resource name.
160613//
160614// You can also sort results in descending order based on the creation
160615// timestamp using orderBy="creationTimestamp desc". This sorts results
160616// based on the creationTimestamp field in reverse chronological order
160617// (newest result first). Use this to sort resources like operations so
160618// that the newest operation is returned first.
160619//
160620// Currently, only sorting by name or creationTimestamp desc is
160621// supported.
160622func (c *TargetPoolsAggregatedListCall) OrderBy(orderBy string) *TargetPoolsAggregatedListCall {
160623	c.urlParams_.Set("orderBy", orderBy)
160624	return c
160625}
160626
160627// PageToken sets the optional parameter "pageToken": Specifies a page
160628// token to use. Set pageToken to the nextPageToken returned by a
160629// previous list request to get the next page of results.
160630func (c *TargetPoolsAggregatedListCall) PageToken(pageToken string) *TargetPoolsAggregatedListCall {
160631	c.urlParams_.Set("pageToken", pageToken)
160632	return c
160633}
160634
160635// Fields allows partial responses to be retrieved. See
160636// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160637// for more information.
160638func (c *TargetPoolsAggregatedListCall) Fields(s ...googleapi.Field) *TargetPoolsAggregatedListCall {
160639	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160640	return c
160641}
160642
160643// IfNoneMatch sets the optional parameter which makes the operation
160644// fail if the object's ETag matches the given value. This is useful for
160645// getting updates only after the object has changed since the last
160646// request. Use googleapi.IsNotModified to check whether the response
160647// error from Do is the result of In-None-Match.
160648func (c *TargetPoolsAggregatedListCall) IfNoneMatch(entityTag string) *TargetPoolsAggregatedListCall {
160649	c.ifNoneMatch_ = entityTag
160650	return c
160651}
160652
160653// Context sets the context to be used in this call's Do method. Any
160654// pending HTTP request will be aborted if the provided context is
160655// canceled.
160656func (c *TargetPoolsAggregatedListCall) Context(ctx context.Context) *TargetPoolsAggregatedListCall {
160657	c.ctx_ = ctx
160658	return c
160659}
160660
160661// Header returns an http.Header that can be modified by the caller to
160662// add HTTP headers to the request.
160663func (c *TargetPoolsAggregatedListCall) Header() http.Header {
160664	if c.header_ == nil {
160665		c.header_ = make(http.Header)
160666	}
160667	return c.header_
160668}
160669
160670func (c *TargetPoolsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
160671	reqHeaders := make(http.Header)
160672	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
160673	for k, v := range c.header_ {
160674		reqHeaders[k] = v
160675	}
160676	reqHeaders.Set("User-Agent", c.s.userAgent())
160677	if c.ifNoneMatch_ != "" {
160678		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
160679	}
160680	var body io.Reader = nil
160681	c.urlParams_.Set("alt", alt)
160682	c.urlParams_.Set("prettyPrint", "false")
160683	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetPools")
160684	urls += "?" + c.urlParams_.Encode()
160685	req, err := http.NewRequest("GET", urls, body)
160686	if err != nil {
160687		return nil, err
160688	}
160689	req.Header = reqHeaders
160690	googleapi.Expand(req.URL, map[string]string{
160691		"project": c.project,
160692	})
160693	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160694}
160695
160696// Do executes the "compute.targetPools.aggregatedList" call.
160697// Exactly one of *TargetPoolAggregatedList or error will be non-nil.
160698// Any non-2xx status code is an error. Response headers are in either
160699// *TargetPoolAggregatedList.ServerResponse.Header or (if a response was
160700// returned at all) in error.(*googleapi.Error).Header. Use
160701// googleapi.IsNotModified to check whether the returned error was
160702// because http.StatusNotModified was returned.
160703func (c *TargetPoolsAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetPoolAggregatedList, error) {
160704	gensupport.SetOptions(c.urlParams_, opts...)
160705	res, err := c.doRequest("json")
160706	if res != nil && res.StatusCode == http.StatusNotModified {
160707		if res.Body != nil {
160708			res.Body.Close()
160709		}
160710		return nil, &googleapi.Error{
160711			Code:   res.StatusCode,
160712			Header: res.Header,
160713		}
160714	}
160715	if err != nil {
160716		return nil, err
160717	}
160718	defer googleapi.CloseBody(res)
160719	if err := googleapi.CheckResponse(res); err != nil {
160720		return nil, err
160721	}
160722	ret := &TargetPoolAggregatedList{
160723		ServerResponse: googleapi.ServerResponse{
160724			Header:         res.Header,
160725			HTTPStatusCode: res.StatusCode,
160726		},
160727	}
160728	target := &ret
160729	if err := gensupport.DecodeResponse(target, res); err != nil {
160730		return nil, err
160731	}
160732	return ret, nil
160733	// {
160734	//   "description": "Retrieves an aggregated list of target pools.",
160735	//   "httpMethod": "GET",
160736	//   "id": "compute.targetPools.aggregatedList",
160737	//   "parameterOrder": [
160738	//     "project"
160739	//   ],
160740	//   "parameters": {
160741	//     "filter": {
160742	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
160743	//       "location": "query",
160744	//       "type": "string"
160745	//     },
160746	//     "includeAllScopes": {
160747	//       "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.",
160748	//       "location": "query",
160749	//       "type": "boolean"
160750	//     },
160751	//     "maxResults": {
160752	//       "default": "500",
160753	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
160754	//       "format": "uint32",
160755	//       "location": "query",
160756	//       "minimum": "0",
160757	//       "type": "integer"
160758	//     },
160759	//     "orderBy": {
160760	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
160761	//       "location": "query",
160762	//       "type": "string"
160763	//     },
160764	//     "pageToken": {
160765	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
160766	//       "location": "query",
160767	//       "type": "string"
160768	//     },
160769	//     "project": {
160770	//       "description": "Project ID for this request.",
160771	//       "location": "path",
160772	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160773	//       "required": true,
160774	//       "type": "string"
160775	//     }
160776	//   },
160777	//   "path": "{project}/aggregated/targetPools",
160778	//   "response": {
160779	//     "$ref": "TargetPoolAggregatedList"
160780	//   },
160781	//   "scopes": [
160782	//     "https://www.googleapis.com/auth/cloud-platform",
160783	//     "https://www.googleapis.com/auth/compute",
160784	//     "https://www.googleapis.com/auth/compute.readonly"
160785	//   ]
160786	// }
160787
160788}
160789
160790// Pages invokes f for each page of results.
160791// A non-nil error returned from f will halt the iteration.
160792// The provided context supersedes any context provided to the Context method.
160793func (c *TargetPoolsAggregatedListCall) Pages(ctx context.Context, f func(*TargetPoolAggregatedList) error) error {
160794	c.ctx_ = ctx
160795	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
160796	for {
160797		x, err := c.Do()
160798		if err != nil {
160799			return err
160800		}
160801		if err := f(x); err != nil {
160802			return err
160803		}
160804		if x.NextPageToken == "" {
160805			return nil
160806		}
160807		c.PageToken(x.NextPageToken)
160808	}
160809}
160810
160811// method id "compute.targetPools.delete":
160812
160813type TargetPoolsDeleteCall struct {
160814	s          *Service
160815	project    string
160816	region     string
160817	targetPool string
160818	urlParams_ gensupport.URLParams
160819	ctx_       context.Context
160820	header_    http.Header
160821}
160822
160823// Delete: Deletes the specified target pool.
160824// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/delete
160825func (r *TargetPoolsService) Delete(project string, region string, targetPool string) *TargetPoolsDeleteCall {
160826	c := &TargetPoolsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160827	c.project = project
160828	c.region = region
160829	c.targetPool = targetPool
160830	return c
160831}
160832
160833// RequestId sets the optional parameter "requestId": An optional
160834// request ID to identify requests. Specify a unique request ID so that
160835// if you must retry your request, the server will know to ignore the
160836// request if it has already been completed.
160837//
160838// For example, consider a situation where you make an initial request
160839// and the request times out. If you make the request again with the
160840// same request ID, the server can check if original operation with the
160841// same request ID was received, and if so, will ignore the second
160842// request. This prevents clients from accidentally creating duplicate
160843// commitments.
160844//
160845// The request ID must be a valid UUID with the exception that zero UUID
160846// is not supported (00000000-0000-0000-0000-000000000000).
160847func (c *TargetPoolsDeleteCall) RequestId(requestId string) *TargetPoolsDeleteCall {
160848	c.urlParams_.Set("requestId", requestId)
160849	return c
160850}
160851
160852// Fields allows partial responses to be retrieved. See
160853// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160854// for more information.
160855func (c *TargetPoolsDeleteCall) Fields(s ...googleapi.Field) *TargetPoolsDeleteCall {
160856	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160857	return c
160858}
160859
160860// Context sets the context to be used in this call's Do method. Any
160861// pending HTTP request will be aborted if the provided context is
160862// canceled.
160863func (c *TargetPoolsDeleteCall) Context(ctx context.Context) *TargetPoolsDeleteCall {
160864	c.ctx_ = ctx
160865	return c
160866}
160867
160868// Header returns an http.Header that can be modified by the caller to
160869// add HTTP headers to the request.
160870func (c *TargetPoolsDeleteCall) Header() http.Header {
160871	if c.header_ == nil {
160872		c.header_ = make(http.Header)
160873	}
160874	return c.header_
160875}
160876
160877func (c *TargetPoolsDeleteCall) doRequest(alt string) (*http.Response, error) {
160878	reqHeaders := make(http.Header)
160879	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
160880	for k, v := range c.header_ {
160881		reqHeaders[k] = v
160882	}
160883	reqHeaders.Set("User-Agent", c.s.userAgent())
160884	var body io.Reader = nil
160885	c.urlParams_.Set("alt", alt)
160886	c.urlParams_.Set("prettyPrint", "false")
160887	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}")
160888	urls += "?" + c.urlParams_.Encode()
160889	req, err := http.NewRequest("DELETE", urls, body)
160890	if err != nil {
160891		return nil, err
160892	}
160893	req.Header = reqHeaders
160894	googleapi.Expand(req.URL, map[string]string{
160895		"project":    c.project,
160896		"region":     c.region,
160897		"targetPool": c.targetPool,
160898	})
160899	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160900}
160901
160902// Do executes the "compute.targetPools.delete" call.
160903// Exactly one of *Operation or error will be non-nil. Any non-2xx
160904// status code is an error. Response headers are in either
160905// *Operation.ServerResponse.Header or (if a response was returned at
160906// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160907// to check whether the returned error was because
160908// http.StatusNotModified was returned.
160909func (c *TargetPoolsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
160910	gensupport.SetOptions(c.urlParams_, opts...)
160911	res, err := c.doRequest("json")
160912	if res != nil && res.StatusCode == http.StatusNotModified {
160913		if res.Body != nil {
160914			res.Body.Close()
160915		}
160916		return nil, &googleapi.Error{
160917			Code:   res.StatusCode,
160918			Header: res.Header,
160919		}
160920	}
160921	if err != nil {
160922		return nil, err
160923	}
160924	defer googleapi.CloseBody(res)
160925	if err := googleapi.CheckResponse(res); err != nil {
160926		return nil, err
160927	}
160928	ret := &Operation{
160929		ServerResponse: googleapi.ServerResponse{
160930			Header:         res.Header,
160931			HTTPStatusCode: res.StatusCode,
160932		},
160933	}
160934	target := &ret
160935	if err := gensupport.DecodeResponse(target, res); err != nil {
160936		return nil, err
160937	}
160938	return ret, nil
160939	// {
160940	//   "description": "Deletes the specified target pool.",
160941	//   "httpMethod": "DELETE",
160942	//   "id": "compute.targetPools.delete",
160943	//   "parameterOrder": [
160944	//     "project",
160945	//     "region",
160946	//     "targetPool"
160947	//   ],
160948	//   "parameters": {
160949	//     "project": {
160950	//       "description": "Project ID for this request.",
160951	//       "location": "path",
160952	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160953	//       "required": true,
160954	//       "type": "string"
160955	//     },
160956	//     "region": {
160957	//       "description": "Name of the region scoping this request.",
160958	//       "location": "path",
160959	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
160960	//       "required": true,
160961	//       "type": "string"
160962	//     },
160963	//     "requestId": {
160964	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
160965	//       "location": "query",
160966	//       "type": "string"
160967	//     },
160968	//     "targetPool": {
160969	//       "description": "Name of the TargetPool resource to delete.",
160970	//       "location": "path",
160971	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160972	//       "required": true,
160973	//       "type": "string"
160974	//     }
160975	//   },
160976	//   "path": "{project}/regions/{region}/targetPools/{targetPool}",
160977	//   "response": {
160978	//     "$ref": "Operation"
160979	//   },
160980	//   "scopes": [
160981	//     "https://www.googleapis.com/auth/cloud-platform",
160982	//     "https://www.googleapis.com/auth/compute"
160983	//   ]
160984	// }
160985
160986}
160987
160988// method id "compute.targetPools.get":
160989
160990type TargetPoolsGetCall struct {
160991	s            *Service
160992	project      string
160993	region       string
160994	targetPool   string
160995	urlParams_   gensupport.URLParams
160996	ifNoneMatch_ string
160997	ctx_         context.Context
160998	header_      http.Header
160999}
161000
161001// Get: Returns the specified target pool. Gets a list of available
161002// target pools by making a list() request.
161003// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/get
161004func (r *TargetPoolsService) Get(project string, region string, targetPool string) *TargetPoolsGetCall {
161005	c := &TargetPoolsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161006	c.project = project
161007	c.region = region
161008	c.targetPool = targetPool
161009	return c
161010}
161011
161012// Fields allows partial responses to be retrieved. See
161013// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161014// for more information.
161015func (c *TargetPoolsGetCall) Fields(s ...googleapi.Field) *TargetPoolsGetCall {
161016	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161017	return c
161018}
161019
161020// IfNoneMatch sets the optional parameter which makes the operation
161021// fail if the object's ETag matches the given value. This is useful for
161022// getting updates only after the object has changed since the last
161023// request. Use googleapi.IsNotModified to check whether the response
161024// error from Do is the result of In-None-Match.
161025func (c *TargetPoolsGetCall) IfNoneMatch(entityTag string) *TargetPoolsGetCall {
161026	c.ifNoneMatch_ = entityTag
161027	return c
161028}
161029
161030// Context sets the context to be used in this call's Do method. Any
161031// pending HTTP request will be aborted if the provided context is
161032// canceled.
161033func (c *TargetPoolsGetCall) Context(ctx context.Context) *TargetPoolsGetCall {
161034	c.ctx_ = ctx
161035	return c
161036}
161037
161038// Header returns an http.Header that can be modified by the caller to
161039// add HTTP headers to the request.
161040func (c *TargetPoolsGetCall) Header() http.Header {
161041	if c.header_ == nil {
161042		c.header_ = make(http.Header)
161043	}
161044	return c.header_
161045}
161046
161047func (c *TargetPoolsGetCall) doRequest(alt string) (*http.Response, error) {
161048	reqHeaders := make(http.Header)
161049	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
161050	for k, v := range c.header_ {
161051		reqHeaders[k] = v
161052	}
161053	reqHeaders.Set("User-Agent", c.s.userAgent())
161054	if c.ifNoneMatch_ != "" {
161055		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
161056	}
161057	var body io.Reader = nil
161058	c.urlParams_.Set("alt", alt)
161059	c.urlParams_.Set("prettyPrint", "false")
161060	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}")
161061	urls += "?" + c.urlParams_.Encode()
161062	req, err := http.NewRequest("GET", urls, body)
161063	if err != nil {
161064		return nil, err
161065	}
161066	req.Header = reqHeaders
161067	googleapi.Expand(req.URL, map[string]string{
161068		"project":    c.project,
161069		"region":     c.region,
161070		"targetPool": c.targetPool,
161071	})
161072	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161073}
161074
161075// Do executes the "compute.targetPools.get" call.
161076// Exactly one of *TargetPool or error will be non-nil. Any non-2xx
161077// status code is an error. Response headers are in either
161078// *TargetPool.ServerResponse.Header or (if a response was returned at
161079// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
161080// to check whether the returned error was because
161081// http.StatusNotModified was returned.
161082func (c *TargetPoolsGetCall) Do(opts ...googleapi.CallOption) (*TargetPool, error) {
161083	gensupport.SetOptions(c.urlParams_, opts...)
161084	res, err := c.doRequest("json")
161085	if res != nil && res.StatusCode == http.StatusNotModified {
161086		if res.Body != nil {
161087			res.Body.Close()
161088		}
161089		return nil, &googleapi.Error{
161090			Code:   res.StatusCode,
161091			Header: res.Header,
161092		}
161093	}
161094	if err != nil {
161095		return nil, err
161096	}
161097	defer googleapi.CloseBody(res)
161098	if err := googleapi.CheckResponse(res); err != nil {
161099		return nil, err
161100	}
161101	ret := &TargetPool{
161102		ServerResponse: googleapi.ServerResponse{
161103			Header:         res.Header,
161104			HTTPStatusCode: res.StatusCode,
161105		},
161106	}
161107	target := &ret
161108	if err := gensupport.DecodeResponse(target, res); err != nil {
161109		return nil, err
161110	}
161111	return ret, nil
161112	// {
161113	//   "description": "Returns the specified target pool. Gets a list of available target pools by making a list() request.",
161114	//   "httpMethod": "GET",
161115	//   "id": "compute.targetPools.get",
161116	//   "parameterOrder": [
161117	//     "project",
161118	//     "region",
161119	//     "targetPool"
161120	//   ],
161121	//   "parameters": {
161122	//     "project": {
161123	//       "description": "Project ID for this request.",
161124	//       "location": "path",
161125	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161126	//       "required": true,
161127	//       "type": "string"
161128	//     },
161129	//     "region": {
161130	//       "description": "Name of the region scoping this request.",
161131	//       "location": "path",
161132	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
161133	//       "required": true,
161134	//       "type": "string"
161135	//     },
161136	//     "targetPool": {
161137	//       "description": "Name of the TargetPool resource to return.",
161138	//       "location": "path",
161139	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
161140	//       "required": true,
161141	//       "type": "string"
161142	//     }
161143	//   },
161144	//   "path": "{project}/regions/{region}/targetPools/{targetPool}",
161145	//   "response": {
161146	//     "$ref": "TargetPool"
161147	//   },
161148	//   "scopes": [
161149	//     "https://www.googleapis.com/auth/cloud-platform",
161150	//     "https://www.googleapis.com/auth/compute",
161151	//     "https://www.googleapis.com/auth/compute.readonly"
161152	//   ]
161153	// }
161154
161155}
161156
161157// method id "compute.targetPools.getHealth":
161158
161159type TargetPoolsGetHealthCall struct {
161160	s                 *Service
161161	project           string
161162	region            string
161163	targetPool        string
161164	instancereference *InstanceReference
161165	urlParams_        gensupport.URLParams
161166	ctx_              context.Context
161167	header_           http.Header
161168}
161169
161170// GetHealth: Gets the most recent health check results for each IP for
161171// the instance that is referenced by the given target pool.
161172// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/getHealth
161173func (r *TargetPoolsService) GetHealth(project string, region string, targetPool string, instancereference *InstanceReference) *TargetPoolsGetHealthCall {
161174	c := &TargetPoolsGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161175	c.project = project
161176	c.region = region
161177	c.targetPool = targetPool
161178	c.instancereference = instancereference
161179	return c
161180}
161181
161182// Fields allows partial responses to be retrieved. See
161183// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161184// for more information.
161185func (c *TargetPoolsGetHealthCall) Fields(s ...googleapi.Field) *TargetPoolsGetHealthCall {
161186	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161187	return c
161188}
161189
161190// Context sets the context to be used in this call's Do method. Any
161191// pending HTTP request will be aborted if the provided context is
161192// canceled.
161193func (c *TargetPoolsGetHealthCall) Context(ctx context.Context) *TargetPoolsGetHealthCall {
161194	c.ctx_ = ctx
161195	return c
161196}
161197
161198// Header returns an http.Header that can be modified by the caller to
161199// add HTTP headers to the request.
161200func (c *TargetPoolsGetHealthCall) Header() http.Header {
161201	if c.header_ == nil {
161202		c.header_ = make(http.Header)
161203	}
161204	return c.header_
161205}
161206
161207func (c *TargetPoolsGetHealthCall) doRequest(alt string) (*http.Response, error) {
161208	reqHeaders := make(http.Header)
161209	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
161210	for k, v := range c.header_ {
161211		reqHeaders[k] = v
161212	}
161213	reqHeaders.Set("User-Agent", c.s.userAgent())
161214	var body io.Reader = nil
161215	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancereference)
161216	if err != nil {
161217		return nil, err
161218	}
161219	reqHeaders.Set("Content-Type", "application/json")
161220	c.urlParams_.Set("alt", alt)
161221	c.urlParams_.Set("prettyPrint", "false")
161222	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/getHealth")
161223	urls += "?" + c.urlParams_.Encode()
161224	req, err := http.NewRequest("POST", urls, body)
161225	if err != nil {
161226		return nil, err
161227	}
161228	req.Header = reqHeaders
161229	googleapi.Expand(req.URL, map[string]string{
161230		"project":    c.project,
161231		"region":     c.region,
161232		"targetPool": c.targetPool,
161233	})
161234	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161235}
161236
161237// Do executes the "compute.targetPools.getHealth" call.
161238// Exactly one of *TargetPoolInstanceHealth or error will be non-nil.
161239// Any non-2xx status code is an error. Response headers are in either
161240// *TargetPoolInstanceHealth.ServerResponse.Header or (if a response was
161241// returned at all) in error.(*googleapi.Error).Header. Use
161242// googleapi.IsNotModified to check whether the returned error was
161243// because http.StatusNotModified was returned.
161244func (c *TargetPoolsGetHealthCall) Do(opts ...googleapi.CallOption) (*TargetPoolInstanceHealth, error) {
161245	gensupport.SetOptions(c.urlParams_, opts...)
161246	res, err := c.doRequest("json")
161247	if res != nil && res.StatusCode == http.StatusNotModified {
161248		if res.Body != nil {
161249			res.Body.Close()
161250		}
161251		return nil, &googleapi.Error{
161252			Code:   res.StatusCode,
161253			Header: res.Header,
161254		}
161255	}
161256	if err != nil {
161257		return nil, err
161258	}
161259	defer googleapi.CloseBody(res)
161260	if err := googleapi.CheckResponse(res); err != nil {
161261		return nil, err
161262	}
161263	ret := &TargetPoolInstanceHealth{
161264		ServerResponse: googleapi.ServerResponse{
161265			Header:         res.Header,
161266			HTTPStatusCode: res.StatusCode,
161267		},
161268	}
161269	target := &ret
161270	if err := gensupport.DecodeResponse(target, res); err != nil {
161271		return nil, err
161272	}
161273	return ret, nil
161274	// {
161275	//   "description": "Gets the most recent health check results for each IP for the instance that is referenced by the given target pool.",
161276	//   "httpMethod": "POST",
161277	//   "id": "compute.targetPools.getHealth",
161278	//   "parameterOrder": [
161279	//     "project",
161280	//     "region",
161281	//     "targetPool"
161282	//   ],
161283	//   "parameters": {
161284	//     "project": {
161285	//       "description": "Project ID for this request.",
161286	//       "location": "path",
161287	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161288	//       "required": true,
161289	//       "type": "string"
161290	//     },
161291	//     "region": {
161292	//       "description": "Name of the region scoping this request.",
161293	//       "location": "path",
161294	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
161295	//       "required": true,
161296	//       "type": "string"
161297	//     },
161298	//     "targetPool": {
161299	//       "description": "Name of the TargetPool resource to which the queried instance belongs.",
161300	//       "location": "path",
161301	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
161302	//       "required": true,
161303	//       "type": "string"
161304	//     }
161305	//   },
161306	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/getHealth",
161307	//   "request": {
161308	//     "$ref": "InstanceReference"
161309	//   },
161310	//   "response": {
161311	//     "$ref": "TargetPoolInstanceHealth"
161312	//   },
161313	//   "scopes": [
161314	//     "https://www.googleapis.com/auth/cloud-platform",
161315	//     "https://www.googleapis.com/auth/compute",
161316	//     "https://www.googleapis.com/auth/compute.readonly"
161317	//   ]
161318	// }
161319
161320}
161321
161322// method id "compute.targetPools.insert":
161323
161324type TargetPoolsInsertCall struct {
161325	s          *Service
161326	project    string
161327	region     string
161328	targetpool *TargetPool
161329	urlParams_ gensupport.URLParams
161330	ctx_       context.Context
161331	header_    http.Header
161332}
161333
161334// Insert: Creates a target pool in the specified project and region
161335// using the data included in the request.
161336// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/insert
161337func (r *TargetPoolsService) Insert(project string, region string, targetpool *TargetPool) *TargetPoolsInsertCall {
161338	c := &TargetPoolsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161339	c.project = project
161340	c.region = region
161341	c.targetpool = targetpool
161342	return c
161343}
161344
161345// RequestId sets the optional parameter "requestId": An optional
161346// request ID to identify requests. Specify a unique request ID so that
161347// if you must retry your request, the server will know to ignore the
161348// request if it has already been completed.
161349//
161350// For example, consider a situation where you make an initial request
161351// and the request times out. If you make the request again with the
161352// same request ID, the server can check if original operation with the
161353// same request ID was received, and if so, will ignore the second
161354// request. This prevents clients from accidentally creating duplicate
161355// commitments.
161356//
161357// The request ID must be a valid UUID with the exception that zero UUID
161358// is not supported (00000000-0000-0000-0000-000000000000).
161359func (c *TargetPoolsInsertCall) RequestId(requestId string) *TargetPoolsInsertCall {
161360	c.urlParams_.Set("requestId", requestId)
161361	return c
161362}
161363
161364// Fields allows partial responses to be retrieved. See
161365// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161366// for more information.
161367func (c *TargetPoolsInsertCall) Fields(s ...googleapi.Field) *TargetPoolsInsertCall {
161368	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161369	return c
161370}
161371
161372// Context sets the context to be used in this call's Do method. Any
161373// pending HTTP request will be aborted if the provided context is
161374// canceled.
161375func (c *TargetPoolsInsertCall) Context(ctx context.Context) *TargetPoolsInsertCall {
161376	c.ctx_ = ctx
161377	return c
161378}
161379
161380// Header returns an http.Header that can be modified by the caller to
161381// add HTTP headers to the request.
161382func (c *TargetPoolsInsertCall) Header() http.Header {
161383	if c.header_ == nil {
161384		c.header_ = make(http.Header)
161385	}
161386	return c.header_
161387}
161388
161389func (c *TargetPoolsInsertCall) doRequest(alt string) (*http.Response, error) {
161390	reqHeaders := make(http.Header)
161391	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
161392	for k, v := range c.header_ {
161393		reqHeaders[k] = v
161394	}
161395	reqHeaders.Set("User-Agent", c.s.userAgent())
161396	var body io.Reader = nil
161397	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpool)
161398	if err != nil {
161399		return nil, err
161400	}
161401	reqHeaders.Set("Content-Type", "application/json")
161402	c.urlParams_.Set("alt", alt)
161403	c.urlParams_.Set("prettyPrint", "false")
161404	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools")
161405	urls += "?" + c.urlParams_.Encode()
161406	req, err := http.NewRequest("POST", urls, body)
161407	if err != nil {
161408		return nil, err
161409	}
161410	req.Header = reqHeaders
161411	googleapi.Expand(req.URL, map[string]string{
161412		"project": c.project,
161413		"region":  c.region,
161414	})
161415	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161416}
161417
161418// Do executes the "compute.targetPools.insert" call.
161419// Exactly one of *Operation or error will be non-nil. Any non-2xx
161420// status code is an error. Response headers are in either
161421// *Operation.ServerResponse.Header or (if a response was returned at
161422// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
161423// to check whether the returned error was because
161424// http.StatusNotModified was returned.
161425func (c *TargetPoolsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
161426	gensupport.SetOptions(c.urlParams_, opts...)
161427	res, err := c.doRequest("json")
161428	if res != nil && res.StatusCode == http.StatusNotModified {
161429		if res.Body != nil {
161430			res.Body.Close()
161431		}
161432		return nil, &googleapi.Error{
161433			Code:   res.StatusCode,
161434			Header: res.Header,
161435		}
161436	}
161437	if err != nil {
161438		return nil, err
161439	}
161440	defer googleapi.CloseBody(res)
161441	if err := googleapi.CheckResponse(res); err != nil {
161442		return nil, err
161443	}
161444	ret := &Operation{
161445		ServerResponse: googleapi.ServerResponse{
161446			Header:         res.Header,
161447			HTTPStatusCode: res.StatusCode,
161448		},
161449	}
161450	target := &ret
161451	if err := gensupport.DecodeResponse(target, res); err != nil {
161452		return nil, err
161453	}
161454	return ret, nil
161455	// {
161456	//   "description": "Creates a target pool in the specified project and region using the data included in the request.",
161457	//   "httpMethod": "POST",
161458	//   "id": "compute.targetPools.insert",
161459	//   "parameterOrder": [
161460	//     "project",
161461	//     "region"
161462	//   ],
161463	//   "parameters": {
161464	//     "project": {
161465	//       "description": "Project ID for this request.",
161466	//       "location": "path",
161467	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161468	//       "required": true,
161469	//       "type": "string"
161470	//     },
161471	//     "region": {
161472	//       "description": "Name of the region scoping this request.",
161473	//       "location": "path",
161474	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
161475	//       "required": true,
161476	//       "type": "string"
161477	//     },
161478	//     "requestId": {
161479	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
161480	//       "location": "query",
161481	//       "type": "string"
161482	//     }
161483	//   },
161484	//   "path": "{project}/regions/{region}/targetPools",
161485	//   "request": {
161486	//     "$ref": "TargetPool"
161487	//   },
161488	//   "response": {
161489	//     "$ref": "Operation"
161490	//   },
161491	//   "scopes": [
161492	//     "https://www.googleapis.com/auth/cloud-platform",
161493	//     "https://www.googleapis.com/auth/compute"
161494	//   ]
161495	// }
161496
161497}
161498
161499// method id "compute.targetPools.list":
161500
161501type TargetPoolsListCall struct {
161502	s            *Service
161503	project      string
161504	region       string
161505	urlParams_   gensupport.URLParams
161506	ifNoneMatch_ string
161507	ctx_         context.Context
161508	header_      http.Header
161509}
161510
161511// List: Retrieves a list of target pools available to the specified
161512// project and region.
161513// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/list
161514func (r *TargetPoolsService) List(project string, region string) *TargetPoolsListCall {
161515	c := &TargetPoolsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161516	c.project = project
161517	c.region = region
161518	return c
161519}
161520
161521// Filter sets the optional parameter "filter": A filter expression that
161522// filters resources listed in the response. The expression must specify
161523// the field name, a comparison operator, and the value that you want to
161524// use for filtering. The value must be a string, a number, or a
161525// boolean. The comparison operator must be either =, !=, >, or <.
161526//
161527// For example, if you are filtering Compute Engine instances, you can
161528// exclude instances named example-instance by specifying name !=
161529// example-instance.
161530//
161531// You can also filter nested fields. For example, you could specify
161532// scheduling.automaticRestart = false to include instances only if they
161533// are not scheduled for automatic restarts. You can use filtering on
161534// nested fields to filter based on resource labels.
161535//
161536// To filter on multiple expressions, provide each separate expression
161537// within parentheses. For example, (scheduling.automaticRestart = true)
161538// (cpuPlatform = "Intel Skylake"). By default, each expression is an
161539// AND expression. However, you can include AND and OR expressions
161540// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
161541// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
161542// true).
161543func (c *TargetPoolsListCall) Filter(filter string) *TargetPoolsListCall {
161544	c.urlParams_.Set("filter", filter)
161545	return c
161546}
161547
161548// MaxResults sets the optional parameter "maxResults": The maximum
161549// number of results per page that should be returned. If the number of
161550// available results is larger than maxResults, Compute Engine returns a
161551// nextPageToken that can be used to get the next page of results in
161552// subsequent list requests. Acceptable values are 0 to 500, inclusive.
161553// (Default: 500)
161554func (c *TargetPoolsListCall) MaxResults(maxResults int64) *TargetPoolsListCall {
161555	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
161556	return c
161557}
161558
161559// OrderBy sets the optional parameter "orderBy": Sorts list results by
161560// a certain order. By default, results are returned in alphanumerical
161561// order based on the resource name.
161562//
161563// You can also sort results in descending order based on the creation
161564// timestamp using orderBy="creationTimestamp desc". This sorts results
161565// based on the creationTimestamp field in reverse chronological order
161566// (newest result first). Use this to sort resources like operations so
161567// that the newest operation is returned first.
161568//
161569// Currently, only sorting by name or creationTimestamp desc is
161570// supported.
161571func (c *TargetPoolsListCall) OrderBy(orderBy string) *TargetPoolsListCall {
161572	c.urlParams_.Set("orderBy", orderBy)
161573	return c
161574}
161575
161576// PageToken sets the optional parameter "pageToken": Specifies a page
161577// token to use. Set pageToken to the nextPageToken returned by a
161578// previous list request to get the next page of results.
161579func (c *TargetPoolsListCall) PageToken(pageToken string) *TargetPoolsListCall {
161580	c.urlParams_.Set("pageToken", pageToken)
161581	return c
161582}
161583
161584// Fields allows partial responses to be retrieved. See
161585// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161586// for more information.
161587func (c *TargetPoolsListCall) Fields(s ...googleapi.Field) *TargetPoolsListCall {
161588	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161589	return c
161590}
161591
161592// IfNoneMatch sets the optional parameter which makes the operation
161593// fail if the object's ETag matches the given value. This is useful for
161594// getting updates only after the object has changed since the last
161595// request. Use googleapi.IsNotModified to check whether the response
161596// error from Do is the result of In-None-Match.
161597func (c *TargetPoolsListCall) IfNoneMatch(entityTag string) *TargetPoolsListCall {
161598	c.ifNoneMatch_ = entityTag
161599	return c
161600}
161601
161602// Context sets the context to be used in this call's Do method. Any
161603// pending HTTP request will be aborted if the provided context is
161604// canceled.
161605func (c *TargetPoolsListCall) Context(ctx context.Context) *TargetPoolsListCall {
161606	c.ctx_ = ctx
161607	return c
161608}
161609
161610// Header returns an http.Header that can be modified by the caller to
161611// add HTTP headers to the request.
161612func (c *TargetPoolsListCall) Header() http.Header {
161613	if c.header_ == nil {
161614		c.header_ = make(http.Header)
161615	}
161616	return c.header_
161617}
161618
161619func (c *TargetPoolsListCall) doRequest(alt string) (*http.Response, error) {
161620	reqHeaders := make(http.Header)
161621	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
161622	for k, v := range c.header_ {
161623		reqHeaders[k] = v
161624	}
161625	reqHeaders.Set("User-Agent", c.s.userAgent())
161626	if c.ifNoneMatch_ != "" {
161627		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
161628	}
161629	var body io.Reader = nil
161630	c.urlParams_.Set("alt", alt)
161631	c.urlParams_.Set("prettyPrint", "false")
161632	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools")
161633	urls += "?" + c.urlParams_.Encode()
161634	req, err := http.NewRequest("GET", urls, body)
161635	if err != nil {
161636		return nil, err
161637	}
161638	req.Header = reqHeaders
161639	googleapi.Expand(req.URL, map[string]string{
161640		"project": c.project,
161641		"region":  c.region,
161642	})
161643	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161644}
161645
161646// Do executes the "compute.targetPools.list" call.
161647// Exactly one of *TargetPoolList or error will be non-nil. Any non-2xx
161648// status code is an error. Response headers are in either
161649// *TargetPoolList.ServerResponse.Header or (if a response was returned
161650// at all) in error.(*googleapi.Error).Header. Use
161651// googleapi.IsNotModified to check whether the returned error was
161652// because http.StatusNotModified was returned.
161653func (c *TargetPoolsListCall) Do(opts ...googleapi.CallOption) (*TargetPoolList, error) {
161654	gensupport.SetOptions(c.urlParams_, opts...)
161655	res, err := c.doRequest("json")
161656	if res != nil && res.StatusCode == http.StatusNotModified {
161657		if res.Body != nil {
161658			res.Body.Close()
161659		}
161660		return nil, &googleapi.Error{
161661			Code:   res.StatusCode,
161662			Header: res.Header,
161663		}
161664	}
161665	if err != nil {
161666		return nil, err
161667	}
161668	defer googleapi.CloseBody(res)
161669	if err := googleapi.CheckResponse(res); err != nil {
161670		return nil, err
161671	}
161672	ret := &TargetPoolList{
161673		ServerResponse: googleapi.ServerResponse{
161674			Header:         res.Header,
161675			HTTPStatusCode: res.StatusCode,
161676		},
161677	}
161678	target := &ret
161679	if err := gensupport.DecodeResponse(target, res); err != nil {
161680		return nil, err
161681	}
161682	return ret, nil
161683	// {
161684	//   "description": "Retrieves a list of target pools available to the specified project and region.",
161685	//   "httpMethod": "GET",
161686	//   "id": "compute.targetPools.list",
161687	//   "parameterOrder": [
161688	//     "project",
161689	//     "region"
161690	//   ],
161691	//   "parameters": {
161692	//     "filter": {
161693	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
161694	//       "location": "query",
161695	//       "type": "string"
161696	//     },
161697	//     "maxResults": {
161698	//       "default": "500",
161699	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
161700	//       "format": "uint32",
161701	//       "location": "query",
161702	//       "minimum": "0",
161703	//       "type": "integer"
161704	//     },
161705	//     "orderBy": {
161706	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
161707	//       "location": "query",
161708	//       "type": "string"
161709	//     },
161710	//     "pageToken": {
161711	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
161712	//       "location": "query",
161713	//       "type": "string"
161714	//     },
161715	//     "project": {
161716	//       "description": "Project ID for this request.",
161717	//       "location": "path",
161718	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161719	//       "required": true,
161720	//       "type": "string"
161721	//     },
161722	//     "region": {
161723	//       "description": "Name of the region scoping this request.",
161724	//       "location": "path",
161725	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
161726	//       "required": true,
161727	//       "type": "string"
161728	//     }
161729	//   },
161730	//   "path": "{project}/regions/{region}/targetPools",
161731	//   "response": {
161732	//     "$ref": "TargetPoolList"
161733	//   },
161734	//   "scopes": [
161735	//     "https://www.googleapis.com/auth/cloud-platform",
161736	//     "https://www.googleapis.com/auth/compute",
161737	//     "https://www.googleapis.com/auth/compute.readonly"
161738	//   ]
161739	// }
161740
161741}
161742
161743// Pages invokes f for each page of results.
161744// A non-nil error returned from f will halt the iteration.
161745// The provided context supersedes any context provided to the Context method.
161746func (c *TargetPoolsListCall) Pages(ctx context.Context, f func(*TargetPoolList) error) error {
161747	c.ctx_ = ctx
161748	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
161749	for {
161750		x, err := c.Do()
161751		if err != nil {
161752			return err
161753		}
161754		if err := f(x); err != nil {
161755			return err
161756		}
161757		if x.NextPageToken == "" {
161758			return nil
161759		}
161760		c.PageToken(x.NextPageToken)
161761	}
161762}
161763
161764// method id "compute.targetPools.removeHealthCheck":
161765
161766type TargetPoolsRemoveHealthCheckCall struct {
161767	s                                   *Service
161768	project                             string
161769	region                              string
161770	targetPool                          string
161771	targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest
161772	urlParams_                          gensupport.URLParams
161773	ctx_                                context.Context
161774	header_                             http.Header
161775}
161776
161777// RemoveHealthCheck: Removes health check URL from a target pool.
161778// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/removeHealthCheck
161779func (r *TargetPoolsService) RemoveHealthCheck(project string, region string, targetPool string, targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest) *TargetPoolsRemoveHealthCheckCall {
161780	c := &TargetPoolsRemoveHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161781	c.project = project
161782	c.region = region
161783	c.targetPool = targetPool
161784	c.targetpoolsremovehealthcheckrequest = targetpoolsremovehealthcheckrequest
161785	return c
161786}
161787
161788// RequestId sets the optional parameter "requestId": An optional
161789// request ID to identify requests. Specify a unique request ID so that
161790// if you must retry your request, the server will know to ignore the
161791// request if it has already been completed.
161792//
161793// For example, consider a situation where you make an initial request
161794// and the request times out. If you make the request again with the
161795// same request ID, the server can check if original operation with the
161796// same request ID was received, and if so, will ignore the second
161797// request. This prevents clients from accidentally creating duplicate
161798// commitments.
161799//
161800// The request ID must be a valid UUID with the exception that zero UUID
161801// is not supported (00000000-0000-0000-0000-000000000000).
161802func (c *TargetPoolsRemoveHealthCheckCall) RequestId(requestId string) *TargetPoolsRemoveHealthCheckCall {
161803	c.urlParams_.Set("requestId", requestId)
161804	return c
161805}
161806
161807// Fields allows partial responses to be retrieved. See
161808// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161809// for more information.
161810func (c *TargetPoolsRemoveHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveHealthCheckCall {
161811	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161812	return c
161813}
161814
161815// Context sets the context to be used in this call's Do method. Any
161816// pending HTTP request will be aborted if the provided context is
161817// canceled.
161818func (c *TargetPoolsRemoveHealthCheckCall) Context(ctx context.Context) *TargetPoolsRemoveHealthCheckCall {
161819	c.ctx_ = ctx
161820	return c
161821}
161822
161823// Header returns an http.Header that can be modified by the caller to
161824// add HTTP headers to the request.
161825func (c *TargetPoolsRemoveHealthCheckCall) Header() http.Header {
161826	if c.header_ == nil {
161827		c.header_ = make(http.Header)
161828	}
161829	return c.header_
161830}
161831
161832func (c *TargetPoolsRemoveHealthCheckCall) doRequest(alt string) (*http.Response, error) {
161833	reqHeaders := make(http.Header)
161834	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
161835	for k, v := range c.header_ {
161836		reqHeaders[k] = v
161837	}
161838	reqHeaders.Set("User-Agent", c.s.userAgent())
161839	var body io.Reader = nil
161840	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremovehealthcheckrequest)
161841	if err != nil {
161842		return nil, err
161843	}
161844	reqHeaders.Set("Content-Type", "application/json")
161845	c.urlParams_.Set("alt", alt)
161846	c.urlParams_.Set("prettyPrint", "false")
161847	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck")
161848	urls += "?" + c.urlParams_.Encode()
161849	req, err := http.NewRequest("POST", urls, body)
161850	if err != nil {
161851		return nil, err
161852	}
161853	req.Header = reqHeaders
161854	googleapi.Expand(req.URL, map[string]string{
161855		"project":    c.project,
161856		"region":     c.region,
161857		"targetPool": c.targetPool,
161858	})
161859	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161860}
161861
161862// Do executes the "compute.targetPools.removeHealthCheck" call.
161863// Exactly one of *Operation or error will be non-nil. Any non-2xx
161864// status code is an error. Response headers are in either
161865// *Operation.ServerResponse.Header or (if a response was returned at
161866// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
161867// to check whether the returned error was because
161868// http.StatusNotModified was returned.
161869func (c *TargetPoolsRemoveHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
161870	gensupport.SetOptions(c.urlParams_, opts...)
161871	res, err := c.doRequest("json")
161872	if res != nil && res.StatusCode == http.StatusNotModified {
161873		if res.Body != nil {
161874			res.Body.Close()
161875		}
161876		return nil, &googleapi.Error{
161877			Code:   res.StatusCode,
161878			Header: res.Header,
161879		}
161880	}
161881	if err != nil {
161882		return nil, err
161883	}
161884	defer googleapi.CloseBody(res)
161885	if err := googleapi.CheckResponse(res); err != nil {
161886		return nil, err
161887	}
161888	ret := &Operation{
161889		ServerResponse: googleapi.ServerResponse{
161890			Header:         res.Header,
161891			HTTPStatusCode: res.StatusCode,
161892		},
161893	}
161894	target := &ret
161895	if err := gensupport.DecodeResponse(target, res); err != nil {
161896		return nil, err
161897	}
161898	return ret, nil
161899	// {
161900	//   "description": "Removes health check URL from a target pool.",
161901	//   "httpMethod": "POST",
161902	//   "id": "compute.targetPools.removeHealthCheck",
161903	//   "parameterOrder": [
161904	//     "project",
161905	//     "region",
161906	//     "targetPool"
161907	//   ],
161908	//   "parameters": {
161909	//     "project": {
161910	//       "description": "Project ID for this request.",
161911	//       "location": "path",
161912	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161913	//       "required": true,
161914	//       "type": "string"
161915	//     },
161916	//     "region": {
161917	//       "description": "Name of the region for this request.",
161918	//       "location": "path",
161919	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
161920	//       "required": true,
161921	//       "type": "string"
161922	//     },
161923	//     "requestId": {
161924	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
161925	//       "location": "query",
161926	//       "type": "string"
161927	//     },
161928	//     "targetPool": {
161929	//       "description": "Name of the target pool to remove health checks from.",
161930	//       "location": "path",
161931	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
161932	//       "required": true,
161933	//       "type": "string"
161934	//     }
161935	//   },
161936	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck",
161937	//   "request": {
161938	//     "$ref": "TargetPoolsRemoveHealthCheckRequest"
161939	//   },
161940	//   "response": {
161941	//     "$ref": "Operation"
161942	//   },
161943	//   "scopes": [
161944	//     "https://www.googleapis.com/auth/cloud-platform",
161945	//     "https://www.googleapis.com/auth/compute"
161946	//   ]
161947	// }
161948
161949}
161950
161951// method id "compute.targetPools.removeInstance":
161952
161953type TargetPoolsRemoveInstanceCall struct {
161954	s                                *Service
161955	project                          string
161956	region                           string
161957	targetPool                       string
161958	targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest
161959	urlParams_                       gensupport.URLParams
161960	ctx_                             context.Context
161961	header_                          http.Header
161962}
161963
161964// RemoveInstance: Removes instance URL from a target pool.
161965// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/removeInstance
161966func (r *TargetPoolsService) RemoveInstance(project string, region string, targetPool string, targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest) *TargetPoolsRemoveInstanceCall {
161967	c := &TargetPoolsRemoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161968	c.project = project
161969	c.region = region
161970	c.targetPool = targetPool
161971	c.targetpoolsremoveinstancerequest = targetpoolsremoveinstancerequest
161972	return c
161973}
161974
161975// RequestId sets the optional parameter "requestId": An optional
161976// request ID to identify requests. Specify a unique request ID so that
161977// if you must retry your request, the server will know to ignore the
161978// request if it has already been completed.
161979//
161980// For example, consider a situation where you make an initial request
161981// and the request times out. If you make the request again with the
161982// same request ID, the server can check if original operation with the
161983// same request ID was received, and if so, will ignore the second
161984// request. This prevents clients from accidentally creating duplicate
161985// commitments.
161986//
161987// The request ID must be a valid UUID with the exception that zero UUID
161988// is not supported (00000000-0000-0000-0000-000000000000).
161989func (c *TargetPoolsRemoveInstanceCall) RequestId(requestId string) *TargetPoolsRemoveInstanceCall {
161990	c.urlParams_.Set("requestId", requestId)
161991	return c
161992}
161993
161994// Fields allows partial responses to be retrieved. See
161995// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161996// for more information.
161997func (c *TargetPoolsRemoveInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveInstanceCall {
161998	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161999	return c
162000}
162001
162002// Context sets the context to be used in this call's Do method. Any
162003// pending HTTP request will be aborted if the provided context is
162004// canceled.
162005func (c *TargetPoolsRemoveInstanceCall) Context(ctx context.Context) *TargetPoolsRemoveInstanceCall {
162006	c.ctx_ = ctx
162007	return c
162008}
162009
162010// Header returns an http.Header that can be modified by the caller to
162011// add HTTP headers to the request.
162012func (c *TargetPoolsRemoveInstanceCall) Header() http.Header {
162013	if c.header_ == nil {
162014		c.header_ = make(http.Header)
162015	}
162016	return c.header_
162017}
162018
162019func (c *TargetPoolsRemoveInstanceCall) doRequest(alt string) (*http.Response, error) {
162020	reqHeaders := make(http.Header)
162021	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
162022	for k, v := range c.header_ {
162023		reqHeaders[k] = v
162024	}
162025	reqHeaders.Set("User-Agent", c.s.userAgent())
162026	var body io.Reader = nil
162027	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremoveinstancerequest)
162028	if err != nil {
162029		return nil, err
162030	}
162031	reqHeaders.Set("Content-Type", "application/json")
162032	c.urlParams_.Set("alt", alt)
162033	c.urlParams_.Set("prettyPrint", "false")
162034	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/removeInstance")
162035	urls += "?" + c.urlParams_.Encode()
162036	req, err := http.NewRequest("POST", urls, body)
162037	if err != nil {
162038		return nil, err
162039	}
162040	req.Header = reqHeaders
162041	googleapi.Expand(req.URL, map[string]string{
162042		"project":    c.project,
162043		"region":     c.region,
162044		"targetPool": c.targetPool,
162045	})
162046	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162047}
162048
162049// Do executes the "compute.targetPools.removeInstance" call.
162050// Exactly one of *Operation or error will be non-nil. Any non-2xx
162051// status code is an error. Response headers are in either
162052// *Operation.ServerResponse.Header or (if a response was returned at
162053// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
162054// to check whether the returned error was because
162055// http.StatusNotModified was returned.
162056func (c *TargetPoolsRemoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
162057	gensupport.SetOptions(c.urlParams_, opts...)
162058	res, err := c.doRequest("json")
162059	if res != nil && res.StatusCode == http.StatusNotModified {
162060		if res.Body != nil {
162061			res.Body.Close()
162062		}
162063		return nil, &googleapi.Error{
162064			Code:   res.StatusCode,
162065			Header: res.Header,
162066		}
162067	}
162068	if err != nil {
162069		return nil, err
162070	}
162071	defer googleapi.CloseBody(res)
162072	if err := googleapi.CheckResponse(res); err != nil {
162073		return nil, err
162074	}
162075	ret := &Operation{
162076		ServerResponse: googleapi.ServerResponse{
162077			Header:         res.Header,
162078			HTTPStatusCode: res.StatusCode,
162079		},
162080	}
162081	target := &ret
162082	if err := gensupport.DecodeResponse(target, res); err != nil {
162083		return nil, err
162084	}
162085	return ret, nil
162086	// {
162087	//   "description": "Removes instance URL from a target pool.",
162088	//   "httpMethod": "POST",
162089	//   "id": "compute.targetPools.removeInstance",
162090	//   "parameterOrder": [
162091	//     "project",
162092	//     "region",
162093	//     "targetPool"
162094	//   ],
162095	//   "parameters": {
162096	//     "project": {
162097	//       "description": "Project ID for this request.",
162098	//       "location": "path",
162099	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162100	//       "required": true,
162101	//       "type": "string"
162102	//     },
162103	//     "region": {
162104	//       "description": "Name of the region scoping this request.",
162105	//       "location": "path",
162106	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
162107	//       "required": true,
162108	//       "type": "string"
162109	//     },
162110	//     "requestId": {
162111	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
162112	//       "location": "query",
162113	//       "type": "string"
162114	//     },
162115	//     "targetPool": {
162116	//       "description": "Name of the TargetPool resource to remove instances from.",
162117	//       "location": "path",
162118	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
162119	//       "required": true,
162120	//       "type": "string"
162121	//     }
162122	//   },
162123	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/removeInstance",
162124	//   "request": {
162125	//     "$ref": "TargetPoolsRemoveInstanceRequest"
162126	//   },
162127	//   "response": {
162128	//     "$ref": "Operation"
162129	//   },
162130	//   "scopes": [
162131	//     "https://www.googleapis.com/auth/cloud-platform",
162132	//     "https://www.googleapis.com/auth/compute"
162133	//   ]
162134	// }
162135
162136}
162137
162138// method id "compute.targetPools.setBackup":
162139
162140type TargetPoolsSetBackupCall struct {
162141	s               *Service
162142	project         string
162143	region          string
162144	targetPool      string
162145	targetreference *TargetReference
162146	urlParams_      gensupport.URLParams
162147	ctx_            context.Context
162148	header_         http.Header
162149}
162150
162151// SetBackup: Changes a backup target pool's configurations.
162152// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/setBackup
162153func (r *TargetPoolsService) SetBackup(project string, region string, targetPool string, targetreference *TargetReference) *TargetPoolsSetBackupCall {
162154	c := &TargetPoolsSetBackupCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162155	c.project = project
162156	c.region = region
162157	c.targetPool = targetPool
162158	c.targetreference = targetreference
162159	return c
162160}
162161
162162// FailoverRatio sets the optional parameter "failoverRatio": New
162163// failoverRatio value for the target pool.
162164func (c *TargetPoolsSetBackupCall) FailoverRatio(failoverRatio float64) *TargetPoolsSetBackupCall {
162165	c.urlParams_.Set("failoverRatio", fmt.Sprint(failoverRatio))
162166	return c
162167}
162168
162169// RequestId sets the optional parameter "requestId": An optional
162170// request ID to identify requests. Specify a unique request ID so that
162171// if you must retry your request, the server will know to ignore the
162172// request if it has already been completed.
162173//
162174// For example, consider a situation where you make an initial request
162175// and the request times out. If you make the request again with the
162176// same request ID, the server can check if original operation with the
162177// same request ID was received, and if so, will ignore the second
162178// request. This prevents clients from accidentally creating duplicate
162179// commitments.
162180//
162181// The request ID must be a valid UUID with the exception that zero UUID
162182// is not supported (00000000-0000-0000-0000-000000000000).
162183func (c *TargetPoolsSetBackupCall) RequestId(requestId string) *TargetPoolsSetBackupCall {
162184	c.urlParams_.Set("requestId", requestId)
162185	return c
162186}
162187
162188// Fields allows partial responses to be retrieved. See
162189// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162190// for more information.
162191func (c *TargetPoolsSetBackupCall) Fields(s ...googleapi.Field) *TargetPoolsSetBackupCall {
162192	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162193	return c
162194}
162195
162196// Context sets the context to be used in this call's Do method. Any
162197// pending HTTP request will be aborted if the provided context is
162198// canceled.
162199func (c *TargetPoolsSetBackupCall) Context(ctx context.Context) *TargetPoolsSetBackupCall {
162200	c.ctx_ = ctx
162201	return c
162202}
162203
162204// Header returns an http.Header that can be modified by the caller to
162205// add HTTP headers to the request.
162206func (c *TargetPoolsSetBackupCall) Header() http.Header {
162207	if c.header_ == nil {
162208		c.header_ = make(http.Header)
162209	}
162210	return c.header_
162211}
162212
162213func (c *TargetPoolsSetBackupCall) doRequest(alt string) (*http.Response, error) {
162214	reqHeaders := make(http.Header)
162215	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
162216	for k, v := range c.header_ {
162217		reqHeaders[k] = v
162218	}
162219	reqHeaders.Set("User-Agent", c.s.userAgent())
162220	var body io.Reader = nil
162221	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
162222	if err != nil {
162223		return nil, err
162224	}
162225	reqHeaders.Set("Content-Type", "application/json")
162226	c.urlParams_.Set("alt", alt)
162227	c.urlParams_.Set("prettyPrint", "false")
162228	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/setBackup")
162229	urls += "?" + c.urlParams_.Encode()
162230	req, err := http.NewRequest("POST", urls, body)
162231	if err != nil {
162232		return nil, err
162233	}
162234	req.Header = reqHeaders
162235	googleapi.Expand(req.URL, map[string]string{
162236		"project":    c.project,
162237		"region":     c.region,
162238		"targetPool": c.targetPool,
162239	})
162240	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162241}
162242
162243// Do executes the "compute.targetPools.setBackup" call.
162244// Exactly one of *Operation or error will be non-nil. Any non-2xx
162245// status code is an error. Response headers are in either
162246// *Operation.ServerResponse.Header or (if a response was returned at
162247// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
162248// to check whether the returned error was because
162249// http.StatusNotModified was returned.
162250func (c *TargetPoolsSetBackupCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
162251	gensupport.SetOptions(c.urlParams_, opts...)
162252	res, err := c.doRequest("json")
162253	if res != nil && res.StatusCode == http.StatusNotModified {
162254		if res.Body != nil {
162255			res.Body.Close()
162256		}
162257		return nil, &googleapi.Error{
162258			Code:   res.StatusCode,
162259			Header: res.Header,
162260		}
162261	}
162262	if err != nil {
162263		return nil, err
162264	}
162265	defer googleapi.CloseBody(res)
162266	if err := googleapi.CheckResponse(res); err != nil {
162267		return nil, err
162268	}
162269	ret := &Operation{
162270		ServerResponse: googleapi.ServerResponse{
162271			Header:         res.Header,
162272			HTTPStatusCode: res.StatusCode,
162273		},
162274	}
162275	target := &ret
162276	if err := gensupport.DecodeResponse(target, res); err != nil {
162277		return nil, err
162278	}
162279	return ret, nil
162280	// {
162281	//   "description": "Changes a backup target pool's configurations.",
162282	//   "httpMethod": "POST",
162283	//   "id": "compute.targetPools.setBackup",
162284	//   "parameterOrder": [
162285	//     "project",
162286	//     "region",
162287	//     "targetPool"
162288	//   ],
162289	//   "parameters": {
162290	//     "failoverRatio": {
162291	//       "description": "New failoverRatio value for the target pool.",
162292	//       "format": "float",
162293	//       "location": "query",
162294	//       "type": "number"
162295	//     },
162296	//     "project": {
162297	//       "description": "Project ID for this request.",
162298	//       "location": "path",
162299	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162300	//       "required": true,
162301	//       "type": "string"
162302	//     },
162303	//     "region": {
162304	//       "description": "Name of the region scoping this request.",
162305	//       "location": "path",
162306	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
162307	//       "required": true,
162308	//       "type": "string"
162309	//     },
162310	//     "requestId": {
162311	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
162312	//       "location": "query",
162313	//       "type": "string"
162314	//     },
162315	//     "targetPool": {
162316	//       "description": "Name of the TargetPool resource to set a backup pool for.",
162317	//       "location": "path",
162318	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
162319	//       "required": true,
162320	//       "type": "string"
162321	//     }
162322	//   },
162323	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/setBackup",
162324	//   "request": {
162325	//     "$ref": "TargetReference"
162326	//   },
162327	//   "response": {
162328	//     "$ref": "Operation"
162329	//   },
162330	//   "scopes": [
162331	//     "https://www.googleapis.com/auth/cloud-platform",
162332	//     "https://www.googleapis.com/auth/compute"
162333	//   ]
162334	// }
162335
162336}
162337
162338// method id "compute.targetPools.testIamPermissions":
162339
162340type TargetPoolsTestIamPermissionsCall struct {
162341	s                      *Service
162342	project                string
162343	region                 string
162344	resource               string
162345	testpermissionsrequest *TestPermissionsRequest
162346	urlParams_             gensupport.URLParams
162347	ctx_                   context.Context
162348	header_                http.Header
162349}
162350
162351// TestIamPermissions: Returns permissions that a caller has on the
162352// specified resource.
162353func (r *TargetPoolsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetPoolsTestIamPermissionsCall {
162354	c := &TargetPoolsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162355	c.project = project
162356	c.region = region
162357	c.resource = resource
162358	c.testpermissionsrequest = testpermissionsrequest
162359	return c
162360}
162361
162362// Fields allows partial responses to be retrieved. See
162363// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162364// for more information.
162365func (c *TargetPoolsTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetPoolsTestIamPermissionsCall {
162366	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162367	return c
162368}
162369
162370// Context sets the context to be used in this call's Do method. Any
162371// pending HTTP request will be aborted if the provided context is
162372// canceled.
162373func (c *TargetPoolsTestIamPermissionsCall) Context(ctx context.Context) *TargetPoolsTestIamPermissionsCall {
162374	c.ctx_ = ctx
162375	return c
162376}
162377
162378// Header returns an http.Header that can be modified by the caller to
162379// add HTTP headers to the request.
162380func (c *TargetPoolsTestIamPermissionsCall) Header() http.Header {
162381	if c.header_ == nil {
162382		c.header_ = make(http.Header)
162383	}
162384	return c.header_
162385}
162386
162387func (c *TargetPoolsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
162388	reqHeaders := make(http.Header)
162389	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
162390	for k, v := range c.header_ {
162391		reqHeaders[k] = v
162392	}
162393	reqHeaders.Set("User-Agent", c.s.userAgent())
162394	var body io.Reader = nil
162395	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
162396	if err != nil {
162397		return nil, err
162398	}
162399	reqHeaders.Set("Content-Type", "application/json")
162400	c.urlParams_.Set("alt", alt)
162401	c.urlParams_.Set("prettyPrint", "false")
162402	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{resource}/testIamPermissions")
162403	urls += "?" + c.urlParams_.Encode()
162404	req, err := http.NewRequest("POST", urls, body)
162405	if err != nil {
162406		return nil, err
162407	}
162408	req.Header = reqHeaders
162409	googleapi.Expand(req.URL, map[string]string{
162410		"project":  c.project,
162411		"region":   c.region,
162412		"resource": c.resource,
162413	})
162414	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162415}
162416
162417// Do executes the "compute.targetPools.testIamPermissions" call.
162418// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
162419// non-2xx status code is an error. Response headers are in either
162420// *TestPermissionsResponse.ServerResponse.Header or (if a response was
162421// returned at all) in error.(*googleapi.Error).Header. Use
162422// googleapi.IsNotModified to check whether the returned error was
162423// because http.StatusNotModified was returned.
162424func (c *TargetPoolsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
162425	gensupport.SetOptions(c.urlParams_, opts...)
162426	res, err := c.doRequest("json")
162427	if res != nil && res.StatusCode == http.StatusNotModified {
162428		if res.Body != nil {
162429			res.Body.Close()
162430		}
162431		return nil, &googleapi.Error{
162432			Code:   res.StatusCode,
162433			Header: res.Header,
162434		}
162435	}
162436	if err != nil {
162437		return nil, err
162438	}
162439	defer googleapi.CloseBody(res)
162440	if err := googleapi.CheckResponse(res); err != nil {
162441		return nil, err
162442	}
162443	ret := &TestPermissionsResponse{
162444		ServerResponse: googleapi.ServerResponse{
162445			Header:         res.Header,
162446			HTTPStatusCode: res.StatusCode,
162447		},
162448	}
162449	target := &ret
162450	if err := gensupport.DecodeResponse(target, res); err != nil {
162451		return nil, err
162452	}
162453	return ret, nil
162454	// {
162455	//   "description": "Returns permissions that a caller has on the specified resource.",
162456	//   "httpMethod": "POST",
162457	//   "id": "compute.targetPools.testIamPermissions",
162458	//   "parameterOrder": [
162459	//     "project",
162460	//     "region",
162461	//     "resource"
162462	//   ],
162463	//   "parameters": {
162464	//     "project": {
162465	//       "description": "Project ID for this request.",
162466	//       "location": "path",
162467	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162468	//       "required": true,
162469	//       "type": "string"
162470	//     },
162471	//     "region": {
162472	//       "description": "The name of the region for this request.",
162473	//       "location": "path",
162474	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
162475	//       "required": true,
162476	//       "type": "string"
162477	//     },
162478	//     "resource": {
162479	//       "description": "Name or id of the resource for this request.",
162480	//       "location": "path",
162481	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
162482	//       "required": true,
162483	//       "type": "string"
162484	//     }
162485	//   },
162486	//   "path": "{project}/regions/{region}/targetPools/{resource}/testIamPermissions",
162487	//   "request": {
162488	//     "$ref": "TestPermissionsRequest"
162489	//   },
162490	//   "response": {
162491	//     "$ref": "TestPermissionsResponse"
162492	//   },
162493	//   "scopes": [
162494	//     "https://www.googleapis.com/auth/cloud-platform",
162495	//     "https://www.googleapis.com/auth/compute",
162496	//     "https://www.googleapis.com/auth/compute.readonly"
162497	//   ]
162498	// }
162499
162500}
162501
162502// method id "compute.targetSslProxies.delete":
162503
162504type TargetSslProxiesDeleteCall struct {
162505	s              *Service
162506	project        string
162507	targetSslProxy string
162508	urlParams_     gensupport.URLParams
162509	ctx_           context.Context
162510	header_        http.Header
162511}
162512
162513// Delete: Deletes the specified TargetSslProxy resource.
162514func (r *TargetSslProxiesService) Delete(project string, targetSslProxy string) *TargetSslProxiesDeleteCall {
162515	c := &TargetSslProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162516	c.project = project
162517	c.targetSslProxy = targetSslProxy
162518	return c
162519}
162520
162521// RequestId sets the optional parameter "requestId": An optional
162522// request ID to identify requests. Specify a unique request ID so that
162523// if you must retry your request, the server will know to ignore the
162524// request if it has already been completed.
162525//
162526// For example, consider a situation where you make an initial request
162527// and the request times out. If you make the request again with the
162528// same request ID, the server can check if original operation with the
162529// same request ID was received, and if so, will ignore the second
162530// request. This prevents clients from accidentally creating duplicate
162531// commitments.
162532//
162533// The request ID must be a valid UUID with the exception that zero UUID
162534// is not supported (00000000-0000-0000-0000-000000000000).
162535func (c *TargetSslProxiesDeleteCall) RequestId(requestId string) *TargetSslProxiesDeleteCall {
162536	c.urlParams_.Set("requestId", requestId)
162537	return c
162538}
162539
162540// Fields allows partial responses to be retrieved. See
162541// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162542// for more information.
162543func (c *TargetSslProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetSslProxiesDeleteCall {
162544	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162545	return c
162546}
162547
162548// Context sets the context to be used in this call's Do method. Any
162549// pending HTTP request will be aborted if the provided context is
162550// canceled.
162551func (c *TargetSslProxiesDeleteCall) Context(ctx context.Context) *TargetSslProxiesDeleteCall {
162552	c.ctx_ = ctx
162553	return c
162554}
162555
162556// Header returns an http.Header that can be modified by the caller to
162557// add HTTP headers to the request.
162558func (c *TargetSslProxiesDeleteCall) Header() http.Header {
162559	if c.header_ == nil {
162560		c.header_ = make(http.Header)
162561	}
162562	return c.header_
162563}
162564
162565func (c *TargetSslProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
162566	reqHeaders := make(http.Header)
162567	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
162568	for k, v := range c.header_ {
162569		reqHeaders[k] = v
162570	}
162571	reqHeaders.Set("User-Agent", c.s.userAgent())
162572	var body io.Reader = nil
162573	c.urlParams_.Set("alt", alt)
162574	c.urlParams_.Set("prettyPrint", "false")
162575	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}")
162576	urls += "?" + c.urlParams_.Encode()
162577	req, err := http.NewRequest("DELETE", urls, body)
162578	if err != nil {
162579		return nil, err
162580	}
162581	req.Header = reqHeaders
162582	googleapi.Expand(req.URL, map[string]string{
162583		"project":        c.project,
162584		"targetSslProxy": c.targetSslProxy,
162585	})
162586	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162587}
162588
162589// Do executes the "compute.targetSslProxies.delete" call.
162590// Exactly one of *Operation or error will be non-nil. Any non-2xx
162591// status code is an error. Response headers are in either
162592// *Operation.ServerResponse.Header or (if a response was returned at
162593// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
162594// to check whether the returned error was because
162595// http.StatusNotModified was returned.
162596func (c *TargetSslProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
162597	gensupport.SetOptions(c.urlParams_, opts...)
162598	res, err := c.doRequest("json")
162599	if res != nil && res.StatusCode == http.StatusNotModified {
162600		if res.Body != nil {
162601			res.Body.Close()
162602		}
162603		return nil, &googleapi.Error{
162604			Code:   res.StatusCode,
162605			Header: res.Header,
162606		}
162607	}
162608	if err != nil {
162609		return nil, err
162610	}
162611	defer googleapi.CloseBody(res)
162612	if err := googleapi.CheckResponse(res); err != nil {
162613		return nil, err
162614	}
162615	ret := &Operation{
162616		ServerResponse: googleapi.ServerResponse{
162617			Header:         res.Header,
162618			HTTPStatusCode: res.StatusCode,
162619		},
162620	}
162621	target := &ret
162622	if err := gensupport.DecodeResponse(target, res); err != nil {
162623		return nil, err
162624	}
162625	return ret, nil
162626	// {
162627	//   "description": "Deletes the specified TargetSslProxy resource.",
162628	//   "httpMethod": "DELETE",
162629	//   "id": "compute.targetSslProxies.delete",
162630	//   "parameterOrder": [
162631	//     "project",
162632	//     "targetSslProxy"
162633	//   ],
162634	//   "parameters": {
162635	//     "project": {
162636	//       "description": "Project ID for this request.",
162637	//       "location": "path",
162638	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162639	//       "required": true,
162640	//       "type": "string"
162641	//     },
162642	//     "requestId": {
162643	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
162644	//       "location": "query",
162645	//       "type": "string"
162646	//     },
162647	//     "targetSslProxy": {
162648	//       "description": "Name of the TargetSslProxy resource to delete.",
162649	//       "location": "path",
162650	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
162651	//       "required": true,
162652	//       "type": "string"
162653	//     }
162654	//   },
162655	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}",
162656	//   "response": {
162657	//     "$ref": "Operation"
162658	//   },
162659	//   "scopes": [
162660	//     "https://www.googleapis.com/auth/cloud-platform",
162661	//     "https://www.googleapis.com/auth/compute"
162662	//   ]
162663	// }
162664
162665}
162666
162667// method id "compute.targetSslProxies.get":
162668
162669type TargetSslProxiesGetCall struct {
162670	s              *Service
162671	project        string
162672	targetSslProxy string
162673	urlParams_     gensupport.URLParams
162674	ifNoneMatch_   string
162675	ctx_           context.Context
162676	header_        http.Header
162677}
162678
162679// Get: Returns the specified TargetSslProxy resource. Gets a list of
162680// available target SSL proxies by making a list() request.
162681func (r *TargetSslProxiesService) Get(project string, targetSslProxy string) *TargetSslProxiesGetCall {
162682	c := &TargetSslProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162683	c.project = project
162684	c.targetSslProxy = targetSslProxy
162685	return c
162686}
162687
162688// Fields allows partial responses to be retrieved. See
162689// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162690// for more information.
162691func (c *TargetSslProxiesGetCall) Fields(s ...googleapi.Field) *TargetSslProxiesGetCall {
162692	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162693	return c
162694}
162695
162696// IfNoneMatch sets the optional parameter which makes the operation
162697// fail if the object's ETag matches the given value. This is useful for
162698// getting updates only after the object has changed since the last
162699// request. Use googleapi.IsNotModified to check whether the response
162700// error from Do is the result of In-None-Match.
162701func (c *TargetSslProxiesGetCall) IfNoneMatch(entityTag string) *TargetSslProxiesGetCall {
162702	c.ifNoneMatch_ = entityTag
162703	return c
162704}
162705
162706// Context sets the context to be used in this call's Do method. Any
162707// pending HTTP request will be aborted if the provided context is
162708// canceled.
162709func (c *TargetSslProxiesGetCall) Context(ctx context.Context) *TargetSslProxiesGetCall {
162710	c.ctx_ = ctx
162711	return c
162712}
162713
162714// Header returns an http.Header that can be modified by the caller to
162715// add HTTP headers to the request.
162716func (c *TargetSslProxiesGetCall) Header() http.Header {
162717	if c.header_ == nil {
162718		c.header_ = make(http.Header)
162719	}
162720	return c.header_
162721}
162722
162723func (c *TargetSslProxiesGetCall) doRequest(alt string) (*http.Response, error) {
162724	reqHeaders := make(http.Header)
162725	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
162726	for k, v := range c.header_ {
162727		reqHeaders[k] = v
162728	}
162729	reqHeaders.Set("User-Agent", c.s.userAgent())
162730	if c.ifNoneMatch_ != "" {
162731		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
162732	}
162733	var body io.Reader = nil
162734	c.urlParams_.Set("alt", alt)
162735	c.urlParams_.Set("prettyPrint", "false")
162736	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}")
162737	urls += "?" + c.urlParams_.Encode()
162738	req, err := http.NewRequest("GET", urls, body)
162739	if err != nil {
162740		return nil, err
162741	}
162742	req.Header = reqHeaders
162743	googleapi.Expand(req.URL, map[string]string{
162744		"project":        c.project,
162745		"targetSslProxy": c.targetSslProxy,
162746	})
162747	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162748}
162749
162750// Do executes the "compute.targetSslProxies.get" call.
162751// Exactly one of *TargetSslProxy or error will be non-nil. Any non-2xx
162752// status code is an error. Response headers are in either
162753// *TargetSslProxy.ServerResponse.Header or (if a response was returned
162754// at all) in error.(*googleapi.Error).Header. Use
162755// googleapi.IsNotModified to check whether the returned error was
162756// because http.StatusNotModified was returned.
162757func (c *TargetSslProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetSslProxy, error) {
162758	gensupport.SetOptions(c.urlParams_, opts...)
162759	res, err := c.doRequest("json")
162760	if res != nil && res.StatusCode == http.StatusNotModified {
162761		if res.Body != nil {
162762			res.Body.Close()
162763		}
162764		return nil, &googleapi.Error{
162765			Code:   res.StatusCode,
162766			Header: res.Header,
162767		}
162768	}
162769	if err != nil {
162770		return nil, err
162771	}
162772	defer googleapi.CloseBody(res)
162773	if err := googleapi.CheckResponse(res); err != nil {
162774		return nil, err
162775	}
162776	ret := &TargetSslProxy{
162777		ServerResponse: googleapi.ServerResponse{
162778			Header:         res.Header,
162779			HTTPStatusCode: res.StatusCode,
162780		},
162781	}
162782	target := &ret
162783	if err := gensupport.DecodeResponse(target, res); err != nil {
162784		return nil, err
162785	}
162786	return ret, nil
162787	// {
162788	//   "description": "Returns the specified TargetSslProxy resource. Gets a list of available target SSL proxies by making a list() request.",
162789	//   "httpMethod": "GET",
162790	//   "id": "compute.targetSslProxies.get",
162791	//   "parameterOrder": [
162792	//     "project",
162793	//     "targetSslProxy"
162794	//   ],
162795	//   "parameters": {
162796	//     "project": {
162797	//       "description": "Project ID for this request.",
162798	//       "location": "path",
162799	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162800	//       "required": true,
162801	//       "type": "string"
162802	//     },
162803	//     "targetSslProxy": {
162804	//       "description": "Name of the TargetSslProxy resource to return.",
162805	//       "location": "path",
162806	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
162807	//       "required": true,
162808	//       "type": "string"
162809	//     }
162810	//   },
162811	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}",
162812	//   "response": {
162813	//     "$ref": "TargetSslProxy"
162814	//   },
162815	//   "scopes": [
162816	//     "https://www.googleapis.com/auth/cloud-platform",
162817	//     "https://www.googleapis.com/auth/compute",
162818	//     "https://www.googleapis.com/auth/compute.readonly"
162819	//   ]
162820	// }
162821
162822}
162823
162824// method id "compute.targetSslProxies.insert":
162825
162826type TargetSslProxiesInsertCall struct {
162827	s              *Service
162828	project        string
162829	targetsslproxy *TargetSslProxy
162830	urlParams_     gensupport.URLParams
162831	ctx_           context.Context
162832	header_        http.Header
162833}
162834
162835// Insert: Creates a TargetSslProxy resource in the specified project
162836// using the data included in the request.
162837func (r *TargetSslProxiesService) Insert(project string, targetsslproxy *TargetSslProxy) *TargetSslProxiesInsertCall {
162838	c := &TargetSslProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162839	c.project = project
162840	c.targetsslproxy = targetsslproxy
162841	return c
162842}
162843
162844// RequestId sets the optional parameter "requestId": An optional
162845// request ID to identify requests. Specify a unique request ID so that
162846// if you must retry your request, the server will know to ignore the
162847// request if it has already been completed.
162848//
162849// For example, consider a situation where you make an initial request
162850// and the request times out. If you make the request again with the
162851// same request ID, the server can check if original operation with the
162852// same request ID was received, and if so, will ignore the second
162853// request. This prevents clients from accidentally creating duplicate
162854// commitments.
162855//
162856// The request ID must be a valid UUID with the exception that zero UUID
162857// is not supported (00000000-0000-0000-0000-000000000000).
162858func (c *TargetSslProxiesInsertCall) RequestId(requestId string) *TargetSslProxiesInsertCall {
162859	c.urlParams_.Set("requestId", requestId)
162860	return c
162861}
162862
162863// Fields allows partial responses to be retrieved. See
162864// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162865// for more information.
162866func (c *TargetSslProxiesInsertCall) Fields(s ...googleapi.Field) *TargetSslProxiesInsertCall {
162867	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162868	return c
162869}
162870
162871// Context sets the context to be used in this call's Do method. Any
162872// pending HTTP request will be aborted if the provided context is
162873// canceled.
162874func (c *TargetSslProxiesInsertCall) Context(ctx context.Context) *TargetSslProxiesInsertCall {
162875	c.ctx_ = ctx
162876	return c
162877}
162878
162879// Header returns an http.Header that can be modified by the caller to
162880// add HTTP headers to the request.
162881func (c *TargetSslProxiesInsertCall) Header() http.Header {
162882	if c.header_ == nil {
162883		c.header_ = make(http.Header)
162884	}
162885	return c.header_
162886}
162887
162888func (c *TargetSslProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
162889	reqHeaders := make(http.Header)
162890	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
162891	for k, v := range c.header_ {
162892		reqHeaders[k] = v
162893	}
162894	reqHeaders.Set("User-Agent", c.s.userAgent())
162895	var body io.Reader = nil
162896	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxy)
162897	if err != nil {
162898		return nil, err
162899	}
162900	reqHeaders.Set("Content-Type", "application/json")
162901	c.urlParams_.Set("alt", alt)
162902	c.urlParams_.Set("prettyPrint", "false")
162903	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies")
162904	urls += "?" + c.urlParams_.Encode()
162905	req, err := http.NewRequest("POST", urls, body)
162906	if err != nil {
162907		return nil, err
162908	}
162909	req.Header = reqHeaders
162910	googleapi.Expand(req.URL, map[string]string{
162911		"project": c.project,
162912	})
162913	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162914}
162915
162916// Do executes the "compute.targetSslProxies.insert" call.
162917// Exactly one of *Operation or error will be non-nil. Any non-2xx
162918// status code is an error. Response headers are in either
162919// *Operation.ServerResponse.Header or (if a response was returned at
162920// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
162921// to check whether the returned error was because
162922// http.StatusNotModified was returned.
162923func (c *TargetSslProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
162924	gensupport.SetOptions(c.urlParams_, opts...)
162925	res, err := c.doRequest("json")
162926	if res != nil && res.StatusCode == http.StatusNotModified {
162927		if res.Body != nil {
162928			res.Body.Close()
162929		}
162930		return nil, &googleapi.Error{
162931			Code:   res.StatusCode,
162932			Header: res.Header,
162933		}
162934	}
162935	if err != nil {
162936		return nil, err
162937	}
162938	defer googleapi.CloseBody(res)
162939	if err := googleapi.CheckResponse(res); err != nil {
162940		return nil, err
162941	}
162942	ret := &Operation{
162943		ServerResponse: googleapi.ServerResponse{
162944			Header:         res.Header,
162945			HTTPStatusCode: res.StatusCode,
162946		},
162947	}
162948	target := &ret
162949	if err := gensupport.DecodeResponse(target, res); err != nil {
162950		return nil, err
162951	}
162952	return ret, nil
162953	// {
162954	//   "description": "Creates a TargetSslProxy resource in the specified project using the data included in the request.",
162955	//   "httpMethod": "POST",
162956	//   "id": "compute.targetSslProxies.insert",
162957	//   "parameterOrder": [
162958	//     "project"
162959	//   ],
162960	//   "parameters": {
162961	//     "project": {
162962	//       "description": "Project ID for this request.",
162963	//       "location": "path",
162964	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162965	//       "required": true,
162966	//       "type": "string"
162967	//     },
162968	//     "requestId": {
162969	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
162970	//       "location": "query",
162971	//       "type": "string"
162972	//     }
162973	//   },
162974	//   "path": "{project}/global/targetSslProxies",
162975	//   "request": {
162976	//     "$ref": "TargetSslProxy"
162977	//   },
162978	//   "response": {
162979	//     "$ref": "Operation"
162980	//   },
162981	//   "scopes": [
162982	//     "https://www.googleapis.com/auth/cloud-platform",
162983	//     "https://www.googleapis.com/auth/compute"
162984	//   ]
162985	// }
162986
162987}
162988
162989// method id "compute.targetSslProxies.list":
162990
162991type TargetSslProxiesListCall struct {
162992	s            *Service
162993	project      string
162994	urlParams_   gensupport.URLParams
162995	ifNoneMatch_ string
162996	ctx_         context.Context
162997	header_      http.Header
162998}
162999
163000// List: Retrieves the list of TargetSslProxy resources available to the
163001// specified project.
163002func (r *TargetSslProxiesService) List(project string) *TargetSslProxiesListCall {
163003	c := &TargetSslProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163004	c.project = project
163005	return c
163006}
163007
163008// Filter sets the optional parameter "filter": A filter expression that
163009// filters resources listed in the response. The expression must specify
163010// the field name, a comparison operator, and the value that you want to
163011// use for filtering. The value must be a string, a number, or a
163012// boolean. The comparison operator must be either =, !=, >, or <.
163013//
163014// For example, if you are filtering Compute Engine instances, you can
163015// exclude instances named example-instance by specifying name !=
163016// example-instance.
163017//
163018// You can also filter nested fields. For example, you could specify
163019// scheduling.automaticRestart = false to include instances only if they
163020// are not scheduled for automatic restarts. You can use filtering on
163021// nested fields to filter based on resource labels.
163022//
163023// To filter on multiple expressions, provide each separate expression
163024// within parentheses. For example, (scheduling.automaticRestart = true)
163025// (cpuPlatform = "Intel Skylake"). By default, each expression is an
163026// AND expression. However, you can include AND and OR expressions
163027// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
163028// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
163029// true).
163030func (c *TargetSslProxiesListCall) Filter(filter string) *TargetSslProxiesListCall {
163031	c.urlParams_.Set("filter", filter)
163032	return c
163033}
163034
163035// MaxResults sets the optional parameter "maxResults": The maximum
163036// number of results per page that should be returned. If the number of
163037// available results is larger than maxResults, Compute Engine returns a
163038// nextPageToken that can be used to get the next page of results in
163039// subsequent list requests. Acceptable values are 0 to 500, inclusive.
163040// (Default: 500)
163041func (c *TargetSslProxiesListCall) MaxResults(maxResults int64) *TargetSslProxiesListCall {
163042	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
163043	return c
163044}
163045
163046// OrderBy sets the optional parameter "orderBy": Sorts list results by
163047// a certain order. By default, results are returned in alphanumerical
163048// order based on the resource name.
163049//
163050// You can also sort results in descending order based on the creation
163051// timestamp using orderBy="creationTimestamp desc". This sorts results
163052// based on the creationTimestamp field in reverse chronological order
163053// (newest result first). Use this to sort resources like operations so
163054// that the newest operation is returned first.
163055//
163056// Currently, only sorting by name or creationTimestamp desc is
163057// supported.
163058func (c *TargetSslProxiesListCall) OrderBy(orderBy string) *TargetSslProxiesListCall {
163059	c.urlParams_.Set("orderBy", orderBy)
163060	return c
163061}
163062
163063// PageToken sets the optional parameter "pageToken": Specifies a page
163064// token to use. Set pageToken to the nextPageToken returned by a
163065// previous list request to get the next page of results.
163066func (c *TargetSslProxiesListCall) PageToken(pageToken string) *TargetSslProxiesListCall {
163067	c.urlParams_.Set("pageToken", pageToken)
163068	return c
163069}
163070
163071// Fields allows partial responses to be retrieved. See
163072// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163073// for more information.
163074func (c *TargetSslProxiesListCall) Fields(s ...googleapi.Field) *TargetSslProxiesListCall {
163075	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163076	return c
163077}
163078
163079// IfNoneMatch sets the optional parameter which makes the operation
163080// fail if the object's ETag matches the given value. This is useful for
163081// getting updates only after the object has changed since the last
163082// request. Use googleapi.IsNotModified to check whether the response
163083// error from Do is the result of In-None-Match.
163084func (c *TargetSslProxiesListCall) IfNoneMatch(entityTag string) *TargetSslProxiesListCall {
163085	c.ifNoneMatch_ = entityTag
163086	return c
163087}
163088
163089// Context sets the context to be used in this call's Do method. Any
163090// pending HTTP request will be aborted if the provided context is
163091// canceled.
163092func (c *TargetSslProxiesListCall) Context(ctx context.Context) *TargetSslProxiesListCall {
163093	c.ctx_ = ctx
163094	return c
163095}
163096
163097// Header returns an http.Header that can be modified by the caller to
163098// add HTTP headers to the request.
163099func (c *TargetSslProxiesListCall) Header() http.Header {
163100	if c.header_ == nil {
163101		c.header_ = make(http.Header)
163102	}
163103	return c.header_
163104}
163105
163106func (c *TargetSslProxiesListCall) doRequest(alt string) (*http.Response, error) {
163107	reqHeaders := make(http.Header)
163108	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
163109	for k, v := range c.header_ {
163110		reqHeaders[k] = v
163111	}
163112	reqHeaders.Set("User-Agent", c.s.userAgent())
163113	if c.ifNoneMatch_ != "" {
163114		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
163115	}
163116	var body io.Reader = nil
163117	c.urlParams_.Set("alt", alt)
163118	c.urlParams_.Set("prettyPrint", "false")
163119	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies")
163120	urls += "?" + c.urlParams_.Encode()
163121	req, err := http.NewRequest("GET", urls, body)
163122	if err != nil {
163123		return nil, err
163124	}
163125	req.Header = reqHeaders
163126	googleapi.Expand(req.URL, map[string]string{
163127		"project": c.project,
163128	})
163129	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163130}
163131
163132// Do executes the "compute.targetSslProxies.list" call.
163133// Exactly one of *TargetSslProxyList or error will be non-nil. Any
163134// non-2xx status code is an error. Response headers are in either
163135// *TargetSslProxyList.ServerResponse.Header or (if a response was
163136// returned at all) in error.(*googleapi.Error).Header. Use
163137// googleapi.IsNotModified to check whether the returned error was
163138// because http.StatusNotModified was returned.
163139func (c *TargetSslProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetSslProxyList, error) {
163140	gensupport.SetOptions(c.urlParams_, opts...)
163141	res, err := c.doRequest("json")
163142	if res != nil && res.StatusCode == http.StatusNotModified {
163143		if res.Body != nil {
163144			res.Body.Close()
163145		}
163146		return nil, &googleapi.Error{
163147			Code:   res.StatusCode,
163148			Header: res.Header,
163149		}
163150	}
163151	if err != nil {
163152		return nil, err
163153	}
163154	defer googleapi.CloseBody(res)
163155	if err := googleapi.CheckResponse(res); err != nil {
163156		return nil, err
163157	}
163158	ret := &TargetSslProxyList{
163159		ServerResponse: googleapi.ServerResponse{
163160			Header:         res.Header,
163161			HTTPStatusCode: res.StatusCode,
163162		},
163163	}
163164	target := &ret
163165	if err := gensupport.DecodeResponse(target, res); err != nil {
163166		return nil, err
163167	}
163168	return ret, nil
163169	// {
163170	//   "description": "Retrieves the list of TargetSslProxy resources available to the specified project.",
163171	//   "httpMethod": "GET",
163172	//   "id": "compute.targetSslProxies.list",
163173	//   "parameterOrder": [
163174	//     "project"
163175	//   ],
163176	//   "parameters": {
163177	//     "filter": {
163178	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
163179	//       "location": "query",
163180	//       "type": "string"
163181	//     },
163182	//     "maxResults": {
163183	//       "default": "500",
163184	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
163185	//       "format": "uint32",
163186	//       "location": "query",
163187	//       "minimum": "0",
163188	//       "type": "integer"
163189	//     },
163190	//     "orderBy": {
163191	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
163192	//       "location": "query",
163193	//       "type": "string"
163194	//     },
163195	//     "pageToken": {
163196	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
163197	//       "location": "query",
163198	//       "type": "string"
163199	//     },
163200	//     "project": {
163201	//       "description": "Project ID for this request.",
163202	//       "location": "path",
163203	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163204	//       "required": true,
163205	//       "type": "string"
163206	//     }
163207	//   },
163208	//   "path": "{project}/global/targetSslProxies",
163209	//   "response": {
163210	//     "$ref": "TargetSslProxyList"
163211	//   },
163212	//   "scopes": [
163213	//     "https://www.googleapis.com/auth/cloud-platform",
163214	//     "https://www.googleapis.com/auth/compute",
163215	//     "https://www.googleapis.com/auth/compute.readonly"
163216	//   ]
163217	// }
163218
163219}
163220
163221// Pages invokes f for each page of results.
163222// A non-nil error returned from f will halt the iteration.
163223// The provided context supersedes any context provided to the Context method.
163224func (c *TargetSslProxiesListCall) Pages(ctx context.Context, f func(*TargetSslProxyList) error) error {
163225	c.ctx_ = ctx
163226	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
163227	for {
163228		x, err := c.Do()
163229		if err != nil {
163230			return err
163231		}
163232		if err := f(x); err != nil {
163233			return err
163234		}
163235		if x.NextPageToken == "" {
163236			return nil
163237		}
163238		c.PageToken(x.NextPageToken)
163239	}
163240}
163241
163242// method id "compute.targetSslProxies.setBackendService":
163243
163244type TargetSslProxiesSetBackendServiceCall struct {
163245	s                                        *Service
163246	project                                  string
163247	targetSslProxy                           string
163248	targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest
163249	urlParams_                               gensupport.URLParams
163250	ctx_                                     context.Context
163251	header_                                  http.Header
163252}
163253
163254// SetBackendService: Changes the BackendService for TargetSslProxy.
163255func (r *TargetSslProxiesService) SetBackendService(project string, targetSslProxy string, targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest) *TargetSslProxiesSetBackendServiceCall {
163256	c := &TargetSslProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163257	c.project = project
163258	c.targetSslProxy = targetSslProxy
163259	c.targetsslproxiessetbackendservicerequest = targetsslproxiessetbackendservicerequest
163260	return c
163261}
163262
163263// RequestId sets the optional parameter "requestId": An optional
163264// request ID to identify requests. Specify a unique request ID so that
163265// if you must retry your request, the server will know to ignore the
163266// request if it has already been completed.
163267//
163268// For example, consider a situation where you make an initial request
163269// and the request times out. If you make the request again with the
163270// same request ID, the server can check if original operation with the
163271// same request ID was received, and if so, will ignore the second
163272// request. This prevents clients from accidentally creating duplicate
163273// commitments.
163274//
163275// The request ID must be a valid UUID with the exception that zero UUID
163276// is not supported (00000000-0000-0000-0000-000000000000).
163277func (c *TargetSslProxiesSetBackendServiceCall) RequestId(requestId string) *TargetSslProxiesSetBackendServiceCall {
163278	c.urlParams_.Set("requestId", requestId)
163279	return c
163280}
163281
163282// Fields allows partial responses to be retrieved. See
163283// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163284// for more information.
163285func (c *TargetSslProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetBackendServiceCall {
163286	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163287	return c
163288}
163289
163290// Context sets the context to be used in this call's Do method. Any
163291// pending HTTP request will be aborted if the provided context is
163292// canceled.
163293func (c *TargetSslProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetSslProxiesSetBackendServiceCall {
163294	c.ctx_ = ctx
163295	return c
163296}
163297
163298// Header returns an http.Header that can be modified by the caller to
163299// add HTTP headers to the request.
163300func (c *TargetSslProxiesSetBackendServiceCall) Header() http.Header {
163301	if c.header_ == nil {
163302		c.header_ = make(http.Header)
163303	}
163304	return c.header_
163305}
163306
163307func (c *TargetSslProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) {
163308	reqHeaders := make(http.Header)
163309	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
163310	for k, v := range c.header_ {
163311		reqHeaders[k] = v
163312	}
163313	reqHeaders.Set("User-Agent", c.s.userAgent())
163314	var body io.Reader = nil
163315	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetbackendservicerequest)
163316	if err != nil {
163317		return nil, err
163318	}
163319	reqHeaders.Set("Content-Type", "application/json")
163320	c.urlParams_.Set("alt", alt)
163321	c.urlParams_.Set("prettyPrint", "false")
163322	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setBackendService")
163323	urls += "?" + c.urlParams_.Encode()
163324	req, err := http.NewRequest("POST", urls, body)
163325	if err != nil {
163326		return nil, err
163327	}
163328	req.Header = reqHeaders
163329	googleapi.Expand(req.URL, map[string]string{
163330		"project":        c.project,
163331		"targetSslProxy": c.targetSslProxy,
163332	})
163333	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163334}
163335
163336// Do executes the "compute.targetSslProxies.setBackendService" call.
163337// Exactly one of *Operation or error will be non-nil. Any non-2xx
163338// status code is an error. Response headers are in either
163339// *Operation.ServerResponse.Header or (if a response was returned at
163340// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
163341// to check whether the returned error was because
163342// http.StatusNotModified was returned.
163343func (c *TargetSslProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
163344	gensupport.SetOptions(c.urlParams_, opts...)
163345	res, err := c.doRequest("json")
163346	if res != nil && res.StatusCode == http.StatusNotModified {
163347		if res.Body != nil {
163348			res.Body.Close()
163349		}
163350		return nil, &googleapi.Error{
163351			Code:   res.StatusCode,
163352			Header: res.Header,
163353		}
163354	}
163355	if err != nil {
163356		return nil, err
163357	}
163358	defer googleapi.CloseBody(res)
163359	if err := googleapi.CheckResponse(res); err != nil {
163360		return nil, err
163361	}
163362	ret := &Operation{
163363		ServerResponse: googleapi.ServerResponse{
163364			Header:         res.Header,
163365			HTTPStatusCode: res.StatusCode,
163366		},
163367	}
163368	target := &ret
163369	if err := gensupport.DecodeResponse(target, res); err != nil {
163370		return nil, err
163371	}
163372	return ret, nil
163373	// {
163374	//   "description": "Changes the BackendService for TargetSslProxy.",
163375	//   "httpMethod": "POST",
163376	//   "id": "compute.targetSslProxies.setBackendService",
163377	//   "parameterOrder": [
163378	//     "project",
163379	//     "targetSslProxy"
163380	//   ],
163381	//   "parameters": {
163382	//     "project": {
163383	//       "description": "Project ID for this request.",
163384	//       "location": "path",
163385	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163386	//       "required": true,
163387	//       "type": "string"
163388	//     },
163389	//     "requestId": {
163390	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
163391	//       "location": "query",
163392	//       "type": "string"
163393	//     },
163394	//     "targetSslProxy": {
163395	//       "description": "Name of the TargetSslProxy resource whose BackendService resource is to be set.",
163396	//       "location": "path",
163397	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
163398	//       "required": true,
163399	//       "type": "string"
163400	//     }
163401	//   },
163402	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setBackendService",
163403	//   "request": {
163404	//     "$ref": "TargetSslProxiesSetBackendServiceRequest"
163405	//   },
163406	//   "response": {
163407	//     "$ref": "Operation"
163408	//   },
163409	//   "scopes": [
163410	//     "https://www.googleapis.com/auth/cloud-platform",
163411	//     "https://www.googleapis.com/auth/compute"
163412	//   ]
163413	// }
163414
163415}
163416
163417// method id "compute.targetSslProxies.setProxyHeader":
163418
163419type TargetSslProxiesSetProxyHeaderCall struct {
163420	s                                     *Service
163421	project                               string
163422	targetSslProxy                        string
163423	targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest
163424	urlParams_                            gensupport.URLParams
163425	ctx_                                  context.Context
163426	header_                               http.Header
163427}
163428
163429// SetProxyHeader: Changes the ProxyHeaderType for TargetSslProxy.
163430func (r *TargetSslProxiesService) SetProxyHeader(project string, targetSslProxy string, targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest) *TargetSslProxiesSetProxyHeaderCall {
163431	c := &TargetSslProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163432	c.project = project
163433	c.targetSslProxy = targetSslProxy
163434	c.targetsslproxiessetproxyheaderrequest = targetsslproxiessetproxyheaderrequest
163435	return c
163436}
163437
163438// RequestId sets the optional parameter "requestId": An optional
163439// request ID to identify requests. Specify a unique request ID so that
163440// if you must retry your request, the server will know to ignore the
163441// request if it has already been completed.
163442//
163443// For example, consider a situation where you make an initial request
163444// and the request times out. If you make the request again with the
163445// same request ID, the server can check if original operation with the
163446// same request ID was received, and if so, will ignore the second
163447// request. This prevents clients from accidentally creating duplicate
163448// commitments.
163449//
163450// The request ID must be a valid UUID with the exception that zero UUID
163451// is not supported (00000000-0000-0000-0000-000000000000).
163452func (c *TargetSslProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetSslProxiesSetProxyHeaderCall {
163453	c.urlParams_.Set("requestId", requestId)
163454	return c
163455}
163456
163457// Fields allows partial responses to be retrieved. See
163458// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163459// for more information.
163460func (c *TargetSslProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetProxyHeaderCall {
163461	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163462	return c
163463}
163464
163465// Context sets the context to be used in this call's Do method. Any
163466// pending HTTP request will be aborted if the provided context is
163467// canceled.
163468func (c *TargetSslProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetSslProxiesSetProxyHeaderCall {
163469	c.ctx_ = ctx
163470	return c
163471}
163472
163473// Header returns an http.Header that can be modified by the caller to
163474// add HTTP headers to the request.
163475func (c *TargetSslProxiesSetProxyHeaderCall) Header() http.Header {
163476	if c.header_ == nil {
163477		c.header_ = make(http.Header)
163478	}
163479	return c.header_
163480}
163481
163482func (c *TargetSslProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) {
163483	reqHeaders := make(http.Header)
163484	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
163485	for k, v := range c.header_ {
163486		reqHeaders[k] = v
163487	}
163488	reqHeaders.Set("User-Agent", c.s.userAgent())
163489	var body io.Reader = nil
163490	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetproxyheaderrequest)
163491	if err != nil {
163492		return nil, err
163493	}
163494	reqHeaders.Set("Content-Type", "application/json")
163495	c.urlParams_.Set("alt", alt)
163496	c.urlParams_.Set("prettyPrint", "false")
163497	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader")
163498	urls += "?" + c.urlParams_.Encode()
163499	req, err := http.NewRequest("POST", urls, body)
163500	if err != nil {
163501		return nil, err
163502	}
163503	req.Header = reqHeaders
163504	googleapi.Expand(req.URL, map[string]string{
163505		"project":        c.project,
163506		"targetSslProxy": c.targetSslProxy,
163507	})
163508	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163509}
163510
163511// Do executes the "compute.targetSslProxies.setProxyHeader" call.
163512// Exactly one of *Operation or error will be non-nil. Any non-2xx
163513// status code is an error. Response headers are in either
163514// *Operation.ServerResponse.Header or (if a response was returned at
163515// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
163516// to check whether the returned error was because
163517// http.StatusNotModified was returned.
163518func (c *TargetSslProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
163519	gensupport.SetOptions(c.urlParams_, opts...)
163520	res, err := c.doRequest("json")
163521	if res != nil && res.StatusCode == http.StatusNotModified {
163522		if res.Body != nil {
163523			res.Body.Close()
163524		}
163525		return nil, &googleapi.Error{
163526			Code:   res.StatusCode,
163527			Header: res.Header,
163528		}
163529	}
163530	if err != nil {
163531		return nil, err
163532	}
163533	defer googleapi.CloseBody(res)
163534	if err := googleapi.CheckResponse(res); err != nil {
163535		return nil, err
163536	}
163537	ret := &Operation{
163538		ServerResponse: googleapi.ServerResponse{
163539			Header:         res.Header,
163540			HTTPStatusCode: res.StatusCode,
163541		},
163542	}
163543	target := &ret
163544	if err := gensupport.DecodeResponse(target, res); err != nil {
163545		return nil, err
163546	}
163547	return ret, nil
163548	// {
163549	//   "description": "Changes the ProxyHeaderType for TargetSslProxy.",
163550	//   "httpMethod": "POST",
163551	//   "id": "compute.targetSslProxies.setProxyHeader",
163552	//   "parameterOrder": [
163553	//     "project",
163554	//     "targetSslProxy"
163555	//   ],
163556	//   "parameters": {
163557	//     "project": {
163558	//       "description": "Project ID for this request.",
163559	//       "location": "path",
163560	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163561	//       "required": true,
163562	//       "type": "string"
163563	//     },
163564	//     "requestId": {
163565	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
163566	//       "location": "query",
163567	//       "type": "string"
163568	//     },
163569	//     "targetSslProxy": {
163570	//       "description": "Name of the TargetSslProxy resource whose ProxyHeader is to be set.",
163571	//       "location": "path",
163572	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
163573	//       "required": true,
163574	//       "type": "string"
163575	//     }
163576	//   },
163577	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader",
163578	//   "request": {
163579	//     "$ref": "TargetSslProxiesSetProxyHeaderRequest"
163580	//   },
163581	//   "response": {
163582	//     "$ref": "Operation"
163583	//   },
163584	//   "scopes": [
163585	//     "https://www.googleapis.com/auth/cloud-platform",
163586	//     "https://www.googleapis.com/auth/compute"
163587	//   ]
163588	// }
163589
163590}
163591
163592// method id "compute.targetSslProxies.setSslCertificates":
163593
163594type TargetSslProxiesSetSslCertificatesCall struct {
163595	s                                         *Service
163596	project                                   string
163597	targetSslProxy                            string
163598	targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest
163599	urlParams_                                gensupport.URLParams
163600	ctx_                                      context.Context
163601	header_                                   http.Header
163602}
163603
163604// SetSslCertificates: Changes SslCertificates for TargetSslProxy.
163605func (r *TargetSslProxiesService) SetSslCertificates(project string, targetSslProxy string, targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest) *TargetSslProxiesSetSslCertificatesCall {
163606	c := &TargetSslProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163607	c.project = project
163608	c.targetSslProxy = targetSslProxy
163609	c.targetsslproxiessetsslcertificatesrequest = targetsslproxiessetsslcertificatesrequest
163610	return c
163611}
163612
163613// RequestId sets the optional parameter "requestId": An optional
163614// request ID to identify requests. Specify a unique request ID so that
163615// if you must retry your request, the server will know to ignore the
163616// request if it has already been completed.
163617//
163618// For example, consider a situation where you make an initial request
163619// and the request times out. If you make the request again with the
163620// same request ID, the server can check if original operation with the
163621// same request ID was received, and if so, will ignore the second
163622// request. This prevents clients from accidentally creating duplicate
163623// commitments.
163624//
163625// The request ID must be a valid UUID with the exception that zero UUID
163626// is not supported (00000000-0000-0000-0000-000000000000).
163627func (c *TargetSslProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetSslProxiesSetSslCertificatesCall {
163628	c.urlParams_.Set("requestId", requestId)
163629	return c
163630}
163631
163632// Fields allows partial responses to be retrieved. See
163633// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163634// for more information.
163635func (c *TargetSslProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslCertificatesCall {
163636	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163637	return c
163638}
163639
163640// Context sets the context to be used in this call's Do method. Any
163641// pending HTTP request will be aborted if the provided context is
163642// canceled.
163643func (c *TargetSslProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetSslProxiesSetSslCertificatesCall {
163644	c.ctx_ = ctx
163645	return c
163646}
163647
163648// Header returns an http.Header that can be modified by the caller to
163649// add HTTP headers to the request.
163650func (c *TargetSslProxiesSetSslCertificatesCall) Header() http.Header {
163651	if c.header_ == nil {
163652		c.header_ = make(http.Header)
163653	}
163654	return c.header_
163655}
163656
163657func (c *TargetSslProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
163658	reqHeaders := make(http.Header)
163659	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
163660	for k, v := range c.header_ {
163661		reqHeaders[k] = v
163662	}
163663	reqHeaders.Set("User-Agent", c.s.userAgent())
163664	var body io.Reader = nil
163665	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetsslcertificatesrequest)
163666	if err != nil {
163667		return nil, err
163668	}
163669	reqHeaders.Set("Content-Type", "application/json")
163670	c.urlParams_.Set("alt", alt)
163671	c.urlParams_.Set("prettyPrint", "false")
163672	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates")
163673	urls += "?" + c.urlParams_.Encode()
163674	req, err := http.NewRequest("POST", urls, body)
163675	if err != nil {
163676		return nil, err
163677	}
163678	req.Header = reqHeaders
163679	googleapi.Expand(req.URL, map[string]string{
163680		"project":        c.project,
163681		"targetSslProxy": c.targetSslProxy,
163682	})
163683	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163684}
163685
163686// Do executes the "compute.targetSslProxies.setSslCertificates" call.
163687// Exactly one of *Operation or error will be non-nil. Any non-2xx
163688// status code is an error. Response headers are in either
163689// *Operation.ServerResponse.Header or (if a response was returned at
163690// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
163691// to check whether the returned error was because
163692// http.StatusNotModified was returned.
163693func (c *TargetSslProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
163694	gensupport.SetOptions(c.urlParams_, opts...)
163695	res, err := c.doRequest("json")
163696	if res != nil && res.StatusCode == http.StatusNotModified {
163697		if res.Body != nil {
163698			res.Body.Close()
163699		}
163700		return nil, &googleapi.Error{
163701			Code:   res.StatusCode,
163702			Header: res.Header,
163703		}
163704	}
163705	if err != nil {
163706		return nil, err
163707	}
163708	defer googleapi.CloseBody(res)
163709	if err := googleapi.CheckResponse(res); err != nil {
163710		return nil, err
163711	}
163712	ret := &Operation{
163713		ServerResponse: googleapi.ServerResponse{
163714			Header:         res.Header,
163715			HTTPStatusCode: res.StatusCode,
163716		},
163717	}
163718	target := &ret
163719	if err := gensupport.DecodeResponse(target, res); err != nil {
163720		return nil, err
163721	}
163722	return ret, nil
163723	// {
163724	//   "description": "Changes SslCertificates for TargetSslProxy.",
163725	//   "httpMethod": "POST",
163726	//   "id": "compute.targetSslProxies.setSslCertificates",
163727	//   "parameterOrder": [
163728	//     "project",
163729	//     "targetSslProxy"
163730	//   ],
163731	//   "parameters": {
163732	//     "project": {
163733	//       "description": "Project ID for this request.",
163734	//       "location": "path",
163735	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163736	//       "required": true,
163737	//       "type": "string"
163738	//     },
163739	//     "requestId": {
163740	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
163741	//       "location": "query",
163742	//       "type": "string"
163743	//     },
163744	//     "targetSslProxy": {
163745	//       "description": "Name of the TargetSslProxy resource whose SslCertificate resource is to be set.",
163746	//       "location": "path",
163747	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
163748	//       "required": true,
163749	//       "type": "string"
163750	//     }
163751	//   },
163752	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates",
163753	//   "request": {
163754	//     "$ref": "TargetSslProxiesSetSslCertificatesRequest"
163755	//   },
163756	//   "response": {
163757	//     "$ref": "Operation"
163758	//   },
163759	//   "scopes": [
163760	//     "https://www.googleapis.com/auth/cloud-platform",
163761	//     "https://www.googleapis.com/auth/compute"
163762	//   ]
163763	// }
163764
163765}
163766
163767// method id "compute.targetSslProxies.setSslPolicy":
163768
163769type TargetSslProxiesSetSslPolicyCall struct {
163770	s                  *Service
163771	project            string
163772	targetSslProxy     string
163773	sslpolicyreference *SslPolicyReference
163774	urlParams_         gensupport.URLParams
163775	ctx_               context.Context
163776	header_            http.Header
163777}
163778
163779// SetSslPolicy: Sets the SSL policy for TargetSslProxy. The SSL policy
163780// specifies the server-side support for SSL features. This affects
163781// connections between clients and the SSL proxy load balancer. They do
163782// not affect the connection between the load balancer and the backends.
163783func (r *TargetSslProxiesService) SetSslPolicy(project string, targetSslProxy string, sslpolicyreference *SslPolicyReference) *TargetSslProxiesSetSslPolicyCall {
163784	c := &TargetSslProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163785	c.project = project
163786	c.targetSslProxy = targetSslProxy
163787	c.sslpolicyreference = sslpolicyreference
163788	return c
163789}
163790
163791// RequestId sets the optional parameter "requestId": An optional
163792// request ID to identify requests. Specify a unique request ID so that
163793// if you must retry your request, the server will know to ignore the
163794// request if it has already been completed.
163795//
163796// For example, consider a situation where you make an initial request
163797// and the request times out. If you make the request again with the
163798// same request ID, the server can check if original operation with the
163799// same request ID was received, and if so, will ignore the second
163800// request. This prevents clients from accidentally creating duplicate
163801// commitments.
163802//
163803// The request ID must be a valid UUID with the exception that zero UUID
163804// is not supported (00000000-0000-0000-0000-000000000000).
163805func (c *TargetSslProxiesSetSslPolicyCall) RequestId(requestId string) *TargetSslProxiesSetSslPolicyCall {
163806	c.urlParams_.Set("requestId", requestId)
163807	return c
163808}
163809
163810// Fields allows partial responses to be retrieved. See
163811// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163812// for more information.
163813func (c *TargetSslProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslPolicyCall {
163814	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163815	return c
163816}
163817
163818// Context sets the context to be used in this call's Do method. Any
163819// pending HTTP request will be aborted if the provided context is
163820// canceled.
163821func (c *TargetSslProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetSslProxiesSetSslPolicyCall {
163822	c.ctx_ = ctx
163823	return c
163824}
163825
163826// Header returns an http.Header that can be modified by the caller to
163827// add HTTP headers to the request.
163828func (c *TargetSslProxiesSetSslPolicyCall) Header() http.Header {
163829	if c.header_ == nil {
163830		c.header_ = make(http.Header)
163831	}
163832	return c.header_
163833}
163834
163835func (c *TargetSslProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) {
163836	reqHeaders := make(http.Header)
163837	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
163838	for k, v := range c.header_ {
163839		reqHeaders[k] = v
163840	}
163841	reqHeaders.Set("User-Agent", c.s.userAgent())
163842	var body io.Reader = nil
163843	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicyreference)
163844	if err != nil {
163845		return nil, err
163846	}
163847	reqHeaders.Set("Content-Type", "application/json")
163848	c.urlParams_.Set("alt", alt)
163849	c.urlParams_.Set("prettyPrint", "false")
163850	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy")
163851	urls += "?" + c.urlParams_.Encode()
163852	req, err := http.NewRequest("POST", urls, body)
163853	if err != nil {
163854		return nil, err
163855	}
163856	req.Header = reqHeaders
163857	googleapi.Expand(req.URL, map[string]string{
163858		"project":        c.project,
163859		"targetSslProxy": c.targetSslProxy,
163860	})
163861	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163862}
163863
163864// Do executes the "compute.targetSslProxies.setSslPolicy" call.
163865// Exactly one of *Operation or error will be non-nil. Any non-2xx
163866// status code is an error. Response headers are in either
163867// *Operation.ServerResponse.Header or (if a response was returned at
163868// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
163869// to check whether the returned error was because
163870// http.StatusNotModified was returned.
163871func (c *TargetSslProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
163872	gensupport.SetOptions(c.urlParams_, opts...)
163873	res, err := c.doRequest("json")
163874	if res != nil && res.StatusCode == http.StatusNotModified {
163875		if res.Body != nil {
163876			res.Body.Close()
163877		}
163878		return nil, &googleapi.Error{
163879			Code:   res.StatusCode,
163880			Header: res.Header,
163881		}
163882	}
163883	if err != nil {
163884		return nil, err
163885	}
163886	defer googleapi.CloseBody(res)
163887	if err := googleapi.CheckResponse(res); err != nil {
163888		return nil, err
163889	}
163890	ret := &Operation{
163891		ServerResponse: googleapi.ServerResponse{
163892			Header:         res.Header,
163893			HTTPStatusCode: res.StatusCode,
163894		},
163895	}
163896	target := &ret
163897	if err := gensupport.DecodeResponse(target, res); err != nil {
163898		return nil, err
163899	}
163900	return ret, nil
163901	// {
163902	//   "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.",
163903	//   "httpMethod": "POST",
163904	//   "id": "compute.targetSslProxies.setSslPolicy",
163905	//   "parameterOrder": [
163906	//     "project",
163907	//     "targetSslProxy"
163908	//   ],
163909	//   "parameters": {
163910	//     "project": {
163911	//       "description": "Project ID for this request.",
163912	//       "location": "path",
163913	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163914	//       "required": true,
163915	//       "type": "string"
163916	//     },
163917	//     "requestId": {
163918	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
163919	//       "location": "query",
163920	//       "type": "string"
163921	//     },
163922	//     "targetSslProxy": {
163923	//       "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.",
163924	//       "location": "path",
163925	//       "required": true,
163926	//       "type": "string"
163927	//     }
163928	//   },
163929	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy",
163930	//   "request": {
163931	//     "$ref": "SslPolicyReference"
163932	//   },
163933	//   "response": {
163934	//     "$ref": "Operation"
163935	//   },
163936	//   "scopes": [
163937	//     "https://www.googleapis.com/auth/cloud-platform",
163938	//     "https://www.googleapis.com/auth/compute"
163939	//   ]
163940	// }
163941
163942}
163943
163944// method id "compute.targetSslProxies.testIamPermissions":
163945
163946type TargetSslProxiesTestIamPermissionsCall struct {
163947	s                      *Service
163948	project                string
163949	resource               string
163950	testpermissionsrequest *TestPermissionsRequest
163951	urlParams_             gensupport.URLParams
163952	ctx_                   context.Context
163953	header_                http.Header
163954}
163955
163956// TestIamPermissions: Returns permissions that a caller has on the
163957// specified resource.
163958func (r *TargetSslProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetSslProxiesTestIamPermissionsCall {
163959	c := &TargetSslProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163960	c.project = project
163961	c.resource = resource
163962	c.testpermissionsrequest = testpermissionsrequest
163963	return c
163964}
163965
163966// Fields allows partial responses to be retrieved. See
163967// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163968// for more information.
163969func (c *TargetSslProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetSslProxiesTestIamPermissionsCall {
163970	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163971	return c
163972}
163973
163974// Context sets the context to be used in this call's Do method. Any
163975// pending HTTP request will be aborted if the provided context is
163976// canceled.
163977func (c *TargetSslProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetSslProxiesTestIamPermissionsCall {
163978	c.ctx_ = ctx
163979	return c
163980}
163981
163982// Header returns an http.Header that can be modified by the caller to
163983// add HTTP headers to the request.
163984func (c *TargetSslProxiesTestIamPermissionsCall) Header() http.Header {
163985	if c.header_ == nil {
163986		c.header_ = make(http.Header)
163987	}
163988	return c.header_
163989}
163990
163991func (c *TargetSslProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
163992	reqHeaders := make(http.Header)
163993	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
163994	for k, v := range c.header_ {
163995		reqHeaders[k] = v
163996	}
163997	reqHeaders.Set("User-Agent", c.s.userAgent())
163998	var body io.Reader = nil
163999	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
164000	if err != nil {
164001		return nil, err
164002	}
164003	reqHeaders.Set("Content-Type", "application/json")
164004	c.urlParams_.Set("alt", alt)
164005	c.urlParams_.Set("prettyPrint", "false")
164006	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{resource}/testIamPermissions")
164007	urls += "?" + c.urlParams_.Encode()
164008	req, err := http.NewRequest("POST", urls, body)
164009	if err != nil {
164010		return nil, err
164011	}
164012	req.Header = reqHeaders
164013	googleapi.Expand(req.URL, map[string]string{
164014		"project":  c.project,
164015		"resource": c.resource,
164016	})
164017	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164018}
164019
164020// Do executes the "compute.targetSslProxies.testIamPermissions" call.
164021// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
164022// non-2xx status code is an error. Response headers are in either
164023// *TestPermissionsResponse.ServerResponse.Header or (if a response was
164024// returned at all) in error.(*googleapi.Error).Header. Use
164025// googleapi.IsNotModified to check whether the returned error was
164026// because http.StatusNotModified was returned.
164027func (c *TargetSslProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
164028	gensupport.SetOptions(c.urlParams_, opts...)
164029	res, err := c.doRequest("json")
164030	if res != nil && res.StatusCode == http.StatusNotModified {
164031		if res.Body != nil {
164032			res.Body.Close()
164033		}
164034		return nil, &googleapi.Error{
164035			Code:   res.StatusCode,
164036			Header: res.Header,
164037		}
164038	}
164039	if err != nil {
164040		return nil, err
164041	}
164042	defer googleapi.CloseBody(res)
164043	if err := googleapi.CheckResponse(res); err != nil {
164044		return nil, err
164045	}
164046	ret := &TestPermissionsResponse{
164047		ServerResponse: googleapi.ServerResponse{
164048			Header:         res.Header,
164049			HTTPStatusCode: res.StatusCode,
164050		},
164051	}
164052	target := &ret
164053	if err := gensupport.DecodeResponse(target, res); err != nil {
164054		return nil, err
164055	}
164056	return ret, nil
164057	// {
164058	//   "description": "Returns permissions that a caller has on the specified resource.",
164059	//   "httpMethod": "POST",
164060	//   "id": "compute.targetSslProxies.testIamPermissions",
164061	//   "parameterOrder": [
164062	//     "project",
164063	//     "resource"
164064	//   ],
164065	//   "parameters": {
164066	//     "project": {
164067	//       "description": "Project ID for this request.",
164068	//       "location": "path",
164069	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164070	//       "required": true,
164071	//       "type": "string"
164072	//     },
164073	//     "resource": {
164074	//       "description": "Name or id of the resource for this request.",
164075	//       "location": "path",
164076	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
164077	//       "required": true,
164078	//       "type": "string"
164079	//     }
164080	//   },
164081	//   "path": "{project}/global/targetSslProxies/{resource}/testIamPermissions",
164082	//   "request": {
164083	//     "$ref": "TestPermissionsRequest"
164084	//   },
164085	//   "response": {
164086	//     "$ref": "TestPermissionsResponse"
164087	//   },
164088	//   "scopes": [
164089	//     "https://www.googleapis.com/auth/cloud-platform",
164090	//     "https://www.googleapis.com/auth/compute",
164091	//     "https://www.googleapis.com/auth/compute.readonly"
164092	//   ]
164093	// }
164094
164095}
164096
164097// method id "compute.targetTcpProxies.delete":
164098
164099type TargetTcpProxiesDeleteCall struct {
164100	s              *Service
164101	project        string
164102	targetTcpProxy string
164103	urlParams_     gensupport.URLParams
164104	ctx_           context.Context
164105	header_        http.Header
164106}
164107
164108// Delete: Deletes the specified TargetTcpProxy resource.
164109func (r *TargetTcpProxiesService) Delete(project string, targetTcpProxy string) *TargetTcpProxiesDeleteCall {
164110	c := &TargetTcpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164111	c.project = project
164112	c.targetTcpProxy = targetTcpProxy
164113	return c
164114}
164115
164116// RequestId sets the optional parameter "requestId": An optional
164117// request ID to identify requests. Specify a unique request ID so that
164118// if you must retry your request, the server will know to ignore the
164119// request if it has already been completed.
164120//
164121// For example, consider a situation where you make an initial request
164122// and the request times out. If you make the request again with the
164123// same request ID, the server can check if original operation with the
164124// same request ID was received, and if so, will ignore the second
164125// request. This prevents clients from accidentally creating duplicate
164126// commitments.
164127//
164128// The request ID must be a valid UUID with the exception that zero UUID
164129// is not supported (00000000-0000-0000-0000-000000000000).
164130func (c *TargetTcpProxiesDeleteCall) RequestId(requestId string) *TargetTcpProxiesDeleteCall {
164131	c.urlParams_.Set("requestId", requestId)
164132	return c
164133}
164134
164135// Fields allows partial responses to be retrieved. See
164136// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164137// for more information.
164138func (c *TargetTcpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetTcpProxiesDeleteCall {
164139	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164140	return c
164141}
164142
164143// Context sets the context to be used in this call's Do method. Any
164144// pending HTTP request will be aborted if the provided context is
164145// canceled.
164146func (c *TargetTcpProxiesDeleteCall) Context(ctx context.Context) *TargetTcpProxiesDeleteCall {
164147	c.ctx_ = ctx
164148	return c
164149}
164150
164151// Header returns an http.Header that can be modified by the caller to
164152// add HTTP headers to the request.
164153func (c *TargetTcpProxiesDeleteCall) Header() http.Header {
164154	if c.header_ == nil {
164155		c.header_ = make(http.Header)
164156	}
164157	return c.header_
164158}
164159
164160func (c *TargetTcpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
164161	reqHeaders := make(http.Header)
164162	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
164163	for k, v := range c.header_ {
164164		reqHeaders[k] = v
164165	}
164166	reqHeaders.Set("User-Agent", c.s.userAgent())
164167	var body io.Reader = nil
164168	c.urlParams_.Set("alt", alt)
164169	c.urlParams_.Set("prettyPrint", "false")
164170	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}")
164171	urls += "?" + c.urlParams_.Encode()
164172	req, err := http.NewRequest("DELETE", urls, body)
164173	if err != nil {
164174		return nil, err
164175	}
164176	req.Header = reqHeaders
164177	googleapi.Expand(req.URL, map[string]string{
164178		"project":        c.project,
164179		"targetTcpProxy": c.targetTcpProxy,
164180	})
164181	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164182}
164183
164184// Do executes the "compute.targetTcpProxies.delete" call.
164185// Exactly one of *Operation or error will be non-nil. Any non-2xx
164186// status code is an error. Response headers are in either
164187// *Operation.ServerResponse.Header or (if a response was returned at
164188// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
164189// to check whether the returned error was because
164190// http.StatusNotModified was returned.
164191func (c *TargetTcpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
164192	gensupport.SetOptions(c.urlParams_, opts...)
164193	res, err := c.doRequest("json")
164194	if res != nil && res.StatusCode == http.StatusNotModified {
164195		if res.Body != nil {
164196			res.Body.Close()
164197		}
164198		return nil, &googleapi.Error{
164199			Code:   res.StatusCode,
164200			Header: res.Header,
164201		}
164202	}
164203	if err != nil {
164204		return nil, err
164205	}
164206	defer googleapi.CloseBody(res)
164207	if err := googleapi.CheckResponse(res); err != nil {
164208		return nil, err
164209	}
164210	ret := &Operation{
164211		ServerResponse: googleapi.ServerResponse{
164212			Header:         res.Header,
164213			HTTPStatusCode: res.StatusCode,
164214		},
164215	}
164216	target := &ret
164217	if err := gensupport.DecodeResponse(target, res); err != nil {
164218		return nil, err
164219	}
164220	return ret, nil
164221	// {
164222	//   "description": "Deletes the specified TargetTcpProxy resource.",
164223	//   "httpMethod": "DELETE",
164224	//   "id": "compute.targetTcpProxies.delete",
164225	//   "parameterOrder": [
164226	//     "project",
164227	//     "targetTcpProxy"
164228	//   ],
164229	//   "parameters": {
164230	//     "project": {
164231	//       "description": "Project ID for this request.",
164232	//       "location": "path",
164233	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164234	//       "required": true,
164235	//       "type": "string"
164236	//     },
164237	//     "requestId": {
164238	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
164239	//       "location": "query",
164240	//       "type": "string"
164241	//     },
164242	//     "targetTcpProxy": {
164243	//       "description": "Name of the TargetTcpProxy resource to delete.",
164244	//       "location": "path",
164245	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
164246	//       "required": true,
164247	//       "type": "string"
164248	//     }
164249	//   },
164250	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}",
164251	//   "response": {
164252	//     "$ref": "Operation"
164253	//   },
164254	//   "scopes": [
164255	//     "https://www.googleapis.com/auth/cloud-platform",
164256	//     "https://www.googleapis.com/auth/compute"
164257	//   ]
164258	// }
164259
164260}
164261
164262// method id "compute.targetTcpProxies.get":
164263
164264type TargetTcpProxiesGetCall struct {
164265	s              *Service
164266	project        string
164267	targetTcpProxy string
164268	urlParams_     gensupport.URLParams
164269	ifNoneMatch_   string
164270	ctx_           context.Context
164271	header_        http.Header
164272}
164273
164274// Get: Returns the specified TargetTcpProxy resource. Gets a list of
164275// available target TCP proxies by making a list() request.
164276func (r *TargetTcpProxiesService) Get(project string, targetTcpProxy string) *TargetTcpProxiesGetCall {
164277	c := &TargetTcpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164278	c.project = project
164279	c.targetTcpProxy = targetTcpProxy
164280	return c
164281}
164282
164283// Fields allows partial responses to be retrieved. See
164284// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164285// for more information.
164286func (c *TargetTcpProxiesGetCall) Fields(s ...googleapi.Field) *TargetTcpProxiesGetCall {
164287	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164288	return c
164289}
164290
164291// IfNoneMatch sets the optional parameter which makes the operation
164292// fail if the object's ETag matches the given value. This is useful for
164293// getting updates only after the object has changed since the last
164294// request. Use googleapi.IsNotModified to check whether the response
164295// error from Do is the result of In-None-Match.
164296func (c *TargetTcpProxiesGetCall) IfNoneMatch(entityTag string) *TargetTcpProxiesGetCall {
164297	c.ifNoneMatch_ = entityTag
164298	return c
164299}
164300
164301// Context sets the context to be used in this call's Do method. Any
164302// pending HTTP request will be aborted if the provided context is
164303// canceled.
164304func (c *TargetTcpProxiesGetCall) Context(ctx context.Context) *TargetTcpProxiesGetCall {
164305	c.ctx_ = ctx
164306	return c
164307}
164308
164309// Header returns an http.Header that can be modified by the caller to
164310// add HTTP headers to the request.
164311func (c *TargetTcpProxiesGetCall) Header() http.Header {
164312	if c.header_ == nil {
164313		c.header_ = make(http.Header)
164314	}
164315	return c.header_
164316}
164317
164318func (c *TargetTcpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
164319	reqHeaders := make(http.Header)
164320	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
164321	for k, v := range c.header_ {
164322		reqHeaders[k] = v
164323	}
164324	reqHeaders.Set("User-Agent", c.s.userAgent())
164325	if c.ifNoneMatch_ != "" {
164326		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
164327	}
164328	var body io.Reader = nil
164329	c.urlParams_.Set("alt", alt)
164330	c.urlParams_.Set("prettyPrint", "false")
164331	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}")
164332	urls += "?" + c.urlParams_.Encode()
164333	req, err := http.NewRequest("GET", urls, body)
164334	if err != nil {
164335		return nil, err
164336	}
164337	req.Header = reqHeaders
164338	googleapi.Expand(req.URL, map[string]string{
164339		"project":        c.project,
164340		"targetTcpProxy": c.targetTcpProxy,
164341	})
164342	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164343}
164344
164345// Do executes the "compute.targetTcpProxies.get" call.
164346// Exactly one of *TargetTcpProxy or error will be non-nil. Any non-2xx
164347// status code is an error. Response headers are in either
164348// *TargetTcpProxy.ServerResponse.Header or (if a response was returned
164349// at all) in error.(*googleapi.Error).Header. Use
164350// googleapi.IsNotModified to check whether the returned error was
164351// because http.StatusNotModified was returned.
164352func (c *TargetTcpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxy, error) {
164353	gensupport.SetOptions(c.urlParams_, opts...)
164354	res, err := c.doRequest("json")
164355	if res != nil && res.StatusCode == http.StatusNotModified {
164356		if res.Body != nil {
164357			res.Body.Close()
164358		}
164359		return nil, &googleapi.Error{
164360			Code:   res.StatusCode,
164361			Header: res.Header,
164362		}
164363	}
164364	if err != nil {
164365		return nil, err
164366	}
164367	defer googleapi.CloseBody(res)
164368	if err := googleapi.CheckResponse(res); err != nil {
164369		return nil, err
164370	}
164371	ret := &TargetTcpProxy{
164372		ServerResponse: googleapi.ServerResponse{
164373			Header:         res.Header,
164374			HTTPStatusCode: res.StatusCode,
164375		},
164376	}
164377	target := &ret
164378	if err := gensupport.DecodeResponse(target, res); err != nil {
164379		return nil, err
164380	}
164381	return ret, nil
164382	// {
164383	//   "description": "Returns the specified TargetTcpProxy resource. Gets a list of available target TCP proxies by making a list() request.",
164384	//   "httpMethod": "GET",
164385	//   "id": "compute.targetTcpProxies.get",
164386	//   "parameterOrder": [
164387	//     "project",
164388	//     "targetTcpProxy"
164389	//   ],
164390	//   "parameters": {
164391	//     "project": {
164392	//       "description": "Project ID for this request.",
164393	//       "location": "path",
164394	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164395	//       "required": true,
164396	//       "type": "string"
164397	//     },
164398	//     "targetTcpProxy": {
164399	//       "description": "Name of the TargetTcpProxy resource to return.",
164400	//       "location": "path",
164401	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
164402	//       "required": true,
164403	//       "type": "string"
164404	//     }
164405	//   },
164406	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}",
164407	//   "response": {
164408	//     "$ref": "TargetTcpProxy"
164409	//   },
164410	//   "scopes": [
164411	//     "https://www.googleapis.com/auth/cloud-platform",
164412	//     "https://www.googleapis.com/auth/compute",
164413	//     "https://www.googleapis.com/auth/compute.readonly"
164414	//   ]
164415	// }
164416
164417}
164418
164419// method id "compute.targetTcpProxies.insert":
164420
164421type TargetTcpProxiesInsertCall struct {
164422	s              *Service
164423	project        string
164424	targettcpproxy *TargetTcpProxy
164425	urlParams_     gensupport.URLParams
164426	ctx_           context.Context
164427	header_        http.Header
164428}
164429
164430// Insert: Creates a TargetTcpProxy resource in the specified project
164431// using the data included in the request.
164432func (r *TargetTcpProxiesService) Insert(project string, targettcpproxy *TargetTcpProxy) *TargetTcpProxiesInsertCall {
164433	c := &TargetTcpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164434	c.project = project
164435	c.targettcpproxy = targettcpproxy
164436	return c
164437}
164438
164439// RequestId sets the optional parameter "requestId": An optional
164440// request ID to identify requests. Specify a unique request ID so that
164441// if you must retry your request, the server will know to ignore the
164442// request if it has already been completed.
164443//
164444// For example, consider a situation where you make an initial request
164445// and the request times out. If you make the request again with the
164446// same request ID, the server can check if original operation with the
164447// same request ID was received, and if so, will ignore the second
164448// request. This prevents clients from accidentally creating duplicate
164449// commitments.
164450//
164451// The request ID must be a valid UUID with the exception that zero UUID
164452// is not supported (00000000-0000-0000-0000-000000000000).
164453func (c *TargetTcpProxiesInsertCall) RequestId(requestId string) *TargetTcpProxiesInsertCall {
164454	c.urlParams_.Set("requestId", requestId)
164455	return c
164456}
164457
164458// Fields allows partial responses to be retrieved. See
164459// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164460// for more information.
164461func (c *TargetTcpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetTcpProxiesInsertCall {
164462	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164463	return c
164464}
164465
164466// Context sets the context to be used in this call's Do method. Any
164467// pending HTTP request will be aborted if the provided context is
164468// canceled.
164469func (c *TargetTcpProxiesInsertCall) Context(ctx context.Context) *TargetTcpProxiesInsertCall {
164470	c.ctx_ = ctx
164471	return c
164472}
164473
164474// Header returns an http.Header that can be modified by the caller to
164475// add HTTP headers to the request.
164476func (c *TargetTcpProxiesInsertCall) Header() http.Header {
164477	if c.header_ == nil {
164478		c.header_ = make(http.Header)
164479	}
164480	return c.header_
164481}
164482
164483func (c *TargetTcpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
164484	reqHeaders := make(http.Header)
164485	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
164486	for k, v := range c.header_ {
164487		reqHeaders[k] = v
164488	}
164489	reqHeaders.Set("User-Agent", c.s.userAgent())
164490	var body io.Reader = nil
164491	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxy)
164492	if err != nil {
164493		return nil, err
164494	}
164495	reqHeaders.Set("Content-Type", "application/json")
164496	c.urlParams_.Set("alt", alt)
164497	c.urlParams_.Set("prettyPrint", "false")
164498	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies")
164499	urls += "?" + c.urlParams_.Encode()
164500	req, err := http.NewRequest("POST", urls, body)
164501	if err != nil {
164502		return nil, err
164503	}
164504	req.Header = reqHeaders
164505	googleapi.Expand(req.URL, map[string]string{
164506		"project": c.project,
164507	})
164508	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164509}
164510
164511// Do executes the "compute.targetTcpProxies.insert" call.
164512// Exactly one of *Operation or error will be non-nil. Any non-2xx
164513// status code is an error. Response headers are in either
164514// *Operation.ServerResponse.Header or (if a response was returned at
164515// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
164516// to check whether the returned error was because
164517// http.StatusNotModified was returned.
164518func (c *TargetTcpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
164519	gensupport.SetOptions(c.urlParams_, opts...)
164520	res, err := c.doRequest("json")
164521	if res != nil && res.StatusCode == http.StatusNotModified {
164522		if res.Body != nil {
164523			res.Body.Close()
164524		}
164525		return nil, &googleapi.Error{
164526			Code:   res.StatusCode,
164527			Header: res.Header,
164528		}
164529	}
164530	if err != nil {
164531		return nil, err
164532	}
164533	defer googleapi.CloseBody(res)
164534	if err := googleapi.CheckResponse(res); err != nil {
164535		return nil, err
164536	}
164537	ret := &Operation{
164538		ServerResponse: googleapi.ServerResponse{
164539			Header:         res.Header,
164540			HTTPStatusCode: res.StatusCode,
164541		},
164542	}
164543	target := &ret
164544	if err := gensupport.DecodeResponse(target, res); err != nil {
164545		return nil, err
164546	}
164547	return ret, nil
164548	// {
164549	//   "description": "Creates a TargetTcpProxy resource in the specified project using the data included in the request.",
164550	//   "httpMethod": "POST",
164551	//   "id": "compute.targetTcpProxies.insert",
164552	//   "parameterOrder": [
164553	//     "project"
164554	//   ],
164555	//   "parameters": {
164556	//     "project": {
164557	//       "description": "Project ID for this request.",
164558	//       "location": "path",
164559	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164560	//       "required": true,
164561	//       "type": "string"
164562	//     },
164563	//     "requestId": {
164564	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
164565	//       "location": "query",
164566	//       "type": "string"
164567	//     }
164568	//   },
164569	//   "path": "{project}/global/targetTcpProxies",
164570	//   "request": {
164571	//     "$ref": "TargetTcpProxy"
164572	//   },
164573	//   "response": {
164574	//     "$ref": "Operation"
164575	//   },
164576	//   "scopes": [
164577	//     "https://www.googleapis.com/auth/cloud-platform",
164578	//     "https://www.googleapis.com/auth/compute"
164579	//   ]
164580	// }
164581
164582}
164583
164584// method id "compute.targetTcpProxies.list":
164585
164586type TargetTcpProxiesListCall struct {
164587	s            *Service
164588	project      string
164589	urlParams_   gensupport.URLParams
164590	ifNoneMatch_ string
164591	ctx_         context.Context
164592	header_      http.Header
164593}
164594
164595// List: Retrieves the list of TargetTcpProxy resources available to the
164596// specified project.
164597func (r *TargetTcpProxiesService) List(project string) *TargetTcpProxiesListCall {
164598	c := &TargetTcpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164599	c.project = project
164600	return c
164601}
164602
164603// Filter sets the optional parameter "filter": A filter expression that
164604// filters resources listed in the response. The expression must specify
164605// the field name, a comparison operator, and the value that you want to
164606// use for filtering. The value must be a string, a number, or a
164607// boolean. The comparison operator must be either =, !=, >, or <.
164608//
164609// For example, if you are filtering Compute Engine instances, you can
164610// exclude instances named example-instance by specifying name !=
164611// example-instance.
164612//
164613// You can also filter nested fields. For example, you could specify
164614// scheduling.automaticRestart = false to include instances only if they
164615// are not scheduled for automatic restarts. You can use filtering on
164616// nested fields to filter based on resource labels.
164617//
164618// To filter on multiple expressions, provide each separate expression
164619// within parentheses. For example, (scheduling.automaticRestart = true)
164620// (cpuPlatform = "Intel Skylake"). By default, each expression is an
164621// AND expression. However, you can include AND and OR expressions
164622// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
164623// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
164624// true).
164625func (c *TargetTcpProxiesListCall) Filter(filter string) *TargetTcpProxiesListCall {
164626	c.urlParams_.Set("filter", filter)
164627	return c
164628}
164629
164630// MaxResults sets the optional parameter "maxResults": The maximum
164631// number of results per page that should be returned. If the number of
164632// available results is larger than maxResults, Compute Engine returns a
164633// nextPageToken that can be used to get the next page of results in
164634// subsequent list requests. Acceptable values are 0 to 500, inclusive.
164635// (Default: 500)
164636func (c *TargetTcpProxiesListCall) MaxResults(maxResults int64) *TargetTcpProxiesListCall {
164637	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
164638	return c
164639}
164640
164641// OrderBy sets the optional parameter "orderBy": Sorts list results by
164642// a certain order. By default, results are returned in alphanumerical
164643// order based on the resource name.
164644//
164645// You can also sort results in descending order based on the creation
164646// timestamp using orderBy="creationTimestamp desc". This sorts results
164647// based on the creationTimestamp field in reverse chronological order
164648// (newest result first). Use this to sort resources like operations so
164649// that the newest operation is returned first.
164650//
164651// Currently, only sorting by name or creationTimestamp desc is
164652// supported.
164653func (c *TargetTcpProxiesListCall) OrderBy(orderBy string) *TargetTcpProxiesListCall {
164654	c.urlParams_.Set("orderBy", orderBy)
164655	return c
164656}
164657
164658// PageToken sets the optional parameter "pageToken": Specifies a page
164659// token to use. Set pageToken to the nextPageToken returned by a
164660// previous list request to get the next page of results.
164661func (c *TargetTcpProxiesListCall) PageToken(pageToken string) *TargetTcpProxiesListCall {
164662	c.urlParams_.Set("pageToken", pageToken)
164663	return c
164664}
164665
164666// Fields allows partial responses to be retrieved. See
164667// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164668// for more information.
164669func (c *TargetTcpProxiesListCall) Fields(s ...googleapi.Field) *TargetTcpProxiesListCall {
164670	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164671	return c
164672}
164673
164674// IfNoneMatch sets the optional parameter which makes the operation
164675// fail if the object's ETag matches the given value. This is useful for
164676// getting updates only after the object has changed since the last
164677// request. Use googleapi.IsNotModified to check whether the response
164678// error from Do is the result of In-None-Match.
164679func (c *TargetTcpProxiesListCall) IfNoneMatch(entityTag string) *TargetTcpProxiesListCall {
164680	c.ifNoneMatch_ = entityTag
164681	return c
164682}
164683
164684// Context sets the context to be used in this call's Do method. Any
164685// pending HTTP request will be aborted if the provided context is
164686// canceled.
164687func (c *TargetTcpProxiesListCall) Context(ctx context.Context) *TargetTcpProxiesListCall {
164688	c.ctx_ = ctx
164689	return c
164690}
164691
164692// Header returns an http.Header that can be modified by the caller to
164693// add HTTP headers to the request.
164694func (c *TargetTcpProxiesListCall) Header() http.Header {
164695	if c.header_ == nil {
164696		c.header_ = make(http.Header)
164697	}
164698	return c.header_
164699}
164700
164701func (c *TargetTcpProxiesListCall) doRequest(alt string) (*http.Response, error) {
164702	reqHeaders := make(http.Header)
164703	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
164704	for k, v := range c.header_ {
164705		reqHeaders[k] = v
164706	}
164707	reqHeaders.Set("User-Agent", c.s.userAgent())
164708	if c.ifNoneMatch_ != "" {
164709		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
164710	}
164711	var body io.Reader = nil
164712	c.urlParams_.Set("alt", alt)
164713	c.urlParams_.Set("prettyPrint", "false")
164714	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies")
164715	urls += "?" + c.urlParams_.Encode()
164716	req, err := http.NewRequest("GET", urls, body)
164717	if err != nil {
164718		return nil, err
164719	}
164720	req.Header = reqHeaders
164721	googleapi.Expand(req.URL, map[string]string{
164722		"project": c.project,
164723	})
164724	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164725}
164726
164727// Do executes the "compute.targetTcpProxies.list" call.
164728// Exactly one of *TargetTcpProxyList or error will be non-nil. Any
164729// non-2xx status code is an error. Response headers are in either
164730// *TargetTcpProxyList.ServerResponse.Header or (if a response was
164731// returned at all) in error.(*googleapi.Error).Header. Use
164732// googleapi.IsNotModified to check whether the returned error was
164733// because http.StatusNotModified was returned.
164734func (c *TargetTcpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxyList, error) {
164735	gensupport.SetOptions(c.urlParams_, opts...)
164736	res, err := c.doRequest("json")
164737	if res != nil && res.StatusCode == http.StatusNotModified {
164738		if res.Body != nil {
164739			res.Body.Close()
164740		}
164741		return nil, &googleapi.Error{
164742			Code:   res.StatusCode,
164743			Header: res.Header,
164744		}
164745	}
164746	if err != nil {
164747		return nil, err
164748	}
164749	defer googleapi.CloseBody(res)
164750	if err := googleapi.CheckResponse(res); err != nil {
164751		return nil, err
164752	}
164753	ret := &TargetTcpProxyList{
164754		ServerResponse: googleapi.ServerResponse{
164755			Header:         res.Header,
164756			HTTPStatusCode: res.StatusCode,
164757		},
164758	}
164759	target := &ret
164760	if err := gensupport.DecodeResponse(target, res); err != nil {
164761		return nil, err
164762	}
164763	return ret, nil
164764	// {
164765	//   "description": "Retrieves the list of TargetTcpProxy resources available to the specified project.",
164766	//   "httpMethod": "GET",
164767	//   "id": "compute.targetTcpProxies.list",
164768	//   "parameterOrder": [
164769	//     "project"
164770	//   ],
164771	//   "parameters": {
164772	//     "filter": {
164773	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
164774	//       "location": "query",
164775	//       "type": "string"
164776	//     },
164777	//     "maxResults": {
164778	//       "default": "500",
164779	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
164780	//       "format": "uint32",
164781	//       "location": "query",
164782	//       "minimum": "0",
164783	//       "type": "integer"
164784	//     },
164785	//     "orderBy": {
164786	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
164787	//       "location": "query",
164788	//       "type": "string"
164789	//     },
164790	//     "pageToken": {
164791	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
164792	//       "location": "query",
164793	//       "type": "string"
164794	//     },
164795	//     "project": {
164796	//       "description": "Project ID for this request.",
164797	//       "location": "path",
164798	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164799	//       "required": true,
164800	//       "type": "string"
164801	//     }
164802	//   },
164803	//   "path": "{project}/global/targetTcpProxies",
164804	//   "response": {
164805	//     "$ref": "TargetTcpProxyList"
164806	//   },
164807	//   "scopes": [
164808	//     "https://www.googleapis.com/auth/cloud-platform",
164809	//     "https://www.googleapis.com/auth/compute",
164810	//     "https://www.googleapis.com/auth/compute.readonly"
164811	//   ]
164812	// }
164813
164814}
164815
164816// Pages invokes f for each page of results.
164817// A non-nil error returned from f will halt the iteration.
164818// The provided context supersedes any context provided to the Context method.
164819func (c *TargetTcpProxiesListCall) Pages(ctx context.Context, f func(*TargetTcpProxyList) error) error {
164820	c.ctx_ = ctx
164821	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
164822	for {
164823		x, err := c.Do()
164824		if err != nil {
164825			return err
164826		}
164827		if err := f(x); err != nil {
164828			return err
164829		}
164830		if x.NextPageToken == "" {
164831			return nil
164832		}
164833		c.PageToken(x.NextPageToken)
164834	}
164835}
164836
164837// method id "compute.targetTcpProxies.setBackendService":
164838
164839type TargetTcpProxiesSetBackendServiceCall struct {
164840	s                                        *Service
164841	project                                  string
164842	targetTcpProxy                           string
164843	targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest
164844	urlParams_                               gensupport.URLParams
164845	ctx_                                     context.Context
164846	header_                                  http.Header
164847}
164848
164849// SetBackendService: Changes the BackendService for TargetTcpProxy.
164850func (r *TargetTcpProxiesService) SetBackendService(project string, targetTcpProxy string, targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest) *TargetTcpProxiesSetBackendServiceCall {
164851	c := &TargetTcpProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164852	c.project = project
164853	c.targetTcpProxy = targetTcpProxy
164854	c.targettcpproxiessetbackendservicerequest = targettcpproxiessetbackendservicerequest
164855	return c
164856}
164857
164858// RequestId sets the optional parameter "requestId": An optional
164859// request ID to identify requests. Specify a unique request ID so that
164860// if you must retry your request, the server will know to ignore the
164861// request if it has already been completed.
164862//
164863// For example, consider a situation where you make an initial request
164864// and the request times out. If you make the request again with the
164865// same request ID, the server can check if original operation with the
164866// same request ID was received, and if so, will ignore the second
164867// request. This prevents clients from accidentally creating duplicate
164868// commitments.
164869//
164870// The request ID must be a valid UUID with the exception that zero UUID
164871// is not supported (00000000-0000-0000-0000-000000000000).
164872func (c *TargetTcpProxiesSetBackendServiceCall) RequestId(requestId string) *TargetTcpProxiesSetBackendServiceCall {
164873	c.urlParams_.Set("requestId", requestId)
164874	return c
164875}
164876
164877// Fields allows partial responses to be retrieved. See
164878// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164879// for more information.
164880func (c *TargetTcpProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetBackendServiceCall {
164881	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164882	return c
164883}
164884
164885// Context sets the context to be used in this call's Do method. Any
164886// pending HTTP request will be aborted if the provided context is
164887// canceled.
164888func (c *TargetTcpProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetTcpProxiesSetBackendServiceCall {
164889	c.ctx_ = ctx
164890	return c
164891}
164892
164893// Header returns an http.Header that can be modified by the caller to
164894// add HTTP headers to the request.
164895func (c *TargetTcpProxiesSetBackendServiceCall) Header() http.Header {
164896	if c.header_ == nil {
164897		c.header_ = make(http.Header)
164898	}
164899	return c.header_
164900}
164901
164902func (c *TargetTcpProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) {
164903	reqHeaders := make(http.Header)
164904	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
164905	for k, v := range c.header_ {
164906		reqHeaders[k] = v
164907	}
164908	reqHeaders.Set("User-Agent", c.s.userAgent())
164909	var body io.Reader = nil
164910	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetbackendservicerequest)
164911	if err != nil {
164912		return nil, err
164913	}
164914	reqHeaders.Set("Content-Type", "application/json")
164915	c.urlParams_.Set("alt", alt)
164916	c.urlParams_.Set("prettyPrint", "false")
164917	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService")
164918	urls += "?" + c.urlParams_.Encode()
164919	req, err := http.NewRequest("POST", urls, body)
164920	if err != nil {
164921		return nil, err
164922	}
164923	req.Header = reqHeaders
164924	googleapi.Expand(req.URL, map[string]string{
164925		"project":        c.project,
164926		"targetTcpProxy": c.targetTcpProxy,
164927	})
164928	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164929}
164930
164931// Do executes the "compute.targetTcpProxies.setBackendService" call.
164932// Exactly one of *Operation or error will be non-nil. Any non-2xx
164933// status code is an error. Response headers are in either
164934// *Operation.ServerResponse.Header or (if a response was returned at
164935// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
164936// to check whether the returned error was because
164937// http.StatusNotModified was returned.
164938func (c *TargetTcpProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
164939	gensupport.SetOptions(c.urlParams_, opts...)
164940	res, err := c.doRequest("json")
164941	if res != nil && res.StatusCode == http.StatusNotModified {
164942		if res.Body != nil {
164943			res.Body.Close()
164944		}
164945		return nil, &googleapi.Error{
164946			Code:   res.StatusCode,
164947			Header: res.Header,
164948		}
164949	}
164950	if err != nil {
164951		return nil, err
164952	}
164953	defer googleapi.CloseBody(res)
164954	if err := googleapi.CheckResponse(res); err != nil {
164955		return nil, err
164956	}
164957	ret := &Operation{
164958		ServerResponse: googleapi.ServerResponse{
164959			Header:         res.Header,
164960			HTTPStatusCode: res.StatusCode,
164961		},
164962	}
164963	target := &ret
164964	if err := gensupport.DecodeResponse(target, res); err != nil {
164965		return nil, err
164966	}
164967	return ret, nil
164968	// {
164969	//   "description": "Changes the BackendService for TargetTcpProxy.",
164970	//   "httpMethod": "POST",
164971	//   "id": "compute.targetTcpProxies.setBackendService",
164972	//   "parameterOrder": [
164973	//     "project",
164974	//     "targetTcpProxy"
164975	//   ],
164976	//   "parameters": {
164977	//     "project": {
164978	//       "description": "Project ID for this request.",
164979	//       "location": "path",
164980	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164981	//       "required": true,
164982	//       "type": "string"
164983	//     },
164984	//     "requestId": {
164985	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
164986	//       "location": "query",
164987	//       "type": "string"
164988	//     },
164989	//     "targetTcpProxy": {
164990	//       "description": "Name of the TargetTcpProxy resource whose BackendService resource is to be set.",
164991	//       "location": "path",
164992	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
164993	//       "required": true,
164994	//       "type": "string"
164995	//     }
164996	//   },
164997	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService",
164998	//   "request": {
164999	//     "$ref": "TargetTcpProxiesSetBackendServiceRequest"
165000	//   },
165001	//   "response": {
165002	//     "$ref": "Operation"
165003	//   },
165004	//   "scopes": [
165005	//     "https://www.googleapis.com/auth/cloud-platform",
165006	//     "https://www.googleapis.com/auth/compute"
165007	//   ]
165008	// }
165009
165010}
165011
165012// method id "compute.targetTcpProxies.setProxyHeader":
165013
165014type TargetTcpProxiesSetProxyHeaderCall struct {
165015	s                                     *Service
165016	project                               string
165017	targetTcpProxy                        string
165018	targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest
165019	urlParams_                            gensupport.URLParams
165020	ctx_                                  context.Context
165021	header_                               http.Header
165022}
165023
165024// SetProxyHeader: Changes the ProxyHeaderType for TargetTcpProxy.
165025func (r *TargetTcpProxiesService) SetProxyHeader(project string, targetTcpProxy string, targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest) *TargetTcpProxiesSetProxyHeaderCall {
165026	c := &TargetTcpProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165027	c.project = project
165028	c.targetTcpProxy = targetTcpProxy
165029	c.targettcpproxiessetproxyheaderrequest = targettcpproxiessetproxyheaderrequest
165030	return c
165031}
165032
165033// RequestId sets the optional parameter "requestId": An optional
165034// request ID to identify requests. Specify a unique request ID so that
165035// if you must retry your request, the server will know to ignore the
165036// request if it has already been completed.
165037//
165038// For example, consider a situation where you make an initial request
165039// and the request times out. If you make the request again with the
165040// same request ID, the server can check if original operation with the
165041// same request ID was received, and if so, will ignore the second
165042// request. This prevents clients from accidentally creating duplicate
165043// commitments.
165044//
165045// The request ID must be a valid UUID with the exception that zero UUID
165046// is not supported (00000000-0000-0000-0000-000000000000).
165047func (c *TargetTcpProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetTcpProxiesSetProxyHeaderCall {
165048	c.urlParams_.Set("requestId", requestId)
165049	return c
165050}
165051
165052// Fields allows partial responses to be retrieved. See
165053// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165054// for more information.
165055func (c *TargetTcpProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetProxyHeaderCall {
165056	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165057	return c
165058}
165059
165060// Context sets the context to be used in this call's Do method. Any
165061// pending HTTP request will be aborted if the provided context is
165062// canceled.
165063func (c *TargetTcpProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetTcpProxiesSetProxyHeaderCall {
165064	c.ctx_ = ctx
165065	return c
165066}
165067
165068// Header returns an http.Header that can be modified by the caller to
165069// add HTTP headers to the request.
165070func (c *TargetTcpProxiesSetProxyHeaderCall) Header() http.Header {
165071	if c.header_ == nil {
165072		c.header_ = make(http.Header)
165073	}
165074	return c.header_
165075}
165076
165077func (c *TargetTcpProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) {
165078	reqHeaders := make(http.Header)
165079	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
165080	for k, v := range c.header_ {
165081		reqHeaders[k] = v
165082	}
165083	reqHeaders.Set("User-Agent", c.s.userAgent())
165084	var body io.Reader = nil
165085	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetproxyheaderrequest)
165086	if err != nil {
165087		return nil, err
165088	}
165089	reqHeaders.Set("Content-Type", "application/json")
165090	c.urlParams_.Set("alt", alt)
165091	c.urlParams_.Set("prettyPrint", "false")
165092	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader")
165093	urls += "?" + c.urlParams_.Encode()
165094	req, err := http.NewRequest("POST", urls, body)
165095	if err != nil {
165096		return nil, err
165097	}
165098	req.Header = reqHeaders
165099	googleapi.Expand(req.URL, map[string]string{
165100		"project":        c.project,
165101		"targetTcpProxy": c.targetTcpProxy,
165102	})
165103	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165104}
165105
165106// Do executes the "compute.targetTcpProxies.setProxyHeader" call.
165107// Exactly one of *Operation or error will be non-nil. Any non-2xx
165108// status code is an error. Response headers are in either
165109// *Operation.ServerResponse.Header or (if a response was returned at
165110// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
165111// to check whether the returned error was because
165112// http.StatusNotModified was returned.
165113func (c *TargetTcpProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
165114	gensupport.SetOptions(c.urlParams_, opts...)
165115	res, err := c.doRequest("json")
165116	if res != nil && res.StatusCode == http.StatusNotModified {
165117		if res.Body != nil {
165118			res.Body.Close()
165119		}
165120		return nil, &googleapi.Error{
165121			Code:   res.StatusCode,
165122			Header: res.Header,
165123		}
165124	}
165125	if err != nil {
165126		return nil, err
165127	}
165128	defer googleapi.CloseBody(res)
165129	if err := googleapi.CheckResponse(res); err != nil {
165130		return nil, err
165131	}
165132	ret := &Operation{
165133		ServerResponse: googleapi.ServerResponse{
165134			Header:         res.Header,
165135			HTTPStatusCode: res.StatusCode,
165136		},
165137	}
165138	target := &ret
165139	if err := gensupport.DecodeResponse(target, res); err != nil {
165140		return nil, err
165141	}
165142	return ret, nil
165143	// {
165144	//   "description": "Changes the ProxyHeaderType for TargetTcpProxy.",
165145	//   "httpMethod": "POST",
165146	//   "id": "compute.targetTcpProxies.setProxyHeader",
165147	//   "parameterOrder": [
165148	//     "project",
165149	//     "targetTcpProxy"
165150	//   ],
165151	//   "parameters": {
165152	//     "project": {
165153	//       "description": "Project ID for this request.",
165154	//       "location": "path",
165155	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165156	//       "required": true,
165157	//       "type": "string"
165158	//     },
165159	//     "requestId": {
165160	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
165161	//       "location": "query",
165162	//       "type": "string"
165163	//     },
165164	//     "targetTcpProxy": {
165165	//       "description": "Name of the TargetTcpProxy resource whose ProxyHeader is to be set.",
165166	//       "location": "path",
165167	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
165168	//       "required": true,
165169	//       "type": "string"
165170	//     }
165171	//   },
165172	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader",
165173	//   "request": {
165174	//     "$ref": "TargetTcpProxiesSetProxyHeaderRequest"
165175	//   },
165176	//   "response": {
165177	//     "$ref": "Operation"
165178	//   },
165179	//   "scopes": [
165180	//     "https://www.googleapis.com/auth/cloud-platform",
165181	//     "https://www.googleapis.com/auth/compute"
165182	//   ]
165183	// }
165184
165185}
165186
165187// method id "compute.targetTcpProxies.testIamPermissions":
165188
165189type TargetTcpProxiesTestIamPermissionsCall struct {
165190	s                      *Service
165191	project                string
165192	resource               string
165193	testpermissionsrequest *TestPermissionsRequest
165194	urlParams_             gensupport.URLParams
165195	ctx_                   context.Context
165196	header_                http.Header
165197}
165198
165199// TestIamPermissions: Returns permissions that a caller has on the
165200// specified resource.
165201func (r *TargetTcpProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetTcpProxiesTestIamPermissionsCall {
165202	c := &TargetTcpProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165203	c.project = project
165204	c.resource = resource
165205	c.testpermissionsrequest = testpermissionsrequest
165206	return c
165207}
165208
165209// Fields allows partial responses to be retrieved. See
165210// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165211// for more information.
165212func (c *TargetTcpProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetTcpProxiesTestIamPermissionsCall {
165213	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165214	return c
165215}
165216
165217// Context sets the context to be used in this call's Do method. Any
165218// pending HTTP request will be aborted if the provided context is
165219// canceled.
165220func (c *TargetTcpProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetTcpProxiesTestIamPermissionsCall {
165221	c.ctx_ = ctx
165222	return c
165223}
165224
165225// Header returns an http.Header that can be modified by the caller to
165226// add HTTP headers to the request.
165227func (c *TargetTcpProxiesTestIamPermissionsCall) Header() http.Header {
165228	if c.header_ == nil {
165229		c.header_ = make(http.Header)
165230	}
165231	return c.header_
165232}
165233
165234func (c *TargetTcpProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
165235	reqHeaders := make(http.Header)
165236	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
165237	for k, v := range c.header_ {
165238		reqHeaders[k] = v
165239	}
165240	reqHeaders.Set("User-Agent", c.s.userAgent())
165241	var body io.Reader = nil
165242	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
165243	if err != nil {
165244		return nil, err
165245	}
165246	reqHeaders.Set("Content-Type", "application/json")
165247	c.urlParams_.Set("alt", alt)
165248	c.urlParams_.Set("prettyPrint", "false")
165249	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{resource}/testIamPermissions")
165250	urls += "?" + c.urlParams_.Encode()
165251	req, err := http.NewRequest("POST", urls, body)
165252	if err != nil {
165253		return nil, err
165254	}
165255	req.Header = reqHeaders
165256	googleapi.Expand(req.URL, map[string]string{
165257		"project":  c.project,
165258		"resource": c.resource,
165259	})
165260	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165261}
165262
165263// Do executes the "compute.targetTcpProxies.testIamPermissions" call.
165264// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
165265// non-2xx status code is an error. Response headers are in either
165266// *TestPermissionsResponse.ServerResponse.Header or (if a response was
165267// returned at all) in error.(*googleapi.Error).Header. Use
165268// googleapi.IsNotModified to check whether the returned error was
165269// because http.StatusNotModified was returned.
165270func (c *TargetTcpProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
165271	gensupport.SetOptions(c.urlParams_, opts...)
165272	res, err := c.doRequest("json")
165273	if res != nil && res.StatusCode == http.StatusNotModified {
165274		if res.Body != nil {
165275			res.Body.Close()
165276		}
165277		return nil, &googleapi.Error{
165278			Code:   res.StatusCode,
165279			Header: res.Header,
165280		}
165281	}
165282	if err != nil {
165283		return nil, err
165284	}
165285	defer googleapi.CloseBody(res)
165286	if err := googleapi.CheckResponse(res); err != nil {
165287		return nil, err
165288	}
165289	ret := &TestPermissionsResponse{
165290		ServerResponse: googleapi.ServerResponse{
165291			Header:         res.Header,
165292			HTTPStatusCode: res.StatusCode,
165293		},
165294	}
165295	target := &ret
165296	if err := gensupport.DecodeResponse(target, res); err != nil {
165297		return nil, err
165298	}
165299	return ret, nil
165300	// {
165301	//   "description": "Returns permissions that a caller has on the specified resource.",
165302	//   "httpMethod": "POST",
165303	//   "id": "compute.targetTcpProxies.testIamPermissions",
165304	//   "parameterOrder": [
165305	//     "project",
165306	//     "resource"
165307	//   ],
165308	//   "parameters": {
165309	//     "project": {
165310	//       "description": "Project ID for this request.",
165311	//       "location": "path",
165312	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165313	//       "required": true,
165314	//       "type": "string"
165315	//     },
165316	//     "resource": {
165317	//       "description": "Name or id of the resource for this request.",
165318	//       "location": "path",
165319	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
165320	//       "required": true,
165321	//       "type": "string"
165322	//     }
165323	//   },
165324	//   "path": "{project}/global/targetTcpProxies/{resource}/testIamPermissions",
165325	//   "request": {
165326	//     "$ref": "TestPermissionsRequest"
165327	//   },
165328	//   "response": {
165329	//     "$ref": "TestPermissionsResponse"
165330	//   },
165331	//   "scopes": [
165332	//     "https://www.googleapis.com/auth/cloud-platform",
165333	//     "https://www.googleapis.com/auth/compute",
165334	//     "https://www.googleapis.com/auth/compute.readonly"
165335	//   ]
165336	// }
165337
165338}
165339
165340// method id "compute.targetVpnGateways.aggregatedList":
165341
165342type TargetVpnGatewaysAggregatedListCall struct {
165343	s            *Service
165344	project      string
165345	urlParams_   gensupport.URLParams
165346	ifNoneMatch_ string
165347	ctx_         context.Context
165348	header_      http.Header
165349}
165350
165351// AggregatedList: Retrieves an aggregated list of target VPN gateways.
165352func (r *TargetVpnGatewaysService) AggregatedList(project string) *TargetVpnGatewaysAggregatedListCall {
165353	c := &TargetVpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165354	c.project = project
165355	return c
165356}
165357
165358// Filter sets the optional parameter "filter": A filter expression that
165359// filters resources listed in the response. The expression must specify
165360// the field name, a comparison operator, and the value that you want to
165361// use for filtering. The value must be a string, a number, or a
165362// boolean. The comparison operator must be either =, !=, >, or <.
165363//
165364// For example, if you are filtering Compute Engine instances, you can
165365// exclude instances named example-instance by specifying name !=
165366// example-instance.
165367//
165368// You can also filter nested fields. For example, you could specify
165369// scheduling.automaticRestart = false to include instances only if they
165370// are not scheduled for automatic restarts. You can use filtering on
165371// nested fields to filter based on resource labels.
165372//
165373// To filter on multiple expressions, provide each separate expression
165374// within parentheses. For example, (scheduling.automaticRestart = true)
165375// (cpuPlatform = "Intel Skylake"). By default, each expression is an
165376// AND expression. However, you can include AND and OR expressions
165377// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
165378// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
165379// true).
165380func (c *TargetVpnGatewaysAggregatedListCall) Filter(filter string) *TargetVpnGatewaysAggregatedListCall {
165381	c.urlParams_.Set("filter", filter)
165382	return c
165383}
165384
165385// IncludeAllScopes sets the optional parameter "includeAllScopes":
165386// Indicates whether every visible scope for each scope type (zone,
165387// region, global) should be included in the response. For new resource
165388// types added after this field, the flag has no effect as new resource
165389// types will always include every visible scope for each scope type in
165390// response. For resource types which predate this field, if this flag
165391// is omitted or false, only scopes of the scope types where the
165392// resource type is expected to be found will be included.
165393func (c *TargetVpnGatewaysAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetVpnGatewaysAggregatedListCall {
165394	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
165395	return c
165396}
165397
165398// MaxResults sets the optional parameter "maxResults": The maximum
165399// number of results per page that should be returned. If the number of
165400// available results is larger than maxResults, Compute Engine returns a
165401// nextPageToken that can be used to get the next page of results in
165402// subsequent list requests. Acceptable values are 0 to 500, inclusive.
165403// (Default: 500)
165404func (c *TargetVpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *TargetVpnGatewaysAggregatedListCall {
165405	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
165406	return c
165407}
165408
165409// OrderBy sets the optional parameter "orderBy": Sorts list results by
165410// a certain order. By default, results are returned in alphanumerical
165411// order based on the resource name.
165412//
165413// You can also sort results in descending order based on the creation
165414// timestamp using orderBy="creationTimestamp desc". This sorts results
165415// based on the creationTimestamp field in reverse chronological order
165416// (newest result first). Use this to sort resources like operations so
165417// that the newest operation is returned first.
165418//
165419// Currently, only sorting by name or creationTimestamp desc is
165420// supported.
165421func (c *TargetVpnGatewaysAggregatedListCall) OrderBy(orderBy string) *TargetVpnGatewaysAggregatedListCall {
165422	c.urlParams_.Set("orderBy", orderBy)
165423	return c
165424}
165425
165426// PageToken sets the optional parameter "pageToken": Specifies a page
165427// token to use. Set pageToken to the nextPageToken returned by a
165428// previous list request to get the next page of results.
165429func (c *TargetVpnGatewaysAggregatedListCall) PageToken(pageToken string) *TargetVpnGatewaysAggregatedListCall {
165430	c.urlParams_.Set("pageToken", pageToken)
165431	return c
165432}
165433
165434// Fields allows partial responses to be retrieved. See
165435// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165436// for more information.
165437func (c *TargetVpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysAggregatedListCall {
165438	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165439	return c
165440}
165441
165442// IfNoneMatch sets the optional parameter which makes the operation
165443// fail if the object's ETag matches the given value. This is useful for
165444// getting updates only after the object has changed since the last
165445// request. Use googleapi.IsNotModified to check whether the response
165446// error from Do is the result of In-None-Match.
165447func (c *TargetVpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysAggregatedListCall {
165448	c.ifNoneMatch_ = entityTag
165449	return c
165450}
165451
165452// Context sets the context to be used in this call's Do method. Any
165453// pending HTTP request will be aborted if the provided context is
165454// canceled.
165455func (c *TargetVpnGatewaysAggregatedListCall) Context(ctx context.Context) *TargetVpnGatewaysAggregatedListCall {
165456	c.ctx_ = ctx
165457	return c
165458}
165459
165460// Header returns an http.Header that can be modified by the caller to
165461// add HTTP headers to the request.
165462func (c *TargetVpnGatewaysAggregatedListCall) Header() http.Header {
165463	if c.header_ == nil {
165464		c.header_ = make(http.Header)
165465	}
165466	return c.header_
165467}
165468
165469func (c *TargetVpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) {
165470	reqHeaders := make(http.Header)
165471	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
165472	for k, v := range c.header_ {
165473		reqHeaders[k] = v
165474	}
165475	reqHeaders.Set("User-Agent", c.s.userAgent())
165476	if c.ifNoneMatch_ != "" {
165477		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
165478	}
165479	var body io.Reader = nil
165480	c.urlParams_.Set("alt", alt)
165481	c.urlParams_.Set("prettyPrint", "false")
165482	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetVpnGateways")
165483	urls += "?" + c.urlParams_.Encode()
165484	req, err := http.NewRequest("GET", urls, body)
165485	if err != nil {
165486		return nil, err
165487	}
165488	req.Header = reqHeaders
165489	googleapi.Expand(req.URL, map[string]string{
165490		"project": c.project,
165491	})
165492	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165493}
165494
165495// Do executes the "compute.targetVpnGateways.aggregatedList" call.
165496// Exactly one of *TargetVpnGatewayAggregatedList or error will be
165497// non-nil. Any non-2xx status code is an error. Response headers are in
165498// either *TargetVpnGatewayAggregatedList.ServerResponse.Header or (if a
165499// response was returned at all) in error.(*googleapi.Error).Header. Use
165500// googleapi.IsNotModified to check whether the returned error was
165501// because http.StatusNotModified was returned.
165502func (c *TargetVpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayAggregatedList, error) {
165503	gensupport.SetOptions(c.urlParams_, opts...)
165504	res, err := c.doRequest("json")
165505	if res != nil && res.StatusCode == http.StatusNotModified {
165506		if res.Body != nil {
165507			res.Body.Close()
165508		}
165509		return nil, &googleapi.Error{
165510			Code:   res.StatusCode,
165511			Header: res.Header,
165512		}
165513	}
165514	if err != nil {
165515		return nil, err
165516	}
165517	defer googleapi.CloseBody(res)
165518	if err := googleapi.CheckResponse(res); err != nil {
165519		return nil, err
165520	}
165521	ret := &TargetVpnGatewayAggregatedList{
165522		ServerResponse: googleapi.ServerResponse{
165523			Header:         res.Header,
165524			HTTPStatusCode: res.StatusCode,
165525		},
165526	}
165527	target := &ret
165528	if err := gensupport.DecodeResponse(target, res); err != nil {
165529		return nil, err
165530	}
165531	return ret, nil
165532	// {
165533	//   "description": "Retrieves an aggregated list of target VPN gateways.",
165534	//   "httpMethod": "GET",
165535	//   "id": "compute.targetVpnGateways.aggregatedList",
165536	//   "parameterOrder": [
165537	//     "project"
165538	//   ],
165539	//   "parameters": {
165540	//     "filter": {
165541	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
165542	//       "location": "query",
165543	//       "type": "string"
165544	//     },
165545	//     "includeAllScopes": {
165546	//       "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.",
165547	//       "location": "query",
165548	//       "type": "boolean"
165549	//     },
165550	//     "maxResults": {
165551	//       "default": "500",
165552	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
165553	//       "format": "uint32",
165554	//       "location": "query",
165555	//       "minimum": "0",
165556	//       "type": "integer"
165557	//     },
165558	//     "orderBy": {
165559	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
165560	//       "location": "query",
165561	//       "type": "string"
165562	//     },
165563	//     "pageToken": {
165564	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
165565	//       "location": "query",
165566	//       "type": "string"
165567	//     },
165568	//     "project": {
165569	//       "description": "Project ID for this request.",
165570	//       "location": "path",
165571	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165572	//       "required": true,
165573	//       "type": "string"
165574	//     }
165575	//   },
165576	//   "path": "{project}/aggregated/targetVpnGateways",
165577	//   "response": {
165578	//     "$ref": "TargetVpnGatewayAggregatedList"
165579	//   },
165580	//   "scopes": [
165581	//     "https://www.googleapis.com/auth/cloud-platform",
165582	//     "https://www.googleapis.com/auth/compute",
165583	//     "https://www.googleapis.com/auth/compute.readonly"
165584	//   ]
165585	// }
165586
165587}
165588
165589// Pages invokes f for each page of results.
165590// A non-nil error returned from f will halt the iteration.
165591// The provided context supersedes any context provided to the Context method.
165592func (c *TargetVpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayAggregatedList) error) error {
165593	c.ctx_ = ctx
165594	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
165595	for {
165596		x, err := c.Do()
165597		if err != nil {
165598			return err
165599		}
165600		if err := f(x); err != nil {
165601			return err
165602		}
165603		if x.NextPageToken == "" {
165604			return nil
165605		}
165606		c.PageToken(x.NextPageToken)
165607	}
165608}
165609
165610// method id "compute.targetVpnGateways.delete":
165611
165612type TargetVpnGatewaysDeleteCall struct {
165613	s                *Service
165614	project          string
165615	region           string
165616	targetVpnGateway string
165617	urlParams_       gensupport.URLParams
165618	ctx_             context.Context
165619	header_          http.Header
165620}
165621
165622// Delete: Deletes the specified target VPN gateway.
165623func (r *TargetVpnGatewaysService) Delete(project string, region string, targetVpnGateway string) *TargetVpnGatewaysDeleteCall {
165624	c := &TargetVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165625	c.project = project
165626	c.region = region
165627	c.targetVpnGateway = targetVpnGateway
165628	return c
165629}
165630
165631// RequestId sets the optional parameter "requestId": An optional
165632// request ID to identify requests. Specify a unique request ID so that
165633// if you must retry your request, the server will know to ignore the
165634// request if it has already been completed.
165635//
165636// For example, consider a situation where you make an initial request
165637// and the request times out. If you make the request again with the
165638// same request ID, the server can check if original operation with the
165639// same request ID was received, and if so, will ignore the second
165640// request. This prevents clients from accidentally creating duplicate
165641// commitments.
165642//
165643// The request ID must be a valid UUID with the exception that zero UUID
165644// is not supported (00000000-0000-0000-0000-000000000000).
165645func (c *TargetVpnGatewaysDeleteCall) RequestId(requestId string) *TargetVpnGatewaysDeleteCall {
165646	c.urlParams_.Set("requestId", requestId)
165647	return c
165648}
165649
165650// Fields allows partial responses to be retrieved. See
165651// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165652// for more information.
165653func (c *TargetVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysDeleteCall {
165654	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165655	return c
165656}
165657
165658// Context sets the context to be used in this call's Do method. Any
165659// pending HTTP request will be aborted if the provided context is
165660// canceled.
165661func (c *TargetVpnGatewaysDeleteCall) Context(ctx context.Context) *TargetVpnGatewaysDeleteCall {
165662	c.ctx_ = ctx
165663	return c
165664}
165665
165666// Header returns an http.Header that can be modified by the caller to
165667// add HTTP headers to the request.
165668func (c *TargetVpnGatewaysDeleteCall) Header() http.Header {
165669	if c.header_ == nil {
165670		c.header_ = make(http.Header)
165671	}
165672	return c.header_
165673}
165674
165675func (c *TargetVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
165676	reqHeaders := make(http.Header)
165677	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
165678	for k, v := range c.header_ {
165679		reqHeaders[k] = v
165680	}
165681	reqHeaders.Set("User-Agent", c.s.userAgent())
165682	var body io.Reader = nil
165683	c.urlParams_.Set("alt", alt)
165684	c.urlParams_.Set("prettyPrint", "false")
165685	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}")
165686	urls += "?" + c.urlParams_.Encode()
165687	req, err := http.NewRequest("DELETE", urls, body)
165688	if err != nil {
165689		return nil, err
165690	}
165691	req.Header = reqHeaders
165692	googleapi.Expand(req.URL, map[string]string{
165693		"project":          c.project,
165694		"region":           c.region,
165695		"targetVpnGateway": c.targetVpnGateway,
165696	})
165697	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165698}
165699
165700// Do executes the "compute.targetVpnGateways.delete" call.
165701// Exactly one of *Operation or error will be non-nil. Any non-2xx
165702// status code is an error. Response headers are in either
165703// *Operation.ServerResponse.Header or (if a response was returned at
165704// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
165705// to check whether the returned error was because
165706// http.StatusNotModified was returned.
165707func (c *TargetVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
165708	gensupport.SetOptions(c.urlParams_, opts...)
165709	res, err := c.doRequest("json")
165710	if res != nil && res.StatusCode == http.StatusNotModified {
165711		if res.Body != nil {
165712			res.Body.Close()
165713		}
165714		return nil, &googleapi.Error{
165715			Code:   res.StatusCode,
165716			Header: res.Header,
165717		}
165718	}
165719	if err != nil {
165720		return nil, err
165721	}
165722	defer googleapi.CloseBody(res)
165723	if err := googleapi.CheckResponse(res); err != nil {
165724		return nil, err
165725	}
165726	ret := &Operation{
165727		ServerResponse: googleapi.ServerResponse{
165728			Header:         res.Header,
165729			HTTPStatusCode: res.StatusCode,
165730		},
165731	}
165732	target := &ret
165733	if err := gensupport.DecodeResponse(target, res); err != nil {
165734		return nil, err
165735	}
165736	return ret, nil
165737	// {
165738	//   "description": "Deletes the specified target VPN gateway.",
165739	//   "httpMethod": "DELETE",
165740	//   "id": "compute.targetVpnGateways.delete",
165741	//   "parameterOrder": [
165742	//     "project",
165743	//     "region",
165744	//     "targetVpnGateway"
165745	//   ],
165746	//   "parameters": {
165747	//     "project": {
165748	//       "description": "Project ID for this request.",
165749	//       "location": "path",
165750	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165751	//       "required": true,
165752	//       "type": "string"
165753	//     },
165754	//     "region": {
165755	//       "description": "Name of the region for this request.",
165756	//       "location": "path",
165757	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
165758	//       "required": true,
165759	//       "type": "string"
165760	//     },
165761	//     "requestId": {
165762	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
165763	//       "location": "query",
165764	//       "type": "string"
165765	//     },
165766	//     "targetVpnGateway": {
165767	//       "description": "Name of the target VPN gateway to delete.",
165768	//       "location": "path",
165769	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
165770	//       "required": true,
165771	//       "type": "string"
165772	//     }
165773	//   },
165774	//   "path": "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
165775	//   "response": {
165776	//     "$ref": "Operation"
165777	//   },
165778	//   "scopes": [
165779	//     "https://www.googleapis.com/auth/cloud-platform",
165780	//     "https://www.googleapis.com/auth/compute"
165781	//   ]
165782	// }
165783
165784}
165785
165786// method id "compute.targetVpnGateways.get":
165787
165788type TargetVpnGatewaysGetCall struct {
165789	s                *Service
165790	project          string
165791	region           string
165792	targetVpnGateway string
165793	urlParams_       gensupport.URLParams
165794	ifNoneMatch_     string
165795	ctx_             context.Context
165796	header_          http.Header
165797}
165798
165799// Get: Returns the specified target VPN gateway. Gets a list of
165800// available target VPN gateways by making a list() request.
165801func (r *TargetVpnGatewaysService) Get(project string, region string, targetVpnGateway string) *TargetVpnGatewaysGetCall {
165802	c := &TargetVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165803	c.project = project
165804	c.region = region
165805	c.targetVpnGateway = targetVpnGateway
165806	return c
165807}
165808
165809// Fields allows partial responses to be retrieved. See
165810// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165811// for more information.
165812func (c *TargetVpnGatewaysGetCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysGetCall {
165813	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165814	return c
165815}
165816
165817// IfNoneMatch sets the optional parameter which makes the operation
165818// fail if the object's ETag matches the given value. This is useful for
165819// getting updates only after the object has changed since the last
165820// request. Use googleapi.IsNotModified to check whether the response
165821// error from Do is the result of In-None-Match.
165822func (c *TargetVpnGatewaysGetCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysGetCall {
165823	c.ifNoneMatch_ = entityTag
165824	return c
165825}
165826
165827// Context sets the context to be used in this call's Do method. Any
165828// pending HTTP request will be aborted if the provided context is
165829// canceled.
165830func (c *TargetVpnGatewaysGetCall) Context(ctx context.Context) *TargetVpnGatewaysGetCall {
165831	c.ctx_ = ctx
165832	return c
165833}
165834
165835// Header returns an http.Header that can be modified by the caller to
165836// add HTTP headers to the request.
165837func (c *TargetVpnGatewaysGetCall) Header() http.Header {
165838	if c.header_ == nil {
165839		c.header_ = make(http.Header)
165840	}
165841	return c.header_
165842}
165843
165844func (c *TargetVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
165845	reqHeaders := make(http.Header)
165846	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
165847	for k, v := range c.header_ {
165848		reqHeaders[k] = v
165849	}
165850	reqHeaders.Set("User-Agent", c.s.userAgent())
165851	if c.ifNoneMatch_ != "" {
165852		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
165853	}
165854	var body io.Reader = nil
165855	c.urlParams_.Set("alt", alt)
165856	c.urlParams_.Set("prettyPrint", "false")
165857	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}")
165858	urls += "?" + c.urlParams_.Encode()
165859	req, err := http.NewRequest("GET", urls, body)
165860	if err != nil {
165861		return nil, err
165862	}
165863	req.Header = reqHeaders
165864	googleapi.Expand(req.URL, map[string]string{
165865		"project":          c.project,
165866		"region":           c.region,
165867		"targetVpnGateway": c.targetVpnGateway,
165868	})
165869	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165870}
165871
165872// Do executes the "compute.targetVpnGateways.get" call.
165873// Exactly one of *TargetVpnGateway or error will be non-nil. Any
165874// non-2xx status code is an error. Response headers are in either
165875// *TargetVpnGateway.ServerResponse.Header or (if a response was
165876// returned at all) in error.(*googleapi.Error).Header. Use
165877// googleapi.IsNotModified to check whether the returned error was
165878// because http.StatusNotModified was returned.
165879func (c *TargetVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*TargetVpnGateway, error) {
165880	gensupport.SetOptions(c.urlParams_, opts...)
165881	res, err := c.doRequest("json")
165882	if res != nil && res.StatusCode == http.StatusNotModified {
165883		if res.Body != nil {
165884			res.Body.Close()
165885		}
165886		return nil, &googleapi.Error{
165887			Code:   res.StatusCode,
165888			Header: res.Header,
165889		}
165890	}
165891	if err != nil {
165892		return nil, err
165893	}
165894	defer googleapi.CloseBody(res)
165895	if err := googleapi.CheckResponse(res); err != nil {
165896		return nil, err
165897	}
165898	ret := &TargetVpnGateway{
165899		ServerResponse: googleapi.ServerResponse{
165900			Header:         res.Header,
165901			HTTPStatusCode: res.StatusCode,
165902		},
165903	}
165904	target := &ret
165905	if err := gensupport.DecodeResponse(target, res); err != nil {
165906		return nil, err
165907	}
165908	return ret, nil
165909	// {
165910	//   "description": "Returns the specified target VPN gateway. Gets a list of available target VPN gateways by making a list() request.",
165911	//   "httpMethod": "GET",
165912	//   "id": "compute.targetVpnGateways.get",
165913	//   "parameterOrder": [
165914	//     "project",
165915	//     "region",
165916	//     "targetVpnGateway"
165917	//   ],
165918	//   "parameters": {
165919	//     "project": {
165920	//       "description": "Project ID for this request.",
165921	//       "location": "path",
165922	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165923	//       "required": true,
165924	//       "type": "string"
165925	//     },
165926	//     "region": {
165927	//       "description": "Name of the region for this request.",
165928	//       "location": "path",
165929	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
165930	//       "required": true,
165931	//       "type": "string"
165932	//     },
165933	//     "targetVpnGateway": {
165934	//       "description": "Name of the target VPN gateway to return.",
165935	//       "location": "path",
165936	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
165937	//       "required": true,
165938	//       "type": "string"
165939	//     }
165940	//   },
165941	//   "path": "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
165942	//   "response": {
165943	//     "$ref": "TargetVpnGateway"
165944	//   },
165945	//   "scopes": [
165946	//     "https://www.googleapis.com/auth/cloud-platform",
165947	//     "https://www.googleapis.com/auth/compute",
165948	//     "https://www.googleapis.com/auth/compute.readonly"
165949	//   ]
165950	// }
165951
165952}
165953
165954// method id "compute.targetVpnGateways.insert":
165955
165956type TargetVpnGatewaysInsertCall struct {
165957	s                *Service
165958	project          string
165959	region           string
165960	targetvpngateway *TargetVpnGateway
165961	urlParams_       gensupport.URLParams
165962	ctx_             context.Context
165963	header_          http.Header
165964}
165965
165966// Insert: Creates a target VPN gateway in the specified project and
165967// region using the data included in the request.
165968func (r *TargetVpnGatewaysService) Insert(project string, region string, targetvpngateway *TargetVpnGateway) *TargetVpnGatewaysInsertCall {
165969	c := &TargetVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165970	c.project = project
165971	c.region = region
165972	c.targetvpngateway = targetvpngateway
165973	return c
165974}
165975
165976// RequestId sets the optional parameter "requestId": An optional
165977// request ID to identify requests. Specify a unique request ID so that
165978// if you must retry your request, the server will know to ignore the
165979// request if it has already been completed.
165980//
165981// For example, consider a situation where you make an initial request
165982// and the request times out. If you make the request again with the
165983// same request ID, the server can check if original operation with the
165984// same request ID was received, and if so, will ignore the second
165985// request. This prevents clients from accidentally creating duplicate
165986// commitments.
165987//
165988// The request ID must be a valid UUID with the exception that zero UUID
165989// is not supported (00000000-0000-0000-0000-000000000000).
165990func (c *TargetVpnGatewaysInsertCall) RequestId(requestId string) *TargetVpnGatewaysInsertCall {
165991	c.urlParams_.Set("requestId", requestId)
165992	return c
165993}
165994
165995// Fields allows partial responses to be retrieved. See
165996// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165997// for more information.
165998func (c *TargetVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysInsertCall {
165999	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166000	return c
166001}
166002
166003// Context sets the context to be used in this call's Do method. Any
166004// pending HTTP request will be aborted if the provided context is
166005// canceled.
166006func (c *TargetVpnGatewaysInsertCall) Context(ctx context.Context) *TargetVpnGatewaysInsertCall {
166007	c.ctx_ = ctx
166008	return c
166009}
166010
166011// Header returns an http.Header that can be modified by the caller to
166012// add HTTP headers to the request.
166013func (c *TargetVpnGatewaysInsertCall) Header() http.Header {
166014	if c.header_ == nil {
166015		c.header_ = make(http.Header)
166016	}
166017	return c.header_
166018}
166019
166020func (c *TargetVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
166021	reqHeaders := make(http.Header)
166022	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
166023	for k, v := range c.header_ {
166024		reqHeaders[k] = v
166025	}
166026	reqHeaders.Set("User-Agent", c.s.userAgent())
166027	var body io.Reader = nil
166028	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetvpngateway)
166029	if err != nil {
166030		return nil, err
166031	}
166032	reqHeaders.Set("Content-Type", "application/json")
166033	c.urlParams_.Set("alt", alt)
166034	c.urlParams_.Set("prettyPrint", "false")
166035	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways")
166036	urls += "?" + c.urlParams_.Encode()
166037	req, err := http.NewRequest("POST", urls, body)
166038	if err != nil {
166039		return nil, err
166040	}
166041	req.Header = reqHeaders
166042	googleapi.Expand(req.URL, map[string]string{
166043		"project": c.project,
166044		"region":  c.region,
166045	})
166046	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166047}
166048
166049// Do executes the "compute.targetVpnGateways.insert" call.
166050// Exactly one of *Operation or error will be non-nil. Any non-2xx
166051// status code is an error. Response headers are in either
166052// *Operation.ServerResponse.Header or (if a response was returned at
166053// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
166054// to check whether the returned error was because
166055// http.StatusNotModified was returned.
166056func (c *TargetVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
166057	gensupport.SetOptions(c.urlParams_, opts...)
166058	res, err := c.doRequest("json")
166059	if res != nil && res.StatusCode == http.StatusNotModified {
166060		if res.Body != nil {
166061			res.Body.Close()
166062		}
166063		return nil, &googleapi.Error{
166064			Code:   res.StatusCode,
166065			Header: res.Header,
166066		}
166067	}
166068	if err != nil {
166069		return nil, err
166070	}
166071	defer googleapi.CloseBody(res)
166072	if err := googleapi.CheckResponse(res); err != nil {
166073		return nil, err
166074	}
166075	ret := &Operation{
166076		ServerResponse: googleapi.ServerResponse{
166077			Header:         res.Header,
166078			HTTPStatusCode: res.StatusCode,
166079		},
166080	}
166081	target := &ret
166082	if err := gensupport.DecodeResponse(target, res); err != nil {
166083		return nil, err
166084	}
166085	return ret, nil
166086	// {
166087	//   "description": "Creates a target VPN gateway in the specified project and region using the data included in the request.",
166088	//   "httpMethod": "POST",
166089	//   "id": "compute.targetVpnGateways.insert",
166090	//   "parameterOrder": [
166091	//     "project",
166092	//     "region"
166093	//   ],
166094	//   "parameters": {
166095	//     "project": {
166096	//       "description": "Project ID for this request.",
166097	//       "location": "path",
166098	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166099	//       "required": true,
166100	//       "type": "string"
166101	//     },
166102	//     "region": {
166103	//       "description": "Name of the region for this request.",
166104	//       "location": "path",
166105	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
166106	//       "required": true,
166107	//       "type": "string"
166108	//     },
166109	//     "requestId": {
166110	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
166111	//       "location": "query",
166112	//       "type": "string"
166113	//     }
166114	//   },
166115	//   "path": "{project}/regions/{region}/targetVpnGateways",
166116	//   "request": {
166117	//     "$ref": "TargetVpnGateway"
166118	//   },
166119	//   "response": {
166120	//     "$ref": "Operation"
166121	//   },
166122	//   "scopes": [
166123	//     "https://www.googleapis.com/auth/cloud-platform",
166124	//     "https://www.googleapis.com/auth/compute"
166125	//   ]
166126	// }
166127
166128}
166129
166130// method id "compute.targetVpnGateways.list":
166131
166132type TargetVpnGatewaysListCall struct {
166133	s            *Service
166134	project      string
166135	region       string
166136	urlParams_   gensupport.URLParams
166137	ifNoneMatch_ string
166138	ctx_         context.Context
166139	header_      http.Header
166140}
166141
166142// List: Retrieves a list of target VPN gateways available to the
166143// specified project and region.
166144func (r *TargetVpnGatewaysService) List(project string, region string) *TargetVpnGatewaysListCall {
166145	c := &TargetVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166146	c.project = project
166147	c.region = region
166148	return c
166149}
166150
166151// Filter sets the optional parameter "filter": A filter expression that
166152// filters resources listed in the response. The expression must specify
166153// the field name, a comparison operator, and the value that you want to
166154// use for filtering. The value must be a string, a number, or a
166155// boolean. The comparison operator must be either =, !=, >, or <.
166156//
166157// For example, if you are filtering Compute Engine instances, you can
166158// exclude instances named example-instance by specifying name !=
166159// example-instance.
166160//
166161// You can also filter nested fields. For example, you could specify
166162// scheduling.automaticRestart = false to include instances only if they
166163// are not scheduled for automatic restarts. You can use filtering on
166164// nested fields to filter based on resource labels.
166165//
166166// To filter on multiple expressions, provide each separate expression
166167// within parentheses. For example, (scheduling.automaticRestart = true)
166168// (cpuPlatform = "Intel Skylake"). By default, each expression is an
166169// AND expression. However, you can include AND and OR expressions
166170// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
166171// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
166172// true).
166173func (c *TargetVpnGatewaysListCall) Filter(filter string) *TargetVpnGatewaysListCall {
166174	c.urlParams_.Set("filter", filter)
166175	return c
166176}
166177
166178// MaxResults sets the optional parameter "maxResults": The maximum
166179// number of results per page that should be returned. If the number of
166180// available results is larger than maxResults, Compute Engine returns a
166181// nextPageToken that can be used to get the next page of results in
166182// subsequent list requests. Acceptable values are 0 to 500, inclusive.
166183// (Default: 500)
166184func (c *TargetVpnGatewaysListCall) MaxResults(maxResults int64) *TargetVpnGatewaysListCall {
166185	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
166186	return c
166187}
166188
166189// OrderBy sets the optional parameter "orderBy": Sorts list results by
166190// a certain order. By default, results are returned in alphanumerical
166191// order based on the resource name.
166192//
166193// You can also sort results in descending order based on the creation
166194// timestamp using orderBy="creationTimestamp desc". This sorts results
166195// based on the creationTimestamp field in reverse chronological order
166196// (newest result first). Use this to sort resources like operations so
166197// that the newest operation is returned first.
166198//
166199// Currently, only sorting by name or creationTimestamp desc is
166200// supported.
166201func (c *TargetVpnGatewaysListCall) OrderBy(orderBy string) *TargetVpnGatewaysListCall {
166202	c.urlParams_.Set("orderBy", orderBy)
166203	return c
166204}
166205
166206// PageToken sets the optional parameter "pageToken": Specifies a page
166207// token to use. Set pageToken to the nextPageToken returned by a
166208// previous list request to get the next page of results.
166209func (c *TargetVpnGatewaysListCall) PageToken(pageToken string) *TargetVpnGatewaysListCall {
166210	c.urlParams_.Set("pageToken", pageToken)
166211	return c
166212}
166213
166214// Fields allows partial responses to be retrieved. See
166215// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166216// for more information.
166217func (c *TargetVpnGatewaysListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysListCall {
166218	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166219	return c
166220}
166221
166222// IfNoneMatch sets the optional parameter which makes the operation
166223// fail if the object's ETag matches the given value. This is useful for
166224// getting updates only after the object has changed since the last
166225// request. Use googleapi.IsNotModified to check whether the response
166226// error from Do is the result of In-None-Match.
166227func (c *TargetVpnGatewaysListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysListCall {
166228	c.ifNoneMatch_ = entityTag
166229	return c
166230}
166231
166232// Context sets the context to be used in this call's Do method. Any
166233// pending HTTP request will be aborted if the provided context is
166234// canceled.
166235func (c *TargetVpnGatewaysListCall) Context(ctx context.Context) *TargetVpnGatewaysListCall {
166236	c.ctx_ = ctx
166237	return c
166238}
166239
166240// Header returns an http.Header that can be modified by the caller to
166241// add HTTP headers to the request.
166242func (c *TargetVpnGatewaysListCall) Header() http.Header {
166243	if c.header_ == nil {
166244		c.header_ = make(http.Header)
166245	}
166246	return c.header_
166247}
166248
166249func (c *TargetVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
166250	reqHeaders := make(http.Header)
166251	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
166252	for k, v := range c.header_ {
166253		reqHeaders[k] = v
166254	}
166255	reqHeaders.Set("User-Agent", c.s.userAgent())
166256	if c.ifNoneMatch_ != "" {
166257		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
166258	}
166259	var body io.Reader = nil
166260	c.urlParams_.Set("alt", alt)
166261	c.urlParams_.Set("prettyPrint", "false")
166262	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways")
166263	urls += "?" + c.urlParams_.Encode()
166264	req, err := http.NewRequest("GET", urls, body)
166265	if err != nil {
166266		return nil, err
166267	}
166268	req.Header = reqHeaders
166269	googleapi.Expand(req.URL, map[string]string{
166270		"project": c.project,
166271		"region":  c.region,
166272	})
166273	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166274}
166275
166276// Do executes the "compute.targetVpnGateways.list" call.
166277// Exactly one of *TargetVpnGatewayList or error will be non-nil. Any
166278// non-2xx status code is an error. Response headers are in either
166279// *TargetVpnGatewayList.ServerResponse.Header or (if a response was
166280// returned at all) in error.(*googleapi.Error).Header. Use
166281// googleapi.IsNotModified to check whether the returned error was
166282// because http.StatusNotModified was returned.
166283func (c *TargetVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayList, error) {
166284	gensupport.SetOptions(c.urlParams_, opts...)
166285	res, err := c.doRequest("json")
166286	if res != nil && res.StatusCode == http.StatusNotModified {
166287		if res.Body != nil {
166288			res.Body.Close()
166289		}
166290		return nil, &googleapi.Error{
166291			Code:   res.StatusCode,
166292			Header: res.Header,
166293		}
166294	}
166295	if err != nil {
166296		return nil, err
166297	}
166298	defer googleapi.CloseBody(res)
166299	if err := googleapi.CheckResponse(res); err != nil {
166300		return nil, err
166301	}
166302	ret := &TargetVpnGatewayList{
166303		ServerResponse: googleapi.ServerResponse{
166304			Header:         res.Header,
166305			HTTPStatusCode: res.StatusCode,
166306		},
166307	}
166308	target := &ret
166309	if err := gensupport.DecodeResponse(target, res); err != nil {
166310		return nil, err
166311	}
166312	return ret, nil
166313	// {
166314	//   "description": "Retrieves a list of target VPN gateways available to the specified project and region.",
166315	//   "httpMethod": "GET",
166316	//   "id": "compute.targetVpnGateways.list",
166317	//   "parameterOrder": [
166318	//     "project",
166319	//     "region"
166320	//   ],
166321	//   "parameters": {
166322	//     "filter": {
166323	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
166324	//       "location": "query",
166325	//       "type": "string"
166326	//     },
166327	//     "maxResults": {
166328	//       "default": "500",
166329	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
166330	//       "format": "uint32",
166331	//       "location": "query",
166332	//       "minimum": "0",
166333	//       "type": "integer"
166334	//     },
166335	//     "orderBy": {
166336	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
166337	//       "location": "query",
166338	//       "type": "string"
166339	//     },
166340	//     "pageToken": {
166341	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
166342	//       "location": "query",
166343	//       "type": "string"
166344	//     },
166345	//     "project": {
166346	//       "description": "Project ID for this request.",
166347	//       "location": "path",
166348	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166349	//       "required": true,
166350	//       "type": "string"
166351	//     },
166352	//     "region": {
166353	//       "description": "Name of the region for this request.",
166354	//       "location": "path",
166355	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
166356	//       "required": true,
166357	//       "type": "string"
166358	//     }
166359	//   },
166360	//   "path": "{project}/regions/{region}/targetVpnGateways",
166361	//   "response": {
166362	//     "$ref": "TargetVpnGatewayList"
166363	//   },
166364	//   "scopes": [
166365	//     "https://www.googleapis.com/auth/cloud-platform",
166366	//     "https://www.googleapis.com/auth/compute",
166367	//     "https://www.googleapis.com/auth/compute.readonly"
166368	//   ]
166369	// }
166370
166371}
166372
166373// Pages invokes f for each page of results.
166374// A non-nil error returned from f will halt the iteration.
166375// The provided context supersedes any context provided to the Context method.
166376func (c *TargetVpnGatewaysListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayList) error) error {
166377	c.ctx_ = ctx
166378	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
166379	for {
166380		x, err := c.Do()
166381		if err != nil {
166382			return err
166383		}
166384		if err := f(x); err != nil {
166385			return err
166386		}
166387		if x.NextPageToken == "" {
166388			return nil
166389		}
166390		c.PageToken(x.NextPageToken)
166391	}
166392}
166393
166394// method id "compute.targetVpnGateways.setLabels":
166395
166396type TargetVpnGatewaysSetLabelsCall struct {
166397	s                      *Service
166398	project                string
166399	region                 string
166400	resource               string
166401	regionsetlabelsrequest *RegionSetLabelsRequest
166402	urlParams_             gensupport.URLParams
166403	ctx_                   context.Context
166404	header_                http.Header
166405}
166406
166407// SetLabels: Sets the labels on a TargetVpnGateway. To learn more about
166408// labels, read the Labeling Resources documentation.
166409func (r *TargetVpnGatewaysService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *TargetVpnGatewaysSetLabelsCall {
166410	c := &TargetVpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166411	c.project = project
166412	c.region = region
166413	c.resource = resource
166414	c.regionsetlabelsrequest = regionsetlabelsrequest
166415	return c
166416}
166417
166418// RequestId sets the optional parameter "requestId": An optional
166419// request ID to identify requests. Specify a unique request ID so that
166420// if you must retry your request, the server will know to ignore the
166421// request if it has already been completed.
166422//
166423// For example, consider a situation where you make an initial request
166424// and the request times out. If you make the request again with the
166425// same request ID, the server can check if original operation with the
166426// same request ID was received, and if so, will ignore the second
166427// request. This prevents clients from accidentally creating duplicate
166428// commitments.
166429//
166430// The request ID must be a valid UUID with the exception that zero UUID
166431// is not supported (00000000-0000-0000-0000-000000000000).
166432func (c *TargetVpnGatewaysSetLabelsCall) RequestId(requestId string) *TargetVpnGatewaysSetLabelsCall {
166433	c.urlParams_.Set("requestId", requestId)
166434	return c
166435}
166436
166437// Fields allows partial responses to be retrieved. See
166438// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166439// for more information.
166440func (c *TargetVpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysSetLabelsCall {
166441	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166442	return c
166443}
166444
166445// Context sets the context to be used in this call's Do method. Any
166446// pending HTTP request will be aborted if the provided context is
166447// canceled.
166448func (c *TargetVpnGatewaysSetLabelsCall) Context(ctx context.Context) *TargetVpnGatewaysSetLabelsCall {
166449	c.ctx_ = ctx
166450	return c
166451}
166452
166453// Header returns an http.Header that can be modified by the caller to
166454// add HTTP headers to the request.
166455func (c *TargetVpnGatewaysSetLabelsCall) Header() http.Header {
166456	if c.header_ == nil {
166457		c.header_ = make(http.Header)
166458	}
166459	return c.header_
166460}
166461
166462func (c *TargetVpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
166463	reqHeaders := make(http.Header)
166464	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
166465	for k, v := range c.header_ {
166466		reqHeaders[k] = v
166467	}
166468	reqHeaders.Set("User-Agent", c.s.userAgent())
166469	var body io.Reader = nil
166470	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
166471	if err != nil {
166472		return nil, err
166473	}
166474	reqHeaders.Set("Content-Type", "application/json")
166475	c.urlParams_.Set("alt", alt)
166476	c.urlParams_.Set("prettyPrint", "false")
166477	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{resource}/setLabels")
166478	urls += "?" + c.urlParams_.Encode()
166479	req, err := http.NewRequest("POST", urls, body)
166480	if err != nil {
166481		return nil, err
166482	}
166483	req.Header = reqHeaders
166484	googleapi.Expand(req.URL, map[string]string{
166485		"project":  c.project,
166486		"region":   c.region,
166487		"resource": c.resource,
166488	})
166489	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166490}
166491
166492// Do executes the "compute.targetVpnGateways.setLabels" call.
166493// Exactly one of *Operation or error will be non-nil. Any non-2xx
166494// status code is an error. Response headers are in either
166495// *Operation.ServerResponse.Header or (if a response was returned at
166496// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
166497// to check whether the returned error was because
166498// http.StatusNotModified was returned.
166499func (c *TargetVpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
166500	gensupport.SetOptions(c.urlParams_, opts...)
166501	res, err := c.doRequest("json")
166502	if res != nil && res.StatusCode == http.StatusNotModified {
166503		if res.Body != nil {
166504			res.Body.Close()
166505		}
166506		return nil, &googleapi.Error{
166507			Code:   res.StatusCode,
166508			Header: res.Header,
166509		}
166510	}
166511	if err != nil {
166512		return nil, err
166513	}
166514	defer googleapi.CloseBody(res)
166515	if err := googleapi.CheckResponse(res); err != nil {
166516		return nil, err
166517	}
166518	ret := &Operation{
166519		ServerResponse: googleapi.ServerResponse{
166520			Header:         res.Header,
166521			HTTPStatusCode: res.StatusCode,
166522		},
166523	}
166524	target := &ret
166525	if err := gensupport.DecodeResponse(target, res); err != nil {
166526		return nil, err
166527	}
166528	return ret, nil
166529	// {
166530	//   "description": "Sets the labels on a TargetVpnGateway. To learn more about labels, read the Labeling Resources documentation.",
166531	//   "httpMethod": "POST",
166532	//   "id": "compute.targetVpnGateways.setLabels",
166533	//   "parameterOrder": [
166534	//     "project",
166535	//     "region",
166536	//     "resource"
166537	//   ],
166538	//   "parameters": {
166539	//     "project": {
166540	//       "description": "Project ID for this request.",
166541	//       "location": "path",
166542	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166543	//       "required": true,
166544	//       "type": "string"
166545	//     },
166546	//     "region": {
166547	//       "description": "The region for this request.",
166548	//       "location": "path",
166549	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
166550	//       "required": true,
166551	//       "type": "string"
166552	//     },
166553	//     "requestId": {
166554	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
166555	//       "location": "query",
166556	//       "type": "string"
166557	//     },
166558	//     "resource": {
166559	//       "description": "Name or id of the resource for this request.",
166560	//       "location": "path",
166561	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
166562	//       "required": true,
166563	//       "type": "string"
166564	//     }
166565	//   },
166566	//   "path": "{project}/regions/{region}/targetVpnGateways/{resource}/setLabels",
166567	//   "request": {
166568	//     "$ref": "RegionSetLabelsRequest"
166569	//   },
166570	//   "response": {
166571	//     "$ref": "Operation"
166572	//   },
166573	//   "scopes": [
166574	//     "https://www.googleapis.com/auth/cloud-platform",
166575	//     "https://www.googleapis.com/auth/compute"
166576	//   ]
166577	// }
166578
166579}
166580
166581// method id "compute.targetVpnGateways.testIamPermissions":
166582
166583type TargetVpnGatewaysTestIamPermissionsCall struct {
166584	s                      *Service
166585	project                string
166586	region                 string
166587	resource               string
166588	testpermissionsrequest *TestPermissionsRequest
166589	urlParams_             gensupport.URLParams
166590	ctx_                   context.Context
166591	header_                http.Header
166592}
166593
166594// TestIamPermissions: Returns permissions that a caller has on the
166595// specified resource.
166596func (r *TargetVpnGatewaysService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetVpnGatewaysTestIamPermissionsCall {
166597	c := &TargetVpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166598	c.project = project
166599	c.region = region
166600	c.resource = resource
166601	c.testpermissionsrequest = testpermissionsrequest
166602	return c
166603}
166604
166605// Fields allows partial responses to be retrieved. See
166606// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166607// for more information.
166608func (c *TargetVpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysTestIamPermissionsCall {
166609	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166610	return c
166611}
166612
166613// Context sets the context to be used in this call's Do method. Any
166614// pending HTTP request will be aborted if the provided context is
166615// canceled.
166616func (c *TargetVpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *TargetVpnGatewaysTestIamPermissionsCall {
166617	c.ctx_ = ctx
166618	return c
166619}
166620
166621// Header returns an http.Header that can be modified by the caller to
166622// add HTTP headers to the request.
166623func (c *TargetVpnGatewaysTestIamPermissionsCall) Header() http.Header {
166624	if c.header_ == nil {
166625		c.header_ = make(http.Header)
166626	}
166627	return c.header_
166628}
166629
166630func (c *TargetVpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
166631	reqHeaders := make(http.Header)
166632	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
166633	for k, v := range c.header_ {
166634		reqHeaders[k] = v
166635	}
166636	reqHeaders.Set("User-Agent", c.s.userAgent())
166637	var body io.Reader = nil
166638	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
166639	if err != nil {
166640		return nil, err
166641	}
166642	reqHeaders.Set("Content-Type", "application/json")
166643	c.urlParams_.Set("alt", alt)
166644	c.urlParams_.Set("prettyPrint", "false")
166645	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{resource}/testIamPermissions")
166646	urls += "?" + c.urlParams_.Encode()
166647	req, err := http.NewRequest("POST", urls, body)
166648	if err != nil {
166649		return nil, err
166650	}
166651	req.Header = reqHeaders
166652	googleapi.Expand(req.URL, map[string]string{
166653		"project":  c.project,
166654		"region":   c.region,
166655		"resource": c.resource,
166656	})
166657	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166658}
166659
166660// Do executes the "compute.targetVpnGateways.testIamPermissions" call.
166661// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
166662// non-2xx status code is an error. Response headers are in either
166663// *TestPermissionsResponse.ServerResponse.Header or (if a response was
166664// returned at all) in error.(*googleapi.Error).Header. Use
166665// googleapi.IsNotModified to check whether the returned error was
166666// because http.StatusNotModified was returned.
166667func (c *TargetVpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
166668	gensupport.SetOptions(c.urlParams_, opts...)
166669	res, err := c.doRequest("json")
166670	if res != nil && res.StatusCode == http.StatusNotModified {
166671		if res.Body != nil {
166672			res.Body.Close()
166673		}
166674		return nil, &googleapi.Error{
166675			Code:   res.StatusCode,
166676			Header: res.Header,
166677		}
166678	}
166679	if err != nil {
166680		return nil, err
166681	}
166682	defer googleapi.CloseBody(res)
166683	if err := googleapi.CheckResponse(res); err != nil {
166684		return nil, err
166685	}
166686	ret := &TestPermissionsResponse{
166687		ServerResponse: googleapi.ServerResponse{
166688			Header:         res.Header,
166689			HTTPStatusCode: res.StatusCode,
166690		},
166691	}
166692	target := &ret
166693	if err := gensupport.DecodeResponse(target, res); err != nil {
166694		return nil, err
166695	}
166696	return ret, nil
166697	// {
166698	//   "description": "Returns permissions that a caller has on the specified resource.",
166699	//   "httpMethod": "POST",
166700	//   "id": "compute.targetVpnGateways.testIamPermissions",
166701	//   "parameterOrder": [
166702	//     "project",
166703	//     "region",
166704	//     "resource"
166705	//   ],
166706	//   "parameters": {
166707	//     "project": {
166708	//       "description": "Project ID for this request.",
166709	//       "location": "path",
166710	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166711	//       "required": true,
166712	//       "type": "string"
166713	//     },
166714	//     "region": {
166715	//       "description": "The name of the region for this request.",
166716	//       "location": "path",
166717	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
166718	//       "required": true,
166719	//       "type": "string"
166720	//     },
166721	//     "resource": {
166722	//       "description": "Name or id of the resource for this request.",
166723	//       "location": "path",
166724	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
166725	//       "required": true,
166726	//       "type": "string"
166727	//     }
166728	//   },
166729	//   "path": "{project}/regions/{region}/targetVpnGateways/{resource}/testIamPermissions",
166730	//   "request": {
166731	//     "$ref": "TestPermissionsRequest"
166732	//   },
166733	//   "response": {
166734	//     "$ref": "TestPermissionsResponse"
166735	//   },
166736	//   "scopes": [
166737	//     "https://www.googleapis.com/auth/cloud-platform",
166738	//     "https://www.googleapis.com/auth/compute",
166739	//     "https://www.googleapis.com/auth/compute.readonly"
166740	//   ]
166741	// }
166742
166743}
166744
166745// method id "compute.urlMaps.aggregatedList":
166746
166747type UrlMapsAggregatedListCall struct {
166748	s            *Service
166749	project      string
166750	urlParams_   gensupport.URLParams
166751	ifNoneMatch_ string
166752	ctx_         context.Context
166753	header_      http.Header
166754}
166755
166756// AggregatedList: Retrieves the list of all UrlMap resources, regional
166757// and global, available to the specified project.
166758func (r *UrlMapsService) AggregatedList(project string) *UrlMapsAggregatedListCall {
166759	c := &UrlMapsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166760	c.project = project
166761	return c
166762}
166763
166764// Filter sets the optional parameter "filter": A filter expression that
166765// filters resources listed in the response. The expression must specify
166766// the field name, a comparison operator, and the value that you want to
166767// use for filtering. The value must be a string, a number, or a
166768// boolean. The comparison operator must be either =, !=, >, or <.
166769//
166770// For example, if you are filtering Compute Engine instances, you can
166771// exclude instances named example-instance by specifying name !=
166772// example-instance.
166773//
166774// You can also filter nested fields. For example, you could specify
166775// scheduling.automaticRestart = false to include instances only if they
166776// are not scheduled for automatic restarts. You can use filtering on
166777// nested fields to filter based on resource labels.
166778//
166779// To filter on multiple expressions, provide each separate expression
166780// within parentheses. For example, (scheduling.automaticRestart = true)
166781// (cpuPlatform = "Intel Skylake"). By default, each expression is an
166782// AND expression. However, you can include AND and OR expressions
166783// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
166784// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
166785// true).
166786func (c *UrlMapsAggregatedListCall) Filter(filter string) *UrlMapsAggregatedListCall {
166787	c.urlParams_.Set("filter", filter)
166788	return c
166789}
166790
166791// IncludeAllScopes sets the optional parameter "includeAllScopes":
166792// Indicates whether every visible scope for each scope type (zone,
166793// region, global) should be included in the response. For new resource
166794// types added after this field, the flag has no effect as new resource
166795// types will always include every visible scope for each scope type in
166796// response. For resource types which predate this field, if this flag
166797// is omitted or false, only scopes of the scope types where the
166798// resource type is expected to be found will be included.
166799func (c *UrlMapsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *UrlMapsAggregatedListCall {
166800	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
166801	return c
166802}
166803
166804// MaxResults sets the optional parameter "maxResults": The maximum
166805// number of results per page that should be returned. If the number of
166806// available results is larger than maxResults, Compute Engine returns a
166807// nextPageToken that can be used to get the next page of results in
166808// subsequent list requests. Acceptable values are 0 to 500, inclusive.
166809// (Default: 500)
166810func (c *UrlMapsAggregatedListCall) MaxResults(maxResults int64) *UrlMapsAggregatedListCall {
166811	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
166812	return c
166813}
166814
166815// OrderBy sets the optional parameter "orderBy": Sorts list results by
166816// a certain order. By default, results are returned in alphanumerical
166817// order based on the resource name.
166818//
166819// You can also sort results in descending order based on the creation
166820// timestamp using orderBy="creationTimestamp desc". This sorts results
166821// based on the creationTimestamp field in reverse chronological order
166822// (newest result first). Use this to sort resources like operations so
166823// that the newest operation is returned first.
166824//
166825// Currently, only sorting by name or creationTimestamp desc is
166826// supported.
166827func (c *UrlMapsAggregatedListCall) OrderBy(orderBy string) *UrlMapsAggregatedListCall {
166828	c.urlParams_.Set("orderBy", orderBy)
166829	return c
166830}
166831
166832// PageToken sets the optional parameter "pageToken": Specifies a page
166833// token to use. Set pageToken to the nextPageToken returned by a
166834// previous list request to get the next page of results.
166835func (c *UrlMapsAggregatedListCall) PageToken(pageToken string) *UrlMapsAggregatedListCall {
166836	c.urlParams_.Set("pageToken", pageToken)
166837	return c
166838}
166839
166840// Fields allows partial responses to be retrieved. See
166841// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166842// for more information.
166843func (c *UrlMapsAggregatedListCall) Fields(s ...googleapi.Field) *UrlMapsAggregatedListCall {
166844	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166845	return c
166846}
166847
166848// IfNoneMatch sets the optional parameter which makes the operation
166849// fail if the object's ETag matches the given value. This is useful for
166850// getting updates only after the object has changed since the last
166851// request. Use googleapi.IsNotModified to check whether the response
166852// error from Do is the result of In-None-Match.
166853func (c *UrlMapsAggregatedListCall) IfNoneMatch(entityTag string) *UrlMapsAggregatedListCall {
166854	c.ifNoneMatch_ = entityTag
166855	return c
166856}
166857
166858// Context sets the context to be used in this call's Do method. Any
166859// pending HTTP request will be aborted if the provided context is
166860// canceled.
166861func (c *UrlMapsAggregatedListCall) Context(ctx context.Context) *UrlMapsAggregatedListCall {
166862	c.ctx_ = ctx
166863	return c
166864}
166865
166866// Header returns an http.Header that can be modified by the caller to
166867// add HTTP headers to the request.
166868func (c *UrlMapsAggregatedListCall) Header() http.Header {
166869	if c.header_ == nil {
166870		c.header_ = make(http.Header)
166871	}
166872	return c.header_
166873}
166874
166875func (c *UrlMapsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
166876	reqHeaders := make(http.Header)
166877	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
166878	for k, v := range c.header_ {
166879		reqHeaders[k] = v
166880	}
166881	reqHeaders.Set("User-Agent", c.s.userAgent())
166882	if c.ifNoneMatch_ != "" {
166883		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
166884	}
166885	var body io.Reader = nil
166886	c.urlParams_.Set("alt", alt)
166887	c.urlParams_.Set("prettyPrint", "false")
166888	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/urlMaps")
166889	urls += "?" + c.urlParams_.Encode()
166890	req, err := http.NewRequest("GET", urls, body)
166891	if err != nil {
166892		return nil, err
166893	}
166894	req.Header = reqHeaders
166895	googleapi.Expand(req.URL, map[string]string{
166896		"project": c.project,
166897	})
166898	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166899}
166900
166901// Do executes the "compute.urlMaps.aggregatedList" call.
166902// Exactly one of *UrlMapsAggregatedList or error will be non-nil. Any
166903// non-2xx status code is an error. Response headers are in either
166904// *UrlMapsAggregatedList.ServerResponse.Header or (if a response was
166905// returned at all) in error.(*googleapi.Error).Header. Use
166906// googleapi.IsNotModified to check whether the returned error was
166907// because http.StatusNotModified was returned.
166908func (c *UrlMapsAggregatedListCall) Do(opts ...googleapi.CallOption) (*UrlMapsAggregatedList, error) {
166909	gensupport.SetOptions(c.urlParams_, opts...)
166910	res, err := c.doRequest("json")
166911	if res != nil && res.StatusCode == http.StatusNotModified {
166912		if res.Body != nil {
166913			res.Body.Close()
166914		}
166915		return nil, &googleapi.Error{
166916			Code:   res.StatusCode,
166917			Header: res.Header,
166918		}
166919	}
166920	if err != nil {
166921		return nil, err
166922	}
166923	defer googleapi.CloseBody(res)
166924	if err := googleapi.CheckResponse(res); err != nil {
166925		return nil, err
166926	}
166927	ret := &UrlMapsAggregatedList{
166928		ServerResponse: googleapi.ServerResponse{
166929			Header:         res.Header,
166930			HTTPStatusCode: res.StatusCode,
166931		},
166932	}
166933	target := &ret
166934	if err := gensupport.DecodeResponse(target, res); err != nil {
166935		return nil, err
166936	}
166937	return ret, nil
166938	// {
166939	//   "description": "Retrieves the list of all UrlMap resources, regional and global, available to the specified project.",
166940	//   "httpMethod": "GET",
166941	//   "id": "compute.urlMaps.aggregatedList",
166942	//   "parameterOrder": [
166943	//     "project"
166944	//   ],
166945	//   "parameters": {
166946	//     "filter": {
166947	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
166948	//       "location": "query",
166949	//       "type": "string"
166950	//     },
166951	//     "includeAllScopes": {
166952	//       "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.",
166953	//       "location": "query",
166954	//       "type": "boolean"
166955	//     },
166956	//     "maxResults": {
166957	//       "default": "500",
166958	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
166959	//       "format": "uint32",
166960	//       "location": "query",
166961	//       "minimum": "0",
166962	//       "type": "integer"
166963	//     },
166964	//     "orderBy": {
166965	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
166966	//       "location": "query",
166967	//       "type": "string"
166968	//     },
166969	//     "pageToken": {
166970	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
166971	//       "location": "query",
166972	//       "type": "string"
166973	//     },
166974	//     "project": {
166975	//       "description": "Name of the project scoping this request.",
166976	//       "location": "path",
166977	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166978	//       "required": true,
166979	//       "type": "string"
166980	//     }
166981	//   },
166982	//   "path": "{project}/aggregated/urlMaps",
166983	//   "response": {
166984	//     "$ref": "UrlMapsAggregatedList"
166985	//   },
166986	//   "scopes": [
166987	//     "https://www.googleapis.com/auth/cloud-platform",
166988	//     "https://www.googleapis.com/auth/compute",
166989	//     "https://www.googleapis.com/auth/compute.readonly"
166990	//   ]
166991	// }
166992
166993}
166994
166995// Pages invokes f for each page of results.
166996// A non-nil error returned from f will halt the iteration.
166997// The provided context supersedes any context provided to the Context method.
166998func (c *UrlMapsAggregatedListCall) Pages(ctx context.Context, f func(*UrlMapsAggregatedList) error) error {
166999	c.ctx_ = ctx
167000	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
167001	for {
167002		x, err := c.Do()
167003		if err != nil {
167004			return err
167005		}
167006		if err := f(x); err != nil {
167007			return err
167008		}
167009		if x.NextPageToken == "" {
167010			return nil
167011		}
167012		c.PageToken(x.NextPageToken)
167013	}
167014}
167015
167016// method id "compute.urlMaps.delete":
167017
167018type UrlMapsDeleteCall struct {
167019	s          *Service
167020	project    string
167021	urlMap     string
167022	urlParams_ gensupport.URLParams
167023	ctx_       context.Context
167024	header_    http.Header
167025}
167026
167027// Delete: Deletes the specified UrlMap resource.
167028// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/delete
167029func (r *UrlMapsService) Delete(project string, urlMap string) *UrlMapsDeleteCall {
167030	c := &UrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167031	c.project = project
167032	c.urlMap = urlMap
167033	return c
167034}
167035
167036// RequestId sets the optional parameter "requestId": An optional
167037// request ID to identify requests. Specify a unique request ID so that
167038// if you must retry your request, the server will know to ignore the
167039// request if it has already been completed.
167040//
167041// For example, consider a situation where you make an initial request
167042// and the request times out. If you make the request again with the
167043// same request ID, the server can check if original operation with the
167044// same request ID was received, and if so, will ignore the second
167045// request. This prevents clients from accidentally creating duplicate
167046// commitments.
167047//
167048// The request ID must be a valid UUID with the exception that zero UUID
167049// is not supported (00000000-0000-0000-0000-000000000000).
167050func (c *UrlMapsDeleteCall) RequestId(requestId string) *UrlMapsDeleteCall {
167051	c.urlParams_.Set("requestId", requestId)
167052	return c
167053}
167054
167055// Fields allows partial responses to be retrieved. See
167056// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167057// for more information.
167058func (c *UrlMapsDeleteCall) Fields(s ...googleapi.Field) *UrlMapsDeleteCall {
167059	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167060	return c
167061}
167062
167063// Context sets the context to be used in this call's Do method. Any
167064// pending HTTP request will be aborted if the provided context is
167065// canceled.
167066func (c *UrlMapsDeleteCall) Context(ctx context.Context) *UrlMapsDeleteCall {
167067	c.ctx_ = ctx
167068	return c
167069}
167070
167071// Header returns an http.Header that can be modified by the caller to
167072// add HTTP headers to the request.
167073func (c *UrlMapsDeleteCall) Header() http.Header {
167074	if c.header_ == nil {
167075		c.header_ = make(http.Header)
167076	}
167077	return c.header_
167078}
167079
167080func (c *UrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) {
167081	reqHeaders := make(http.Header)
167082	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
167083	for k, v := range c.header_ {
167084		reqHeaders[k] = v
167085	}
167086	reqHeaders.Set("User-Agent", c.s.userAgent())
167087	var body io.Reader = nil
167088	c.urlParams_.Set("alt", alt)
167089	c.urlParams_.Set("prettyPrint", "false")
167090	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
167091	urls += "?" + c.urlParams_.Encode()
167092	req, err := http.NewRequest("DELETE", urls, body)
167093	if err != nil {
167094		return nil, err
167095	}
167096	req.Header = reqHeaders
167097	googleapi.Expand(req.URL, map[string]string{
167098		"project": c.project,
167099		"urlMap":  c.urlMap,
167100	})
167101	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167102}
167103
167104// Do executes the "compute.urlMaps.delete" call.
167105// Exactly one of *Operation or error will be non-nil. Any non-2xx
167106// status code is an error. Response headers are in either
167107// *Operation.ServerResponse.Header or (if a response was returned at
167108// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
167109// to check whether the returned error was because
167110// http.StatusNotModified was returned.
167111func (c *UrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
167112	gensupport.SetOptions(c.urlParams_, opts...)
167113	res, err := c.doRequest("json")
167114	if res != nil && res.StatusCode == http.StatusNotModified {
167115		if res.Body != nil {
167116			res.Body.Close()
167117		}
167118		return nil, &googleapi.Error{
167119			Code:   res.StatusCode,
167120			Header: res.Header,
167121		}
167122	}
167123	if err != nil {
167124		return nil, err
167125	}
167126	defer googleapi.CloseBody(res)
167127	if err := googleapi.CheckResponse(res); err != nil {
167128		return nil, err
167129	}
167130	ret := &Operation{
167131		ServerResponse: googleapi.ServerResponse{
167132			Header:         res.Header,
167133			HTTPStatusCode: res.StatusCode,
167134		},
167135	}
167136	target := &ret
167137	if err := gensupport.DecodeResponse(target, res); err != nil {
167138		return nil, err
167139	}
167140	return ret, nil
167141	// {
167142	//   "description": "Deletes the specified UrlMap resource.",
167143	//   "httpMethod": "DELETE",
167144	//   "id": "compute.urlMaps.delete",
167145	//   "parameterOrder": [
167146	//     "project",
167147	//     "urlMap"
167148	//   ],
167149	//   "parameters": {
167150	//     "project": {
167151	//       "description": "Project ID for this request.",
167152	//       "location": "path",
167153	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167154	//       "required": true,
167155	//       "type": "string"
167156	//     },
167157	//     "requestId": {
167158	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
167159	//       "location": "query",
167160	//       "type": "string"
167161	//     },
167162	//     "urlMap": {
167163	//       "description": "Name of the UrlMap resource to delete.",
167164	//       "location": "path",
167165	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
167166	//       "required": true,
167167	//       "type": "string"
167168	//     }
167169	//   },
167170	//   "path": "{project}/global/urlMaps/{urlMap}",
167171	//   "response": {
167172	//     "$ref": "Operation"
167173	//   },
167174	//   "scopes": [
167175	//     "https://www.googleapis.com/auth/cloud-platform",
167176	//     "https://www.googleapis.com/auth/compute"
167177	//   ]
167178	// }
167179
167180}
167181
167182// method id "compute.urlMaps.get":
167183
167184type UrlMapsGetCall struct {
167185	s            *Service
167186	project      string
167187	urlMap       string
167188	urlParams_   gensupport.URLParams
167189	ifNoneMatch_ string
167190	ctx_         context.Context
167191	header_      http.Header
167192}
167193
167194// Get: Returns the specified UrlMap resource. Gets a list of available
167195// URL maps by making a list() request.
167196// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/get
167197func (r *UrlMapsService) Get(project string, urlMap string) *UrlMapsGetCall {
167198	c := &UrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167199	c.project = project
167200	c.urlMap = urlMap
167201	return c
167202}
167203
167204// Fields allows partial responses to be retrieved. See
167205// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167206// for more information.
167207func (c *UrlMapsGetCall) Fields(s ...googleapi.Field) *UrlMapsGetCall {
167208	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167209	return c
167210}
167211
167212// IfNoneMatch sets the optional parameter which makes the operation
167213// fail if the object's ETag matches the given value. This is useful for
167214// getting updates only after the object has changed since the last
167215// request. Use googleapi.IsNotModified to check whether the response
167216// error from Do is the result of In-None-Match.
167217func (c *UrlMapsGetCall) IfNoneMatch(entityTag string) *UrlMapsGetCall {
167218	c.ifNoneMatch_ = entityTag
167219	return c
167220}
167221
167222// Context sets the context to be used in this call's Do method. Any
167223// pending HTTP request will be aborted if the provided context is
167224// canceled.
167225func (c *UrlMapsGetCall) Context(ctx context.Context) *UrlMapsGetCall {
167226	c.ctx_ = ctx
167227	return c
167228}
167229
167230// Header returns an http.Header that can be modified by the caller to
167231// add HTTP headers to the request.
167232func (c *UrlMapsGetCall) Header() http.Header {
167233	if c.header_ == nil {
167234		c.header_ = make(http.Header)
167235	}
167236	return c.header_
167237}
167238
167239func (c *UrlMapsGetCall) doRequest(alt string) (*http.Response, error) {
167240	reqHeaders := make(http.Header)
167241	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
167242	for k, v := range c.header_ {
167243		reqHeaders[k] = v
167244	}
167245	reqHeaders.Set("User-Agent", c.s.userAgent())
167246	if c.ifNoneMatch_ != "" {
167247		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
167248	}
167249	var body io.Reader = nil
167250	c.urlParams_.Set("alt", alt)
167251	c.urlParams_.Set("prettyPrint", "false")
167252	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
167253	urls += "?" + c.urlParams_.Encode()
167254	req, err := http.NewRequest("GET", urls, body)
167255	if err != nil {
167256		return nil, err
167257	}
167258	req.Header = reqHeaders
167259	googleapi.Expand(req.URL, map[string]string{
167260		"project": c.project,
167261		"urlMap":  c.urlMap,
167262	})
167263	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167264}
167265
167266// Do executes the "compute.urlMaps.get" call.
167267// Exactly one of *UrlMap or error will be non-nil. Any non-2xx status
167268// code is an error. Response headers are in either
167269// *UrlMap.ServerResponse.Header or (if a response was returned at all)
167270// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
167271// check whether the returned error was because http.StatusNotModified
167272// was returned.
167273func (c *UrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) {
167274	gensupport.SetOptions(c.urlParams_, opts...)
167275	res, err := c.doRequest("json")
167276	if res != nil && res.StatusCode == http.StatusNotModified {
167277		if res.Body != nil {
167278			res.Body.Close()
167279		}
167280		return nil, &googleapi.Error{
167281			Code:   res.StatusCode,
167282			Header: res.Header,
167283		}
167284	}
167285	if err != nil {
167286		return nil, err
167287	}
167288	defer googleapi.CloseBody(res)
167289	if err := googleapi.CheckResponse(res); err != nil {
167290		return nil, err
167291	}
167292	ret := &UrlMap{
167293		ServerResponse: googleapi.ServerResponse{
167294			Header:         res.Header,
167295			HTTPStatusCode: res.StatusCode,
167296		},
167297	}
167298	target := &ret
167299	if err := gensupport.DecodeResponse(target, res); err != nil {
167300		return nil, err
167301	}
167302	return ret, nil
167303	// {
167304	//   "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.",
167305	//   "httpMethod": "GET",
167306	//   "id": "compute.urlMaps.get",
167307	//   "parameterOrder": [
167308	//     "project",
167309	//     "urlMap"
167310	//   ],
167311	//   "parameters": {
167312	//     "project": {
167313	//       "description": "Project ID for this request.",
167314	//       "location": "path",
167315	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167316	//       "required": true,
167317	//       "type": "string"
167318	//     },
167319	//     "urlMap": {
167320	//       "description": "Name of the UrlMap resource to return.",
167321	//       "location": "path",
167322	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
167323	//       "required": true,
167324	//       "type": "string"
167325	//     }
167326	//   },
167327	//   "path": "{project}/global/urlMaps/{urlMap}",
167328	//   "response": {
167329	//     "$ref": "UrlMap"
167330	//   },
167331	//   "scopes": [
167332	//     "https://www.googleapis.com/auth/cloud-platform",
167333	//     "https://www.googleapis.com/auth/compute",
167334	//     "https://www.googleapis.com/auth/compute.readonly"
167335	//   ]
167336	// }
167337
167338}
167339
167340// method id "compute.urlMaps.insert":
167341
167342type UrlMapsInsertCall struct {
167343	s          *Service
167344	project    string
167345	urlmap     *UrlMap
167346	urlParams_ gensupport.URLParams
167347	ctx_       context.Context
167348	header_    http.Header
167349}
167350
167351// Insert: Creates a UrlMap resource in the specified project using the
167352// data included in the request.
167353// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/insert
167354func (r *UrlMapsService) Insert(project string, urlmap *UrlMap) *UrlMapsInsertCall {
167355	c := &UrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167356	c.project = project
167357	c.urlmap = urlmap
167358	return c
167359}
167360
167361// RequestId sets the optional parameter "requestId": An optional
167362// request ID to identify requests. Specify a unique request ID so that
167363// if you must retry your request, the server will know to ignore the
167364// request if it has already been completed.
167365//
167366// For example, consider a situation where you make an initial request
167367// and the request times out. If you make the request again with the
167368// same request ID, the server can check if original operation with the
167369// same request ID was received, and if so, will ignore the second
167370// request. This prevents clients from accidentally creating duplicate
167371// commitments.
167372//
167373// The request ID must be a valid UUID with the exception that zero UUID
167374// is not supported (00000000-0000-0000-0000-000000000000).
167375func (c *UrlMapsInsertCall) RequestId(requestId string) *UrlMapsInsertCall {
167376	c.urlParams_.Set("requestId", requestId)
167377	return c
167378}
167379
167380// Fields allows partial responses to be retrieved. See
167381// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167382// for more information.
167383func (c *UrlMapsInsertCall) Fields(s ...googleapi.Field) *UrlMapsInsertCall {
167384	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167385	return c
167386}
167387
167388// Context sets the context to be used in this call's Do method. Any
167389// pending HTTP request will be aborted if the provided context is
167390// canceled.
167391func (c *UrlMapsInsertCall) Context(ctx context.Context) *UrlMapsInsertCall {
167392	c.ctx_ = ctx
167393	return c
167394}
167395
167396// Header returns an http.Header that can be modified by the caller to
167397// add HTTP headers to the request.
167398func (c *UrlMapsInsertCall) Header() http.Header {
167399	if c.header_ == nil {
167400		c.header_ = make(http.Header)
167401	}
167402	return c.header_
167403}
167404
167405func (c *UrlMapsInsertCall) doRequest(alt string) (*http.Response, error) {
167406	reqHeaders := make(http.Header)
167407	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
167408	for k, v := range c.header_ {
167409		reqHeaders[k] = v
167410	}
167411	reqHeaders.Set("User-Agent", c.s.userAgent())
167412	var body io.Reader = nil
167413	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
167414	if err != nil {
167415		return nil, err
167416	}
167417	reqHeaders.Set("Content-Type", "application/json")
167418	c.urlParams_.Set("alt", alt)
167419	c.urlParams_.Set("prettyPrint", "false")
167420	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps")
167421	urls += "?" + c.urlParams_.Encode()
167422	req, err := http.NewRequest("POST", urls, body)
167423	if err != nil {
167424		return nil, err
167425	}
167426	req.Header = reqHeaders
167427	googleapi.Expand(req.URL, map[string]string{
167428		"project": c.project,
167429	})
167430	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167431}
167432
167433// Do executes the "compute.urlMaps.insert" call.
167434// Exactly one of *Operation or error will be non-nil. Any non-2xx
167435// status code is an error. Response headers are in either
167436// *Operation.ServerResponse.Header or (if a response was returned at
167437// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
167438// to check whether the returned error was because
167439// http.StatusNotModified was returned.
167440func (c *UrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
167441	gensupport.SetOptions(c.urlParams_, opts...)
167442	res, err := c.doRequest("json")
167443	if res != nil && res.StatusCode == http.StatusNotModified {
167444		if res.Body != nil {
167445			res.Body.Close()
167446		}
167447		return nil, &googleapi.Error{
167448			Code:   res.StatusCode,
167449			Header: res.Header,
167450		}
167451	}
167452	if err != nil {
167453		return nil, err
167454	}
167455	defer googleapi.CloseBody(res)
167456	if err := googleapi.CheckResponse(res); err != nil {
167457		return nil, err
167458	}
167459	ret := &Operation{
167460		ServerResponse: googleapi.ServerResponse{
167461			Header:         res.Header,
167462			HTTPStatusCode: res.StatusCode,
167463		},
167464	}
167465	target := &ret
167466	if err := gensupport.DecodeResponse(target, res); err != nil {
167467		return nil, err
167468	}
167469	return ret, nil
167470	// {
167471	//   "description": "Creates a UrlMap resource in the specified project using the data included in the request.",
167472	//   "httpMethod": "POST",
167473	//   "id": "compute.urlMaps.insert",
167474	//   "parameterOrder": [
167475	//     "project"
167476	//   ],
167477	//   "parameters": {
167478	//     "project": {
167479	//       "description": "Project ID for this request.",
167480	//       "location": "path",
167481	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167482	//       "required": true,
167483	//       "type": "string"
167484	//     },
167485	//     "requestId": {
167486	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
167487	//       "location": "query",
167488	//       "type": "string"
167489	//     }
167490	//   },
167491	//   "path": "{project}/global/urlMaps",
167492	//   "request": {
167493	//     "$ref": "UrlMap"
167494	//   },
167495	//   "response": {
167496	//     "$ref": "Operation"
167497	//   },
167498	//   "scopes": [
167499	//     "https://www.googleapis.com/auth/cloud-platform",
167500	//     "https://www.googleapis.com/auth/compute"
167501	//   ]
167502	// }
167503
167504}
167505
167506// method id "compute.urlMaps.invalidateCache":
167507
167508type UrlMapsInvalidateCacheCall struct {
167509	s                     *Service
167510	project               string
167511	urlMap                string
167512	cacheinvalidationrule *CacheInvalidationRule
167513	urlParams_            gensupport.URLParams
167514	ctx_                  context.Context
167515	header_               http.Header
167516}
167517
167518// InvalidateCache: Initiates a cache invalidation operation,
167519// invalidating the specified path, scoped to the specified UrlMap.
167520func (r *UrlMapsService) InvalidateCache(project string, urlMap string, cacheinvalidationrule *CacheInvalidationRule) *UrlMapsInvalidateCacheCall {
167521	c := &UrlMapsInvalidateCacheCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167522	c.project = project
167523	c.urlMap = urlMap
167524	c.cacheinvalidationrule = cacheinvalidationrule
167525	return c
167526}
167527
167528// RequestId sets the optional parameter "requestId": An optional
167529// request ID to identify requests. Specify a unique request ID so that
167530// if you must retry your request, the server will know to ignore the
167531// request if it has already been completed.
167532//
167533// For example, consider a situation where you make an initial request
167534// and the request times out. If you make the request again with the
167535// same request ID, the server can check if original operation with the
167536// same request ID was received, and if so, will ignore the second
167537// request. This prevents clients from accidentally creating duplicate
167538// commitments.
167539//
167540// The request ID must be a valid UUID with the exception that zero UUID
167541// is not supported (00000000-0000-0000-0000-000000000000).
167542func (c *UrlMapsInvalidateCacheCall) RequestId(requestId string) *UrlMapsInvalidateCacheCall {
167543	c.urlParams_.Set("requestId", requestId)
167544	return c
167545}
167546
167547// Fields allows partial responses to be retrieved. See
167548// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167549// for more information.
167550func (c *UrlMapsInvalidateCacheCall) Fields(s ...googleapi.Field) *UrlMapsInvalidateCacheCall {
167551	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167552	return c
167553}
167554
167555// Context sets the context to be used in this call's Do method. Any
167556// pending HTTP request will be aborted if the provided context is
167557// canceled.
167558func (c *UrlMapsInvalidateCacheCall) Context(ctx context.Context) *UrlMapsInvalidateCacheCall {
167559	c.ctx_ = ctx
167560	return c
167561}
167562
167563// Header returns an http.Header that can be modified by the caller to
167564// add HTTP headers to the request.
167565func (c *UrlMapsInvalidateCacheCall) Header() http.Header {
167566	if c.header_ == nil {
167567		c.header_ = make(http.Header)
167568	}
167569	return c.header_
167570}
167571
167572func (c *UrlMapsInvalidateCacheCall) doRequest(alt string) (*http.Response, error) {
167573	reqHeaders := make(http.Header)
167574	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
167575	for k, v := range c.header_ {
167576		reqHeaders[k] = v
167577	}
167578	reqHeaders.Set("User-Agent", c.s.userAgent())
167579	var body io.Reader = nil
167580	body, err := googleapi.WithoutDataWrapper.JSONReader(c.cacheinvalidationrule)
167581	if err != nil {
167582		return nil, err
167583	}
167584	reqHeaders.Set("Content-Type", "application/json")
167585	c.urlParams_.Set("alt", alt)
167586	c.urlParams_.Set("prettyPrint", "false")
167587	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}/invalidateCache")
167588	urls += "?" + c.urlParams_.Encode()
167589	req, err := http.NewRequest("POST", urls, body)
167590	if err != nil {
167591		return nil, err
167592	}
167593	req.Header = reqHeaders
167594	googleapi.Expand(req.URL, map[string]string{
167595		"project": c.project,
167596		"urlMap":  c.urlMap,
167597	})
167598	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167599}
167600
167601// Do executes the "compute.urlMaps.invalidateCache" call.
167602// Exactly one of *Operation or error will be non-nil. Any non-2xx
167603// status code is an error. Response headers are in either
167604// *Operation.ServerResponse.Header or (if a response was returned at
167605// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
167606// to check whether the returned error was because
167607// http.StatusNotModified was returned.
167608func (c *UrlMapsInvalidateCacheCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
167609	gensupport.SetOptions(c.urlParams_, opts...)
167610	res, err := c.doRequest("json")
167611	if res != nil && res.StatusCode == http.StatusNotModified {
167612		if res.Body != nil {
167613			res.Body.Close()
167614		}
167615		return nil, &googleapi.Error{
167616			Code:   res.StatusCode,
167617			Header: res.Header,
167618		}
167619	}
167620	if err != nil {
167621		return nil, err
167622	}
167623	defer googleapi.CloseBody(res)
167624	if err := googleapi.CheckResponse(res); err != nil {
167625		return nil, err
167626	}
167627	ret := &Operation{
167628		ServerResponse: googleapi.ServerResponse{
167629			Header:         res.Header,
167630			HTTPStatusCode: res.StatusCode,
167631		},
167632	}
167633	target := &ret
167634	if err := gensupport.DecodeResponse(target, res); err != nil {
167635		return nil, err
167636	}
167637	return ret, nil
167638	// {
167639	//   "description": "Initiates a cache invalidation operation, invalidating the specified path, scoped to the specified UrlMap.",
167640	//   "httpMethod": "POST",
167641	//   "id": "compute.urlMaps.invalidateCache",
167642	//   "parameterOrder": [
167643	//     "project",
167644	//     "urlMap"
167645	//   ],
167646	//   "parameters": {
167647	//     "project": {
167648	//       "description": "Project ID for this request.",
167649	//       "location": "path",
167650	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167651	//       "required": true,
167652	//       "type": "string"
167653	//     },
167654	//     "requestId": {
167655	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
167656	//       "location": "query",
167657	//       "type": "string"
167658	//     },
167659	//     "urlMap": {
167660	//       "description": "Name of the UrlMap scoping this request.",
167661	//       "location": "path",
167662	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
167663	//       "required": true,
167664	//       "type": "string"
167665	//     }
167666	//   },
167667	//   "path": "{project}/global/urlMaps/{urlMap}/invalidateCache",
167668	//   "request": {
167669	//     "$ref": "CacheInvalidationRule"
167670	//   },
167671	//   "response": {
167672	//     "$ref": "Operation"
167673	//   },
167674	//   "scopes": [
167675	//     "https://www.googleapis.com/auth/cloud-platform",
167676	//     "https://www.googleapis.com/auth/compute"
167677	//   ]
167678	// }
167679
167680}
167681
167682// method id "compute.urlMaps.list":
167683
167684type UrlMapsListCall struct {
167685	s            *Service
167686	project      string
167687	urlParams_   gensupport.URLParams
167688	ifNoneMatch_ string
167689	ctx_         context.Context
167690	header_      http.Header
167691}
167692
167693// List: Retrieves the list of UrlMap resources available to the
167694// specified project.
167695// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/list
167696func (r *UrlMapsService) List(project string) *UrlMapsListCall {
167697	c := &UrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167698	c.project = project
167699	return c
167700}
167701
167702// Filter sets the optional parameter "filter": A filter expression that
167703// filters resources listed in the response. The expression must specify
167704// the field name, a comparison operator, and the value that you want to
167705// use for filtering. The value must be a string, a number, or a
167706// boolean. The comparison operator must be either =, !=, >, or <.
167707//
167708// For example, if you are filtering Compute Engine instances, you can
167709// exclude instances named example-instance by specifying name !=
167710// example-instance.
167711//
167712// You can also filter nested fields. For example, you could specify
167713// scheduling.automaticRestart = false to include instances only if they
167714// are not scheduled for automatic restarts. You can use filtering on
167715// nested fields to filter based on resource labels.
167716//
167717// To filter on multiple expressions, provide each separate expression
167718// within parentheses. For example, (scheduling.automaticRestart = true)
167719// (cpuPlatform = "Intel Skylake"). By default, each expression is an
167720// AND expression. However, you can include AND and OR expressions
167721// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
167722// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
167723// true).
167724func (c *UrlMapsListCall) Filter(filter string) *UrlMapsListCall {
167725	c.urlParams_.Set("filter", filter)
167726	return c
167727}
167728
167729// MaxResults sets the optional parameter "maxResults": The maximum
167730// number of results per page that should be returned. If the number of
167731// available results is larger than maxResults, Compute Engine returns a
167732// nextPageToken that can be used to get the next page of results in
167733// subsequent list requests. Acceptable values are 0 to 500, inclusive.
167734// (Default: 500)
167735func (c *UrlMapsListCall) MaxResults(maxResults int64) *UrlMapsListCall {
167736	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
167737	return c
167738}
167739
167740// OrderBy sets the optional parameter "orderBy": Sorts list results by
167741// a certain order. By default, results are returned in alphanumerical
167742// order based on the resource name.
167743//
167744// You can also sort results in descending order based on the creation
167745// timestamp using orderBy="creationTimestamp desc". This sorts results
167746// based on the creationTimestamp field in reverse chronological order
167747// (newest result first). Use this to sort resources like operations so
167748// that the newest operation is returned first.
167749//
167750// Currently, only sorting by name or creationTimestamp desc is
167751// supported.
167752func (c *UrlMapsListCall) OrderBy(orderBy string) *UrlMapsListCall {
167753	c.urlParams_.Set("orderBy", orderBy)
167754	return c
167755}
167756
167757// PageToken sets the optional parameter "pageToken": Specifies a page
167758// token to use. Set pageToken to the nextPageToken returned by a
167759// previous list request to get the next page of results.
167760func (c *UrlMapsListCall) PageToken(pageToken string) *UrlMapsListCall {
167761	c.urlParams_.Set("pageToken", pageToken)
167762	return c
167763}
167764
167765// Fields allows partial responses to be retrieved. See
167766// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167767// for more information.
167768func (c *UrlMapsListCall) Fields(s ...googleapi.Field) *UrlMapsListCall {
167769	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167770	return c
167771}
167772
167773// IfNoneMatch sets the optional parameter which makes the operation
167774// fail if the object's ETag matches the given value. This is useful for
167775// getting updates only after the object has changed since the last
167776// request. Use googleapi.IsNotModified to check whether the response
167777// error from Do is the result of In-None-Match.
167778func (c *UrlMapsListCall) IfNoneMatch(entityTag string) *UrlMapsListCall {
167779	c.ifNoneMatch_ = entityTag
167780	return c
167781}
167782
167783// Context sets the context to be used in this call's Do method. Any
167784// pending HTTP request will be aborted if the provided context is
167785// canceled.
167786func (c *UrlMapsListCall) Context(ctx context.Context) *UrlMapsListCall {
167787	c.ctx_ = ctx
167788	return c
167789}
167790
167791// Header returns an http.Header that can be modified by the caller to
167792// add HTTP headers to the request.
167793func (c *UrlMapsListCall) Header() http.Header {
167794	if c.header_ == nil {
167795		c.header_ = make(http.Header)
167796	}
167797	return c.header_
167798}
167799
167800func (c *UrlMapsListCall) doRequest(alt string) (*http.Response, error) {
167801	reqHeaders := make(http.Header)
167802	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
167803	for k, v := range c.header_ {
167804		reqHeaders[k] = v
167805	}
167806	reqHeaders.Set("User-Agent", c.s.userAgent())
167807	if c.ifNoneMatch_ != "" {
167808		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
167809	}
167810	var body io.Reader = nil
167811	c.urlParams_.Set("alt", alt)
167812	c.urlParams_.Set("prettyPrint", "false")
167813	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps")
167814	urls += "?" + c.urlParams_.Encode()
167815	req, err := http.NewRequest("GET", urls, body)
167816	if err != nil {
167817		return nil, err
167818	}
167819	req.Header = reqHeaders
167820	googleapi.Expand(req.URL, map[string]string{
167821		"project": c.project,
167822	})
167823	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167824}
167825
167826// Do executes the "compute.urlMaps.list" call.
167827// Exactly one of *UrlMapList or error will be non-nil. Any non-2xx
167828// status code is an error. Response headers are in either
167829// *UrlMapList.ServerResponse.Header or (if a response was returned at
167830// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
167831// to check whether the returned error was because
167832// http.StatusNotModified was returned.
167833func (c *UrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, error) {
167834	gensupport.SetOptions(c.urlParams_, opts...)
167835	res, err := c.doRequest("json")
167836	if res != nil && res.StatusCode == http.StatusNotModified {
167837		if res.Body != nil {
167838			res.Body.Close()
167839		}
167840		return nil, &googleapi.Error{
167841			Code:   res.StatusCode,
167842			Header: res.Header,
167843		}
167844	}
167845	if err != nil {
167846		return nil, err
167847	}
167848	defer googleapi.CloseBody(res)
167849	if err := googleapi.CheckResponse(res); err != nil {
167850		return nil, err
167851	}
167852	ret := &UrlMapList{
167853		ServerResponse: googleapi.ServerResponse{
167854			Header:         res.Header,
167855			HTTPStatusCode: res.StatusCode,
167856		},
167857	}
167858	target := &ret
167859	if err := gensupport.DecodeResponse(target, res); err != nil {
167860		return nil, err
167861	}
167862	return ret, nil
167863	// {
167864	//   "description": "Retrieves the list of UrlMap resources available to the specified project.",
167865	//   "httpMethod": "GET",
167866	//   "id": "compute.urlMaps.list",
167867	//   "parameterOrder": [
167868	//     "project"
167869	//   ],
167870	//   "parameters": {
167871	//     "filter": {
167872	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
167873	//       "location": "query",
167874	//       "type": "string"
167875	//     },
167876	//     "maxResults": {
167877	//       "default": "500",
167878	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
167879	//       "format": "uint32",
167880	//       "location": "query",
167881	//       "minimum": "0",
167882	//       "type": "integer"
167883	//     },
167884	//     "orderBy": {
167885	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
167886	//       "location": "query",
167887	//       "type": "string"
167888	//     },
167889	//     "pageToken": {
167890	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
167891	//       "location": "query",
167892	//       "type": "string"
167893	//     },
167894	//     "project": {
167895	//       "description": "Project ID for this request.",
167896	//       "location": "path",
167897	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167898	//       "required": true,
167899	//       "type": "string"
167900	//     }
167901	//   },
167902	//   "path": "{project}/global/urlMaps",
167903	//   "response": {
167904	//     "$ref": "UrlMapList"
167905	//   },
167906	//   "scopes": [
167907	//     "https://www.googleapis.com/auth/cloud-platform",
167908	//     "https://www.googleapis.com/auth/compute",
167909	//     "https://www.googleapis.com/auth/compute.readonly"
167910	//   ]
167911	// }
167912
167913}
167914
167915// Pages invokes f for each page of results.
167916// A non-nil error returned from f will halt the iteration.
167917// The provided context supersedes any context provided to the Context method.
167918func (c *UrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error {
167919	c.ctx_ = ctx
167920	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
167921	for {
167922		x, err := c.Do()
167923		if err != nil {
167924			return err
167925		}
167926		if err := f(x); err != nil {
167927			return err
167928		}
167929		if x.NextPageToken == "" {
167930			return nil
167931		}
167932		c.PageToken(x.NextPageToken)
167933	}
167934}
167935
167936// method id "compute.urlMaps.patch":
167937
167938type UrlMapsPatchCall struct {
167939	s          *Service
167940	project    string
167941	urlMap     string
167942	urlmap     *UrlMap
167943	urlParams_ gensupport.URLParams
167944	ctx_       context.Context
167945	header_    http.Header
167946}
167947
167948// Patch: Patches the specified UrlMap resource with the data included
167949// in the request. This method supports PATCH semantics and uses the
167950// JSON merge patch format and processing rules.
167951// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/patch
167952func (r *UrlMapsService) Patch(project string, urlMap string, urlmap *UrlMap) *UrlMapsPatchCall {
167953	c := &UrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167954	c.project = project
167955	c.urlMap = urlMap
167956	c.urlmap = urlmap
167957	return c
167958}
167959
167960// RequestId sets the optional parameter "requestId": An optional
167961// request ID to identify requests. Specify a unique request ID so that
167962// if you must retry your request, the server will know to ignore the
167963// request if it has already been completed.
167964//
167965// For example, consider a situation where you make an initial request
167966// and the request times out. If you make the request again with the
167967// same request ID, the server can check if original operation with the
167968// same request ID was received, and if so, will ignore the second
167969// request. This prevents clients from accidentally creating duplicate
167970// commitments.
167971//
167972// The request ID must be a valid UUID with the exception that zero UUID
167973// is not supported (00000000-0000-0000-0000-000000000000).
167974func (c *UrlMapsPatchCall) RequestId(requestId string) *UrlMapsPatchCall {
167975	c.urlParams_.Set("requestId", requestId)
167976	return c
167977}
167978
167979// Fields allows partial responses to be retrieved. See
167980// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167981// for more information.
167982func (c *UrlMapsPatchCall) Fields(s ...googleapi.Field) *UrlMapsPatchCall {
167983	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167984	return c
167985}
167986
167987// Context sets the context to be used in this call's Do method. Any
167988// pending HTTP request will be aborted if the provided context is
167989// canceled.
167990func (c *UrlMapsPatchCall) Context(ctx context.Context) *UrlMapsPatchCall {
167991	c.ctx_ = ctx
167992	return c
167993}
167994
167995// Header returns an http.Header that can be modified by the caller to
167996// add HTTP headers to the request.
167997func (c *UrlMapsPatchCall) Header() http.Header {
167998	if c.header_ == nil {
167999		c.header_ = make(http.Header)
168000	}
168001	return c.header_
168002}
168003
168004func (c *UrlMapsPatchCall) doRequest(alt string) (*http.Response, error) {
168005	reqHeaders := make(http.Header)
168006	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
168007	for k, v := range c.header_ {
168008		reqHeaders[k] = v
168009	}
168010	reqHeaders.Set("User-Agent", c.s.userAgent())
168011	var body io.Reader = nil
168012	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
168013	if err != nil {
168014		return nil, err
168015	}
168016	reqHeaders.Set("Content-Type", "application/json")
168017	c.urlParams_.Set("alt", alt)
168018	c.urlParams_.Set("prettyPrint", "false")
168019	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
168020	urls += "?" + c.urlParams_.Encode()
168021	req, err := http.NewRequest("PATCH", urls, body)
168022	if err != nil {
168023		return nil, err
168024	}
168025	req.Header = reqHeaders
168026	googleapi.Expand(req.URL, map[string]string{
168027		"project": c.project,
168028		"urlMap":  c.urlMap,
168029	})
168030	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168031}
168032
168033// Do executes the "compute.urlMaps.patch" call.
168034// Exactly one of *Operation or error will be non-nil. Any non-2xx
168035// status code is an error. Response headers are in either
168036// *Operation.ServerResponse.Header or (if a response was returned at
168037// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
168038// to check whether the returned error was because
168039// http.StatusNotModified was returned.
168040func (c *UrlMapsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
168041	gensupport.SetOptions(c.urlParams_, opts...)
168042	res, err := c.doRequest("json")
168043	if res != nil && res.StatusCode == http.StatusNotModified {
168044		if res.Body != nil {
168045			res.Body.Close()
168046		}
168047		return nil, &googleapi.Error{
168048			Code:   res.StatusCode,
168049			Header: res.Header,
168050		}
168051	}
168052	if err != nil {
168053		return nil, err
168054	}
168055	defer googleapi.CloseBody(res)
168056	if err := googleapi.CheckResponse(res); err != nil {
168057		return nil, err
168058	}
168059	ret := &Operation{
168060		ServerResponse: googleapi.ServerResponse{
168061			Header:         res.Header,
168062			HTTPStatusCode: res.StatusCode,
168063		},
168064	}
168065	target := &ret
168066	if err := gensupport.DecodeResponse(target, res); err != nil {
168067		return nil, err
168068	}
168069	return ret, nil
168070	// {
168071	//   "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.",
168072	//   "httpMethod": "PATCH",
168073	//   "id": "compute.urlMaps.patch",
168074	//   "parameterOrder": [
168075	//     "project",
168076	//     "urlMap"
168077	//   ],
168078	//   "parameters": {
168079	//     "project": {
168080	//       "description": "Project ID for this request.",
168081	//       "location": "path",
168082	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168083	//       "required": true,
168084	//       "type": "string"
168085	//     },
168086	//     "requestId": {
168087	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
168088	//       "location": "query",
168089	//       "type": "string"
168090	//     },
168091	//     "urlMap": {
168092	//       "description": "Name of the UrlMap resource to patch.",
168093	//       "location": "path",
168094	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
168095	//       "required": true,
168096	//       "type": "string"
168097	//     }
168098	//   },
168099	//   "path": "{project}/global/urlMaps/{urlMap}",
168100	//   "request": {
168101	//     "$ref": "UrlMap"
168102	//   },
168103	//   "response": {
168104	//     "$ref": "Operation"
168105	//   },
168106	//   "scopes": [
168107	//     "https://www.googleapis.com/auth/cloud-platform",
168108	//     "https://www.googleapis.com/auth/compute"
168109	//   ]
168110	// }
168111
168112}
168113
168114// method id "compute.urlMaps.testIamPermissions":
168115
168116type UrlMapsTestIamPermissionsCall struct {
168117	s                      *Service
168118	project                string
168119	resource               string
168120	testpermissionsrequest *TestPermissionsRequest
168121	urlParams_             gensupport.URLParams
168122	ctx_                   context.Context
168123	header_                http.Header
168124}
168125
168126// TestIamPermissions: Returns permissions that a caller has on the
168127// specified resource.
168128func (r *UrlMapsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *UrlMapsTestIamPermissionsCall {
168129	c := &UrlMapsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168130	c.project = project
168131	c.resource = resource
168132	c.testpermissionsrequest = testpermissionsrequest
168133	return c
168134}
168135
168136// Fields allows partial responses to be retrieved. See
168137// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168138// for more information.
168139func (c *UrlMapsTestIamPermissionsCall) Fields(s ...googleapi.Field) *UrlMapsTestIamPermissionsCall {
168140	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168141	return c
168142}
168143
168144// Context sets the context to be used in this call's Do method. Any
168145// pending HTTP request will be aborted if the provided context is
168146// canceled.
168147func (c *UrlMapsTestIamPermissionsCall) Context(ctx context.Context) *UrlMapsTestIamPermissionsCall {
168148	c.ctx_ = ctx
168149	return c
168150}
168151
168152// Header returns an http.Header that can be modified by the caller to
168153// add HTTP headers to the request.
168154func (c *UrlMapsTestIamPermissionsCall) Header() http.Header {
168155	if c.header_ == nil {
168156		c.header_ = make(http.Header)
168157	}
168158	return c.header_
168159}
168160
168161func (c *UrlMapsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
168162	reqHeaders := make(http.Header)
168163	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
168164	for k, v := range c.header_ {
168165		reqHeaders[k] = v
168166	}
168167	reqHeaders.Set("User-Agent", c.s.userAgent())
168168	var body io.Reader = nil
168169	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
168170	if err != nil {
168171		return nil, err
168172	}
168173	reqHeaders.Set("Content-Type", "application/json")
168174	c.urlParams_.Set("alt", alt)
168175	c.urlParams_.Set("prettyPrint", "false")
168176	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{resource}/testIamPermissions")
168177	urls += "?" + c.urlParams_.Encode()
168178	req, err := http.NewRequest("POST", urls, body)
168179	if err != nil {
168180		return nil, err
168181	}
168182	req.Header = reqHeaders
168183	googleapi.Expand(req.URL, map[string]string{
168184		"project":  c.project,
168185		"resource": c.resource,
168186	})
168187	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168188}
168189
168190// Do executes the "compute.urlMaps.testIamPermissions" call.
168191// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
168192// non-2xx status code is an error. Response headers are in either
168193// *TestPermissionsResponse.ServerResponse.Header or (if a response was
168194// returned at all) in error.(*googleapi.Error).Header. Use
168195// googleapi.IsNotModified to check whether the returned error was
168196// because http.StatusNotModified was returned.
168197func (c *UrlMapsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
168198	gensupport.SetOptions(c.urlParams_, opts...)
168199	res, err := c.doRequest("json")
168200	if res != nil && res.StatusCode == http.StatusNotModified {
168201		if res.Body != nil {
168202			res.Body.Close()
168203		}
168204		return nil, &googleapi.Error{
168205			Code:   res.StatusCode,
168206			Header: res.Header,
168207		}
168208	}
168209	if err != nil {
168210		return nil, err
168211	}
168212	defer googleapi.CloseBody(res)
168213	if err := googleapi.CheckResponse(res); err != nil {
168214		return nil, err
168215	}
168216	ret := &TestPermissionsResponse{
168217		ServerResponse: googleapi.ServerResponse{
168218			Header:         res.Header,
168219			HTTPStatusCode: res.StatusCode,
168220		},
168221	}
168222	target := &ret
168223	if err := gensupport.DecodeResponse(target, res); err != nil {
168224		return nil, err
168225	}
168226	return ret, nil
168227	// {
168228	//   "description": "Returns permissions that a caller has on the specified resource.",
168229	//   "httpMethod": "POST",
168230	//   "id": "compute.urlMaps.testIamPermissions",
168231	//   "parameterOrder": [
168232	//     "project",
168233	//     "resource"
168234	//   ],
168235	//   "parameters": {
168236	//     "project": {
168237	//       "description": "Project ID for this request.",
168238	//       "location": "path",
168239	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168240	//       "required": true,
168241	//       "type": "string"
168242	//     },
168243	//     "resource": {
168244	//       "description": "Name or id of the resource for this request.",
168245	//       "location": "path",
168246	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
168247	//       "required": true,
168248	//       "type": "string"
168249	//     }
168250	//   },
168251	//   "path": "{project}/global/urlMaps/{resource}/testIamPermissions",
168252	//   "request": {
168253	//     "$ref": "TestPermissionsRequest"
168254	//   },
168255	//   "response": {
168256	//     "$ref": "TestPermissionsResponse"
168257	//   },
168258	//   "scopes": [
168259	//     "https://www.googleapis.com/auth/cloud-platform",
168260	//     "https://www.googleapis.com/auth/compute",
168261	//     "https://www.googleapis.com/auth/compute.readonly"
168262	//   ]
168263	// }
168264
168265}
168266
168267// method id "compute.urlMaps.update":
168268
168269type UrlMapsUpdateCall struct {
168270	s          *Service
168271	project    string
168272	urlMap     string
168273	urlmap     *UrlMap
168274	urlParams_ gensupport.URLParams
168275	ctx_       context.Context
168276	header_    http.Header
168277}
168278
168279// Update: Updates the specified UrlMap resource with the data included
168280// in the request.
168281// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/update
168282func (r *UrlMapsService) Update(project string, urlMap string, urlmap *UrlMap) *UrlMapsUpdateCall {
168283	c := &UrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168284	c.project = project
168285	c.urlMap = urlMap
168286	c.urlmap = urlmap
168287	return c
168288}
168289
168290// RequestId sets the optional parameter "requestId": An optional
168291// request ID to identify requests. Specify a unique request ID so that
168292// if you must retry your request, the server will know to ignore the
168293// request if it has already been completed.
168294//
168295// For example, consider a situation where you make an initial request
168296// and the request times out. If you make the request again with the
168297// same request ID, the server can check if original operation with the
168298// same request ID was received, and if so, will ignore the second
168299// request. This prevents clients from accidentally creating duplicate
168300// commitments.
168301//
168302// The request ID must be a valid UUID with the exception that zero UUID
168303// is not supported (00000000-0000-0000-0000-000000000000).
168304func (c *UrlMapsUpdateCall) RequestId(requestId string) *UrlMapsUpdateCall {
168305	c.urlParams_.Set("requestId", requestId)
168306	return c
168307}
168308
168309// Fields allows partial responses to be retrieved. See
168310// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168311// for more information.
168312func (c *UrlMapsUpdateCall) Fields(s ...googleapi.Field) *UrlMapsUpdateCall {
168313	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168314	return c
168315}
168316
168317// Context sets the context to be used in this call's Do method. Any
168318// pending HTTP request will be aborted if the provided context is
168319// canceled.
168320func (c *UrlMapsUpdateCall) Context(ctx context.Context) *UrlMapsUpdateCall {
168321	c.ctx_ = ctx
168322	return c
168323}
168324
168325// Header returns an http.Header that can be modified by the caller to
168326// add HTTP headers to the request.
168327func (c *UrlMapsUpdateCall) Header() http.Header {
168328	if c.header_ == nil {
168329		c.header_ = make(http.Header)
168330	}
168331	return c.header_
168332}
168333
168334func (c *UrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) {
168335	reqHeaders := make(http.Header)
168336	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
168337	for k, v := range c.header_ {
168338		reqHeaders[k] = v
168339	}
168340	reqHeaders.Set("User-Agent", c.s.userAgent())
168341	var body io.Reader = nil
168342	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
168343	if err != nil {
168344		return nil, err
168345	}
168346	reqHeaders.Set("Content-Type", "application/json")
168347	c.urlParams_.Set("alt", alt)
168348	c.urlParams_.Set("prettyPrint", "false")
168349	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
168350	urls += "?" + c.urlParams_.Encode()
168351	req, err := http.NewRequest("PUT", urls, body)
168352	if err != nil {
168353		return nil, err
168354	}
168355	req.Header = reqHeaders
168356	googleapi.Expand(req.URL, map[string]string{
168357		"project": c.project,
168358		"urlMap":  c.urlMap,
168359	})
168360	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168361}
168362
168363// Do executes the "compute.urlMaps.update" call.
168364// Exactly one of *Operation or error will be non-nil. Any non-2xx
168365// status code is an error. Response headers are in either
168366// *Operation.ServerResponse.Header or (if a response was returned at
168367// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
168368// to check whether the returned error was because
168369// http.StatusNotModified was returned.
168370func (c *UrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
168371	gensupport.SetOptions(c.urlParams_, opts...)
168372	res, err := c.doRequest("json")
168373	if res != nil && res.StatusCode == http.StatusNotModified {
168374		if res.Body != nil {
168375			res.Body.Close()
168376		}
168377		return nil, &googleapi.Error{
168378			Code:   res.StatusCode,
168379			Header: res.Header,
168380		}
168381	}
168382	if err != nil {
168383		return nil, err
168384	}
168385	defer googleapi.CloseBody(res)
168386	if err := googleapi.CheckResponse(res); err != nil {
168387		return nil, err
168388	}
168389	ret := &Operation{
168390		ServerResponse: googleapi.ServerResponse{
168391			Header:         res.Header,
168392			HTTPStatusCode: res.StatusCode,
168393		},
168394	}
168395	target := &ret
168396	if err := gensupport.DecodeResponse(target, res); err != nil {
168397		return nil, err
168398	}
168399	return ret, nil
168400	// {
168401	//   "description": "Updates the specified UrlMap resource with the data included in the request.",
168402	//   "httpMethod": "PUT",
168403	//   "id": "compute.urlMaps.update",
168404	//   "parameterOrder": [
168405	//     "project",
168406	//     "urlMap"
168407	//   ],
168408	//   "parameters": {
168409	//     "project": {
168410	//       "description": "Project ID for this request.",
168411	//       "location": "path",
168412	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168413	//       "required": true,
168414	//       "type": "string"
168415	//     },
168416	//     "requestId": {
168417	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
168418	//       "location": "query",
168419	//       "type": "string"
168420	//     },
168421	//     "urlMap": {
168422	//       "description": "Name of the UrlMap resource to update.",
168423	//       "location": "path",
168424	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
168425	//       "required": true,
168426	//       "type": "string"
168427	//     }
168428	//   },
168429	//   "path": "{project}/global/urlMaps/{urlMap}",
168430	//   "request": {
168431	//     "$ref": "UrlMap"
168432	//   },
168433	//   "response": {
168434	//     "$ref": "Operation"
168435	//   },
168436	//   "scopes": [
168437	//     "https://www.googleapis.com/auth/cloud-platform",
168438	//     "https://www.googleapis.com/auth/compute"
168439	//   ]
168440	// }
168441
168442}
168443
168444// method id "compute.urlMaps.validate":
168445
168446type UrlMapsValidateCall struct {
168447	s                      *Service
168448	project                string
168449	urlMap                 string
168450	urlmapsvalidaterequest *UrlMapsValidateRequest
168451	urlParams_             gensupport.URLParams
168452	ctx_                   context.Context
168453	header_                http.Header
168454}
168455
168456// Validate: Runs static validation for the UrlMap. In particular, the
168457// tests of the provided UrlMap will be run. Calling this method does
168458// NOT create the UrlMap.
168459// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/validate
168460func (r *UrlMapsService) Validate(project string, urlMap string, urlmapsvalidaterequest *UrlMapsValidateRequest) *UrlMapsValidateCall {
168461	c := &UrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168462	c.project = project
168463	c.urlMap = urlMap
168464	c.urlmapsvalidaterequest = urlmapsvalidaterequest
168465	return c
168466}
168467
168468// Fields allows partial responses to be retrieved. See
168469// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168470// for more information.
168471func (c *UrlMapsValidateCall) Fields(s ...googleapi.Field) *UrlMapsValidateCall {
168472	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168473	return c
168474}
168475
168476// Context sets the context to be used in this call's Do method. Any
168477// pending HTTP request will be aborted if the provided context is
168478// canceled.
168479func (c *UrlMapsValidateCall) Context(ctx context.Context) *UrlMapsValidateCall {
168480	c.ctx_ = ctx
168481	return c
168482}
168483
168484// Header returns an http.Header that can be modified by the caller to
168485// add HTTP headers to the request.
168486func (c *UrlMapsValidateCall) Header() http.Header {
168487	if c.header_ == nil {
168488		c.header_ = make(http.Header)
168489	}
168490	return c.header_
168491}
168492
168493func (c *UrlMapsValidateCall) doRequest(alt string) (*http.Response, error) {
168494	reqHeaders := make(http.Header)
168495	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
168496	for k, v := range c.header_ {
168497		reqHeaders[k] = v
168498	}
168499	reqHeaders.Set("User-Agent", c.s.userAgent())
168500	var body io.Reader = nil
168501	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapsvalidaterequest)
168502	if err != nil {
168503		return nil, err
168504	}
168505	reqHeaders.Set("Content-Type", "application/json")
168506	c.urlParams_.Set("alt", alt)
168507	c.urlParams_.Set("prettyPrint", "false")
168508	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}/validate")
168509	urls += "?" + c.urlParams_.Encode()
168510	req, err := http.NewRequest("POST", urls, body)
168511	if err != nil {
168512		return nil, err
168513	}
168514	req.Header = reqHeaders
168515	googleapi.Expand(req.URL, map[string]string{
168516		"project": c.project,
168517		"urlMap":  c.urlMap,
168518	})
168519	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168520}
168521
168522// Do executes the "compute.urlMaps.validate" call.
168523// Exactly one of *UrlMapsValidateResponse or error will be non-nil. Any
168524// non-2xx status code is an error. Response headers are in either
168525// *UrlMapsValidateResponse.ServerResponse.Header or (if a response was
168526// returned at all) in error.(*googleapi.Error).Header. Use
168527// googleapi.IsNotModified to check whether the returned error was
168528// because http.StatusNotModified was returned.
168529func (c *UrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, error) {
168530	gensupport.SetOptions(c.urlParams_, opts...)
168531	res, err := c.doRequest("json")
168532	if res != nil && res.StatusCode == http.StatusNotModified {
168533		if res.Body != nil {
168534			res.Body.Close()
168535		}
168536		return nil, &googleapi.Error{
168537			Code:   res.StatusCode,
168538			Header: res.Header,
168539		}
168540	}
168541	if err != nil {
168542		return nil, err
168543	}
168544	defer googleapi.CloseBody(res)
168545	if err := googleapi.CheckResponse(res); err != nil {
168546		return nil, err
168547	}
168548	ret := &UrlMapsValidateResponse{
168549		ServerResponse: googleapi.ServerResponse{
168550			Header:         res.Header,
168551			HTTPStatusCode: res.StatusCode,
168552		},
168553	}
168554	target := &ret
168555	if err := gensupport.DecodeResponse(target, res); err != nil {
168556		return nil, err
168557	}
168558	return ret, nil
168559	// {
168560	//   "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.",
168561	//   "httpMethod": "POST",
168562	//   "id": "compute.urlMaps.validate",
168563	//   "parameterOrder": [
168564	//     "project",
168565	//     "urlMap"
168566	//   ],
168567	//   "parameters": {
168568	//     "project": {
168569	//       "description": "Project ID for this request.",
168570	//       "location": "path",
168571	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168572	//       "required": true,
168573	//       "type": "string"
168574	//     },
168575	//     "urlMap": {
168576	//       "description": "Name of the UrlMap resource to be validated as.",
168577	//       "location": "path",
168578	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
168579	//       "required": true,
168580	//       "type": "string"
168581	//     }
168582	//   },
168583	//   "path": "{project}/global/urlMaps/{urlMap}/validate",
168584	//   "request": {
168585	//     "$ref": "UrlMapsValidateRequest"
168586	//   },
168587	//   "response": {
168588	//     "$ref": "UrlMapsValidateResponse"
168589	//   },
168590	//   "scopes": [
168591	//     "https://www.googleapis.com/auth/cloud-platform",
168592	//     "https://www.googleapis.com/auth/compute"
168593	//   ]
168594	// }
168595
168596}
168597
168598// method id "compute.vpnGateways.aggregatedList":
168599
168600type VpnGatewaysAggregatedListCall struct {
168601	s            *Service
168602	project      string
168603	urlParams_   gensupport.URLParams
168604	ifNoneMatch_ string
168605	ctx_         context.Context
168606	header_      http.Header
168607}
168608
168609// AggregatedList: Retrieves an aggregated list of VPN gateways.
168610func (r *VpnGatewaysService) AggregatedList(project string) *VpnGatewaysAggregatedListCall {
168611	c := &VpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168612	c.project = project
168613	return c
168614}
168615
168616// Filter sets the optional parameter "filter": A filter expression that
168617// filters resources listed in the response. The expression must specify
168618// the field name, a comparison operator, and the value that you want to
168619// use for filtering. The value must be a string, a number, or a
168620// boolean. The comparison operator must be either =, !=, >, or <.
168621//
168622// For example, if you are filtering Compute Engine instances, you can
168623// exclude instances named example-instance by specifying name !=
168624// example-instance.
168625//
168626// You can also filter nested fields. For example, you could specify
168627// scheduling.automaticRestart = false to include instances only if they
168628// are not scheduled for automatic restarts. You can use filtering on
168629// nested fields to filter based on resource labels.
168630//
168631// To filter on multiple expressions, provide each separate expression
168632// within parentheses. For example, (scheduling.automaticRestart = true)
168633// (cpuPlatform = "Intel Skylake"). By default, each expression is an
168634// AND expression. However, you can include AND and OR expressions
168635// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
168636// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
168637// true).
168638func (c *VpnGatewaysAggregatedListCall) Filter(filter string) *VpnGatewaysAggregatedListCall {
168639	c.urlParams_.Set("filter", filter)
168640	return c
168641}
168642
168643// IncludeAllScopes sets the optional parameter "includeAllScopes":
168644// Indicates whether every visible scope for each scope type (zone,
168645// region, global) should be included in the response. For new resource
168646// types added after this field, the flag has no effect as new resource
168647// types will always include every visible scope for each scope type in
168648// response. For resource types which predate this field, if this flag
168649// is omitted or false, only scopes of the scope types where the
168650// resource type is expected to be found will be included.
168651func (c *VpnGatewaysAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *VpnGatewaysAggregatedListCall {
168652	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
168653	return c
168654}
168655
168656// MaxResults sets the optional parameter "maxResults": The maximum
168657// number of results per page that should be returned. If the number of
168658// available results is larger than maxResults, Compute Engine returns a
168659// nextPageToken that can be used to get the next page of results in
168660// subsequent list requests. Acceptable values are 0 to 500, inclusive.
168661// (Default: 500)
168662func (c *VpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *VpnGatewaysAggregatedListCall {
168663	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
168664	return c
168665}
168666
168667// OrderBy sets the optional parameter "orderBy": Sorts list results by
168668// a certain order. By default, results are returned in alphanumerical
168669// order based on the resource name.
168670//
168671// You can also sort results in descending order based on the creation
168672// timestamp using orderBy="creationTimestamp desc". This sorts results
168673// based on the creationTimestamp field in reverse chronological order
168674// (newest result first). Use this to sort resources like operations so
168675// that the newest operation is returned first.
168676//
168677// Currently, only sorting by name or creationTimestamp desc is
168678// supported.
168679func (c *VpnGatewaysAggregatedListCall) OrderBy(orderBy string) *VpnGatewaysAggregatedListCall {
168680	c.urlParams_.Set("orderBy", orderBy)
168681	return c
168682}
168683
168684// PageToken sets the optional parameter "pageToken": Specifies a page
168685// token to use. Set pageToken to the nextPageToken returned by a
168686// previous list request to get the next page of results.
168687func (c *VpnGatewaysAggregatedListCall) PageToken(pageToken string) *VpnGatewaysAggregatedListCall {
168688	c.urlParams_.Set("pageToken", pageToken)
168689	return c
168690}
168691
168692// Fields allows partial responses to be retrieved. See
168693// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168694// for more information.
168695func (c *VpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *VpnGatewaysAggregatedListCall {
168696	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168697	return c
168698}
168699
168700// IfNoneMatch sets the optional parameter which makes the operation
168701// fail if the object's ETag matches the given value. This is useful for
168702// getting updates only after the object has changed since the last
168703// request. Use googleapi.IsNotModified to check whether the response
168704// error from Do is the result of In-None-Match.
168705func (c *VpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *VpnGatewaysAggregatedListCall {
168706	c.ifNoneMatch_ = entityTag
168707	return c
168708}
168709
168710// Context sets the context to be used in this call's Do method. Any
168711// pending HTTP request will be aborted if the provided context is
168712// canceled.
168713func (c *VpnGatewaysAggregatedListCall) Context(ctx context.Context) *VpnGatewaysAggregatedListCall {
168714	c.ctx_ = ctx
168715	return c
168716}
168717
168718// Header returns an http.Header that can be modified by the caller to
168719// add HTTP headers to the request.
168720func (c *VpnGatewaysAggregatedListCall) Header() http.Header {
168721	if c.header_ == nil {
168722		c.header_ = make(http.Header)
168723	}
168724	return c.header_
168725}
168726
168727func (c *VpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) {
168728	reqHeaders := make(http.Header)
168729	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
168730	for k, v := range c.header_ {
168731		reqHeaders[k] = v
168732	}
168733	reqHeaders.Set("User-Agent", c.s.userAgent())
168734	if c.ifNoneMatch_ != "" {
168735		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
168736	}
168737	var body io.Reader = nil
168738	c.urlParams_.Set("alt", alt)
168739	c.urlParams_.Set("prettyPrint", "false")
168740	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/vpnGateways")
168741	urls += "?" + c.urlParams_.Encode()
168742	req, err := http.NewRequest("GET", urls, body)
168743	if err != nil {
168744		return nil, err
168745	}
168746	req.Header = reqHeaders
168747	googleapi.Expand(req.URL, map[string]string{
168748		"project": c.project,
168749	})
168750	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168751}
168752
168753// Do executes the "compute.vpnGateways.aggregatedList" call.
168754// Exactly one of *VpnGatewayAggregatedList or error will be non-nil.
168755// Any non-2xx status code is an error. Response headers are in either
168756// *VpnGatewayAggregatedList.ServerResponse.Header or (if a response was
168757// returned at all) in error.(*googleapi.Error).Header. Use
168758// googleapi.IsNotModified to check whether the returned error was
168759// because http.StatusNotModified was returned.
168760func (c *VpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnGatewayAggregatedList, error) {
168761	gensupport.SetOptions(c.urlParams_, opts...)
168762	res, err := c.doRequest("json")
168763	if res != nil && res.StatusCode == http.StatusNotModified {
168764		if res.Body != nil {
168765			res.Body.Close()
168766		}
168767		return nil, &googleapi.Error{
168768			Code:   res.StatusCode,
168769			Header: res.Header,
168770		}
168771	}
168772	if err != nil {
168773		return nil, err
168774	}
168775	defer googleapi.CloseBody(res)
168776	if err := googleapi.CheckResponse(res); err != nil {
168777		return nil, err
168778	}
168779	ret := &VpnGatewayAggregatedList{
168780		ServerResponse: googleapi.ServerResponse{
168781			Header:         res.Header,
168782			HTTPStatusCode: res.StatusCode,
168783		},
168784	}
168785	target := &ret
168786	if err := gensupport.DecodeResponse(target, res); err != nil {
168787		return nil, err
168788	}
168789	return ret, nil
168790	// {
168791	//   "description": "Retrieves an aggregated list of VPN gateways.",
168792	//   "httpMethod": "GET",
168793	//   "id": "compute.vpnGateways.aggregatedList",
168794	//   "parameterOrder": [
168795	//     "project"
168796	//   ],
168797	//   "parameters": {
168798	//     "filter": {
168799	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
168800	//       "location": "query",
168801	//       "type": "string"
168802	//     },
168803	//     "includeAllScopes": {
168804	//       "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.",
168805	//       "location": "query",
168806	//       "type": "boolean"
168807	//     },
168808	//     "maxResults": {
168809	//       "default": "500",
168810	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
168811	//       "format": "uint32",
168812	//       "location": "query",
168813	//       "minimum": "0",
168814	//       "type": "integer"
168815	//     },
168816	//     "orderBy": {
168817	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
168818	//       "location": "query",
168819	//       "type": "string"
168820	//     },
168821	//     "pageToken": {
168822	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
168823	//       "location": "query",
168824	//       "type": "string"
168825	//     },
168826	//     "project": {
168827	//       "description": "Project ID for this request.",
168828	//       "location": "path",
168829	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168830	//       "required": true,
168831	//       "type": "string"
168832	//     }
168833	//   },
168834	//   "path": "{project}/aggregated/vpnGateways",
168835	//   "response": {
168836	//     "$ref": "VpnGatewayAggregatedList"
168837	//   },
168838	//   "scopes": [
168839	//     "https://www.googleapis.com/auth/cloud-platform",
168840	//     "https://www.googleapis.com/auth/compute",
168841	//     "https://www.googleapis.com/auth/compute.readonly"
168842	//   ]
168843	// }
168844
168845}
168846
168847// Pages invokes f for each page of results.
168848// A non-nil error returned from f will halt the iteration.
168849// The provided context supersedes any context provided to the Context method.
168850func (c *VpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*VpnGatewayAggregatedList) error) error {
168851	c.ctx_ = ctx
168852	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
168853	for {
168854		x, err := c.Do()
168855		if err != nil {
168856			return err
168857		}
168858		if err := f(x); err != nil {
168859			return err
168860		}
168861		if x.NextPageToken == "" {
168862			return nil
168863		}
168864		c.PageToken(x.NextPageToken)
168865	}
168866}
168867
168868// method id "compute.vpnGateways.delete":
168869
168870type VpnGatewaysDeleteCall struct {
168871	s          *Service
168872	project    string
168873	region     string
168874	vpnGateway string
168875	urlParams_ gensupport.URLParams
168876	ctx_       context.Context
168877	header_    http.Header
168878}
168879
168880// Delete: Deletes the specified VPN gateway.
168881func (r *VpnGatewaysService) Delete(project string, region string, vpnGateway string) *VpnGatewaysDeleteCall {
168882	c := &VpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168883	c.project = project
168884	c.region = region
168885	c.vpnGateway = vpnGateway
168886	return c
168887}
168888
168889// RequestId sets the optional parameter "requestId": An optional
168890// request ID to identify requests. Specify a unique request ID so that
168891// if you must retry your request, the server will know to ignore the
168892// request if it has already been completed.
168893//
168894// For example, consider a situation where you make an initial request
168895// and the request times out. If you make the request again with the
168896// same request ID, the server can check if original operation with the
168897// same request ID was received, and if so, will ignore the second
168898// request. This prevents clients from accidentally creating duplicate
168899// commitments.
168900//
168901// The request ID must be a valid UUID with the exception that zero UUID
168902// is not supported (00000000-0000-0000-0000-000000000000).
168903func (c *VpnGatewaysDeleteCall) RequestId(requestId string) *VpnGatewaysDeleteCall {
168904	c.urlParams_.Set("requestId", requestId)
168905	return c
168906}
168907
168908// Fields allows partial responses to be retrieved. See
168909// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168910// for more information.
168911func (c *VpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *VpnGatewaysDeleteCall {
168912	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168913	return c
168914}
168915
168916// Context sets the context to be used in this call's Do method. Any
168917// pending HTTP request will be aborted if the provided context is
168918// canceled.
168919func (c *VpnGatewaysDeleteCall) Context(ctx context.Context) *VpnGatewaysDeleteCall {
168920	c.ctx_ = ctx
168921	return c
168922}
168923
168924// Header returns an http.Header that can be modified by the caller to
168925// add HTTP headers to the request.
168926func (c *VpnGatewaysDeleteCall) Header() http.Header {
168927	if c.header_ == nil {
168928		c.header_ = make(http.Header)
168929	}
168930	return c.header_
168931}
168932
168933func (c *VpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
168934	reqHeaders := make(http.Header)
168935	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
168936	for k, v := range c.header_ {
168937		reqHeaders[k] = v
168938	}
168939	reqHeaders.Set("User-Agent", c.s.userAgent())
168940	var body io.Reader = nil
168941	c.urlParams_.Set("alt", alt)
168942	c.urlParams_.Set("prettyPrint", "false")
168943	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways/{vpnGateway}")
168944	urls += "?" + c.urlParams_.Encode()
168945	req, err := http.NewRequest("DELETE", urls, body)
168946	if err != nil {
168947		return nil, err
168948	}
168949	req.Header = reqHeaders
168950	googleapi.Expand(req.URL, map[string]string{
168951		"project":    c.project,
168952		"region":     c.region,
168953		"vpnGateway": c.vpnGateway,
168954	})
168955	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168956}
168957
168958// Do executes the "compute.vpnGateways.delete" call.
168959// Exactly one of *Operation or error will be non-nil. Any non-2xx
168960// status code is an error. Response headers are in either
168961// *Operation.ServerResponse.Header or (if a response was returned at
168962// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
168963// to check whether the returned error was because
168964// http.StatusNotModified was returned.
168965func (c *VpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
168966	gensupport.SetOptions(c.urlParams_, opts...)
168967	res, err := c.doRequest("json")
168968	if res != nil && res.StatusCode == http.StatusNotModified {
168969		if res.Body != nil {
168970			res.Body.Close()
168971		}
168972		return nil, &googleapi.Error{
168973			Code:   res.StatusCode,
168974			Header: res.Header,
168975		}
168976	}
168977	if err != nil {
168978		return nil, err
168979	}
168980	defer googleapi.CloseBody(res)
168981	if err := googleapi.CheckResponse(res); err != nil {
168982		return nil, err
168983	}
168984	ret := &Operation{
168985		ServerResponse: googleapi.ServerResponse{
168986			Header:         res.Header,
168987			HTTPStatusCode: res.StatusCode,
168988		},
168989	}
168990	target := &ret
168991	if err := gensupport.DecodeResponse(target, res); err != nil {
168992		return nil, err
168993	}
168994	return ret, nil
168995	// {
168996	//   "description": "Deletes the specified VPN gateway.",
168997	//   "httpMethod": "DELETE",
168998	//   "id": "compute.vpnGateways.delete",
168999	//   "parameterOrder": [
169000	//     "project",
169001	//     "region",
169002	//     "vpnGateway"
169003	//   ],
169004	//   "parameters": {
169005	//     "project": {
169006	//       "description": "Project ID for this request.",
169007	//       "location": "path",
169008	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
169009	//       "required": true,
169010	//       "type": "string"
169011	//     },
169012	//     "region": {
169013	//       "description": "Name of the region for this request.",
169014	//       "location": "path",
169015	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
169016	//       "required": true,
169017	//       "type": "string"
169018	//     },
169019	//     "requestId": {
169020	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
169021	//       "location": "query",
169022	//       "type": "string"
169023	//     },
169024	//     "vpnGateway": {
169025	//       "description": "Name of the VPN gateway to delete.",
169026	//       "location": "path",
169027	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
169028	//       "required": true,
169029	//       "type": "string"
169030	//     }
169031	//   },
169032	//   "path": "{project}/regions/{region}/vpnGateways/{vpnGateway}",
169033	//   "response": {
169034	//     "$ref": "Operation"
169035	//   },
169036	//   "scopes": [
169037	//     "https://www.googleapis.com/auth/cloud-platform",
169038	//     "https://www.googleapis.com/auth/compute"
169039	//   ]
169040	// }
169041
169042}
169043
169044// method id "compute.vpnGateways.get":
169045
169046type VpnGatewaysGetCall struct {
169047	s            *Service
169048	project      string
169049	region       string
169050	vpnGateway   string
169051	urlParams_   gensupport.URLParams
169052	ifNoneMatch_ string
169053	ctx_         context.Context
169054	header_      http.Header
169055}
169056
169057// Get: Returns the specified VPN gateway. Gets a list of available VPN
169058// gateways by making a list() request.
169059func (r *VpnGatewaysService) Get(project string, region string, vpnGateway string) *VpnGatewaysGetCall {
169060	c := &VpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
169061	c.project = project
169062	c.region = region
169063	c.vpnGateway = vpnGateway
169064	return c
169065}
169066
169067// Fields allows partial responses to be retrieved. See
169068// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
169069// for more information.
169070func (c *VpnGatewaysGetCall) Fields(s ...googleapi.Field) *VpnGatewaysGetCall {
169071	c.urlParams_.Set("fields", googleapi.CombineFields(s))
169072	return c
169073}
169074
169075// IfNoneMatch sets the optional parameter which makes the operation
169076// fail if the object's ETag matches the given value. This is useful for
169077// getting updates only after the object has changed since the last
169078// request. Use googleapi.IsNotModified to check whether the response
169079// error from Do is the result of In-None-Match.
169080func (c *VpnGatewaysGetCall) IfNoneMatch(entityTag string) *VpnGatewaysGetCall {
169081	c.ifNoneMatch_ = entityTag
169082	return c
169083}
169084
169085// Context sets the context to be used in this call's Do method. Any
169086// pending HTTP request will be aborted if the provided context is
169087// canceled.
169088func (c *VpnGatewaysGetCall) Context(ctx context.Context) *VpnGatewaysGetCall {
169089	c.ctx_ = ctx
169090	return c
169091}
169092
169093// Header returns an http.Header that can be modified by the caller to
169094// add HTTP headers to the request.
169095func (c *VpnGatewaysGetCall) Header() http.Header {
169096	if c.header_ == nil {
169097		c.header_ = make(http.Header)
169098	}
169099	return c.header_
169100}
169101
169102func (c *VpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
169103	reqHeaders := make(http.Header)
169104	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
169105	for k, v := range c.header_ {
169106		reqHeaders[k] = v
169107	}
169108	reqHeaders.Set("User-Agent", c.s.userAgent())
169109	if c.ifNoneMatch_ != "" {
169110		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
169111	}
169112	var body io.Reader = nil
169113	c.urlParams_.Set("alt", alt)
169114	c.urlParams_.Set("prettyPrint", "false")
169115	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways/{vpnGateway}")
169116	urls += "?" + c.urlParams_.Encode()
169117	req, err := http.NewRequest("GET", urls, body)
169118	if err != nil {
169119		return nil, err
169120	}
169121	req.Header = reqHeaders
169122	googleapi.Expand(req.URL, map[string]string{
169123		"project":    c.project,
169124		"region":     c.region,
169125		"vpnGateway": c.vpnGateway,
169126	})
169127	return gensupport.SendRequest(c.ctx_, c.s.client, req)
169128}
169129
169130// Do executes the "compute.vpnGateways.get" call.
169131// Exactly one of *VpnGateway or error will be non-nil. Any non-2xx
169132// status code is an error. Response headers are in either
169133// *VpnGateway.ServerResponse.Header or (if a response was returned at
169134// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
169135// to check whether the returned error was because
169136// http.StatusNotModified was returned.
169137func (c *VpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*VpnGateway, error) {
169138	gensupport.SetOptions(c.urlParams_, opts...)
169139	res, err := c.doRequest("json")
169140	if res != nil && res.StatusCode == http.StatusNotModified {
169141		if res.Body != nil {
169142			res.Body.Close()
169143		}
169144		return nil, &googleapi.Error{
169145			Code:   res.StatusCode,
169146			Header: res.Header,
169147		}
169148	}
169149	if err != nil {
169150		return nil, err
169151	}
169152	defer googleapi.CloseBody(res)
169153	if err := googleapi.CheckResponse(res); err != nil {
169154		return nil, err
169155	}
169156	ret := &VpnGateway{
169157		ServerResponse: googleapi.ServerResponse{
169158			Header:         res.Header,
169159			HTTPStatusCode: res.StatusCode,
169160		},
169161	}
169162	target := &ret
169163	if err := gensupport.DecodeResponse(target, res); err != nil {
169164		return nil, err
169165	}
169166	return ret, nil
169167	// {
169168	//   "description": "Returns the specified VPN gateway. Gets a list of available VPN gateways by making a list() request.",
169169	//   "httpMethod": "GET",
169170	//   "id": "compute.vpnGateways.get",
169171	//   "parameterOrder": [
169172	//     "project",
169173	//     "region",
169174	//     "vpnGateway"
169175	//   ],
169176	//   "parameters": {
169177	//     "project": {
169178	//       "description": "Project ID for this request.",
169179	//       "location": "path",
169180	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
169181	//       "required": true,
169182	//       "type": "string"
169183	//     },
169184	//     "region": {
169185	//       "description": "Name of the region for this request.",
169186	//       "location": "path",
169187	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
169188	//       "required": true,
169189	//       "type": "string"
169190	//     },
169191	//     "vpnGateway": {
169192	//       "description": "Name of the VPN gateway to return.",
169193	//       "location": "path",
169194	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
169195	//       "required": true,
169196	//       "type": "string"
169197	//     }
169198	//   },
169199	//   "path": "{project}/regions/{region}/vpnGateways/{vpnGateway}",
169200	//   "response": {
169201	//     "$ref": "VpnGateway"
169202	//   },
169203	//   "scopes": [
169204	//     "https://www.googleapis.com/auth/cloud-platform",
169205	//     "https://www.googleapis.com/auth/compute",
169206	//     "https://www.googleapis.com/auth/compute.readonly"
169207	//   ]
169208	// }
169209
169210}
169211
169212// method id "compute.vpnGateways.getStatus":
169213
169214type VpnGatewaysGetStatusCall struct {
169215	s            *Service
169216	project      string
169217	region       string
169218	vpnGateway   string
169219	urlParams_   gensupport.URLParams
169220	ifNoneMatch_ string
169221	ctx_         context.Context
169222	header_      http.Header
169223}
169224
169225// GetStatus: Returns the status for the specified VPN gateway.
169226func (r *VpnGatewaysService) GetStatus(project string, region string, vpnGateway string) *VpnGatewaysGetStatusCall {
169227	c := &VpnGatewaysGetStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
169228	c.project = project
169229	c.region = region
169230	c.vpnGateway = vpnGateway
169231	return c
169232}
169233
169234// Fields allows partial responses to be retrieved. See
169235// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
169236// for more information.
169237func (c *VpnGatewaysGetStatusCall) Fields(s ...googleapi.Field) *VpnGatewaysGetStatusCall {
169238	c.urlParams_.Set("fields", googleapi.CombineFields(s))
169239	return c
169240}
169241
169242// IfNoneMatch sets the optional parameter which makes the operation
169243// fail if the object's ETag matches the given value. This is useful for
169244// getting updates only after the object has changed since the last
169245// request. Use googleapi.IsNotModified to check whether the response
169246// error from Do is the result of In-None-Match.
169247func (c *VpnGatewaysGetStatusCall) IfNoneMatch(entityTag string) *VpnGatewaysGetStatusCall {
169248	c.ifNoneMatch_ = entityTag
169249	return c
169250}
169251
169252// Context sets the context to be used in this call's Do method. Any
169253// pending HTTP request will be aborted if the provided context is
169254// canceled.
169255func (c *VpnGatewaysGetStatusCall) Context(ctx context.Context) *VpnGatewaysGetStatusCall {
169256	c.ctx_ = ctx
169257	return c
169258}
169259
169260// Header returns an http.Header that can be modified by the caller to
169261// add HTTP headers to the request.
169262func (c *VpnGatewaysGetStatusCall) Header() http.Header {
169263	if c.header_ == nil {
169264		c.header_ = make(http.Header)
169265	}
169266	return c.header_
169267}
169268
169269func (c *VpnGatewaysGetStatusCall) doRequest(alt string) (*http.Response, error) {
169270	reqHeaders := make(http.Header)
169271	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
169272	for k, v := range c.header_ {
169273		reqHeaders[k] = v
169274	}
169275	reqHeaders.Set("User-Agent", c.s.userAgent())
169276	if c.ifNoneMatch_ != "" {
169277		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
169278	}
169279	var body io.Reader = nil
169280	c.urlParams_.Set("alt", alt)
169281	c.urlParams_.Set("prettyPrint", "false")
169282	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus")
169283	urls += "?" + c.urlParams_.Encode()
169284	req, err := http.NewRequest("GET", urls, body)
169285	if err != nil {
169286		return nil, err
169287	}
169288	req.Header = reqHeaders
169289	googleapi.Expand(req.URL, map[string]string{
169290		"project":    c.project,
169291		"region":     c.region,
169292		"vpnGateway": c.vpnGateway,
169293	})
169294	return gensupport.SendRequest(c.ctx_, c.s.client, req)
169295}
169296
169297// Do executes the "compute.vpnGateways.getStatus" call.
169298// Exactly one of *VpnGatewaysGetStatusResponse or error will be
169299// non-nil. Any non-2xx status code is an error. Response headers are in
169300// either *VpnGatewaysGetStatusResponse.ServerResponse.Header or (if a
169301// response was returned at all) in error.(*googleapi.Error).Header. Use
169302// googleapi.IsNotModified to check whether the returned error was
169303// because http.StatusNotModified was returned.
169304func (c *VpnGatewaysGetStatusCall) Do(opts ...googleapi.CallOption) (*VpnGatewaysGetStatusResponse, error) {
169305	gensupport.SetOptions(c.urlParams_, opts...)
169306	res, err := c.doRequest("json")
169307	if res != nil && res.StatusCode == http.StatusNotModified {
169308		if res.Body != nil {
169309			res.Body.Close()
169310		}
169311		return nil, &googleapi.Error{
169312			Code:   res.StatusCode,
169313			Header: res.Header,
169314		}
169315	}
169316	if err != nil {
169317		return nil, err
169318	}
169319	defer googleapi.CloseBody(res)
169320	if err := googleapi.CheckResponse(res); err != nil {
169321		return nil, err
169322	}
169323	ret := &VpnGatewaysGetStatusResponse{
169324		ServerResponse: googleapi.ServerResponse{
169325			Header:         res.Header,
169326			HTTPStatusCode: res.StatusCode,
169327		},
169328	}
169329	target := &ret
169330	if err := gensupport.DecodeResponse(target, res); err != nil {
169331		return nil, err
169332	}
169333	return ret, nil
169334	// {
169335	//   "description": "Returns the status for the specified VPN gateway.",
169336	//   "httpMethod": "GET",
169337	//   "id": "compute.vpnGateways.getStatus",
169338	//   "parameterOrder": [
169339	//     "project",
169340	//     "region",
169341	//     "vpnGateway"
169342	//   ],
169343	//   "parameters": {
169344	//     "project": {
169345	//       "description": "Project ID for this request.",
169346	//       "location": "path",
169347	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
169348	//       "required": true,
169349	//       "type": "string"
169350	//     },
169351	//     "region": {
169352	//       "description": "Name of the region for this request.",
169353	//       "location": "path",
169354	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
169355	//       "required": true,
169356	//       "type": "string"
169357	//     },
169358	//     "vpnGateway": {
169359	//       "description": "Name of the VPN gateway to return.",
169360	//       "location": "path",
169361	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
169362	//       "required": true,
169363	//       "type": "string"
169364	//     }
169365	//   },
169366	//   "path": "{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus",
169367	//   "response": {
169368	//     "$ref": "VpnGatewaysGetStatusResponse"
169369	//   },
169370	//   "scopes": [
169371	//     "https://www.googleapis.com/auth/cloud-platform",
169372	//     "https://www.googleapis.com/auth/compute",
169373	//     "https://www.googleapis.com/auth/compute.readonly"
169374	//   ]
169375	// }
169376
169377}
169378
169379// method id "compute.vpnGateways.insert":
169380
169381type VpnGatewaysInsertCall struct {
169382	s          *Service
169383	project    string
169384	region     string
169385	vpngateway *VpnGateway
169386	urlParams_ gensupport.URLParams
169387	ctx_       context.Context
169388	header_    http.Header
169389}
169390
169391// Insert: Creates a VPN gateway in the specified project and region
169392// using the data included in the request.
169393func (r *VpnGatewaysService) Insert(project string, region string, vpngateway *VpnGateway) *VpnGatewaysInsertCall {
169394	c := &VpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
169395	c.project = project
169396	c.region = region
169397	c.vpngateway = vpngateway
169398	return c
169399}
169400
169401// RequestId sets the optional parameter "requestId": An optional
169402// request ID to identify requests. Specify a unique request ID so that
169403// if you must retry your request, the server will know to ignore the
169404// request if it has already been completed.
169405//
169406// For example, consider a situation where you make an initial request
169407// and the request times out. If you make the request again with the
169408// same request ID, the server can check if original operation with the
169409// same request ID was received, and if so, will ignore the second
169410// request. This prevents clients from accidentally creating duplicate
169411// commitments.
169412//
169413// The request ID must be a valid UUID with the exception that zero UUID
169414// is not supported (00000000-0000-0000-0000-000000000000).
169415func (c *VpnGatewaysInsertCall) RequestId(requestId string) *VpnGatewaysInsertCall {
169416	c.urlParams_.Set("requestId", requestId)
169417	return c
169418}
169419
169420// Fields allows partial responses to be retrieved. See
169421// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
169422// for more information.
169423func (c *VpnGatewaysInsertCall) Fields(s ...googleapi.Field) *VpnGatewaysInsertCall {
169424	c.urlParams_.Set("fields", googleapi.CombineFields(s))
169425	return c
169426}
169427
169428// Context sets the context to be used in this call's Do method. Any
169429// pending HTTP request will be aborted if the provided context is
169430// canceled.
169431func (c *VpnGatewaysInsertCall) Context(ctx context.Context) *VpnGatewaysInsertCall {
169432	c.ctx_ = ctx
169433	return c
169434}
169435
169436// Header returns an http.Header that can be modified by the caller to
169437// add HTTP headers to the request.
169438func (c *VpnGatewaysInsertCall) Header() http.Header {
169439	if c.header_ == nil {
169440		c.header_ = make(http.Header)
169441	}
169442	return c.header_
169443}
169444
169445func (c *VpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
169446	reqHeaders := make(http.Header)
169447	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
169448	for k, v := range c.header_ {
169449		reqHeaders[k] = v
169450	}
169451	reqHeaders.Set("User-Agent", c.s.userAgent())
169452	var body io.Reader = nil
169453	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vpngateway)
169454	if err != nil {
169455		return nil, err
169456	}
169457	reqHeaders.Set("Content-Type", "application/json")
169458	c.urlParams_.Set("alt", alt)
169459	c.urlParams_.Set("prettyPrint", "false")
169460	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways")
169461	urls += "?" + c.urlParams_.Encode()
169462	req, err := http.NewRequest("POST", urls, body)
169463	if err != nil {
169464		return nil, err
169465	}
169466	req.Header = reqHeaders
169467	googleapi.Expand(req.URL, map[string]string{
169468		"project": c.project,
169469		"region":  c.region,
169470	})
169471	return gensupport.SendRequest(c.ctx_, c.s.client, req)
169472}
169473
169474// Do executes the "compute.vpnGateways.insert" call.
169475// Exactly one of *Operation or error will be non-nil. Any non-2xx
169476// status code is an error. Response headers are in either
169477// *Operation.ServerResponse.Header or (if a response was returned at
169478// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
169479// to check whether the returned error was because
169480// http.StatusNotModified was returned.
169481func (c *VpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
169482	gensupport.SetOptions(c.urlParams_, opts...)
169483	res, err := c.doRequest("json")
169484	if res != nil && res.StatusCode == http.StatusNotModified {
169485		if res.Body != nil {
169486			res.Body.Close()
169487		}
169488		return nil, &googleapi.Error{
169489			Code:   res.StatusCode,
169490			Header: res.Header,
169491		}
169492	}
169493	if err != nil {
169494		return nil, err
169495	}
169496	defer googleapi.CloseBody(res)
169497	if err := googleapi.CheckResponse(res); err != nil {
169498		return nil, err
169499	}
169500	ret := &Operation{
169501		ServerResponse: googleapi.ServerResponse{
169502			Header:         res.Header,
169503			HTTPStatusCode: res.StatusCode,
169504		},
169505	}
169506	target := &ret
169507	if err := gensupport.DecodeResponse(target, res); err != nil {
169508		return nil, err
169509	}
169510	return ret, nil
169511	// {
169512	//   "description": "Creates a VPN gateway in the specified project and region using the data included in the request.",
169513	//   "httpMethod": "POST",
169514	//   "id": "compute.vpnGateways.insert",
169515	//   "parameterOrder": [
169516	//     "project",
169517	//     "region"
169518	//   ],
169519	//   "parameters": {
169520	//     "project": {
169521	//       "description": "Project ID for this request.",
169522	//       "location": "path",
169523	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
169524	//       "required": true,
169525	//       "type": "string"
169526	//     },
169527	//     "region": {
169528	//       "description": "Name of the region for this request.",
169529	//       "location": "path",
169530	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
169531	//       "required": true,
169532	//       "type": "string"
169533	//     },
169534	//     "requestId": {
169535	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
169536	//       "location": "query",
169537	//       "type": "string"
169538	//     }
169539	//   },
169540	//   "path": "{project}/regions/{region}/vpnGateways",
169541	//   "request": {
169542	//     "$ref": "VpnGateway"
169543	//   },
169544	//   "response": {
169545	//     "$ref": "Operation"
169546	//   },
169547	//   "scopes": [
169548	//     "https://www.googleapis.com/auth/cloud-platform",
169549	//     "https://www.googleapis.com/auth/compute"
169550	//   ]
169551	// }
169552
169553}
169554
169555// method id "compute.vpnGateways.list":
169556
169557type VpnGatewaysListCall struct {
169558	s            *Service
169559	project      string
169560	region       string
169561	urlParams_   gensupport.URLParams
169562	ifNoneMatch_ string
169563	ctx_         context.Context
169564	header_      http.Header
169565}
169566
169567// List: Retrieves a list of VPN gateways available to the specified
169568// project and region.
169569func (r *VpnGatewaysService) List(project string, region string) *VpnGatewaysListCall {
169570	c := &VpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
169571	c.project = project
169572	c.region = region
169573	return c
169574}
169575
169576// Filter sets the optional parameter "filter": A filter expression that
169577// filters resources listed in the response. The expression must specify
169578// the field name, a comparison operator, and the value that you want to
169579// use for filtering. The value must be a string, a number, or a
169580// boolean. The comparison operator must be either =, !=, >, or <.
169581//
169582// For example, if you are filtering Compute Engine instances, you can
169583// exclude instances named example-instance by specifying name !=
169584// example-instance.
169585//
169586// You can also filter nested fields. For example, you could specify
169587// scheduling.automaticRestart = false to include instances only if they
169588// are not scheduled for automatic restarts. You can use filtering on
169589// nested fields to filter based on resource labels.
169590//
169591// To filter on multiple expressions, provide each separate expression
169592// within parentheses. For example, (scheduling.automaticRestart = true)
169593// (cpuPlatform = "Intel Skylake"). By default, each expression is an
169594// AND expression. However, you can include AND and OR expressions
169595// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
169596// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
169597// true).
169598func (c *VpnGatewaysListCall) Filter(filter string) *VpnGatewaysListCall {
169599	c.urlParams_.Set("filter", filter)
169600	return c
169601}
169602
169603// MaxResults sets the optional parameter "maxResults": The maximum
169604// number of results per page that should be returned. If the number of
169605// available results is larger than maxResults, Compute Engine returns a
169606// nextPageToken that can be used to get the next page of results in
169607// subsequent list requests. Acceptable values are 0 to 500, inclusive.
169608// (Default: 500)
169609func (c *VpnGatewaysListCall) MaxResults(maxResults int64) *VpnGatewaysListCall {
169610	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
169611	return c
169612}
169613
169614// OrderBy sets the optional parameter "orderBy": Sorts list results by
169615// a certain order. By default, results are returned in alphanumerical
169616// order based on the resource name.
169617//
169618// You can also sort results in descending order based on the creation
169619// timestamp using orderBy="creationTimestamp desc". This sorts results
169620// based on the creationTimestamp field in reverse chronological order
169621// (newest result first). Use this to sort resources like operations so
169622// that the newest operation is returned first.
169623//
169624// Currently, only sorting by name or creationTimestamp desc is
169625// supported.
169626func (c *VpnGatewaysListCall) OrderBy(orderBy string) *VpnGatewaysListCall {
169627	c.urlParams_.Set("orderBy", orderBy)
169628	return c
169629}
169630
169631// PageToken sets the optional parameter "pageToken": Specifies a page
169632// token to use. Set pageToken to the nextPageToken returned by a
169633// previous list request to get the next page of results.
169634func (c *VpnGatewaysListCall) PageToken(pageToken string) *VpnGatewaysListCall {
169635	c.urlParams_.Set("pageToken", pageToken)
169636	return c
169637}
169638
169639// Fields allows partial responses to be retrieved. See
169640// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
169641// for more information.
169642func (c *VpnGatewaysListCall) Fields(s ...googleapi.Field) *VpnGatewaysListCall {
169643	c.urlParams_.Set("fields", googleapi.CombineFields(s))
169644	return c
169645}
169646
169647// IfNoneMatch sets the optional parameter which makes the operation
169648// fail if the object's ETag matches the given value. This is useful for
169649// getting updates only after the object has changed since the last
169650// request. Use googleapi.IsNotModified to check whether the response
169651// error from Do is the result of In-None-Match.
169652func (c *VpnGatewaysListCall) IfNoneMatch(entityTag string) *VpnGatewaysListCall {
169653	c.ifNoneMatch_ = entityTag
169654	return c
169655}
169656
169657// Context sets the context to be used in this call's Do method. Any
169658// pending HTTP request will be aborted if the provided context is
169659// canceled.
169660func (c *VpnGatewaysListCall) Context(ctx context.Context) *VpnGatewaysListCall {
169661	c.ctx_ = ctx
169662	return c
169663}
169664
169665// Header returns an http.Header that can be modified by the caller to
169666// add HTTP headers to the request.
169667func (c *VpnGatewaysListCall) Header() http.Header {
169668	if c.header_ == nil {
169669		c.header_ = make(http.Header)
169670	}
169671	return c.header_
169672}
169673
169674func (c *VpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
169675	reqHeaders := make(http.Header)
169676	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
169677	for k, v := range c.header_ {
169678		reqHeaders[k] = v
169679	}
169680	reqHeaders.Set("User-Agent", c.s.userAgent())
169681	if c.ifNoneMatch_ != "" {
169682		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
169683	}
169684	var body io.Reader = nil
169685	c.urlParams_.Set("alt", alt)
169686	c.urlParams_.Set("prettyPrint", "false")
169687	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways")
169688	urls += "?" + c.urlParams_.Encode()
169689	req, err := http.NewRequest("GET", urls, body)
169690	if err != nil {
169691		return nil, err
169692	}
169693	req.Header = reqHeaders
169694	googleapi.Expand(req.URL, map[string]string{
169695		"project": c.project,
169696		"region":  c.region,
169697	})
169698	return gensupport.SendRequest(c.ctx_, c.s.client, req)
169699}
169700
169701// Do executes the "compute.vpnGateways.list" call.
169702// Exactly one of *VpnGatewayList or error will be non-nil. Any non-2xx
169703// status code is an error. Response headers are in either
169704// *VpnGatewayList.ServerResponse.Header or (if a response was returned
169705// at all) in error.(*googleapi.Error).Header. Use
169706// googleapi.IsNotModified to check whether the returned error was
169707// because http.StatusNotModified was returned.
169708func (c *VpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*VpnGatewayList, error) {
169709	gensupport.SetOptions(c.urlParams_, opts...)
169710	res, err := c.doRequest("json")
169711	if res != nil && res.StatusCode == http.StatusNotModified {
169712		if res.Body != nil {
169713			res.Body.Close()
169714		}
169715		return nil, &googleapi.Error{
169716			Code:   res.StatusCode,
169717			Header: res.Header,
169718		}
169719	}
169720	if err != nil {
169721		return nil, err
169722	}
169723	defer googleapi.CloseBody(res)
169724	if err := googleapi.CheckResponse(res); err != nil {
169725		return nil, err
169726	}
169727	ret := &VpnGatewayList{
169728		ServerResponse: googleapi.ServerResponse{
169729			Header:         res.Header,
169730			HTTPStatusCode: res.StatusCode,
169731		},
169732	}
169733	target := &ret
169734	if err := gensupport.DecodeResponse(target, res); err != nil {
169735		return nil, err
169736	}
169737	return ret, nil
169738	// {
169739	//   "description": "Retrieves a list of VPN gateways available to the specified project and region.",
169740	//   "httpMethod": "GET",
169741	//   "id": "compute.vpnGateways.list",
169742	//   "parameterOrder": [
169743	//     "project",
169744	//     "region"
169745	//   ],
169746	//   "parameters": {
169747	//     "filter": {
169748	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
169749	//       "location": "query",
169750	//       "type": "string"
169751	//     },
169752	//     "maxResults": {
169753	//       "default": "500",
169754	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
169755	//       "format": "uint32",
169756	//       "location": "query",
169757	//       "minimum": "0",
169758	//       "type": "integer"
169759	//     },
169760	//     "orderBy": {
169761	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
169762	//       "location": "query",
169763	//       "type": "string"
169764	//     },
169765	//     "pageToken": {
169766	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
169767	//       "location": "query",
169768	//       "type": "string"
169769	//     },
169770	//     "project": {
169771	//       "description": "Project ID for this request.",
169772	//       "location": "path",
169773	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
169774	//       "required": true,
169775	//       "type": "string"
169776	//     },
169777	//     "region": {
169778	//       "description": "Name of the region for this request.",
169779	//       "location": "path",
169780	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
169781	//       "required": true,
169782	//       "type": "string"
169783	//     }
169784	//   },
169785	//   "path": "{project}/regions/{region}/vpnGateways",
169786	//   "response": {
169787	//     "$ref": "VpnGatewayList"
169788	//   },
169789	//   "scopes": [
169790	//     "https://www.googleapis.com/auth/cloud-platform",
169791	//     "https://www.googleapis.com/auth/compute",
169792	//     "https://www.googleapis.com/auth/compute.readonly"
169793	//   ]
169794	// }
169795
169796}
169797
169798// Pages invokes f for each page of results.
169799// A non-nil error returned from f will halt the iteration.
169800// The provided context supersedes any context provided to the Context method.
169801func (c *VpnGatewaysListCall) Pages(ctx context.Context, f func(*VpnGatewayList) error) error {
169802	c.ctx_ = ctx
169803	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
169804	for {
169805		x, err := c.Do()
169806		if err != nil {
169807			return err
169808		}
169809		if err := f(x); err != nil {
169810			return err
169811		}
169812		if x.NextPageToken == "" {
169813			return nil
169814		}
169815		c.PageToken(x.NextPageToken)
169816	}
169817}
169818
169819// method id "compute.vpnGateways.setLabels":
169820
169821type VpnGatewaysSetLabelsCall struct {
169822	s                      *Service
169823	project                string
169824	region                 string
169825	resource               string
169826	regionsetlabelsrequest *RegionSetLabelsRequest
169827	urlParams_             gensupport.URLParams
169828	ctx_                   context.Context
169829	header_                http.Header
169830}
169831
169832// SetLabels: Sets the labels on a VpnGateway. To learn more about
169833// labels, read the Labeling Resources documentation.
169834func (r *VpnGatewaysService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *VpnGatewaysSetLabelsCall {
169835	c := &VpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
169836	c.project = project
169837	c.region = region
169838	c.resource = resource
169839	c.regionsetlabelsrequest = regionsetlabelsrequest
169840	return c
169841}
169842
169843// RequestId sets the optional parameter "requestId": An optional
169844// request ID to identify requests. Specify a unique request ID so that
169845// if you must retry your request, the server will know to ignore the
169846// request if it has already been completed.
169847//
169848// For example, consider a situation where you make an initial request
169849// and the request times out. If you make the request again with the
169850// same request ID, the server can check if original operation with the
169851// same request ID was received, and if so, will ignore the second
169852// request. This prevents clients from accidentally creating duplicate
169853// commitments.
169854//
169855// The request ID must be a valid UUID with the exception that zero UUID
169856// is not supported (00000000-0000-0000-0000-000000000000).
169857func (c *VpnGatewaysSetLabelsCall) RequestId(requestId string) *VpnGatewaysSetLabelsCall {
169858	c.urlParams_.Set("requestId", requestId)
169859	return c
169860}
169861
169862// Fields allows partial responses to be retrieved. See
169863// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
169864// for more information.
169865func (c *VpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *VpnGatewaysSetLabelsCall {
169866	c.urlParams_.Set("fields", googleapi.CombineFields(s))
169867	return c
169868}
169869
169870// Context sets the context to be used in this call's Do method. Any
169871// pending HTTP request will be aborted if the provided context is
169872// canceled.
169873func (c *VpnGatewaysSetLabelsCall) Context(ctx context.Context) *VpnGatewaysSetLabelsCall {
169874	c.ctx_ = ctx
169875	return c
169876}
169877
169878// Header returns an http.Header that can be modified by the caller to
169879// add HTTP headers to the request.
169880func (c *VpnGatewaysSetLabelsCall) Header() http.Header {
169881	if c.header_ == nil {
169882		c.header_ = make(http.Header)
169883	}
169884	return c.header_
169885}
169886
169887func (c *VpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
169888	reqHeaders := make(http.Header)
169889	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
169890	for k, v := range c.header_ {
169891		reqHeaders[k] = v
169892	}
169893	reqHeaders.Set("User-Agent", c.s.userAgent())
169894	var body io.Reader = nil
169895	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
169896	if err != nil {
169897		return nil, err
169898	}
169899	reqHeaders.Set("Content-Type", "application/json")
169900	c.urlParams_.Set("alt", alt)
169901	c.urlParams_.Set("prettyPrint", "false")
169902	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways/{resource}/setLabels")
169903	urls += "?" + c.urlParams_.Encode()
169904	req, err := http.NewRequest("POST", urls, body)
169905	if err != nil {
169906		return nil, err
169907	}
169908	req.Header = reqHeaders
169909	googleapi.Expand(req.URL, map[string]string{
169910		"project":  c.project,
169911		"region":   c.region,
169912		"resource": c.resource,
169913	})
169914	return gensupport.SendRequest(c.ctx_, c.s.client, req)
169915}
169916
169917// Do executes the "compute.vpnGateways.setLabels" call.
169918// Exactly one of *Operation or error will be non-nil. Any non-2xx
169919// status code is an error. Response headers are in either
169920// *Operation.ServerResponse.Header or (if a response was returned at
169921// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
169922// to check whether the returned error was because
169923// http.StatusNotModified was returned.
169924func (c *VpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
169925	gensupport.SetOptions(c.urlParams_, opts...)
169926	res, err := c.doRequest("json")
169927	if res != nil && res.StatusCode == http.StatusNotModified {
169928		if res.Body != nil {
169929			res.Body.Close()
169930		}
169931		return nil, &googleapi.Error{
169932			Code:   res.StatusCode,
169933			Header: res.Header,
169934		}
169935	}
169936	if err != nil {
169937		return nil, err
169938	}
169939	defer googleapi.CloseBody(res)
169940	if err := googleapi.CheckResponse(res); err != nil {
169941		return nil, err
169942	}
169943	ret := &Operation{
169944		ServerResponse: googleapi.ServerResponse{
169945			Header:         res.Header,
169946			HTTPStatusCode: res.StatusCode,
169947		},
169948	}
169949	target := &ret
169950	if err := gensupport.DecodeResponse(target, res); err != nil {
169951		return nil, err
169952	}
169953	return ret, nil
169954	// {
169955	//   "description": "Sets the labels on a VpnGateway. To learn more about labels, read the Labeling Resources documentation.",
169956	//   "httpMethod": "POST",
169957	//   "id": "compute.vpnGateways.setLabels",
169958	//   "parameterOrder": [
169959	//     "project",
169960	//     "region",
169961	//     "resource"
169962	//   ],
169963	//   "parameters": {
169964	//     "project": {
169965	//       "description": "Project ID for this request.",
169966	//       "location": "path",
169967	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
169968	//       "required": true,
169969	//       "type": "string"
169970	//     },
169971	//     "region": {
169972	//       "description": "The region for this request.",
169973	//       "location": "path",
169974	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
169975	//       "required": true,
169976	//       "type": "string"
169977	//     },
169978	//     "requestId": {
169979	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
169980	//       "location": "query",
169981	//       "type": "string"
169982	//     },
169983	//     "resource": {
169984	//       "description": "Name or id of the resource for this request.",
169985	//       "location": "path",
169986	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
169987	//       "required": true,
169988	//       "type": "string"
169989	//     }
169990	//   },
169991	//   "path": "{project}/regions/{region}/vpnGateways/{resource}/setLabels",
169992	//   "request": {
169993	//     "$ref": "RegionSetLabelsRequest"
169994	//   },
169995	//   "response": {
169996	//     "$ref": "Operation"
169997	//   },
169998	//   "scopes": [
169999	//     "https://www.googleapis.com/auth/cloud-platform",
170000	//     "https://www.googleapis.com/auth/compute"
170001	//   ]
170002	// }
170003
170004}
170005
170006// method id "compute.vpnGateways.testIamPermissions":
170007
170008type VpnGatewaysTestIamPermissionsCall struct {
170009	s                      *Service
170010	project                string
170011	region                 string
170012	resource               string
170013	testpermissionsrequest *TestPermissionsRequest
170014	urlParams_             gensupport.URLParams
170015	ctx_                   context.Context
170016	header_                http.Header
170017}
170018
170019// TestIamPermissions: Returns permissions that a caller has on the
170020// specified resource.
170021func (r *VpnGatewaysService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *VpnGatewaysTestIamPermissionsCall {
170022	c := &VpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
170023	c.project = project
170024	c.region = region
170025	c.resource = resource
170026	c.testpermissionsrequest = testpermissionsrequest
170027	return c
170028}
170029
170030// Fields allows partial responses to be retrieved. See
170031// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
170032// for more information.
170033func (c *VpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *VpnGatewaysTestIamPermissionsCall {
170034	c.urlParams_.Set("fields", googleapi.CombineFields(s))
170035	return c
170036}
170037
170038// Context sets the context to be used in this call's Do method. Any
170039// pending HTTP request will be aborted if the provided context is
170040// canceled.
170041func (c *VpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *VpnGatewaysTestIamPermissionsCall {
170042	c.ctx_ = ctx
170043	return c
170044}
170045
170046// Header returns an http.Header that can be modified by the caller to
170047// add HTTP headers to the request.
170048func (c *VpnGatewaysTestIamPermissionsCall) Header() http.Header {
170049	if c.header_ == nil {
170050		c.header_ = make(http.Header)
170051	}
170052	return c.header_
170053}
170054
170055func (c *VpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
170056	reqHeaders := make(http.Header)
170057	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
170058	for k, v := range c.header_ {
170059		reqHeaders[k] = v
170060	}
170061	reqHeaders.Set("User-Agent", c.s.userAgent())
170062	var body io.Reader = nil
170063	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
170064	if err != nil {
170065		return nil, err
170066	}
170067	reqHeaders.Set("Content-Type", "application/json")
170068	c.urlParams_.Set("alt", alt)
170069	c.urlParams_.Set("prettyPrint", "false")
170070	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions")
170071	urls += "?" + c.urlParams_.Encode()
170072	req, err := http.NewRequest("POST", urls, body)
170073	if err != nil {
170074		return nil, err
170075	}
170076	req.Header = reqHeaders
170077	googleapi.Expand(req.URL, map[string]string{
170078		"project":  c.project,
170079		"region":   c.region,
170080		"resource": c.resource,
170081	})
170082	return gensupport.SendRequest(c.ctx_, c.s.client, req)
170083}
170084
170085// Do executes the "compute.vpnGateways.testIamPermissions" call.
170086// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
170087// non-2xx status code is an error. Response headers are in either
170088// *TestPermissionsResponse.ServerResponse.Header or (if a response was
170089// returned at all) in error.(*googleapi.Error).Header. Use
170090// googleapi.IsNotModified to check whether the returned error was
170091// because http.StatusNotModified was returned.
170092func (c *VpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
170093	gensupport.SetOptions(c.urlParams_, opts...)
170094	res, err := c.doRequest("json")
170095	if res != nil && res.StatusCode == http.StatusNotModified {
170096		if res.Body != nil {
170097			res.Body.Close()
170098		}
170099		return nil, &googleapi.Error{
170100			Code:   res.StatusCode,
170101			Header: res.Header,
170102		}
170103	}
170104	if err != nil {
170105		return nil, err
170106	}
170107	defer googleapi.CloseBody(res)
170108	if err := googleapi.CheckResponse(res); err != nil {
170109		return nil, err
170110	}
170111	ret := &TestPermissionsResponse{
170112		ServerResponse: googleapi.ServerResponse{
170113			Header:         res.Header,
170114			HTTPStatusCode: res.StatusCode,
170115		},
170116	}
170117	target := &ret
170118	if err := gensupport.DecodeResponse(target, res); err != nil {
170119		return nil, err
170120	}
170121	return ret, nil
170122	// {
170123	//   "description": "Returns permissions that a caller has on the specified resource.",
170124	//   "httpMethod": "POST",
170125	//   "id": "compute.vpnGateways.testIamPermissions",
170126	//   "parameterOrder": [
170127	//     "project",
170128	//     "region",
170129	//     "resource"
170130	//   ],
170131	//   "parameters": {
170132	//     "project": {
170133	//       "description": "Project ID for this request.",
170134	//       "location": "path",
170135	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
170136	//       "required": true,
170137	//       "type": "string"
170138	//     },
170139	//     "region": {
170140	//       "description": "The name of the region for this request.",
170141	//       "location": "path",
170142	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
170143	//       "required": true,
170144	//       "type": "string"
170145	//     },
170146	//     "resource": {
170147	//       "description": "Name or id of the resource for this request.",
170148	//       "location": "path",
170149	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
170150	//       "required": true,
170151	//       "type": "string"
170152	//     }
170153	//   },
170154	//   "path": "{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions",
170155	//   "request": {
170156	//     "$ref": "TestPermissionsRequest"
170157	//   },
170158	//   "response": {
170159	//     "$ref": "TestPermissionsResponse"
170160	//   },
170161	//   "scopes": [
170162	//     "https://www.googleapis.com/auth/cloud-platform",
170163	//     "https://www.googleapis.com/auth/compute",
170164	//     "https://www.googleapis.com/auth/compute.readonly"
170165	//   ]
170166	// }
170167
170168}
170169
170170// method id "compute.vpnTunnels.aggregatedList":
170171
170172type VpnTunnelsAggregatedListCall struct {
170173	s            *Service
170174	project      string
170175	urlParams_   gensupport.URLParams
170176	ifNoneMatch_ string
170177	ctx_         context.Context
170178	header_      http.Header
170179}
170180
170181// AggregatedList: Retrieves an aggregated list of VPN tunnels.
170182func (r *VpnTunnelsService) AggregatedList(project string) *VpnTunnelsAggregatedListCall {
170183	c := &VpnTunnelsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
170184	c.project = project
170185	return c
170186}
170187
170188// Filter sets the optional parameter "filter": A filter expression that
170189// filters resources listed in the response. The expression must specify
170190// the field name, a comparison operator, and the value that you want to
170191// use for filtering. The value must be a string, a number, or a
170192// boolean. The comparison operator must be either =, !=, >, or <.
170193//
170194// For example, if you are filtering Compute Engine instances, you can
170195// exclude instances named example-instance by specifying name !=
170196// example-instance.
170197//
170198// You can also filter nested fields. For example, you could specify
170199// scheduling.automaticRestart = false to include instances only if they
170200// are not scheduled for automatic restarts. You can use filtering on
170201// nested fields to filter based on resource labels.
170202//
170203// To filter on multiple expressions, provide each separate expression
170204// within parentheses. For example, (scheduling.automaticRestart = true)
170205// (cpuPlatform = "Intel Skylake"). By default, each expression is an
170206// AND expression. However, you can include AND and OR expressions
170207// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
170208// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
170209// true).
170210func (c *VpnTunnelsAggregatedListCall) Filter(filter string) *VpnTunnelsAggregatedListCall {
170211	c.urlParams_.Set("filter", filter)
170212	return c
170213}
170214
170215// IncludeAllScopes sets the optional parameter "includeAllScopes":
170216// Indicates whether every visible scope for each scope type (zone,
170217// region, global) should be included in the response. For new resource
170218// types added after this field, the flag has no effect as new resource
170219// types will always include every visible scope for each scope type in
170220// response. For resource types which predate this field, if this flag
170221// is omitted or false, only scopes of the scope types where the
170222// resource type is expected to be found will be included.
170223func (c *VpnTunnelsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *VpnTunnelsAggregatedListCall {
170224	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
170225	return c
170226}
170227
170228// MaxResults sets the optional parameter "maxResults": The maximum
170229// number of results per page that should be returned. If the number of
170230// available results is larger than maxResults, Compute Engine returns a
170231// nextPageToken that can be used to get the next page of results in
170232// subsequent list requests. Acceptable values are 0 to 500, inclusive.
170233// (Default: 500)
170234func (c *VpnTunnelsAggregatedListCall) MaxResults(maxResults int64) *VpnTunnelsAggregatedListCall {
170235	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
170236	return c
170237}
170238
170239// OrderBy sets the optional parameter "orderBy": Sorts list results by
170240// a certain order. By default, results are returned in alphanumerical
170241// order based on the resource name.
170242//
170243// You can also sort results in descending order based on the creation
170244// timestamp using orderBy="creationTimestamp desc". This sorts results
170245// based on the creationTimestamp field in reverse chronological order
170246// (newest result first). Use this to sort resources like operations so
170247// that the newest operation is returned first.
170248//
170249// Currently, only sorting by name or creationTimestamp desc is
170250// supported.
170251func (c *VpnTunnelsAggregatedListCall) OrderBy(orderBy string) *VpnTunnelsAggregatedListCall {
170252	c.urlParams_.Set("orderBy", orderBy)
170253	return c
170254}
170255
170256// PageToken sets the optional parameter "pageToken": Specifies a page
170257// token to use. Set pageToken to the nextPageToken returned by a
170258// previous list request to get the next page of results.
170259func (c *VpnTunnelsAggregatedListCall) PageToken(pageToken string) *VpnTunnelsAggregatedListCall {
170260	c.urlParams_.Set("pageToken", pageToken)
170261	return c
170262}
170263
170264// Fields allows partial responses to be retrieved. See
170265// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
170266// for more information.
170267func (c *VpnTunnelsAggregatedListCall) Fields(s ...googleapi.Field) *VpnTunnelsAggregatedListCall {
170268	c.urlParams_.Set("fields", googleapi.CombineFields(s))
170269	return c
170270}
170271
170272// IfNoneMatch sets the optional parameter which makes the operation
170273// fail if the object's ETag matches the given value. This is useful for
170274// getting updates only after the object has changed since the last
170275// request. Use googleapi.IsNotModified to check whether the response
170276// error from Do is the result of In-None-Match.
170277func (c *VpnTunnelsAggregatedListCall) IfNoneMatch(entityTag string) *VpnTunnelsAggregatedListCall {
170278	c.ifNoneMatch_ = entityTag
170279	return c
170280}
170281
170282// Context sets the context to be used in this call's Do method. Any
170283// pending HTTP request will be aborted if the provided context is
170284// canceled.
170285func (c *VpnTunnelsAggregatedListCall) Context(ctx context.Context) *VpnTunnelsAggregatedListCall {
170286	c.ctx_ = ctx
170287	return c
170288}
170289
170290// Header returns an http.Header that can be modified by the caller to
170291// add HTTP headers to the request.
170292func (c *VpnTunnelsAggregatedListCall) Header() http.Header {
170293	if c.header_ == nil {
170294		c.header_ = make(http.Header)
170295	}
170296	return c.header_
170297}
170298
170299func (c *VpnTunnelsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
170300	reqHeaders := make(http.Header)
170301	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
170302	for k, v := range c.header_ {
170303		reqHeaders[k] = v
170304	}
170305	reqHeaders.Set("User-Agent", c.s.userAgent())
170306	if c.ifNoneMatch_ != "" {
170307		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
170308	}
170309	var body io.Reader = nil
170310	c.urlParams_.Set("alt", alt)
170311	c.urlParams_.Set("prettyPrint", "false")
170312	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/vpnTunnels")
170313	urls += "?" + c.urlParams_.Encode()
170314	req, err := http.NewRequest("GET", urls, body)
170315	if err != nil {
170316		return nil, err
170317	}
170318	req.Header = reqHeaders
170319	googleapi.Expand(req.URL, map[string]string{
170320		"project": c.project,
170321	})
170322	return gensupport.SendRequest(c.ctx_, c.s.client, req)
170323}
170324
170325// Do executes the "compute.vpnTunnels.aggregatedList" call.
170326// Exactly one of *VpnTunnelAggregatedList or error will be non-nil. Any
170327// non-2xx status code is an error. Response headers are in either
170328// *VpnTunnelAggregatedList.ServerResponse.Header or (if a response was
170329// returned at all) in error.(*googleapi.Error).Header. Use
170330// googleapi.IsNotModified to check whether the returned error was
170331// because http.StatusNotModified was returned.
170332func (c *VpnTunnelsAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelAggregatedList, error) {
170333	gensupport.SetOptions(c.urlParams_, opts...)
170334	res, err := c.doRequest("json")
170335	if res != nil && res.StatusCode == http.StatusNotModified {
170336		if res.Body != nil {
170337			res.Body.Close()
170338		}
170339		return nil, &googleapi.Error{
170340			Code:   res.StatusCode,
170341			Header: res.Header,
170342		}
170343	}
170344	if err != nil {
170345		return nil, err
170346	}
170347	defer googleapi.CloseBody(res)
170348	if err := googleapi.CheckResponse(res); err != nil {
170349		return nil, err
170350	}
170351	ret := &VpnTunnelAggregatedList{
170352		ServerResponse: googleapi.ServerResponse{
170353			Header:         res.Header,
170354			HTTPStatusCode: res.StatusCode,
170355		},
170356	}
170357	target := &ret
170358	if err := gensupport.DecodeResponse(target, res); err != nil {
170359		return nil, err
170360	}
170361	return ret, nil
170362	// {
170363	//   "description": "Retrieves an aggregated list of VPN tunnels.",
170364	//   "httpMethod": "GET",
170365	//   "id": "compute.vpnTunnels.aggregatedList",
170366	//   "parameterOrder": [
170367	//     "project"
170368	//   ],
170369	//   "parameters": {
170370	//     "filter": {
170371	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
170372	//       "location": "query",
170373	//       "type": "string"
170374	//     },
170375	//     "includeAllScopes": {
170376	//       "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.",
170377	//       "location": "query",
170378	//       "type": "boolean"
170379	//     },
170380	//     "maxResults": {
170381	//       "default": "500",
170382	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
170383	//       "format": "uint32",
170384	//       "location": "query",
170385	//       "minimum": "0",
170386	//       "type": "integer"
170387	//     },
170388	//     "orderBy": {
170389	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
170390	//       "location": "query",
170391	//       "type": "string"
170392	//     },
170393	//     "pageToken": {
170394	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
170395	//       "location": "query",
170396	//       "type": "string"
170397	//     },
170398	//     "project": {
170399	//       "description": "Project ID for this request.",
170400	//       "location": "path",
170401	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
170402	//       "required": true,
170403	//       "type": "string"
170404	//     }
170405	//   },
170406	//   "path": "{project}/aggregated/vpnTunnels",
170407	//   "response": {
170408	//     "$ref": "VpnTunnelAggregatedList"
170409	//   },
170410	//   "scopes": [
170411	//     "https://www.googleapis.com/auth/cloud-platform",
170412	//     "https://www.googleapis.com/auth/compute",
170413	//     "https://www.googleapis.com/auth/compute.readonly"
170414	//   ]
170415	// }
170416
170417}
170418
170419// Pages invokes f for each page of results.
170420// A non-nil error returned from f will halt the iteration.
170421// The provided context supersedes any context provided to the Context method.
170422func (c *VpnTunnelsAggregatedListCall) Pages(ctx context.Context, f func(*VpnTunnelAggregatedList) error) error {
170423	c.ctx_ = ctx
170424	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
170425	for {
170426		x, err := c.Do()
170427		if err != nil {
170428			return err
170429		}
170430		if err := f(x); err != nil {
170431			return err
170432		}
170433		if x.NextPageToken == "" {
170434			return nil
170435		}
170436		c.PageToken(x.NextPageToken)
170437	}
170438}
170439
170440// method id "compute.vpnTunnels.delete":
170441
170442type VpnTunnelsDeleteCall struct {
170443	s          *Service
170444	project    string
170445	region     string
170446	vpnTunnel  string
170447	urlParams_ gensupport.URLParams
170448	ctx_       context.Context
170449	header_    http.Header
170450}
170451
170452// Delete: Deletes the specified VpnTunnel resource.
170453func (r *VpnTunnelsService) Delete(project string, region string, vpnTunnel string) *VpnTunnelsDeleteCall {
170454	c := &VpnTunnelsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
170455	c.project = project
170456	c.region = region
170457	c.vpnTunnel = vpnTunnel
170458	return c
170459}
170460
170461// RequestId sets the optional parameter "requestId": An optional
170462// request ID to identify requests. Specify a unique request ID so that
170463// if you must retry your request, the server will know to ignore the
170464// request if it has already been completed.
170465//
170466// For example, consider a situation where you make an initial request
170467// and the request times out. If you make the request again with the
170468// same request ID, the server can check if original operation with the
170469// same request ID was received, and if so, will ignore the second
170470// request. This prevents clients from accidentally creating duplicate
170471// commitments.
170472//
170473// The request ID must be a valid UUID with the exception that zero UUID
170474// is not supported (00000000-0000-0000-0000-000000000000).
170475func (c *VpnTunnelsDeleteCall) RequestId(requestId string) *VpnTunnelsDeleteCall {
170476	c.urlParams_.Set("requestId", requestId)
170477	return c
170478}
170479
170480// Fields allows partial responses to be retrieved. See
170481// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
170482// for more information.
170483func (c *VpnTunnelsDeleteCall) Fields(s ...googleapi.Field) *VpnTunnelsDeleteCall {
170484	c.urlParams_.Set("fields", googleapi.CombineFields(s))
170485	return c
170486}
170487
170488// Context sets the context to be used in this call's Do method. Any
170489// pending HTTP request will be aborted if the provided context is
170490// canceled.
170491func (c *VpnTunnelsDeleteCall) Context(ctx context.Context) *VpnTunnelsDeleteCall {
170492	c.ctx_ = ctx
170493	return c
170494}
170495
170496// Header returns an http.Header that can be modified by the caller to
170497// add HTTP headers to the request.
170498func (c *VpnTunnelsDeleteCall) Header() http.Header {
170499	if c.header_ == nil {
170500		c.header_ = make(http.Header)
170501	}
170502	return c.header_
170503}
170504
170505func (c *VpnTunnelsDeleteCall) doRequest(alt string) (*http.Response, error) {
170506	reqHeaders := make(http.Header)
170507	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
170508	for k, v := range c.header_ {
170509		reqHeaders[k] = v
170510	}
170511	reqHeaders.Set("User-Agent", c.s.userAgent())
170512	var body io.Reader = nil
170513	c.urlParams_.Set("alt", alt)
170514	c.urlParams_.Set("prettyPrint", "false")
170515	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels/{vpnTunnel}")
170516	urls += "?" + c.urlParams_.Encode()
170517	req, err := http.NewRequest("DELETE", urls, body)
170518	if err != nil {
170519		return nil, err
170520	}
170521	req.Header = reqHeaders
170522	googleapi.Expand(req.URL, map[string]string{
170523		"project":   c.project,
170524		"region":    c.region,
170525		"vpnTunnel": c.vpnTunnel,
170526	})
170527	return gensupport.SendRequest(c.ctx_, c.s.client, req)
170528}
170529
170530// Do executes the "compute.vpnTunnels.delete" call.
170531// Exactly one of *Operation or error will be non-nil. Any non-2xx
170532// status code is an error. Response headers are in either
170533// *Operation.ServerResponse.Header or (if a response was returned at
170534// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
170535// to check whether the returned error was because
170536// http.StatusNotModified was returned.
170537func (c *VpnTunnelsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
170538	gensupport.SetOptions(c.urlParams_, opts...)
170539	res, err := c.doRequest("json")
170540	if res != nil && res.StatusCode == http.StatusNotModified {
170541		if res.Body != nil {
170542			res.Body.Close()
170543		}
170544		return nil, &googleapi.Error{
170545			Code:   res.StatusCode,
170546			Header: res.Header,
170547		}
170548	}
170549	if err != nil {
170550		return nil, err
170551	}
170552	defer googleapi.CloseBody(res)
170553	if err := googleapi.CheckResponse(res); err != nil {
170554		return nil, err
170555	}
170556	ret := &Operation{
170557		ServerResponse: googleapi.ServerResponse{
170558			Header:         res.Header,
170559			HTTPStatusCode: res.StatusCode,
170560		},
170561	}
170562	target := &ret
170563	if err := gensupport.DecodeResponse(target, res); err != nil {
170564		return nil, err
170565	}
170566	return ret, nil
170567	// {
170568	//   "description": "Deletes the specified VpnTunnel resource.",
170569	//   "httpMethod": "DELETE",
170570	//   "id": "compute.vpnTunnels.delete",
170571	//   "parameterOrder": [
170572	//     "project",
170573	//     "region",
170574	//     "vpnTunnel"
170575	//   ],
170576	//   "parameters": {
170577	//     "project": {
170578	//       "description": "Project ID for this request.",
170579	//       "location": "path",
170580	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
170581	//       "required": true,
170582	//       "type": "string"
170583	//     },
170584	//     "region": {
170585	//       "description": "Name of the region for this request.",
170586	//       "location": "path",
170587	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
170588	//       "required": true,
170589	//       "type": "string"
170590	//     },
170591	//     "requestId": {
170592	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
170593	//       "location": "query",
170594	//       "type": "string"
170595	//     },
170596	//     "vpnTunnel": {
170597	//       "description": "Name of the VpnTunnel resource to delete.",
170598	//       "location": "path",
170599	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
170600	//       "required": true,
170601	//       "type": "string"
170602	//     }
170603	//   },
170604	//   "path": "{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
170605	//   "response": {
170606	//     "$ref": "Operation"
170607	//   },
170608	//   "scopes": [
170609	//     "https://www.googleapis.com/auth/cloud-platform",
170610	//     "https://www.googleapis.com/auth/compute"
170611	//   ]
170612	// }
170613
170614}
170615
170616// method id "compute.vpnTunnels.get":
170617
170618type VpnTunnelsGetCall struct {
170619	s            *Service
170620	project      string
170621	region       string
170622	vpnTunnel    string
170623	urlParams_   gensupport.URLParams
170624	ifNoneMatch_ string
170625	ctx_         context.Context
170626	header_      http.Header
170627}
170628
170629// Get: Returns the specified VpnTunnel resource. Gets a list of
170630// available VPN tunnels by making a list() request.
170631func (r *VpnTunnelsService) Get(project string, region string, vpnTunnel string) *VpnTunnelsGetCall {
170632	c := &VpnTunnelsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
170633	c.project = project
170634	c.region = region
170635	c.vpnTunnel = vpnTunnel
170636	return c
170637}
170638
170639// Fields allows partial responses to be retrieved. See
170640// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
170641// for more information.
170642func (c *VpnTunnelsGetCall) Fields(s ...googleapi.Field) *VpnTunnelsGetCall {
170643	c.urlParams_.Set("fields", googleapi.CombineFields(s))
170644	return c
170645}
170646
170647// IfNoneMatch sets the optional parameter which makes the operation
170648// fail if the object's ETag matches the given value. This is useful for
170649// getting updates only after the object has changed since the last
170650// request. Use googleapi.IsNotModified to check whether the response
170651// error from Do is the result of In-None-Match.
170652func (c *VpnTunnelsGetCall) IfNoneMatch(entityTag string) *VpnTunnelsGetCall {
170653	c.ifNoneMatch_ = entityTag
170654	return c
170655}
170656
170657// Context sets the context to be used in this call's Do method. Any
170658// pending HTTP request will be aborted if the provided context is
170659// canceled.
170660func (c *VpnTunnelsGetCall) Context(ctx context.Context) *VpnTunnelsGetCall {
170661	c.ctx_ = ctx
170662	return c
170663}
170664
170665// Header returns an http.Header that can be modified by the caller to
170666// add HTTP headers to the request.
170667func (c *VpnTunnelsGetCall) Header() http.Header {
170668	if c.header_ == nil {
170669		c.header_ = make(http.Header)
170670	}
170671	return c.header_
170672}
170673
170674func (c *VpnTunnelsGetCall) doRequest(alt string) (*http.Response, error) {
170675	reqHeaders := make(http.Header)
170676	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
170677	for k, v := range c.header_ {
170678		reqHeaders[k] = v
170679	}
170680	reqHeaders.Set("User-Agent", c.s.userAgent())
170681	if c.ifNoneMatch_ != "" {
170682		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
170683	}
170684	var body io.Reader = nil
170685	c.urlParams_.Set("alt", alt)
170686	c.urlParams_.Set("prettyPrint", "false")
170687	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels/{vpnTunnel}")
170688	urls += "?" + c.urlParams_.Encode()
170689	req, err := http.NewRequest("GET", urls, body)
170690	if err != nil {
170691		return nil, err
170692	}
170693	req.Header = reqHeaders
170694	googleapi.Expand(req.URL, map[string]string{
170695		"project":   c.project,
170696		"region":    c.region,
170697		"vpnTunnel": c.vpnTunnel,
170698	})
170699	return gensupport.SendRequest(c.ctx_, c.s.client, req)
170700}
170701
170702// Do executes the "compute.vpnTunnels.get" call.
170703// Exactly one of *VpnTunnel or error will be non-nil. Any non-2xx
170704// status code is an error. Response headers are in either
170705// *VpnTunnel.ServerResponse.Header or (if a response was returned at
170706// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
170707// to check whether the returned error was because
170708// http.StatusNotModified was returned.
170709func (c *VpnTunnelsGetCall) Do(opts ...googleapi.CallOption) (*VpnTunnel, error) {
170710	gensupport.SetOptions(c.urlParams_, opts...)
170711	res, err := c.doRequest("json")
170712	if res != nil && res.StatusCode == http.StatusNotModified {
170713		if res.Body != nil {
170714			res.Body.Close()
170715		}
170716		return nil, &googleapi.Error{
170717			Code:   res.StatusCode,
170718			Header: res.Header,
170719		}
170720	}
170721	if err != nil {
170722		return nil, err
170723	}
170724	defer googleapi.CloseBody(res)
170725	if err := googleapi.CheckResponse(res); err != nil {
170726		return nil, err
170727	}
170728	ret := &VpnTunnel{
170729		ServerResponse: googleapi.ServerResponse{
170730			Header:         res.Header,
170731			HTTPStatusCode: res.StatusCode,
170732		},
170733	}
170734	target := &ret
170735	if err := gensupport.DecodeResponse(target, res); err != nil {
170736		return nil, err
170737	}
170738	return ret, nil
170739	// {
170740	//   "description": "Returns the specified VpnTunnel resource. Gets a list of available VPN tunnels by making a list() request.",
170741	//   "httpMethod": "GET",
170742	//   "id": "compute.vpnTunnels.get",
170743	//   "parameterOrder": [
170744	//     "project",
170745	//     "region",
170746	//     "vpnTunnel"
170747	//   ],
170748	//   "parameters": {
170749	//     "project": {
170750	//       "description": "Project ID for this request.",
170751	//       "location": "path",
170752	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
170753	//       "required": true,
170754	//       "type": "string"
170755	//     },
170756	//     "region": {
170757	//       "description": "Name of the region for this request.",
170758	//       "location": "path",
170759	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
170760	//       "required": true,
170761	//       "type": "string"
170762	//     },
170763	//     "vpnTunnel": {
170764	//       "description": "Name of the VpnTunnel resource to return.",
170765	//       "location": "path",
170766	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
170767	//       "required": true,
170768	//       "type": "string"
170769	//     }
170770	//   },
170771	//   "path": "{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
170772	//   "response": {
170773	//     "$ref": "VpnTunnel"
170774	//   },
170775	//   "scopes": [
170776	//     "https://www.googleapis.com/auth/cloud-platform",
170777	//     "https://www.googleapis.com/auth/compute",
170778	//     "https://www.googleapis.com/auth/compute.readonly"
170779	//   ]
170780	// }
170781
170782}
170783
170784// method id "compute.vpnTunnels.insert":
170785
170786type VpnTunnelsInsertCall struct {
170787	s          *Service
170788	project    string
170789	region     string
170790	vpntunnel  *VpnTunnel
170791	urlParams_ gensupport.URLParams
170792	ctx_       context.Context
170793	header_    http.Header
170794}
170795
170796// Insert: Creates a VpnTunnel resource in the specified project and
170797// region using the data included in the request.
170798func (r *VpnTunnelsService) Insert(project string, region string, vpntunnel *VpnTunnel) *VpnTunnelsInsertCall {
170799	c := &VpnTunnelsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
170800	c.project = project
170801	c.region = region
170802	c.vpntunnel = vpntunnel
170803	return c
170804}
170805
170806// RequestId sets the optional parameter "requestId": An optional
170807// request ID to identify requests. Specify a unique request ID so that
170808// if you must retry your request, the server will know to ignore the
170809// request if it has already been completed.
170810//
170811// For example, consider a situation where you make an initial request
170812// and the request times out. If you make the request again with the
170813// same request ID, the server can check if original operation with the
170814// same request ID was received, and if so, will ignore the second
170815// request. This prevents clients from accidentally creating duplicate
170816// commitments.
170817//
170818// The request ID must be a valid UUID with the exception that zero UUID
170819// is not supported (00000000-0000-0000-0000-000000000000).
170820func (c *VpnTunnelsInsertCall) RequestId(requestId string) *VpnTunnelsInsertCall {
170821	c.urlParams_.Set("requestId", requestId)
170822	return c
170823}
170824
170825// Fields allows partial responses to be retrieved. See
170826// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
170827// for more information.
170828func (c *VpnTunnelsInsertCall) Fields(s ...googleapi.Field) *VpnTunnelsInsertCall {
170829	c.urlParams_.Set("fields", googleapi.CombineFields(s))
170830	return c
170831}
170832
170833// Context sets the context to be used in this call's Do method. Any
170834// pending HTTP request will be aborted if the provided context is
170835// canceled.
170836func (c *VpnTunnelsInsertCall) Context(ctx context.Context) *VpnTunnelsInsertCall {
170837	c.ctx_ = ctx
170838	return c
170839}
170840
170841// Header returns an http.Header that can be modified by the caller to
170842// add HTTP headers to the request.
170843func (c *VpnTunnelsInsertCall) Header() http.Header {
170844	if c.header_ == nil {
170845		c.header_ = make(http.Header)
170846	}
170847	return c.header_
170848}
170849
170850func (c *VpnTunnelsInsertCall) doRequest(alt string) (*http.Response, error) {
170851	reqHeaders := make(http.Header)
170852	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
170853	for k, v := range c.header_ {
170854		reqHeaders[k] = v
170855	}
170856	reqHeaders.Set("User-Agent", c.s.userAgent())
170857	var body io.Reader = nil
170858	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vpntunnel)
170859	if err != nil {
170860		return nil, err
170861	}
170862	reqHeaders.Set("Content-Type", "application/json")
170863	c.urlParams_.Set("alt", alt)
170864	c.urlParams_.Set("prettyPrint", "false")
170865	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels")
170866	urls += "?" + c.urlParams_.Encode()
170867	req, err := http.NewRequest("POST", urls, body)
170868	if err != nil {
170869		return nil, err
170870	}
170871	req.Header = reqHeaders
170872	googleapi.Expand(req.URL, map[string]string{
170873		"project": c.project,
170874		"region":  c.region,
170875	})
170876	return gensupport.SendRequest(c.ctx_, c.s.client, req)
170877}
170878
170879// Do executes the "compute.vpnTunnels.insert" call.
170880// Exactly one of *Operation or error will be non-nil. Any non-2xx
170881// status code is an error. Response headers are in either
170882// *Operation.ServerResponse.Header or (if a response was returned at
170883// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
170884// to check whether the returned error was because
170885// http.StatusNotModified was returned.
170886func (c *VpnTunnelsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
170887	gensupport.SetOptions(c.urlParams_, opts...)
170888	res, err := c.doRequest("json")
170889	if res != nil && res.StatusCode == http.StatusNotModified {
170890		if res.Body != nil {
170891			res.Body.Close()
170892		}
170893		return nil, &googleapi.Error{
170894			Code:   res.StatusCode,
170895			Header: res.Header,
170896		}
170897	}
170898	if err != nil {
170899		return nil, err
170900	}
170901	defer googleapi.CloseBody(res)
170902	if err := googleapi.CheckResponse(res); err != nil {
170903		return nil, err
170904	}
170905	ret := &Operation{
170906		ServerResponse: googleapi.ServerResponse{
170907			Header:         res.Header,
170908			HTTPStatusCode: res.StatusCode,
170909		},
170910	}
170911	target := &ret
170912	if err := gensupport.DecodeResponse(target, res); err != nil {
170913		return nil, err
170914	}
170915	return ret, nil
170916	// {
170917	//   "description": "Creates a VpnTunnel resource in the specified project and region using the data included in the request.",
170918	//   "httpMethod": "POST",
170919	//   "id": "compute.vpnTunnels.insert",
170920	//   "parameterOrder": [
170921	//     "project",
170922	//     "region"
170923	//   ],
170924	//   "parameters": {
170925	//     "project": {
170926	//       "description": "Project ID for this request.",
170927	//       "location": "path",
170928	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
170929	//       "required": true,
170930	//       "type": "string"
170931	//     },
170932	//     "region": {
170933	//       "description": "Name of the region for this request.",
170934	//       "location": "path",
170935	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
170936	//       "required": true,
170937	//       "type": "string"
170938	//     },
170939	//     "requestId": {
170940	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
170941	//       "location": "query",
170942	//       "type": "string"
170943	//     }
170944	//   },
170945	//   "path": "{project}/regions/{region}/vpnTunnels",
170946	//   "request": {
170947	//     "$ref": "VpnTunnel"
170948	//   },
170949	//   "response": {
170950	//     "$ref": "Operation"
170951	//   },
170952	//   "scopes": [
170953	//     "https://www.googleapis.com/auth/cloud-platform",
170954	//     "https://www.googleapis.com/auth/compute"
170955	//   ]
170956	// }
170957
170958}
170959
170960// method id "compute.vpnTunnels.list":
170961
170962type VpnTunnelsListCall struct {
170963	s            *Service
170964	project      string
170965	region       string
170966	urlParams_   gensupport.URLParams
170967	ifNoneMatch_ string
170968	ctx_         context.Context
170969	header_      http.Header
170970}
170971
170972// List: Retrieves a list of VpnTunnel resources contained in the
170973// specified project and region.
170974func (r *VpnTunnelsService) List(project string, region string) *VpnTunnelsListCall {
170975	c := &VpnTunnelsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
170976	c.project = project
170977	c.region = region
170978	return c
170979}
170980
170981// Filter sets the optional parameter "filter": A filter expression that
170982// filters resources listed in the response. The expression must specify
170983// the field name, a comparison operator, and the value that you want to
170984// use for filtering. The value must be a string, a number, or a
170985// boolean. The comparison operator must be either =, !=, >, or <.
170986//
170987// For example, if you are filtering Compute Engine instances, you can
170988// exclude instances named example-instance by specifying name !=
170989// example-instance.
170990//
170991// You can also filter nested fields. For example, you could specify
170992// scheduling.automaticRestart = false to include instances only if they
170993// are not scheduled for automatic restarts. You can use filtering on
170994// nested fields to filter based on resource labels.
170995//
170996// To filter on multiple expressions, provide each separate expression
170997// within parentheses. For example, (scheduling.automaticRestart = true)
170998// (cpuPlatform = "Intel Skylake"). By default, each expression is an
170999// AND expression. However, you can include AND and OR expressions
171000// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
171001// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
171002// true).
171003func (c *VpnTunnelsListCall) Filter(filter string) *VpnTunnelsListCall {
171004	c.urlParams_.Set("filter", filter)
171005	return c
171006}
171007
171008// MaxResults sets the optional parameter "maxResults": The maximum
171009// number of results per page that should be returned. If the number of
171010// available results is larger than maxResults, Compute Engine returns a
171011// nextPageToken that can be used to get the next page of results in
171012// subsequent list requests. Acceptable values are 0 to 500, inclusive.
171013// (Default: 500)
171014func (c *VpnTunnelsListCall) MaxResults(maxResults int64) *VpnTunnelsListCall {
171015	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
171016	return c
171017}
171018
171019// OrderBy sets the optional parameter "orderBy": Sorts list results by
171020// a certain order. By default, results are returned in alphanumerical
171021// order based on the resource name.
171022//
171023// You can also sort results in descending order based on the creation
171024// timestamp using orderBy="creationTimestamp desc". This sorts results
171025// based on the creationTimestamp field in reverse chronological order
171026// (newest result first). Use this to sort resources like operations so
171027// that the newest operation is returned first.
171028//
171029// Currently, only sorting by name or creationTimestamp desc is
171030// supported.
171031func (c *VpnTunnelsListCall) OrderBy(orderBy string) *VpnTunnelsListCall {
171032	c.urlParams_.Set("orderBy", orderBy)
171033	return c
171034}
171035
171036// PageToken sets the optional parameter "pageToken": Specifies a page
171037// token to use. Set pageToken to the nextPageToken returned by a
171038// previous list request to get the next page of results.
171039func (c *VpnTunnelsListCall) PageToken(pageToken string) *VpnTunnelsListCall {
171040	c.urlParams_.Set("pageToken", pageToken)
171041	return c
171042}
171043
171044// Fields allows partial responses to be retrieved. See
171045// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
171046// for more information.
171047func (c *VpnTunnelsListCall) Fields(s ...googleapi.Field) *VpnTunnelsListCall {
171048	c.urlParams_.Set("fields", googleapi.CombineFields(s))
171049	return c
171050}
171051
171052// IfNoneMatch sets the optional parameter which makes the operation
171053// fail if the object's ETag matches the given value. This is useful for
171054// getting updates only after the object has changed since the last
171055// request. Use googleapi.IsNotModified to check whether the response
171056// error from Do is the result of In-None-Match.
171057func (c *VpnTunnelsListCall) IfNoneMatch(entityTag string) *VpnTunnelsListCall {
171058	c.ifNoneMatch_ = entityTag
171059	return c
171060}
171061
171062// Context sets the context to be used in this call's Do method. Any
171063// pending HTTP request will be aborted if the provided context is
171064// canceled.
171065func (c *VpnTunnelsListCall) Context(ctx context.Context) *VpnTunnelsListCall {
171066	c.ctx_ = ctx
171067	return c
171068}
171069
171070// Header returns an http.Header that can be modified by the caller to
171071// add HTTP headers to the request.
171072func (c *VpnTunnelsListCall) Header() http.Header {
171073	if c.header_ == nil {
171074		c.header_ = make(http.Header)
171075	}
171076	return c.header_
171077}
171078
171079func (c *VpnTunnelsListCall) doRequest(alt string) (*http.Response, error) {
171080	reqHeaders := make(http.Header)
171081	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
171082	for k, v := range c.header_ {
171083		reqHeaders[k] = v
171084	}
171085	reqHeaders.Set("User-Agent", c.s.userAgent())
171086	if c.ifNoneMatch_ != "" {
171087		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
171088	}
171089	var body io.Reader = nil
171090	c.urlParams_.Set("alt", alt)
171091	c.urlParams_.Set("prettyPrint", "false")
171092	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels")
171093	urls += "?" + c.urlParams_.Encode()
171094	req, err := http.NewRequest("GET", urls, body)
171095	if err != nil {
171096		return nil, err
171097	}
171098	req.Header = reqHeaders
171099	googleapi.Expand(req.URL, map[string]string{
171100		"project": c.project,
171101		"region":  c.region,
171102	})
171103	return gensupport.SendRequest(c.ctx_, c.s.client, req)
171104}
171105
171106// Do executes the "compute.vpnTunnels.list" call.
171107// Exactly one of *VpnTunnelList or error will be non-nil. Any non-2xx
171108// status code is an error. Response headers are in either
171109// *VpnTunnelList.ServerResponse.Header or (if a response was returned
171110// at all) in error.(*googleapi.Error).Header. Use
171111// googleapi.IsNotModified to check whether the returned error was
171112// because http.StatusNotModified was returned.
171113func (c *VpnTunnelsListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelList, error) {
171114	gensupport.SetOptions(c.urlParams_, opts...)
171115	res, err := c.doRequest("json")
171116	if res != nil && res.StatusCode == http.StatusNotModified {
171117		if res.Body != nil {
171118			res.Body.Close()
171119		}
171120		return nil, &googleapi.Error{
171121			Code:   res.StatusCode,
171122			Header: res.Header,
171123		}
171124	}
171125	if err != nil {
171126		return nil, err
171127	}
171128	defer googleapi.CloseBody(res)
171129	if err := googleapi.CheckResponse(res); err != nil {
171130		return nil, err
171131	}
171132	ret := &VpnTunnelList{
171133		ServerResponse: googleapi.ServerResponse{
171134			Header:         res.Header,
171135			HTTPStatusCode: res.StatusCode,
171136		},
171137	}
171138	target := &ret
171139	if err := gensupport.DecodeResponse(target, res); err != nil {
171140		return nil, err
171141	}
171142	return ret, nil
171143	// {
171144	//   "description": "Retrieves a list of VpnTunnel resources contained in the specified project and region.",
171145	//   "httpMethod": "GET",
171146	//   "id": "compute.vpnTunnels.list",
171147	//   "parameterOrder": [
171148	//     "project",
171149	//     "region"
171150	//   ],
171151	//   "parameters": {
171152	//     "filter": {
171153	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
171154	//       "location": "query",
171155	//       "type": "string"
171156	//     },
171157	//     "maxResults": {
171158	//       "default": "500",
171159	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
171160	//       "format": "uint32",
171161	//       "location": "query",
171162	//       "minimum": "0",
171163	//       "type": "integer"
171164	//     },
171165	//     "orderBy": {
171166	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
171167	//       "location": "query",
171168	//       "type": "string"
171169	//     },
171170	//     "pageToken": {
171171	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
171172	//       "location": "query",
171173	//       "type": "string"
171174	//     },
171175	//     "project": {
171176	//       "description": "Project ID for this request.",
171177	//       "location": "path",
171178	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
171179	//       "required": true,
171180	//       "type": "string"
171181	//     },
171182	//     "region": {
171183	//       "description": "Name of the region for this request.",
171184	//       "location": "path",
171185	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
171186	//       "required": true,
171187	//       "type": "string"
171188	//     }
171189	//   },
171190	//   "path": "{project}/regions/{region}/vpnTunnels",
171191	//   "response": {
171192	//     "$ref": "VpnTunnelList"
171193	//   },
171194	//   "scopes": [
171195	//     "https://www.googleapis.com/auth/cloud-platform",
171196	//     "https://www.googleapis.com/auth/compute",
171197	//     "https://www.googleapis.com/auth/compute.readonly"
171198	//   ]
171199	// }
171200
171201}
171202
171203// Pages invokes f for each page of results.
171204// A non-nil error returned from f will halt the iteration.
171205// The provided context supersedes any context provided to the Context method.
171206func (c *VpnTunnelsListCall) Pages(ctx context.Context, f func(*VpnTunnelList) error) error {
171207	c.ctx_ = ctx
171208	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
171209	for {
171210		x, err := c.Do()
171211		if err != nil {
171212			return err
171213		}
171214		if err := f(x); err != nil {
171215			return err
171216		}
171217		if x.NextPageToken == "" {
171218			return nil
171219		}
171220		c.PageToken(x.NextPageToken)
171221	}
171222}
171223
171224// method id "compute.vpnTunnels.setLabels":
171225
171226type VpnTunnelsSetLabelsCall struct {
171227	s                      *Service
171228	project                string
171229	region                 string
171230	resource               string
171231	regionsetlabelsrequest *RegionSetLabelsRequest
171232	urlParams_             gensupport.URLParams
171233	ctx_                   context.Context
171234	header_                http.Header
171235}
171236
171237// SetLabels: Sets the labels on a VpnTunnel. To learn more about
171238// labels, read the Labeling Resources documentation.
171239func (r *VpnTunnelsService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *VpnTunnelsSetLabelsCall {
171240	c := &VpnTunnelsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
171241	c.project = project
171242	c.region = region
171243	c.resource = resource
171244	c.regionsetlabelsrequest = regionsetlabelsrequest
171245	return c
171246}
171247
171248// RequestId sets the optional parameter "requestId": An optional
171249// request ID to identify requests. Specify a unique request ID so that
171250// if you must retry your request, the server will know to ignore the
171251// request if it has already been completed.
171252//
171253// For example, consider a situation where you make an initial request
171254// and the request times out. If you make the request again with the
171255// same request ID, the server can check if original operation with the
171256// same request ID was received, and if so, will ignore the second
171257// request. This prevents clients from accidentally creating duplicate
171258// commitments.
171259//
171260// The request ID must be a valid UUID with the exception that zero UUID
171261// is not supported (00000000-0000-0000-0000-000000000000).
171262func (c *VpnTunnelsSetLabelsCall) RequestId(requestId string) *VpnTunnelsSetLabelsCall {
171263	c.urlParams_.Set("requestId", requestId)
171264	return c
171265}
171266
171267// Fields allows partial responses to be retrieved. See
171268// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
171269// for more information.
171270func (c *VpnTunnelsSetLabelsCall) Fields(s ...googleapi.Field) *VpnTunnelsSetLabelsCall {
171271	c.urlParams_.Set("fields", googleapi.CombineFields(s))
171272	return c
171273}
171274
171275// Context sets the context to be used in this call's Do method. Any
171276// pending HTTP request will be aborted if the provided context is
171277// canceled.
171278func (c *VpnTunnelsSetLabelsCall) Context(ctx context.Context) *VpnTunnelsSetLabelsCall {
171279	c.ctx_ = ctx
171280	return c
171281}
171282
171283// Header returns an http.Header that can be modified by the caller to
171284// add HTTP headers to the request.
171285func (c *VpnTunnelsSetLabelsCall) Header() http.Header {
171286	if c.header_ == nil {
171287		c.header_ = make(http.Header)
171288	}
171289	return c.header_
171290}
171291
171292func (c *VpnTunnelsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
171293	reqHeaders := make(http.Header)
171294	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
171295	for k, v := range c.header_ {
171296		reqHeaders[k] = v
171297	}
171298	reqHeaders.Set("User-Agent", c.s.userAgent())
171299	var body io.Reader = nil
171300	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
171301	if err != nil {
171302		return nil, err
171303	}
171304	reqHeaders.Set("Content-Type", "application/json")
171305	c.urlParams_.Set("alt", alt)
171306	c.urlParams_.Set("prettyPrint", "false")
171307	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels/{resource}/setLabels")
171308	urls += "?" + c.urlParams_.Encode()
171309	req, err := http.NewRequest("POST", urls, body)
171310	if err != nil {
171311		return nil, err
171312	}
171313	req.Header = reqHeaders
171314	googleapi.Expand(req.URL, map[string]string{
171315		"project":  c.project,
171316		"region":   c.region,
171317		"resource": c.resource,
171318	})
171319	return gensupport.SendRequest(c.ctx_, c.s.client, req)
171320}
171321
171322// Do executes the "compute.vpnTunnels.setLabels" call.
171323// Exactly one of *Operation or error will be non-nil. Any non-2xx
171324// status code is an error. Response headers are in either
171325// *Operation.ServerResponse.Header or (if a response was returned at
171326// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
171327// to check whether the returned error was because
171328// http.StatusNotModified was returned.
171329func (c *VpnTunnelsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
171330	gensupport.SetOptions(c.urlParams_, opts...)
171331	res, err := c.doRequest("json")
171332	if res != nil && res.StatusCode == http.StatusNotModified {
171333		if res.Body != nil {
171334			res.Body.Close()
171335		}
171336		return nil, &googleapi.Error{
171337			Code:   res.StatusCode,
171338			Header: res.Header,
171339		}
171340	}
171341	if err != nil {
171342		return nil, err
171343	}
171344	defer googleapi.CloseBody(res)
171345	if err := googleapi.CheckResponse(res); err != nil {
171346		return nil, err
171347	}
171348	ret := &Operation{
171349		ServerResponse: googleapi.ServerResponse{
171350			Header:         res.Header,
171351			HTTPStatusCode: res.StatusCode,
171352		},
171353	}
171354	target := &ret
171355	if err := gensupport.DecodeResponse(target, res); err != nil {
171356		return nil, err
171357	}
171358	return ret, nil
171359	// {
171360	//   "description": "Sets the labels on a VpnTunnel. To learn more about labels, read the Labeling Resources documentation.",
171361	//   "httpMethod": "POST",
171362	//   "id": "compute.vpnTunnels.setLabels",
171363	//   "parameterOrder": [
171364	//     "project",
171365	//     "region",
171366	//     "resource"
171367	//   ],
171368	//   "parameters": {
171369	//     "project": {
171370	//       "description": "Project ID for this request.",
171371	//       "location": "path",
171372	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
171373	//       "required": true,
171374	//       "type": "string"
171375	//     },
171376	//     "region": {
171377	//       "description": "The region for this request.",
171378	//       "location": "path",
171379	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
171380	//       "required": true,
171381	//       "type": "string"
171382	//     },
171383	//     "requestId": {
171384	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
171385	//       "location": "query",
171386	//       "type": "string"
171387	//     },
171388	//     "resource": {
171389	//       "description": "Name or id of the resource for this request.",
171390	//       "location": "path",
171391	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
171392	//       "required": true,
171393	//       "type": "string"
171394	//     }
171395	//   },
171396	//   "path": "{project}/regions/{region}/vpnTunnels/{resource}/setLabels",
171397	//   "request": {
171398	//     "$ref": "RegionSetLabelsRequest"
171399	//   },
171400	//   "response": {
171401	//     "$ref": "Operation"
171402	//   },
171403	//   "scopes": [
171404	//     "https://www.googleapis.com/auth/cloud-platform",
171405	//     "https://www.googleapis.com/auth/compute"
171406	//   ]
171407	// }
171408
171409}
171410
171411// method id "compute.vpnTunnels.testIamPermissions":
171412
171413type VpnTunnelsTestIamPermissionsCall struct {
171414	s                      *Service
171415	project                string
171416	region                 string
171417	resource               string
171418	testpermissionsrequest *TestPermissionsRequest
171419	urlParams_             gensupport.URLParams
171420	ctx_                   context.Context
171421	header_                http.Header
171422}
171423
171424// TestIamPermissions: Returns permissions that a caller has on the
171425// specified resource.
171426func (r *VpnTunnelsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *VpnTunnelsTestIamPermissionsCall {
171427	c := &VpnTunnelsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
171428	c.project = project
171429	c.region = region
171430	c.resource = resource
171431	c.testpermissionsrequest = testpermissionsrequest
171432	return c
171433}
171434
171435// Fields allows partial responses to be retrieved. See
171436// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
171437// for more information.
171438func (c *VpnTunnelsTestIamPermissionsCall) Fields(s ...googleapi.Field) *VpnTunnelsTestIamPermissionsCall {
171439	c.urlParams_.Set("fields", googleapi.CombineFields(s))
171440	return c
171441}
171442
171443// Context sets the context to be used in this call's Do method. Any
171444// pending HTTP request will be aborted if the provided context is
171445// canceled.
171446func (c *VpnTunnelsTestIamPermissionsCall) Context(ctx context.Context) *VpnTunnelsTestIamPermissionsCall {
171447	c.ctx_ = ctx
171448	return c
171449}
171450
171451// Header returns an http.Header that can be modified by the caller to
171452// add HTTP headers to the request.
171453func (c *VpnTunnelsTestIamPermissionsCall) Header() http.Header {
171454	if c.header_ == nil {
171455		c.header_ = make(http.Header)
171456	}
171457	return c.header_
171458}
171459
171460func (c *VpnTunnelsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
171461	reqHeaders := make(http.Header)
171462	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
171463	for k, v := range c.header_ {
171464		reqHeaders[k] = v
171465	}
171466	reqHeaders.Set("User-Agent", c.s.userAgent())
171467	var body io.Reader = nil
171468	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
171469	if err != nil {
171470		return nil, err
171471	}
171472	reqHeaders.Set("Content-Type", "application/json")
171473	c.urlParams_.Set("alt", alt)
171474	c.urlParams_.Set("prettyPrint", "false")
171475	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels/{resource}/testIamPermissions")
171476	urls += "?" + c.urlParams_.Encode()
171477	req, err := http.NewRequest("POST", urls, body)
171478	if err != nil {
171479		return nil, err
171480	}
171481	req.Header = reqHeaders
171482	googleapi.Expand(req.URL, map[string]string{
171483		"project":  c.project,
171484		"region":   c.region,
171485		"resource": c.resource,
171486	})
171487	return gensupport.SendRequest(c.ctx_, c.s.client, req)
171488}
171489
171490// Do executes the "compute.vpnTunnels.testIamPermissions" call.
171491// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
171492// non-2xx status code is an error. Response headers are in either
171493// *TestPermissionsResponse.ServerResponse.Header or (if a response was
171494// returned at all) in error.(*googleapi.Error).Header. Use
171495// googleapi.IsNotModified to check whether the returned error was
171496// because http.StatusNotModified was returned.
171497func (c *VpnTunnelsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
171498	gensupport.SetOptions(c.urlParams_, opts...)
171499	res, err := c.doRequest("json")
171500	if res != nil && res.StatusCode == http.StatusNotModified {
171501		if res.Body != nil {
171502			res.Body.Close()
171503		}
171504		return nil, &googleapi.Error{
171505			Code:   res.StatusCode,
171506			Header: res.Header,
171507		}
171508	}
171509	if err != nil {
171510		return nil, err
171511	}
171512	defer googleapi.CloseBody(res)
171513	if err := googleapi.CheckResponse(res); err != nil {
171514		return nil, err
171515	}
171516	ret := &TestPermissionsResponse{
171517		ServerResponse: googleapi.ServerResponse{
171518			Header:         res.Header,
171519			HTTPStatusCode: res.StatusCode,
171520		},
171521	}
171522	target := &ret
171523	if err := gensupport.DecodeResponse(target, res); err != nil {
171524		return nil, err
171525	}
171526	return ret, nil
171527	// {
171528	//   "description": "Returns permissions that a caller has on the specified resource.",
171529	//   "httpMethod": "POST",
171530	//   "id": "compute.vpnTunnels.testIamPermissions",
171531	//   "parameterOrder": [
171532	//     "project",
171533	//     "region",
171534	//     "resource"
171535	//   ],
171536	//   "parameters": {
171537	//     "project": {
171538	//       "description": "Project ID for this request.",
171539	//       "location": "path",
171540	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
171541	//       "required": true,
171542	//       "type": "string"
171543	//     },
171544	//     "region": {
171545	//       "description": "The name of the region for this request.",
171546	//       "location": "path",
171547	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
171548	//       "required": true,
171549	//       "type": "string"
171550	//     },
171551	//     "resource": {
171552	//       "description": "Name or id of the resource for this request.",
171553	//       "location": "path",
171554	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
171555	//       "required": true,
171556	//       "type": "string"
171557	//     }
171558	//   },
171559	//   "path": "{project}/regions/{region}/vpnTunnels/{resource}/testIamPermissions",
171560	//   "request": {
171561	//     "$ref": "TestPermissionsRequest"
171562	//   },
171563	//   "response": {
171564	//     "$ref": "TestPermissionsResponse"
171565	//   },
171566	//   "scopes": [
171567	//     "https://www.googleapis.com/auth/cloud-platform",
171568	//     "https://www.googleapis.com/auth/compute",
171569	//     "https://www.googleapis.com/auth/compute.readonly"
171570	//   ]
171571	// }
171572
171573}
171574
171575// method id "compute.zoneOperations.delete":
171576
171577type ZoneOperationsDeleteCall struct {
171578	s          *Service
171579	project    string
171580	zone       string
171581	operation  string
171582	urlParams_ gensupport.URLParams
171583	ctx_       context.Context
171584	header_    http.Header
171585}
171586
171587// Delete: Deletes the specified zone-specific Operations resource.
171588// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/delete
171589func (r *ZoneOperationsService) Delete(project string, zone string, operation string) *ZoneOperationsDeleteCall {
171590	c := &ZoneOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
171591	c.project = project
171592	c.zone = zone
171593	c.operation = operation
171594	return c
171595}
171596
171597// Fields allows partial responses to be retrieved. See
171598// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
171599// for more information.
171600func (c *ZoneOperationsDeleteCall) Fields(s ...googleapi.Field) *ZoneOperationsDeleteCall {
171601	c.urlParams_.Set("fields", googleapi.CombineFields(s))
171602	return c
171603}
171604
171605// Context sets the context to be used in this call's Do method. Any
171606// pending HTTP request will be aborted if the provided context is
171607// canceled.
171608func (c *ZoneOperationsDeleteCall) Context(ctx context.Context) *ZoneOperationsDeleteCall {
171609	c.ctx_ = ctx
171610	return c
171611}
171612
171613// Header returns an http.Header that can be modified by the caller to
171614// add HTTP headers to the request.
171615func (c *ZoneOperationsDeleteCall) Header() http.Header {
171616	if c.header_ == nil {
171617		c.header_ = make(http.Header)
171618	}
171619	return c.header_
171620}
171621
171622func (c *ZoneOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
171623	reqHeaders := make(http.Header)
171624	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
171625	for k, v := range c.header_ {
171626		reqHeaders[k] = v
171627	}
171628	reqHeaders.Set("User-Agent", c.s.userAgent())
171629	var body io.Reader = nil
171630	c.urlParams_.Set("alt", alt)
171631	c.urlParams_.Set("prettyPrint", "false")
171632	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations/{operation}")
171633	urls += "?" + c.urlParams_.Encode()
171634	req, err := http.NewRequest("DELETE", urls, body)
171635	if err != nil {
171636		return nil, err
171637	}
171638	req.Header = reqHeaders
171639	googleapi.Expand(req.URL, map[string]string{
171640		"project":   c.project,
171641		"zone":      c.zone,
171642		"operation": c.operation,
171643	})
171644	return gensupport.SendRequest(c.ctx_, c.s.client, req)
171645}
171646
171647// Do executes the "compute.zoneOperations.delete" call.
171648func (c *ZoneOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
171649	gensupport.SetOptions(c.urlParams_, opts...)
171650	res, err := c.doRequest("json")
171651	if err != nil {
171652		return err
171653	}
171654	defer googleapi.CloseBody(res)
171655	if err := googleapi.CheckResponse(res); err != nil {
171656		return err
171657	}
171658	return nil
171659	// {
171660	//   "description": "Deletes the specified zone-specific Operations resource.",
171661	//   "httpMethod": "DELETE",
171662	//   "id": "compute.zoneOperations.delete",
171663	//   "parameterOrder": [
171664	//     "project",
171665	//     "zone",
171666	//     "operation"
171667	//   ],
171668	//   "parameters": {
171669	//     "operation": {
171670	//       "description": "Name of the Operations resource to delete.",
171671	//       "location": "path",
171672	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
171673	//       "required": true,
171674	//       "type": "string"
171675	//     },
171676	//     "project": {
171677	//       "description": "Project ID for this request.",
171678	//       "location": "path",
171679	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
171680	//       "required": true,
171681	//       "type": "string"
171682	//     },
171683	//     "zone": {
171684	//       "description": "Name of the zone for this request.",
171685	//       "location": "path",
171686	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
171687	//       "required": true,
171688	//       "type": "string"
171689	//     }
171690	//   },
171691	//   "path": "{project}/zones/{zone}/operations/{operation}",
171692	//   "scopes": [
171693	//     "https://www.googleapis.com/auth/cloud-platform",
171694	//     "https://www.googleapis.com/auth/compute"
171695	//   ]
171696	// }
171697
171698}
171699
171700// method id "compute.zoneOperations.get":
171701
171702type ZoneOperationsGetCall struct {
171703	s            *Service
171704	project      string
171705	zone         string
171706	operation    string
171707	urlParams_   gensupport.URLParams
171708	ifNoneMatch_ string
171709	ctx_         context.Context
171710	header_      http.Header
171711}
171712
171713// Get: Retrieves the specified zone-specific Operations resource.
171714// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/get
171715func (r *ZoneOperationsService) Get(project string, zone string, operation string) *ZoneOperationsGetCall {
171716	c := &ZoneOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
171717	c.project = project
171718	c.zone = zone
171719	c.operation = operation
171720	return c
171721}
171722
171723// Fields allows partial responses to be retrieved. See
171724// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
171725// for more information.
171726func (c *ZoneOperationsGetCall) Fields(s ...googleapi.Field) *ZoneOperationsGetCall {
171727	c.urlParams_.Set("fields", googleapi.CombineFields(s))
171728	return c
171729}
171730
171731// IfNoneMatch sets the optional parameter which makes the operation
171732// fail if the object's ETag matches the given value. This is useful for
171733// getting updates only after the object has changed since the last
171734// request. Use googleapi.IsNotModified to check whether the response
171735// error from Do is the result of In-None-Match.
171736func (c *ZoneOperationsGetCall) IfNoneMatch(entityTag string) *ZoneOperationsGetCall {
171737	c.ifNoneMatch_ = entityTag
171738	return c
171739}
171740
171741// Context sets the context to be used in this call's Do method. Any
171742// pending HTTP request will be aborted if the provided context is
171743// canceled.
171744func (c *ZoneOperationsGetCall) Context(ctx context.Context) *ZoneOperationsGetCall {
171745	c.ctx_ = ctx
171746	return c
171747}
171748
171749// Header returns an http.Header that can be modified by the caller to
171750// add HTTP headers to the request.
171751func (c *ZoneOperationsGetCall) Header() http.Header {
171752	if c.header_ == nil {
171753		c.header_ = make(http.Header)
171754	}
171755	return c.header_
171756}
171757
171758func (c *ZoneOperationsGetCall) doRequest(alt string) (*http.Response, error) {
171759	reqHeaders := make(http.Header)
171760	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
171761	for k, v := range c.header_ {
171762		reqHeaders[k] = v
171763	}
171764	reqHeaders.Set("User-Agent", c.s.userAgent())
171765	if c.ifNoneMatch_ != "" {
171766		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
171767	}
171768	var body io.Reader = nil
171769	c.urlParams_.Set("alt", alt)
171770	c.urlParams_.Set("prettyPrint", "false")
171771	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations/{operation}")
171772	urls += "?" + c.urlParams_.Encode()
171773	req, err := http.NewRequest("GET", urls, body)
171774	if err != nil {
171775		return nil, err
171776	}
171777	req.Header = reqHeaders
171778	googleapi.Expand(req.URL, map[string]string{
171779		"project":   c.project,
171780		"zone":      c.zone,
171781		"operation": c.operation,
171782	})
171783	return gensupport.SendRequest(c.ctx_, c.s.client, req)
171784}
171785
171786// Do executes the "compute.zoneOperations.get" call.
171787// Exactly one of *Operation or error will be non-nil. Any non-2xx
171788// status code is an error. Response headers are in either
171789// *Operation.ServerResponse.Header or (if a response was returned at
171790// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
171791// to check whether the returned error was because
171792// http.StatusNotModified was returned.
171793func (c *ZoneOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
171794	gensupport.SetOptions(c.urlParams_, opts...)
171795	res, err := c.doRequest("json")
171796	if res != nil && res.StatusCode == http.StatusNotModified {
171797		if res.Body != nil {
171798			res.Body.Close()
171799		}
171800		return nil, &googleapi.Error{
171801			Code:   res.StatusCode,
171802			Header: res.Header,
171803		}
171804	}
171805	if err != nil {
171806		return nil, err
171807	}
171808	defer googleapi.CloseBody(res)
171809	if err := googleapi.CheckResponse(res); err != nil {
171810		return nil, err
171811	}
171812	ret := &Operation{
171813		ServerResponse: googleapi.ServerResponse{
171814			Header:         res.Header,
171815			HTTPStatusCode: res.StatusCode,
171816		},
171817	}
171818	target := &ret
171819	if err := gensupport.DecodeResponse(target, res); err != nil {
171820		return nil, err
171821	}
171822	return ret, nil
171823	// {
171824	//   "description": "Retrieves the specified zone-specific Operations resource.",
171825	//   "httpMethod": "GET",
171826	//   "id": "compute.zoneOperations.get",
171827	//   "parameterOrder": [
171828	//     "project",
171829	//     "zone",
171830	//     "operation"
171831	//   ],
171832	//   "parameters": {
171833	//     "operation": {
171834	//       "description": "Name of the Operations resource to return.",
171835	//       "location": "path",
171836	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
171837	//       "required": true,
171838	//       "type": "string"
171839	//     },
171840	//     "project": {
171841	//       "description": "Project ID for this request.",
171842	//       "location": "path",
171843	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
171844	//       "required": true,
171845	//       "type": "string"
171846	//     },
171847	//     "zone": {
171848	//       "description": "Name of the zone for this request.",
171849	//       "location": "path",
171850	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
171851	//       "required": true,
171852	//       "type": "string"
171853	//     }
171854	//   },
171855	//   "path": "{project}/zones/{zone}/operations/{operation}",
171856	//   "response": {
171857	//     "$ref": "Operation"
171858	//   },
171859	//   "scopes": [
171860	//     "https://www.googleapis.com/auth/cloud-platform",
171861	//     "https://www.googleapis.com/auth/compute",
171862	//     "https://www.googleapis.com/auth/compute.readonly"
171863	//   ]
171864	// }
171865
171866}
171867
171868// method id "compute.zoneOperations.list":
171869
171870type ZoneOperationsListCall struct {
171871	s            *Service
171872	project      string
171873	zone         string
171874	urlParams_   gensupport.URLParams
171875	ifNoneMatch_ string
171876	ctx_         context.Context
171877	header_      http.Header
171878}
171879
171880// List: Retrieves a list of Operation resources contained within the
171881// specified zone.
171882// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/list
171883func (r *ZoneOperationsService) List(project string, zone string) *ZoneOperationsListCall {
171884	c := &ZoneOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
171885	c.project = project
171886	c.zone = zone
171887	return c
171888}
171889
171890// Filter sets the optional parameter "filter": A filter expression that
171891// filters resources listed in the response. The expression must specify
171892// the field name, a comparison operator, and the value that you want to
171893// use for filtering. The value must be a string, a number, or a
171894// boolean. The comparison operator must be either =, !=, >, or <.
171895//
171896// For example, if you are filtering Compute Engine instances, you can
171897// exclude instances named example-instance by specifying name !=
171898// example-instance.
171899//
171900// You can also filter nested fields. For example, you could specify
171901// scheduling.automaticRestart = false to include instances only if they
171902// are not scheduled for automatic restarts. You can use filtering on
171903// nested fields to filter based on resource labels.
171904//
171905// To filter on multiple expressions, provide each separate expression
171906// within parentheses. For example, (scheduling.automaticRestart = true)
171907// (cpuPlatform = "Intel Skylake"). By default, each expression is an
171908// AND expression. However, you can include AND and OR expressions
171909// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
171910// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
171911// true).
171912func (c *ZoneOperationsListCall) Filter(filter string) *ZoneOperationsListCall {
171913	c.urlParams_.Set("filter", filter)
171914	return c
171915}
171916
171917// MaxResults sets the optional parameter "maxResults": The maximum
171918// number of results per page that should be returned. If the number of
171919// available results is larger than maxResults, Compute Engine returns a
171920// nextPageToken that can be used to get the next page of results in
171921// subsequent list requests. Acceptable values are 0 to 500, inclusive.
171922// (Default: 500)
171923func (c *ZoneOperationsListCall) MaxResults(maxResults int64) *ZoneOperationsListCall {
171924	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
171925	return c
171926}
171927
171928// OrderBy sets the optional parameter "orderBy": Sorts list results by
171929// a certain order. By default, results are returned in alphanumerical
171930// order based on the resource name.
171931//
171932// You can also sort results in descending order based on the creation
171933// timestamp using orderBy="creationTimestamp desc". This sorts results
171934// based on the creationTimestamp field in reverse chronological order
171935// (newest result first). Use this to sort resources like operations so
171936// that the newest operation is returned first.
171937//
171938// Currently, only sorting by name or creationTimestamp desc is
171939// supported.
171940func (c *ZoneOperationsListCall) OrderBy(orderBy string) *ZoneOperationsListCall {
171941	c.urlParams_.Set("orderBy", orderBy)
171942	return c
171943}
171944
171945// PageToken sets the optional parameter "pageToken": Specifies a page
171946// token to use. Set pageToken to the nextPageToken returned by a
171947// previous list request to get the next page of results.
171948func (c *ZoneOperationsListCall) PageToken(pageToken string) *ZoneOperationsListCall {
171949	c.urlParams_.Set("pageToken", pageToken)
171950	return c
171951}
171952
171953// Fields allows partial responses to be retrieved. See
171954// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
171955// for more information.
171956func (c *ZoneOperationsListCall) Fields(s ...googleapi.Field) *ZoneOperationsListCall {
171957	c.urlParams_.Set("fields", googleapi.CombineFields(s))
171958	return c
171959}
171960
171961// IfNoneMatch sets the optional parameter which makes the operation
171962// fail if the object's ETag matches the given value. This is useful for
171963// getting updates only after the object has changed since the last
171964// request. Use googleapi.IsNotModified to check whether the response
171965// error from Do is the result of In-None-Match.
171966func (c *ZoneOperationsListCall) IfNoneMatch(entityTag string) *ZoneOperationsListCall {
171967	c.ifNoneMatch_ = entityTag
171968	return c
171969}
171970
171971// Context sets the context to be used in this call's Do method. Any
171972// pending HTTP request will be aborted if the provided context is
171973// canceled.
171974func (c *ZoneOperationsListCall) Context(ctx context.Context) *ZoneOperationsListCall {
171975	c.ctx_ = ctx
171976	return c
171977}
171978
171979// Header returns an http.Header that can be modified by the caller to
171980// add HTTP headers to the request.
171981func (c *ZoneOperationsListCall) Header() http.Header {
171982	if c.header_ == nil {
171983		c.header_ = make(http.Header)
171984	}
171985	return c.header_
171986}
171987
171988func (c *ZoneOperationsListCall) doRequest(alt string) (*http.Response, error) {
171989	reqHeaders := make(http.Header)
171990	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
171991	for k, v := range c.header_ {
171992		reqHeaders[k] = v
171993	}
171994	reqHeaders.Set("User-Agent", c.s.userAgent())
171995	if c.ifNoneMatch_ != "" {
171996		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
171997	}
171998	var body io.Reader = nil
171999	c.urlParams_.Set("alt", alt)
172000	c.urlParams_.Set("prettyPrint", "false")
172001	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations")
172002	urls += "?" + c.urlParams_.Encode()
172003	req, err := http.NewRequest("GET", urls, body)
172004	if err != nil {
172005		return nil, err
172006	}
172007	req.Header = reqHeaders
172008	googleapi.Expand(req.URL, map[string]string{
172009		"project": c.project,
172010		"zone":    c.zone,
172011	})
172012	return gensupport.SendRequest(c.ctx_, c.s.client, req)
172013}
172014
172015// Do executes the "compute.zoneOperations.list" call.
172016// Exactly one of *OperationList or error will be non-nil. Any non-2xx
172017// status code is an error. Response headers are in either
172018// *OperationList.ServerResponse.Header or (if a response was returned
172019// at all) in error.(*googleapi.Error).Header. Use
172020// googleapi.IsNotModified to check whether the returned error was
172021// because http.StatusNotModified was returned.
172022func (c *ZoneOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
172023	gensupport.SetOptions(c.urlParams_, opts...)
172024	res, err := c.doRequest("json")
172025	if res != nil && res.StatusCode == http.StatusNotModified {
172026		if res.Body != nil {
172027			res.Body.Close()
172028		}
172029		return nil, &googleapi.Error{
172030			Code:   res.StatusCode,
172031			Header: res.Header,
172032		}
172033	}
172034	if err != nil {
172035		return nil, err
172036	}
172037	defer googleapi.CloseBody(res)
172038	if err := googleapi.CheckResponse(res); err != nil {
172039		return nil, err
172040	}
172041	ret := &OperationList{
172042		ServerResponse: googleapi.ServerResponse{
172043			Header:         res.Header,
172044			HTTPStatusCode: res.StatusCode,
172045		},
172046	}
172047	target := &ret
172048	if err := gensupport.DecodeResponse(target, res); err != nil {
172049		return nil, err
172050	}
172051	return ret, nil
172052	// {
172053	//   "description": "Retrieves a list of Operation resources contained within the specified zone.",
172054	//   "httpMethod": "GET",
172055	//   "id": "compute.zoneOperations.list",
172056	//   "parameterOrder": [
172057	//     "project",
172058	//     "zone"
172059	//   ],
172060	//   "parameters": {
172061	//     "filter": {
172062	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
172063	//       "location": "query",
172064	//       "type": "string"
172065	//     },
172066	//     "maxResults": {
172067	//       "default": "500",
172068	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
172069	//       "format": "uint32",
172070	//       "location": "query",
172071	//       "minimum": "0",
172072	//       "type": "integer"
172073	//     },
172074	//     "orderBy": {
172075	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
172076	//       "location": "query",
172077	//       "type": "string"
172078	//     },
172079	//     "pageToken": {
172080	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
172081	//       "location": "query",
172082	//       "type": "string"
172083	//     },
172084	//     "project": {
172085	//       "description": "Project ID for this request.",
172086	//       "location": "path",
172087	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
172088	//       "required": true,
172089	//       "type": "string"
172090	//     },
172091	//     "zone": {
172092	//       "description": "Name of the zone for request.",
172093	//       "location": "path",
172094	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
172095	//       "required": true,
172096	//       "type": "string"
172097	//     }
172098	//   },
172099	//   "path": "{project}/zones/{zone}/operations",
172100	//   "response": {
172101	//     "$ref": "OperationList"
172102	//   },
172103	//   "scopes": [
172104	//     "https://www.googleapis.com/auth/cloud-platform",
172105	//     "https://www.googleapis.com/auth/compute",
172106	//     "https://www.googleapis.com/auth/compute.readonly"
172107	//   ]
172108	// }
172109
172110}
172111
172112// Pages invokes f for each page of results.
172113// A non-nil error returned from f will halt the iteration.
172114// The provided context supersedes any context provided to the Context method.
172115func (c *ZoneOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
172116	c.ctx_ = ctx
172117	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
172118	for {
172119		x, err := c.Do()
172120		if err != nil {
172121			return err
172122		}
172123		if err := f(x); err != nil {
172124			return err
172125		}
172126		if x.NextPageToken == "" {
172127			return nil
172128		}
172129		c.PageToken(x.NextPageToken)
172130	}
172131}
172132
172133// method id "compute.zoneOperations.wait":
172134
172135type ZoneOperationsWaitCall struct {
172136	s          *Service
172137	project    string
172138	zone       string
172139	operation  string
172140	urlParams_ gensupport.URLParams
172141	ctx_       context.Context
172142	header_    http.Header
172143}
172144
172145// Wait: Waits for the specified Operation resource to return as DONE or
172146// for the request to approach the 2 minute deadline, and retrieves the
172147// specified Operation resource. This method differs from the GET method
172148// in that it waits for no more than the default deadline (2 minutes)
172149// and then returns the current state of the operation, which might be
172150// DONE or still in progress.
172151//
172152// This method is called on a best-effort basis. Specifically:
172153// - In uncommon cases, when the server is overloaded, the request might
172154// return before the default deadline is reached, or might return after
172155// zero seconds.
172156// - If the default deadline is reached, there is no guarantee that the
172157// operation is actually done when the method returns. Be prepared to
172158// retry if the operation is not DONE.
172159func (r *ZoneOperationsService) Wait(project string, zone string, operation string) *ZoneOperationsWaitCall {
172160	c := &ZoneOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
172161	c.project = project
172162	c.zone = zone
172163	c.operation = operation
172164	return c
172165}
172166
172167// Fields allows partial responses to be retrieved. See
172168// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
172169// for more information.
172170func (c *ZoneOperationsWaitCall) Fields(s ...googleapi.Field) *ZoneOperationsWaitCall {
172171	c.urlParams_.Set("fields", googleapi.CombineFields(s))
172172	return c
172173}
172174
172175// Context sets the context to be used in this call's Do method. Any
172176// pending HTTP request will be aborted if the provided context is
172177// canceled.
172178func (c *ZoneOperationsWaitCall) Context(ctx context.Context) *ZoneOperationsWaitCall {
172179	c.ctx_ = ctx
172180	return c
172181}
172182
172183// Header returns an http.Header that can be modified by the caller to
172184// add HTTP headers to the request.
172185func (c *ZoneOperationsWaitCall) Header() http.Header {
172186	if c.header_ == nil {
172187		c.header_ = make(http.Header)
172188	}
172189	return c.header_
172190}
172191
172192func (c *ZoneOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
172193	reqHeaders := make(http.Header)
172194	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
172195	for k, v := range c.header_ {
172196		reqHeaders[k] = v
172197	}
172198	reqHeaders.Set("User-Agent", c.s.userAgent())
172199	var body io.Reader = nil
172200	c.urlParams_.Set("alt", alt)
172201	c.urlParams_.Set("prettyPrint", "false")
172202	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations/{operation}/wait")
172203	urls += "?" + c.urlParams_.Encode()
172204	req, err := http.NewRequest("POST", urls, body)
172205	if err != nil {
172206		return nil, err
172207	}
172208	req.Header = reqHeaders
172209	googleapi.Expand(req.URL, map[string]string{
172210		"project":   c.project,
172211		"zone":      c.zone,
172212		"operation": c.operation,
172213	})
172214	return gensupport.SendRequest(c.ctx_, c.s.client, req)
172215}
172216
172217// Do executes the "compute.zoneOperations.wait" call.
172218// Exactly one of *Operation or error will be non-nil. Any non-2xx
172219// status code is an error. Response headers are in either
172220// *Operation.ServerResponse.Header or (if a response was returned at
172221// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
172222// to check whether the returned error was because
172223// http.StatusNotModified was returned.
172224func (c *ZoneOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
172225	gensupport.SetOptions(c.urlParams_, opts...)
172226	res, err := c.doRequest("json")
172227	if res != nil && res.StatusCode == http.StatusNotModified {
172228		if res.Body != nil {
172229			res.Body.Close()
172230		}
172231		return nil, &googleapi.Error{
172232			Code:   res.StatusCode,
172233			Header: res.Header,
172234		}
172235	}
172236	if err != nil {
172237		return nil, err
172238	}
172239	defer googleapi.CloseBody(res)
172240	if err := googleapi.CheckResponse(res); err != nil {
172241		return nil, err
172242	}
172243	ret := &Operation{
172244		ServerResponse: googleapi.ServerResponse{
172245			Header:         res.Header,
172246			HTTPStatusCode: res.StatusCode,
172247		},
172248	}
172249	target := &ret
172250	if err := gensupport.DecodeResponse(target, res); err != nil {
172251		return nil, err
172252	}
172253	return ret, nil
172254	// {
172255	//   "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.",
172256	//   "httpMethod": "POST",
172257	//   "id": "compute.zoneOperations.wait",
172258	//   "parameterOrder": [
172259	//     "project",
172260	//     "zone",
172261	//     "operation"
172262	//   ],
172263	//   "parameters": {
172264	//     "operation": {
172265	//       "description": "Name of the Operations resource to return.",
172266	//       "location": "path",
172267	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
172268	//       "required": true,
172269	//       "type": "string"
172270	//     },
172271	//     "project": {
172272	//       "description": "Project ID for this request.",
172273	//       "location": "path",
172274	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
172275	//       "required": true,
172276	//       "type": "string"
172277	//     },
172278	//     "zone": {
172279	//       "description": "Name of the zone for this request.",
172280	//       "location": "path",
172281	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
172282	//       "required": true,
172283	//       "type": "string"
172284	//     }
172285	//   },
172286	//   "path": "{project}/zones/{zone}/operations/{operation}/wait",
172287	//   "response": {
172288	//     "$ref": "Operation"
172289	//   },
172290	//   "scopes": [
172291	//     "https://www.googleapis.com/auth/cloud-platform",
172292	//     "https://www.googleapis.com/auth/compute",
172293	//     "https://www.googleapis.com/auth/compute.readonly"
172294	//   ]
172295	// }
172296
172297}
172298
172299// method id "compute.zones.get":
172300
172301type ZonesGetCall struct {
172302	s            *Service
172303	project      string
172304	zone         string
172305	urlParams_   gensupport.URLParams
172306	ifNoneMatch_ string
172307	ctx_         context.Context
172308	header_      http.Header
172309}
172310
172311// Get: Returns the specified Zone resource. Gets a list of available
172312// zones by making a list() request.
172313// For details, see https://cloud.google.com/compute/docs/reference/latest/zones/get
172314func (r *ZonesService) Get(project string, zone string) *ZonesGetCall {
172315	c := &ZonesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
172316	c.project = project
172317	c.zone = zone
172318	return c
172319}
172320
172321// Fields allows partial responses to be retrieved. See
172322// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
172323// for more information.
172324func (c *ZonesGetCall) Fields(s ...googleapi.Field) *ZonesGetCall {
172325	c.urlParams_.Set("fields", googleapi.CombineFields(s))
172326	return c
172327}
172328
172329// IfNoneMatch sets the optional parameter which makes the operation
172330// fail if the object's ETag matches the given value. This is useful for
172331// getting updates only after the object has changed since the last
172332// request. Use googleapi.IsNotModified to check whether the response
172333// error from Do is the result of In-None-Match.
172334func (c *ZonesGetCall) IfNoneMatch(entityTag string) *ZonesGetCall {
172335	c.ifNoneMatch_ = entityTag
172336	return c
172337}
172338
172339// Context sets the context to be used in this call's Do method. Any
172340// pending HTTP request will be aborted if the provided context is
172341// canceled.
172342func (c *ZonesGetCall) Context(ctx context.Context) *ZonesGetCall {
172343	c.ctx_ = ctx
172344	return c
172345}
172346
172347// Header returns an http.Header that can be modified by the caller to
172348// add HTTP headers to the request.
172349func (c *ZonesGetCall) Header() http.Header {
172350	if c.header_ == nil {
172351		c.header_ = make(http.Header)
172352	}
172353	return c.header_
172354}
172355
172356func (c *ZonesGetCall) doRequest(alt string) (*http.Response, error) {
172357	reqHeaders := make(http.Header)
172358	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
172359	for k, v := range c.header_ {
172360		reqHeaders[k] = v
172361	}
172362	reqHeaders.Set("User-Agent", c.s.userAgent())
172363	if c.ifNoneMatch_ != "" {
172364		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
172365	}
172366	var body io.Reader = nil
172367	c.urlParams_.Set("alt", alt)
172368	c.urlParams_.Set("prettyPrint", "false")
172369	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}")
172370	urls += "?" + c.urlParams_.Encode()
172371	req, err := http.NewRequest("GET", urls, body)
172372	if err != nil {
172373		return nil, err
172374	}
172375	req.Header = reqHeaders
172376	googleapi.Expand(req.URL, map[string]string{
172377		"project": c.project,
172378		"zone":    c.zone,
172379	})
172380	return gensupport.SendRequest(c.ctx_, c.s.client, req)
172381}
172382
172383// Do executes the "compute.zones.get" call.
172384// Exactly one of *Zone or error will be non-nil. Any non-2xx status
172385// code is an error. Response headers are in either
172386// *Zone.ServerResponse.Header or (if a response was returned at all) in
172387// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
172388// whether the returned error was because http.StatusNotModified was
172389// returned.
172390func (c *ZonesGetCall) Do(opts ...googleapi.CallOption) (*Zone, error) {
172391	gensupport.SetOptions(c.urlParams_, opts...)
172392	res, err := c.doRequest("json")
172393	if res != nil && res.StatusCode == http.StatusNotModified {
172394		if res.Body != nil {
172395			res.Body.Close()
172396		}
172397		return nil, &googleapi.Error{
172398			Code:   res.StatusCode,
172399			Header: res.Header,
172400		}
172401	}
172402	if err != nil {
172403		return nil, err
172404	}
172405	defer googleapi.CloseBody(res)
172406	if err := googleapi.CheckResponse(res); err != nil {
172407		return nil, err
172408	}
172409	ret := &Zone{
172410		ServerResponse: googleapi.ServerResponse{
172411			Header:         res.Header,
172412			HTTPStatusCode: res.StatusCode,
172413		},
172414	}
172415	target := &ret
172416	if err := gensupport.DecodeResponse(target, res); err != nil {
172417		return nil, err
172418	}
172419	return ret, nil
172420	// {
172421	//   "description": "Returns the specified Zone resource. Gets a list of available zones by making a list() request.",
172422	//   "httpMethod": "GET",
172423	//   "id": "compute.zones.get",
172424	//   "parameterOrder": [
172425	//     "project",
172426	//     "zone"
172427	//   ],
172428	//   "parameters": {
172429	//     "project": {
172430	//       "description": "Project ID for this request.",
172431	//       "location": "path",
172432	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
172433	//       "required": true,
172434	//       "type": "string"
172435	//     },
172436	//     "zone": {
172437	//       "description": "Name of the zone resource to return.",
172438	//       "location": "path",
172439	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
172440	//       "required": true,
172441	//       "type": "string"
172442	//     }
172443	//   },
172444	//   "path": "{project}/zones/{zone}",
172445	//   "response": {
172446	//     "$ref": "Zone"
172447	//   },
172448	//   "scopes": [
172449	//     "https://www.googleapis.com/auth/cloud-platform",
172450	//     "https://www.googleapis.com/auth/compute",
172451	//     "https://www.googleapis.com/auth/compute.readonly"
172452	//   ]
172453	// }
172454
172455}
172456
172457// method id "compute.zones.list":
172458
172459type ZonesListCall struct {
172460	s            *Service
172461	project      string
172462	urlParams_   gensupport.URLParams
172463	ifNoneMatch_ string
172464	ctx_         context.Context
172465	header_      http.Header
172466}
172467
172468// List: Retrieves the list of Zone resources available to the specified
172469// project.
172470// For details, see https://cloud.google.com/compute/docs/reference/latest/zones/list
172471func (r *ZonesService) List(project string) *ZonesListCall {
172472	c := &ZonesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
172473	c.project = project
172474	return c
172475}
172476
172477// Filter sets the optional parameter "filter": A filter expression that
172478// filters resources listed in the response. The expression must specify
172479// the field name, a comparison operator, and the value that you want to
172480// use for filtering. The value must be a string, a number, or a
172481// boolean. The comparison operator must be either =, !=, >, or <.
172482//
172483// For example, if you are filtering Compute Engine instances, you can
172484// exclude instances named example-instance by specifying name !=
172485// example-instance.
172486//
172487// You can also filter nested fields. For example, you could specify
172488// scheduling.automaticRestart = false to include instances only if they
172489// are not scheduled for automatic restarts. You can use filtering on
172490// nested fields to filter based on resource labels.
172491//
172492// To filter on multiple expressions, provide each separate expression
172493// within parentheses. For example, (scheduling.automaticRestart = true)
172494// (cpuPlatform = "Intel Skylake"). By default, each expression is an
172495// AND expression. However, you can include AND and OR expressions
172496// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
172497// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
172498// true).
172499func (c *ZonesListCall) Filter(filter string) *ZonesListCall {
172500	c.urlParams_.Set("filter", filter)
172501	return c
172502}
172503
172504// MaxResults sets the optional parameter "maxResults": The maximum
172505// number of results per page that should be returned. If the number of
172506// available results is larger than maxResults, Compute Engine returns a
172507// nextPageToken that can be used to get the next page of results in
172508// subsequent list requests. Acceptable values are 0 to 500, inclusive.
172509// (Default: 500)
172510func (c *ZonesListCall) MaxResults(maxResults int64) *ZonesListCall {
172511	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
172512	return c
172513}
172514
172515// OrderBy sets the optional parameter "orderBy": Sorts list results by
172516// a certain order. By default, results are returned in alphanumerical
172517// order based on the resource name.
172518//
172519// You can also sort results in descending order based on the creation
172520// timestamp using orderBy="creationTimestamp desc". This sorts results
172521// based on the creationTimestamp field in reverse chronological order
172522// (newest result first). Use this to sort resources like operations so
172523// that the newest operation is returned first.
172524//
172525// Currently, only sorting by name or creationTimestamp desc is
172526// supported.
172527func (c *ZonesListCall) OrderBy(orderBy string) *ZonesListCall {
172528	c.urlParams_.Set("orderBy", orderBy)
172529	return c
172530}
172531
172532// PageToken sets the optional parameter "pageToken": Specifies a page
172533// token to use. Set pageToken to the nextPageToken returned by a
172534// previous list request to get the next page of results.
172535func (c *ZonesListCall) PageToken(pageToken string) *ZonesListCall {
172536	c.urlParams_.Set("pageToken", pageToken)
172537	return c
172538}
172539
172540// Fields allows partial responses to be retrieved. See
172541// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
172542// for more information.
172543func (c *ZonesListCall) Fields(s ...googleapi.Field) *ZonesListCall {
172544	c.urlParams_.Set("fields", googleapi.CombineFields(s))
172545	return c
172546}
172547
172548// IfNoneMatch sets the optional parameter which makes the operation
172549// fail if the object's ETag matches the given value. This is useful for
172550// getting updates only after the object has changed since the last
172551// request. Use googleapi.IsNotModified to check whether the response
172552// error from Do is the result of In-None-Match.
172553func (c *ZonesListCall) IfNoneMatch(entityTag string) *ZonesListCall {
172554	c.ifNoneMatch_ = entityTag
172555	return c
172556}
172557
172558// Context sets the context to be used in this call's Do method. Any
172559// pending HTTP request will be aborted if the provided context is
172560// canceled.
172561func (c *ZonesListCall) Context(ctx context.Context) *ZonesListCall {
172562	c.ctx_ = ctx
172563	return c
172564}
172565
172566// Header returns an http.Header that can be modified by the caller to
172567// add HTTP headers to the request.
172568func (c *ZonesListCall) Header() http.Header {
172569	if c.header_ == nil {
172570		c.header_ = make(http.Header)
172571	}
172572	return c.header_
172573}
172574
172575func (c *ZonesListCall) doRequest(alt string) (*http.Response, error) {
172576	reqHeaders := make(http.Header)
172577	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
172578	for k, v := range c.header_ {
172579		reqHeaders[k] = v
172580	}
172581	reqHeaders.Set("User-Agent", c.s.userAgent())
172582	if c.ifNoneMatch_ != "" {
172583		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
172584	}
172585	var body io.Reader = nil
172586	c.urlParams_.Set("alt", alt)
172587	c.urlParams_.Set("prettyPrint", "false")
172588	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones")
172589	urls += "?" + c.urlParams_.Encode()
172590	req, err := http.NewRequest("GET", urls, body)
172591	if err != nil {
172592		return nil, err
172593	}
172594	req.Header = reqHeaders
172595	googleapi.Expand(req.URL, map[string]string{
172596		"project": c.project,
172597	})
172598	return gensupport.SendRequest(c.ctx_, c.s.client, req)
172599}
172600
172601// Do executes the "compute.zones.list" call.
172602// Exactly one of *ZoneList or error will be non-nil. Any non-2xx status
172603// code is an error. Response headers are in either
172604// *ZoneList.ServerResponse.Header or (if a response was returned at
172605// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
172606// to check whether the returned error was because
172607// http.StatusNotModified was returned.
172608func (c *ZonesListCall) Do(opts ...googleapi.CallOption) (*ZoneList, error) {
172609	gensupport.SetOptions(c.urlParams_, opts...)
172610	res, err := c.doRequest("json")
172611	if res != nil && res.StatusCode == http.StatusNotModified {
172612		if res.Body != nil {
172613			res.Body.Close()
172614		}
172615		return nil, &googleapi.Error{
172616			Code:   res.StatusCode,
172617			Header: res.Header,
172618		}
172619	}
172620	if err != nil {
172621		return nil, err
172622	}
172623	defer googleapi.CloseBody(res)
172624	if err := googleapi.CheckResponse(res); err != nil {
172625		return nil, err
172626	}
172627	ret := &ZoneList{
172628		ServerResponse: googleapi.ServerResponse{
172629			Header:         res.Header,
172630			HTTPStatusCode: res.StatusCode,
172631		},
172632	}
172633	target := &ret
172634	if err := gensupport.DecodeResponse(target, res); err != nil {
172635		return nil, err
172636	}
172637	return ret, nil
172638	// {
172639	//   "description": "Retrieves the list of Zone resources available to the specified project.",
172640	//   "httpMethod": "GET",
172641	//   "id": "compute.zones.list",
172642	//   "parameterOrder": [
172643	//     "project"
172644	//   ],
172645	//   "parameters": {
172646	//     "filter": {
172647	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
172648	//       "location": "query",
172649	//       "type": "string"
172650	//     },
172651	//     "maxResults": {
172652	//       "default": "500",
172653	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
172654	//       "format": "uint32",
172655	//       "location": "query",
172656	//       "minimum": "0",
172657	//       "type": "integer"
172658	//     },
172659	//     "orderBy": {
172660	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
172661	//       "location": "query",
172662	//       "type": "string"
172663	//     },
172664	//     "pageToken": {
172665	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
172666	//       "location": "query",
172667	//       "type": "string"
172668	//     },
172669	//     "project": {
172670	//       "description": "Project ID for this request.",
172671	//       "location": "path",
172672	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
172673	//       "required": true,
172674	//       "type": "string"
172675	//     }
172676	//   },
172677	//   "path": "{project}/zones",
172678	//   "response": {
172679	//     "$ref": "ZoneList"
172680	//   },
172681	//   "scopes": [
172682	//     "https://www.googleapis.com/auth/cloud-platform",
172683	//     "https://www.googleapis.com/auth/compute",
172684	//     "https://www.googleapis.com/auth/compute.readonly"
172685	//   ]
172686	// }
172687
172688}
172689
172690// Pages invokes f for each page of results.
172691// A non-nil error returned from f will halt the iteration.
172692// The provided context supersedes any context provided to the Context method.
172693func (c *ZonesListCall) Pages(ctx context.Context, f func(*ZoneList) error) error {
172694	c.ctx_ = ctx
172695	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
172696	for {
172697		x, err := c.Do()
172698		if err != nil {
172699			return err
172700		}
172701		if err := f(x); err != nil {
172702			return err
172703		}
172704		if x.NextPageToken == "" {
172705			return nil
172706		}
172707		c.PageToken(x.NextPageToken)
172708	}
172709}
172710